
IBM AT BIOS


POSTcode       TEST-DESCRIPTION

  01           80286 processor test (real mode).
               Verify flags, registers and conditional jumps.

  02           CMOS shutdown byte.
               Rolling bit written and verified at shutdown address.
               
  03           ROM checksum test of 32kB ROM modules (BIOS, ROM Basic).

  04           8253 timer 1 check (all bits on).
               Set timer count, check that timer 1 all bits on.

  05           8253 timer 1 check (all bits off).
               Set timer count, check that timer 1 all bits off.
               
  06           8237 DMA  0 initialization, channel register test.
               Disable 8237 DMA controller 0, write/read current address,
               word count registers (all channels).
               
  07           8237 DMA  1 initialization, channel register test.
               Disable 8237 DMA controller 1, write/read current address,
               word count registers (all channels).
               
  08           DMA page register test. Write/read all page registers.
  
  09           Storage refresh test. Verify storage refresh is occuring.
  
  0A           Soft reset (handle all possible conditions).
  
  0B           Issue a 8042 reset.
  
  0C           Test OK.
  
  0D           Write byte 0 of 8042 RAM.
  
  0E           Base 64kB RAM read/write test. Write/read/verify data
               patterns AA, 55, FF, 01 and 00 to 1st 64kB RAM, 
               verify RAM addressability.
               
  0F           Get the input buffer (switch settings).

  10           Video ROM and mode test.

  11           Verify 80286 LGDT/SGDT and LIDT/SIDT instructions.
               Load GDT and IDT registers with AA, 55, 00
               and verify correctness.
               
  12           Test protected mode registers and control flags and
               initialize 8259 interrupt controller 1.
               
  13           Initialize 8259 interrupt controller 2.
  
  14           Setup interrupt vectors to temp interrupt.

  15           Establish BIOS subroutine call interrupt vectors,
               move vector table to RAM.
               
  16           Test CMOS battery condition.
  
  17           Verify CMOS checksum.
  
  18           Enable protected mode (disable I/O & RAM-parity check).
  
  19           Set return address byte in CMOS RAM.
  
  1A           Set temporary stack for protected mode test and
               determine memory size.
               
  1B           Test RAM in 64kB blocks.
  
  1C           Set or reset the "512kB to 640kB installed RAM" flag.
  
  1D           Determine RAM above 1MB.
  
  1E           Set high memory size in CMOS.
  
  1F           Test address lines 19...23.
  
  20           Perform shutdown.
  
  21           Return 1 from shutdown, check for Video type and ROM.
               Initialize video controller, test video RAM (read/write
               patterns), check addressability.
               
  22           Enable video signal and set mode, test of CRT interface lines.
  
  23           Check for advanced video card, CRT error: 
               mono/color mode failed.
               
  24           8259 Interrupt controller test.
  
  25           Test (read/write) interrupt mask register.
  
  26           Check for unexpected interrupts (interrupts masked off).
  
  27           Check converting logic.
  
  28           Check unexpected NMI (NMI without IO/RAM parity enabled).

  29           Test data bus to timer 2.
  
  2A           8253 timer checkout.
  
  2B           Test timer interrupt and timer count registers.
  
  2C           Test timer interrupt in timer mode 3.
  
  2D           Check 8042 for last accepted command.
  
  2F           Additional protected mode RAM test. 
               Write/read data patterns to any RAM above 1st. 
               64kB, check addressability (checkpts. F0...).
               
  30           Shutdown return 2. Enable protected mode.
  
  31           Recover tested memory and address lines 0...23 test.
  
  33           Check for top of RAM and parity.
  
  34           Enable real mode, perform additional protected mode tests.
  
  * 34 after FA: Addressing low megabyte OK.

  35           Keyboard test. Reset of keyboard and check that
               scan code "AA" is returned to CPU, check for stuck keys.
               
  * 35 after FA: Error addressing low megabyte.
  
  36           Verify "AA" scan code.
  
  37           Display error message if unexpected scan code.
  
  38           Check for stuck keys.
  
  39           Keyboard error: check  8042 interface.
  
  3A           Initialize 8042, setup hardware interrupt tables.
  
  3B           Optional ROM check from C800h -> E000h in 2kB blocks.
  
  3C           Discette attachment test.
  
  3D           Initialize 1st floppy drive with drive type, 
               check for 2nd floppy.
               
  3E           Initialize hard drive.
  
  3F           Initialize printer.
  
  40           Enable hardware interrupt if 80287 is present.
  
  41           Check for system code at E000:0h.
  
  42           Initialize detected ROM.
  
  43           Jump to boot loader (INT19h).
  
  44           Attempt to boot from harddisk.
  
  45           Unable to find hard drive, jump to ROM BASIC.
  
  81           Build protected mode descriptor table.
  
  82           Virtual mode system initialization.
  
  90 - AE      Exception interrupt 00h to 1Fh occured.
  
  AF - B5      Interrupt 20h to 26h occured.
  
  DD           Transmit error code to MFG_PORT.
  
  
*** Protected mode tests: *************************************************

  F0           Enable and verify protected mode.
  
  F1           Test software interrupt 20h.
  
  F2           Test exception interrupt 13.
  
  F3           Verify 80286 LDT/SDT & LTR/STR instructions.
  
  F4           Verify 80286 bound instructions.
  
  F5           Verify 80286 push all & pop all instructions.
  
  F6           Check the VERR/VERW instructions (verify access rights).
  
  F7           Verify the APRL instruction functions.
  
  F8           Check instruction LAR.
  
  F9           Check instruction LSL.
  
  FA           Low megabyte chip select test:
   
                - Addressing low megabyte OK:     -> checkpoint 34h
                - Error addressing low MB:        -> checkpoint 35h.
