Hello! I am sorry for the delay - the board was already disassembled and packed for sending to Steve, so I needed to dig it out. We have a long weekend over here so I can play with my machines now :-) Rhialto wrote: > - Is the register at E888 write-only, or can you read it as well? No, it's write-only. All reads always return $E8. > - Does it seem to appear on multiple addresses, not only E888? >From E888 to E88F, then from E898 to E89F, and so on until the end of CRTC register space. > - If the memory configuration goes to the setting with even the I/O > mapped out, is the E888 register still writable? It should be, to make > it possible to get ROMs and I/O back. Apparently it might be possible to map the $E888 register out with some values (see below). > Testing this is somewhat involved but should be possible, if you first > find out how the bits in E888 map to the jumpers (and in particular > /RAM ON, /RAM SEL 9 and /RAM SEL A). Then it needs a small ML program > to map in all RAM and then try to go back to normal. I wrote a simple machine language program that pokes various values to $E888 and tries to read from $9000, $A000, $B000 and $E800. It turns out that some values hang the computer even when interrupts are switched off, and the computer will not reset after that (it even doesn't beep), so most probably they map out the $E888 register from writing so it cannot be restored. I did not see any significance of bits 3-6. Here are the results of the read test (please note that I also tried reading from $F000 but it always returns ROM): 0, 2, 8, 10: $9000 - RAM, $A000 - RAM, $B000 - RAM, $E800 - RAM 1, 3, 9, 11: $9000 - RAM, $A000 - RAM, $B000 - RAM, $E800 - I/O 4, 6, 12, 14: $9000 - ROM, $A000 - ROM, $B000 - ROM, $E800 - RAM 5, 7, 13, 15: $9000 - ROM, $A000 - ROM, $B000 - ROM, $E800 - I/O 128, 129, 136, 137: hang 130, 138: $9000 - RAM, $A000 - RAM, $B000 - RAM, $E800 - I/O 131, 139: $9000 - RAM, $A000 - RAM, $B000 - RAM, $E800 - RAM 132, 140: $9000 - RAM, $A000 - RAM, $B000 - ROM, $E800 - I/O 133, 141: $9000 - ROM, $A000 - RAM, $B000 - ROM, $E800 - RAM 134, 142: $9000 - RAM, $A000 - ROM, $B000 - ROM, $E800 - I/O 135, 143: $9000 - ROM, $A000 - ROM, $B000 - ROM, $E800 - RAM Apparently the bit #3 must have some meaning because it is different in the values written to this register by the ROM, but I cannot figure out what it does. The writes must behave somewhat differently, because the ROM writes 131 to the register which maps I/O reads to RAM, yet the I/O register is writable. Perhaps the bit #3 together with bit #7 controls write access - this is yet to be determined. One more thing - the register is not cleared by a reset. So if you map out the BASIC ROM, then press the reset switch, the computer will not restart because the BASIC ROM is still mapped out. Only switching it off and on will work. Quite sloppy design, because resetting the computer while performing some graphics operation may render it unusable unless physically turned off (losing all RAM contents). Regards, Michau. Message was sent through the cbm-hackers mailing listReceived on 2012-11-01 11:00:05
Archive generated by hypermail 2.2.0.