Hi Tzzantaru,
Nice to hear that the ISA bus is not dead and your analyzer card works on ISA as well. 😀
Thanks for the POST codes sequence video. I see the codes:
CF, C0, 00, C1, 0C, C5, 01, 05, 0C, 0D, and 41.
Now that I’ve completed the bootblock disassembly of the P5MVP3 Rev:D BIOS, I can give you my analysis of this POST code sequence.
I’ve found that the recovery mode starts at code 01. So the 01, 05, 0C, 0D, 41 sequence is part of the bootblock recovery.
This means that the decision to go to recovery mode is made before code 01.
Analysis
When I follow the bootblock code from the start, I see that the first two POST steps CF and C0 in this BIOS do the basic system setup:
CF - Test and clear CMOS register 3Dh; do early CPU detection and store result in CMOS_3Dh.
C0 - Early init chipset registers; Set RTC Defaults if invalid; Set system ports values to Default; Clear all DMA Page registers; Clear Status Shutdown byte in CMOS reg 0Fh if not AAh; Set CMOS 3Fh bit 1 if keyboard controller selftest is successful.
The next code 00 is not a POST step, but just a spurious code emitted during reset of the DMA Page registers.
Sofar, the BIOS doesn’t hang so CMOS, chipset, and keyboard controller access works normally and they all appear to be functional.
Now we come up to POST steps C1 and 0C where more tests are performed.
C1 – This step is all about testing RAM. First a RAM type detection is made, followed by a test of the first 256KB of memory. If this test fails, a beep code is emitted and POST is halted, exactly as you saw when no RAM was installed.
If the memory typing and test is successful, the whole 128KB BIOS is copied to lower RAM at address 1000:0000 and run from there. Then the L1 cache is Enabled and the code continues with POST 0C.
0C – This step is where the decision is made if the BIOS can continue with a normal boot-up or not. At this stage, the BIOS is still not decompressed and first a checksum check on the compressed Main System module (original.tmp) is made. Second, a scan for the location of the decompression engine is done and when found, the checksum of its 4KB memory block is checked.
If either of these tests fail, the next normal mode POST step C3 is skipped and the code continues with POST C5.
(Note that this POST_0C is not the same routine as step 0C in the recovery mode sequence. So there are 2 separate POST step 0C routines in this BIOS, each with its own function. Weird.)
C5 – This step prepares the BIOS for the recovery mode.
The BIOS is copied from lower RAM to shadow RAM at address E000:0 to F000:FFFF and this shadow RAM block is then write protected. The L1 cache is Disabled, and the code jumps to step 01 to start the recovery mode.
Conclusion
Normally, POST step 0C is followed by step C3. POST_C3 is where the bootblock code jumps to the decompression engine to decompress all BIOS modules to their allocated location in memory, to continue the normal POST sequence.
Because we don’t see code C3, but C5 instead, we know that one of the checks in POST_0C failed. This again is a strong indication of a corrupt BIOS, or a failed flashchip.
Although it still can be a memory problem, I consider this unlikely because the BIOS doesn’t hang at POST_C1.
Although this analysis doesn’t explain the no-video problem with the ISA graphics card, I expect the board to function normal again when you are able to correct the BIOS problem.
Cheers, Jan