Hello! Michał Pleban wrote: > At the moment I am not testing whether the value is actually written to > the RAM below $0000/$0001 registers. Since the 6509 CPU always reads > back the written value, it is not possible to know what is in the RAM > beneath it. To check the RAM, I will have to employ the 8088 CPU and > it's too late to do that today. OK, so I did test it :-) Writing a proper 8088 payload for the test suite would take a whole night, but I examined the memory from the 8088 side by launching MS-DOS and running DEBUG. Here's what happens: * The 6509 DOES write data to memory when writing to registers $0000 and $0001. * The write occurs in the current execution bank (the one determined by value of $0000 register). The KERNAL lives at bank $F only, so normally these writes land in the internal SRAM and have no effect on anything. However, if the code to be executed is placed in the DRAM, these writes happen in the DRAM too and can be seen there by the 8088. * The values being written are NOT what he CPU writes to these registers, but rather what was left on the data bus from the previous instruction. Therefore, if using simple STA $00 / STA $01 instructions, value $00 will be written to $0000 and $01 to $0001, but if more sophisticated instructions are used, other values may be placed there (to be tested more thoroughly). That basically means that the 6509 CPU, similarly to 6510, does not drive the data bus upon writing to these registers, but it does drive the R/W signal. Regards, Michau. Message was sent through the cbm-hackers mailing listReceived on 2018-02-26 00:01:14
Archive generated by hypermail 2.2.0.