Ruud
Veteran Member
Hallo allemaal,
As promised, here is my diagnostics ROM for the IBM-PC, XT or compatibles. You can download the binary and the source at http://www.baltissen.org/zip/diagrom.zip.
First a some what strange remark: it hasn't been tested on a real PC yet. So fat I tested it by using the PCEM-emulator. Why? Quite simple: I don't have to program a EEPROM for every change. A little BAT file takes care of assembling the source, calculating and inserting the checksum, and copying the result to the correct directory within PCem. After that it is just clicking a little button on the screen and I can see the result. And in the mean time I can keep sitting in my favourite chair
But I found out that using PCem didn't go without flaws. I found out that PCem contains at least two bugs:
- It doesn't handle the 8253 timers correctly. Landmark reports a FAILED for each timer. I never used Landmark in a real PC but I can safely assume that some of you readers must have used it and didn't encounter any problems with good timer. I reported the bug and the only comment was: you are not allowed to point to illegal downloads. OK Modem 7, you are warned Strange thing: not one remark about at least checking it.
Also strange: my ROM only has an error with timer two. Still have to look how Landmark tests the timers and why the difference causes errors for the the other two timers as well.
- The output of the 74LS322 keyboard buffer does not behave as it should. It outputs $00 instead of $FF when disabled. I reported that as well but I didn't even get a reply.
The two bugs had consequences for my ROM.
- Because it takes "quite some" time to find out that timer 2 is not working, I actually test timer 0 when the ROM thinks it is testing timer 0.
- I found a way to distinguish between the PC and XT but that doesn't work in PCem now due to that bug. Knowing I'm testing a XT compatible, I forced the ROM to handle the dip switch settings of a XT for the moment.
If you run the ROM, you will see that it is very fast compared to the Landmark ROM. Because it is still in the testing phase, I'm more interested in direct results like "does it work at all?" and "how do the error counters and the loop counter behave". So I shortened some time consuming tests.
The ZIP also contains the source code. It is made to compile under NASM. If you look for '###' you will find the parts where I skipped some loops, where I still have some doubts about the code or anything else that needs my attention.
Have fun!
Comments, ideas, suggestions and criticism is welcome of course
As promised, here is my diagnostics ROM for the IBM-PC, XT or compatibles. You can download the binary and the source at http://www.baltissen.org/zip/diagrom.zip.
First a some what strange remark: it hasn't been tested on a real PC yet. So fat I tested it by using the PCEM-emulator. Why? Quite simple: I don't have to program a EEPROM for every change. A little BAT file takes care of assembling the source, calculating and inserting the checksum, and copying the result to the correct directory within PCem. After that it is just clicking a little button on the screen and I can see the result. And in the mean time I can keep sitting in my favourite chair
But I found out that using PCem didn't go without flaws. I found out that PCem contains at least two bugs:
- It doesn't handle the 8253 timers correctly. Landmark reports a FAILED for each timer. I never used Landmark in a real PC but I can safely assume that some of you readers must have used it and didn't encounter any problems with good timer. I reported the bug and the only comment was: you are not allowed to point to illegal downloads. OK Modem 7, you are warned Strange thing: not one remark about at least checking it.
Also strange: my ROM only has an error with timer two. Still have to look how Landmark tests the timers and why the difference causes errors for the the other two timers as well.
- The output of the 74LS322 keyboard buffer does not behave as it should. It outputs $00 instead of $FF when disabled. I reported that as well but I didn't even get a reply.
The two bugs had consequences for my ROM.
- Because it takes "quite some" time to find out that timer 2 is not working, I actually test timer 0 when the ROM thinks it is testing timer 0.
- I found a way to distinguish between the PC and XT but that doesn't work in PCem now due to that bug. Knowing I'm testing a XT compatible, I forced the ROM to handle the dip switch settings of a XT for the moment.
If you run the ROM, you will see that it is very fast compared to the Landmark ROM. Because it is still in the testing phase, I'm more interested in direct results like "does it work at all?" and "how do the error counters and the loop counter behave". So I shortened some time consuming tests.
The ZIP also contains the source code. It is made to compile under NASM. If you look for '###' you will find the parts where I skipped some loops, where I still have some doubts about the code or anything else that needs my attention.
Have fun!
Comments, ideas, suggestions and criticism is welcome of course