CMOS Memory Dump (IBM-PC and Compatibles) msu@mix Ver.1.0 Sep.25 92 Reference: The Programmer's PC sourcebook, Thom Hogan, 1988, (P.183...186) Loc. Value Descriptions Comments ----- -------- -------------------------------- ------------------------------ 40:00 %04.4x COM1 base address | 40:02 %04.4x COM2 base address | 40:04 %04.4x COM3 base address |supported only PS/2 BIOS 40:06 %04.4x COM4 base address |supported only PS/2 BIOS 40:08 %04.4x LPT1 base address | 40:0A %04.4x LPT2 base address | 40:0C %04.4x LPT3 base address | 40:0E %04.4x LPT4 base address | 40:10 %02.2x Installed hardware 1 ! xx...... |number of floppy device (0-based) =..00.... |video mode (unknown) =..01.... |video mode (40x25 color) =..10.... |video mode (80x25 color) =..11.... |video mode (80x25 mono) ....xx.. |reserved (old PC and PCJr) .....x.. |pointing device installed (PS/2) ......x. |math coprecessor installed .......x |floppy drives installed 40:11 %02.2x Installed hardware 2 ! xx...... |number of printer adapters ..x..... |internal modem(Convertive only) ...x.... |joystick installed ....xxx. |number of RS-232 adapters .......x |reserved (PCJr=DMA device installed) 40:12 %02.2x Power-on self test status | 40:13 %04.4x Memory size |in KBytes (0 to 640) 40:15 %04.4x RESERVED | 40:17 %02.2x Keyboard control 1 ! x....... |insert mode active .x...... |caps lock mode active ..x..... |num lock mode active ...x.... |scroll lock mode active ....x... |alt key held down .....x.. |ctrl key held down ......x. |left shift key held down .......x |right shift key held down 40:18 %02.2x Keyboard control 1 ! x....... |insert key held down .x...... |caps lock key held down ..x..... |num lock key held down ...x.... |scroll lock key held down ....x... |pause mode active .....x.. |system request key held down ......x. |left alt key held down .......x |right ctrl key held down 40:19 %02.2x Alternate keypad entry | 40:1A %04.4x Keyboard buffer head pointer |p.to first ch.in typeahead buf 40:1C %04.4x Keyboard buffer tail pointer |p.to last ch.in typeahead buf 40:1E 32%02.2x Keyboard buffer | 40:3E %02.2x Floppy recalibrate status ! x....... |interrupt flag .xxx.... |reserved ....x... |recalibrate drive 3 .....x.. |recalibrate drive 2 ......x. |recalibrate drive 1 .......x |recalibrate drive 0 40:3F %02.2x Floppy morter status ! x....... |write/read operation .x...... |reserved ..xx.... |drive select (binary value equals drive number) ....x... |drive 3 moter ON status .....x.. |drive 2 moter ON status ......x. |drive 1 moter ON status .......x |drive 0 moter ON status 40:40 %02.2x Moter off counter | 40:41 %02.2x Floppy previous operation status! =10000000 |drive not ready =01000000 |seek operation faild =00100000 |general controller faild =00010000 |CRC error on diskette read =00001000 |DMA overrun on operation =00000100 |requested sector not found =00000010 |address mask not found =00000001 |invalid drive parameter =00000000 |no error =00000011 |write-protect error =00000110 |disk changed =00001001 |DMA attempt access 64K segment boundary =00001100 |media type not found 40:42 7%02.2x Floppy controller status byte | 40:49 %02.2x Display mode | 40:4A %04.4x Number of columns | 40:4C %04.4x Length of regen buffer in bytes | 40:4E %04.4x Address of regen buffer | 40:50 %04.4x Cursor position page 1 | 40:52 %04.4x Cursor position page 2 | 40:54 %04.4x Cursor position page 3 | 40:56 %04.4x Cursor position page 4 | 40:58 %04.4x Cursor position page 5 | 40:5A %04.4x Cursor position page 6 | 40:5C %04.4x Cursor position page 7 | 40:5D %04.4x Cursor position page 8 | 40:60 %04.4x Cursor type | 40:62 %02.2x Current display page | 40:63 %04.4x Video controller base address | 40:65 %02.2x Current 3x8 register setting | 40:66 %02.2x Current 3x9 register setting | 40:67 %08.8lx Pointer to reset code |PS/2 only 40:6B %02.2x RESERVED | 40:6C %08.8lx Timer counter | 40:70 %02.2x Timer overflow flag |!=0 passed 24 hours 40:71 %02.2x Break key state | 40:72 %04.4x Reset flag # =1234H |bypass mem test =4321H |preserve mem (PS/2) =5678H |system suspended (Cobvertible) =9ABCH |mfg test (Cobvertible) =ABCDH |system post loop (Convertible only) 40:74 %02.2x Fixed disk previous ope.status # =00H |[F&H] no error =01H |[F&H] invalid diskette parameter (bad command) =02H |[F&H] address mark was not found =03H |[FDD] attempted write on protected diskette =04H |[F&H] sector was not found =05H |[FDD] reset failed =06H |[FDD] diskette was removed =07H |[HDD] bad parameter table =08H |[FDD] DMA overrun on previous operation =09H |[F&H] attempted to croo 64K segment boundary on DMA operation =0AH |[HDD] bad sector flag =0BH |[HDD] bad cylinder detected =0CH |[FDD] media type requested was not found =0DH |[HDD] invalid number of sectors in format =0EH |[HDD] control data address mark detected =0FH |[HDD] DMA arbitration level out of allowable range =10H |[F&H] CRC or ECC error on disk read =11H |[HDD] ECC corrected data error =20H |[F&H] controller faild =40H |[F&H] seek operation faild =80H |[F&H] drive time out, assumed not ready =AAH |[HDD] drive not ready =BBH |[HDD] undefined error =CCH |[HDD] write fault =E0H |[HDD] status error =FFH |[HDD] sense operation faild 40:75 %02.2x Number of fixed drives | 40:76 %02.2x Fixed disk drive control |XT only 40:77 %02.2x Fixed disk controller port |XT only 40:78 %02.2x Printer 1 time-out value | 40:79 %02.2x Printer 2 time-out value | 40:7A %02.2x Printer 3 time-out value | 40:7B %02.2x Printer 4 time-out value |PC,XT,and AT only 40:7C %02.2x COM1 time-out value | 40:7D %02.2x COM2 time-out value | 40:7E %02.2x COM3 time-out value | 40:7F %02.2x COM4 time-out value | 40:80 %04.4x Keyboard buffer start offset ptr| 40:82 %04.4x Keyboard buffer end offset ptr | 40:84 %02.2x Video rows (minus one) | 40:85 %04.4x Charactor height (bytes/char) | 40:87 %02.2x Video controll states 1 | 40:88 %02.2x Video controll states 2 | 40:89 %04.4x RESERVED | 40:8B %02.2x Media control ! =00...... |last floppy drive data rate (500KB/sec.) =01...... |last floppy drive data rate (300KB/sec.) =10...... |last floppy drive data rate (250KB/sec.) =11...... |last floppy drive data rate (reserved) ..xx.... |last floppy drive step rate ....xxxx |reserved 40:8C %02.2x Fixed disk controller status | 40:8D %02.2x Fixed disk controller error sta.| 40:8E %02.2x Fixed disk interrupt control | 40:8F %02.2x RESERVED | 40:90 %02.2x Drive 0 media status ! =00...... |drive data rate (500KB/sec.) =01...... |drive data rate (300KB/sec.) =10...... |drive data rate (250KB/sec.) =11...... |drive data rate (reserved) ..x..... |double steppind required ...x.... |media established ....x... |reserved .....xxx |drive/media state 40:91 %02.2x Drive 1 media status ! =00...... |drive data rate (500KB/sec.) =01...... |drive data rate (300KB/sec.) =10...... |drive data rate (250KB/sec.) =11...... |drive data rate (reserved) ..x..... |double steppind required ...x.... |media established ....x... |reserved .....xxx |drive/media state 40:92 %04.4x RESERVED | 40:94 %02.2x Drive 0 current cylinder | 40:95 %02.2x Drive 1 current cylinder | 40:96 %02.2x Keyboard mode state, type flag ! x....... |read ID in progress .x...... |last character was first ID character ..x..... |force num lock if read ID and KBX ...x.... |101/102-key keyboard installed ....x... |right alt key held down .....x.. |right ctrl key held down ......x. |last code was E0 hidded code .......x |last code was E1 hidden code 40:97 %02.2x Keyboard LED flags ! x....... |keyboard transmit error flag .x...... |mode indicator update ..x..... |resend receive flag ...x.... |acknowledgement received ....x... |reserved .....xxx |LED state bits 40:98 %04.4x Off.addr.to user wait cmplt. flg| 40:9A %04.4x Seg.addr.to user wait complete | 40:9C %04.4x User wait count (low word) |in microseconds 40:9E %04.4x User wait count (high word) |in microseconds 40:A0 %02.2x Wait active flag ! x....... |wait time elapsed and post .xxxxxx. |reserved .......x |int 15H function 86H (wait) has occurred 40:A1 7%02.2x RESERVED | 40:A8 %08.8lx Video parameter table pointer |EGA and PS/2 only 40:AC %08.8lx Dynamic save area pointer |EGA and PS/2 only 40:B0 %08.8lx Alpha mode aux char gen pointer |EGA and PS/2 only 40:B4 %08.8lx Graphics mode aux char gen ptr. |EGA and PS/2 only 40:B8 %08.8lx Secondary save pointer |EGA and PS/2 only 40:BC 8%02.2x RESERVED | 40:C0 64%02.2x RESERVED | 50:00 %02.2x Print screen status byte | ----- -------- -------------------------------- ------------------------------