-
Notifications
You must be signed in to change notification settings - Fork 9
/
MEMORY.LST
3606 lines (3465 loc) · 137 KB
/
MEMORY.LST
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
MEMORY MAP Release 61 Last change 16jul00
Copyright (c) 1989-1999,2000 Ralf Brown
--------H-M00000000--------------------------
MEM 0000h:0000h R - INTERRUPT VECTOR TABLE
Size: 1024 BYTEs
Note: see also the main interrupt list
--------b-M0000031D--------------------------
MEM 0000h:031Dh - 1989 AMI 386sx BIOS - USER-DEFINABLE TYPE 47 HARD DISK PARMS
Size: 16 BYTEs
Note: these fields are used if the AMI BIOS setup is set to use the top of
the interrupt table for the extended BIOS data area
SeeAlso: MEM 0000h:032Dh,INT 41
--------b-M0000032D--------------------------
MEM 0000h:032Dh - 1989 AMI 386sx BIOS - USER-DEFINABLE TYPE 48 HARD DISK PARMS
Size: 16 BYTEs
Note: these fields are used if the AMI BIOS setup is set to use the top of
the interrupt table for the extended BIOS data area
SeeAlso: MEM 0000h:031Dh,INT 46
--------B-M00000400--------------------------
MEM 0000h:0400h - BIOS DATA AREA
Size: 256 BYTEs
Note: see also the MEM 0040h:xxxxh entries
----------M00000500--------------------------
MEM 0000h:0500h - DATA AREA
Size: 256 BYTEs
--------D-M00000600--------------------------
MEM 0000h:0600h - MS-DOS 1.x LOAD ADDRESS
--------D-M00000700--------------------------
MEM 0000h:0700h - MS-DOS 2+ LOAD ADDRESS
--------S-M00400000--------------------------
MEM 0040h:0000h - BASE I/O ADDRESS OF FIRST SERIAL I/O PORT
Size: WORD
Notes: the BIOS sets this word to zero if is unable to find any serial ports
at the addresses it is programmed to check at boot
DOS and BIOS serial device numbers may be redefined by re-assigning
these values of the base I/O addresses stored here
Under DR-OpenDOS 7.02+ this setting can be changed with the
undocumented CONFIG.SYS COM1=[port_address|logical_no][,[timeout]]
directive, whereby port_address = 200h..3F8h, logical_no = 0 or 1..4,
timeout=0..255 (default 1).
SeeAlso: MEM 0040h:0002h,MEM 0040h:0004h,MEM 0040h:0006h,MEM 0040h:0008h
SeeAlso: MEM 0040h:007Ch,INT 14/AH=00h,PORT 03F8h"SERIAL"
--------S-M00400002--------------------------
MEM 0040h:0002h - BASE I/O ADDRESS OF SECOND SERIAL I/O PORT
Size: WORD
Notes: the BIOS sets this word to zero if is unable to find more than one
serial port at the addresses it is programmed to check at boot
DOS and BIOS serial device numbers may be redefined by re-assigning
these values of the base I/O addresses stored here
Under DR-OpenDOS 7.02+ this setting can be changed with the
undocumented CONFIG.SYS COM2=[port_address|logical_no][,[timeout]]
directive, whereby port_address = 200h..3F8h, logical_no = 0 or 1..4,
timeout=0..255 (default 1).
SeeAlso: MEM 0040h:0000h,MEM 0040h:0004h,MEM 0040h:0006h,MEM 0040h:000Ah
SeeAlso: MEM 0040h:007Dh,INT 14/AH=00h,PORT 02F8h"SERIAL"
--------S-M00400004--------------------------
MEM 0040h:0004h - BASE I/O ADDRESS OF THIRD SERIAL I/O PORT
Size: WORD
Notes: the BIOS sets this word to zero if is unable to find more than two
serial ports at the addresses it is programmed to check at boot
Under DR-OpenDOS 7.02+ this setting can be changed with the
undocumented CONFIG.SYS COM3=[port_address|logical_no][,[timeout]]
directive, whereby port_address = 200h..3F8h, logical_no = 0 or 1..4,
timeout=0..255 (default 1).
SeeAlso: MEM 0040h:0000h,MEM 0040h:0002h,MEM 0040h:0006h,MEM 0040h:000Ch
SeeAlso: MEM 0040h:007Eh,PORT 03E8h"SERIAL"
--------S-M00400006--------------------------
MEM 0040h:0006h - BASE I/O ADDRESS OF FOURTH SERIAL I/O PORT
Size: WORD
Notes: the BIOS sets this word to zero if is unable to find more than three
serial ports at the addresses it is programmed to check at boot
Under DR-OpenDOS 7.02+ this setting can be changed with the
undocumented CONFIG.SYS COM4=[port_address|logical_no][,[timeout]]
directive, whereby port_address = 200h..3F8h, logical_no = 0 or 1..4,
timeout=0..255 (default 1).
SeeAlso: MEM 0040h:0000h,MEM 0040h:0002h,MEM 0040h:0004h,MEM 0040h:0008h
SeeAlso: MEM 0040h:007Fh,PORT 02E8h"SERIAL"
--------P-M00400008--------------------------
MEM 0040h:0008h - BASE I/O ADDRESS OF FIRST PARALLEL I/O PORT
Size: WORD
Notes: the BIOS POST routine fills in the parallel port address fields in
turn as it finds parallel ports. All fields beyond the last one
for which a valid parallel port was found are set to zero.
the BIOS INT 17 handler uses these fields to address the parallel
ports
Under DR-OpenDOS 7.02+ this setting can be changed with the
undocumented CONFIG.SYS LPT1=[port_address|logical_no][,[timeout]]
directive, whereby port_address = 200h..3FCh, logical_no = 0 or 1..3,
timeout=0..255 (default 20).
SeeAlso: MEM 0040h:0000h,MEM 0040h:000Ah,MEM 0040h:000Ch,INT 17/AH=00h
SeeAlso: PORT 0278h"PRINTER",PORT 03BCh"PRINTER"
--------P-M0040000A--------------------------
MEM 0040h:000Ah - BASE I/O ADDRESS OF SECOND PARALLEL I/O PORT
Size: WORD
Notes: zero if fewer than two parallel ports installed
Under DR-OpenDOS 7.02+ this setting can be changed with the
undocumented CONFIG.SYS LPT2=[port_address|logical_no][,[timeout]]
directive, whereby port_address = 200h..3FCh, logical_no = 0 or 1..3,
timeout=0..255 (default 20).
SeeAlso: MEM 0040h:0002h,MEM 0040h:0008h,MEM 0040h:000Ch,PORT 0278h"PRINTER"
SeeAlso: PORT 0378h"PRINTER",INT 17/AH=00h
--------P-M0040000C--------------------------
MEM 0040h:000Ch - BASE I/O ADDRESS OF THIRD PARALLEL I/O PORT
Size: WORD
Notes: zero if fewer than three parallel ports installed
Under DR-OpenDOS 7.02+ this setting can be changed with the
undocumented CONFIG.SYS LPT3=[port_address|logical_no][,[timeout]]
directive, whereby port_address = 200h..3FCh, logical_no = 0 or 1..3,
timeout=0..255 (default 20).
SeeAlso: MEM 0040h:0004h,MEM 0040h:0008h,MEM 0040h:000Ah,MEM 0040h:000Eh
SeeAlso: PORT 0378h"PRINTER",INT 17/AH=00h
--------P-M0040000E--------------------------
MEM 0040h:000Eh - BASE I/O ADDRESS OF FOURTH PARALLEL I/O PORT (pre-PS/2)
Size: WORD
Notes: zero if fewer than four parallel ports installed
Under DR-OpenDOS 7.02+ this setting can be changed with the
undocumented CONFIG.SYS LPT4=(port_address|logical_no)[,[timeout]]
directive, where port_address = 200h..3FCh, logical_no = 0 or 1..3,
timeout=0..255 (default 20). To avoid any interference with the PS/2
and later interpretation, this will be rejected if this entry does
not hold 0, which would indicate it is used for different purposes.
SeeAlso: MEM 0040h:0008h,MEM 0040h:000Ah,MEM 0040h:000Eh"BIOS DATA"
SeeAlso: PORT 0378h"PRINTER",INT 17/AH=00h
--------B-M0040000E--------------------------
MEM 0040h:000Eh - SEGMENT OF EXTENDED BIOS DATA SEGMENT (PS/2, newer BIOSes)
Size: WORD
SeeAlso: MEM 0040h:000Eh"PARALLEL",INT 15/AH=C1h
Format of Extended BIOS Data Area (IBM):
Offset Size Description (Table M0001)
00h BYTE length of EBDA in kilobytes
01h 15 BYTEs reserved
17h BYTE number of entries in POST error log (0-5)
18h 5 WORDs POST error log (each word is a POST error number)
22h DWORD Pointing Device Driver entry point
26h BYTE Pointing Device Flags 1 (see #M0002)
27h BYTE Pointing Device Flags 2 (see #M0003)
28h 8 BYTEs Pointing Device Auxiliary Device Data
30h DWORD Vector for INT 07h stored here during 80387 interrupt
34h DWORD Vector for INT 01h stored here during INT 07h emulation
38h BYTE Scratchpad for 80287/80387 interrupt code
39h WORD Timer3: Watchdog timer initial count
3Bh BYTE ??? seen non-zero on Model 30
3Ch BYTE ???
3Dh 16 BYTEs Fixed Disk parameter table for drive 0 (for older machines
which don't directly support the installed drive)
4Dh 16 BYTEs Fixed Disk parameter table for drive 1 (for older machines
which don't directly support the installed drive)
5Dh-67h ???
68h BYTE cache control
bits 7-2 unused (0)
bit 1: CPU cache failed test
bit 0: CPU cache disabled
69h-6Bh ???
6Ch BYTE Fixed disk: (=FFh on ESDI systems)
bits 7-4: Channel number 00-0Fh
bits 3-0: DMA arbitration level 00-0Eh
6Dh BYTE ???
6Eh WORD current typematic setting (see INT 16/AH=03h)
70h BYTE number of attached hard drives
71h BYTE hard disk 16-bit DMA channel
72h BYTE interrupt status for hard disk controller (1Fh on timeout)
73h BYTE hard disk operation flags
bit 7: controller issued operation-complete INT 76h
bit 6: controller has been reset
bits 5-0: unused (0)
74h DWORD old INT 76h vector
78h BYTE hard disk DMA type
typically 44h for reads and 4Ch for writes
79h BYTE status of last hard disk operation
7Ah BYTE hard disk timeout counter
7Bh-7Dh
7Eh 8 WORDs storage for hard disk controller status
8Eh-E6h
E7h BYTE floppy drive type
bit 7: drive(s) present
bits 6-2: unused (0)
bit 1: drive 1 is 5.25" instead of 3.5"
bit 0: drive 0 is 5.25"
E8h 4 BYTEs ???
ECh BYTE hard disk parameters flag
bit 7: parameters loaded into EBDA
bits 6-0: unused (0)
EDh BYTE ???
EEh BYTE CPU family ID (03h = 386, 04h = 486, etc.) (see INT 15/AH=C9h)
EFh BYTE CPU stepping (see INT 15/AH=C9h)
F0h 39 BYTEs ???
117h WORD keyboard ID (see INT 16/AH=0Ah)
(most commonly 41ABh)
119h BYTE ???
11Ah BYTE non-BIOS INT 18h flag
bits 7-1: unused (0)
bit 0: set by BIOS before calling user INT 18h at offset 11Dh
11Bh 2 BYTE ???
11Dh DWORD user INT 18h vector if BIOS has re-hooked INT 18h
121h and up: ??? seen non-zero on Model 60
3F0h BYTE Fixed disk buffer (???)
SeeAlso: #M0004
Bitfields for Pointing Device Flags 1:
Bit(s) Description (Table M0002)
7 command in progress
6 resend byte (FAh) received
5 acknowledge byte (FEh) received
4 error byte (FCh) received
3 unexpected value received
2-0 index count for auxiliary device data at 28h
SeeAlso: #M0001,#M0003
Bitfields for Pointing Device Flags 2:
Bit(s) Description (Table M0003)
7 device driver far call flag
6-3 reserved
2-0 package size (number of bytes received) - 1
SeeAlso: #M0001,#M0002
Format of Extended BIOS Data Area (AMI v1.00.12.AX1T):
Offset Size Description (Table M0004)
00h BYTE length of XBDA in kilobytes
01h 15 BYTEs reserved
17h BYTE number of entries in POST error log (0-10)
18h 10 BYTEs unused???
22h DWORD Pointing Device Driver entry point
26h BYTE Pointing Device Flags 1 (see #M0002)
27h BYTE Pointing Device Flags 2 (see #M0003)
28h 8 BYTEs Pointing Device Auxiliary Device Data
30h 13 BYTEs ???
3Dh 16 BYTEs Fixed Disk parameter table for drive 0
4Dh 16 BYTEs Fixed Disk parameter table for drive 1
5Dh 16 BYTEs parameter table for drive 2???
6Dh 16 BYTEs parameter table for drive 3???
80h 56 BYTEs? IDE drive 0 manufacturer/model string
B8h 41 BYTEs AMIBIOS copyright string
E1h unused???
102h WORD ??? flags
bit 15: ???
108h WORD offset of IntelIDECfgTbl (IDE configuration settings) within
segment F000h
10Ah 2 BYTEs ???
10Ch DWORD pointer to routine to call for language-specific error messages
110h WORD offset in segment F000h of end of currently-loaded optional
BIOS subsystems (language, APM, etc.)
112h WORD offset in segment F000h of end of area avaiable for loading
optional BIOS subsystems
1F0h BYTE APM status flags
1F1h 8 BYTEs APM power-state data for device classes 01h-06h
bits 0-3: current power state for devices 00h-03h in class
bits 7-4: current engaged state for devices 00h-03h in class
1F9h 4 BYTEs APM power-state data for device classes 01h-08h (four devices
per class)
1FDh 3 BYTEs ???
200h 10 WORDs POST error log
214h ???
SeeAlso: #M0001,#M0005
Format of Extended BIOS Data Area (PhoenixBIOS 4.0):
Offset Size Description (Table M0005)
00h BYTE length of XBDA in kilobytes
01h 33 BYTEs reserved
22h DWORD Pointing Device Driver entry point
26h BYTE Pointing Device Flags 1 (see #M0002)
27h BYTE Pointing Device Flags 2 (see #M0003)
28h 8 BYTEs Pointing Device Auxiliary Device Data
SeeAlso: #M0001,#M0004
--------B-M00400010--------------------------
MEM 0040h:0010h - INSTALLED HARDWARE
Size: WORD
SeeAlso: INT 11
Bitfields for BIOS-detected installed hardware:
Bit(s) Description (Table M0006)
15-14 number of parallel devices
00 or 11 sometimes used to indicate four LPT ports
13 (Convertible, PS/2-55LS) internal modem
12 game port installed
11-9 number of serial devices
000 or 111 sometimes used to indicate eight COM ports
8 reserved
7-6 number of floppy disk drives (minus 1)
5-4 initial video mode
00 EGA,VGA,PGA, or other with on-board video BIOS
01 40x25 CGA color
10 80x25 CGA color
11 80x25 mono text
3-2 (PC only) RAM on motherboard
00 = 16K, 01 = 32K, 10 = 48K, 11 = 64K
(some XTs) RAM on motherboard
00 = 64K, 01 = 128K, 10 = 192K, 11 = 256K
2 (pre-PS/2 except PC) reserved
(PS/2, some XT clones, newer BIOSes) pointing device installed
1 math coprocessor installed
0 floppy disk drives are installed
booted from floppy
--------B-M00400012--------------------------
MEM 0040h:0012h - Convertible - POST STATUS
Size: BYTE
--------B-M00400012--------------------------
MEM 0040h:0012h U - AT - MANUFACTURING TEST INITIALIZATION FLAGS
Size: BYTE
Bitfields for AT manufacturing test initialization flags:
Bit(s) Description (Table M0007)
0 start in manufacturing test mode rather than normal operation
1-7 unused
--------b-M00400012--------------------------
MEM 0040h:0012h - MCA - MANUFACTURING TEST
Size: BYTE
Bitfields for MCA manufacturing test flags :
Bit(s) Description (Table M0008)
7 POST flag, ???
6-5 unused
4 POST flag, slot 4 has adapter identifier EDAFh
3 POST flag, 80x25 color video
2 POST flag, ???
1 unused
0 manufacturing test mode rather than normal operation
--------b-M00400012--------------------------
MEM 0040h:0012h - PS/2 Model 25 - POST SYSTEM FLAG
Size: BYTE
Bitfields for PS/2 Model 25 POST sytem flag :
Bit(s) Description (Table M0009)
0 optional memory failed; memory remapped
1 real-time clock installed
--------B-M00400013--------------------------
MEM 0040h:0013h - BASE MEMORY SIZE IN KBYTES
Size: WORD
SeeAlso: INT 12
--------b-M00400015--------------------------
MEM 0040h:0015h - PC, XT - ADAPTER MEMORY SIZE IN KBYTES
Size: WORD
--------b-M00400015--------------------------
MEM 0040h:0015h U - AT - MANUFACTURING TEST SCRATCH PAD
Size: BYTE
--------K-M00400015--------------------------
MEM 0040h:0015h - Compaq Deskpro 386 - PREVIOUS SCAN CODE
Size: BYTE
--------b-M00400016--------------------------
MEM 0040h:0016h U - AT - MANUFACTURING TEST SCRATCH PAD
Size: BYTE
--------b-M00400016--------------------------
MEM 0040h:0016h U - PS/2 Model 30 - BIOS CONTROL FLAGS
Size: BYTE
--------K-M00400016--------------------------
MEM 0040h:0016h - Compaq Deskpro 386 - KEYCLICK VOLUME
Size: BYTE
Range: 00h-7Fh
--------K-M00400017--------------------------
MEM 0040h:0017h - KEYBOARD - STATUS FLAGS 1
Size: BYTE
SeeAlso: MEM 0040h:0018h,INT 16/AH=02h,MEM 0040h:0096h
Bitfields for keyboard status flags 1:
Bit(s) Description (Table M0010)
7 INSert active
6 Caps Lock active
5 Num Lock active
4 Scroll Lock active
3 either Alt pressed
2 either Ctrl pressed
1 Left Shift pressed
0 Right Shift pressed
SeeAlso: #M0011,#00587
--------K-M00400018--------------------------
MEM 0040h:0018h - KEYBOARD - STATUS FLAGS 2
Size: BYTE
SeeAlso: MEM 0040h:0017h,INT 16/AH=12h
Bitfields for keyboard status flags 2 :
Bit(s) Description (Table M0011)
7 INSert pressed
6 Caps Lock pressed
5 Num Lock pressed
4 Scroll Lock pressed
3 Pause state active
2 Sys Req pressed
1 Left Alt pressed
0 Left Ctrl pressed
SeeAlso: #M0010,#00588
--------K-M00400019--------------------------
MEM 0040h:0019h - KEYBOARD - ALT-nnn KEYPAD WORKSPACE
Size: BYTE
Desc: holds the current value of an Alt-NNN keypad sequence; when Alt is
released and this byte is non-zero, the appropriate character is
placed in the keyboard buffer
SeeAlso: INT 16/AH=00h,MEM 0040h:001Ah
--------K-M0040001A--------------------------
MEM 0040h:001Ah - KEYBOARD - POINTER TO NEXT CHARACTER IN KEYBOARD BUFFER
Size: WORD
SeeAlso: MEM 0040h:001Ch,MEM 0040h:0080h,MEM 0040h:0082h,INT 16/AH=00h
--------K-M0040001C--------------------------
MEM 0040h:001Ch - KEYBOARD - POINTER TO FIRST FREE SLOT IN KEYBOARD BUFFER
Size: WORD
SeeAlso: MEM 0040h:001Ah,MEM 0040h:001Eh,MEM 0040h:0080h,MEM 0040h:0082h
SeeAlso: INT 16/AH=00h
--------K-M0040001E--------------------------
MEM 0040h:001Eh - KEYBOARD - DEFAULT KEYBOARD CIRCULAR BUFFER
Size: 16 WORDs
SeeAlso: MEM 0040h:001Ah,MEM 0040h:001Ch,MEM 0040h:0080h,MEM 0040h:0082h
SeeAlso: INT 16/AH=00h,INT 16/AH=05h
--------B-M0040003E--------------------------
MEM 0040h:003Eh - DISKETTE - RECALIBRATE STATUS
Size: BYTE
SeeAlso: MEM 0040h:003Fh,MEM 0040h:0040h,INT 13/AH=00h,INT 13/AH=11h
Bitfields for diskette recalibrate status:
Bit(s) Description (Table M0012)
7 diskette hardware interrupt occurred
6-4 reserved
3 recalibrate diskette 3 (PC,XT only)
2 recalibrate diskette 2 (PC,XT only)
1 recalibrate diskette 1
0 recalibrate diskette 0
--------B-M0040003F--------------------------
MEM 0040h:003Fh - DISKETTE - MOTOR STATUS
Size: BYTE
SeeAlso: MEM 0040h:003Eh,MEM 0040h:0040h
Bitfields for diskette motor status:
Bit(s) Description (Table M0013)
7 current operation is write or format, rather than read or verify
6 reserved (DMA enabled on 82077)
5-4 diskette drive number selected (0-3)
3 diskette 3 motor on (PC,XT only)
2 diskette 2 motor on (PC,XT only)
1 diskette 1 motor on
0 diskette 0 motor on
--------B-M00400040--------------------------
MEM 0040h:0040h - DISKETTE - MOTOR TURN-OFF TIMEOUT COUNT
Size: BYTE
Desc: number of clock ticks until diskette motor is turned off
Note: the typical implementation of the timeout is to have the INT 08
handler decrement this byte on every clock tick, and force the
diskette motor off if the result is equal to zero
SeeAlso: MEM 0040h:003Eh,MEM 0040h:003Fh,MEM 0040h:0041h,INT 08"IRQ0"
--------B-M00400041--------------------------
MEM 0040h:0041h - DISKETTE - LAST OPERATION STATUS
Size: BYTE
SeeAlso: MEM 0040h:003Eh,MEM 0040h:0042h,INT 13/AH=01h
Bitfields for diskette last operation status:
Bit(s) Description (Table M0014)
7 drive not ready
6 seek error
5 general controller failure
4-0 error reason
00h no error
01h invalid request/parameter
02h address mark not found
03h write-protect error
04h sector not found
06h diskette change line active
08h DMA overrun
09h DMA across 64k boundary
0Ch media type unknown
10h CRC error on read
Note: the following values for this byte differ somewhat from the
bitfield definition above:
30h drive does not support media sense
31h no media in drive
32h drive does not support media type
AAh diskette drive not ready
--------B-M00400042--------------------------
MEM 0040h:0042h - DISK - FLOPPY/HARD DRIVE STATUS/COMMAND BYTES
Size: 7 BYTEs
SeeAlso: MEM 0040h:0041h
42h BYTE XT: command byte to hard disk controller
AT: write precompensation cylinder number / 4
43h BYTE XT: bit 5 = drive number, bits 3-0=head number
AT: sector count
44h BYTE XT: bits 6,7 = high bits of track, bits 5-0 = start sector-1
AT: starting sector
45h BYTE low byte of track number
46h BYTE XT: sector count
AT: high bits of track number
47h BYTE XT: controlbyte from HD parameters (step rate,...)
AT: 101DHHHH, D=drive number, HHHH=head number
bit 7 = ECC mode (1)
bit 6 = unknown (0)
bit 5 = 512 byte sectors (1)
bit 4 = drive number
bit 3-0 head number
48h BYTE XT: INT 13h subfunction number
AT: command byte to hard disk controller
SeeAlso: CALL F000h:211Eh
--------B-M00400042--------------------------
MEM 0040h:0042h - DISK CONTROLLER STATUS REGISTER 0
Size: BYTE
SeeAlso: MEM 0040h:0043h
Bitfields for diskette controller status register 0:
Bit(s) Description (Table M0015)
7-6 interrupt code
00 normal completion
01 abnormal termination during execution
10 invalid command
11 abnormal termination: ready line on/diskette change
5 requested seek complete
4 drive fault
3 drive not ready
2 head state at time of interrupt
1-0 selected drive (drives 2&3 on PC,XT only)
SeeAlso: #M0016
--------B-M00400043--------------------------
MEM 0040h:0043h - DISK CONTROLLER STATUS REGISTER 1
Size: BYTE
SeeAlso: MEM 0040h:0042h,MEM 0040h:0044h
Bitfields for diskette controller status register 0:
Bit(s) Description (Table M0016)
7 attempted access beyon last cylinder
6 unused
5 CRC error on read
4 DMA overrun
3 unused
2 data error
1 disk write protected
0 missing address mark
SeeAlso: #M0015,#M0017
--------B-M00400044--------------------------
MEM 0040h:0044h - DISK CONTROLLER STATUS REGISTER 2
Size: BYTE
SeeAlso: MEM 0040h:0043h
Bitfields for diskette controller status register 0:
Bit(s) Description (Table M0017)
7 unused
6 found deleted data address mark
5 CRC error in data field
4 wrong cylinder number read
3 verify equal
2 can't find sector matching verify condition
1 bad cylinder
0 unable to find address mark
SeeAlso: #M0016
--------V-M00400049--------------------------
MEM 0040h:0049h - VIDEO - CURRENT VIDEO MODE
Size: BYTE
SeeAlso: MEM 0040h:004Ah,INT 10/AH=00h
--------V-M0040004A--------------------------
MEM 0040h:004Ah - VIDEO - COLUMNS ON SCREEN
Size: WORD
SeeAlso: MEM 0040h:0049h,MEM 0040h:004Ch,MEM 0040h:004Eh,INT 10/AH=0Fh
--------V-M0040004C--------------------------
MEM 0040h:004Ch - VIDEO - PAGE (REGEN BUFFER) SIZE IN BYTES
Size: WORD
SeeAlso: MEM 0040h:004Ah,MEM 0040h:004Eh,MEM 0040h:0050h
--------V-M0040004E--------------------------
MEM 0040h:004Eh - VIDEO - CURRENT PAGE START ADDRESS IN REGEN BUFFER
Size: WORD
SeeAlso: MEM 0040h:004Ch,MEM 0040h:0050h,MEM 0040h:0062h,INT 10/AH=05h
--------V-M00400050--------------------------
MEM 0040h:0050h - VIDEO - CURSOR POSITIONS
Size: 8 WORDs
Desc: contains row and column position for the cursors on each of eight
video pages
SeeAlso: MEM 0040h:004Eh,MEM 0040h:0060h,INT 10/AH=02h
--------V-M00400060--------------------------
MEM 0040h:0060h - VIDEO - CURSOR TYPE
Size: WORD (big-endian)
Desc: contains cursor start scan line and cursor end scan line
SeeAlso: MEM 0040h:0050h,MEM 0040h:0062h,INT 10/AH=03h
--------V-M00400062--------------------------
MEM 0040h:0062h - VIDEO - CURRENT PAGE NUMBER
Size: BYTE
SeeAlso: MEM 0040h:004Eh,MEM 0040h:0063h,INT 10/AH=05h
--------V-M00400063--------------------------
MEM 0040h:0063h - VIDEO - CRT CONTROLLER BASE I/O PORT ADDRESS
Size: WORD
Note: normally 03B4h for mono and 03D4h for color video boards
SeeAlso: MEM 0040h:0065h,MEM 0040h:0066h
--------V-M00400065--------------------------
MEM 0040h:0065h - VIDEO - CURRENT MODE SELECT REGISTER
Size: BYTE
Desc: contains last value written to I/O port 03B8h / 03D8h
SeeAlso: MEM 0040h:0063h,MEM 0040h:0066h
Bitfields for current video mode select register:
Bit(s) Description (Table M0018)
7-6 unused
5 attribute bit 7 controls blinking instead of background
4 mode 6 graphics in monochrome
3 video signal enabled
2 monochrome
1 graphics
0 80x25 text
--------V-M00400066--------------------------
MEM 0040h:0066h - VIDEO - CURRENT SETTING OF CGA PALETTE REGISTER
Size: BYTE
Desc: contains the last value written to I/O port 03D9h
SeeAlso: MEM 0040h:0063h,MEM 0040h:0065h,INT 10h/AH=0Bh/BH=01h
Bitfields for CGA palette register:
Bit(s) Description (Table M0019)
7-6 unused
5 palette (0/1)
4 intense background colors in text mode
3 intense border color (40x25) / background color (mode 5)
2 red
1 green
0 blue
----------M00400067--------------------------
MEM 0040h:0067h - PC only - CASSETTE TIME COUNT
Size: WORD
SeeAlso: INT 15/AH=00h
----------M00400067--------------------------
MEM 0040h:0067h - RESET RESTART ADDRESS
Size: DWORD
Desc: this address stores the address at which to resume execution after a
CPU reset (or jump to F000h:FFF0h) when certain magic values are
stored at 0040h:0072h or in CMOS RAM location 0Fh
SeeAlso: MEM 0040h:0072h,MEM F000h:FFF0h,CMOS 0Fh,INT 19
----------M00400069--------------------------
MEM 0040h:0069h - CASSETTE (PC only) - CASSETTE CRC REGISTER
Size: WORD
SeeAlso: MEM 0040h:006Bh"CASSETTE",INT 15/AH=02h
----------M00400069--------------------------
MEM 0040h:0069h - V20-XT-BIOS - KEY REPEAT
Size: BYTE
Bitfields for V20-XT-BIOS key repeat flags:
Bit(s) Description (Table M0020)
7 key repeat disabled
6 Ctrl-Alt pressed instead of just Alt
----------M0040006B--------------------------
MEM 0040h:006Bh - CASSETTE (PC only) - LAST VALUE READ FROM CASSETTE
Size: BYTE
SeeAlso: MEM 0040h:0069h"CASSETTE",INT 15/AH=02h
----------M0040006B--------------------------
MEM 0040h:006Bh - POST LAST UNEXPECTED INTERRUPT (XT and later)
Size: BYTE
Desc: this is a bitmask of IRQs which have occurred while the corresponding
interrupt vector points at the default system BIOS handler
(bit 0 = IRQ0 to bit 7 = IRQ7; bit 2 = IRQ8-15 on AT and later)
SeeAlso: INT 0F"IRQ7",INT 70"IRQ8",INT 77"IRQ15"
----------M0040006C--------------------------
MEM 0040h:006Ch - TIMER TICKS SINCE MIDNIGHT
Size: DWORD
Desc: updated approximately every 55 milliseconds by the BIOS INT 08 handler
SeeAlso: MEM 0040h:0070h,INT 08"IRQ0",INT 1A/AH=00h
----------M00400070--------------------------
MEM 0040h:0070h - TIMER OVERFLOW
Size: BYTE
Desc: non-zero if timer has counted past midnight since last call to
INT 1A/AH=00h
Note: the original IBM BIOS, and thus most other BIOSes, sets this byte to
01h at midnight; a few (such as the Eagle PC-2) increment it each
time midnight is passed. The former behavior results in lost days
if multiple midnights pass between "get-time" calls while the machine
is powered up.
SeeAlso: MEM 0040h:006Ch,INT 1A/AH=00h
--------K-M00400071--------------------------
MEM 0040h:0071h - Ctrl-Break FLAG
Size: BYTE
Desc: bit 7 is set when Ctrl-Break has been pressed
SeeAlso: INT 1B
----------M00400072--------------------------
MEM 0040h:0072h - POST RESET FLAG
Size: WORD
Desc: specify the action the BIOS should take at the beginning of the
power-on self-test when the machine is reset
SeeAlso: INT 19,MEM F000h:FFF0h
(Table M0021)
Values for POST reset flag:
0000h cold boot
0064h Burn-in mode
1234h to bypass memory test (warm boot)
4321h [PS/2 except Mod 25,30] to preserve memory
5678h [Conv] system suspended
9ABCh [Conv] manufacturing test mode
ABCDh [Conv] POST loop mode
--------B-M00400074--------------------------
MEM 0040h:0074h - FIXED DISK LAST OPERATION STATUS (except ESDI drives)
Size: BYTE
SeeAlso: INT 13/AH=01h,INT 13h/AH=0Ah,MEM 0040h:0041h
(Table M0022)
Values for fixed disk last operation status:
00h no error
01h invalid function request
02h address mark not found
03h write protect error
04h sector not found
05h reset failed
06h diskette removed
07h drive parameter activity failed
08h DMA overrun
09h DMA data boundary error
0Ah bad sector flag detected
0Bh bad track detected
0Ch requested diskette media type not found
(PS/2 or extended BIOS only) unsupported track
0Dh invalid number of sectors for Format
0Eh control data address mark detected
0Fh DMA arbitration level out of range
10h uncorrectable ECC or CRC error
11h ECC corrected data error
20h general controller failed
40h seek failed
80h time out
AAh drive not ready
B0h volume not locked in drive (INT 13 extensions)
B1h volume locked in drive (INT 13 extensions)
B2h volume not removable (INT 13 extensions)
B3h volume in use (INT 13 extensions)
B4h lock count exceeded (INT 13 extensions)
B5h valid eject request failed (INT 13 extensions)
BBh undefined error
CCh write fault on selected drive
E0h status error/error register is zero
FFh sense failed
SeeAlso: #00234
--------d-M00400074--------------------------
MEM 0040h:0074h - WD1002-27X SuperBIOS - TOTAL DRIVES, FIRST CONTROLLER ONLY
Size: BYTE
SeeAlso: MEM 0040h:0075h"SuperBIOS",MEM 0040h:0076h"SuperBIOS"
--------B-M00400075--------------------------
MEM 0040h:0075h - FIXED DISK - NUMBER OF FIXED DISK DRIVES
Size: BYTE
SeeAlso: MEM 0040h:0076h"FIXED DISK",MEM 0040h:0077h"FIXED DISK"
--------d-M00400075--------------------------
MEM 0040h:0075h - WD1002-27X SuperBIOS - TOTAL FIXED DRIVES, BOTH CONTROLLERS
Size: BYTE
SeeAlso: MEM 0040h:0074h"SuperBIOS",MEM 0040h:0076h"SuperBIOS"
--------B-M00400076--------------------------
MEM 0040h:0076h - FIXED DISK - CONTROL BYTE {IBM documented only for XT}
Size: BYTE
Desc: loaded from the disk parameter table control byte (offset 8) during
various hard disk operations
SeeAlso: MEM 0040h:0075h"FIXED DISK",MEM 0040h:0077h"FIXED DISK"
--------d-M00400076--------------------------
MEM 0040h:0076h - XT: hard disk controller's I/O address (Western Digital)
Size: BYTE
--------d-M00400076--------------------------
MEM 0040h:0076h - WD1002-27X SuperBIOS - USED IN TRACK RECALCULATION
Size: BYTE
SeeAlso: MEM 0040h:0074h"SuperBIOS",MEM 0040h:0075h"SuperBIOS"
SeeAlso: MEM 0040h:0077h"SuperBIOS"
--------B-M00400077--------------------------
MEM 0040h:0077h - FIXED DISK - I/O port offset {IBM documented only for XT}
Size: BYTE
SeeAlso: MEM 0040h:0075h"FIXED DISK",MEM 0040h:0076h"FIXED DISK"
--------d-M00400077--------------------------
MEM 0040h:0077h - WD1002-27X SuperBIOS - USED IN TRACK RECALCULATION
Size: BYTE
SeeAlso: MEM 0040h:0076h"SuperBIOS"
--------B-M00400078--------------------------
MEM 0040h:0078h - PARALLEL DEVICE 1 TIME-OUT COUNTER
Size: BYTE
Note: Under DR-OpenDOS 7.02+ this setting can be changed with the
undocumented CONFIG.SYS LPT1=[port_address|logical_no][,[timeout]]
directive, whereby port_address = 200h..3FCh, logical_no = 0 or 1..3,
timeout=0..255 (default 20).
SeeAlso: MEM 0040h:0079h,MEM 0040h:007Ah,INT 17/AH=00h
--------B-M00400079--------------------------
MEM 0040h:0079h - PARALLEL DEVICE 2 TIME-OUT COUNTER
Size: BYTE
Note: Under DR-OpenDOS 7.02+ this setting can be changed with the
undocumented CONFIG.SYS LPT2=[port_address|logical_no][,[timeout]]
directive, whereby port_address = 200h..3FCh, logical_no = 0 or 1..3,
timeout=0..255 (default 20).
SeeAlso: MEM 0040h:0078h,MEM 0040h:007Ah,INT 17/AH=00h
--------B-M0040007A--------------------------
MEM 0040h:007Ah - PARALLEL DEVICE 3 TIME-OUT COUNTER
Size: BYTE
Note: Under DR-OpenDOS 7.02+ this setting can be changed with the
undocumented CONFIG.SYS LPT3=[port_address|logical_no][,[timeout]]
directive, whereby port_address = 200h..3FCh, logical_no = 0 or 1..3,
timeout=0..255 (default 20).
SeeAlso: MEM 0040h:0078h,MEM 0040h:0079h,MEM 0040h:007Bh"PARALLEL"
--------B-M0040007B--------------------------
MEM 0040h:007Bh - PARALLEL DEVICE 4 TIME-OUT COUNTER (pre-PS, PS Models 25,30)
Size: BYTE
Note: Under DR-OpenDOS 7.02+ this setting can be changed with the
undocumented CONFIG.SYS LPT4=(port_address|logical_no)[,[timeout]]
directive, where port_address = 200h..3FCh, logical_no = 0 or 1..3,
timeout=0..255 (default 20). To avoid any interference with the PS/2
and later interpretation, this will be rejected if this entry does
not hold 0, which would indicate it is used for different purposes.
SeeAlso: MEM 0040h:0078h,MEM 0040h:007Ah,MEM 0040h:007Bh"INT 4Bh"
--------m-M0040007B--------------------------
MEM 0040h:007Bh - INT 4Bh FLAGS (PS2 and newer)
Size: BYTE
SeeAlso: INT 4B/AX=8102h
Bitfields for INT 4Bh flags:
Bit(s) Description (Table M0023)
7-6 reserved
5 set if Virtual DMA Spec supported [PS] (see INT 4B)
4 reserved
3 set if INT 4Bh intercepted and must be chained
2 reserved
1 set if Generic SCSI CBIOS services available on INT 4Bh
0 reserved
--------B-M0040007C--------------------------
MEM 0040h:007Ch - SERIAL DEVICE 1 TIMEOUT COUNTER
Size: BYTE
Note: Under DR-OpenDOS 7.02+ this setting can be changed with the
undocumented CONFIG.SYS COM1=[port_address|logical_no][,[timeout]]
directive, whereby port_address = 200h..3F8h, logical_no = 0 or 1..4,
timeout=0..255 (default 1).
SeeAlso: MEM 0040h:0000h,MEM 0040h:007Dh,MEM 0040h:007Eh,MEM 0040h:007Fh
SeeAlso: INT 14/AH=01h
--------B-M0040007D--------------------------
MEM 0040h:007Dh - SERIAL DEVICE 2 TIMEOUT COUNTER
Size: BYTE
Note: Under DR-OpenDOS 7.02+ this setting can be changed with the
undocumented CONFIG.SYS COM2=[port_address|logical_no][,[timeout]]
directive, whereby port_address = 200h..3F8h, logical_no = 0 or 1..4,
timeout=0..255 (default 1).
SeeAlso: MEM 0040h:0002h,MEM 0040h:007Ch,MEM 0040h:007Eh,MEM 0040h:007Fh
SeeAlso: INT 14/AH=01h
--------B-M0040007E--------------------------
MEM 0040h:007Eh - SERIAL DEVICE 3 TIMEOUT COUNTER
Size: BYTE
Note: Under DR-OpenDOS 7.02+ this setting can be changed with the
undocumented CONFIG.SYS COM3=[port_address|logical_no][,[timeout]]
directive, whereby port_address = 200h..3F8h, logical_no = 0 or 1..4,
timeout=0..255 (default 1).
SeeAlso: MEM 0040h:0004h,MEM 0040h:007Ch,MEM 0040h:007Dh,MEM 0040h:007Fh
SeeAlso: INT 14/AH=01h
--------B-M0040007F--------------------------
MEM 0040h:007Fh - SERIAL DEVICE 4 TIMEOUT COUNTER
Size: BYTE
Note: Under DR-OpenDOS 7.02+ this setting can be changed with the
undocumented CONFIG.SYS COM4=[port_address|logical_no][,[timeout]]
directive, whereby port_address = 200h..3F8h, logical_no = 0 or 1..4,
timeout=0..255 (default 1).
SeeAlso: MEM 0040h:0006h,MEM 0040h:007Ch,MEM 0040h:007Dh,MEM 0040h:007Eh
SeeAlso: INT 14/AH=01h
--------K-M00400080--------------------------
MEM 0040h:0080h - KEYBOARD BUFFER START OFFSET FROM SEGMENT 40h (normally 1Eh)
Size: WORD
SeeAlso: MEM 0040h:001Ah,MEM 0040h:001Eh,MEM 0040h:0082h,INT 16/AH=05h
--------K-M00400082--------------------------
MEM 0040h:0082h - KEYBOARD BUFFER END+1 OFFSET FROM SEGMENT 40h (normally 3Eh)
Size: WORD
Note: XT BIOS dated 11/08/82 ends here
SeeAlso: MEM 0040h:001Ch,MEM 0040h:003Eh,MEM 0040h:0080h,INT 16/AH=05h
--------V-M00400084--------------------------
MEM 0040h:0084h - VIDEO (EGA/MCGA/VGA) - ROWS ON SCREEN MINUS ONE
Size: BYTE
SeeAlso: MEM 0040h:0085h,INT 10/AX=1100h
--------V-M00400085--------------------------
MEM 0040h:0085h - VIDEO (EGA/MCGA/VGA) - CHARACTER HEIGHT IN SCAN-LINES
Size: WORD
SeeAlso: MEM 0040h:0084h,INT 10"LIRVGA19"
!!!
--------V-M00400087--------------------------
MEM 0040h:0087h - VIDEO (EGA/VGA) CONTROL: [MCGA: =00h]
Size: BYTE
SeeAlso: MEM 0040h:0084h,MEM 0040h:0085h,MEM 0040h:0088h
Bitfields for EGA/VGA Video control flags:
Bit(s) Description (Table M0024)
7 do not to clear RAM on mode set (see INT 10h, AH=00h)
6-5 RAM on adapter = (this field + 1) * 64K
4 reserved
3 EGA/VGA video system INactive
2 wait for display enable
1 mono monitor
0 alphanumeric cursor emulation DISabled
When enabled, text mode cursor size (INT 10,AH=01h) settings looking
like CGA ones are translated to equivalent EGA/VGA ones.
--------V-M00400088--------------------------
MEM 0040h:0088h - VIDEO (EGA/VGA) SWITCHES: [MCGA: reserved]
Size: BYTE
SeeAlso: MEM 0040h:0087h,MEM 0040h:0089h
Bitfields for EGA/VGA Video switches:
Bit(s) Description (Table M0025)
7-4 power-on state of feature connector bits 3-0
3-0 configuration switches 4-1 (=0 on, =1 off) (see #M0026)
Note: when bit 4 of 0040h:0089h is 0, VGA emulates 350-line EGA if this
byte is x3h or x9h, otherwise emulates 200-line CGA in 400-line
double scan. VGA resets this byte to x9h after the mode set.
See also note for 0040h:0089h.
(Table M0026)
Values for EGA/VGA configuration switches:
00h Pri MDA, Sec EGA+old color display 40 x 25
01h Pri MDA, Sec EGA+old color display 80 x 25
02h Pri MDA, Sec EGA+ECD normal mode (CGA emul)
03h Pri MDA, Sec EGA+ECD enhanced mode
04h Pri CGA 40 x 25, Sec EGA mono display
05h Pri CGA 80 x 25, Sec EGA mono display
06h Pri EGA+old color display 40 x 25, Sec MDA
07h Pri EGA+old color display 80 x 25, Sec MDA
08h Pri EGA+ECD normal mode (CGA emul), Sec MDA
09h Pri EGA+ECD enhanced mode, Sec MDA
0Ah Pri EGA mono display, Sec CGA 40 x 25
0Bh Pri EGA mono display, Sec CGA 80 x 25
SeeAlso: #M0025
--------b-M00400088--------------------------
MEM 0040h:0088h - Olivetti EGA capabilities???
Size: BYTE???
Bitfields for Olivetti EGA capabilities flags:
Bit(s) Description (Table M0130)
7 640x400 mode related???
6 unknown
5 640x400 mode related???
4-0 unknown
Note: To decide if the 640x400 mode is supported by an Olivetti EGA card
(only the Olivetti EGA card 2 supports it), also check that bit 7
and 5 are set.
SeeAlso: C000h:0000h"Olivetti"
--------V-M00400089--------------------------
MEM 0040h:0089h U - VIDEO (MCGA/VGA) - MODE-SET OPTION CONTROL
Size: BYTE
SeeAlso: MEM 0040h:0087h,MEM 0040h:0088h
Bitfields for Video mode-set option control:
Bit(s) Description (Table M0027)
7,4 requested scan lines
0 0 350-line mode requested
0 1 400-line mode at next mode set
1 0 200-line mode requested
1 1 reserved
Note: Apparently VGA BIOS mode set disregards bit 7 and uses
byte 40h:88h to determine 200/350 selection when bit 4
is zero. Presumably bit 7 is a convenience for other
purposes. Bit 7 is reset to zero after the mode set.
6 display switching enabled
5 reserved
4 if set: use 400-line mode at next mode set
if clear: [VGA] emulate EGA at next mode set
[MCGA] emulate CGA, digital monitor, 200 lines, 8x8 text
Note: this bit is set by the video mode set on VGA, unchanged on MCGA
3 default palette loading DISabled at mode set
2 mono display
1 gray scale summing enabled
0 [VGA] =1 if VGA active, =0 if not
[MCGA] reserved, zero
Note: the Tseng ET4000 BIOS v3.00 uses bits 6-4 of 88h and bits 6-5 of 89h
to specify graphics-mode refresh rates as follows
88h/6 640x480: 1 for 72Hz,0 for 60Hz
88h/5+89h/6 800x600: 00 60Hz
01 56Hz
11 72Hz
88h/4+89h/5 1024x768: 00 interlaced
01 60Hz
10 72Hz???
11 70Hz
--------V-M0040008A--------------------------
MEM 0040h:008Ah U - VIDEO (MCGA/VGA) - INDEX INTO DISPLAY COMBINATION CODE TBL
Size: BYTE
SeeAlso: INT 10/AX=1A00h,#M0039
--------*-M0040008B--------------------------
MEM 0040h:008Bh - PC, PCjr, PC/XT 11/8/82, Convertible - RESERVED
Size: 11 BYTEs
--------B-M0040008B--------------------------
MEM 0040h:008Bh - DISKETTE MEDIA CONTROL
Size: BYTE
Bitfields for diskette media control:
Bit(s) Description (Table M0028)
7-6 last data rate set by controller
00=500kbps, 01=300kbps, 10=250kbps, 11=1Mbps
5-4 last diskette drive step rate selected
00=0Ch, 01=0Dh, 10=0Eh, 11=0Ah
3-2 {data rate at start of operation}
1-0 reserved
Note: EHD BIOS sets this byte to 01h and never reads it back
--------B-M0040008C--------------------------
MEM 0040h:008Ch - FIXED DISK - CONTROLLER STATUS [not XT]
Size: BYTE
SeeAlso: MEM 0040h:008Dh,MEM 0040h:008Eh
--------B-M0040008D--------------------------
MEM 0040h:008Dh - FIXED DISK - CONTROLLER ERROR STATUS [not XT]
Size: BYTE
SeeAlso: MEM 0040h:008Ch,MEM 0040h:008Eh
--------B-M0040008E--------------------------
MEM 0040h:008Eh - FIXED DISK - INTERRUPT CONTROL [not XT]
Size: BYTE
Note: cleared to 00h at start of disk operation, set to FFh by IRQ14
handler when hard disk controller completes command
SeeAlso: MEM 0040h:008Ch,MEM 0040h:008Dh,MEM 0040h:008Fh
--------B-M0040008F--------------------------
MEM 0040h:008Fh U - DISKETTE CONTROLLER INFORMATION [not XT]
Size: BYTE
SeeAlso: MEM 0040h:008Ch,MEM 0040h:008Dh,MEM 0040h:008Eh
Bitfields for diskette controller information:
Bit(s) Description (Table M0029)
7 reserved
6 =1 drive 1 determined
5 =1 drive 1 is multi-rate, valid if drive determined
4 =1 drive 1 supports 80 tracks, always valid
3 reserved
2 =1 drive 0 determined
1 =1 drive 0 is multi-rate, valid if drive determined
0 =1 drive 0 supports 80 tracks, always valid
Note: EHD BIOS sets this byte to 01h and never alters it again
--------B-M00400090--------------------------
MEM 0040h:0090h - DISKETTE DRIVE 0 MEDIA STATE