Inspired by this thread, I bought a POST card to help with ROMable code, aware that DMA Refresh interferes with its function. I've been trying to play around with the card in DEBUG (o 80, ff etc), but I've had no success with getting writes to display the correct value (writes will work, but the value displayed is incorrect).
Sadly, it seems DMA Refresh ruins any utility that a POST card has on these old systems. I'm not capable of getting a proper write to the POST card, even with the small DEBUG program I have attached:
The behavior is too consistent (much greater than 4/72 times) for me to chalk it up to "the POST card is being accessed during the recovery time of the previous memory refresh access from the DMA controller". Would've been great if the designers actually considered XT systems for this (there is a AEN signal on the ISA bus to distinguish DMA, after all).
After a certain point of repeated tests (-o f, 0 at the debug prompt), the RAM becomes corrupted to the point that what DEBUG thinks the CPU's register contents are is garbage . It's also probable that DEBUG is picking up keystrokes properly from the keyboard shift register, but is writing corrupted garbage from its line buffer to the program buffer when I hit ENTER. That said, even the first time executing the program after a reboot does NOT write the correct value to the POST card (it's always 0xE63C).
Does anyone have any ideas how to get a POST card to behave in an XT-class system? Perhaps I should burn some EPROMs and runs some small test programs from ROM. Maybe I should also just boot to ROM BASIC and use INB/OUTB (or whatever they are) instructions there.
Sadly, it seems DMA Refresh ruins any utility that a POST card has on these old systems. I'm not capable of getting a proper write to the POST card, even with the small DEBUG program I have attached:
Code:
mov al, 1
out f, al
mov al, ff
out 80, al
int 3
The behavior is too consistent (much greater than 4/72 times) for me to chalk it up to "the POST card is being accessed during the recovery time of the previous memory refresh access from the DMA controller". Would've been great if the designers actually considered XT systems for this (there is a AEN signal on the ISA bus to distinguish DMA, after all).
After a certain point of repeated tests (-o f, 0 at the debug prompt), the RAM becomes corrupted to the point that what DEBUG thinks the CPU's register contents are is garbage . It's also probable that DEBUG is picking up keystrokes properly from the keyboard shift register, but is writing corrupted garbage from its line buffer to the program buffer when I hit ENTER. That said, even the first time executing the program after a reboot does NOT write the correct value to the POST card (it's always 0xE63C).
Does anyone have any ideas how to get a POST card to behave in an XT-class system? Perhaps I should burn some EPROMs and runs some small test programs from ROM. Maybe I should also just boot to ROM BASIC and use INB/OUTB (or whatever they are) instructions there.