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