My latest ZIP can be found here:
www.baltissen.org/zip/diagrom.zip
What are the changes:
- If something goes wrong during the 2 KB test, offending address and the bad bits are shown.
- A complete new test for the rest of the RAM.
Instead of testing just 1 KB at the time I test the whole range in one go. I fill the whole range with a value, wait a bit so the refresh is tested at the same time and then check if the written value is still present. I do this with four different values. Reason: all the bits have to be tested AND the parity has to be tested. Two values, like 55h and 0AAh, won't work as in this case the parity won't change.
So far I have tested things only on the PCem emulator and I tested the main error situations by changes in the code. I will see if I find time to dig up my Taiwanese clone again. If possible, check the bin on an emulator or second best, on a working system so you have an idea how the main change, testing all the RAM, looks like. The advantage of a working system are that you can remove some DRAM modules to see how the Diagnostic ROM behaves when encountering an error.
I'm also working on a text with a detailed explanation the why of certain parts of the ROM how the parts work. During writing this text some more ideas popped up:
- Shadow Lord wants the output over the COM port because he has no MDA or CGA card (or just the monitors?). Anyway, IMHO he has to use a VGA or EGA card then. Although not supported by my ROM, the video RAM still should be accessible. I don't see any reason why it can be used by my ROM for the counters and, a second new idea, as stack.
- Just ocurred: would PCem support a way to see what is outputted to the COM port? I have to check the site and/ or forum.
- I made a dumb calculation error. The MDA card has 4096 bytes of RAM and only 4000 bytes are needed for the screen. I need 25 bytes for my counters and other stuff. This leaves me with still 71 free bytes. Why not use them as a Stack? That would spare me a lot of programming trouble.
Then a remark regarding testing the ROM using PCem. I already mentioned the fact that the second and further runs run as twice as slow as the original run. When testing things, most of the time I turn off the sound so that I don't bother anyone with the beeping. Now the sound was on and even the initial beep took twice as much time but at the same frequency. So far I have no explanation.
Have fun!