home *** CD-ROM | disk | FTP | other *** search
Text File | 1993-03-01 | 31.6 KB | 1,166 lines |
-
-
- AMI BIOS POWER ON SELF TEST FUNCTIONS
-
-
-
-
-
- On cold boot or hard reset AMI BIOS performs system diagnostics
- and initialization operations which can be broadly classified
- into the following :
-
-
- Processor register test
-
- ROM BIOS checksum check
-
- Keyboard controller test
-
- CMOS Shutdown register test
-
- Channel 2,1,0 timer test
-
- Memory refresh test
-
- Base 64KB RAM test
-
- CACHE memory test
-
- CMOS battery, options set, checksum check
-
- Display type verification
-
- Entering protected mode
-
- Address line test and memory size finding
-
- Conventional and Extended memory test
-
- DMA controller test
-
- Keyboard test
-
- System configuration verification and setup
-
-
-
-
- 1.0.1 Processor register test..
-
- Procedure..
-
- All processor registers are loaded with values 05555h, 0aaaah, 0cccch,
- 0f0f0h and checked if they retain the values.
-
- Possible errors..
-
- error: Registers do not retain the values
- Action: 5 short beeps in an infinite loop. System does not
- proceed further.
-
- 1.0.2. ROM BIOS Checksum check..
-
- Procedure..
-
- Word addition of the BIOS ROM starting at F000:8000h till F000:FFFEh is
- taken. The word addition (checksum) should be 0.
-
- Possible errors..
-
- error: Checksum is nonzero
- action: 9 short beeps in an infinite loop. System does not
- proceed further.
-
- 1.0.3. Keyboard controller test..
-
- A keyboard controller BAT command is issued(command 0AAH) and the
- response is checked. Response should be 55H.
-
- Possible errors..
-
- error: Return value <> 55H
- action: 6 short beeps issued in an infinite loop. System does
- not proceed any further.
-
- 1.0.4. CMOS Shutdown register test..
-
- Hex value 55h is written into and read back from CMOS shutdown register
- 8fh. The value read back should be 55h. The same test is then performed
- with a hex value 0AAh.
-
- Possible errors..
-
- error: Values read back not same as values written.
- action: Error "CMOS INOPERATIONAL" is registered and the system
- will stop after the display is initialized with the
- above error displayed on the screen.
-
-
- 1.0.5. Channel 2,1,0 timer test..
-
- A. Channel 2 timer test..
-
- Procedure..
-
- Channel 2 timer gate and speaker is disabled and the gate bit is verified to
- see if the gate is still disabled.
-
- Channel 2 timer is programmed for 2 byte count. A test value of 55h is
- written to high byte and AAh to low byte of channel 2 timer. Since the
- timer gate is disabled it should retain these values.
-
- Possible errors..
-
- error: channel 2 timer gate is still enabled
- action: Register "CH-2 timer error" to be displayed before
- system boot.
-
- error: The channel 2 timer does not retain the 55h,AAh written
- to it.
- action: Register "CH-2 timer error" to be displayed before
- system boot.
-
- B. Channel 2, Channel 1 and Channel 0 delta count test..
-
- Procedure..
-
- Select channel 2 timer and load with count data 0ffh. Wait for a predefined
- time. Read channel 2 timer value and check if the difference between the
- data written and read is within the tolerance limit. If the operation is
- successful, try the same with count data 0cch.
-
- Do the same operations on channel 1 and channel 0 timer in the same
- order.
-
- Possible errors..
-
- error: Channel 2 timer is not counting at all
- action: Register "CH-2 timer error" to be displayed before
- system boot.
-
- error: Channel 2 timer in not counting properly. The delta
- diference is not within tolerence limit.
- action: Register "CH-2 timer error" to be displayed before
- system boot.
-
- error: Channel 1 timer is not counting at all.
- action: 4 beeps and system halted.
-
-
-
- error: Channel 1 timer count is not within tolerence limit.
- action: 4 beeps and system halted.
-
- error: Channel 0 timer is not counting at all.
- action: 4 beeps and system halted.
-
- error: Channel 0 timer count is not within tolerence limit.
- action: 4 beeps and system halted.
-
-
- 1.0.6. Refresh test...
-
- Procedure..
-
- Enable channel 1 (Refresh) timer and channel 0 (System timer). Test refresh
- signal changing from low-to-high and high-to-low with time out count of
- 0ffffh.
-
- Wait for refresh signal to be high. Use counter 1 to count till refresh
- becomes low. Use counter 2 to count till refresh becomes high. The
- difference between counter 1 and counter 2 should not be more than 6.
-
- Possible errors...
-
- error: A time out has occured while testing refresh
- low-to-high and high-to-low.
- action: 1 beep in an infinite loop and system does not proceed
- further.
-
- error: The difference between counter 1 and counter 2 is more
- than 6.
- action: 1 beep in an infinite loop and the system does not
- proceed further.
-
-
- 1.0.7.Base 64KB RAM test...
-
- Procedure...
-
- On first 64kb of memory do a Address test, Sequential data write & read
- test, Random data write & read test. After all tests are over read the
- parity port for any parity error which could have occured during the tests.
-
- Possible errors...
-
- error: Error in address line test
- action: 3 beeps in an infinite loop and system does not proceed
- further.
-
- error:: Error in sequential data write & read test
- action: 3 beeps in an infinite loop and system does not proceed
- further.
-
-
- error: Error in random data write & read test.
- action: 3 beeps in an infinite loop and system does not proceed
- further.
-
- error: A parity error has occured during the tests.
- action: 3 beeps in an infinite loop ands the system does not
- proceed further.
-
-
- 1.0.8. Cache memory test...
-
-
- A. Check the presence of cache memory
-
- Procedure..
-
- Disable cache memory
-
- Take timing to read 32kb memory 9 times and take the minimum value
-
- Enable cache memory
-
- Take timing to read 32kb memory 9 times and take the minimum value
-
- If the minimum value of timing taken with cache on is greater than
- minimum value of timing taken with cache memory off, then indicate in
- global data area that cache memory is not present.
-
- If cache memory is found present then with cache on test 32kb of memory.
-
- Possible errors..
-
- error: Error in testing cache memory
- action: Register "CACHE MEMORY BAD, DO NOT ENABLE CACHE" error
- to be displayed on the screen.
-
-
- B. Test 64kb cache memory
-
- Test 1st 32kb cache memory
-
- Test 2nd 32kb cache memory
-
- Possible errors..
-
- error: Error in either 1st or 2nd 32kb cache memory test.
- action: Disable cache and register "CACHE MEMORY BAD, DO NOT
- ENABLE CACHE" error to be displayed on the screen.
-
- 1.0.9. CMOS battery, options and checksum check...
-
- Read CMOS status register (8dh) and check if battery power is on.
-
- Read CMOS diagnostic byte and check if CMOS options set.
-
- If CMOS battery power is ok and options set then calculate CMOS
- checksum for CMOS registers 10h thru 2dh by a byte addition to a word
- result. Read the checksum word stored in registers 2eh and 2fh and
- compare it with the calculated checksum.
-
- Possible errors..
-
- error: CMOS battery state is low error.
- action: Register "CMOS battery state low" error to be displayed before
- system boot.
-
- error: CMOS system options not set error.
- action: Register "CMOS system option not set" error to be displayed
- before system boot.
-
- error: CMOS checksum mismatch
- action: Register "CMOS checksum error" to be displayed before system
- boot.
-
-
- 1.0.10. Display type verification...
-
- A. finding out Display type
-
- Procedure..
-
- Get display switch setting.
-
- If display switch mono then segment b000h else segment b800h.
-
- Do a display memory sequential write and read test on 4kb of memory.
-
- If display memory write and read test ok then do a horizontal and vertical
- retrace test.
-
- If memory test ok and all retrace test ok then leave the mode of display to
- what ever is tested and go to check CMOS display type.
-
- If memory test error or any retrace test fails then try the other mode. In
- other words if you had color try mono and if you had mono try color.
-
- Do a memory test with the new mode.
-
- Do horizontal and vertical retrace with the new mode.
-
- If memory test ok and all retrace tests ok then leave the mode of display
- to whatever is tested and go to check CMOS display type.
-
- if memory test error or retrace test error with the new mode then give one
- long and 8 short beeps and continue after setting the final mode to mono.
-
- Possible errors..
-
- error: memory test error with new mode set
- action: 1 long beep and 8 short beeps
-
- error: retrace test failed with new mode
- action: 1 long beep and 8 short beeps.
-
- B. Check CMOS display type and display switch setting
-
- Check the final mode set after finding out display type with the display
- switch setting on the motherboard and the display type set in the CMOS by
- the user.
-
- Possible errors..
-
- error: Display switch setting on mother board is not same as what BIOS
- finds out.
- action: Register "Display switch setting not proper" error to be displayed
- before system boot.
-
- error: Display type set in CMOS is different from what BIOS has found
- out.
- action: Register "CMOS display type mismatch" error to be displayed
- before
- system boot.
-
-
- 1.0.11. Entering protected mode...
-
- Procedure..
-
- Get into protected mode using BIOS interrupt 15h function 89h.
-
- Possible errors..
-
- error: Processor not in protected mode
- action: Display "8042 GATE-A20 ERROR, SYSTEM HALTED"
-
- error: Virtual mode exception error
- action: 7 beeps in an infinite loop. System does not proceed
- further.
-
- 1.0.12. Address line test and memory size finding..
-
- Procedure..
-
- Write a test pattern at 0:0h
-
- Starting from bottom of the conventional memory space (640kb boundary) do
- a address line test 64kb at a time and come down till there is a segment
- where address line error is not found. That will be the bottom of the
- conventional memory.
-
- Now read back the test pattern at 0:0h. This should be same as the test
- data written at 0:0h before the test was performed. If the test pattern at0:0h is overwritten then there is a address line error because while doing
- address line test, the addresses are generated in such a way that only one
- bit is set in the address line everytime. If there is a failure in that bit of
- address line then the address generated will be 0. So the data written at
- that address will actually be written at 0:0h.
-
- Write a test pattern at 0:0h.
-
- Starting from the bottom of the Extended memory (16MB boundary) do a
- address line test till there is a segment where address line error is not
- found. That will be the bottom of extended memory.
-
- Now read back the data at 0:0h. This should be same as the test data
- written at 0:0h before the test is peformed
-
- Possible errors..
-
- error: Test data at 0:0h is destroyed while trying to find out
- the conventional memory size.
- action: 3 beeps in a loop and system does not proceed any
- further.
-
- error: Test data at 0:0h is destroyed while trying to find out
- the extended memory size.
- action: 3 beeps in an infinite loop and the system does not
- proceed further.
-
-
- 1.0.13. Conventional and Extended memory test..
-
- Procedure..
-
- Clear all the conventional memory 64kb at a time by filling it with 0.
-
- Clear all Extended memory 64kb at a time by filling if with 0.
-
-
- Starting from 2nd 64kb in conventional memory space do the following 64kb
- at a time for the size of conventional memory found in step 13:-
-
- IF <ESC> is pressed
-
- skip all test
-
- Fill the 64kb memory with 0.
-
- Go back to real mode
-
- Display memory size tested so far
-
- Go back to protected mode
-
- ELSE
-
- Do a Sequential Write and Read test
-
- Do a Random Write and Read test
-
-
- Check if Parity error is registered during any of the above
- 2 tests.
-
- Fill memory tested with 0
-
- Go back to real mode
-
- Display memory size tested so far
-
- Go back to protected mode
-
- Starting from 1st 64kb in Extended memory space do the following 64kb at
- a time for the size of extended memory found in step 13:-
-
- IF <ESC> is pressed
-
- Skip all test
-
- Fill the memory with 0.
-
- Go back to real mode
-
- Display memory size tested so far
-
- Go back to protected mode
-
-
- ELSE
-
- Do a Sequential Write and Read test
-
- Do a Random Write and Read test
-
- Check if parity error is registered during any of the above
- 2 tests.
-
- Fill memory tested with 0
-
- Get into real mode
-
- Display memory size tested so far
-
- Go back to protected mode
-
- Possible errors...
-
- error: Memory Write and Read test error
- action: 1 long beep and 3 short beeps produced in the speaker.
- The memory size is trimmed to what ever was found good.
-
-
- error: Parity error registered during Sequential and Random
- test on any 64kb segment.
- action: 1 long beep and 3 short beeps produced in the speaker.
- The memory size is trimmed to what ever was found good.
-
- error: Virtual mode exception error has occured
- action: 7 beeps in an infinite loop and system does not proceed
- further.
-
-
- 1.0.14. DMA Controller test
-
- 4 different patterns are written into and read back from DMA page
- registers 80h thru 8fh. The data read back should be same as the data
- written. The data patterns used are aa55h,55aah,cc0fh,0000h.
-
- The same patterns are then written into, read back from DMA unit 1
- registers 00 thru 07. The data read back should be same as the data
- written.
-
- The same patterns are them written into, read back from DMA unit 2
- registers C0h thru C7h. The data read back should be same as the data
- written.
-
- Possible errors...
-
- error: Any one of the DMA page registers did not retain the
- data.
- action: "DMA ERROR, SYSTEM HALTED"
-
- error: Any one of the DMA unit 1 registers did not retain the
- data.
- action: "DMA #1 ERROR, SYSTEM HALTED"
-
- error: Any one of the DMA unit 2 registers did not ratain the
- data.
- action: "DMA #2 ERROR, SYSTEM HALTED"
-
-
- 1.0.15. Keyboard test
-
- Procedure..
-
- Output keyboard self test command 0ffh. The keyboard should return 0fah
- and 0aah.
-
- If the data returned is 0fah and 0aah then check if any key is stuck on
- the keyboard. This is done by enabling keyboard enable bit, inhibit bit, sys
- bit, output buffer full bit and then checking for output buffer full bit going
- low.
-
-
-
- If any error occured during the above two tests, keyboard interface test is
- performed. This is done by writing command 0abh to keyboard controller
- and reading the response. The response should be 00h.
-
- Possible errors..
-
- error: Keyboard self test command failed but the keyboard
- interface test command was successful.
- action: Register soft error "Keyboard error" to be displayed
- before system boot.
-
- error: Keyboard self test command passed, keyboard was found
- to be stuck and keyboard interface command passed.
- action: Register soft error "Keyboard error" to be displayed
- before system boot.
-
- error: Keyboard self test command failed or keyboard was found
- stuck and the keyboard interface command failed.
- action: Register "KB/Interface error" to be displayed before
- system boot.
-
- 1.0.16. System configuration verification and setup
-
- A. Floppy disk setup..
-
- Procedure..
-
- Initialize floppy global data area.
-
- reset floppy controller.
-
- For floppy drive 0 and 1 try to find out the presence of the drive and then
- sense the drive type in the following manner:-
-
- Seek to track 48
-
- Seek backwards till track 0
-
- If seek to track 0 is not successful then it is a 40 track
- drive which is 360kb. So set global as 360kb disk type.
-
- If seek to track 0 is successful, it is a 80 track drive so
- check CMOS for type of drive selected through the SETUP
- program.
-
- For 720kb drive set 720kb disk type in global.
-
- If 1.2mb or 1.44mb in CMOS, then set 2 or 7 respectively in
- the global which means that media has to be established for
- these drives every time a new disk is put in. This is
- necessary because a 1.2mb drive can take 1.2mb or 360kb disk
- and a 1.44mb drive can take either 720kb or 1.44mb disk.
-
-
-
- Possible errors...
-
- error: Reset floppy controller failure
- action: Register "FDD controller failure" error to be displayed
- before system boot.
-
- B. Hard disk Setup
-
- Procedure..
-
- Reset hard disk controller.
-
- If CMOS bad or no drive type set, skip hard disk check otherwise do hard
- disk tests in following manner:-
-
- Redirect Int 13h to Int 40h for floppy and point Int 13h to hard disk
- routines.
-
- Depending upon the CMOS Drive type value, point Int 41h and Int 46h
- vectors to ROM drive type parameters for drive C and D respectively.
-
- Initialize the global data area for hard disks.
-
- Issue controller diagnostics command for the hard disk controller.
-
- Set parameters from drive type table for drive 0 and recalibrate on drive 0
- if CMOS type is set for drive 0.
-
- Set parameters from drive type table for drive 1 and recalibrate on drive 1
- if CMOS type is set for for drive 1.
-
- For drive 0, if CMOS type is set, do verify on each sector in the last
- track. At least one of the sectors in the last track should verify ok.
-
- For drive 1, if CMOS isset, do verify on each sector in the last track. At
- least one of the sectors in the last track should verify ok.
-
- Possible errors..
-
- error: Hard disk controller diagnostics failed
- action: Register "HDD controller error" to be displayed before
- system boot.
-
- error: Recalibrate on drive 0 failed.
- action: Register "C:Drive failure" error to be displayed before
- system boot.
-
- error:: Recalibrate on drive 1 failed.
- action: Register "D:Drive failure" error to be displayed before
- system boot.
-
-
-
- error: None of the sectors in last track on drive 0 verified
- ok.
- action: Register "C:Drive error" error to be displayed before
- system boot.
-
- error: None of the sectors in last track on drive 1 verified
- ok.
- action: Register "D:Drive error" error to be displayed before
- system boot.
-
-
- C. Memory size verification
-
- Procedure...
-
- If CMOS battery state is ok and CMOS checksum is ok then do the
- following:-
-
- Check Conventional memory size in CMOS with actual memory size found
- out by BIOS.
-
- Check Extended memory size in CMOS with actual extended memory size
- found by BIOS.
-
- Possible errors..
-
- error:: Actual conventional memory size found by BIOS is not
- same as memory size stored in CMOS.
- action: Register "CMOS memory size mismatch" error to be
- displayed before system boot.
-
- error: Actual extended memory size found by BIOS is different
- from memory size stored in CMOS.
- action: Register "CMOS memory size mismatch" error to be
- displayed before system boot.
-
-
- D. Optional ROM control
-
- Procedure..
-
- Start from segment C800h segment and continue with an increment of 80h
- till E000h segment with the following operation:-
-
- Check if word at offset 0 is 0aa55h.
-
- If word at offset 0 is 0aa55h then do the following:-
-
- Take the size of the ROM from offset 2. The size should be # of 512 bytes
- in the optional ROM. Now calculate the checksum of the ROM by adding all
- the bytes. The checksum should be 0. If the checksum is 0 then give
- control to the optional ROM at offset 3
- by a FAR CALL.
-
- E. Initialize Timer data area
-
- Procedure..
-
- Check if CMOS battery state ok and CMOS checksum ok. If both of them
- are ok then do the following:-
-
- Read real time clock through BIOS interrupt routine 1Ah. Compare the
- hour, minute and second BCD values to find if they are within limit. Hour
- should be <=24, Minute<=60 and second<=60. If they are within limit then
- change them from BCD to Binary value and in terms 1/18th of a second.
- Save them in timer data area which is 2 words and is used by the timer
- routine to update the count in every 1/18th of a second.
-
- Possible errors..
-
- error: Error returned by int 1Ah function.
- action: Register "CMOS time & date not set" to be displayed
- before system boot.
-
- error: Hour, minute and seconds not within limit.
- action: Register "CMOS time & date not set" error to be
- displayed before system boot.
-
-
- E. Setup Printer and RS232 Ports
-
- Procedure..
-
- Check for presence of printer ports 03bch, 0378h, 0278h by a port pattern
- test. In the port pattern test write values 0aa55h, 55aah, cc00h,0000h to
- these ports in these order and read them back after writing to check if
- they retain the values. For the ports that retain the values, add them to
- the system data area starting at 40h:8.
-
- Check for presence of RS232 ports 03f8h, 02f8h, 03e8h, 02e8h in the same
- way as above and add them to the system data area at 40h:0.
-
- F. Check for Keyboard lock
-
- Procedure..
-
- Read keyboard status port and check the keyboard lock bit.
-
- Possible errors..
-
- error: Keyboard is locked
- action: Register "Keyboard is locked" error to be displayed
- before system boot.
-
- G. Display all error messages
-
- H. System ROM control
-
- Procedure..
-
- Check for System ROM at segment e000h in following manner:-
-
- Check if at offset 0 the word value is 0aa55h. If the value is 0aa55h then
- calculate a byte checksum for 64kb by adding all bytes. The checksum
- should be 0. If the checksum is zero then give control to the optional ROM
- at offset 3.
-
-
-
-
- 2.0 Classification of error messages..
-
- The error messages can be classified into 4 diferent categories
-
- Fatal errors through beeps
-
- Fatal errors through display
-
- Non fatal errors through beeps
-
- Non fatal errors through display
-
- 2.1 Fatal errors through beeps..
-
- The fatal errors through beeps are conveyed through a number of beeps in
- an infinite process and there is enough time gap between tow subsequent
- sets of error beeps to calculate the number in each set.
-
- 2.1.1 One beep (DRAM Refresh failure)
-
- Occurrence..
-
- Refresh test
-
- 2.1.2 Three beeps (Base 64kb RAM failure)
-
- Occurrence..
-
- Base 64kb RAM test
-
- Address test and memory size finding
-
- 2.1.3 Four beeps (System timer failure)
-
- Occurrence..
-
- Channel 1 timer test
-
- Channel 0 timer test
-
- 2.1.4 Five beeps (Processor failure)
-
- Occurrence..
-
- Processor register test
-
- 2.1.5 Six beeps (Keyboard controller Gate A20 error)
-
- Occurrence..
-
- Keyboard controller test
-
-
- 2.1.6 Seven beeps (Virtual mode exception error)
-
- Occurrence..
-
- Getting into protected mode
-
- Conventional and Extended memory test
-
-
- 2.1.7 Nine beeps (ROM BIOS Checksum failure)
-
- Occurrence..
-
- ROM BIOS Checksum check
-
-
- 2.2 Fatal errors through display..
-
- When these errors are displayed the screen is cleared and after the error
- message display is also followed by a line saying "SYSTEM HALTED"
-
- 2.2.1 CMOS INOPERATIONAL
-
- Occurrence..
-
- CMOS Shutdown register test
-
- 2.2.2 8042 GATE-A20 ERROR
-
- Occurrence..
-
- Getting into protected mode
-
- 2.2.3 INVALID SWITCH MEMORY FAILURE
-
- 2.2.4 DMA ERROR
-
- Occurrence..
-
- DMA Controller page register test
-
- 2.2.5 DMA #1 ERROR
-
- Occurrence..
-
- DMA Unit 1 register test
-
- 2.2.6 DMA #2 ERROR
-
- Occurrence..
-
- DMA Unit 2 register test
-
-
- 2.3 Non fatal errors through beeps..
-
- These errors are displayed as one long beep following by a number of short
- beeps and the system proceeds normally.
-
- 2.3.1 One long and 3 short beeps
-
- Occurrence..
-
- Conventional and Extended memory test
-
- 2.3.2 One long and eight short beeps
-
- Occurrence..
-
- Display RAM test and display vertical and horizontal retrace test.
-
- 2.4 Non fatal errors through display..
-
- These types of errors are classified into 2 categories.
-
- Ones that wait for F1 key and give the option to run SETUP
-
- Ones that wait for F1 key but do not give option to run SETUP
-
- 2.4.1 Errors waiting fot F1 key and giving option to run SETUP
-
- 2.4.1.1 CMOS battery state low
-
- Ouucrrence..
-
- CMOS battery, options set and checksum test
-
- 2.4.1.2 CMOS system options not set
-
- Occurrence..
-
- CMOS battery, options set and checksum test
-
- 2.4.1.3 CMOS ckecksum failure
-
- Occurrence..
-
- CMOS battery, options set and checksum test
-
- 2.4.1.4 CMOS display type mismatch
-
- Occurrence..
-
- Display type verification
-
- 2.4.1.5 CMOS memory size mismatch
-
- Occurrence..
-
- System Configuration verification and setup (Memory size verification)
-
- 2.4.1.6 CMOS time & date not set
-
- Occurrence..
-
- System configuration verification and setup (Init timer data)
-
-
- 2.4.1.7 C:Drive failure
-
- Occurrence..
-
- System configuration verification and setup (Hard disk setup)
-
- 2.4.2 Errors waiting for F1 key and not giving the option to run SETUP
-
- 2.4.2.1 CH-2 timer error
-
- Occurrence..
-
- Channel 2,1,0 timer test
-
- 2.4.2.2 Keyboard error
-
- Occurrence..
-
- Keyboard test
-
- 2.4.2.3 KB/Interface error
-
- Occurrence..
-
- Keyboard test
-
- 2.4.2.4 Display switch setting not proper
-
- Occurrence..
-
- Display type verification
-
-
- 2.4.2.5 Keyboard is locked ... Unlock it
-
- Occurrence..
-
- System configuration verification and setup (Keyboard lock check)
-
- 2.4.2.6 FDD controller error
-
- Occurrence..
-
- System configuration verification and setup (floppy disk setup)
-
- 2.4.2.7 HDD controller failure
-
- Occurrence..
-
- System configuration verification and setup (Hard disk setup)
-
- 2.4.2.8 C:Drive error
-
- Occurrence..
-
- System configuration verification and setup (Hard disk setup)
-
-
- 2.4.2.9 D:Drive error
-
- Occurrence..
-
- System configuration verification and setup (Hard disk setup)
-
-
- 2.4.2.10 D:Drive failure
-
- Occurrence..
-
- System configuration verification and setup (Hard disk setup)
-
-
- Appendix A
-
-
- Address line test procedure
-
-
- For the 64kb of memory on test, write and then read data patterns 0ffh
- and 00h at addresses 1, 2, 4, 8, 16, 32, 64, 128, 256, 512, 1024, 2048, 4096,
- 8192, 16384, 32768. The data read back should be same as that written.
-
- Sequential memory Write and Read test
-
- For the 64kb of memory on test, use test patterns 8080h, 5555h, 3333h,
- 0f0fh in the same order.
-
- Take one pattern and write it on the entire 64kb space one word at a time.
- Then compare the 64k space one word at a time with the value written. If
- any word does not retain the value then return error.
-
-
- Random memory Write and Read test
-
- Use a random number generator which generates 16k of random numbers as
- memory addresses and returns a seed between 0 to ffh associated with each
- random addresses generated.
-
- Use the random number generator again and read the data from the random
- address. The data read back should be same as the seed returned by the
- random number generator. In short, the BIOS checks wheather the data
- written in 16k random addresses are retained in those memory locations.
-
- The random number generator procedure is written in such a way that it
- generates the same sequence of random numbers in the same order every
- time it is called and it also returns a unique seed associated with each
- random number.
-
-
-
- Appendix B
-
- CMOS RAM USAGE IN AMI MARK II AT BIOS
-
- -------------------------------------------------------------------------
- Address Description
-
- -------------------------------------------------------------------------
- 00-0D *Real-time clock information
- 0E *Diagnostics status byte
- 0F *Shutdown status byte
- 10 Diskett drive type byte - drives A and B
- 11 Reserved
- 12 Fixed disk type byte - drives C and D (1 - 14)
- 13 Reserved
- 14 Equipment byte
- 15 Base memory byte LOW
- 16 Base memory byte HIGH
- 17 Expansion memory byte LOW
- 18 Expansion memory byte HIGH
- 19 Extended fixed disk type - drive C (16 - 255)
- 1A Extended fixed disk type - drive D (16 - 255)
- 1B-2C!! User defined drive type
- 2D Reserved
- 2E-2F 2 - byte CMOS Checksum
- 30 *Expansion memory size LOW
- 31 *Expansion memory size HIGH
- 32 *Date century byte
- 33 *Information flags (set during power on)
- 34-36 Reserved
- 37 !! Video and Keyboard installation information
- 38 !! Video shadow and memory information
- 39-3A!! Segment value for scratch memory used by BIOS for Load all
- translation.
- 3B-3F Reserved
- ------------------------------------------------------------------------
-
- *These bytes are not included in the checksum calculation and are not part
- of the configuration record.
-
- !! These are extra bytes used by AMI BIOS.
-
- Bytes 1B - 2C (Is used by AMI BIOS released after March 1989)
- _____________________________________________
-
- These bytes will store user defined drive types in following format.
-
- Drive C User defined type
-
- 1B,1C Number of cylinders
- 1D Number of heads
-
- 1E,1F Write precom
-
- 20 Control byte
- 21,22 Landing zone
- 23 Number of sectors
-
- Drive D User defined type
-
- 24,25 Number of cylinders
- 26 Number of heads
- 27,28 Write precom
- 29 Control byte
- 2A,2B Landing zone
- 2C Number of sectors
-
-
- Byte 37
- _____
-
-
- Bit 0 This bit has meaning only in BIOS released after March
- 1989.
- 1=Test keyboard
- 0=Do not test keyboard
-
- Bit 1 This bit has meaning only in BIOS released after March
- 1989.
- 1=Test Video
- 0=Don not test Video
-
- Bit 2 Current status of keyboard controller pin 23.
-
- Bit 3 Current Status of Keyboard controller pin 24.
-
- Bit 4-7 Not used
-
- Byte 38
- _____
-
- Bit 0-2 Not used
-
- Bit 3 1="INS" key has been pressed
- 0="INS" key not pressed
-
- Bit 4 1=Weitek co-processor present
- 0=Weitek co-processor absent
-
- Bit 5 1=Enable Video shadow
- 0=Disable video shadow
-
- Bit 6 1=Relocate 256k memory
- 0=Do not relocate 256k memory
-
- Bit 7 1=32-bit memory card installed
- 0=32-bit memory card not installed
-
-
-
- Byte 39-3A
- ________
-
- These bytes are used to save the segment value of the memory BIOS is
- going to use for Load all function translation. For MARK II AT Board this
- actually points to BIOS area because BIOS Shadow RAM is enabled.
-
-
-
- ------------------- END -------------------
-
-
-
-
-
-
-