Code |
Explanation |
01 |
Disable NMI and test CPU registers |
02 |
Verify ROM BIOS checksum (32K at F800:0) |
03 |
Initial keyboard controller and CMOS RAM communication |
04 |
Disable DMA and interrupt controllers; test CMOS RAM interrupt |
05 |
Reset Video |
06 |
Test 8254 timer |
07 |
Test delta count for timer channel 2 (speaker) |
08 |
Test delta count for timer channel 1 (memory refresh) |
09 |
Test delta count for timer channel 0 (system timer) |
0A |
Test parity circuit and turn on refresh |
0B |
Enable parity check circuit and test system timer |
0C |
Test refresh trace link toggle |
0D |
Test refresh timing synchronization of high and low period |
10 |
Disable cache and shadow BIOS; test 64K base memory address lines |
11 |
Test base 64K memory for random addresses and data read/write |
12 |
Initialize interrupt vectors in lower 1K of RAM |
14 |
Test CMOS RAM shutdown register read/write; disable DMA and interrupt controllers |
15 |
Test CMOS RAM battery and checksum, and different options such as diagnostic byte |
16 |
Test floppy information in CMOS RAM; initialize monochrome video |
17 |
Initialise colour video |
18 |
Clear parity status if any |
19 |
Test for EGA/VGA video ROM BIOS at C000:0 and pass control to it if there |
1A |
Returned from video ROM. Clear parity status if any; update system parameters for any video ROM found; test display memory read/write |
1B |
Primary video adapter: check vertical and horizontal retrace; write/read test video memory |
1C |
Secondary video adapter: check vertical and horizontal retrace; write/read test video memory |
1D |
Compare and verify CMOS RAM video type with switches and actual video adapter; set equipment byte if correct |
1E |
Call BIOS to set mono/colour video mode according to CMOS RAM |
20 |
Display CMOS RAM write/read errors and halt if any |
21 |
Set cursor to next line and call INT 10 to display |
22 |
Display Power on "386 BIOS" message and check CPU speed is 25 or 33 MHz |
23 |
Read new cursor position and call INT 10 to display |
24 |
Skip 2 rows of text and display (C)AMI at bottom of screen |
25 |
Refresh is off, so call shadow RAM test |
F0 |
Failure inside shadow RAM test |
30 |
Verify (C)AMI... and overwrite with blanks before entering protected mode |
31 |
Enter protected mode and enable timer interrupt (IRQ0). Errors here indicate gate A20 circuit failed |
32 |
Size memory above 1Mb |
33 |
Size memory below 640K |
34 |
Test memory above 1Mb |
35 |
Test memory below 1Mb |
36 |
Unknown AMI function |
37 |
Clear memory below 1Mb |
38 |
Clear memory above 1Mb |
39 |
Set CMOS shutdown byte to 3 and go back to real mode |
3A |
Test sequential and random data write/read of base 64K RAM |
3B |
Test RAM below 1Mb and display area being tested |
3C |
Test RAM above 1Mb and display area being tested |
3D |
RAM test OK |
3E |
Shutdown for return to real mode |
3F |
Back in real mode; restore all variables |
40 |
Disable gate A20 since now in real mode |
41 |
Check for (C)AMI in ROM |
42 |
Display (C)AMI message |
43 |
Clear <Esc> message; test cache |
4E |
Process shutdown 1; go back to real mode |
4F |
Restore interrupt vectors and global data in BIOS RAM area |
50 |
Test 8237 DMA controller and verify (c)AMI in ROM |
51 |
Initialize DMA controller |
52 |
Test various patterns to DMA controller |
53 |
Verify (C)AMI in ROM |
54 |
Test DMA control flip-flop |
55 |
Initialize and enable DMA controllers 1 and 2 |
56 |
Initialize 8259 interrupt controllers?aclear write request and mask registers |
57 |
Test 8259 controllers and setup interrupt mask registers |
61 |
Check DDNIL status bit and display message if clear |
70 |
Perform keyboard BAT (Basic Assurance Test) |
71 |
Program keyboard to AT type |
72 |
Disable keyboard and initialize keyboard circular buffer |
73 |
Display "DEL" message for setup prompt and initialize floppy controller/drive |
74 |
Attempt to access floppy drive |
75 |
If CMOS RAM is good, check and initialize hard disk type identified in CMOS RAM |
76 |
Attempt to access hard disk and set up hard disk |
77 |
Shuffle any internal error codes |
78 |
Verify (C)AMI is in ROM |
79 |
Check CMOS RAM battery and checksum; clear parity status |
7A |
Compare size of base/extended memory to CMOS RAM info |
7B |
Unknown AMI function |
7C |
Display (C)AMI |
7D |
Set/reset AT compatible memory expansion bit |
7E |
Verify (C)AMI is in ROM |
7F |
Clear <DEL> message from screen and check if DEL pressed |
80 |
Find option ROM in C800 to DE00 and pass control to any found |
81 |
Return from adapter ROM; initialize timer and data area |
82 |
Setup parallel and serial port base info in global data area |
83 |
Test for presence of 80387 numeric coprocessor and initialize |
84 |
Check lock key for keyboard |
85 |
Display soft error messages if any CMOS RAM data error was detected such as battery or checksum |
86 |
Test for option ROM in E000:0 and pass control to any found |
A0 |
Error in 256 Kbit or 1Mbit RAM chip in lower 640K memory |
A1 |
Base 64K random address/data pattern test (only in 386APR and Presto 386SX BIOS) |
A9 |
Initialize on-board VGA (Presto 386SX) |
B0 |
Error in 256 Kbit RAM chip in lower 640K memory |
B1 |
Base 64K random address/data pattern test (only in Presto 386SX BIOS) |
E0 |
Returned to real mode; initialise base 64K RAM (Presto) |
E1 |
initialize base 640K RAM (Presto) |
EF |
Configuration memory error in Presto -can't find memory |
F0 |
Test shadow RAM from 0:4000 RAM area |
00 |
Call INT 19 boot loader |