Parent


Ruuds Diagnostic ROM  -  Breakdown  -  Version 2019-07-23


Below, 'Checkpoint' means send the specified byte (which is in hex) to I/O ports 80h, 378h, and 278h.

I/O ports 378h and 278h are parallel (printer) ports.  If you have a parallel (printer) port at either of those ports, then the device shown at here can be used to view bytes sent to the port.

WARNING:  Note that the parallel (printer) port on an MDA (monochrome) card is typically at 3BCh, and is therefore, unusable.

On an IBM 5150 or 5160, rarely does a POST card work to monitor bytes sent to I/O port 80h.  Do not be surprised if it does not work.  More information about that is at here.




For version 2019-07-23

The information in the following table was sourced from file DiagROM.asm



STEP
Video
enabled ?

           ACTION

           IF ERROR

           COMMENT
1 No checkpoint 00  
2 No Part 1 of CPU test.  If an error, send checkpoint 80 (hex) then halt.  
3 No checkpoint 01    
4 No Part 2 of CPU test.  If an error, send checkpoint 80 (hex) then halt.  
5 No checkpoint 02    
6 No See if 8-bit checksum of ROM is 00h.  If not 00h, send checkpoint 81 (hex) then halt.  Ruuds Diagnostic ROM
7 No checkpoint 03    
8 No Quote: 'Initialise the 8255 multi-port chip'    
9 No Quote: 'Make sure that turbo is off and disable memory parity'    
10 No Quote: 'Disable NMI interrupts'    
11 No Quote: 'Enable the expansion unit'    Extender card for IBM 5161
12 No Quote: 'Disable the CGA and MDA video system ...'    
13 Yes Quote: 'Initialise the MDA port'    
14 Yes Quote: 'Initialise the CGA port'    
15 Yes checkpoint 04    
16 Yes Quote: 'Clear MDA screen', then 'Set the correct mode'    
17 Yes Quote: 'Clear CGA screen', then 'Set the correct mode'    
18 Yes checkpoint 05    
19 Yes Quote: 'Make the cursor invisible for MDA'    
20 Yes Quote: 'Make the cursor invisible for CGA'    
21 Yes checkpoint 06    
22 Yes Quote: 'Prepare the RAM for storage'    
23 Yes checkpoint 07    
24 Yes On-screen, display the name of the program and the version.    
25 Yes Beep the speaker.    A single beep.
26 Yes checkpoint 08    
27 Yes Display "Testing CPU"    
28 Yes checkpoint 09    
29 Yes Part 1 of CPU test.  If an error, send checkpoint 82 then halt.  
30 Yes checkpoint 09    
31 Yes checkpoint 0A    
32 Yes Part 2 of CPU test.  If an error, send checkpoint 82 then halt.  
33 Yes checkpoint 0C    
34 Yes Display "Diagnostic ROM checksum"    
35 Yes checkpoint 0E    
36 Yes See if 8-bit checksum of ROM is 00h.  If not 00h, send checkpoint 83 (hex) then halt.  Checkpoint 83 (hex) will never occur, because this check was done earlier at step 6.
37 Yes checkpoint 12 (hex)    
38 Yes Display "8253 timer channel 0"    
39 Yes checkpoint 14 (hex)    
40 Yes Quote: 'Disable the DMA controller'    
41 Yes Quote: 'Disable the speakers and enable timer 2'    
42 Yes checkpoint 16 (hex)    
43 Yes Test 8253 timer channel 0.  If an error, send checkpoint 84.  
44 Yes Display "8253 timer channel 1"    
45 Yes checkpoint 18 (hex)    
46 Yes Test 8253 timer channel 1.  If an error, send checkpoint 86.  
47 Yes Display "8253 timer channel 2"    
48 Yes checkpoint 1A    
49 Yes Test 8253 timer channel 2.  If an error, send checkpoint 88.  
50 Yes checkpoint 1C    
51 Yes Display "8237A DMA controller"    
52 Yes checkpoint 1E    
53 Yes Test the 8237A DMA controller.
checkpoint 22 will be output many times during this test.
 If an error, send checkpoint 8A then halt.  
54 Yes checkpoint 24 (hex)    
55 Yes Quote: 'Init the DMA and 8253 so the DRAM will be refreshed from now on'    
56 Yes checkpoint 26 (hex)    
57 Yes Quote: 'Check if a parity error occurs even if the parity check has been disabled'    
58 Yes Parity error?  If a parity error, send checkpoint 8C.  
59 Yes checkpoint 2A    
60 Yes Display "Check first 2 KB of RAM"    
61 Yes checkpoint 2E    
62 Yes Check the first 2 KB of RAM. If an error, send checkpoint 8E then put error details on-screen, then halt the CPU.  
  ...    
  ...    
  ...    
  ...    
  ...    
  ...    
  ...