80-Bus News |
January–February 1983 · Volume 2 · Issue 1 |
Page 42 of 56 |
---|
giving up to 960K of virtual disk. In this case each card must have a different header plug, and the manual supplied shows clearly how to wire these up.
It is also possible to buy the card with only 64K RAM and upgrade it later by simply adding the extra memory chips. MAP are quite happy that you do this and will supply the extra chips as you want them. This has a great advantage as a low cost approach, as the price of the 256 kbit chips will no doubt continue to fall. This makes the MAP RAM an interesting, although more expensive, alternative to the Gemini 64K RAM card.
I do have one major complaint about MAP RAM. The documentation is very hard to understand, and there is not a circuit diagram. There are no examples of how to program the MAP RAM, and not even a clear indication of the programming instructions you would use to address it. When so much good work has been done on the design of the card, it is a shame that a few hours more were not spent on the manual. Also it would be helpful to have a circuit diagram, as many people like to be able to work on their own equipment should anything go wrong. Instead of just criticising, I had better try to help! So here is some of the crucial information which I eventually deduced – with some advice from MAP, who are very helpful!
The control port is FE. If you output 00 to port FE you have a normal 64K card, and this is the condition when you turn the system on.
If you want to swop the bottom 32K of RAM with other 32K pages, you output a different value to port FE. You output C2 for the first extra 32K page, C3 for the next, and so on, all the way up to DF. To switch back to normal, output 00 to port FF.
For example to page in the third extra 32K page, execute the instructions
LD A,0C4H ; C2 is the first extra page, so C4 is the third OUT (0FEH),A
Then to return to normal
XOR A OUT (0FEH),A
The control port on the Gemini GM813 is FE. It must be addressed by a Z80 instruction using the C register to address the port. The top half of the B register must contain the logical 4K page (0-F) to which the physical memory is to be mapped, and the data value output must contain the number of the physical 4K block.
For example to swop the 4K of memory starting at 2000H with the fourth extra 4K block, use the instructions
LD BC, 20FFH ; 20 because 2000H, FE is the port LD A,13H ; 10H is the first extra page, so 13H is the fourth OUT (C),A
To then return this area to normal, use the instructions
LD BC, 20FEH ; 20 because 2000H, FE is the port LD A,02H ; The normal blocks are 00-0F, so 02 for 2000H OUT (C),A
When paging in and out memory, there are two vital rules to remember (which I forgot several times).
1. If the program code is in the area which is paged out then the system will crash.
Page 42 of 56 |
---|