INT 15 - SYSTEM - GET EXTENDED MEMORY SIZE (286+) Classification: BIOS AH = 88h Returns: CF clear if successful AX = number of contiguous KB starting at absolute address 100000h CF set on error AH = status 80h invalid command (PC,PCjr) 86h unsupported function (XT,PS30) Note: TSRs which wish to allocate extended memory to themselves often hook this call, and return a reduced memory size. They are then free to use the memory between the new and old sizes at will. The standard BIOS only returns memory between 1MB and 16MB; use AH=C7h for memory beyond 16MB Not all BIOSes correctly return the carry flag, making this call unreliable unless one first checks whether it is supported through a mechanism other than calling the function and testing CF See also: AH=87h AH=C7h --- INT 15 - SYSTEM - GET CONFIGURATION (XT after 1/10/86,AT mdl 3x9,CONV,XT286,PS) Classification: BIOS AH = C0h Returns: CF set if BIOS doesn't support call CF clear on success ES:BX -> ROM table (see #0323) AH = status 00h successful 86h unsupported function Note: the 1/10/86 XT BIOS returns an incorrect value for the feature byte The configuration table is at F000h:E6F5h in 100% compatible BIOSes Dell machines contain the signature "DELL" or "Dell" at absolute FE076h and a model byte at absolute address FE845h (see #0329) Hewlett-Packard machines contain the signature "HP" at F000h:00F8h and a product identifier at F000h:00FAh (see #0331) Compaq machines can be identified by the signature string "COMPAQ" at F000h:FFEAh, and is preceded by additional information (see #0330) Tandy 1000 machines contain 21h in the byte at F000h:C000h and FFh in the byte at FFFFh:000Eh; Tandy 1000SL/TL machines only provide the first three data bytes (model/submodel/revision) in the returned table Toshiba laptops contain the signature "TOSHIBA" at FE010h as part of a laptop information record at F000h:E000h (see #0332) Some AST machines contain the string "COPYRIGHT AST RESEARCH" one byte past the end of the configuration table The Phoenix 386 BIOS contains a second version and date string (presumably the last modification for that OEM version) beginning at F000h:FFD8h, with each byte doubled (so that both ROM chips contain the complete information) See also: AH=C7h AH=C9h AH=D1h Format of ROM configuration table: Offset Size Description (Table 0323) 00h WORD number of bytes following 02h BYTE model (see #0328) 03h BYTE submodel (see #0328) 04h BYTE BIOS revision: 0 for first release, 1 for 2nd, etc. 05h BYTE feature byte 1 (see #0324) 06h BYTE feature byte 2 (see #0325) 07h BYTE feature byte 3 (see #0326) 08h BYTE feature byte 4 (see #0327) 09h BYTE feature byte 5: reserved (0) (IBM) ??? (08h) (Phoenix 386 v1.10) ---AWARD BIOS--- 0Ah N BYTEs AWARD copyright notice ---Phoenix BIOS--- 0Ah BYTE ??? (00h) 0Bh BYTE major version 0Ch BYTE minor version (BCD) 0Dh 4 BYTEs ASCIZ string "PTL" (Phoenix Technologies Ltd) ---Quadram Quad386--- 0Ah 17 BYTEs ASCII signature string "Quadram Quad386XT" Bitfields for feature byte 1: Bit(s) Description (Table 0324) 7 DMA channel 3 used by hard disk BIOS 6 2nd 8259 installed 5 Real-Time Clock installed 4 INT 15/AH=4Fh called upon INT 09h 3 wait for external event (INT 15/AH=41h) supported 2 extended BIOS area allocated (usually at top of RAM) 1 bus is Micro Channel instead of ISA 0 system has dual bus (Micro Channel + ISA) Bitfields for feature byte 2: Bit(s) Description (Table 0325) 7 reserved 6 INT 16/AH=09h (keyboard functionality) supported 5 INT 15/AH=C6h (get POS data) supported 4 INT 15/AH=C7h (return memory map info) supported 3 INT 15/AH=C8h (en/disable CPU functions) supported 2 non-8042 keyboard controller 1 data streaming supported 0 reserved Bitfields for feature byte 3: Bit(s) Description (Table 0326) 7-5 reserved 4 ??? (set on 1992 PS/1's, N51SX, CL57SX, 35SX?, 40SX?) 3 SCSI subsystem supported on system board 2 information panel installed 1 IML (Initial Machine Load) system 0 SCSI supported in IML Bitfields for feature byte 4: Bit(s) Description (Table 0327) 7 ??? (set on N51SX, CL57SX) 6-4 reserved 3 ??? (set on some 1992 PS/1's, 35SX, 40SX) 2-1 reserved 0 ??? (set on N51SX, CL57SX, 57SX) (Table 0328) Values for model/submodel/revision: Model Submdl Rev BIOS date System FFh * * 04/24/81 PC (original) FFh * * 10/19/81 PC (some bugfixes) FFh * * 10/27/82 PC (HD, 640K, EGA support) FFh 00h rev ??? Tandy 1000SL FFh 01h rev ??? Tandy 1000TL FFh 46h *** ??? Olivetti M15 FEh * * 08/16/82 PC XT FEh * * 11/08/82 PC XT and Portable FEh * * ../..x.. Toshiba laptops up to ~1987 ("x"=product ID) (see #0333) FEh 43h *** ??? Olivetti M240 FEh A6h ??? ??? Quadram Quad386 FDh * * 06/01/83 PCjr FCh * * 01/10/84 AT models 068,099 6 MHz 20MB FCh 00h 00h ??? PC3270/AT FCh 00h 01h 06/10/85 AT model 239 6 MHz 30MB FCh 00h > 01h ??? 7531/2 Industrial AT FCh 01h 00h 11/15/85 AT models 319,339 8 MHz, Enh Keyb, 3.5" FCh 01h 00h 09/17/87 Tandy 3000 FCh 01h 00h ../..x.. Toshiba laptops since ~1988 ("x"=product ID) (see #0333) FCh 01h 00h 03/08/93 Compaq DESKPRO/i FCh 01h 00h various Compaq DESKPRO, SystemPro, ProSignia FCh 01h 00h 07/20/93 Zenith Z-Lite 425L FCh 01h 20h 06/10/92 AST FCh 01h 30h ??? Tandy 3000NL FCh 01h ??? ??? Compaq 286/386 FCh 02h 00h 04/21/86 PC XT-286 FCh 02h 00h various Compaq LTE Lite FCh 02h 00h 08/05/93 Compaq Contura 486/486c/486cx FCh 04h 00h 02/13/87 ** PS/2 Model 50 (10 MHz/1 ws 286) FCh 04h 02h ??? PS/2 Model 50 FCh 04h 03h 04/18/88 PS/2 Model 50Z (10 MHz/0 ws 286) FCh 04h 04h ??? PS/2 Model 50Z FCh 05h 00h 02/13/87 ** PS/2 Model 60 (10 MHz 286) FCh 06h 00h ??? IBM 7552-140 "Gearbox" FCh 06h 01h ??? IBM 7552-540 "Gearbox" FCh 08h *** ??? Epson, unknown model FCh 08h 00h ??? PS/2 Model 25/286 FCh 09h 00h ??? PS/2 Model 25 (10 MHz 286) FCh 09h 02h 06/28/89 PS/2 Model 30-286 FCh 0Bh 00h 02/16/90 PS/1 Model 2011 (10 MHz 286) FCh 20h 00h 02/18/93 Compaq ProLinea FCh 30h *** ??? Epson, unknown model FCh 31h *** ??? Epson, unknown model FCh 33h *** ??? Epson, unknown model FCh 3Fh ??? 09/16991 Toshiba T2200SX/60 (see also #0333) FCh 42h *** ??? Olivetti M280 FCh 45h *** ??? Olivetti M380 (XP 1, XP3, XP 5) FCh 48h *** ??? Olivetti M290 FCh 4Fh *** ??? Olivetti M250 FCh 50h *** ??? Olivetti M380 (XP 7) FCh 51h *** ??? Olivetti PCS286 FCh 52h *** ??? Olivetti M300 FCh 81h 00h 01/15/88 Phoenix 386 BIOS v1.10 10a FCh 81h 01h ??? "OEM machine" FCh 82h 01h ??? "OEM machine" FCh 94h 00h ??? Zenith 386 FCh FFh ??? 01/28<91 Toshiba T2000SX/40 (see also #0333) FBh 00h 01h 01/10/86 PC XT-089, Enh Keyb, 3.5" support FBh 00h 02h 05/09/86 PC XT FBh 4Ch *** ??? Olivetti M200 FAh 00h 00h 09/02/86 PS/2 Model 30 (8 MHz 8086) FAh 00h 01h 12/12/86 PS/2 Model 30 FAh 01h 00h ??? PS/2 Model 25/25L (8 MHz 8086) FAh 30h 00h ??? IBM Restaurant Terminal FAh 4Eh *** ??? Olivetti M111 FAh FEh 00h ??? IBM PCradio 9075 F9h 00h 00h 09/13/85 PC Convertible F9h FFh 00h ??? PC Convertible F8h 00h 00h 03/30/87 ** PS/2 Model 80 (16MHz 386) F8h 01h 00h 10/07/87 PS/2 Model 80 (20MHz 386) F8h 02h 00h ??? PS/2 Model 55-5571 F8h 04h 00h ??? PS/2 Model 70 F8h 04h 02h 04/11/88 PS/2 Model 70 20MHz, type 2 system brd F8h 04h 03h 03/17/89 PS/2 Model 70 20MHz, type 2 system brd F8h 05h 00h ??? IBM PC 7568 F8h 06h 00h ??? PS/2 Model 55-5571 F8h 07h 00h ??? IBM PC 7561/2 F8h 07h 01h ??? PS/2 Model 55-5551 F8h 07h 02h ??? IBM PC 7561/2 F8h 07h 03h ??? PS/2 Model 55-5551 F8h 09h 00h ??? PS/2 Model 70 16MHz, type 1 system brd F8h 09h 02h 04/11/88 PS/2 Model 70 some models F8h 09h 03h 03/17/89 PS/2 Model 70 some models F8h 0Bh 00h 01/18/89 PS/2 Model P70 (8573-121) typ 2 sys brd F8h 0Bh 02h 12/16/89 PS/2 Model P70 ?? F8h 0Ch 00h 11/02/88 PS/2 Model 55SX (16 MHz 386SX) F8h 0Dh 00h ??? PS/2 Model 70 25MHz, type 3 system brd F8h 0Eh 00h ??? PS/1 486SX F8h 0Fh 00h ??? PS/1 486DX F8h 10h 00h ??? PS/2 Model 55-5551 F8h 11h 00h 10/01/90 PS/2 Model 90 XP (25 MHz 486) F8h 12h 00h ??? PS/2 Model 95 XP F8h 13h 00h 10/01/90 PS/2 Model 90 XP (33 MHz 486) F8h 14h 00h 10/01/90 PS/2 Model 90-AK9 (25 MHz 486), 95 XP F8h 15h 00h ??? PS/2 Model 90 XP F8h 16h 00h 10/01/90 PS/2 Model 90-AKD (33 MHz 486) F8h 17h 00h ??? PS/2 Model 90 XP F8h 19h 05h ??? PS/2 Model 35/35LS or 40 (20 MHz 386SX) F8h 1Ah 00h ??? PS/2 Model 95 XP F8h 1Bh 00h 10/02/89 PS/2 Model 70-486 (25 MHz 486) F8h 1Ch 00h 02/08/90 PS/2 Model 65-121 (16 MHz 386SX) F8h 1Eh 00h 02/08/90 PS/2 Model 55LS (16 MHz 386SX) F8h 23h 00h ??? PS/2 Model L40 SX F8h 23h 01h ??? PS/2 Model L40 SX (20 MHz 386SX) F8h 25h 00h ??? PS/2 Model 57 SLC F8h 25h 06h ??? PS/2 Model M57 (20 MHz 386SLC) F8h 26h 00h ??? PS/2 Model 57 SX F8h 26h 01h ??? PS/2 Model 57 (20 MHz 386SX) F8h 28h 00h ??? PS/2 Model 95 XP F8h 29h 00h ??? PS/2 Model 90 XP F8h 2Ah 00h ??? PS/2 Model 95 XP (50 MHz 486) F8h 2Bh 00h ??? PS/2 Model 90 (50 MHz 486) F8h 2Ch 00h ??? PS/2 Model 95 XP F8h 2Ch 01h ??? PS/2 Model 95 (20 MHz 486SX) F8h 2Dh 00h ??? PS/2 Model 90 XP (20 MHz 486SX) F8h 2Eh 00h ??? PS/2 Model 95 XP F8h 2Eh 01h ??? PS/2 Model 95 (20 MHz 486SX + 487SX) F8h 2Fh 00h ??? PS/2 Model 90 XP (20 MHz 486SX + 487SX) F8h 30h 00h ??? PS/1 Model 2121 (16 MHz 386SX) F8h 33h 00h ??? PS/2 Model 30-386 F8h 34h 00h ??? PS/2 Model 25-386 F8h 36h 00h ??? PS/2 Model 95 XP F8h 37h 00h ??? PS/2 Model 90 XP F8h 38h 00h ??? PS/2 Model 57 F8h 39h 00h ??? PS/2 Model 95 XP F8h 3Fh 00h ??? PS/2 Model 90 XP F8h 40h 00h ??? PS/2 Model 95 XP F8h 41h 00h ??? PS/2 Model 77 F8h 45h 00h ??? PS/2 Model 90 XP (Pentium) F8h 46h 00h ??? PS/2 Model 95 XP (Pentium) F8h 47h 00h ??? PS/2 Model 90/95 E (Pentium) F8h 48h 00h ??? PS/2 Model 85 F8h 49h 00h ??? PS/ValuePoint 325T F8h 4Ah 00h ??? PS/ValuePoint 425SX F8h 4Bh 00h ??? PS/ValuePoint 433DX F8h 4Eh 00h ??? PS/2 Model 295 F8h 50h 00h ??? PS/2 Model P70 (8573) (16 MHz 386) F8h 50h 01h 12/16/89 PS/2 Model P70 (8570-031) F8h 52h 00h ??? PS/2 Model P75 (33 MHz 486) F8h 56h 00h ??? PS/2 Model CL57 SX F8h 57h 00h ??? PS/2 Model 90 XP F8h 58h 00h ??? PS/2 Model 95 XP F8h 59h 00h ??? PS/2 Model 90 XP F8h 5Ah 00h ??? PS/2 Model 95 XP F8h 5Bh 00h ??? PS/2 Model 90 XP F8h 5Ch 00h ??? PS/2 Model 95 XP F8h 5Dh 00h ??? PS/2 Model N51 SLC F8h 5Eh 00h ??? IBM ThinkPad 700 F8h 61h *** ??? Olivetti P500 F8h 62h *** ??? Olivetti P800 F8h 80h 00h ??? PS/2 Model 80 (25 MHz 386) F8h 80h 01h 11/21/89 PS/2 Model 80-A21 F8h 81h 00h ??? PS/2 Model 55-5502 F8h 87h 00h ??? PS/2 Model N33SX F8h 88h 00h ??? PS/2 Model 55-5530T F8h 97h 00h ??? PS/2 Model 55 Note N23SX F8h 99h 00h ??? PS/2 Model N51 SX F8h F2h 30h ??? Reply Model 32 F8h F6h 30h ??? Memorex Telex F8h FDh 00h ??? IBM Processor Complex (with VPD) F8h ??? ??? ??? PS/2 Model 90 (25 MHz 486SX) F8h ??? ??? ??? PS/2 Model 95 (25 MHz 486SX) F8h ??? ??? ??? PS/2 Model 90 (25 MHz 486SX + 487SX) F8h ??? ??? ??? PS/2 Model 95 (25 MHz 486SX + 487SX) E1h ??? ??? ??? ??? (checked for by DOS4GW.EXE) E1h 00h 00h ??? PS/2 Model 55-5530 Laptop 9Ah * * ??? Compaq XT/Compaq Plus 30h ??? ??? ??? Sperry PC 2Dh * * ??? Compaq PC/Compaq Deskpro ??? 56h ??? ??? Olivetti, unknown model ??? 74h ??? ??? Olivetti, unknown model * This BIOS call is not implemented in these early versions. Read Model byte at F000h:FFFEh and BIOS date at F000h:FFF5h. ** These BIOS versions require the DASDDRVR.SYS patches. *** These Olivetti and Epson machines store the submodel in the byte at F000h:FFFDh. (Table 0329) Values for Dell model byte: 02h Dell 200 03h Dell 300 05h Dell 220 06h Dell 310 07h Dell 325 09h Dell 310A 0Ah Dell 316 0Bh Dell 220E 0Ch Dell 210 0Dh Dell 316SX 0Eh Dell 316LT 0Fh Dell 320LX 11h Dell 425E Format of Compaq product information: Address Size Description (Table 0330) F000h:FFE4h BYTE product family code (first byte) F000h:FFE4h BYTE Point release number F000h:FFE4h BYTE ROM version code F000h:FFE4h BYTE product family code (second byte) F000h:FFE8h WORD BIOS type code Bitfields for Hewlett-Packard product identifier: Bit(s) Description (Table 0331) 4-0 machine code 0 original Vectra 1 ES/12 2 RS/20 3 Portable/CS 4 ES 5 CS 6 RS/16 other reserved 7-5 CPU type 0 = 80286 1 = 8088 2 = 8086 3 = 80386 other reserved Format of Toshiba laptop information: Offset Size Description (Table 0332) 00h 8 BYTEs ASCII product number (e.g. "T2200SX ") 08h 8 BYTEs ASCII version number (e.g. "V1.20 ") 10h 8 BYTEs ASCII signature string "TOSHIBA " 18h 8 BYTEs ??? 20h DWORD -> built-in BIOS setup program entry point or 0000h:0000h Note: this record is located at F000h:E000h (Table 0333) Values for Toshiba product ID: model prodID version date product number /hdd FEh 29h ../..).. Toshiba T1000LE FEh 2Ah ../..*.. Toshiba T1000XE FEh 2Bh ../..+.. Toshiba T1000SE FEh 2Ch ../..,.. Toshiba T1000 - FEh 2Dh ../..-.. Toshiba T1200F - FEh 2Dh V4.00 12/26-87 Toshiba T1200H /20 FEh 2Eh ../..... Toshiba T1100+ FCh 22h ../..".. Toshiba T8500 FCh 26h 01/15&88 Toshiba T5200 /100 FCh 27h ../..'.. Toshiba T5100 FCh 28h ../..(.. Toshiba T2000 FCh 2Ah 12/26*89 Toshiba T1200XE FCh 2Bh ../..+.. Toshiba T1600 FCh 2Ch ../..,.. Toshiba T3100e FCh 2Dh ../..-.. Toshiba T3200 FCh 2Fh ../../.. Toshiba T3100 FCh 34h ../..4.. Toshiba T100X FCh ??? ../.. .. Toshiba T200 FCh ??? ../.. .. Toshiba T200CS FCh 38h ../..8.. Toshiba T2000SXe FCh 39h V1.20 09/16991 Toshiba T2200SX /60 FCh 39h V1.40 10/01992 Toshiba T2200SX /120 (upgraded) FCh 3Ch V1.50 01/28<91 Toshiba T2000SX /40 FCh 3Dh ../..=.. Toshiba T3200SXC FCh 3Eh ../..>.. Toshiba T3100SX FCh 3Fh ../..?.. Toshiba T3200SX FCh 40h ../..@.. Toshiba T4500C FCh 41h 04/05A92 Toshiba T4500 ("T4500SXC" ?) FCh 45h V3.20 04/14E92 Toshiba T4400SX ("C" or "SXC" on cover) FCh 45h 01/13E93 Toshiba T4400SXC FCh 46h * ../..F.. Toshiba T6400 FCh 46h * ../..F.. Toshiba T6400C FCh 5Fh ../.._.. Toshiba T3300SL FCh 69h ../..i.. Toshiba T1900C FCh 6Ah ../..j.. Toshiba T1900 FCh 6Dh ../..m.. Toshiba T1850C FCh 6Eh 12/25n92 Toshiba T1850 FCh 6Fh 07/17o92 Toshiba T1800 FCh 7Eh V1.30 06/17~93 Toshiba T4600C FCh 7Fh ../..x.. Toshiba T4600 FCh 97h ../..x.. Toshiba T4800CT FCh 98h * V1.10 12/22x93 Toshiba T1910 /120 /320 FCh 98h * ../..x.. Toshiba T1910CS FCh 99h ../..x.. Toshiba T4700CS FCh 9Bh V2.30 01/31x94 Toshiba T4700CT FCh 9Bh V2.50 03/22x94 Toshiba T4700CT /320 FCh 9Ch V1.30 01/11x94 Toshiba T1950CT /320 FCh 9Dh * ../..x.. Toshiba T1950 FCh 9Dh * ../..x.. Toshiba T1950CS FCh 9Eh * V1.20 12/25x93 Toshiba T3400 /120 FCh 9Eh * Toshiba T3400CT Note: BIOS version numbers and dates may vary, esp. due to harddisk upgrades [*] These models have monochrome and color versions which can only be distinguished with INT 42/AX=7503h --- INT 15 - SYSTEM - later PS/2s - RETURN MEMORY-MAP INFORMATION Classification: BIOS AH = C7h DS:SI -> user supplied memory map table (see #0338) Note: call AH=C0h and examine bit 4 of feature byte 2 to check if this function is supported Returns: CF set on error, clear if successful See also: AH=C0h AH=C9h AH=D1h Format of memory-map table structure: Offset Size Description (Table 0338) 00h WORD length of table (excluding this word) 02h DWORD local memory between 1M and 16M, in 1K blocks 06h DWORD local memory between 16M and 4G, in 1K blocks 0Ah DWORD system memory between 1M and 16M, in 1K blocks 0Eh DWORD system memory between 16M and 4G, in 1K blocks 12h DWORD cacheable memory between 1M and 16M, in 1K blocks 16h DWORD cacheable memory between 16M and 4G, in 1K blocks 1Ah DWORD 1K blocks before start of non-system memory between 1M and 16M 1Eh DWORD 1K blocks before start of non-system memory between 16M and 4G 22h 2 DWORDs reserved