POST codes of IBM AT BIOS
01 80286 processor test real mode, verifies flags, registers & cond. jumps
02 ROM checksum test1, tests 32K ROMs of POST, BASIC & BIOS
03 CMOS shutdown Byte, test rolling bit pattern @ shutdown address
04 8254 timer1 all bits 1 - set timer count, check all bits 1
05 8234 timer1 all bits 0 - -------"-------, -----"------ 0
06 8237 DMA0 init., change reg test, disable DMActl0, R/W cur. adr all ch.
07 8237 DMA1 init., change reg test, disable DMActl1, R/W cur. adr all ch.
08 DMA page reg test, W/R all apge registers
09 storage refresh test - verify refresh
0A soft reset
0B reset 8042
0C test ok
0D write byte 0 of 8042 memory
0E fill memory with data
0F get I/P buffer switch settings
10 issue self test-check, 55H is received
11 initialize display row column
12 test protected mode registers
13 initialize 8259 INTctl2
14 set INT vectors to temp. interrupt
15 establish BIOS INT call subroutine vectors, verify CMOS checksum ok
16 set data segment (for?)
17 set defective battery flag
18 ensure CMOS dividers set
19 set return address Byte in CMOS memory
1A set temporary stack, protected mode test and determine memory size -
runs in protected mode to address all RAM, checks (MSW) for protected
mode, base memory size saved. Memory size determined with planar and
I/O parity diabled. Soft reset checks for parity error.
1B segment address 01-0000 (second 64K)
1C set or reset 512 to 640K installed RAM?, protected mode test and memory
size determine >640K
1D segment address 10-0000 (>640K)
1E set expanded memory size determine in CMOS
1F test address lines 19-23
20 cause a shutdown
21 return 1 from shutdown. Initialize & start CRTctl 6845,test video -
W/R reset video enable signal. select alpha mode (40x25BW), W/R patterns
check addressability, error: 1 long 2 short beeps - port 80 not used!
22 enable video signal and set mode; display horizontal bar on screen.
CRT lines intrf. test, sense on/off transistion of video enable and HS
23 check for advanced video card
24 8259 INTctl test, R/W IntMaskreg with 1 & 0, enable INTs, mask device
INTs off, check for hot (not expected) INTs
25 test INT mask registers
26 check for hot INTs
05 display 101 error (?)
27 check the converting logic 106 error
28 check hot NMI INT (error 107)
29 test data bus to timer 2 (error 108), 8254 timer check, verify timer 0
counts ok
2A test (error 102)
2B too fast
2C too slow (error 103)
2D check 8042 for last command accepted (error 105). R/W mem test (prot.
mode) W/R data patterns to mem above 64K, mem addressability is checked
2F proceed next test if warmstart
30 set shutdown return 2
31 enable protected mode
32 address lines 0-15
33 next block of 64K
34 back to real mode, test done
35 test for error
34 restore checkpoint
35 keyboard test (Mfg burn-In?)
36 check for 'AA' scan code
38 stuck key?
39 error check 8042 working
3A init. 8042
3B check for ROM in 2K blocks
3C check for IPL diskette drive
3D init floppy for drive type
3E init hard file
3F init printer
40 enable H/W INT if 80287
41 system code @ E000:0
42 exit to system code
43 goto boot loader
44 attempt boot from hard-disk
45 unable to boot from disk, goto BASIC, POST & BIOS untility routine,
CMOS_READ, CMOS_WRITE, Manuf. loop error, mode flag
81 build descriptor table
82 switch to virtual mode
90 - B6 EXEC_00 to EXEC_31 and SYS_32 to SYS_38 tests
DD roll error code to MFG_PORT
F0 set data segment
F1 INT test (programmed INT 32)
F2 exception INT (13d)
F3 verify 286 LDT/SDT, LTR/STR
F4 verify 286 bound instruction
F5 verify push_all & pop_all instruction
F6 verify access rights function
F7 verify ARPL functions *
F8 verify LAR instruction
F9 verify LSL instruction
FA Low Meg. chip select test