Micropower |
Volume 2 · Number 4 · September 1982 |
Page 16 of 36 |
---|
That gave me a clue anyway. Copy it into RAM at E000H and execute the RAM version. Off with the power, out with the soldering iron, check with the manual and swap the selects to the 3000H and 4000H blocks with the E000H and F000H blocks.
Switch on, copy 2000H bytes from 4000H to E000H using the ‘C’ and give it a ‘J’. Garbage appears on the screen, Nas-sys functions irregularly and both the BASIC ROM and the area at E000H tabulate rubbish.
A puff of smoke bellows from each of my ears and I take a fortnight’s well-earned nervous breakdown.
I return armed with a firm resolve, sixteen 4116 from another abandoned project that happens to be lying around and decide to populate the RAM B card fully.
The system now works but in the process several discoveries have brought out a little enlightenment.
The system is now configured as follows. Nas-sys is in two 2708s at 0000H with the usual screen and Nascom 1 workspace up to 0FFFH. There are two banks of 16K RAMS from 1000H to 8FFFH which gives me a 32k workspace for the BASIC. 9000H to 9FFFH is empty but is mapped to the 2716 socket on the Dual Monitor board to give two copies in the 4K space. The BASIC ROM resides from A000H to BFFFH and the last bank of RAM runs from C000H to FFFFH.
To work the system in BASIC, it is necessary to perform a ‘C A000 E000 2000’ followed by a ‘J’. There is no reason why the “J” command can not be doctored to carry out the copying procedure and I intend doing this as soon as possible.
As I had suspected, the ROM was not fast enough to work without wait states, even at 2 MHz, and it appeared that the data lines could not change fast enough during an opcode-fetch cycle to keep up. It was lucky that the Nascom 1 single-step function works in ROM areas as it clearly showed the effect. The first instruction at E000H is JMP E003 or C3 03 E0. When executed in single step mode, the program counter pointed to 0303 and similarly for all three byte instructions. There is no problem in using the ‘C’ command at 2 MHz, however, as the LDIR command allows time for the data bus to settle and does not make such speed demands on the slower ROM chip. There is naturally no problem once the BASIC resides in RAM.
Two things will immediately stand out to these of you who have not allowed your computers to take over the art of adding up. there are holes in the memory map and there is usued RAM. Yes, but as you will see, these are features of the system that once were bugs.
The 16 decoded outputs from the memory board are only
Page 16 of 36 |
---|