home *** CD-ROM | disk | FTP | other *** search
Text File | 1995-08-13 | 350.6 KB | 9,927 lines |
- Interrupt List, part 3 of 13
- This compilation is Copyright (c) 1989,1990,1991,1992,1993,1994,1995 Ralf Brown
- --------J-1550-------------------------------
- INT 15 - DOS/V - FONT SUBSYSTEM ACCESS
- AH = 50h
- AL = which function address to retrieve
- 00h "read font" function
- 01h "write font" function
- BL = 00h
- BH = character size (00h single-byte, 01h double-byte)
- DH = width of character cell
- DL = height of character cell
- BP = code page (see #0356)
- Return: CF clear if successful
- AH = 00h
- ES:BX -> requested function's address
- CF set on error
- AH = error code (see #0357)
- SeeAlso: AH=49h
-
- (Table 0356)
- Values for DOS/V code page:
- 0 default
- 437 US English
- 932 Japanese
- 934 Korea
- 936 China
- 938 Taiwan
-
- (Table 0357)
- Values for DOS/V error code:
- 01h invalid font type in BH
- 02h BL not zero
- 03h invalid font size
- 04h invalid code page
- 80h unsupported function (PC)
- 86h unsupported function (XT)
- --------T-1550-------------------------------
- INT 15 - VMIX v2.???+ - "sys_vm_page" - SET NEW VIRTUAL PAGE TABLE
- AH = 50h
- BX = segment of page directory table
- CX = page number of page table
- SeeAlso: AH=10h"VMiX",AH=51h"VMiX",AH=52h"VMiX"
- --------T-1551-------------------------------
- INT 15 - VMiX v2.???+ - "sys_vm_func" - EXECUTE FUNCTION IN PROTECTED MODE
- AH = 51h
- STACK: DWORD selector:offset of function
- Return: registers as returned by function
- Note: executes function with privilege level 0 (highest privilege)
- SeeAlso: AH=10h"VMiX",AH=52h"VMiX"
- --------B-155101-----------------------------
- INT 15 - SYSTEM - later PS/2s - EXPANSION UNIT, RETURN CONFIGURATION NUMBER
- AX = 5101h
- Return: CF set if successful
- AH = 00h
- AL = current configuration number
- 00h system unit only
- FFh configuration not recognized
- BX = status flag
- bits 0-14: reserved
- bit 15: additional data is available (location TBD)
- CF clear on error
- AH = status
- 01h expansion unit is not present
- 86h function not supported
- Note: CF convention is the reverse of the standard convention for this
- interrupt. (Perhaps a typo in the IBM BIOS Tech Ref?)
- --------T-1552-------------------------------
- INT 15 - VMiX v2.???+ - "sys_vm_init" - INITIALIZE PROTECTED-MODE ENVIRONMENT
- AH = 52h
- SeeAlso: AH=50h"VMiX",AH=51h"VMiX"
- --------d-1552-------------------------------
- INT 15 C - IBM/MS INT 13 Extensions - MEDIA EJECT INTERCEPT
- AH = 52h
- DL = drive number
- Return: CF clear if OK to eject media
- AH = 00h
- CF set if ejection disallowed
- AH = error code (B1h,B3h) (see #0140)
- Note: called by the IBM/MS INT 13 Extensions driver/BIOS when an ejection
- request is made
- SeeAlso: INT 13/AH=46h"INT 13 Extensions"
- --------p-155300-----------------------------
- INT 15 - Advanced Power Management Specification - INSTALLATION CHECK
- AX = 5300h
- BX = device ID of system BIOS (0000h)
- Return: CF clear if successful
- AH = major version (BCD)
- AL = minor version (BCD)
- BX = 504Dh ("PM")
- CX = flags (see #0358)
- CF set on error
- AH = error code (06h,86h) (see #0359)
- BUG: early versions of the Award Modular BIOS with built-in APM support
- reportedly do not set BX on return
-
- Bitfields for APM flags:
- Bit(s) Description (Table 0358)
- 0 16-bit protected mode interface supported
- 1 32-bit protected mode interface supported
- 2 CPU idle call reduces processor speed
- 3 BIOS power management disabled
- 4 BIOS power management disengaged (APM v1.1)
- 5-7 reserved
-
- (Table 0359)
- Values for APM error code:
- 01h power management functionality disabled
- 02h interface connection already in effect
- 03h interface not connected
- 04h real-mode interface not connected
- 05h 16-bit protected-mode interface already connected
- 06h 16-bit protected-mode interface not supported
- 07h 32-bit protected-mode interface already connected
- 08h 32-bit protected-mode interface not supported
- 09h unrecognized device ID
- 0Ah invalid parameter value in CX
- 0Bh-1Fh reserved for other interface and general errors
- 20h-3Fh reserved for CPU errors
- 40h-5Fh reserved for device errors
- 60h can't enter requested state
- 61h-7Fh reserved for other system errors
- 80h no power management events pending
- 81h-85h reserved for other power management event errors
- 86h APM not present
- 87h-9Fh reserved for other power management event errors
- --------p-155301-----------------------------
- INT 15 - Advanced Power Management Specification - CONNECT REAL-MODE INTERFACE
- AX = 5301h
- BX = device ID of system BIOS (0000h)
- Return: CF clear if successful
- CF set on error
- AH = error code (02h,05h,07h,09h) (see #0359)
- SeeAlso: AX=5302h,AX=5303h,AX=5304h
- --------p-155302-----------------------------
- INT 15 R - Advanced Power Management Spec - CONNECT 16-BIT PROTMODE INTERFACE
- AX = 5302h
- BX = device ID of system BIOS (0000h)
- Return: CF clear if successful
- AX = real-mode segment base address of protected-mode 16-bit code
- segment
- BX = offset of entry point
- CX = real-mode segment base address of protected-mode 16-bit data
- segment
- ---APM v1.1---
- SI = APM BIOS code segment length
- DI = APM BIOS data segment length
- CF set on error
- AH = error code (02h,05h,06h,07h,09h) (see #0359)
- Notes: the caller must initialize two consecutive descriptors with the
- returned segment base addresses; these descriptors must be valid
- whenever the protected-mode interface is called, and will have
- their limits arbitrarily set to 64K.
- the protected mode interface is invoked by making a far call with the
- same register values as for INT 15; it must be invoked while CPL=0,
- the code segment descriptor must have a DPL of 0, the stack must be
- in a 16-bit segment and have enough room for BIOS use and possible
- interrupts, and the current I/O permission bit map must allow access
- to the I/O ports used for power management.
- functions 00h-03h are not available from protected mode
- SeeAlso: AX=5301h,AX=5303h,AX=5304h
- --------p-155303-----------------------------
- INT 15 - Advanced Power Management Spec - CONNECT 32-BIT PROTMODE INTERFACE
- AX = 5303h
- BX = device ID of system BIOS (0000h)
- Return: CF clear if successful
- AX = real-mode segment base address of protected-mode 32-bit code
- segment
- EBX = offset of entry point
- CX = real-mode segment base address of protected-mode 16-bit code
- segment
- DX = real-mode segment base address of protected-mode 16-bit data
- segment
- ---APM v1.1---
- SI = APM BIOS code segment length
- DI = APM BIOS data segment length
- CF set on error
- AH = error code (02h,05h,07h,08h,09h) (see #0359)
- Notes: the caller must initialize three consecutive descriptors with the
- returned segment base addresses for 32-bit code, 16-bit code, and
- 16-bit data, respectively; these descriptors must be valid whenever
- the protected-mode interface is called, and will have their limits
- arbitrarily set to 64K.
- the protected mode interface is invoked by making a far call to the
- 32-bit code segment with the same register values as for INT 15; it
- must be invoked while CPL=0, the code segment descriptor must have a
- DPL of 0, the stack must be in a 32-bit segment and have enough room
- for BIOS use and possible interrupts, and the current I/O permission
- bit map must allow access to the I/O ports used for power management.
- functions 00h-03h are not available from protected mode
- SeeAlso: AX=5301h,AX=5302h,AX=5304h
- --------p-155304-----------------------------
- INT 15 - Advanced Power Management Specification - DISCONNECT INTERFACE
- AX = 5304h
- BX = device ID of system BIOS (0000h)
- Return: CF clear if successful
- CF set on error
- AH = error code (03h,09h) (see #0359)
- SeeAlso: AX=5301h,AX=5302h,AX=5303h
- --------p-155305-----------------------------
- INT 15 - Advanced Power Management Specification - CPU IDLE
- AX = 5305h
- Return: CF clear if successful (after system leaves idle state)
- CF set on error
- AH = error code (03h,0Bh) (see #0359)
- Notes: call when the system is idle and should be suspended until the next
- system event or interrupt
- should not be called from within a hardware interrupt handler to avoid
- reentrance problems
- if an interrupt causes the system to resume normal processing, the
- interrupt may or may not have been handled when the BIOS returns
- from this call; thus, the caller should allow interrupts on return
- interrupt handlers may not retain control if the BIOS allows
- interrupts while in idle mode even if they are able to determine
- that they were called from idle mode
- the caller should issue this call continuously in a loop until it needs
- to perform some processing of its own
- SeeAlso: AX=1000h,AX=5306h,INT 2F/AX=1680h
- --------p-155306-----------------------------
- INT 15 - Advanced Power Management Specification - CPU BUSY
- AX = 5306h
- Return: CF clear if successful
- CF set on error
- AH = error code (03h,0Bh) (see #0359)
- Notes: called to ensure that the system runs at full speed even on systems
- where the BIOS is unable to recognize increased activity (especially
- if interrupts are hooked by other programs and not chained to the
- BIOS)
- this call may be made even when the system is already running at full
- speed, but it will create unnecessary overhead
- should not be called from within a hardware interrupt handler to avoid
- reentrance problems
- SeeAlso: AX=5305h
- --------p-155307-----------------------------
- INT 15 - Advanced Power Management Specification - SET POWER STATE
- AX = 5307h
- BX = device ID (see #0360)
- CX = system state ID (see #0361)
- Return: CF clear if successful
- CF set on error
- AH = error code (01h,03h,09h,0Ah,0Bh,60h) (see #0359)
- Note: should not be called from within a hardware interrupt handler to avoid
- reentrance problems
- SeeAlso: AX=530Ch
-
- (Table 0360)
- Values for APM device IDs:
- 0000h system BIOS
- 0001h all devices for which the system BIOS manages power
- 01xxh display (01FFh for all attached display devices)
- 02xxh secondary storage (02FFh for all attached secondary storage devices)
- 03xxh parallel ports (03FFh for all attached parallel ports)
- 04xxh serial ports (04FFh for all attached serial ports)
- ---APM v1.1---
- 05xxh network adapters (05FFh for all attached network adapters)
- 06xxh PCMCIA sockets (06FFh for all)
- 0700h-DFFFh reserved
- Exxxh OEM-defined power device IDs
- F000h-FFFFh reserved
-
- (Table 0361)
- Values for system state ID:
- 0000h ready (not supported for device ID 0001h)
- 0001h stand-by
- 0002h suspend
- 0003h off (not supported for device ID 0001h)
- ---APM v1.1---
- 0004h last request processing notification (only for device ID 0001h)
- 0005h last request rejected (only for device ID 0001h)
- 0006h-001Fh reserved system states
- 0020h-003Fh OEM-defined system states
- 0040h-007Fh OEM-defined device states
- 0080h-FFFFh reserved device states
- --------p-155307CX0001-----------------------
- INT 15 - Advanced Power Management Specification - SYSTEM STAND-BY
- AX = 5307h
- CX = 0001h
- BX = 0001h (device ID for all power-managed devices)
- Return: CF clear
- Notes: puts the entire system into stand-by mode; normally called in response
- to a System Stand-by Request notification after any necessary
- processing, but may also be invoked at the caller's discretion
- should not be called from within a hardware interrupt handler to avoid
- reentrance problems
- the stand-by state is typically exited on an interrupt
- SeeAlso: AX=4280h,AX=5307h/CX=0002h/BX=0001h,AX=530Bh
- --------p-155307CX0002-----------------------
- INT 15 - Advanced Power Management Specification - SUSPEND SYSTEM
- AX = 5307h
- CX = 0002h
- BX = 0001h (device ID for all power-managed devices)
- Return: after system is resumed
- CF clear
- Notes: puts the entire system into a low-power suspended state; normally
- called in response to a Suspend System Request notification after
- any necessary processing, but may also be invoked at the caller's
- discretion
- should not be called from within a hardware interrupt handler to avoid
- reentrance problems
- the caller may need to update its date and time values because the
- system could have been suspended for a long period of time
- SeeAlso: AX=5307h/CX=0001h/BX=0001h,AX=530Bh
- --------p-155308-----------------------------
- INT 15 - Advanced Power Management Spec - ENABLE/DISABLE POWER MANAGEMENT
- AX = 5308h
- BX = device ID for all devices power-managed by APM
- 0001h (APM v1.1)
- FFFFh (APM v1.0)
- CX = new state
- 0000h disabled
- 0001h enabled
- Return: CF clear if successful
- CF set on error
- AH = error code (01h,03h,09h,0Ah,0Bh) (see #0359)
- Notes: when power management is disabled, the system BIOS will not
- automatically power down devices, enter stand-by or suspended mode,
- or perform any power-saving actions in response to AX=5305h calls
- should not be called from within a hardware interrupt handler to avoid
- reentrance problems
- SeeAlso: AX=5309h,AX=530Dh,AX=530Fh
- --------p-155309-----------------------------
- INT 15 - Advanced Power Management Specification - RESTORE POWER-ON DEFAULTS
- AX = 5309h
- BX = device ID for all devices power-managed by APM
- 0001h (APM v1.1)
- FFFFh (APM v1.0)
- Return: CF clear if successful
- CF set on error
- AH = error code (09h) (see #0359)
- Note: should not be called from within a hardware interrupt handler to avoid
- reentrance problems
- SeeAlso: AX=5308h
- --------p-15530ABX0001-----------------------
- INT 15 - Advanced Power Management Specification - GET POWER STATUS
- AX = 530Ah
- BX = 0001h (device ID for all devices power-managed by APM)
- Return: CF clear if successful
- BH = AC line status
- 00h off-line
- 01h on-line
- 02h on backup power (APM v1.1)
- FFh unknown
- other reserved
- BL = battery status (see #0362)
- CH = battery flag (APM v1.1) (see #0363)
- CL = remaining battery life, percentage
- 00h-64h (0-100) percentage of full charge
- FFh unknown
- DX = remaining battery life, time (APM v1.1) (see #0364)
- CF set on error
- AH = error code (09h) (see #0359)
- Note: should not be called from within a hardware interrupt handler to avoid
- reentrance problems
-
- (Table 0362)
- Values for APM v1.0+ battery status:
- 00h high
- 01h low
- 02h critical
- 03h charging
- FFh unknown
- other reserved
-
- Bitfields for APM v1.1 battery flag:
- Bit(s) Description (Table 0363)
- 0 high
- 1 low
- 2 critical
- 3 charging
- 4-6 reserved
- 7 no system battery
- Note: all bits set (FFh) if unknown
-
- Bitfields for APM v1.1 remaining battery life:
- Bit(s) Description (Table 0364)
- 15 time units: 0=seconds, 1=minutes
- 14-0 battery life in minutes or seconds
- Note: all bits set (FFFFh) if unknown
- --------p-15530B-----------------------------
- INT 15 - Advanced Power Management Specification - GET POWER MANAGEMENT EVENT
- AX = 530Bh
- Return: CF clear if successful
- BX = event code (see #0365)
- CF set on error
- AH = error code (03h,0Bh,80h) (see #0359)
- Notes: although power management events are often asynchronous, notification
- will not be made until polled via this call to permit software to
- only receive event notification when it is prepared to process
- power management events; since these events are not very time-
- critical, it should be sufficient to poll once or twice per second
- the critical resume notification is made after the system resumes
- from an emergency suspension; normally, the system BIOS only notifies
- its partner that it wishes to suspend and relies on the partner to
- actually request the suspension, but no notification is made on an
- emergency suspension
- should not be called from within a hardware interrupt handler to avoid
- reentrance problems
- SeeAlso: AX=5307h,AX=5307h/BX=0001h/CX=0001h,AX=5307h/BX=0001h/CX=0002h
-
- (Table 0365)
- Values for APM event code:
- 0001h system stand-by request
- 0002h system suspend request
- 0003h normal resume system notification
- 0004h critical resume system notification
- 0005h battery low notification
- ---APM v1.1---
- 0006h power status change notification
- 0007h update time notification
- 0008h critical system suspend notification
- 0009h user system standby request notification
- 000Ah user system suspend request notification
- 000Bh system standby resume notification
- 000Ch-00FFh reserved system events
- 01xxh reserved device events
- 02xxh OEM-defined APM events
- 0300h-FFFFh reserved
- --------p-15530C-----------------------------
- INT 15 - Advanced Power Management v1.1 - GET POWER STATE
- AX = 530Ch
- BX = device ID (see #0360)
- Return: CF clear if successful
- BX = system state ID (see #0361)
- CF set on error
- AH = error code (01h,09h) (see #0359)
- SeeAlso: AX=5307h
- --------p-15530D-----------------------------
- INT 15 - Advanced Power Management v1.1 - EN/DISABLE DEVICE POWER MANAGEMENT
- AX = 530Dh
- BX = device ID (see #0360)
- CX = function
- 0000h disable power management
- 0001h enable power management
- Return: CF clear if successful
- CF set on error
- AH = error code (01h,03h,09h,0Ah,0Bh) (see #0359)
- SeeAlso: AX=5308h,AX=530Fh
- --------p-15530E-----------------------------
- INT 15 - Advanced Power Management v1.1 - DRIVER VERSION
- AX = 530Eh
- BX = device ID of system BIOS (0000h)
- CH = APM driver major version (BCD)
- CL = APM driver minor version (BCD)
- Return: CF clear if successful
- AH = APM connection major version (BCD)
- AL = APM connection minor version (BCD)
- CF set on error
- AH = error code (03h,09h,0Bh) (see #0359)
- SeeAlso: AX=5300h
- --------p-15530F-----------------------------
- INT 15 - Advanced Power Management v1.1 - ENGAGE/DISENGAGE POWER MANAGEMENT
- AX = 530Fh
- BX = device ID (see #0360)
- CX = function
- 0000h disengage power management
- 0001h engage power management
- Return: CF clear if successful
- CF set on error
- AH = error code (01h,09h) (see #0359)
- Note: unlike AX=5308h, this call does not affect the functioning of the APM
- BIOS
- SeeAlso: AX=5308h,AX=530Dh
- --------p-155380BH00-------------------------
- INT 15 - APM SL Enhanced v1.0 - GET SUSPEND/GLOBAL STANDBY MODE
- AX = 5380h
- BH = 00h
- Return: CF clear if successful
- AL = 82360SL Auto Power Off Timer High Count (APWR_TMRH)
- BL = sustdbymode (see #0366)
- SeeAlso: AX=5380h/BH=01h,AX=5380h/BH=02h,AX=5380h/BH=7Fh
-
- Bitfields for APM SL sustdbymode:
- Bit(s) Description (Table 0366)
- 2 ???
- 1 Auto Power Off Timer Enable (APWR_TMR_EN)
- 0 ???
- --------p-155380BH01-------------------------
- INT 15 - APM SL Enhanced v1.0 - SET SUSPEND/GLOBAL STANDBY MODE
- AX = 5380h
- BH = 01h
- BL = sustdbymode (see #0366)
- Return: CF clear if successful
- SeeAlso: AX=5380h/BH=00h,AX=5380h/BH=7Fh
- --------p-155380BH02-------------------------
- INT 15 - APM SL Enhanced v1.0 - GET GLOBAL STANDBY TIMER
- AX = 5380h
- BH = 02h
- Return: CF clear if successful
- SI:DI = timer count in seconds (actually 1.024 seconds)
- Desc: reads the value of 82360SL GSTDBY_TMRH & GSTDBY_TMRL registers
- SeeAlso: AX=5380h/BH=00h,AX=5380h/BH=03h,AX=5380h/BH=04h,AX=5380h/BH=7Fh
- --------p-155380BH03-------------------------
- INT 15 - APM SL Enhanced v1.0 - SET GLOBAL STANDBY TIMER
- AX = 5380h
- BH = 03h
- SI:DI = timer count in seconds (actually 1.024 seconds)
- Return: CF clear if successful
- Desc: sets the value of 82360SL GSTDBY_TMRH & GSTDBY_TMRL registers
- Note: the maximum timer count is 268431 seconds
- SeeAlso: AX=5380h/BH=02h,AX=5380h/BH=7Fh
- --------p-155380BH04-------------------------
- INT 15 - APM SL Enhanced v1.0 - GET AUTO POWER OFF TIMER
- AX = 5380h
- BH = 04h
- Return: CF clear if successful
- SI:DI = timer count in seconds (actually 1.024 seconds)
- Desc: reads the value of 82360SL APWR_TMRH & APWR_TMRL registers
- SeeAlso: AX=5380h/BH=02h,AX=5380h/BH=05h,AX=5380h/BH=06h,AX=5380h/BH=7Fh
- --------p-155380BH05-------------------------
- INT 15 - APM SL Enhanced v1.0 - SET AUTO POWER OFF TIMER
- AX = 5380h
- BH = 05h
- SI:DI = timer count in seconds (actually 1.024 seconds)
- Return: CF clear if successful
- Desc: sets the value of 82360SL APWR_TMRH & APWR_TMRL registers
- Note: the maximum timer count is 134213 seconds
- SeeAlso: AX=5380h/BH=04h,AX=5380h/BH=7Fh
- --------p-155380BH06-------------------------
- INT 15 - APM SL Enhanced v1.0 - GET RESUME CONDITION
- AX = 5380h
- BH = 06h
- Return: CF clear if successful
- BL = resume condition (see #0367)
- Desc: reads the value of 82360SL RESUME_MASK register
- SeeAlso: AX=5380h/BH=04h,AX=5380h/BH=07h,AX=5380h/BH=08h,AX=5380h/BH=7Fh
-
- Bitfields for APM SL resume condition:
- Bit(s) Description (Table 0367)
- 7-2 reserved (0)
- 1 alarm enabled (resume on CMOS alarm)
- 0 ring enabled
- --------p-155380BH07-------------------------
- INT 15 - APM SL Enhanced v1.0 - SET RESUME CONDITION
- AX = 5380h
- BH = 07h
- BL = resume condition (see #0367)
- Return: CF clear if successful
- Desc: sets the value of 82360SL RESUME_MASK register
- SeeAlso: AX=5380h/BH=06h,AX=5380h/BH=7Fh
- --------p-155380BH08-------------------------
- INT 15 - APM SL Enhanced v1.0 - GET CALENDAR EVENT TIME
- AX = 5380h
- BH = 08h
- Return: CF clear if successful
- CH = hours
- CL = minutes
- SI = seconds
- CF set on error
- AH = error code (see #0368)
- Desc: gets calendar event time from CMOS ram
- SeeAlso: AX=5380h/BH=06h,AX=5380h/BH=09h,AX=5380h/BH=0Ah,AX=5380h/BH=7Fh
-
- (Table 0368)
- Values for APM SL error code:
- 02h no alarm set
- 03h no battery
- --------p-155380BH09-------------------------
- INT 15 - APM SL Enhanced v1.0 - SET CALENDAR EVENT TIME
- AX = 5380h
- BH = 09h
- CH = hours
- CL = minutes
- SI = seconds
- Return: CF clear if successful
- CF set on error
- AH = error code (see #0368)
- Desc: sets calendar event time in CMOS ram, enables Alarm resume
- SeeAlso: AX=5380h/BH=08h,AX=5380h/BH=7Fh
- --------p-155380BH0A-------------------------
- INT 15 - APM SL Enhanced v1.0 - GET CALENDAR EVENT DATE
- AX = 5380h
- BH = 0Ah
- Return: CF clear if successful
- SI = century
- DI = year
- CH = month
- CL = day
- CF set on error
- AH = error code (see #0368)
- Desc: reads calendar event date from Extended CMOS ram
- SeeAlso: AX=5380h/BH=08h,AX=5380h/BH=0Bh,AX=5380h/BH=0Ch,AX=5380h/BH=7Fh
- --------p-155380BH0B-------------------------
- INT 15 - APM SL Enhanced v1.0 - SET CALENDAR EVENT DATE
- AX = 5380h
- BH = 0Bh
- SI = century
- DI = year
- CH = month
- CL = day
- Return: CF clear if successful
- CF set on error
- AH = error code (see #0368)
- Desc: sets calendar event date in Extended CMOS ram
- SeeAlso: AX=5380h/BH=0Ah,AX=5380h/BH=7Fh
- --------p-155380BH0C-------------------------
- INT 15 - APM SL Enhanced v1.0 - GET CPU SPEED MODE
- AX = 5380h
- BH = 0Ch
- Return: CF clear if successful
- CL = CPU clock divider (1,2,4 or 8)
- BL = autocpumode ???
- Desc: reads bits 4-5 of CPUPWRMODE register
- SeeAlso: AX=5380h/BH=0Ah,AX=5380h/BH=0Dh,AX=5380h/BH=7Fh
- --------p-155380BH0D-------------------------
- INT 15 - APM SL Enhanced v1.0 - SET CPU SPEED MODE
- AX = 5380h
- BH = 0Dh
- CL = CPU clock divider (1,2,4 or 8)
- BL = autocpumode ???
- Return: CF clear if successful
- Desc: writes bits 4-5 of CPUPWRMODE register
- SeeAlso: AX=5380h/BH=0Ch,AX=5380h/BH=7Eh,AX=5380h/BH=7Fh
- --------p-155380BH7E-------------------------
- INT 15 - APM SL Enhanced v1.0 - SL HW PARAMETER
- AX = 5380h
- BH = 7Eh
- Return: AL = ???
- 03h on A-Step 386SL BIOSes
- 12h on later steps
- BX = Control port (00B0h)
- SeeAlso: AX=5380h/BH=00h,AX=5380h/BH=7Fh
- --------p-155380BH7F-------------------------
- INT 15 - Advanced Power Management v1.1 - OEM APM INSTALLATION CHECK
- AX = 5380h
- BH = 7Fh
- Return: CF clear if successful
- BX = OEM identifier
- all other registers OEM-defined
- ---Intel SL Enhanced Option BIOS---
- BX = 534Ch ('SL')
- CL = 4Fh ('O')
- AL = version (10h = 1.0)
- ---HP APM BIOS---
- BX = 4850h ('HP')
- CX = version (0001h)
- CF set on error
- AH = error code (03h) (see #0359)
- SeeAlso: AX=5380h/BH=00h
- --------p-155380-----------------------------
- INT 15 - Advanced Power Management v1.1 - OEM APM FUNCTIONS
- AX = 5380h
- BH <> 7Fh
- all other registers OEM-defined
- Return: OEM-defined
- SeeAlso: AX=5380h/BH=7Fh
- --------X-1553B0BH00-------------------------
- INT 15 - Intel System Management Bus - RESERVED
- AX = 53B0h
- BH = 00h
- Program: the SMBus is a variant of ACCESS.bus being used by Intel and Duracell
- for the Smart Battery proposal, but designed to be generic enough to
- handle other devices besides batteries
- --------X-1553B0BH01-------------------------
- INT 15 - Intel System Management Bus - INSTALLATION CHECK
- AX = 53B0h
- BH = 01h
- BL = 72h ('r')
- CX = 6164h ('ad')
- Return: CF clear if installed
- AH = SMBus BIOS Interface Specification major version (01h)
- AL = SMBus BIOS Interface Specification minor version (00h)
- BL = number of SMBus devices present
- CX = 6941h ('iA')
- DX = vendor-specified SMBus hardware code
- 0000h means undefined hardware type
- CF set if error
- AH = Error code 0Ah, 86h (see #2673)
- Note: this function is only supported in INT 15h mode
- SeeAlso: AX=53B0h/BH=02h,AX=53B0h/BH=03h,AX=53B0h/BH=04h,AX=53B0h/BH=06h
-
- (Table 2673)
- Values for Intel System Management Bus error codes:
- 00h SMBus OK
- 01h SMBus connect failed
- 02h SMBus already connected (see also #2674)
- 03h SMBus disconnect failed
- 04h SMBus not connected
- 05h SMBus INT 15 interface disabled
- 06h SMBus device address request out of range
- 07h SMBus unknown failure
- 08h SMBus message list empty
- 09h SMBus message list overflow
- 0Ah SMBus invalid signature
- 10h SMBus device address not acknowledged
- 11h SMBus device error detected
- 12h SMBus device command access denied
- 13h SMBus unknown error
- 14h SMBus transaction pending
- 15h SMBus no transaction pending
- 16h SMBus request does not match pending transaction
- 17h SMBus device access denied
- 18h SMBus timeout
- 19h SMBus protocol not supported
- 1Ah SMBus busy
- 1Bh SMBus SMI detected
- 80h SMBus OK (previously unreported SMI occurred)
- 86h SMBus not supported
-
- (Table 2674)
- Values for Intel System Management Bus Already Connected sub-error codes:
- 01h real mode connect already established
- 02h 16-bit PMode connect already established
- 03h 32-bit PMode connect already established
- SeeAlso: #2673
- --------X-1553B0BH02-------------------------
- INT 15 - Intel System Management Bus - REAL MODE CONNECT
- AX = 53B0h
- BH = 02h
- CX = 6941h ('iA')
- Return: CF clear if successful
- AX = SMBus Real mode code segment
- BX = offset of entry point into SMBus BIOS Interface
- CX = SMBus Real mode data segment
- CF set if error
- AH = error code (01h,02h,0Ah,86h) (see #2673)
- AL = sub-error code if error code is 02h (see #2674)
- Desc: connect to SMBus interface; once connected, all SMBus calls are made
- to the supplied entry point instead of INT 15 (with registers
- identical to those described here for INT 15)
- Notes: Support for this function is optional
- this function is only supported in INT 15 mode when implemented
- SeeAlso: AX=53B0h/BH=01h,AX=53B0h/BH=03h,AX=53B0h/BH=04h,AX=53B0h/BH=05h
- --------X-1553B0BH03-------------------------
- INT 15 - Intel System Management Bus - 16-BIT PROTECTED-MODE CONNECT
- AX = 53B0h
- BH = 03h
- CX = 6941h ('iA')
- Return: CF clear if successful
- AX = SMBus 16-bit code segment (real mode base address)
- BX = offset of entry point into SMBus BIOS Interface
- CX = SMBus 16-bit data segment (real mode base address)
- SI = code segment length in bytes
- DI = data segment length in bytes
- CF set if error
- AH = error code (01h,02h,0Ah,86h) (see #2673)
- AL = sub-error code if error code is 02h (see #2674)
- Desc: connect to SMBus interface; once connected, all SMBus calls are made
- to the supplied entry point instead of INT 15 (with registers
- identical to those described here for INT 15)
- Notes: before calling the entry point, two descriptors must be initialized
- in the GDT or LDT. They must be consecutiveand be in the order of
- code, then data. At the time of the call, the descriptors must be
- valid and have CPL=0.
- the code descriptor must be ring-0 privilege
- this function is only supported in INT 15 mode
- SeeAlso: AX=53B0h/BH=01h,AX=53B0h/BH=02h,AX=53B0h/BH=04h,AX=53B0h/BH=05h
- --------X-1553B0BH04-------------------------
- INT 15 - Intel System Management Bus - 32-BIT PROTECTED-MODE CONNECT
- AX = 53B0h
- BH = 04h
- CX = 6941h ('iA')
- Return: CF clear if successful
- AX = SMBus 32-bit code segment (real mode base address)
- EBX = offset of entry point into SMBus BIOS Interface
- CX = SMBus 16-bit code segment (real mode base address)
- DX = SMBus data segment (real mode base address)
- SI = code segment length in bytes
- DI = data segment length in bytes
- CF set if error
- AH = error code (01h,02h,0Ah,86h) (see #2673)
- AL = sub-error code if error code is 02h (see #2674)
- Desc: connect to SMBus interface; once connected, all SMBus calls are made
- to the supplied entry point instead of INT 15 (with registers
- identical to those described here for INT 15)
- Notes: before calling the entry point, two descriptors must be initialized in
- the GDT or LDT. They must be consecutive and be in the order of
- 32-bit code, 16-bit code, then data. At the time of the call, the
- descriptors must be valid and have CPL=0.
- the code descriptors must be ring-0 privilege
- this function is only supported in INT 15 mode
- SeeAlso: AX=53B0h/BH=01h,AX=53B0h/BH=02h,AX=53B0h/BH=03h,AX=53B0h/BH=05h
- --------X-1553B0BH05-------------------------
- INT 15 - Intel System Management Bus - DISCONNECT
- AX = 53B0h
- BH = 05h
- CX = 6941h ('iA')
- Return: CF clear if successful
- AH = 00h (SMBus OK)
- CF set if error
- AH = error code (03h,04h,05h,0Ah,86h) (see #2673)
- Note: this function is supported in connected mode (far CALL entry point)
- only
- SeeAlso: AX=53B0h/BH=01h,AX=53B0h/BH=02h,AX=53B0h/BH=03h,AX=53B0h/BH=04h
- --------X-1553B0BH06-------------------------
- INT 15 - Intel System Management Bus - DEVICE ADDRESS
- AX = 53B0h
- BH = 06h
- BL = position in list to report
- CH = 6941h ('iA')
- Return: CF clear if successful
- AH = 00h (SMBus OK)
- BH = number of SMBus devices
- BL = SMBus Device Address of device at position BL in list
- CF set if error
- AH = error code (06h,0Ah,86h) (see #2673)
- Desc: retrieves already assigned SMBus device addresses
- Note: this function is supported in INT 15h mode only
- --------X-1553B0BH07-------------------------
- INT 15 - Intel System Management Bus - CRITICAL MESSAGES
- AX = 53B0h
- BH = 07h
- CX = 6941h ('iA')
- Return: CF clear if successful
- AH = 00h (SMBus OK)
- AL = device address
- BX = device message
- CF set if error
- AH = error code (05h,07h,08h,09h,0Ah,86h) (see #2673)
- Desc: retrieves oldest queued critical message from an SMBus device to the
- host
- Notes: up to five messages are queued; if the queue is full, messages will be
- lost and error 09h returned
- this function is supported in INT 15h mode only
- --------X-1553B0BH08-------------------------
- INT 15 - Intel System Management Bus - RESERVED
- AX = 53B0h
- BH = 08h-0Fh
- --------X-1553B0BH10-------------------------
- INT 15 - Intel System Management Bus - REQUEST
- AX = 53B0h
- BH = 10h
- BL = protocol (see #2675)
- CH = device address
- CL = device command
- DH = MSB Data or block length (for BlockWrite)
- DL = LSB Data or first byte of block (for BlockWrite)
- Return: CF clear if successful
- AH = 00h or 80h (SMBus OK)
- (80h indicates a previously unreported SMI took place)
- CF set if error
- AH = error code (05h,10h,11h,12h,13h,14h,17h,19h,1Ah,86h)
- (see #2673)
- Desc: request access to a device on the SMBus
- SeeAlso: AX=53B0h/BH=11h, AX=53B0h/BH=13h
-
- (Table 2675)
- Values for Intel System Management Bus protocol codes:
- 00h Quick Command
- 01h Send Byte
- 02h Receive Byte
- 03h Write Byte
- 04h Read Byte
- 05h Write Word
- 06h Read Word
- 07h Block Write
- 08h Block Read
- 09h Process Call
- 0Ah-FFh reserved
- --------X-1553B0BH11-------------------------
- INT 15 - Intel System Management Bus - REQUEST CONTINUATION
- AX = 53B0h
- BH = 11h
- BL = protocol (see #2675)
- CH = device address
- CL = number of valid bytes in DX (1 or 2)
- DH = MSB Data (CL = 1 or 2)
- DL = LSB Data (CL = 2)
- Return: CF clear if successful
- AH = 00h (SMBus OK)
- CL = SMBus status
- 00h SMBus hardware not ready for more data
- 01h SMBus hardware ready for 2 more data bytes
- CF set if error
- AH = error code (05h,11h,13h,15h,16h,18h,1Bh,86h) (see #2673)
- Desc: continue WriteBlock protocol started with function 10h
- SeeAlso: AX=53B0h/BH=10h, AX=53B0h/BH=13h
- --------X-1553B0BH12-------------------------
- INT 15 - Intel System Management Bus - REQUEST ABORT
- AX = 53B0h
- BH = 12h
- BL = protocol (see #2675)
- CH = device address
- CL = device command
- Return: CF clear if successful
- AH = 00h (SMBus OK)
- CF set if error
- AH = error code (05h,13h,15h,16h,86h) (see #2673)
- Desc: stop the currently pending SMBus request; usually used to terminate
- a request after an SMI Detected error
- --------X-1553B0BH13-------------------------
- INT 15 - Intel System Management Bus - REQUEST DATA AND STATUS
- AX = 53B0h
- BH = 13h
- BL = protocol (see #2675)
- CH = device address
- CL = device command
- Return: CF clear if successful
- AH = 00h (SMBus OK)
- CH = status
- 00h no data pending, transaction complete
- 01h no data pending, transaction continues
- 02h data pending
- CL = number of valid bytes in DX (0-2)
- DH = MSB data
- DL = LSB data
- CF set if error
- AH = error code (05h,10h,11h,13h,15h,16h,18h,1Bh,86h) (see #2673)
- Desc: determine when a transaction is complete, gather data returned by read
- transactions
- Note: for Block Read protocol (08h), first call returns block length in DH
- and the first byte of the block in DL
- --------T-155400-----------------------------
- INT 15 C - Omniview Multitasker - INSTALLATION NOTIFICATION
- AX = 5400h
- ES:BX -> device information tables
- DI:DX -> dispatcher entry point
- Note: called by OmniView to notify programs loaded before OmniView of state
- changes inside OmniView
- SeeAlso: AX=5407h,INT 2F/AX=DE00h
- --------T-155401-----------------------------
- INT 15 C - Omniview Multitasker - PROCESS CREATION
- AX = 5401h
- ES:BX = process handle
- Note: called by OmniView to notify programs loaded before OmniView of state
- changes inside OmniView
- SeeAlso: AX=5402h,INT 2F/AX=DE04h
- --------T-155402-----------------------------
- INT 15 C - Omniview Multitasker - PROCESS DESTRUCTION
- AX = 5402h
- ES:DX = process handle
- Note: called by OmniView to notify programs loaded before OmniView of state
- changes inside OmniView
- SeeAlso: AX=5401h,INT 2F/AX=DE05h
- --------T-155403-----------------------------
- INT 15 C - Omniview Multitasker - SAVE
- AX = 5403h
- ES:DX = process swapping out
- Note: called by OmniView to notify programs loaded before OmniView of state
- changes inside OmniView
- SeeAlso: AX=5404h,INT 2F/AX=DE08h
- --------T-155404-----------------------------
- INT 15 C - Omniview Multitasker - RESTORE
- AX = 5404h
- ES:DX = process swapping in
- Note: called by OmniView to notify programs loaded before OmniView of state
- changes inside OmniView
- SeeAlso: AX=5403h,INT 2F/AX=DE09h
- --------T-155405-----------------------------
- INT 15 C - Omniview Multitasker - SWITCHING TO BACKGROUND
- AX = 5405h
- ES:DX = process swapping in
- Note: called by OmniView to notify programs loaded before OmniView of state
- changes inside OmniView
- SeeAlso: AX=5406h
- --------T-155406-----------------------------
- INT 15 C - Omniview Multitasker - SWITCHING TO FOREGROUND
- AX = 5406h
- ES:DX = process swapping in
- Note: called by OmniView to notify programs loaded before OmniView of state
- changes inside OmniView
- SeeAlso: AX=5405h
- --------T-155407-----------------------------
- INT 15 C - Omniview Multitasker - EXIT NOTIFICATION
- AX = 5407h
- Note: called by OmniView to notify programs loaded before OmniView of state
- changes inside OmniView
- SeeAlso: AX=5400h,INT 2F/AX=DE03h
- --------b-1560------------------------------------
- INT 15 - HUNTER 16 - SET SYSTEM CLOCK SPEED
- AH = 60h
- AL = new speed
- 00h normal (8 MHz)
- 01h Slow Mode 1 (4 MHz)
- 02h Slow Mode 2 (2 MHz)
- Note: the Husky Hunter 16 is an 8088-based ruggedized laptop. Other family
- members are the Husky Hunter, Husky Hunter 16/80, and Husky Hawk.
- SeeAlso: AX=6301h
- --------p-156000-----------------------------
- INT 15 U HP 100LX/200LX - GET MAIN BATTERY LEVEL
- AX = 6000h
- Return: AX = battery level
- Note: multiply the returned value with 1Bh and add 622h to get millivolts
- SeeAlso: AX=6001h,AX=6002h,AX=6003h,AX=6004h
- --------p-156001-----------------------------
- INT 15 U HP 100LX/200LX - GET BACKUP BATTERY LEVEL
- AX = 6001h
- Return: AX = battery level
- Note: multiply the returned value with 1Bh and add 622h to get millivolts
- SeeAlso: AX=6000h,AX=6002h
- --------p-156002-----------------------------
- INT 15 U HP 100LX/200LX - GET POWER INFO
- AX = 6002h
- Return: AL = power settings (see #0369)
- SeeAlso: AX=6000h,AX=6003h,AX=6004h
-
- Bitfields for power settings:
- Bit(s) Description (Table 0369)
- 0-1 unused ???
- 2 card battery status low (OK if bit clear)
- 3 battery charging off (disabled if bits 3-5 clear)
- 4 battery charging slow
- 5 battery charging fast
- 6 power adaptor active
- 7 battery type NiCad (alkaline if bit clear)
- --------p-156003-----------------------------
- INT 15 U HP 100LX/200LX - SET MAIN BATTERY TYPE
- AX = 6003h
- BL = battery type
- 00h alkaline
- 01h NiCad
- SeeAlso: AX=6000h,AX=6004h
- --------p-156004-----------------------------
- INT 15 U HP 100LX/200LX - SET BATTERY CHARGING MODE
- AX = 6004h
- BL = charging
- 00h disabled
- 01h enabled
- SeeAlso: AX=6000h,AX=6003h
- --------b-1561------------------------------------
- INT 15 - HUNTER 16 - GET POWER LEVEL
- AH = 61h
- Return: AH = percentage of full power left (0..100)
- Desc: determine how much battery power is left
- SeeAlso: AH=62h,AH=66h,AH=73h"HUNTER"
- --------b-1561-------------------------------
- INT 15 U HP 100LX/200LX - SET ANNOUNCIATORS POSITION
- AH = 61h
- AL = position (20h = left, 60h = right)
- Note: The announciators are the indicator symbols for the Shift and Fn keys
- in the bottom line
- SeeAlso: AH=62h"HP",INT 16/AH=02h
- --------b-1562------------------------------------
- INT 15 - HUNTER 16 - SET LOW POWER THRESHOLD
- AH = 62h
- AL = level (00h 5%, 01h 10%, ... 12h 95%)
- BX = interval between power low warnings in seconds (1..600)
- Return: AH = Status
- Desc: set the level (relative to full power) when power-low warnings begin
- and the interval between the warnings
- SeeAlso: AH=61h,AH=65h,AH=66h
- --------b-1562-------------------------------
- INT 15 U HP 100LX/200LX - SET DISPLAY CONTRAST
- AH = 62h
- BL = contrast (00h-1Fh, 1Fh is the darkest)
- SeeAlso: AH=47h"HP",AH=61h"HP"
- --------b-156300----------------------------------
- INT 15 - HUNTER 16 - GET IDLE TIMEOUT
- AX = 6300h
- Return: AH = status
- BX = timeout in seconds (0-3600)
- Desc: get the idle timeout value, the interval without keyboard or
- communications activity before the system shuts down
- SeeAlso: AX=6301h
- --------b-156301----------------------------------
- INT 15 - HUNTER 16 - SET IDLE TIMEOUT
- AX = 6301h
- BX = timeout in seconds (0-3600)
- Desc: sets the idle timeout value, the interval without keyboard or
- communications activity before the system shuts down
- SeeAlso: AX=6300h
- --------b-1564------------------------------------
- INT 15 - HUNTER 16 - CONTROL RESUME MODE
- AH = 64h
- AL = new state
- 00h disable Resume mode
- 01h enable Resume mode
- Return: AH = status
- Desc: turn Resume mode on or off. In Resume mode the system starts in
- the application that was running when it shut down as if nothing
- had happened.
- SeeAlso: AH=67h,AH=68h,AH=69h
- --------b-1565------------------------------------
- INT 15 - HUNTER 16 - AUTHORISE CHARGING
- AH = 65h
- AL = charging level
- 01h charging not allowed
- 02h charging allowed until power down
- 03h charging allowed until batteries changed or fail.
- Ask user if charging is still allowed on next poweron
- 04h charging allowed indefinitely
- BX = 0203h
- CX = 0405h
- DX = 0607h
- Return: AH = status
- SeeAlso: AH=66h,AH=68h
- --------b-1566------------------------------------
- INT 15 - HUNTER 16 - SET BATTERY LEVEL
- AH = 66h
- AL = level in percent of maximum (0..100)
- Return: AH = status
- SeeAlso: AH=61h,AH=65h
- --------b-1567------------------------------------
- INT 15 - HUNTER 16 - CONTROL STOP MODE
- AH = 67h
- AL = mode when waiting for input
- 00h use STOP mode (allows communication)
- 01h use HALT mode (disallows communication)
- Return: AH = status
- Desc: select the power save mode to use when waiting for input
- SeeAlso: AH=69h
- --------b-1568------------------------------------
- INT 15 - HUNTER 16 - REQUEST POWER DOWN
- AH = 68h
- Desc: turns off the Hunter 16 if power down is allowed (see AH=69h)
- SeeAlso: AH=69h
- --------b-1569------------------------------------
- INT 15 - HUNTER 16 - CONTROL POWER DOWN AVAILABILITY
- AH = 69h
- AL = mode
- 00h inhibit power down
- 01h allow power down
- Return: AH = status
- SeeAlso: AH=67h,AH=68h,AH=6Ah
- --------b-156A------------------------------------
- INT 15 - HUNTER 16 - CONTROL SLOW MODE
- AH = 6Ah
- AL = mode
- 00h inhibit Slow mode
- 01h allow Slow mode
- Return: AH = status
- SeeAlso: AH=69h
- --------b-156B------------------------------------
- INT 15 - HUNTER 16 - GET ROM BIOS VERSION
- AH = 6Bh
- Return: BH = version number (ASCII)
- BL = release number (ASCII)
- CH = minor release number (ASCII)
- CL = minor release number (ASCII)
- SeeAlso: AH=6Ch
- --------b-156C------------------------------------
- INT 15 - HUNTER 16 - GET SERIAL NUMBER
- AH = 6Ch
- Return: BL:CX = BCD serial number
- Note: when shipped, all Hunter 16s have the same Serial Number, but a
- different number can be stored (see AH=72h)
- SeeAlso: AH=6Bh,AH=72h
- --------b-156D------------------------------------
- INT 15 - HUNTER 16 - GET EVENT DETAIL
- AH = 6Dh
- Return: AH = 00h if successful
- CX:BX = event flags bit 0..31 (see #0370)
- Note: this function allows testing for events
- SeeAlso: AH=6Eh,AH=6Fh
-
- Bitfields for HUNTER 16 events:
- Bit(s) Description (Table 0370)
- 6 RI received
- 5 RTC Alarm
- 4 data received on COM2
- 3 data received on COM1
- 2 error on COM2
- 1 error on COM1
- 0 PWR button pressed
- --------b-156E------------------------------------
- INT 15 - HUNTER 16 - ENABLE/TRAP EVENT
- AH = 6Eh
- AL = Software Interrupt
- 00h do not trap event
- else trap as software interrupt number AL
- BH = event number (see AH=6Dh)
- BL = enable mask
- 00h disable event
- 01h enable event
- Return: AH = 00h if successful
- SeeAlso: AH=6Dh,AH=6Fh
- --------b-156F------------------------------------
- INT 15 - HUNTER 16 - ACKNOWLEDGE EVENT
- AH = 6Fh
- AL = event number (see AH=6Dh)
- Return: AH = 00h if successful
- Desc: Acknowledges the event, so the next similar event can be detected
- SeeAlso: AH=6Dh"HUNTER",AH=6Eh
- --------b-1570------------------------------------
- INT 15 - HUNTER 16 - CONTROL SOUND
- AH = 70h
- AL = new state
- 00h disable sound
- else enable sound
- Note: the Husky Hunter 16 is an 8088-based ruggedized laptop. Other family
- members are the Husky Hunter, Husky Hunter 16/80, and Husky Hawk.
- ----------157000-----------------------------
- INT 15 - Tandy 1000SL/TL - READ FROM EEPROM
- AX = 7000h
- BL = number of word to read (00h-3Fh)
- Return: CF clear if function supported
- DX = contents of EEPROM word
- Note: newer Tandy 1000-series machines use EEPROM instead of CMOS RAM in
- the clock chip to store system configuration information
- SeeAlso: AX=7001h
- ----------157001-----------------------------
- INT 15 - Tandy 1000SL/TL - WRITE TO EEPROM
- AX = 7001h
- BL = number of word to read (00h-3Fh)
- DX = new value for EEPROM word
- Return: CF clear if function supported
- Note: the EEPROMs are normally written only by the system setup program;
- changing the values can badly mess up a Tandy
- SeeAlso: AX=7000h
- ----------157002-----------------------------
- INT 15 U - Tandy 1000 Model ??? - GET ROM PAGE
- AX = 7002h
- Return: AL = ROM page mapped at 0E0000h (0-6 (13?))
- Note: some Tandy machines have DOS and DeskMate in a 512k paged ROM. The
- BIOS uses this call to determine what ROM page is mapped in the 64k
- segment at 0E0000h.
- the 1000TL has 8 64k ROM pages; page 7 is permanently mapped at
- 0F0000h. There may be 16 32k ROM pages on other systems.
- SeeAlso: AX=7003h,INT E0"DeskMate"
- ----------157003-----------------------------
- INT 15 U - Tandy 1000 Model ??? - SET ROM PAGE
- AX = 7003h
- DL = ROM page to be mapped at 0E0000h (0-6 (13?))
- Return: CF clear if valid ROM page specified
- Note: Some Tandy machines have DOS and DeskMate in a 512k paged ROM. The
- BIOS uses this call to map ROM pages in the 64k segment at 0E0000h.
- The 1000TL has 8 64k ROM pages; page 7 is permanently mapped at
- 0F0000h. There may be 16 32k ROM pages on other systems.
- SeeAlso: AX=7002h,INT E0"DeskMate"
- --------b-1571------------------------------------
- INT 15 - HUNTER 16 - SELECT POWER UP KEYS
- AH = 71h
- BL = column
- BH = row
- AL = column switch (00h disable, 01h enable)
- CL = row switch (00h disable, 01h enable)
- Return: AH = status
- SeeAlso: AH=7Bh,AH=88h
- --------b-157200----------------------------------
- INT 15 - HUNTER 16 - RESET SERIAL NUMBER
- AX = 7200h
- Return: AH = 00h if successful
- Desc: reset the serial number to the default serial number present when the
- Hunter 16 was shipped
- SeeAlso: AH=6Ch,AH=72h
- --------b-1572------------------------------------
- INT 15 - HUNTER 16 - REDIRECT SERIAL NUMBER
- AH = 72h
- AL nonzero
- DS:BX -> new serial number (6 ASCII digits)
- Return: AH = 00h if successful
- Desc: install a new serial number
- SeeAlso: AH=6Ch,AX=7200h
- --------b-1573------------------------------------
- INT 15 - HUNTER 16 - GET ORACLE GT POWER LEVEL
- AH = 73h
- AL = drive (0: A:, 1: B:)
- Return: AH = status
- 00h successful
- FFh Oracle GT drive not connected
- AL = power level in percent of maximum (0..100)
- Desc: get the power remaining in the Oracle GT batteries
- SeeAlso: AH=61h
- --------b-1574------------------------------------
- INT 15 - HUNTER 16 - SET BACKLIGHT POWER UP STATE
- AH = 74h
- AL = new level
- 01h off
- 02h unchanged
- 03h change level
- BL = desired level (00h-7Fh)
- Return: AH = status
- Desc: select the backlight level to use when the Hunter is next turned on
- SeeAlso: AH=64h,AH=75h,INT 10/AH=64h,INT 10/AH=78h
- --------b-1575------------------------------------
- INT 15 - HUNTER 16 - SET CONTRAST POWER UP STATE
- AH = 75h
- AL = new level
- 01h off
- 02h unchanged
- 03h change level
- BL = desired level (00h-7Fh)
- Return: AH = status
- Desc: select the LCD contrast level to use when the Hunter is next turned on
- SeeAlso: AH=63h,AH=74h
- --------b-1576------------------------------------
- INT 15 - HUNTER 16 - CONTROL POWER SAVE
- AH = 76h
- BX = power save control (see #0371)
- SeeAlso: AH=74h
-
- Bitfields for HUNTER 16 power save control:
- Bit(s) Description (Table 0371)
- 0 power save enabled
- 1 inhibit power save when waiting for COM1 data
- 2 inhibit power save when waiting for COM2 data
- 3 inhibit power save when waiting for data from barcode wand
- 4 inhibit power up on timer tick
- --------b-1579------------------------------------
- INT 15 - HUNTER 16 - REDIRECT LPT1
- AH = 79h
- AL = port to which to redirect (00h COM1, 01h COM2)
- --------b-157A------------------------------------
- INT 15 - HUNTER 16 - INVOKE HOT KEY
- AH = 7Ah
- Desc: this function has the same effect as pressing the HOT key
- SeeAlso: AH=7Bh
- --------b-157B------------------------------------
- INT 15 - HUNTER 16 - CONTROL HOT KEY
- AH = 7Bh
- AL = 00h prevent HOT key
- else allow HOT key
- Desc: Allow or prevent the HOT key function which is used to examine and
- change the Hunter setup
- SeeAlso: AH=71h,AH=7Ah,AH=7Ch
- --------b-157C------------------------------------
- INT 15 - HUNTER 16 - CONTROL HOT KEY POWER OPTION
- AH = 7Ch
- AL = 00h prevent HOT key power option
- else allow HOT key power option
- Desc: allow or prevent changing the power options
- SeeAlso: AH=7Bh,AH=7Dh
- --------b-157D------------------------------------
- INT 15 - HUNTER 16 - OVERRIDE LOW POWER TURN OFF
- AH = 7Dh
- AL = 00h turn off after 10 warnings
- else never turn off
- Desc: specify whether the Hunter 16 turns off after 10 low power warnings
- SeeAlso: AH=7Ch
- --------b-157E------------------------------------
- INT 15 - HUNTER 16 - CONTROL BATTERY CHANGE FACILITIES (APM)
- AH = 7Eh
- AL = 00h do not prompt
- else prompt
- Desc: select whether the user is prompted for the battery state if the
- battery cap has been off when the system is turned on
- SeeAlso: AH=7Fh
- --------b-157F------------------------------------
- INT 15 - HUNTER 16 - SET BATTERY TYPE (APM)
- AH = 7Fh
- AL = battery type
- 00h non-rechargeable
- else rechargeable
- SeeAlso: AH=7Eh
- --------B-1580-------------------------------
- INT 15 C - OS HOOK - DEVICE OPEN (AT,XT286,PS)
- AH = 80h
- BX = device ID
- CX = process ID
- CF clear
- Return: CF clear if successful
- AH = 00h
- CF set on error
- AH = status (see #0372)
- Note: this function should be hooked by a multitasker which wishes to keep
- track of device ownership; the default BIOS handler merely returns
- successfully
- SeeAlso: AH=81h,AH=82h
-
- (Table 0372)
- Values for status:
- 80h invalid command (PC,PCjr)
- 86h function not supported (XT)
- --------b-1580------------------------------------
- INT 15 - HUNTER 16 - GET/SET BATTERY CAPACITY (APM)
- AH = 80h
- AL = function
- 00h get
- Return: AL = capacity (500mA + AL * 50mA, max 40 = 2500mA)
- else set
- BL = battery capacity (same as AL above)
- SeeAlso: AH=61h"HUNTER",AH=81h"HUNTER"
- --------B-1581-------------------------------
- INT 15 C - OS HOOK - DEVICE CLOSE
- AH = 81h
- BX = device ID
- CX = process ID
- CF clear
- Return: CF clear if successful
- AH = 00h
- CF set on error
- AH = status (see #0372)
- Note: this function should be hooked by a multitasker which wishes to keep
- track of device ownership; the default BIOS handler merely returns
- successfully
- SeeAlso: AH=80h,AH=82h
- --------b-1581------------------------------------
- INT 15 - HUNTER 16 - CONTROL POWER OUTPUT
- AH = 81h
- AL = new state of power output (00h off, nonzero on)
- Desc: turn the +5V low power output on or off
- SeeAlso: AH=80h"HUNTER"
- --------B-1582-------------------------------
- INT 15 C - OS HOOK - PROGRAM TERMINATION
- AH = 82h
- BX = process ID
- CF clear
- Return: CF clear if successful
- AH = 00h
- CF set on error
- AH = status (see #0372)
- Notes: closes all devices opened by the given process ID with function 80h
- this function should be hooked by a multitasker which wishes to keep
- track of device ownership; the default BIOS handler merely returns
- successfully
- SeeAlso: AH=80h,AH=81h
- --------b-1582------------------------------------
- INT 15 - HUNTER 16 - SOUND OUTPUT
- AH = 82h
- DX = length (duration in seconds = DX * 666670 / frequency)
- BX = pitch (see #0373)
- Desc: Sound the tone specified in BX for the duration in DX
- SeeAlso: AX=1019h
-
- (Table 0373)
- Values for HUNTER 16 sound pitch:
- BX(dec) Note Frequency BX(dec) Note Frequency
- 425 G 1568.000 1515 A 440.000
- 451 F# 1479.503 1605 G# 415.307
- 477 F 1396.900 1701 G 392.000
- 506 E 1318.500 1802 F# 369.998
- 536 D# 1244.523 1909 F 349.230
- 568 D 1174.700 2022 E 329.630
- 601 C# 1108.749 2143 D# 311.127
- 637 C 1046.500 2270 D 293.660
- 675 B 958.770 2405 C# 277.183
- 715 A# 932.329 2548 MID C 261.630
- 758 A 880.000 2700 B 246.940
- 803 G# 830.609 2860 A# 233.081
- 850 G 783.990 3030 A 220.000
- 901 F# 739.990 3210 G# 207.654
- 954 F 698.460 3401 G 196.000
- 1011 E 659.260 3604 F# 184.996
- 1071 D# 622.257 3818 F 174.610
- 1135 D 587.330 4045 E 164.810
- 1203 C# 554.365 4286 D# 155.560
- 1274 C 523.250 4540 D 146.830
- 1350 B 493.880 4668 C# 142.827
- 1430 A# 466.162 4803 C 138.810
- --------B-1583-------------------------------
- INT 15 - BIOS - SET EVENT WAIT INTERVAL (AT,PS50+)
- AH = 83h
- AL = subfunction
- 00h set interval
- CX:DX = microseconds to delay
- ES:BX -> byte whose high bit is to be set at end of interval
- 01h cancel wait interval
- Return: CF set on error or function already busy
- AH = status
- 80h invalid command (PC,PCjr)
- 86h function not supported (XT and later)
- CF clear if successful
- Notes: the resolution of the wait period is 977 microseconds on most systems
- because most BIOSes use the 1/1024 second fast interrupt from the AT
- real-time clock chip which is available on INT 70
- IBM AT 1/10/84 BIOS ignores AL and always performs subfunction 00h
- SeeAlso: AH=41h,AH=86h,INT 70
- --------b-1583------------------------------------
- INT 15 - HUNTER 16 - CONTROL SCREEN SYNCHRONISATION
- AH = 83h
- AL = state of LCD window (00h disabled, nonzero enabled)
- Desc: Enable/disable the facility where the displayed window tracks the
- cursor output to keep the focus visible
- --------B-1584-------------------------------
- INT 15 - BIOS - JOYSTICK SUPPORT (XT after 11/8/82,AT,XT286,PS)
- AH = 84h
- DX = subfunction
- 0000h read joystick switches
- Return: AL bits 7-4 = switch settings
- 0001h read positions of joysticks
- Return: AX = X position of joystick A
- BX = Y position of joystick A
- CX = X position of joystick B
- DX = Y position of joystick B
- Return: CF set on error
- AH = status (see #0372)
- CF clear if successful
- Notes: if no game port is installed, subfunction 0000h returns AL=00h (all
- switches open) and subfunction 0001h returns AX=BX=CX=DX=0000h
- a 250kOhm joystick typically returns 0000h-01A0h
- SeeAlso: AH=84h"V20-XT-BIOS"
- --------b-1584-------------------------------
- INT 15 - V20-XT-BIOS - JOYSTICK SUPPORT
- AH = 84h
- DX = subfunction
- 0000h read joystick switches
- Return: AL bits 7-4 = switch settings
- other: read positions of joysticks as indicated by bits 0-3
- Return: AX = X position of joystick A (if DX bit 0 set)
- BX = Y position of joystick A (if DX bit 1 set)
- CX = X position of joystick B (if DX bit 2 set)
- DX = Y position of joystick B (if DX bit 3 set)
- Return: CF set on error
- AH = status (see #0372)
- CF clear if successful
- Program: V20-XT-BIOS is a ROM BIOS replacement with extensions by Peter
- Koehlmann / c't magazine
- SeeAlso: AH=84h"PS",INT 10/AH=0Eh/CX=ABCDh
- --------b-158400----------------------------------
- INT 15 - HUNTER 16 - GET DISKETTE PORT
- AX = 8400h
- BH = Drive (0: A:, 1: B:)
- Return: AL = Port (0: COM1, >0: COM2)
- Desc: return the COM port used for the floppy drive
- SeeAlso: AX=8401h
- --------b-158401----------------------------------
- INT 15 - HUNTER 16 - SET DISKETTE PORT
- AX = 8401h
- BH = Drive (0: A:, 1: B:)
- BL = Port (0: COM1, >0: COM2)
- Desc: set the COM port used for the floppy drive
- SeeAlso: AX=8400h
- --------B-1585-------------------------------
- INT 15 C - OS HOOK - SysReq KEY ACTIVITY (AT,PS)
- AH = 85h
- AL = SysReq key action (00h pressed, 01h released)
- CF clear
- Return: CF clear if successful
- AH = 00h
- CF set on error
- AH = status (see #0372)
- Notes: called by keyboard decode routine
- the default handler simply returns successfully; programs which wish
- to monitor the SysReq key must hook this call
- the SysReq key is often labeled SysRq
- SeeAlso: INT 09
- --------b-158500----------------------------------
- INT 15 - HUNTER 16 - RESTORE POWER MENU (APM)
- AX = 8500h
- Desc: restore the standard power menu
- SeeAlso: AX=8501h"HUNTER"
- --------b-158501----------------------------------
- INT 15 - HUNTER 16 - SET POWER MENU (APM)
- AX = 8501h
- BL = user software interrupt number
- Desc: install an alternate power menu routine
- SeeAlso: AX=8500h"HUNTER"
- --------B-1586-------------------------------
- INT 15 - BIOS - WAIT (AT,PS)
- AH = 86h
- CX:DX = interval in microseconds
- Return: CF clear if successful (wait interval elapsed)
- CF set on error or AH=83h wait already in progress
- AH = status (see #0372)
- Note: the resolution of the wait period is 977 microseconds on most systems
- because most BIOSes use the 1/1024 second fast interrupt from the AT
- real-time clock chip which is available on INT 70
- SeeAlso: AH=41h,AH=83h,INT 1A/AX=FF01h,INT 70
- --------b-1586------------------------------------
- INT 15 - HUNTER 16 - GET/SET SCREEN ATTRIBUTE TABLE
- AH = 86h
- AL = function (00h get, nonzero set)
- BX = 1234h
- DS:SI -> 256-byte Attribute buffer
- Note: In text modes each character has its attribute byte XOR'd with the
- corresponding byte in the attribute table. If the attribute is 15,
- 15 is XOR'd with Table[15]
- --------B-1587-------------------------------
- INT 15 - SYSTEM - COPY EXTENDED MEMORY
- AH = 87h
- CX = number of words to copy (max 8000h)
- ES:SI -> global descriptor table (see #0375)
- Return: CF set on error
- CF clear if successful
- AH = status (see #0374)
- Notes: copy is done in protected mode with interrupts disabled by the default
- BIOS handler; many 386 memory managers perform the copy with
- interrupts enabled
- this function is incompatible with the OS/2 compatibility box
- SeeAlso: AH=88h,AH=89h,INT 1F/AH=90h
-
- (Table 0374)
- Values for extended-memory copy status:
- 00h source copied into destination
- 01h parity error
- 02h interrupt error
- 03h address line 20 gating failed
- 80h invalid command (PC,PCjr)
- 86h unsupported function (XT,PS30)
-
- Format of global descriptor table:
- Offset Size Description (Table 0375)
- 00h 16 BYTEs zeros (used by BIOS)
- 10h WORD source segment length in bytes (2*CX-1 or greater)
- 12h 3 BYTEs 24-bit linear source address, low byte first
- 15h BYTE source segment access rights (93h)
- 16h WORD zero
- 18h WORD destination segment length in bytes (2*CX-1 or greater)
- 1Ah 3 BYTEs 24-bit linear destination address, low byte first
- 1Dh BYTE destination segment access rights (93h)
- 1Eh 18 BYTEs zeros (used by BIOS)
- --------b-1587------------------------------------
- INT 15 - HUNTER 16 - SET INT 72h VECTOR
- AH = 87h
- DS:DX = new service routine
- Desc: set the INT 72h vector which is called in 2 cases:
- - when the machine is about to turn off or reboot, INT 72h is called
- with AH=0
- - when the machine is powering up INT 72h is called with AH=01h
- Note: the actual INT 72h vector must also be changed with INT 21/AH=25h
- --------B-1588-------------------------------
- INT 15 - SYSTEM - GET EXTENDED MEMORY SIZE (286+)
- AH = 88h
- Return: 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)
- Notes: 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
- SeeAlso: AH=87h,AH=C7h,AX=DA88h
- --------b-1588------------------------------------
- INT 15 - HUNTER 16 - GET POWER UP KEYS
- AH = 88h
- Return: AH = 00h
- BX = column
- CL = row
- SeeAlso: AH=71h
- --------B-1589-------------------------------
- INT 15 - SYSTEM - SWITCH TO PROTECTED MODE
- AH = 89h
- BL = interrupt number of IRQ0 (IRQ1-7 use next 7 interrupts)
- BH = interrupt number of IRQ8 (IRQ9-F use next 7 interrupts)
- ES:SI -> GDT for protected mode (see #0376)
- Return: CF set on error
- AH = FFh error enabling address line 20
- CF clear if successful
- AH = 00h
- in protected mode at specified address
- Notes: BL and BH must be multiples of 8
- the protected-mode CS must reference the same memory as the CS this
- function is called from because execution continues with the address
- following the interrupt call
- SeeAlso: AH=87h,AH=88h,INT 67/AX=DE0Ch
-
- Format of BIOS switch-to-protected-mode Global Descriptor Table:
- Offset Size Description (Table 0376)
- 00h 8 BYTEs null descriptor (initialize to zeros)
- 08h 8 BYTEs GDT descriptor (see #0377)
- 10h 8 BYTEs IDT descriptor
- 18h 8 BYTEs DS descriptor
- 20h 8 BYTEs ES
- 28h 8 BYTEs SS
- 30h 8 BYTEs CS
- 38h 8 BYTEs uninitialized, used to build descriptor for BIOS CS
-
- Format of segment descriptor table entry:
- Offset Size Description (Table 0377)
- 00h WORD segment limit, low word
- 02h 3 BYTEs segment base address, low 24 bits
- 05h BYTE access mode (see #0378)
- 06h BYTE 386+ extended access mode (see #0379)
- 07h BYTE 386+ segment base address, high 8 bits
- SeeAlso: #0376,INT 2C/AX=0002h,INT 31/AX=0009h
-
- Bitfields for segment descriptor table access mode field:
- Bit(s) Description (Table 0378)
- 3-0 segment type
- 4 descriptor type (1 = application, 0 = system)
- 6-5 descriptor privilege level
- 7 segment is present in RAM
- SeeAlso: #0377,#0379
-
- Bitfields for 386+ segment descriptor table extended access mode field:
- Bit(s) Description (Table 0379)
- 3-0 high 4 bits of segment limit
- 4 available
- 5 reserved (0)
- 6 default operation size (1 = 32 bits, 0 = 16 bits)
- 7 granularity (1 = 4K, 0 = byte)
- SeeAlso: #0377,#0378,#1346
- --------b-158900----------------------------------
- INT 15 - HUNTER 16 - GET POWER MODE
- AX = 8900h
- Return: AH = 00h
- BL = current power mode
- 00h Standard Power Mode (SPM)
- 01h Advanced Power Mode (APM)
- SeeAlso: AX=8901h
- --------b-158901----------------------------------
- INT 15 - HUNTER 16 - SET POWER MODE
- AX = 8901h
- BL = new mode
- 00h Standard Power Mode (SPM)
- 01h Advanced Power Mode (APM)
- Return: AH = 00h
- SeeAlso: AX=8900h
- --------b-158A------------------------------------
- INT 15 - HUNTER 16 - CONTROL POWER INPUT (SPM)
- AH = 8Ah
- AL = new state of Power Input (00h disabled, nonzero enabled)
- SI = 1234h
- DI = 5678h
- Return: AH = status
- 00h success
- FFh failure
- Desc: Enable or disable Power Input. When Power Input is disabled the AC
- adaptor will neither charge the batteries nor supply power to the
- Hunter 16. Disable Power Input if using Alkaline batteries.
- --------b-158B------------------------------------
- INT 15 - HUNTER 16 - GET/SET CHARGER TEMPERATURE OVERRIDE
- AH = 8Bh
- AL = function
- 00h get
- Return: BH = Maximum charging temperature
- Temp = -20 + (n * 0.63) degrees Centigrade
- BL = Minimum charging temperature
- else set
- BH = maximum charging temperature (as above)
- BL = minimum charging temperature (as above)
- Return: AH = status
- 00h success
- FFh failure
- Desc: get/set the temperature interval within which the charger should
- operate
- --------b-158C------------------------------------
- INT 15 - HUNTER 16 - GET/SET POWER SAVE ENTRY FLAG
- AH = 8Ch
- AL = function
- 00h get
- Return: BX = which operations disable power save (see #0380)
- else set
- BX = which operations should disable power save (see #0380)
- SeeAlso: AH=8Dh
-
- Bitfields for HUNTER 16 operations disabling power save:
- Bit(s) Description (Table 0380)
- 0 INT 10h prevents power save
- 1 INT 13h prevents power save
- 2 INT 14h prevents power save
- 3 INT 15h prevents power save
- 4 INT 1Ah prevents power save
- 5 INT 21h prevents power save
- 6 direct write to video RAM prevents power save
- 7 access to 8250 UART prevents power save
- 8 access to 8253 (Sound) prevents power save
- --------b-158D------------------------------------
- INT 15 - HUNTER 16 - GET/SET BOOST CHARGE (SPM)
- AH = 8Dh
- AL = function
- 00h get
- Return: AL = Fast Charge state (00h prevented, else allowed)
- nonzero set
- BH = Fast Charge state (00h prevent, nonzero allow)
- Return: AH = status
- 00h success
- FFh failure
- Desc: control whether Fast Charging (200ma rather than 70ma) is allowed
- SeeAlso: AH=8Ch
- --------B-1590-------------------------------
- INT 15 - OS HOOK - DEVICE BUSY (AT,PS)
- AH = 90h
- AL = device type (see #0381)
- ES:BX -> request block for type codes 80h through BFh
- CF clear
- Return: CF set if wait time satisfied
- CF clear if driver must perform wait
- AH = 00h
- Notes: type codes are allocated as follows:
- 00-7F non-reentrant devices; OS must arbitrate access
- 80-BF reentrant devices; ES:BX points to a unique control block
- C0-FF wait-only calls, no complementary INT 15/AH=91h call
- floppy and hard disk BIOS code uses this call to implement a timeout;
- for device types 00h and 01h, a return of CF set means that the
- timeout expired before the disk responded.
- this function should be hooked by a multitasker to allow other tasks
- to execute while the BIOS is waiting for I/O completion; the default
- handler merely returns with AH=00h and CF clear
- SeeAlso: AH=91h,INT 13/AH=00h,INT 17/AH=00h,INT 1A/AH=83h
-
- (Table 0381)
- Values for device type:
- 00h disk
- 01h diskette
- 02h keyboard
- 03h PS/2 pointing device
- 21h waiting for keyboard input (Phoenix BIOS)
- 80h network
- FBh digital sound (Tandy)
- FCh disk reset (PS)
- FDh diskette motor start
- FEh printer
- --------B-1591-------------------------------
- INT 15 - OS HOOK - DEVICE POST (AT,PS)
- AH = 91h
- AL = device type (see #0381)
- ES:BX -> request block for type codes 80h through BFh
- CF clear
- Return: AH = 00h
- Note: this function should be hooked by a multitasker to allow other tasks
- to execute while the BIOS is waiting for I/O completion; the default
- handler merely returns with AH=00h and CF clear
- SeeAlso: AH=90h
- ----------15A100-----------------------------
- INT 15 U - AMI PCI BIOS - SET ??? FLAG
- AX = A100h
- Return: AX = 0000h
- CF clear
- BX,CX,DI may be destroyed
- Desc: sets bit 7 of CMOS RAM location 37h and updates the CMOS checksum in
- locations 3Eh and 3Fh
- Notes: in the examined version of the BIOS, nonzero values in AL cause it to
- drop through to checking the next possible value of AH, i.e. only
- subfunction 00h is supported
- also supported by Dell XPS P90 and IBM PS/PV 6384, which also use
- AMI BIOSes
- --------n-15BA10-----------------------------
- INT 15 - HP OmniShare - Pen Driver - REPORT PEN CONTROL AREA EVENT
- AX = BA10h
- BL = event
- 00h the pen left control areas
- 01h the pen entered the Brightness- area
- 02h the pen entered the Brightness+ area
- 03h the pen entered the Contrast- area
- 04h the pen entered the Contrast+ area
- Return: CF clear if successfully processed
- CF set on error (function not supported, ie. not an OmniShare BIOS)
- Note: The pen driver is responsible for detecting when the pen enters and
- leaves control areas of the OmniShare tablet, and notifying the BIOS.
- The BIOS manages the events, including the autorepetition, and sets
- the status LEDs.
- SeeAlso: AX=BA20h,AX=BA13h
- --------n-15BA11-----------------------------
- INT 15 - HP OmniShare - Pen Driver - SET THE COMMUNICATION LED STATE
- AX = BA11h
- BL = new LED state (00h steady, 01h flashing)
- Return: CF clear if successful
- CF set on error
- Note: this function is for use by communication software to give visual
- feedback of active communications even if the display is in standby
- mode.
- SeeAlso: AX=BA10h,AX=BA24h
- --------n-15BA12-----------------------------
- INT 15 - HP OmniShare - Pen Driver - STORE PEN BATTERY CHARGE
- AX = BA12h
- BL = new battery state (00h good, 01h low charge)
- Return: CF set on error
- CF clear if successfully stored in CMOS
- Note: The last report will be displayed by the Power-On Self Test the next
- time the OmniShare boots. This allows something meaningful to be
- reported even if the pen is not detected during the POST.
- SeeAlso: AX=BA13h
- --------n-15BA13-----------------------------
- INT 15 - HP OmniShare - Pen Driver - GET PEN BATTERY CHARGE
- AX = BA13h
- Return: CF clear if successful
- BL = pen battery state (00h good, 01h low charge)
- CF set on error
- Note: returns the last value set by AX=BA12h.
- SeeAlso: AX=BA12h
- --------p-15BA20-----------------------------
- INT 15 - HP OmniShare - STANDBY.COM - INSTALLATION CHECK
- AX = BA20h
- Return: CF clear if successful (installed)
- CF set on error (not installed)
- Notes: The display controller can enter a standby mode after a given timeout,
- to conserve power or (for the OmniShare) to increase the life of
- the backlight.
- A side effect of standby mode is that the communications LED turns on
- automatically when the display is in standby mode. This is done in
- hardware, and is intended to show that the unit is still on.
- SeeAlso: AX=BA10h,AX=BA20h,AX=BA22h,AX=BA24h,AX=BA26h
- --------p-15BA21-----------------------------
- INT 15 - HP OmniShare - STANDBY.COM - SET STANDBY DURATION
- AX = BA21h
- BL = new timeout before standby mode in minutes (01h-0Fh)
- 00h to disable automatic switch to standby mode
- Return: CF clear if successful
- CF set on error (function not supported)
- Note: The actual timeout with a GD6205 controller is ((N*64)-32) seconds,
- instead of (N*60) seconds as documented.
- SeeAlso: AX=BA20h,AX=BA22h
- --------p-15BA22-----------------------------
- INT 15 - HP OmniShare - STANDBY.COM - GET STANDBY DURATION
- AX = BA22h
- Return: CF clear if successful
- BL = standy duration in minutes (01h-0Fh), or 00h if disabled
- CF set on error (function not supported)
- Note: The actual timeout with a GD6205 controller is ((N*64)-32) seconds,
- instead of (N*60) seconds as documented.
- SeeAlso: AX=BA20h,AX=BA21h
- --------p-15BA23-----------------------------
- INT 15 - HP OmniShare - STANDBY.COM - TURN ON THE SCREEN IMMEDIATELY
- AX = BA23h
- Return: CF clear if successful
- CF set on error
- SeeAlso: AX=BA11h,AX=BA20h,AX=BA24h
- --------p-15BA24-----------------------------
- INT 15 - HP OmniShare - STANDBY.COM - TURN OFF THE SCREEN IMMEDIATELY
- AX = BA24h
- Return: CF clear if successful
- CF set on error
- Note: This function is not implemented yet. Reserved for future versions
- of the OmniShare.
- SeeAlso: AX=BA11h,AX=BA20h,AX=BA23h
- --------p-15BA25-----------------------------
- INT 15 - HP OmniShare - STANDBY.COM - PREPARE FOR UNINSTALL
- AX = BA25h
- Return: CF clear if successful
- AX = 25BAh
- BX = PSP of STANDBY.COM resident portion
- DX:CX -> previous INT 15 handler
- CF set on error
- Note: This function is used internally by the STANDBY.COM /u option, and
- should not be used by application programs.
- SeeAlso: AX=BA20h
- --------p-15BA26-----------------------------
- INT 15 - HP OmniShare - STANDBY.COM - IS THE DISPLAY IN STANDBY MODE?
- AX = BA26h
- Return: CF clear if successful
- AL = display state (00h active, 01h in standby mode)
- CF set on error (function not supported)
- SeeAlso: AX=BA20h,AX=BA23h
- --------p-15BA27-----------------------------
- INT 15 - HP OmniShare - STANDBY.COM - RESERVED FUNCTIONS
- AX = BA27h to BA2Fh
- Desc: reserved for future use
- --------b-15BC-------------------------------
- INT 15 - Phoenix 386 BIOS - DETERMINE CPU SPEED FOR DELAY LOOPS
- AH = BCh
- Return: CF clear
- (Phoenix 1.10 10a) BYTE 0040h:00B0h set to delay loop count
- (Dell 4xxDE BIOS A11) WORD 0040h:00ECh set to delay loop count
- Note: this function reads system timer channel 0 twice, then does
- calculations on the returned values to determine the delay loop
- counter needed by the BIOS for beeps and floppy timeouts
- SeeAlso: AX=2305h
- --------E-15BF00-----------------------------
- INT 15 - Rational Systems DOS/16M - ???
- AX = BF00h
- ???
- Return: ???
- Note: under DESQview/X 1.02 DVDOS4GX.DVR, this call is identical to AX=BF02h
- SeeAlso: AX=BF02h
- --------E-15BF01-----------------------------
- INT 15 - Rational Systems DOS/16M - ???
- AX = BF01h
- ???
- Return: ???
- Notes: under DESQview/X 1.02 DVDOS4GX.DVR, this call is identical to AX=BF02h
- called by DOS/4GW
- SeeAlso: AX=BF00h,AX=BF02h
- --------E-15BF02DX0000-----------------------
- INT 15 - Rational Systems DOS/16M - INSTALLATION CHECK
- AX = BF02h
- DX = 0000h
- Return: DX = nonzero if installed
- DX:SI -> XBRK structure (see #0382)
- Note: this function is also supported by DOS/4G
- SeeAlso: AX=BF01h,AX=BFDCh,AX=BFDEh/BX=0000h
- SeeAlso: INT 21/AH=FFh/DH=0Eh,INT 2F/AH=A1h,INT 2F/AX=F100h,INT 2F/AX=FBA1h
-
- Format of DOS/16M XBRK structure:
- Offset Size Description (Table 0382)
- 00h DWORD linear address of first available byte
- 04h DWORD linear address of last available byte + 1 ???
- 08h DWORD real-mode address of XBRK structure???
- 0Ch DWORD ???
- 10h 2 BYTEs ???
- 12h WORD segment of ???
- 14h 8 BYTEs ???
- 1Ch 512 BYTEs protected-mode IDT
- 21Ch N BYTEs protected-mode GDT
- --------E-15BF03-----------------------------
- INT 15 - Rational Systems DOS/4GW - UNINSTALL???
- AX = BF03h
- BX = PSP segment of extender
- ???
- Return: ???
- Note: if BX is not the PSP segment of the extender, it passes the call down
- the INT 15 chain; this allows nested instances of the extender
- SeeAlso: AX=BF06h
- --------E-15BF04-----------------------------
- INT 15 - Rational Systems DOS/4GW - ???
- AX = BF04h
- BX = PSP segment of extender
- Return: nothing???
- Notes: if BX is not the PSP segment of the extender, it passes the call down
- the INT 15 chain; this allows nested instances of the extender
- grabs INT 2Fh and installs handlers for INT 2F/AX=1605h-1607h
- SeeAlso: INT 2F/AX=1607h/BX=22C0h
- --------E-15BF05-----------------------------
- INT 15 - Rational Systems DOS/4GW - INITIALIZE PROTECTED-MODE INTERFACE
- AX = BF05h
- BX = PSP segment of extender
- Return: nothing???
- Notes: if BX is not the PSP segment of the extender, it passes the call down
- the INT 15 chain; this allows nested instances of the extender
- calls INT 67/AX=DE01h if ???
- --------E-15BF06-----------------------------
- INT 15 - Rational Systems DOS/4GW - ???
- AX = BF06h
- BX = PSP segment of extender
- ???
- Return: ???
- Note: if BX is not the PSP segment of the extender, it passes the call down
- the INT 15 chain; this allows nested instances of the extender
- SeeAlso: AX=BF03h
- --------E-15BFDCDX0000-----------------------
- INT 15 - Rational Systems DOS/4GW - INSTALLATION CHECK
- AX = BFDCh
- DX = 0000h
- SI = 0000h
- Return: DX = nonzero if installed
- DX:SI -> XBRK structure (see #0382)
- SeeAlso: AX=BF02h
- --------E-15BFDEBX0000-----------------------
- INT 15 - DESQview/X - DVDOS4GX.DVR - INSTALLATION CHECK
- AX = BFDEh
- BX = 0000h
- Return: AX = ??? (0003h)
- BX = FFFFh
- SeeAlso: AX=BF02h
- --------E-15BFDEBX0001-----------------------
- INT 15 - DESQview/X 1.02+ - DVDOS4GX.DVR - GET PROCESS MANAGER NAME
- AX = BFDEh
- BX = 0001h
- Return: BX = 0000h (success)
- CX:DX -> name of process manager executable
- SeeAlso: AX=BFDEh/BX=0000h
- --------E-15BFDEBX0002-----------------------
- INT 15 - DESQview/X 1.02+ - DVDOS4GX.DVR - SET ???
- AX = BFDEh
- BX = 0002h
- CX:DX -> ???
- Return: BX = 0000h (success)
- SeeAlso: AX=BFDEh/BX=0000h,AX=BFDEh/BX=0003h
- --------E-15BFDEBX0003-----------------------
- INT 15 - DESQview/X 1.02+ - DVDOS4GX.DVR - GET ???
- AX = BFDEh
- BX = 0003h
- Return: BX = 0000h (success)
- CX:DX -> ???
- SeeAlso: AX=BFDEh/BX=0000h,AX=BFDEh/BX=0002h
- --------E-15BFDEBX0004-----------------------
- INT 15 - DESQview/X 1.02+ - DVDOS4GX.DVR - ???
- AX = BFDEh
- BX = 0004h
- CL = ???
- Return: BX = 0000h (success)
- CX:DX -> XBRK structure (see #0382)
- SeeAlso: AX=BFDEh/BX=0000h
- --------E-15BFDEBX0005-----------------------
- INT 15 - DESQview/X 1.02+ - DVDOS4GX.DVR - ???
- AX = BFDEh
- BX = 0005h
- CX = new value for ???
- Return: BX = 0000h (success)
- AX = old value of ???
- DS:SI -> ??? (if AX nonzero on return)
- ES:DI -> ??? (if AX zero on return)
- Note: called by DOS4GW.EXE
- SeeAlso: AX=BFDEh/BX=0000h
- --------E-15BFDEBX0006-----------------------
- INT 15 - DESQview/X 1.02+ - DVDOS4GX.DVR - GET ???
- AX = BFDEh
- BX = 0006h
- Return: BX = 0000h (success)
- AH = interrupt number??? (BEh)
- CX:DX = ???
- SeeAlso: AX=BFDEh/BX=0000h,AX=BFDEh/BX=0007h,INT BE"DESQview"
- --------E-15BFDEBX0007-----------------------
- INT 15 - DESQview/X 1.02+ - DVDOS4GX.DVR - SET ???
- AX = BFDEh
- BX = 0007h
- CX:DX = ???
- Return: BX = 0000h (success)
- SeeAlso: AX=BFDEh/BX=0000h,AX=BFDEh/BX=0006h
- --------E-15BFDEBX0008-----------------------
- INT 15 - DESQview/X 1.02+ - DVDOS4GX.DVR - ???
- AX = BFDEh
- BX = 0008h
- CX = segment of ???
- DS = ???
- Return: BX = status
- 0000h successful
- AL = ??? (80h or C0h)
- DX = ??? (0603h) if AL=C0h
- 0001h failed
- AX = 0000h
- Note: called by DOS4GW.EXE
- SeeAlso: AX=BFDEh/BX=0000h
- --------E-15BFDEBX0009-----------------------
- INT 15 - DESQview/X 1.02+ - DVDOS4GX.DVR - GET PROTECTED MODE PROGRAM LOADER
- AX = BFDEh
- BX = 0009h
- Return: BX = 0000h (success)
- CX:DX -> full pathname to LOAD32.EXP
- SeeAlso: AX=BFDEh/BX=0000h
- --------E-15BFDEBX000A-----------------------
- INT 15 - DESQview/X 1.02+ - DVDOS4GX.DVR - DECREMENT ???
- AX = BFDEh
- BX = 000Ah
- Return: BX = 0000h (success)
- AX = new value of ??? counter
- Notes: also resets a variety of values if the counter goes negative
- called by DOS4GW.EXE
- SeeAlso: AX=BFDEh/BX=0000h,AX=BFDEh/BX=000Bh
- --------E-15BFDEBX000B-----------------------
- INT 15 - DESQview/X 1.02+ - DVDOS4GX.DVR - INCREMENT ???
- AX = BFDEh
- BX = 000Bh
- Return: AX = new value of ??? counter
- Note: called by DOS4GW.EXE
- SeeAlso: AX=BFDEh/BX=0000h,AX=BFDEh/BX=000Ah
- --------E-15BFDEBX000C-----------------------
- INT 15 - DESQview/X 1.02+ - DVDOS4GX.DVR - ???
- AX = BFDEh
- BX = 000Ch
- CL = ???
- 00h
- nonzero
- Return: ???
- SeeAlso: AX=BFDEh/BX=0000h
- --------E-15BFDEBX000D-----------------------
- INT 15 - DESQview/X 1.02+ - DVDOS4GX.DVR - ???
- AX = BFDEh
- BX = 000Dh
- ???
- Return: ???
- SeeAlso: AX=BFDEh/BX=0000h
- --------E-15BFDEBX000E-----------------------
- INT 15 - DESQview/X 1.02+ - DVDOS4GX.DVR - ???
- AX = BFDEh
- BX = 000Eh
- DX:CX -> ???
- Return: AX = segment of handle for calling task
- BX = ??? (probably destroyed)
- DX:CX -> ???
- SeeAlso: AX=BFDEh/BX=0000h,AX=BFDEh/BX=000Fh,AX=BFDEh/BX=0013h
- --------E-15BFDEBX000F-----------------------
- INT 15 - DESQview/X 1.02+ - DVDOS4GX.DVR - ???
- AX = BFDEh
- BX = 000Fh
- Return: AX = segment of handle for calling task
- BX = ??? (probably destroyed)
- DX:CX -> ???
- Note: identical to AX=BFDEh/BX=000Eh with CX:DX = 0000h:0000h
- SeeAlso: AX=BFDEh/BX=000Eh,AX=BFDEh/BX=0010h
- --------E-15BFDEBX0010-----------------------
- INT 15 - DESQview/X 1.02+ - DVDOS4GX.DVR - GET TASK HANDLE
- AX = BFDEh
- BX = 0010h
- Return: AX = segment of caller's task handle
- BX destroyed
- SeeAlso: AX=BFDEh/BX=000Fh
- --------E-15BFDEBX0011-----------------------
- INT 15 - DESQview/X 1.02+ - DVDOS4GX.DVR - GET ???
- AX = BFDEh
- BX = 0011h
- Return: CX = code segment of DVDOS4GX.DVR
- BX = ??? (0004h)
- SeeAlso: AX=BFDEh/BX=0000h
- --------E-15BFDEBX0012-----------------------
- INT 15 - DESQview/X 1.02+ - DVDOS4GX.DVR - GET ???
- AX = BFDEh
- BX = 0012h
- Return: DX = code segment of DVDOS4GX.DVR
- BX = ??? (012Ch)
- CX = ??? (0006h)
- SeeAlso: AX=BFDEh/BX=0000h
- --------E-15BFDEBX0013-----------------------
- INT 15 - DESQview/X 1.02+ - DVDOS4GX.DVR - GET ???
- AX = BFDEh
- BX = 0013h
- Return: DX:CX -> ???
- SeeAlso: AX=BFDEh/BX=000Eh
- --------E-15BFDEBX0014-----------------------
- INT 15 - DESQview/X 1.02+ - DVDOS4GX.DVR - LOCK ??? MAILBOX
- AX = BFDEh
- BX = 0014h
- CX = index of ??? mailbox
- (0000h-0004h valid, but no range checking done)
- Return: AX,BX destroyed
- SeeAlso: AX=BFDEh/BX=0015h,AX=BFDEh/BX=0017h
- --------E-15BFDEBX0015-----------------------
- INT 15 - DESQview/X 1.02+ - DVDOS4GX.DVR - UNLOCK ??? MAILBOX
- AX = BFDEh
- BX = 0015h
- CX = index of ??? mailbox
- (0000h-0004h valid, but no range checking done)
- Return: AX,BX destroyed
- SeeAlso: AX=BFDEh/BX=0014h,AX=BFDEh/BX=0016h
- --------E-15BFDEBX0016-----------------------
- INT 15 - DESQview/X 1.02+ - DVDOS4GX.DVR - CHECK IF ??? MAILBOX OWNED
- AX = BFDEh
- BX = 0016h
- CX = index of ??? mailbox
- (0000h-0004h valid, but no range checking done)
- Return: AX = status
- 0000h no one owns mailbox
- 0001h mailbox has an owner
- BX destroyed
- SeeAlso: AX=BFDEh/BX=0015h,AX=BFDEh/BX=0017h
- --------E-15BFDEBX0017-----------------------
- INT 15 - DESQview/X 1.02+ - DVDOS4GX.DVR - GET ??? MAILBOX OWNER
- AX = BFDEh
- BX = 0017h
- CX = index of ??? mailbox
- (0000h-0004h valid, but no range checking done)
- Return: AX = segment of mailbox owner's handle
- BX = segment of caller's task handle
- SeeAlso: AX=BFDEh/BX=0015h,AX=BFDEh/BX=0016h
- --------E-15BFDEBXFFFD-----------------------
- INT 15 - DESQview/X 1.02+ - DVDOS4GX.DVR - GET ???
- AX = BFDEh
- BX = FFFDh
- Return: CX:DX = ???
- SeeAlso: AX=BFDEh/BX=FFFEh
- --------E-15BFDEBXFFFE-----------------------
- INT 15 - DESQview/X 1.02+ - DVDOS4GX.DVR - SET ???
- AX = BFDEh
- BX = FFFEh
- CX:DX = ???
- SeeAlso: AX=BFDEh/BX=FFFDh
- --------E-15BFDEBXFFFF-----------------------
- INT 15 - DESQview/X 1.02+ - DVDOS4GX.DVR - NOP
- AX = BFDEh
- BX = FFFFh
- SeeAlso: AX=BFDEh/BX=0000h
- --------B-15C0-------------------------------
- INT 15 - SYSTEM - GET CONFIGURATION (XT after 1/10/86,AT mdl 3x9,CONV,XT286,PS)
- AH = C0h
- Return: CF set if BIOS doesn't support call
- CF clear on success
- ES:BX -> ROM table (see #0383)
- AH = status
- 00h successful
- 86h unsupported function
- Notes: 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 #0389)
- Hewlett-Packard machines contain the signature "HP" at F000h:00F8h and
- a product identifier at F000h:00FAh (see #0392)
- Compaq machines can be identified by the signature string "COMPAQ" at
- F000h:FFEAh, and is preceded by additional information (see #0390)
- 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 #0393)
- 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)
- SeeAlso: AH=C7h,AH=C9h,AH=D1h
-
- Format of ROM configuration table:
- Offset Size Description (Table 0383)
- 00h WORD number of bytes following
- 02h BYTE model (see #0388)
- 03h BYTE submodel (see #0388)
- 04h BYTE BIOS revision: 0 for first release, 1 for 2nd, etc.
- 05h BYTE feature byte 1 (see #0384)
- 06h BYTE feature byte 2 (see #0385)
- 07h BYTE feature byte 3 (see #0386)
- 08h BYTE feature byte 4 (see #0387)
- 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 0384)
- 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)
- SeeAlso: #0383,#0385
-
- Bitfields for feature byte 2:
- Bit(s) Description (Table 0385)
- 7 reserved
- 6 INT 16/AH=09h (keyboard functionality) supported (see #0445)
- 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
- SeeAlso: #0383,#0386,AH=C6h,AH=C7h,AH=C8h,INT 16/AH=09h
-
- Bitfields for feature byte 3:
- Bit(s) Description (Table 0386)
- 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
- SeeAlso: #0383,#0385,#0386
-
- Bitfields for feature byte 4:
- Bit(s) Description (Table 0387)
- 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)
- SeeAlso: #0383,#0386
-
- (Table 0388)
- 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 #0394)
- 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 #0394)
- 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 00h 04/09/90 AMI BIOS
- 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 02h 00h 08/11/88 SoftWindows 1.0.1 (Power Macintosh)
- FCh 04h 00h 02/13/87 ** PS/2 Model 50 (10 MHz/1 ws 286)
- FCh 04h 01h 05/09/87 PS/2 Model 50 (10 Mhz 286, LW-type 32)
- FCh 04h 02h ??? PS/2 Model 50
- FCh 04h 02h 01/28/88 PS/2 Model 50Z (10 Mhz 286, LW-type 33)
- 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 00h 08/25/88 PS/2 Model 30 286 (10 Mhz, LW-type 37)
- FCh 09h 02h 06/28/89 PS/2 Model 30-286
- FCh 09h 02h 06/28/89 PS/2 Model 25 286 (10 Mhz, LW-type 37)
- FCh 0Bh 00h 12/01/89 PS/1 (LW-Type 44)
- 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 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
- FBh 00h 01h 01/10/86 PC XT-089, Enh Keyb, 3.5" support
- FBh 00h 01h 05/13/94 HP 200LX 2MB BIOS 1.01 A D german
- FBh 00h 02h 05/09/86 PC XT
- FBh 00h 04h 08/19/93 HP 100LX 1MB BIOS 1.04 A
- 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 00h 02h 02/05/87 PS/2 Model 30
- FAh 01h 00h 06/26/87 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 00h 00h ??? PS/2 Model 75 486 (33Mhz 486)
- F8h 01h 00h 10/07/87 PS/2 Model 80 (20MHz 386)
- F8h 02h 00h ??? PS/2 Model 55-5571
- F8h 04h 00h 01/29/88 PS/2 Model 70 (20 Mhz 386DX,LW-type 33)
- 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 01/29/88 PS/2 Model 70 16MHz 386DX, type 1 sysbd
- 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 09h 04h 12/15/89 PS/2 Model 70 (16 Mhz 386, LW-type 33)
- 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 0Dh 00h 06/08/88 PS/2 Model 70 386 25MHz, type 3 sys brd
- F8h 0Dh 01h 02/20/89 PS/2 Model 70 386 25MHz, type 3 sys brd
- F8h 0Dh ??? 12/01/89 PS/2 Model 70 486 25Mhz, type 3 sys 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 / 95XP486 (33MHz 486)
- F8h 17h 00h ??? PS/2 Model 90 XP
- F8h 19h 05h ??? PS/2 Model 35/35LS or 40 (20 MHz 386SX)
- F8h 19h 05h 03/15/91 PS/2 Model 35 SX / 40 SX (LW-type 37)
- F8h 19h 06h 04/04/91 PS/2 Model 35 SX / 40 SX (LW-type 37)
- F8h 1Ah 00h ??? PS/2 Model 95 XP
- F8h 1Bh 00h 09/29/89 PS/2 Model 70 486 (25 Mhz 386DX)
- 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 / 65 SX (16MHz 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 23h 02h 02/27/91 PS/2 Model L40 SX (20Mhz386SX,LW-typ37)
- 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 26h 02h 07/03/91 PS/2 Model 57 SX (20Mhz 386SX, SCSI)
- 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 / 90XP486 (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 00h ??? PS/2 Model 95 XP486 (20 Mhz 486SX)
- 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 (25 Mhz 386)
- 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)
- E4h ??? ??? ??? Triumph Adler PC/XT
- E1h ??? ??? ??? ??? (checked for by DOS4GW.EXE)
- E1h 00h 00h ??? PS/2 Model 55-5530 Laptop
- D9h ??? ??? ??? Peacock XT
- 9Ah * * ??? Compaq XT/Compaq Plus
- 30h ??? ??? ??? Sperry PC
- 2Dh * * ??? Compaq PC/Compaq Deskpro
- ??? 56h ??? ??? Olivetti, unknown model
- ??? 74h ??? ??? Olivetti, unknown model
- Notes: BIOS dates may vary without changes to the revision code, especially
- for non-IBM machines
- * 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.
- SeeAlso: #0383,#0389
-
- (Table 0389)
- 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
- SeeAlso: #0383,#0388
-
- Format of Compaq product information:
- Address Size Description (Table 0390)
- 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
- SeeAlso: #0391,#0393
-
- Format of Hewlett-Packard ROM ID at F000h:00F8h:
- Offset Size Description (Table 0391)
- 00h 2 BYTEs signature "HP" (48h 50h)
- 02h 2 BYTEs 00h 00h
- 04h BYTE secondary code revision
- 05h BYTE primary code revision
- 06h BYTE date code, year-1960 (BCD)
- 07h BYTE date code, week of year (BCD)
- SeeAlso: #0390,#0392
-
- Bitfields for Hewlett-Packard product identifier:
- Bit(s) Description (Table 0392)
- 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
- SeeAlso: #0391
-
- Format of Toshiba laptop information:
- Offset Size Description (Table 0393)
- 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 always zero???
- 20h DWORD -> built-in BIOS setup program entry point or 0000h:0000h
- Note: this record is located at F000h:E000h
- SeeAlso: #0390,#0391
-
- (Table 0394)
- 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 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 V1.00 08/19n92 Toshiba T1850
- 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 8Ah ../..x.. Toshiba T6600C
- FCh 91h ../..x.. Toshiba T2400CS
- FCh 91h V1.20 07/15x94 Toshiba T2400CT
- FCh 92h ../..x.. Toshiba T3600CT
- FCh 96h * ../..x.. Toshiba T200
- FCh 96h * ../..x.. Toshiba T200CS
- 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 * V1.30 03/22x94 Toshiba T3400 /250
- FCh 9Eh * ../..x.. Toshiba T3400CT
- FCh BAh V1.30 02/16x95 Toshiba T2150CDS/CDT
- FCh BBh V1.30 01/25x95 Toshiba T2100/CS/CT
- FCh BCh ??? ../..x.. Toshiba T2450CT
- FCh BEh ../..x.. Toshiba T4850CT
- FCh ??? ../.. .. Toshiba T1900S
- FCh ??? ../.. .. Toshiba T1900CT
- FCh ??? ../.. .. Toshiba T4900CT
- Note: BIOS version numbers and dates may vary, esp. due to harddisk and
- flash BIOS upgrades
- the 8-bit ASCII graphics character in the "date" column above
- has been substituted by "x" because it depends on code page
- [*] These models have monochrome and color versions which can be
- distinguished with INT 42/AX=7503h; as that call is no longer
- supported on the T21xx series, use the product number at F000h:E000h
- instead (see #0393)
- SeeAlso: #0388
- --------B-15C1-------------------------------
- INT 15 - SYSTEM - RETURN EXTENDED-BIOS DATA-AREA SEGMENT ADDRESS (PS)
- AH = C1h
- Return: CF set on error
- CF clear if successful
- ES = segment of data area
- SeeAlso: AH=04h"ABIOS"
- --------M-15C200-----------------------------
- INT 15 - SYSTEM - POINTING DEVICE BIOS INTERFACE (PS) - ENABLE/DISABLE
- AX = C200h
- BH = new state
- 00h disabled
- 01h enabled
- Return: CF set on error
- AH = status (see #0395)
-
- (Table 0395)
- Values for pointing device function status:
- 00h successful
- 01h invalid function
- 02h invalid input
- 03h interface error
- 04h need to resend
- 05h no device handler installed
- --------M-15C201-----------------------------
- INT 15 - SYSTEM - POINTING DEVICE BIOS INTERFACE (PS) - RESET
- AX = C201h
- Return: CF set on error
- AH = status (see #0395)
- CF clear if successful
- BH = device ID
- BL = value returned by attached device after reset
- AAh if device is a mouse
- Note: after successful completion of this call, the pointing device is set
- as follows: disabled, sample rate 100 Hz, resolution 4 counts/mm,
- scaling 1:1, unchanged data package size
- SeeAlso: INT 33/AX=0000h
- --------M-15C202-----------------------------
- INT 15 - SYSTEM - POINTING DEVICE BIOS INTERFACE (PS) - SET SAMPLING RATE
- AX = C202h
- BH = sampling rate
- 00h 10/second
- 01h 20/second
- 02h 40/second
- 03h 60/second
- 04h 80/second
- 05h 100/second
- 06h 200/second
- Return: CF set on error
- AH = status (see #0395)
- SeeAlso: INT 33/AX=001Ch
- --------M-15C203-----------------------------
- INT 15 - SYSTEM - POINTING DEVICE BIOS INTERFACE (PS) - SET RESOLUTION
- AX = C203h
- BH = resolution (see #0396)
- Return: CF set on error
- AH = status (see #0395)
-
- (Table 0396)
- Values for pointing device resolution:
- 00h one count per mm
- 01h two counts per mm
- 02h four counts per mm
- 03h eight counts per mm
- --------M-15C204-----------------------------
- INT 15 - SYSTEM - POINTING DEVICE BIOS INTERFACE (PS) - GET TYPE
- AX = C204h
- Return: CF set on error
- AH = status (see #0395)
- CF clear if successful
- BH = device ID
- --------M-15C205-----------------------------
- INT 15 - SYSTEM - POINTING DEVICE BIOS INTERFACE (PS) - INITIALIZE
- AX = C205h
- BH = data package size (1 - 8 bytes)
- Return: CF set on error
- AH = status (see #0395)
- Note: the pointing device is set as follows: disabled, 100 Hz sample rate,
- resolution 4 counts/mm, scaling 1:1
- SeeAlso: AX=C201h
- --------M-15C206-----------------------------
- INT 15 - SYSTEM - POINTING DEVICE BIOS INTERFACE (PS) - EXTENDED COMMANDS
- AX = C206h
- BH = subfunction
- 00h return device status
- Return: BL = pointing device status (see #0397)
- CL = resolution (see #0396)
- DL = sample rate, reports per second
- 01h set scaling at 1:1
- 02h set scaling at 2:1
- Return: CF set on error
- AH = status (see #0395)
-
- Bitfields for pointing device status:
- Bit(s) Description (Table 0397)
- 0 right button pressed
- 1 reserved
- 2 left button pressed
- 3 reserved
- 4 0 if 1:1 scaling, 1 if 2:1 scaling
- 5 device enabled
- 6 0 if stream mode, 1 if remote mode
- 7 reserved
- --------M-15C207-----------------------------
- INT 15 - SYSTEM - POINTING DEVICE BIOS INTERFACE (PS) - SET DEVICE HANDLER ADDR
- AX = C207h
- ES:BX -> FAR user device handler or 0000h:0000h to cancel
- Return: CF set on error
- AH = status (see #0395)
- Note: when the subroutine is called, it is passed the following values on
- the stack; the handler should return with a FAR return without
- popping the stack:
- WORD 1: status (see #0398)
- WORD 2: X data (high byte = 00h)
- WORD 3: Y data (high byte = 00h)
- WORD 4: 0000h
- SeeAlso: INT 33/AX=000Ch
-
- Bitfields for pointing device status:
- Bit(s) Description (Table 0398)
- 15-8 reserved (0)
- 7 Y data overflowed
- 6 X data overflowed
- 5 Y data is negative
- 4 X data is negative
- 3 reserved (1)
- 2 reserved (0)
- 1 right button pressed
- 0 left button pressed
- --------B-15C3------------------------------
- INT 15 - SYSTEM - ENABLE/DISABLE WATCHDOG TIMEOUT (PS50+)
- AH = C3h
- AL = function
- 00h disable PS/2 watchdog timer
- 01h enable PS/2 watchdog timer
- BX = timer counter (0001h-00FFh)
- 02h disable Gearbox system
- 03h enable Gearbox system
- Return: CF set on error
- CF clear if successful
- Note: the watchdog timer generates an NMI
- SeeAlso: INT 21/AH=2Bh/CX=6269h/DX=742Dh
- --------B-15C4-------------------------------
- INT 15 - SYSTEM - PROGRAMMABLE OPTION SELECT (PS50+)
- AH = C4h
- AL = subfunction
- 00h return base POS register address
- 01h enable selected slot for setup
- BL = slot number (1 to 8)
- 02h disable setup for all slots (enable adapter)
- Return: CF set on error
- DX = base POS register address (if subfunction 00h)
- SeeAlso: AH=C6h
- --------B-15C5-------------------------------
- INT 15 UC - OS HOOK - ROM BIOS TRACING CALLOUT (PS30/286,PS50Z,PS95)
- AH = C5h
- AL = interrupt being invoked
- 01h INT 19
- 02h INT 14
- 03h INT 16
- 04h INT 40 (floppy INT 13)
- 05h INT 17
- 06h INT 10
- 07h INT 12
- 08h INT 11
- 09h INT 1A
- Return: all registers except AX must be preserved
- Notes: called as the very first action of the indicated ROM BIOS interrupt
- handlers on the PS/2 Models 30/286, 50Z, and 95
- default handler does nothing and returns CF clear for the above
- subfunctions, CF set and AH=86h for all other subfunctions
- value of AX passed to the original interrupt handler is pushed on
- stack immediately prior to call
- --------B-15C6-------------------------------
- INT 15 U - later PS/2 models - GET POS DATA
- AH = C6h
- ???
- Return: ???
- Notes: this function is referenced by name and number in some IBM BIOS manuals
- IBM reports that "there are a number of problems with this call" and
- does not recommend its use.
- SeeAlso: AH=C4h
- --------B-15C7-------------------------------
- INT 15 - SYSTEM - later PS/2s - RETURN MEMORY-MAP INFORMATION
- AH = C7h
- DS:SI -> user supplied memory map table (see #0399)
- Note: call AH=C0h and examine bit 4 of feature byte 2 to check if this
- function is supported
- Return: CF set on error, clear if successful
- SeeAlso: AH=C0h,AH=C9h,AH=D1h
-
- Format of memory-map table structure:
- Offset Size Description (Table 0399)
- 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
- --------B-15C8-------------------------------
- INT 15 - SYSTEM - ENABLE/DISABLE PROCESSOR FUNCTIONS
- AH = C8h
- AL = function
- 00h disable cache or (90 and 95) disable cache L1
- 01h enable cache or (90 and 95) enable cache L1
- ---models 90 and 95 only---
- 02h disable cache L2
- 03h enable cache L2
- 04h disable both caches
- 05h enable both caches
- 06h return status of both caches
- 07h-FFh Reserved
- Return: CF set on error
- CF clear if successful
- AH = status (see #0400)
- For subfunction 06h only:
- BH = status of cache L2
- 00h enabled
- 01h disabled or not installed
- BL = status of cache L1 (same codes as BH)
- Notes: supported by at least PS/2 70, 70/486, 80-A21, 90, 95
- call AH=C0h and examine bit 3 of feature byte 2 to check if this
- function is supported.
- on a 486 system, any external caches must be disabled when the
- on-chip cache (L1) is disabled.
- SeeAlso: AH=C0h
-
- (Table 0400)
- Values for status:
- 00h operation successful
- 01h function choice (in AL) is invalid
- 02h NVRAM data is invalid
- 03h cache test error
- 04h (90 and 95 only) cannot perform operation requested due to state of
- other cache (see note above)
- 05h no L2 cache is present
- 09h CPU in protected mode
- --------B-15C9-------------------------------
- INT 15 - newer PS/2; various BIOSes - GET CPU TYPE AND MASK REVISION
- AH = C9h
- AL = 10h (may be required on some non-PS BIOSes)
- Return: CF clear if successful
- AH = 00h
- CH = CPU type (see #0401)
- CL = mask revision (stepping level) (see #0402)
- CF set on error
- AH = status (80h,86h = function not supported)
- Notes: the BIOS must save DX at startup in order to be able to support this
- call; PS/2 Models 56, 57, 90, and 95 are known to support it
- the PS/2 BIOS merely reads CMOS locations 190h (type) and 191h (rev)
- SeeAlso: AX=DA92h
-
- (Table 0401)
- Values for CPU type:
- 03h 80386DX or clone
- 04h 80486
- 05h Pentium
- 23h 80386SX or clone
- 33h Intel i376
- 43h 80386SL or clone
- A3h IBM 386SLC
- A4h IBM 486SLC
-
- (Table 0402)
- Values for stepping level:
- ---i376 (type code 33h)---
- 05h A0
- 08h B
- ---80386/80386DX (type code 03h)---
- 03h Intel B1 to B10, Am386DX/DXL step A
- 05h Intel D0
- 08h Intel D1/D2/E1, Am386DX/DXL step B
- ---80386SL (type code 43h)---
- 05h A
- 1xh B
- ---80386SX (type code 23h)---
- 04h Intel A0
- 05h Intel B, Am386SX/SXL step A1
- 08h Intel C/D1, Am386SX/SXL step B
- 09h Intel 386CX/386EX/386SXstatic step A
- ---80486DX (type code 04h)---
- 00h Intel A0/A1
- 01h Intel B2 to B6
- 02h Intel C0
- 03h Intel C1
- 04h Intel D0
- 10h Intel cA2/cA3, Cx486SLC step A
- 11h Intel cB0/cB1
- ---486DX2 (type code 04h)---
- 02h Am486DX2 (unknown stepping)
- 32h Intel DX2/Overdrive steps A0 to A2
- 33h Intel DX2/Overdrive step B1
- ---486SX (type code 04h)---
- 20h Intel A0
- 22h Intel B0
- 27h Intel cA0
- 28h Intel cB0
- ---486SL (type code 04h)---
- 40h Intel A
- ---IntelSX2 (type code 04h)---
- 5xh Intel A
- ---IntelDX4 (type code 04h)---
- 8xh Intel A
- ---487SX (type code 04h)---
- 20h Intel A0
- 21h Intel B0
- ---Pentium (type code 05h)---
- 0xh Intel P5 steps Ax (1993)
- 1xh Intel P5 steps Bx (1994)
- 2xh Intel P54C step A
- ---RapidCAD (type code 03h)---
- 40h A
- --------B-15CA-------------------------------
- INT 15 U - PS/2 Model 95 - READ/WRITE CMOS MEMORY
- AH = CAh
- AL = function
- 00h read CMOS
- Return: CL = value of CMOS location
- 01h write CMOS
- CL = new value for CMOS location
- BL = CMOS location (0Eh-3Fh)
- Return: CF clear if successful
- AH = 00h
- CF set on error
- AH = error code (see #0403)
- Note: writes do not update the CMOS checksum
-
- (Table 0403)
- Values for CMOS read/write error code:
- 01h CMOS lost power or has invalid checksum
- 03h specified location out of range (too high)
- 04h specified location out of range (too low)
- 80h unsupported function (PC)
- 86h unsupported function (XT)
- --------B-15CB-------------------------------
- INT 15 U - PS/2 Model 95 - RESERVED
- AH = CBh
- ???
- Return: ???
- --------B-15CC-------------------------------
- INT 15 U - PS/2 Model 95 - RESERVED
- AH = CCh
- ???
- Return: ???
- --------V-15CCCC-----------------------------
- INT 15 U - Toshiba laptops - VCHAD.EXE - INSTALLATION CHECK
- AX = CCCCh
- Return: AX = ABCDh if installed
- Note: supported by Toshiba VGA change display utility VCHAD.EXE ver 2.90+
- older versions have the string "VCHAD" 2 bytes after the address of
- the INT 15 handler which is hooked by all versions for the SysReq key
- SeeAlso: AH=85h
- --------B-15CD-------------------------------
- INT 15 U - PS/2 Model 95 - RESERVED
- AH = CDh
- ???
- Return: ???
- --------B-15CE--BL00-------------------------
- INT 15 - later PS/2s - ALLOCATE DMA ARBITRATION LEVEL
- AH = CEh
- BL = 00h-0Eh arbitration level to be allocated
- 0Fh-FFh reserved
- AL = option byte
- bit 7-1: reserved (0)
- bit 0: 0 = need DMA channel for arbitration level requested
- 1 = no channel required for arbitration level
- Return: CF set on error
- AH = status (80h,86h = function not supported)
- CF clear on success
- AL = channel number
- 00h-07h channel number allocated for the arbiration level
- 08h-FEh reserved
- FFh no channel requested for arbitration level
- AH = status (see #0404)
- Notes: arbitration level 00h has the highest priority, 0Eh the lowest
- to perform a DMA transfer operation, be sure to call this function
- first, and call AH=CFh afterward. Failure to use this function
- can cause unpredictable results.
- SeeAlso: AH=CFh
-
- (Table 0404)
- Values for DMA arbitration status:
- 00h success
- 01h arbitration level not available
- 02h channel not available
- 03h invalid arbitration level passed
- --------B-15CF-------------------------------
- INT 15 - later PS/2s - DEALLOCATE DMA ARBITRATION LEVEL
- AH = CFh
- BL = arbitration level to be deallocated (see AH=CEh)
- Return: CF set on error
- AH = status (80h,86h = function not supported)
- CF clear on success
- AH = status
- 00h success
- 04h arbitration level not allocated
- SeeAlso: AH=CEh
- --------B-15D0-------------------------------
- INT 15 - later PS/2s - RESERVED
- AH = D0h
- ???
- Return: ???
- --------B-15D100DX0000-----------------------
- INT 15 - later PS/2s - GET NUMBER OF DEVICE DESCRIPTOR TABLE (DDT) ENTRIES
- AX = D100h
- DX = 0000h (reserved, must set to 0)
- Return: BL = size of one DDT entry, in bytes
- CX = number of DDT entries
- AH = return code (see #0405)
- CF set on error
- CF clear on success
- SeeAlso: AH=C0h,AH=C7h,AH=C9h,AX=D101h,AX=D102h,AX=D103h,AX=D104h
-
- (Table 0405)
- Values for return code:
- 00h success
- 01h requested DDT entry not found
- 02h DDT data not valid
- 86h function not supported
- --------B-15D101-----------------------------
- INT 15 - later PS/2s - RETURN DEVICE DESCRIPTOR TABLE (DDT) ENTRY BY NUMBER
- AX = D101h
- BX = number of requested entry (starting with 1)
- DX = 0000h (reserved, must be set to 0)
- ES:DI -> buffer to contain DDT entry (see #0406)
- Return: AH = return code (see #0405)
- CF set on error
- CF clear on success
- ES:DI buffer filled with DDT entry
- SeeAlso: AH=C0h,AH=C7h,AH=C9h,AX=D100h,AX=D102h,AX=D104h
-
- Format of Device Descriptor Table (DDT):
- Offset Size Description (Table 0406)
- 00h BYTE bits 7-4: reserved (set to 0)
- bits 3-0: slot of device (0 = system board)
- 01h BYTE bits 7-4: second interrupt for this device (0 = none)
- bits 3-0: first interrupt for this device (0 = none)
- 02h BYTE bits 7-4: second arbitration level for this device
- bits 3-0: first arbitration level for this device
- 03h WORD DDT indicators (see #0407)
- 05h BYTE reserved (0)
- 06h WORD device ID (0 = none)
- 08h WORD starting address of first I/O block (0 = none)
- 0Ah WORD starting address of second I/O block (0 = none)
- OCh WORD starting address of third I/O block (0 = none)
- OEh DWORD start of first non-system memory block (0 = none)
- 12h WORD size of first non-system memory block (in kilobytes)
- 14h DWORD start of second non-system memory block (0 = none)
- 18h WORD size of second non-system memory block (in kilobytes)
- 1Ah BYTE implementation identifier of the device
- 1Bh BYTE implementation revision level of the device
- Note: I/O block addresses and non-system memory addresses are listed in
- ascending order in each DDT entry.
-
- Bitfields for DDT indicators:
- Bit(s) Description (Table 0407)
- 15 reserved (0)
- 14 second arbitration level exists
- 13 first arbitration level exists
- 12 serial interface is RS-422
- 11 not address limited
- 10 DMA channel used
- 9 second arbitration level can be shared
- 8 first arbitration level can be shared
- 7-0 reserved (0)
- --------B-15D102-----------------------------
- INT 15 - later PS/2s - RETURN DEVICE DESCRIPTOR TABLE (DDT) ENTRY BY I/O ADDRSS
- AX = D102h
- BX = entry number at which to start searching
- CX = requested I/O port address
- DX = 0000h (reserved, must be set to 0)
- ES:DI -> buffer to contain DDT entry (see #0406)
- Return: AH = return code (see #0405)
- BX = DDT entry number where I/O port was found, or total entries
- plus 1 if port was not found.
- CF set on error
- CF clear on success
- ES:DI buffer filled with DDT entry
- Desc: the DDT is searched from the specified entry for the I/O port in CX,
- and the first entry in which it is found is returned
- SeeAlso: AH=C0h,AH=C7h,AH=C9h,AX=D100h,AX=D101h,AX=D103h,AX=D104h
- --------B-15D103DX0000-----------------------
- INT 15 - later PS/2s - RETURN ENTIRE DDT
- AX = D103h
- DX = 0000h (reserved, must be set to 0)
- ES:DI -> buffer to contain DDT entry (see #0406)
- Return: AH = return code (see #0405)
- CF set on error
- CF clear on success
- ES:DI buffer filled with DDT entry
- SeeAlso: AH=C0h,AH=C7h,AH=C9h,AX=D100h,AX=D104h
- --------B-15D104-----------------------------
- INT 15 - later PS/2s - RETURN DEVICE DESCRIPTOR TABLE (DDT) ENTRY BY DEVICE ID
- AX = D104h
- BX = entry number at which to start searching
- CX = requested device ID
- DX = 0000h (reserved, must be set to 0)
- ES:DI -> buffer to contain DDT entry (see #0406)
- Return: AH = return code (see #0405)
- BX = DDT entry number where device ID was found, or total entries
- plus 1 if port was not found.
- CF set on error
- CF clear on success
- ES:DI buffer filled with DDT entry
- Desc: the DDT is searched from the specified entry for the device ID in CX,
- and the first entry in which it is found is returned.
- SeeAlso: AH=C0h,AH=C7h,AH=C9h,AX=D100h,AX=D101h,AX=D103h
- --------B-15D2-------------------------------
- INT 15 - later PS/2s - RESERVED
- AH = D2h
- ???
- Return: ???
- --------B-15D3-------------------------------
- INT 15 - later PS/2s - RESERVED
- AH = D3h
- ???
- Return: ???
- --------B-15D4-------------------------------
- INT 15 - later PS/2s - GET PHYSICAL FIXED DISK DRIVE NUMBER (SELECTABLE BOOT)
- AH = D4h
- DL = logical fixed disk drive number
- Return: AH = return code (see #0408)
- CF set on error
- CF clear on success
- AL = physical fixed disk drive number
-
- (Table 0408)
- Values for return code:
- 00h success
- 01h specified logical drive number is invalid
- 80h function not supported (on PCjr and PC)
- 86h function not supported
- --------B-15D5-------------------------------
- INT 15 - later PS/2s - RESERVED
- AH = D5h
- ???
- Return: ???
- --------B-15D600BL00-------------------------
- INT 15 - later PS/2s - READ BOOT DEVICE ID
- AX = D600h
- BL = 00h
- DX = device ID
- Return: CF clear if successful
- AH = 00h
- CF set on error
- AH = status (86h for function not supported)
- SeeAlso: AX=D600h/BL=01h,AX=D601h/BL=00h,AX=D602h
- --------B-15D600BL01-------------------------
- INT 15 - later PS/2s - WRITE BOOT DEVICE ID
- AX = D600h
- BL = 01h
- DX = device ID
- Return: CF clear on success
- AH = 00h
- CF set on error
- AH = status (86h for function not supported)
- SeeAlso: AX=D600h/BL=00h,AX=D601h/BL=01h
- --------B-15D601BL00-------------------------
- INT 15 - later PS/2s - READ BOOT DEVICE KEY
- AX = D601h
- BL = 00h
- DX = device ID
- Return: CF clear on success
- AH = 00h
- CF set on error
- AH = status (86h for function not supported)
- SeeAlso: AX=D600h/BL=00h,AX=D601h/BL=01h,AX=D602h
- --------B-15D601BL01-------------------------
- INT 15 - later PS/2s - WRITE BOOT DEVICE KEY
- AX = D601h
- BL = 01h
- DX = device ID
- Return: CF clear on success
- AH = 00h
- CF set on error
- AH = status (86h for function not supported)
- SeeAlso: AX=D600h/BL=01h,AX=D601h/BL=00h
- --------B-15D602-----------------------------
- INT 15 - later PS/2s - QUERY BOOT REFERENCE PARTITION
- AX = D602h
- Return: CF clear on success
- AH = 00h
- AL = status of reference-partition boot request
- 00h boot not requested
- 01h boot requested
- CF set on error
- AH = status (86h for function not supported)
- SeeAlso: AX=D601h/BL=00h
- --------X-15D800-----------------------------
- INT 15 - EISA SYSTEM ROM - READ SLOT CONFIGURATION INFORMATION
- AX = D800h
- CL = slot number (including embedded and virtual)
- Return: CF clear if successful
- AH = 00h
- CF set on error
- AH = error code (80h,82h,83h,86h,87h)(see #0410)
- AL = bit flags (see #0409)
- BH = major revision level of configuration utility
- BL = minor revision level of configuration utility
- CX = checksum of configuration file
- DH = number of device functions
- DL = combined function information byte
- SI:DI = 4-byte compressed ID (DI = bytes 0&1, SI = bytes 2&3)
- Note: call with AL=80h if using 32-bit CS addressing mode instead of 16-bit
- SeeAlso: AX=D801h,AX=D804h
-
- Bitfields for EISA AL bit flags:
- Bit(s) Description (Table 0409)
- 7 set if duplicate IDs
- 6 set if product ID readable
- 4,5 slot type (00=expansion, 01=embedded, 10=virtual device)
- 0-3 duplicate ID number if bit 7 set
-
- (Table 0410)
- Values for EISA error code:
- 80h invalid slot number
- 81h invalid function number
- 82h EISA CMOS corrupt
- 83h empty slot
- 84h error clearing CMOS
- 85h EISA CMOS is full
- 86h invalid BIOS-FW function call
- 87h invalid system configuration
- 88h config utility version not supported
- --------X-15D801-----------------------------
- INT 15 - EISA SYSTEM ROM - READ FUNCTION CONFIGURATION INFORMATION
- AX = D801h
- CH = function number to read
- CL = slot number (including embedded and virtual)
- DS:SI -> 320-byte buffer for standard configuration data block
- Return: CF clear if successful
- AH = 00h
- DS:SI buffer filled
- CF set on error
- AH = error code (80h-83h,86h,87h) (see #0410)
- BX destroyed
- Note: call with AL=81h if using 32-bit CS addressing mode instead of 16-bit
- --------X-15D802-----------------------------
- INT 15 - EISA SYSTEM ROM - CLEAR NONVOLATILE MEMORY (EISA CMOS)
- AX = D802h
- BH = EISA config utility major revision level
- BL = EISA config utility minor revision level
- Return: CF clear if successful
- AH = 00h
- CF set on error
- AH = error code (84h,86h,88h) (see #0410)
- Note: call with AL=82h if using 32-bit CS addressing mode instead of 16-bit
- SeeAlso: AX=D803h
- --------X-15D803-----------------------------
- INT 15 - EISA SYSTEM ROM - WRITE NONVOLATILE MEMORY
- AX = D803h
- CX = length of data structure (0000h = empty slot)
- includes two bytes for config file checksum
- DS:SI -> configuration data
- Return: CF clear if successful
- AH = 00h
- CF set on error
- AH = error code (84h-86h) (see #0410)
- Note: call with AL=83h if using 32-bit CS addressing mode instead of 16-bit
- SeeAlso: AX=D802h
- --------X-15D804-----------------------------
- INT 15 - EISA SYSTEM ROM - READ PHYSICAL SLOT
- AX = D804h
- CL = slot number (including embedded and virtual)
- Return: CF clear if successful
- AH = 00h
- CF set on error
- AH = error code (80h,83h,86h) (see #0410)
- SI:DI = 4-byte compressed ID (DI = bytes 0&1, SI = bytes 2&3)
- Note: call with AL=84h if using 32-bit CS addressing mode instead of 16-bit
- SeeAlso: AX=D800h
- --------b-15D820-----------------------------
- INT 15 - Compaq LTE Lite - GET ???
- AX = D820h
- DS:SI -> 17-byte buffer for ???
- Return: DS:SI buffer filled (first byte is length of remaining data, unless
- it is greater than 10h, in which case the second byte is 00h and no
- other data is returned)
- Note: this function is also supported by Compaq's EISA System ROM, Contura
- 486/486c/486cx and recent DESKPRO/i ROMs
- SeeAlso: AX=D821h
- --------b-15D821-----------------------------
- INT 15 - Compaq LTE Lite - SET ???
- AX = D821h
- DS:SI -> counted string (should not be more than 16 bytes)
- Return: AH = 00h
- Note: this function is also supported by Compaq's EISA System ROM, Contura
- 486/486c/486cx and recent DESKPRO/i ROMs
- SeeAlso: AX=D820h
- --------b-15D822BL00-------------------------
- INT 15 - Compaq EISA System ROM 04/08/93 - GET ???
- AX = D822h
- BL = 00h
- CX = size of buffer or 0000h to retrieve required buffer size
- DS:SI -> buffer for ??? (if CX nonzero)
- Return: CF clear if successful
- AH = 00h
- DH = 08h
- CX = required buffer size to retrieve all data (if CX=0 on entry)
- DS:SI buffer filled (if CX nonzero on entry)
- CF set on error (BL nonzero)
- AH = 86h
- --------b-15D823-----------------------------
- INT 15 - Compaq EISA System ROM 04/08/93 - ???
- AX = D823h
- BL = subfunction??? (00h or 80h)
- BH = ???
- DS:SI -> buffer for ??? (see #0411)
- Return: CF clear if successful
- AH = 00h
- DH = 08h
- DL = ???
- CF set on error
- AH = error code
- 86h BL neither 00h nor 80h
- 87h ???
-
- Format of Compaq EISA buffer:
- Offset Size Description (Table 0411)
- 00h BYTE ???
- 01h WORD ???
- 03h BYTE ???
- 04h WORD ???
- 06h WORD ???
- ???
- ----------15D824-----------------------------
- INT 15 - Compaq EISA System ROM 04/08/93 - ???
- AX = D824h
- CX = ???
- DS:SI -> ASCIZ string containing ???
- Return: CF clear if successful
- AH = 00h
- CX = ???
- CF set on error
- AH = error code
- 87h ??? failed
- 88h ???
- Note: these functions are only available if ??? from keyboard controller
- command C0h
- ----------15D825-----------------------------
- INT 15 - Compaq EISA System ROM 04/08/93 - ???
- AX = D825h
- CX = ???
- SI = ???
- DI = ???
- ???
- Return: CF clear if successful
- AH = 00h
- CX = ???
- CF set on error
- AH = error code
- 87h ??? failed
- 88h ???
- CX = ???
- Note: these functions are only available if ??? from keyboard controller
- command C0h
- ----------15D826-----------------------------
- INT 15 - Compaq EISA System ROM 04/08/93 - ???
- AX = D826h
- BX = ???
- CX = size of buffer in bytes
- DS:SI -> buffer for ???
- ???
- Return: CF clear if successful
- AH = 00h
- CX = ???
- CF set on error
- AH = error code
- 87h ??? failed
- 88h ???
- Note: these functions are only available if ??? from keyboard controller
- command C0h
- --------X-15D8-------------------------------
- INT 15 - EISA SYSTEM ROM - 32-bit CS ADDRESSING MODE CALLS
- AH = D8h
- AL = 80h to 84h
- other registers as appropriate for AL=00h to 04h
- Return: as appropriate for AL=00h to 04h
- Note: these functions are identical to AX=D800h to D804h, except that they
- should be called when using 32-bit CS addressing mode (pointers use
- ESI rather than SI as offset) instead of 16-bit addressing mode
- SeeAlso: AX=D800h,AX=D801h,AX=D802h,AX=D803h,AX=D804h
- --------b-15D8-------------------------------
- INT 15 - Compaq EISA System ROM 04/08/93 - 32-bit CS ADDRESSING MODE CALLS
- AH = D8h
- AL = A0h to A6h
- other registers as appropriate for AL=20h to 26h
- Return: as appropriate for AL=20h to 26h
- Note: these functions are identical to AX=D820h to D826h, except that they
- should be called when using 32-bit CS addressing mode
- ----------15DA-------------------------------
- INT 15 U - AMI PCI BIOS v1.00.05.AX1 - ???
- AH = DAh
- AL = function (00h-08h,12h,14h,15h,19h,88h-8Eh,92h,99h)
- other registers vary by function
- Return: CF clear if successful
- varies by function
- CF set on error
- AH = error code (86h unsupported [sub]function)
- Note: functions not listed above always return CF set and AH=86h; in the
- examined BIOS, functions 02h-04h,06h-07h,89h-8Bh, and 8Dh also
- always return CF set and AH=86h
- SeeAlso: AX=DA00h,AX=DA01h,AX=DA88h,AX=DA99h,AX=DB00h
- --------b-15DA00-----------------------------
- INT 15 U - AMI PCI BIOS - ???
- AX = DA00h
- CL = subfunction
- 00h ???
- 01h ???
- 02h get ???
- ???
- Return: CF clear if successful
- ???
- CF set on error
- AH = error code (86h unsupported subfunction)
- Note: in the v1.00.05.AX1 BIOS, subfunctions 00h and 01h always return
- failure
- SeeAlso: AX=DA01h
- --------b-15DA01-----------------------------
- INT 15 U - AMI PCI BIOS - CPU SPEED CONTROL
- AX = DA01h
- CL = subfunction (00h-02h)
- 00h set low CPU speed
- 01h set high CPU speed
- 02h get current CPU speed
- Return: CF clear if successful
- AH = current/new CPU speed (00h low, 01h high)
- AL = ??? (00h)
- CF set on error
- AH = error code (86h unsupported subfunction)
- Notes: in the v1.00.05.AX1 BIOS, subfunctions 00h and 01h are NOPs in both
- protected and V86 modes due to a test of MSW bit 0
- setting the CPU speed also generates the same audible signals generated
- when manually switching speeds with Ctrl-Alt-Gray- and Ctrl-Alt-Gray+
- BUG: the BIOS apparently intends to return CF set if ???, but fails to use
- a different exit path in that case, resulting in CF clear
- ----------15DA05-----------------------------
- INT 15 U - AMI PCI BIOS - GET ??? AND BIOS REVISION STRINGS
- AX = DA05h
- ES:SI -> 8-byte buffer for ??? and BIOS revision strings
- Return: CF clear
- ES:SI buffer filled
- AL = 00h
- CX = ??? (0000h)
- Notes: for BIOS v1.00.05.AX1, the ??? string is "IDNO" and the BIOS revision
- string is "AX1 "
- SeeAlso: AX=DA15h,AX=DB04h
- ----------15DA08-----------------------------
- INT 15 U - AMI PCI BIOS - ???
- AX = DA08h
- ???
- Return: CF clear if successful
- ???
- CF set on error
- AH = error code (86h unsupported subfunction)
- Note: in the examined v1.00.05.AX1 BIOS, this call always returns failure
- ----------15DA12-----------------------------
- INT 15 U - AMI PCI BIOS - v1.00.05.AX1 - ???
- AX = DA12h
- CL = subfunction
- 00h ???
- 01h ???
- 02h get ???
- 03h ???
- 04h ???
- ???
- Return: CF clear if successful
- ???
- CF set on error
- AH = error code (86h unsupported subfunction)
- Desc: ??? performs various manipulations on system chipset registers
- Notes: subfunctions 00h and 01h are NOPs in protected and V86 modes due to
- a test of MSW bit 0
- subfunctions 00h-02h always return success
- ----------15DA14-----------------------------
- INT 15 U - AMI PCI BIOS - GET/SET ???
- AX = DA14h
- CL = subfunction
- 00h read
- 01h write
- DH = new value for ??? (00h-02h)
- DL = index of ??? (00h-03h, but not range-checked)
- ???
- Return: CF clear if successful
- DH = current value of ??? if reading
- CF set on error
- AH = error code (86h unsupported subfunction)
- Note: the values for indexes 00h and 01h are stored in CMOS RAM location 19h,
- and the values for 02h and 03h are stored in location 36h
- BUG: the v1.00.05.AX1 BIOS range-checks DH on subfunction 00h instead of
- subfunction 01h, even though DH is never used by subfunction 00h
- ----------15DA15-----------------------------
- INT 15 U - AMI PCI BIOS - GET ??? AND BIOS REVISION STRINGS
- AX = DA15h
- ES:DI -> 8-byte buffer for ??? and BIOS revision strings
- Return: CF clear
- ES:DI buffer filled
- AL = 00h
- Note: for BIOS v1.00.05.AX1, the ??? string is "IDNO" and the BIOS revision
- string is "AX1 "
- SeeAlso: AX=DA05h,AX=DB04h
- ----------15DA19-----------------------------
- INT 15 U - AMI PCI BIOS - GET/SET ???
- AX = DA19h
- CL = subfunction
- 00h get first ???
- 01h get second ???
- 02h set first ???
- BX = ???
- DX = ???
- 03h set second ???
- BX = ???
- DX = ???
- Return: CF clear if successful
- AX = 0000h
- BX,DX = ??? (subfunctions 00h and 01h only)
- CF set on error
- AH = error code (86h unsupported subfunction)
- Note: the first ??? is stored in CMOS RAM locations 1Bh-1Eh, the second in
- locations 1Fh-22h in the v1.00.05.AX1 BIOS
- ----------15DA88-----------------------------
- INT 15 U - AMI PCI BIOS - GET EXTENDED MEMORY SIZE
- AX = DA88h
- Return: CF clear (successful)
- AX = 0000h
- CL:BX = extended memory size in KBytes
- SeeAlso: AH=88h
- ----------15DA8C-----------------------------
- INT 15 U - AMI PCI BIOS - GET BIOS AND CHIPSET??? VERSION
- AX = DA8Ch
- CL = subfunction
- 00h get BIOS version string
- ES:DI -> 12-byte buffer for version string
- 01h get chipset ???
- BL = what to retrieve (00h,01h)
- ES:DI -> 12-byte buffer for chipset info???
- Return: CF clear if successful
- ES:DI buffer filled
- CF set on error
- AH = error code (86h unsupported subfunction)
- Notes: the v1.00.05.AX1 BIOS returns "1.00.05.AX1 " as its version string
- subfunction 01h returns five bytes read from the chipset registers
- at C000h-C004h (BL=00h) or C200h-C204h (BL=01h), padded to 12 bytes
- with NULs. On my machine, the results were 86h 80h A3h 04h 46h and
- 86h 80h 84h 04h 0Fh, respectively; on another machine, the results
- were identical except that the last byte was 07h instead of 0Fh
- SeeAlso: AX=DB04h
- ----------15DA8E-----------------------------
- INT 15 U - AMI PCI BIOS - ???
- AX = DA8Eh
- ???
- Return: CF clear if successful
- ???
- CF set on error
- AH = error code (86h unsupported subfunction)
- Note: in the v1.00.05.AX1 BIOS, this call always returns failure
- ----------15DA92-----------------------------
- INT 15 U - AMI PCI BIOS - GET CPU TYPE AND SPEED
- AX = DA92h
- Return: CF clear (successful)
- AL = CPU stepping (see also #0402 at INT 15/AH=C9h)
- AH = CPU model
- BL = CPU family (05h = Pentium, etc.)
- CX = external clock speed??? in BCD
- (0040h,0050h,0060h,0066h are possible return values on my
- Pentium with the Intel "Neptune" chipset)
- EAX high word destroyed
- Note: 90 MHz and faster Pentium CPUs can be configured to run at 1.0, 1.5,
- or 2.0 times the external clock speed, i.e. a typical 90 MHz Pentium
- system will run the motherboard at 60 MHz (my 90 MHz Pentium returns
- 0060h in CX)
- SeeAlso: AH=C9h
- ----------15DA99-----------------------------
- INT 15 U - AMI PCI BIOS - GET/SET ??? FLAG
- AX = DA99h
- CL = subfunction
- 00h check if ???
- 01h set ??? flag
- 02h clear ??? flag
- Return: CF clear if successful
- AH = ??? (00h,01h)
- AL = 00h
- CF set on error
- AH = error code (86h unsupported subfunction)
- Note: the flag is stored in bit 0 of CMOS RAM location 2Ch for BIOS
- v1.00.05.AX1
- --------b-15DB00-----------------------------
- INT 15 U - AMI BIOS - Flash ROM - ???
- AX = DB00h
- DS:SI -> ???
- ES:DI -> ???
- Return: CF clear if successful
- CF set on error
- AH = status (86h if not implemented)
- Note: used by FMUP.EXE, Intel's Flash Memory Update utility
- SeeAlso: AH=DAh,AX=DB01h,AX=DB04h
- --------b-15DB01-----------------------------
- INT 15 U - AMI BIOS - Flash ROM - GET BIOS SUBSYSTEM INFORMATION
- AX = DB01h
- CL = BIOS subsystem information identifier (see #2618)
- Return: CF clear if successful
- AX = 0000h
- ES:DI -> 56-byte record describing subsystem (see #2619)
- CF set on error
- AH = status (01h,86h)
- AL = 00h
- Note: used by FMUP.EXE, Intel's Flash Memory Update utility
- SeeAlso: AX=DB00h,AX=DB02h
-
- (Table 2618)
- Values for AMI BIOS v1.00.05.AX1 subsystem identifier:
- 00h recovery code
- 01h system BIOS
- 02h PCI configuration data
- 03h logo data area
- 04h system BIOS/Language (one system)
- configuration utility (another system)
- SeeAlso: #2619
-
- Format of AMI BIOS v1.00.05.AX1 subsystem information:
- Offset Size Description (Table 2619)
- 00h BYTE subsystem identifier (see #2618)
- 01h WORD subsystem size in bytes
- 03h WORD ???
- 05h BYTE flag??? (zero/nonzero)
- 06h BYTE ???
- 07h BYTE ???
- 08h 24 BYTEs subsystem name
- 20h BYTE subsystem identifier???
- 21h BYTE flag??? (00h or FFh)
- 22h BYTE ??? (01h,03h seen)
- 23h 5 BYTEs ??? (apparently always 00h)
- 28h 16 BYTEs version string???
- --------b-15DB02-----------------------------
- INT 15 U - AMI BIOS - Flash ROM - GET SIZE OF ??? CODE
- AX = DB02h
- Return: CF clear
- AX = 0000h
- BX = size of ??? in bytes
- Note: used by FMUP.EXE, Intel's Flash Memory Update utility
- SeeAlso: AX=DB00h,AX=DB03h
- --------b-15DB03-----------------------------
- INT 15 U - AMI BIOS - Flash ROM - GET ??? CODE
- AX = DB03h
- DS:SI -> ???
- ES:DI -> buffer for ??? code
- BX = ???
- DX = ???
- Return: CF clear if successful
- AH = ???
- BX = ???
- DX = ???
- CF set on error
- AH = error code
- Notes: the entry point for the copied code (which is fully relocatable) is
- the very first byte (see #2620)
- used by FMUP.EXE, Intel's Flash Memory Update utility
- SeeAlso: AX=DB00h,AX=DB02h
-
- (Table 2620)
- Call AMI BIOS ??? code with:
- AL = function
- 00h
- 01h
- 02h perform cold reboot
- DS:SI -> ???
- ES:DI -> ???
- Return: AH = status
- 00h successful
- 01h invalid function
- 02h ???
- 03h ???
- 04h ???
- Note: DS:SI and ES:DI are ignored for function 02h
- --------b-15DB04-----------------------------
- INT 15 U - AMI BIOS - Flash ROM - GET BIOS REVISION
- AX = DB04h
- Return: CF clear
- BL:BH:DL:DH = BIOS revision string
- ('AX1 ' for v1.00.05.AX1, 'AV0M' for v1.00.03.AV0M)
- CL = BIOS major version??? (01h)
- CH = BIOS minor version??? (00h)
- AL = ??? (02h)
- Note: used by FMUP.EXE, Intel's Flash Memory Update utility
- SeeAlso: AX=DA05h,AX=DA15h,AX=DA8Ch,AX=DB00h,AX=DB03h
- --------Q-15DE00-----------------------------
- INT 15 - DESQview - GET PROGRAM NAME
- AX = DE00h
- Return: AX = offset into DESQVIEW.DVO of program most recently selected from
- the "Switch Windows" menu (see #0412)
- Note: always returns AX=0000h under DESQview/X
- SeeAlso: AX=DE07h
-
- Format of program entry in DESQVIEW.DVO:
- Offset Size Description (Table 0412)
- 00h BYTE length of name (FFh if end of file)
- 01h N BYTEs name
- 2 BYTEs keys to invoke program (second = 00h if only one key used)
- BYTE program type
- 00h normal program
- 04h divider
- 80h Delete a Program
- 81h Change a Program
- WORD ??? apparently always 0000h
- --------Q-15DE01-----------------------------
- INT 15 - DESQview - UPDATE "OPEN WINDOW" MENU
- AX = DE01h
- Return: nothing
- Notes: reads DESQVIEW.DVO, disables Open menu if file not in current directory
- NOP for DESQview/X
- --------Q-15DE02-----------------------------
- INT 15 - DESQview 1.x only - SET ??? FLAG FOR CURRENT WINDOW
- AX = DE02h
- Return: nothing
- Note: this call is a NOP in DV 2.x
- SeeAlso: AX=DE03h
- --------Q-15DE03-----------------------------
- INT 15 - DESQview 1.x only - GET ??? FOR CURRENT WINDOW
- AX = DE03h
- Return: AX = ??? for current window
- BX = ??? for current window
- Note: this call is a NOP in DV 2.x
- SeeAlso: AX=DE02h
- --------Q-15DE04-----------------------------
- INT 15 - DESQview - GET AVAILABLE COMMON MEMORY
- AX = DE04h
- Return: BX = bytes of common memory available
- CX = largest block available
- DX = total common memory in bytes
- SeeAlso: AX=DE05h,AX=DE06h
- --------Q-15DE05-----------------------------
- INT 15 - DESQview - GET AVAILABLE CONVENTIONAL MEMORY
- AX = DE05h
- Return: BX = KB of memory available
- CX = largest block available
- DX = total conventional memory in KB
- SeeAlso: AX=DE04h,AX=DE06h
- --------Q-15DE06-----------------------------
- INT 15 - DESQview - GET AVAILABLE EXPANDED MEMORY
- AX = DE06h
- Return: BX = KB of expanded memory available
- CX = largest block available
- DX = total expanded memory in KB
- SeeAlso: AX=DE04h,AX=DE05h
- --------Q-15DE07-----------------------------
- INT 15 - DESQview - "APPNUM" - GET CURRENT PROGRAM'S NUMBER
- AX = DE07h
- Return: AX = number of program as it appears on the "Switch Windows" menu
- Note: this API call may be made from a hardware interrupt handler
- SeeAlso: AX=DE00h
- --------Q-15DE08-----------------------------
- INT 15 - DESQview - GET ???
- AX = DE08h
- Return: AX = 0000h if ??? is not set to the current task
- 0001h if ??? is set to the current task
- --------Q-15DE09-----------------------------
- INT 15 - DESQview - UNIMPLEMENTED
- AX = DE09h
- Return: nothing (NOP in DV 1.x and 2.x)
- --------Q-15DE0A-----------------------------
- INT 15 - DESQview v2.00+ - "DBGPOKE" - DISPLAY CHARACTER ON STATUS LINE
- AX = DE0Ah
- BL = character
- Return: character displayed, next call will display in next position (which
- wraps back to the start of the line if off the right edge of screen)
- Notes: displays character on bottom line of *physical* screen, regardless
- of current size of window (even entirely hidden)
- does not know about graphics display modes, just pokes the characters
- into display memory
- this API call may be made from a hardware interrupt handler
- SeeAlso: AX=1003h
- --------Q-15DE0B-----------------------------
- INT 15 - DESQview v2.00+ - "APILEVEL" - DEFINE MINIMUM API LEVEL REQUIRED
- AX = DE0Bh
- BL = API level minor version number
- BH = API level major version number
- Return: AX = maximum API level (AH = major, AL = minor)
- Notes: if the requested API level is greater than the version of DESQview, a
- "You need a newer version" error window is popped up
- the API level defaults to 1.00, and is inherited by child tasks
- --------Q-15DE0C-----------------------------
- INT 15 - DESQview v2.00+ - "GETMEM" - ALLOCATE "SYSTEM" MEMORY
- AX = DE0Ch
- BX = number of bytes
- Return: ES:DI -> allocated block or 0000h:0000h (DV 2.26+)
- Note: use SETERROR (AX=DE15h) to avoid a user prompt if there is insufficient
- system memory
- SeeAlso: AX=1001h,AX=102Eh,AX=DE0Dh,AX=DE15h,AX=DE19h
- --------Q-15DE0D-----------------------------
- INT 15 - DESQview v2.00+ - "PUTMEM" - DEALLOCATE "SYSTEM" MEMORY
- AX = DE0Dh
- ES:DI -> previously allocated block
- Return: nothing
- SeeAlso: AX=1002h,AX=DE0Ch
- --------Q-15DE0E-----------------------------
- INT 15 - DESQview v2.00+ - "FINDMAIL" - FIND MAILBOX BY NAME
- AX = DE0Eh
- ES:DI -> name to find (see #0413)
- CX = length of name
- Return: BX = 0000h not found
- 0001h found
- DS:SI = object handle
- SeeAlso: AH=12h/BH=11h,AH=12h/BX=1200h"GETNAME"
-
- (Table 0413)
- Values for special DESQview mailbox names:
- "COM1" ... "COM4" RBcomm using COM1 ... COM4
- "DESQview/X Help Engine"
- "DESQview/X Network Server" Network Manager
- "DESQview X Server0" X-Windows server
- "DESQview X Server7" X-Windows printing service
- "INBOX" DESQview/X LPD requests
- "OUTBOX" DESQview/X LPD responses
- "WAITBOX" semaphore to synchronize DESQview/X LPD communications
- "_DVNM_" DV/X v1.10 network manager
- --------Q-15DE0F-----------------------------
- INT 15 - DESQview v2.00+ - ENABLE DESQview EXTENSIONS
- AX = DE0Fh
- Return: AX and BX destroyed (seems to be bug, weren't saved&restored)
- Notes: sends a manager stream with opcodes AEh, BDh, and BFh to task's window
- enables an additional mouse mode
- --------Q-15DE10-----------------------------
- INT 15 - DESQview v2.00+ - "PUSHKEY" - PUT KEY INTO KEYBOARD INPUT STREAM
- AX = DE10h
- BH = scan code
- BL = character
- Return: nothing
- Notes: a later read will get the keystroke as if it had been typed by the user
- multiple pushes are read last-in first-out
- if a script exists for the pushed key in the current application, the
- script will be executed
- early copies of DV 2.00 destroy AX, BX, ES, and DI
- SeeAlso: INT 16/AH=05h
- --------Q-15DE11BL00-------------------------
- INT 15 - DESQview v2.00+ - "JUSTIFY" - EN/DISABLE AUTOM. WINDOW JUSTIFICATION
- AX = DE11h
- BL = 00h viewport will not move automatically
- nonzero viewport will move to keep cursor visible (default)
- Return: nothing
- --------Q-15DE12BX0000-----------------------
- INT 15 - DESQview v2.01+ - "CSTYLE" - SET "C"-COMPATIBLE CONTROL CHAR INTERPRET
- AX = DE12h
- BX = 0000h select normal style (linefeed only moves down)
- nonzero select C style (linefeed moves to start of next line)
- Return: nothing
- Note: set on a per-task basis, and inherited from the parent task
- --------Q-15DE13-----------------------------
- INT 15 - DESQview v2.20+ - "GETCRIT" - GET CRITICAL NESTING COUNT
- AX = DE13h
- Return: BX = number of calls to BEGINC or ENTERC
- (see INT 15/AX=101Bh,INT 15/AX=DE1Ch) without matching ENDC
- (see INT 15/AX=101Ch)
- Note: this API call may be made from within a hardware interrupt handler
- SeeAlso: AX=101Bh,AX=101Ch,AX=DE1Bh,AX=DE1Ch
- --------Q-15DE14-----------------------------
- INT 15 - DESQview v2.20+ - GET OBJECT TYPE
- AX = DE14h
- ES:DI -> object
- Return: BL = 00h not an object
- 08h window or task
- 09h mailbox
- 0Ah keyboard
- 0Bh timer
- 0Ch objectq
- 0Fh pointer
- 10h panel
- SeeAlso: AX=1016h
- --------Q-15DE15-----------------------------
- INT 15 - DESQview v2.20+ - SET ERROR HANDLING
- AX = DE15h
- BL = error handling mode
- 00h post system error on all error conditions
- 01h return carry flag set on calls to ADDTO, SUBFROM, and WRITE
- messages sent to mailboxes which fail due to lack of system
- or common memory
- 02h (v2.26+) same as 01h, but also return null pointer for GETMEM
- calls which fail due to lack of system memory
- Return: nothing
- SeeAlso: AX=DE0Ch,AX=DE16h
- --------Q-15DE16-----------------------------
- INT 15 - DESQview v2.20+ - GET ERROR HANDLING
- AX = DE16h
- Return: BL = current mode
- 00h always post system error
- 01h return carry flag set on failed mailbox writes
- 02h return CF set on failed mailbox writes and NULL on failed
- GETMEM calls
- SeeAlso: AX=DE15h
- --------Q-15DE17-----------------------------
- INT 15 - DESQview v2.20-2.25 - reserved
- AX = DE17h
- Return: pops up "Programming error" window
- Note: AX = 1117h is NOT identical to this call under DESQview 2.20 thru 2.25
- SeeAlso: AX=1117h
- --------Q-15DE17-----------------------------
- INT 15 - DESQview v2.26+ - "ASSERTMAP" - GET/SET MAPPING CONTEXT
- AX = DE17h
- BX = function
- 0000h get current mapping context without setting
- nonzero set new mapping context to BX
- Return: BX = mapping context in effect before call
- Notes: mapping contexts determine conventional-memory addressability; setting
- a mapping context ensures that the associated program and data areas
- are in memory for access. Usable by drivers, TSRs and shared
- programs.
- caller need not be running under DESQview
- this API call may be made from a hardware interrupt handler
- SeeAlso: AX=1016h,AX=1117h,AX=DE21h,INT 2F/AX=1685h
- --------Q-15DE18-----------------------------
- INT 15 - DESQview v2.20+ - internal - ???
- AX = DE18h
- BP = function number
- high byte must be 10h
- low byte is function
- 00h set ???
- BL = ??? (00h-10h, video mode???)
- BH = value to store
- 03h set ???
- BL = ??? (stored in driver)
- 0Ah get ???
- ES:DI -> 18-byte buffer to hold ???
- Note: calls video driver (NOP for Hercules driver,probably CGA and MCGA also)
- --------Q-15DE19-----------------------------
- INT 15 - DESQview v2.23+ - "GETCOMMON" - ALLOCATE "COMMON" MEMORY
- AX = DE19h
- BX = number of bytes to allocate
- Return: AX = 0000h successful
- ES:DI -> allocated block
- nonzero insufficient memory
- Note: this API call may be made from within a hardware interrupt handler
- SeeAlso: AX=DE0Ch,AX=DE15h,AX=DE1Ah
- --------Q-15DE1A-----------------------------
- INT 15 - DESQview v2.23+ - "PUTCOMMON" - DEALLOCATE "COMMON" MEMORY
- AX = DE1Ah
- ES:DI -> previously allocated block
- Return: AX = 0000h (successful)
- Note: this function may be called from within a hardware interrupt handler
- SeeAlso: AX=DE0Dh,AX=DE19h
- --------Q-15DE1B-----------------------------
- INT 15 - DESQview v2.23+ internal - DECREMENT CRITICAL NESTING COUNT
- AX = DE1Bh
- Return: nothing
- SeeAlso: AX=101Ch,AX=DE13h,AX=DE1Ch
- --------Q-15DE1C-----------------------------
- INT 15 - DESQview v2.23+ - "ENTERC" - INCREMENT CRITICAL NESTING COUNT
- AX = DE1Ch
- Return: nothing
- Notes: similar to AX=101Bh, but begins the critical region without ensuring
- that DOS is free
- the official documentation states that this call should be paired with
- "ENDC" (AX=101Ch); no mention is made of AX=DE1Bh
- this API call may be made from within a hardware interrupt handler
- SeeAlso: AX=101Bh,AX=101Ch,AX=DE13h,AX=DE1Bh
- --------Q-15DE1D-----------------------------
- INT 15 - DESQview v2.23+ - "PUTKEY" - FAKE USER KEYSTROKES
- AX = DE1Dh
- DX = segment of handle for task to receive keystroke
- BL = character
- BH = scan code
- Return: AX = 0000h if successful
- nonzero if receiver's keyboard buffer was full
- Notes: the key is treated as though the user had pressed it, ignoring any
- script which may be bound to the key, and using the current field
- table if the keyboard object is in field processing mode
- multiple PUTKEYs are seen in the order in which they are executed
- SeeAlso: AX=DE10h
- --------Q-15DE1E-----------------------------
- INT 15 - DESQview v2.23+ - "SCRNINFO" - GET TRUE VIDEO PARAMETERS
- AX = DE1Eh
- Return: CL = actual number of rows on screen
- CH = actual number of columns on screen
- BL = actual video mode (may differ from INT 10/AH=0Fh return) (v2.26+)
- Note: this API call may be made from a hardware interrupt handler
- SeeAlso: INT 10/AH=0Fh
- --------Q-15DE1F-----------------------------
- INT 15 - DESQview v2.23+ - "DOSUSER" - GET HANDLE OF TASK CURRENTLY USING DOS
- AX = DE1Fh
- Return: BX = segment of task handle or 0000h if no tasks are using DOS
- Note: this API call may be made from within a hardware interrupt handler
- SeeAlso: AX=DE13h,INT 21/AH=34h
- --------Q-15DE20-----------------------------
- INT 15 - DESQview v2.26+ - "DISPATCHINT" - INTERRUPT ANOTHER TASK
- AX = DE20h
- BX = segment of handle of task to interupt
- DX:CX -> FAR interrupt routine
- BP,SI,DI,DS,ES as required by interrupt routine
- Return: nothing
- Notes: unlike "PGMINT" (AX=1021h), DISPATCHINT may be applied to the task
- making the DISPATCHINT call
- multiple "DISPATCHINT" calls are processed in the order in which they
- were executed
- the FAR routine is entered with the current ES, DS, SI, DI, and BP
- values, using the task's internal stack (see AX=101Ah); only SS:SP
- needs to be preserved
- this API call may be made from within a hardware interrupt handler
- SeeAlso: AX=1021h,AX=DE2Ah
- --------Q-15DE21-----------------------------
- INT 15 - DESQview v2.26+ - "ASSERTVIR" - CONTROL 386 SCREEN VIRTUALIZATION
- AX = DE21h
- BX = new state
- 0000h turn off
- nonzero turn on
- Return: BX = old state of virtualization
- Notes: this API call may be made from within a hardware interrupt handler
- under DV 2.40 and 2.42, this call appears to have no effect and always
- returns a nonzero value in BX which appears to be the offset within
- the DV common memory segment of the caller's task object; it may
- only have an effect within a hardware interrupt handler
- SeeAlso: AX=1117h,AX=DE17h
- --------Q-15DE22-----------------------------
- INT 15 - DESQview v2.26+ - "PROCESSMEM" - GET TASK MEMORY STATUS
- AX = DE22h
- DX = segment of task handle
- Return: DX = total amount of memory in paragraphs
- BX = amount of system memory in paragraphs
- CX = largest block of system memory available in paragraphs
- AX = memory flags (see #0414)
- Notes: if the task handle is a child task, the returned values will be for the
- process containing the task, rather than the task itself
- if the process's system memory is swapped out, BX,CX,DX remain
- unchanged, because the memory usage cannot be determined
- SeeAlso: AX=DE04h,AX=DE05h,AX=DE06h
-
- Bitfields for DESQview process memory flags:
- Bit(s) Description (Table 0414)
- 0 system memory resides in shared memory
- 1 process's memory is swapped out
- 2 process's system memory is swapped out
- --------Q-15DE23-----------------------------
- INT 15 U - DESQview v2.31+ - ???
- AX = DE23h
- BX = ??? IRQ number on first PIC?
- CX = ??? IRQ number on second PIC?
- Return: ???
- Note: called by QEMM 6.00+
- --------Q-15DE24-----------------------------
- INT 15 - DESQview v2.40+ - "XNEWPROC" - START NEW APPLICATION
- AX = DE24h
- BX = length of .DVP data
- CX = length of ??? string
- DS:SI -> ??? string
- ES:DI -> .DVP data (see #0317 at AX=102Ch)
- Return: BX = segment of task handle??? or 0000h on error
- Note: this call is similar to AX=102Ch except that it can interpret the
- extended DVP data
- SeeAlso: AX=102Ch
- --------Q-15DE25-----------------------------
- INT 15 - DESQview v2.40+ - "GETDVPATH" - GET DESQview DIRECTORY
- AX = DE25h
- ES:DI -> 67-byte buffer for ASCIZ directory name
- Return: ES:DI buffer filled with directory from which DESQview was started
- BUG: DV 2.42 does not place a terminating NUL at the end of the directory
- name, so if the buffer is not cleared to zeros before the call,
- there is no way to tell where the directory name ends. This bug
- has been fixed in DV 2.52 (DV/X 1.02)
- SeeAlso: AX=DE2Eh,INT 21/AH=47h
- --------Q-15DE26-----------------------------
- INT 15 - DESQview v2.40+ - "GETFOREGROUND" - GET KEYBOARD FOCUS
- AX = DE26h
- Return: BX = segment of handle for task with keyboard focus
- Note: under DESQview/X, the X server always has the keyboard focus unless a
- "direct" window is active
- SeeAlso: AX=DE2Fh,INT 2F/AX=DE0Ah
- --------Q-15DE27-----------------------------
- INT 15 - DESQview v2.50+ - "ADDINSTANCEDATA" - ADD PER-TASK SAVE/RESTORE AREA
- AX = DE27h
- BX = type
- 0000h process
- 0001h task
- ES:DI -> list of Instance Item Structures (see #0415)
- Return: CF clear if successful
- AX = ???
- BX = ???
- CF set on error
- AX = error code???
- 0004h invalid BX value
- Note: DESQview 2.50-2.52 are distributed as part of DESQview/X v1.0x.
- SeeAlso: INT 2F/AX=DE08h,INT 2F/AX=DE09h
-
- Format of DESQview Instance Item Structure [one element of list]:
- Offset Size Description (Table 0415)
- 00h WORD length of data area DESQview should save and restore on context
- switches (0000h = end of list)
- 02h DWORD pointer to area to be saved/restored
- --------Q-15DE28-----------------------------
- INT 15 U - DESQview v2.50+ - ???
- AX = DE28h
- BX = segment of ??? or 0000h for default
- ???
- Return: ???
- Note: DESQview 2.50-2.52 are distributed as part of DESQview/X v1.0x.
- SeeAlso: AX=DE2Ah
- --------Q-15DE29BX0000-----------------------
- INT 15 U - DESQview/X - ???
- AX = DE29h
- BX = 0000h
- ???
- Return: CF clear if successful
- ???
- CF set on error
- Notes: DESQview 2.50-2.52 are distributed as part of DESQview/X v1.0x.
- under DESQview 2.60, this function and all other subfunctions of
- AX=DE29h always return CF set, as they are unique to DESQview/X
- --------Q-15DE29BX0001-----------------------
- INT 15 U - DESQview/X - ???
- AX = DE29h
- BX = 0001h
- DX = segment of window handle
- Return: CF clear if successful
- AX = ???
- DX = ???
- CF set on error
- Note: DESQview 2.50-2.52 are distributed as part of DESQview/X v1.0x.
- --------Q-15DE29BX0002-----------------------
- INT 15 U - DESQview/X - ???
- AX = DE29h
- BX = 0002h
- DX = segment of window handle
- Return: CF clear if successful
- AX = ???
- DX = ???
- CF set on error
- Note: DESQview 2.50-2.52 are distributed as part of DESQview/X v1.0x.
- --------Q-15DE29BX0003-----------------------
- INT 15 U - DESQview/X - ???
- AX = DE29h
- BX = 0003h
- DX = segment of window handle
- Return: CF clear if successful
- ???
- CF set on error
- Note: DESQview 2.50-2.52 are distributed as part of DESQview/X v1.0x.
- --------Q-15DE29BX0004-----------------------
- INT 15 U - DESQview/X - GET DISPLAY NAME
- AX = DE29h
- BX = 0004h
- CX = size of buffer in bytes
- DX = segment of window handle
- ES:DI -> buffer for display name
- Return: CF clear if successful
- buffer filled with ASCIZ display name (truncated if necessary) or
- null string if no display
- CF set on error
- Notes: DESQview 2.50-2.52 are distributed as part of DESQview/X v1.0x.
- the name ":0" refers to the local display
- --------Q-15DE29BX0005-----------------------
- INT 15 U - DESQview/X - ???
- AX = DE29h
- BX = 0005h
- ???
- Return: CF clear if successful
- ???
- CF set on error
- Note: under DESQview 2.60, this function and all other subfunctions of
- AX=DE29h always return CF set, as they are unique to DESQview/X
- --------Q-15DE2A-----------------------------
- INT 15 - DESQview v2.50+ - "DISPATCHINTAFTERDOS" - INTERRUPT ANOTHER TASK
- AX = DE2Ah
- BX = segment of handle for task to interrupt or 0000h for caller
- DX:CX -> interrupt routine
- BP,SI,DI,DS,ES as required by interrupt routine
- Return: nothing
- Notes: DESQview 2.50-2.52 are distributed as part of DESQview/X v1.0x.
- this call is the same as AX=DE20h except that it will delay
- interrupting the specified task until after it has exited DOS
- SeeAlso: AX=1021h,AX=DE20h
- --------Q-15DE2B-----------------------------
- INT 15 - DESQview v2.50+ - "OBJNEXT" - TRAVERSE OBJECT LIST
- AX = DE2Bh
- ES:DI -> starting object
- 0000h:0000h for first object in list???
- Return: AX = status
- 0000h successful
- ES:DI -> next object of same type (window/non-window)
- 0001h failed (ES:DI was not a valid handle)
- Notes: DESQview 2.50-2.52 are distributed as part of DESQview/X v1.0x.
- there are two separate lists, one for window/task objects and one
- for all other objects
- SeeAlso: AX=1016h,AX=DE2Ah,AX=DE2Ch
- --------Q-15DE2C-----------------------------
- INT 15 - DESQview v2.50+ - "WININFO" - GET WINDOW INFORMATION
- AX = DE2Ch
- DX = window information format version (0100h for DESQview 2.5x)
- BX = segment of window handle or 0000h for default
- ES:DI -> buffer for window information (see #0416)
- Return: AX = status
- 0000h successful
- Note: DESQview 2.50-2.52 are distributed as part of DESQview/X v1.0x.
- SeeAlso: AX=1000h,AX=1016h,AX=DE01h,AX=DE2Bh
-
- Format of DESQview window information:
- Offset Size Description (Table 0416)
- 00h BYTE task flag: 00h window, 01h task
- 01h BYTE process number if owner task
- 00h if non-owner task
- 02h WORD segment of owner's handle, 0000h if orphaned
- 04h WORD mapping context (see #0306 at AX=1016h)
- 06h BYTE task status (see #0417)
- 07h BYTE unused
- 08h WORD status bits (see #0418)
- 0Ah BYTE 01h if foreground-only window
-
- (Table 0417)
- Values for DESQview task status:
- 00h "Waiting" waiting for input
- 01h "Idle" keyboard poll limit reached
- 03h same as 01h
- 04h "Pausing" INT 15/AX=1000h pause called
- 04h DV/X direct: user did something to allow task switch
- 05h "ModeChg" video mode about to be changed
- 06h "ModeNtf" notify that video mode changed
- 07h "MoniCh" requested change to other monitor
- 08h "StartPgm" control relinquished to start new process
- 09h "MgrCan" made window manager CANCEL command
- 0Ah "Slicing" time slice expired
- 0Bh "Exit DOS" notify on DOS calls
- 0Ch "Enter DOS" process is re-entering DOS
- 0Dh "Terminate" INT 21/AH=4Ch or task freed
- 0Eh "BrkNxt" Control-Break pressed
- 0Fh "MgrCol" keyboard focus taken away
- 10h "PgmInt" interrupted by API call from another task
- 11h "BldOpen" call to INT 15/AX=DE01h
-
- Bitfields for DESQview task status bits:
- Bit(s) Description (Table 0418)
- 6 task is freeing another task
- 5 process is being created
- 4 user suspended process
- 3 process suspended itself
- 2 process is resized direct window (suspended)
- 1 process swapped out
- 0 DESQview process
- --------Q-15DE2D-----------------------------
- INT 15 U - DESQview v2.50+ - GET/SET SOCKET HANDLER
- AX = DE2Dh
- CX = direction
- FFFFh set socket handler
- DX:BX -> FAR function for socket interface
- must be of the format described under INT 63"DESQview"
- at #2121
- other get socket handler
- Return: DX:BX -> socket handler (see #2121)
- Notes: DESQview 2.50-2.52 are distributed as part of DESQview/X v1.0x.
- the "set" subfunction is normally called only by SOCKET.DVR
- SeeAlso: AX=DE2Eh,INT 63"DESQview",#2121
- --------Q-15DE2E-----------------------------
- INT 15 U - DESQview v2.50+ - SOCKET API
- AX = DE2Eh
- DX:BX -> socket record (see #0420)
- 0000h:0000h to create a new socket record
- Return: CX = size of socket record in bytes
- DX:BX -> socket record which was used
- Notes: DESQview 2.50-2.52 are distributed as part of DESQview/X v1.0x.
- socket records are allocated from common memory
- for Unix compatibility, each socket and connection on a socket is
- allocated a DOS file handle (referencing an SFT for NUL) which is
- used on various calls to specify which of possibly multiple
- connections is to be operated upon
- SeeAlso: AX=DE2Dh,INT 61/AX=0001h/SF=0001h"VINES",INT 63"DESQview"
-
- (Table 0419)
- Values for DESQview/X socket API function number:
- 0000h initialize socket???
- 0001h "gethostname"
- 0002h "ioctl" check for input
- 0003h "sleep" delay for specified period
- 0004h "htons" convert word to network (big-endian) byte order
- 0005h "select"
- 0006h "bsd_close"/"so_close" close socket
- 0007h NOP
- 0008h "connect" initiate connection on socket
- 0009h "recv"/"recvfrom" read from socket
- 000Ah "socket"
- 000Bh ???
- 000Ch "gethostbyname"
- 000Dh "send"/"sendto" write to socket
- 000Eh ??? (does something to all connections for process)
- 000Fh "getpid" get process identifier
- 0010h "gettimeofday"
- 0011h "bind" assign name to socket
- 0012h "listen" listen for connections on socket
- 0013h "accept" accept connection on socket
- 0014h connect to X server
- 0015h "gethostbyaddr" get host information for an address
- 0016h "getprotobyname"
- 0017h "getprotobynumber"
- 0018h "getservbyname"
- 0019h "getservbyport"
- 001Ah "getsockname" determine name bound to socket
- 001Bh "getpeername" get name of connected peer
- 001Ch "getsockopt"/"setsockopt"
- 001Dh "so_exit" close all sockets for calling process
- 001Eh "issock" determine whether file handle references socket
- 001Fh "so_attach" reattach previously detached socket
- 0020h "so_detach" temporarily detach socket
- 0021h "dvpath" get DESQview directory (see also AX=DE24h)
- 0022h "NewProc" start new application (see also AX=102Ch)
- 0023h "so_linkup"
- 0024h "CanonicalPath" canonicalize filename (see also INT 21/AH=60h)
- 0025h indirect INT 15h call
- 0026h Network Manager interface
- 0027h "so_unlink" close connection from "so_linkup"
- 0028h "raisepriority"
- 0029h "lowerpriority"
- 002Ah "so_private" ???
- FFFFh "NetExit" (appears to be a NOP)
-
- Format of DESQview/X socket record:
- Offset Size Description (Table 0420)
- 00h WORD signature F0ADh
- 02h WORD function number (see #0419)
- 04h WORD returned error code (see #0440)
- 06h WORD maximum message size??? (usually 0400h)
- 08h WORD PSP segment to use or 0000h if socket not valid
- 0Ah WORD scratch space (JFT size)
- 0Ch DWORD scratch space (JFT address)
- 10h DWORD mailbox handle (initialized by function 0000h)
- 14h DWORD timer object handle (initialized by function 0000h)
- ---function 0000h---
- 18h WORD (ret) ???
- ---function 0001h---
- 18h WORD (ret) status???
- 1Ah 128 BYTEs (ret) ASCIZ hostname (empty string if not on network)
- 9Ah WORD maximum length of hostname to return
- ---function 0002h---
- 18h WORD (ret) status
- 1Ah WORD socket's file handle
- 1Ch WORD IOCTL function
- 05h "FIONREAD" determine available input
- 06h "FIONBIO" set blocking state of socket
- 1Eh WORD (return, subfn 05h) number of bytes available for reading
- (call, subfn 06h) 0000h blocking, nonzero nonblocking
- ---function 0003h---
- 18h 2 BYTEs unused
- 1Ah WORD delay time in seconds
- ---function 0004h---
- 18h WORD (ret) result in network (big-endian) byte order
- 1Ah WORD value to convert to network byte order
- ---function 0005h---
- 18h WORD (ret) number of handles meeting the specified conditions???
- 1Ah WORD number of file handles in each bitset
- 1Ch DWORD bitset of socket handles to check for readability
- 20h DWORD bitset of socket handles to check for writability
- 24h DWORD bitset of socket handles to check for errors
- 28h WORD timeout in ??? or 0000h to block until some socket ready
- 2Ah DWORD ???
- 2Eh DWORD ???
- ---function 0006h---
- 18h WORD (ret) status: 0000h if successful, FFFFh on error
- 1Ah WORD socket's file handle
- ---function 0008h---
- 18h WORD (ret) status: 0000h if successful, FFFFh on error
- 1Ah WORD socket's file handle
- 1Ch WORD 0001h if socket name specified, 0000h if not
- 1Eh WORD length of socket name
- 20h N BYTEs name of socket to which to connect
- ---function 0009h---
- 18h WORD (ret) number of bytes actually read, 0000h if connection
- closed, or FFFFh on error
- 1Ah WORD socket's file handle
- 1Ch WORD number of bytes to read
- 1Eh WORD flags
- 20h WORD 0000h if no source address desired
- 0001h if source address is to be stored (datagram sockets)
- 22h WORD length of source address
- 24h 110 BYTEs source address
- 92h 1K BYTEs buffer for data to be read
- ---function 000Ah---
- 18h WORD (ret) socket's file handle or FFFFh on error
- 1Ah WORD address family (0001h,0002h)
- 1Ch WORD socket type
- 1Eh WORD protocol
- ---function 000Bh---
- 18h WORD (ret) 0001h if ??? or FFFFh on error
- 1Ah WORD socket's file handle
- 1Eh WORD (call) ???
- ---function 000Ch---
- 18h 128 BYTEs ASCIZ hostname (special case if empty string or "unix")
- 98h ??? (ret) packed 'hostent' structure
- A2h ??? (ret) ???
- ---function 000Dh---
- 18h WORD (ret) number of bytes actually written or FFFFh on error
- 1Ah WORD socket's file handle
- 1Ch WORD number of bytes to write
- 1Eh WORD number of bytes to follow in subsequent writes???
- 20h WORD flags
- 22h WORD 0000h if no destination specified, 0001h if destination present
- 24h WORD 0001h if broadcast message???, 0000h if not
- (ignored if no destination specified)
- 26h WORD length of destination address
- 28h 110 BYTEs destination address
- 96h 1K BYTEs buffer containing data to be written
- ---function 000Eh---
- no additional fields
- ---function 000Fh---
- 18h DWORD (ret) DESQview task handle of calling process
- ---function 0010h---
- 18h DWORD (ret) current time
- 1Ch DWORD (ret) ???
- ---function 0011h---
- 18h WORD (ret) status: 0000h if successful, FFFFh on error
- 1Ah WORD socket's file handle
- 1Ch WORD length of name
- 1Eh N BYTEs buffer for socket name
- ---function 0012h---
- 18h WORD (ret) status: 0000h if successful, FFFFh on error
- 1Ah WORD socket's file handle
- 1Ch WORD maximum backlog of pending connections allowed on socket
- ---function 0013h---
- 18h WORD (ret) file handle for new connection or FFFFh on error
- 1Ah WORD listen()ing socket's file handle
- 1Ch WORD (call) length of buffer for connecting entity's address
- (ret) actual length of address
- 1Eh N BYTEs buffer for connecting entity's address (110 bytes???)
- ---function 0014h---
- 18h WORD (ret) socket's file handle or FFFFh on error
- 1Ah 4 BYTEs (ret) ???
- 1Eh WORD (ret) ???
- 20h WORD (ret) ???
- 22h 256 BYTEs ASCIZ X display name
- 122h ???
- ---function 0015h---
- 18h WORD (call) type of address??? (test for 0001h seen)
- 1Ah WORD (call) length of buffer for host address
- 1Ch 110 BYTEs buffer containing ASCIZ host address
- 8Ah WORD (ret) offset of official host name
- 8Ch WORD (ret) offset of alias list???
- 8Eh WORD (ret) address type???
- 90h WORD (ret) length of an address in bytes???
- 92h WORD (ret) offset of address???
- 9Ah N BYTEs (ret) buffer for hostname, alias list, and host address
- ---function 0016h---
- 18h ??? buffer for ASCIZ protocol name
- 98h ???
- ---function 0017h---
- 18h WORD (call) protocol number
- 1Ah WORD (ret) ??? or 0001h
- ---function 0018h---
- 18h 128 BYTEs buffer containing ASCIZ ???
- 98h 128 BYTEs buffer containing ASCIZ ???
- 118h WORD (ret) ???
- ---function 0019h---
- 18h WORD port number
- 1Ah 128 BYTEs (call) ASCIZ host name
- (ret) packed servent strctures???
- 9Ah WORD (ret) ???
- ---function 001Ah---
- 18h WORD (ret) 0000h if successful, FFFFh on error
- 1Ah WORD socket's file handle
- 1Ch WORD (call) length of buffer for socket name
- (ret) actual length of socket name
- 1Eh N BYTEs buffer for socket name
- ---function 001Bh---
- 18h WORD (ret) status: 0000h if successful, FFFFh on error
- 1Ah WORD socket's file handle
- 1Ch WORD (call) size of buffer for name
- (ret) actual size of name
- 1Eh N BYTEs buffer for peer's name
- ---function 001Ch---
- 18h WORD (ret) status: 0000h if successful, FFFFh on error
- 1Ah WORD direction: 0000h to get, 0001h to set
- 1Ch WORD socket's file handle
- 1Eh WORD option level
- 20h WORD option name
- 22h WORD (call) length of buffer for option value
- (ret) actual length of option value
- 24h N BYTEs buffer for option value
- ---function 001Dh---
- no additional fields
- ---function 001Eh---
- 18h WORD (ret) status: 0000h ??? or 0001h ???
- 1Ah WORD file handle which may or may not be a socket
- ---function 001Fh---
- 18h WORD (ret) file handle or FFFFh on error
- 1Ah DWORD (call) pointer to Socket Context Record (see #0441) of a
- previously detached socket
- ---function 0020h---
- 18h WORD (ret) status: 0000h if successful or FFFFh on error
- 1Ah WORD socket's file handle
- 1Ch DWORD (ret) pointer to Socket Context Record (see #0441) for
- the file handle
- ---function 0021h---
- 18h 64 BYTEs buffer for DESQview startup directory (see AX=DE25h)
- ---function 0022h---
- 18h DWORD (ret) task handle of new application
- 1Ch WORD size of .DVP data
- 1Eh 129 BYTEs ASCIZ ???
- 9Fh N BYTEs .DVP data (see #0317 at AX=102Ch)
- ---function 0023h---
- 18h WORD (ret) ??? or FFFFh on error
- 1Ah WORD socket's file handle???
- ---function 0024h---
- 18h WORD (ret) DOS error code (see #0885 at INT 21/AH=59h)
- 0000h if successful
- 1Ah 129 BYTEs ASCIZ filename/pathname
- 11Bh 129 BYTEs ASCIZ canonicalized filename/pathname (see INT 21/AH=60h)
- ---function 0025h---
- 18h WORD value of AX
- 1Ah WORD value of BX
- 1Ch WORD (call) value of CX for call if AH value other than 12h
- (call) number of stack parameters if AH value is 12h
- (ret) returned CX for calls other than INT 15/AH=12h
- 1Eh WORD value of DX
- 20h WORD value of DI
- 22h WORD value of SI
- 24h WORD value of DS
- 26h WORD value of ES
- 28h WORD (ret) value of FLAGS after call
- 2Ah N DWORDs (call) stack parameters for INT 15/AH=12h call
- (ret) stack results from INT 15/AH=12h call
- ---function 0026h---
- 18h WORD (call) Network Manager subfunction (see #0421)
- (ret) status??? (0000h on error)
- 1Ah WORD (call) size of parameter data
- (ret) size of returned data
- 1Ch N BYTEs (call) parameter data required by call (see #0422,#0423,#0439)
- (ret) result data (see #0432,#0433,#0438)
- ---function 0027h---
- 18h WORD (ret) status: 0000h if successful, FFFFh on error
- 1Ah WORD socket's file handle
- ---functions 0028h,0029h---
- 18h WORD (call) file handle for which to set priority low/high
- FFFFh to change calling task's priority
- ---function 002Ah---
- no additional fields
-
- (Table 0421)
- Values for DESQview/X Network Manager subfunction:
- 0004h "so_exit"???
- 0005h "gethostbyname"
- 0006h "gethostname"
- 0009h "socket"
- 000Dh "gethostbyaddr"
- 000Fh "getprotobyname"
- 0010h get protocol name for protocol number
- 0011h "getservbyname"
- 0012h "getservbyport" (see #0425)
- 0013h "getsockname"??? (see #0426)
- 0016h "shutdown" (see #0427)
- 0017h kill Network Manager
- 0018h "getpeername"??? (see #0428)
- 0019h ??? (called by socket function 0000h) (see #0429)
- 001Ah ??? (see #0430)
- 001Bh "so_linkup" (see #0431)
- 001Dh "getnetstatus" get network services (see #0432)
- 001Fh "getpwuid"
- 0020h "getpwnam"
- 0021h "getpwvar"
- 0022h "crypt"
- 0023h "so_unlink"
- 0024h "getlogin" (see #0433)
- 0028h "sethostent"
- 0029h "gethostent"
- 002Ah "soaddhost"
- 002Bh "soupdatehost"
- 002Ch "sodeletehost"
- 002Dh "setservent"
- 002Eh "getservent"
- 002Fh "setpwent"
- 0030h "getpwent" (see #0434)
- 0031h "sethostpath" (see #0435)
- 0032h "endservent"
- 0033h "endhostent"
- 0034h "getnettype" get IP network number (see #0436)
- 0035h ??? (pops up Network Manager window)
- 0037h "getnettimeout" (see #0437)
- 0038h get machine name and IP address (see #0438)
- 0039h "getuid" (see #0439)
- ---DV/X v2.0+ ---
- 0041h "deletepwnam"
- 0045h "renamepw"
-
- Format of Function 0026h/Subfunction 000Fh data:
- Offset Size Description (Table 0422)
- 00h 8 BYTEs (ret) ???
-
- Format of Function 0026h/Subfunction 0010h data:
- Offset Size Description (Table 0423)
- 00h 2 BYTEs (ret) ???
- 02h WORD (ret) protocol number
- 04h WORD (call) protocol number for which to get name
- 06h WORD (ret) ???
- 08h var (ret) ASCIZ protocol name
- N var (ret) ASCIZ protocol name
-
- Format of Function 0026h/Subfunction 0011h data:
- Offset Size Description (Table 0424)
- 00h 8 BYTEs ???
- 08h var (ret) ASCIZ protocol name
- var (ret) ASCIZ ??? name
- var (ret) ASCIZ ??? name
-
- Format of Function 0026h/Subfunction 0012h data:
- Offset Size Description (Table 0425)
- 00h 8 BYTEs (ret) ???
-
- Format of Function 0026h/Subfunction 0013h data:
- Offset Size Description (Table 0426)
- 00h 116 BYTEs (ret) ???
-
- Format of Function 0026h/Subfunction 0016h ("shutdown") data:
- Offset Size Description (Table 0427)
- 00h WORD (ret) shutdown status (0000h successful, FFFFh error)
- 02h 4 BYTEs (ret) ???
- 04h WORD (call) socket handle
- 06*h WORD (call) what (0 = receives, 1 = sends, 2 = both)
-
- Format of Function 0026h/Subfunction 0018h data:
- Offset Size Description (Table 0428)
- 00h 116 BYTEs (ret) ???
-
- Format of Function 0026h/Subfunction 0019h data:
- Offset Size Description (Table 0429)
- 00h 4 BYTEs (ret) ???
- 04h DWORD (ret) task handle of ???
-
- Format of Function 0026h/Subfunction 001Ah data:
- Offset Size Description (Table 0430)
- 00h 38 BYTEs (ret) ???
-
- Format of Function 0026h/Subfunction 001Bh data:
- Offset Size Description (Table 0431)
- 00h 10 BYTEs (ret) ???
-
- Format of Function 0026h/Subfunction 001Dh return data [array]:
- Offset Size Description (Table 0432)
- 00h WORD ??? or FFFFh if end of array
- 02h 7 BYTEs ???
- 09h 27 BYTEs ASCIZ name of service
-
- Format of Function 0026h/Subfunction 0024h return data:
- Offset Size Description (Table 0433)
- 00h var ASCIZ username
-
- Format of Function 0026h/Subfunction 0030h data:
- Offset Size Description (Table 0434)
- 00h WORD (call) UID or 0000h for current user
- (ret) ???
- 02h WORD (ret) UID
- 04h 6 BYTEs (ret) ???
- 0Ah var (ret) ASCIZ username
- var (ret) ASCIZ encrypted password
- var (ret) ASCIZ initial ("home") directory
-
- Format of Function 0026h/Subfunction 0031h ("sethostpath") data:
- Offset Size Description (Table 0435)
- 00h 4 BYTEs ???
- 04h 144 BYTEs ASCIZ ???
-
- Format of Function 0026h/Subfunction 0034h data:
- Offset Size Description (Table 0436)
- 00h 1-3 BYTEs IP network number of caller's machine (low byte first)
-
- Format of Function 0026h/Subfunction 0037h ("getnettimeout") return data:
- Offset Size Description (Table 0437)
- 00h WORD (ret) timeout
- 02h 2 BYTEs (ret) ???
-
- Format of Function 0026h/Subfunction 0038h return data:
- Offset Size Description (Table 0438)
- 00h BYTE ???
- 01h 4 BYTEs IP address
- 05h var ASCIZ machine name
- ???
-
- Format of Function 0026h/Subfunction 0039h ("getuid") return data:
- Offset Size Description (Table 0439)
- 00h WORD user ID
- 02h 2 BYTEs ???
- SeeAlso: #0435,#0438
-
- (Table 0440)
- Values for DESQview/X socket error code:
- 0000h successful
- 0009h "BADF" bad file handle
- 000Ch "ENOMEM" out of memory
- 000Eh "EFAULT" bad address
- 0016h "EINVAL" invalid argument
- 0018h "EMFILE" too many open files
- 0020h "EPIPE" ??? broken pipe
- 0023h "EWOULDBLOCK" operation cannot be completed at this time
- 0024h "EINPROGRESS" operation now in progress
- 0026h "ENOTSOCK" socket invalid
- 0028h "EMSGSIZE" message too long to send atomically
- 002Ch "ESOCKTNOSUPPORT" socket type not supported
- 002Fh "EAFNOSUPPORT" address family not supp. by protocol fam.
- 0031h "EDOM" argument too large
- 0038h "EISCONN" socket is already connected
- 0039h "ENOTCONN" socket is not connected
-
- Format of DESQview/X Socket Context Record:
- Offset Size Description (Table 0441)
- 00h DWORD pointer to next Socket Context Record, 0000h:0000h if last
- 04h WORD SFT index for socket, 00FFh if not connected, FFFFh if detached
- 06h WORD PSP segment of owner or 0000h
- 08h WORD mapping context of owning window (see #0306 at AX=1016h)
- 0Ah 2 BYTEs ???
- 0Ch WORD address family
- 0Eh WORD socket type
- 10h WORD protocol
- 12h WORD socket state
- 0001h created
- 0002h bound
- 0003h listening???
- 0005h connected
- 14h DWORD timer object handle
- 18h DWORD object handle (mailbox???)
- 1Ch DWORD object handle of parent of above object or 0000h:0000h
- 20h DWORD pointer to ??? or 0000h
- 24h 6 BYTEs ???
- 2Ah WORD file handle for socket or FFFFh
- 2Ch 2 BYTEs ???
- 2Eh WORD nonzero if socket nonblocking
- ---network connections only---
- 30h 2 BYTEs ???
- 32h WORD ???
- 34h 4 BYTEs (big-endian) IP address of remote
- 38h 6 BYTEs ???
- --------Q-15DE2F-----------------------------
- INT 15 - DESQview v2.50+ - "VIDEONOTIFY" - HAS DIRECT WINDOW BEEN ACTIVE?
- AX = DE2Fh
- Return: BX = status
- 0001h keyboard focus has been given to a direct window since the
- last call
- 0000h if not
- Notes: DESQview 2.50-2.53 are distributed as part of DESQview/X v1.00-1.10.
- Quarterdeck stated that this call would not be available under future
- versions of DESQview Classic, but it is still present in v2.60
- --------Q-15DE30-----------------------------
- INT 15 - DESQview v2.50+ - "GETDVXVERSION" - GET DESQview/X VERSION
- AX = DE30h
- Return: BX = version (BH=major, BL=minor) or 0000h if not DESQview/X
- Notes: DESQview 2.50-2.53 are distributed as part of DESQview/X v1.00-1.10.
- you must first check the DESQview version to verify that it is 2.50 or
- greater
- SeeAlso: INT 21/AH=2Bh/CX=4445h
- --------Q-15DE31-----------------------------
- INT 15 - DESQview/X v1.10 - ???
- AX = DE31h
- CX = ???
- 0000h ???
- nonzero ???
- ???
- Return: ???
- --------b-15DF-------------------------------
- INT 15 - Juko UNIQUE UX BIOS - TURBO MODE CONTROL
- AH = DFh
- AL = function
- 00h turn on Turbo mode
- 01h turn off Turbo mode
- 02h set Turbo mode according to hardware switch
- SeeAlso: INT 13/AX=FFFFh
- --------b-15E00F-----------------------------
- INT 15 - Compaq Systempro - MULTIPROCESSOR DISPATCH
- AX = E00Fh
- ES:BX -> start of 2nd processor's execution
- Return: AL = status
- 0Fh successful
- 00h failure
- SeeAlso: AX=E10Eh,AX=E200h
- --------b-15E10E-----------------------------
- INT 15 - Compaq Systempro - MULTIPROCESSOR END-OF-DISPATCH
- AX = E10Eh
- ES:BX -> start of 2nd processor's execution
- Return: AL = status
- 0Fh successful (halted)
- 00h failure (not halted)
- SeeAlso: AX=E00Fh,AX=E200h
- --------b-15E200-----------------------------
- INT 15 - Compaq Systempro - MULTIPROCESSOR AVAILABLE
- AX = E200h
- Return: AX bit 15 set if 2nd processor available
- SeeAlso: AX=E00Fh,AX=E10Eh
- --------b-15E4-------------------------------
- INT 15 - Tandy??? - ???
- AH = E4h
- AL = subfunction
- 21h, 89h, 8Ah, 8Bh called by 386MAX v6.01
- DL = ???
- Return: DL = 00h if successful???
- Note: the section of code in 386MAX which calls these functions also checks
- whether the ROM BIOS has both Tandy and Phoenix Technologies
- signatures if these calls fail; the Tandy 1000SL/TL BIOS does not
- support this function, however, returning the usual CF set/AH=86h for
- "unsupported function".
- --------b-15E4-------------------------------
- INT 15 - Compaq ROM BIOS 03/08/93 and newer - ???
- AH = E4h
- AL = subfunction
- 00h get ???
- Return: CF clear
- AH = 00h
- CX = 0000h
- BX = ??? (read from [XBDA:0094h])
- 01h,02h unsupported by this ROM version
- Return: CF set, AH = 86h
- 80h,90h,A0h,B0h,C0h,D0h,E0h,F0h set ???
- Return: CF clear
- AH = 00h
- CX = 0000h
- BX = ???
- 81h,91h,A1h,B1h,C1h,D1h,E1h,F1h unsupported by 3/8/93&4/8/93 ROMs
- Return: CF set, AH = 86h
- Notes: functions 80h/90h/etc. are not supported by the 4/8/93 EISA System ROM
- these functions are not supported by the 7/26/93 LTE Lite 386 ROM
- --------b-15E800-----------------------------
- INT 15 - Compaq Contura - GET ???
- AX = E800h
- Return: AX = 0000h
- BH = 00h
- BL = ??? (read from port 0C7Ch)
- CH = ???
- CL = ???
- DX = 0000h
- Note: also supported by 3/8/93 DESKPRO/i and 7/26/93 LTE Lite 386 ROM BIOS
- --------b-15E800-----------------------------
- INT 15 - Compaq Contura Aero, Contura 400 - GET SYSTEM MODEL CODE???
- AX = E800h
- BX = ??? (0000h)
- Return: CF clear if successful
- BH = 02h
- BL = submodel??? (0Ch,0Dh,34h,38h,40h,44h,48h,64h,68h)
- CF set on error
- others???
- Notes: used by Compaq's SOFTPAQ number 0937 EPPBIOS.SYS to determine whether
- the Enhanced Parallel Port expected by that driver is available
- used by Compaq's SOFTPAW number 0856 VOLCTRL.EXE to determine whether
- volume control hardware expected by that driver is available
- --------b-15E800-----------------------------
- INT 15 - Compaq Prolinea - GET ???
- AX = E800h
- BX = ??? (1369h)
- Return: BH = 01h
- BL = ???
- others???
- Note: used by Compaq's SOFTPAQ number 0718 INT10_04.SYS to determine whether
- the fix that driver applies is required (will not install if BX on
- return is other than 010Eh or 010Fh)
- --------b-15E801-----------------------------
- INT 15 - Compaq Contura - GET ???
- AX = E801h
- Return: CF clear
- AX = extended memory in K (read from CMOS locations 30h and 31h)
- BH = ???
- BL = ???
- CX = extended memory in K (read from CMOS locations 17h and 18h)
- DX = ???
- Note: also supported by 3/8/93 DESKPRO/i and 7/26/93 LTE Lite 386 ROM BIOS
- SeeAlso: AX=E802h"Compaq"
- --------b-15E801-----------------------------
- INT 15 - Dell XPS P90 - DISPLAY MEMORY FOR >64M CONFIGURATIONS
- AX = E801h
- Return: AX = extended memory size in K??? (max 3C00h = 15MB)
- BX = extended memory size in 64K blocks???
- Note: supported by the A03 level (6/14/94) and later XPS P90 BIOSes
- SeeAlso: AX=E820h"Dell"
- --------b-15E802-----------------------------
- INT 15 - Compaq Contura - GET ???
- AX = E802h
- Return: CF clear
- AX = 0000h
- BX = ???
- CX = 0000h
- Note: this function is also supported by the LTE Lite 25c, 25E, and 486; not
- supported by LTE Lite 20 and 25.
- SeeAlso: AX=E801h"Compaq"
- --------b-15E820-----------------------------
- INT 15 - Dell XPS P90 - GET MEMORY MAP
- AX = E820h
- EDX = 534D4150h ('SMAP')
- EBX = ??? or 00000000h for default
- ECX = number of bytes to copy
- ES:DI -> buffer for result
- Return: CF clear if successful
- ES:DI buffer filled
- EBX = next offset from which to copy or 00000000h if all done
- high word of ECX may be cleared
- CF set on error
- AH = error code (86h) (see #0372 at INT 15/AH=80h)
- Notes: supported by the A03 level (6/14/94) and later XPS P90 BIOSes
- a maximum of 20 bytes will be transferred at one time, even if ECX is
- higher
- SeeAlso: AX=E801h"Dell"
- --------m-15F200CX454D-----------------------
- INT 15 - Tandon memory mapper - Tandon MAPPER HARDWARE INITIALISATION CHECK ???
- AX = F200h
- CX = 454Dh
- Return: CF clear if hardware already initialised
- BX = upper RAM areas in use
- bit 0: C000-C3FF
- bit 1: C400-C7FF
- ...
- bit 11: EC00-EFFF
- CF set if hardware not initialised yet
- --------B-1600-------------------------------
- INT 16 - KEYBOARD - GET KEYSTROKE
- AH = 00h
- Return: AH = BIOS scan code
- AL = ASCII character
- Notes: on extended keyboards, this function discards any extended keystrokes,
- returning only when a non-extended keystroke is available
- the BIOS scan code is usually, but not always, the same as the hardware
- scan code processed by INT 09. It is the same for ASCII keystrokes
- and most unshifted special keys (F-keys, arrow keys, etc.), but
- differs for shifted special keys.
- SeeAlso: AH=01h,AH=05h,AH=10h,AH=20h,INT 18/AH=00h
- --------B-1601-------------------------------
- INT 16 - KEYBOARD - CHECK FOR KEYSTROKE
- AH = 01h
- Return: ZF set if no keystroke available
- ZF clear if keystroke available
- AH = BIOS scan code
- AL = ASCII character
- Note: if a keystroke is present, it is not removed from the keyboard buffer;
- however, any extended keystrokes which are not compatible with 83/84-
- key keyboards are removed in the process of checking whether a
- non-extended keystroke is available
- SeeAlso: AH=00h,AH=11h,AH=21h,INT 18/AH=01h
- --------B-1602-------------------------------
- INT 16 - KEYBOARD - GET SHIFT FLAGS
- AH = 02h
- Return: AL = shift flags (see #0442)
- SeeAlso: AH=12h,AH=22h,INT 17/AH=0Dh,INT 18/AH=02h
-
- Bitfields for keyboard shift flags:
- Bit(s) Description (Table 0442)
- 7 Insert active
- 6 CapsLock active
- 5 NumLock active
- 4 ScrollLock active
- 3 Alt key pressed (either Alt on 101/102-key keyboards)
- 2 Ctrl key pressed (either Ctrl on 101/102-key keyboards)
- 1 left shift key pressed
- 0 right shift key pressed
- SeeAlso: #0447,#2345
- --------B-1603-------------------------------
- INT 16 - KEYBOARD - SET TYPEMATIC RATE AND DELAY
- AH = 03h
- AL = subfunction
- 00h set default delay and rate (PCjr and some PS/2)
- 01h increase delay before repeat (PCjr)
- 02h decrease repeat rate by factor of 2 (PCjr)
- 03h increase delay and decrease repeat rate (PCjr)
- 04h turn off typematic repeat (PCjr and some PS/2)
- 05h set repeat rate and delay (AT,PS)
- BH = delay value (00h = 250ms to 03h = 1000ms)
- BL = repeat rate (00h=30/sec to 0Ch=10/sec [def] to 1Fh=2/sec)
- 06h get current typematic rate and delay (newer PS/2s)
- Return: BL = repeat rate (see above)
- BH = delay (see above)
- Note: use INT 16/AH=09h to determine whether some of the subfunctions are
- supported
- SeeAlso: INT 16/AH=09h,AH=29h"HUNTER",AH=2Ah"HUNTER"
- --------B-1604-------------------------------
- INT 16 - KEYBOARD - SET KEYCLICK (PCjr only)
- AH = 04h
- AL = keyclick state
- 00h off
- 01h on
- SeeAlso: AH=03h,AH=04h"K3PLUS"
- --------K-1604-------------------------------
- INT 16 - K3PLUS v6.22+ - SET KEYCLICK
- AH = 04h
- AL = keyclick state
- 00h keyclick off, leave loudness setting unchanged
- 01h keyclick on, leave loudness setting unchanged
- else
- bit 0: keyclick enabled if set
- bits 7-1: new keyclick loudness (non-zero)
- Note: Applications which try to set a new loudness, but are unsure of the
- results of other INT 16/AH=04h implementations, should set the new
- loudness first, and then call this function again with AL=01h or
- AL=00h
- SeeAlso: AH=03h,AH=04h"KEYBOARD"
- --------B-1605-------------------------------
- INT 16 - KEYBOARD - STORE KEYSTROKE IN KEYBOARD BUFFER (AT/PS w enh keybd only)
- AH = 05h
- CH = scan code
- CL = ASCII character
- Return: AL = status
- 00h if successful
- 01h if keyboard buffer full
- Notes: under DESQview, a number of "keystrokes" invoke specific
- DESQview-related actions when they are read from the keyboard
- buffer (see #0443)
- similarly, some "keystrokes" invoke special functions on the HP 100LX
- and HP 200LX (see #0444)
- SeeAlso: AH=00h,AH=25h"K3",AH=71h,AH=FFh,INT 15/AX=DE10h
-
- (Table 0443)
- Values for pseudo-keystrokes for DESQview:
- 38FBh or FB00h switch to next window (only if main menu already popped up)
- 38FCh or FC00h pop up DESQview main menu
- 38FEh or FE00h close the current window
- 38FFh or FF00h pop up DESQview learn menu
-
- (Table 0444)
- Values for pseudo-keystrokes for HP 100LX/200LX:
- EE00h pop up topcard display and set other system manager applications
- into sleep mode
- --------B-1605-------------------------------
- INT 16 - KEYBOARD - SELECT KEYBOARD LAYOUT (PCjr only)
- AH = 05h
- AL = function
- 01h set keyboard layout to French
- 02h set keyboard layout to German
- 03h set keyboard layout to Italian
- 04h set keyboard layout to Spanish
- 05h set keyboard layout to UK
- 80h check if function supported
- Return: AL <> 80h if supported
- Return: ???
- Note: this function is called by the DOS 3.2 KEYBxx.COM
- SeeAlso: AH=92h,AH=A2h
- --------B-1609-------------------------------
- INT 16 - KEYBOARD - GET KEYBOARD FUNCTIONALITY
- AH = 09h
- Return: AL = supported keyboard functions (see #0445)
- Notes: this function is only available if bit 6 of the second feature byte
- returned by INT 15/AH=C0h is set (see #0383)
- reportedly, the Award Modular BIOS v4.50G returns the keyboard function
- flags in AH instead of AL, and provides this function even though
- its availability is not indicated by INT 15/AH=C0h
- SeeAlso: AH=03h,AH=0Ah,AH=10h,AH=11h,AH=12h,AH=20h,AH=21h,AH=22h,INT 15/AH=C0h
-
- Bitfields for supported keyboard functions:
- Bit(s) Description (Table 0445)
- 7 reserved
- 6 INT 16/AH=20h-22h supported (122-key keyboard support)
- 5 INT 16/AH=10h-12h supported (enhanced keyboard support)
- 4 INT 16/AH=0Ah supported
- 3 INT 16/AX=0306h supported
- 2 INT 16/AX=0305h supported
- 1 INT 16/AX=0304h supported
- 0 INT 16/AX=0300h supported
- SeeAlso: #0385
- --------B-160A-------------------------------
- INT 16 - KEYBOARD - GET KEYBOARD ID
- AH = 0Ah
- Return: BX = keyboard ID (see #0446)
- Note: check return value from AH=09h to determine whether this function is
- supported
- SeeAlso: AH=09h
-
- (Table 0446)
- Values for keyboard ID:
- 0000h no keyboard attached
- 41ABh Japanese "G" keyboard (translate mode)
- MF2 Keyboard (usually in translate mode)
- 54ABh Japanese "P" keyboard (translate mode)
- 83ABh Japanese "G" keyboard (pass-through mode)
- MF2 Keyboard (pass-through mode)
- 84ABh Japanese "P" keyboard (pass-through mode)
- 90ABh old Japanese "G" keyboard
- 91ABh old Japanese "P" keyboard
- 92ABh old Japanese "A" keyboard
- --------B-1610-------------------------------
- INT 16 - KEYBOARD - GET ENHANCED KEYSTROKE (enhanced kbd support only)
- AH = 10h
- Return: AH = BIOS scan code
- AL = ASCII character
- Notes: if no keystroke is available, this function waits until one is placed
- in the keyboard buffer
- the BIOS scan code is usually, but not always, the same as the hardware
- scan code processed by INT 09. It is the same for ASCII keystrokes
- and most unshifted special keys (F-keys, arrow keys, etc.), but
- differs for shifted special keys.
- unlike AH=00h, this function does not discard extended keystrokes
- INT 16/AH=09h can be used to determine whether this function is
- supported, but only on later model PS/2s
- SeeAlso: AH=00h,AH=09h,AH=11h,AH=20h
- --------B-1611-------------------------------
- INT 16 - KEYBOARD - CHECK FOR ENHANCED KEYSTROKE (enh kbd support only)
- AH = 11h
- Return: ZF set if no keystroke available
- ZF clear if keystroke available
- AH = BIOS scan code
- AL = ASCII character
- Notes: if a keystroke is available, it is not removed from the keyboard buffer
- unlike AH=01h, this function does not discard extended keystrokes
- some versions of the IBM BIOS Technical Reference erroneously report
- that CF is returned instead of ZF
- INT 16/AH=09h can be used to determine whether this function is
- supported, but only on later model PS/2s
- SeeAlso: AH=01h,AH=09h,AH=10h,AH=21h
- --------B-1612-------------------------------
- INT 16 - KEYBOARD - GET EXTENDED SHIFT STATES (enh kbd support only)
- AH = 12h
- Return: AL = shift flags 1 (same as returned by AH=02h) (see #0447)
- AH = shift flags 2 (see #0448)
- Notes: AL bit 3 set only for left Alt key on many machines
- AH bits 7 through 4 always clear on a Compaq SLT/286
- INT 16/AH=09h can be used to determine whether this function is
- supported, but only on later model PS/2s
- many BIOSes (including at least some versions of Phoenix and AMI) will
- destroy AH on return from functions higher than AH=12h, returning
- 12h less than was in AH on entry (due to a chain of DEC/JZ
- instructions)
- SeeAlso: AH=02h,AH=09h,AH=22h,AH=51h,INT 17/AH=0Dh
-
- Bitfields for keyboard shift flags 1:
- Bit(s) Description (Table 0447)
- 7 Insert active
- 6 CapsLock active
- 5 NumLock active
- 4 ScrollLock active
- 3 Alt key pressed (either Alt on 101/102-key keyboards)
- 2 Ctrl key pressed (either Ctrl on 101/102-key keyboards)
- 1 left shift key pressed
- 0 right shift key pressed
- SeeAlso: #0442,#0448
-
- Bitfields for keyboard shift flags 2:
- Bit(s) Description (Table 0448)
- 7 SysReq key pressed (SysReq is often labeled SysRq)
- 6 CapsLock pressed
- 5 NumLock pressed
- 4 ScrollLock pressed
- 3 right Alt key pressed
- 2 right Ctrl key pressed
- 1 left Alt key pressed
- 0 left Ctrl key pressed
- SeeAlso: #0447
- --------J-1613-------------------------------
- INT 16 - DOS/V - DOUBLE-BYTE CHARACTER SET SHIFT CONTROL
- AH = 13h
- AL = function
- 00h set shift status
- DX = shift status (see #0449), must preserve internal status
- bits
- 01h get shift status
- Return: DX = current shift status (see #0449)
- Note: these functions are supplied by the Japanese Front-End Processor
- SeeAlso: AH=14h,INT 21/AX=6301h
-
- Bitfields for DOS/V shift status:
- Bit(s) Description (Table 0449)
- 0 full-size rather than half-size
- 2-1 character input mode
- 00 alphanumeric, 01 Katakana, 10 Hiragana, 11 unused
- 5-3 internal status
- 6 Romaji enabled
- 7 Katakana to Kanji conversion enabled
- 15-8 internal status
- --------J-1614-------------------------------
- INT 16 - DOS/V - SHIFT STATUS DISPLAY CONTROL
- AH = 14h
- AL = function
- 00h enable display
- 01h disable display
- 02h get display state
- Return: AL = current state (00h enabled, 01h disabled)
- Desc: control the screen-bottom shift status row(s) for the Japanese
- Front-End Processor
- SeeAlso: AH=13h,INT 10/AH=19h,INT 10/AH=1Dh
- --------B-1620-------------------------------
- INT 16 - KEYBOARD - GET 122-KEY KEYSTROKE (122-key kbd support only)
- AH = 20h
- Return: AH = BIOS scan code (see AH=10h for details)
- AL = ASCII character
- Note: use AH=09h to determine whether this function is supported
- SeeAlso: AH=00h,AH=09h,AH=10h,AH=21h,AH=22h
- --------b-1620------------------------------------
- INT 16 - HUNTER 16 - SET TEMPORARY SHIFT
- AH = 20h
- AL = shift status (see #0450)
- Notes: the Husky Hunter 16 is an 8088-based ruggedized laptop. Other family
- members are the Husky Hunter, Husky Hunter 16/80, and Husky Hawk.
- the user can override the specified settings by pressing the keys
-
- Bitfields for HUNTER 16 shift status:
- Bit(s) Description (Table 0450)
- 4 Scroll Lock on
- 5 Num Lock on
- 6 Caps Lock on
- --------K-1620-------------------------------
- INT 16 O - K3 v1.5+, K3PLUS v5.0+ - GET EXTENDED BUFFER STATE
- AH = 20h
- Return: AX = K3 version
- ES:BX -> extended keyboard buffer start
- ES:DX -> extended keyboard buffer end
- ES:SI -> next keystroke
- ES:DI -> last keystroke in buffer
- CX = number of keystrokes in buffer
- Program: K3PLUS is an enhancement by Matthias Paul and Axel C. Frinke of the
- K3 extended German keyboard driver by Martin Gerdes published in c't
- magazine in 1988
- Note: this function is normally unsupported under K3PLUS v6.0+; use AX=AF20h
- instead
- SeeAlso: AH=25h"K3",AX=AF20h,INT 2F/AX=D44Fh/BX=0000h,INT 2F/AX=ED58h
- --------B-1621-------------------------------
- INT 16 - KEYBOARD - CHECK FOR 122-KEY KEYSTROKE (122-key kbd support only)
- AH = 21h
- Return: ZF set if no keystroke available
- ZF clear if keystroke available
- AH = BIOS scan code
- AL = ASCII character
- Notes: use AH=09h to determine whether this function is supported
- some versions of the IBM BIOS Technical Reference erroneously report
- that CF is returned instead of ZF
- SeeAlso: AH=01h,AH=09h,AH=11h,AH=20h,AH=21h
- --------b-1621------------------------------------
- INT 16 - HUNTER 16 - CONTROL SHIFT KEYS
- AH = 21h
- AL = shift keys to control (see #0442)
- BL = shift state for disabled keys
- Note: If a bit in AL is set the key is disabled and set to the state of the
- corresponding bit in BL
- SeeAlso: AH=20h"HUNTER",AH=22h"HUNTER"
- --------B-1622-------------------------------
- INT 16 - KEYBOARD - GET 122-KEY SHIFT STATUS (122-key kbd support only)
- AH = 22h
- Return: AL = shift flags 1 (see #0447)
- AH = shift flags 2 (see #0448)
- Note: use AH=09h to determine whether this function is supported
- SeeAlso: AH=02h,AH=09h,AH=12h,AH=20h,AH=21h
- --------b-1622------------------------------------
- INT 16 - HUNTER 16 - CONTROL CTRL-ALT-DEL
- AH = 22h
- AL = new Ctrl-Alt-Del state (00h enabled, nonzero disabled)
- BX = 0708h
- CX = 0910h
- DX = 1112h
- Return: AL = 00h if successful
- SeeAlso: AH=21h"HUNTER",AH=23h"HUNTER",AH=2Ah
- --------b-1623------------------------------------
- INT 16 - HUNTER 16 - CONTROL EMERGENCY BREAKOUT
- AH = 23h
- AL = new state of breakout (00h enabled, nonzero disabled)
- BX = 0708h
- CX = 0910h
- DX = 1112h
- Return: AL = 00h if successful
- Desc: Enables or disables the emergency breakout feature, where the
- Hunter 16 at power on checks whether the X and P keys are pressed.
- If so the machine will boot rather than continue the running program
- SeeAlso: AH=22h"HUNTER"
- --------b-1624------------------------------------
- INT 16 - HUNTER 16 - REDEFINE KEY CODES
- AH = 24h
- AL = Matrix Code (see #0451)
- BL = new Key code
- Return: AL = status (00h successful, nonzero failed)
- SeeAlso: AH=2Bh,AH=2Ch
-
- (Table 0451)
- Values for HUNTER 16 Matrix Code:
- Code Key Code Key Code Key
- 00h Esc key 1Eh Space 3Bh L
- 01h 1 21h 0 3Ch ,
- 02h Q 22h - 3Eh Right shift
- 03h Tab 23h ' 42h 8
- 04h Num Lock 24h Keypad 4 43h 7
- 05h \ 25h Enter 44h U
- 08h LShift 26h Keypad 7 45h I
- 09h Ctrl 27h . 46h J
- 0Ah "Paw" key 28h Keypad 1 47h K
- 0Bh 2 29h Keypad 0 48h M
- 0Ch W 2Ch = 49h N
- 0Dh A 2Dh Backspace 4Ah /
- 0Eh S 2Eh Keypad 8 4Dh 6
- 0Fh Z 2Fh Keypad 9 4Eh 5
- 11h Alt 30h Keypad 5 4Fh T
- 16h 4 31h Keypad 6 50h Y
- 17h 3 32h Keypad 2 51h G
- 18h E 33h Keypad 3 52h H
- 19h R 34h Keypad . 53h B
- 1Ah D 37h 9 54h V
- 1Bh F 38h O 55h #
- 1Ch X 39h P 58h Pwr
- 1Dh C 3Ah ; 59h Shift Pwr
- --------b-1625------------------------------------
- INT 16 - HUNTER 16 - RESET KEYBOARD
- AH = 25h
- Return: AL = 00h
- Desc: restores the standard keyboard layout after any remapping
- SeeAlso: AH=24h,AH=2Bh,AH=2Ch
- --------K-1625-------------------------------
- INT 16 O - K3 v1.5+, K3PLUS v5.0+ - COPY INTO EXTENDED BUFFER
- AH = 25h
- CX = number of keystrokes to copy
- ES:SI -> buffer containing keystrokes
- Return: CF clear if successful
- CF set on error (i.e. buffer full)
- CX = number of keystrokes NOT transferred
- ES:SI -> first keystroke not transferred
- Note: this function is normally unsupported under K3PLUS v6.0+; use AX=AF20h
- instead
- SeeAlso: AH=05h,AH=20h"K3",AX=AF25h,INT 2F/AX=D44Fh/BX=0001h
- --------b-1626------------------------------------
- INT 16 - HUNTER 16 - CONTROL KEYCLICK
- AH = 26h
- AL = new state of keyclicks (00h disabled, 01h enabled)
- Return: AL = 00h
- SeeAlso: AH=2Ah
- --------b-1627------------------------------------
- INT 16 - HUNTER 16 - CONTROL SCREEN DUMP AREA
- AH = 27h
- AL = what to dump
- 00h whole (virtual) window
- 01h LCD window only
- Return: AL = 00h
- Desc: control whether printscren dumps the whole 80x25 screen or only the
- part displayed in the LCD window
- Note: the Hunter 16 has a 240x64 LCD display which serves as a window into
- a 640x200 virtual screen
- --------b-1629------------------------------------
- INT 16 - HUNTER 16 - GET KEY REPEAT
- AH = 29h
- Return: BL = Typematic rate (characters per second) (see #0452)
- BH = delay (00h = 250ms, 01h = 500ms, 02h = 750ms, 03h = 1s)
- SeeAlso: AH=03h,AH=2Ah
-
- (Table 0452)
- Values for HUNTER 16 Typematic rate:
- 00h 30.0 08h 15.0 10h 7.5 18h 3.7
- 01h 26.7 09h 13.3 11h 6.7 19h 3.3
- 02h 24.0 0Ah 12.0 12h 6.0 1Ah 3.0
- 03h 21.8 0Bh 10.9 13h 5.5 1Bh 2.7
- 04h 20.0 0Ch 10.0 14h 5.0 1Ch 2.5
- 05h 18.5 0Dh 9.2 15h 4.6 1Dh 2.3
- 06h 17.1 0Eh 8.6 16h 4.3 1Eh 2.1
- 07h 16.0 0Fh 8.0 17h 4.0 1Fh 2.0
- SeeAlso: AH=2Ah
- --------b-162A------------------------------------
- INT 16 - HUNTER 16 - CONTROL KEY REPEAT
- AH = 2Ah
- AL = new state of keyboard autorepeat (00h disabled, 01h enabled)
- SeeAlso: AH=03h,AH=26h,AH=29h,AH=2Bh
- --------b-162B------------------------------------
- INT 16 - HUNTER 16 - REDEFINE KEY SCAN CODES
- AH = 2Bh
- AL = which key table to redefine
- 00h unshifted
- 01h shifted
- 02h Numlock
- BH = standard scan code of key (00h-80h)
- BL = new scan code
- Desc: redefine the generated scan code from BH to BL
- SeeAlso: AH=24h,AH=2Ah,AH=2Ch
- --------b-162C------------------------------------
- INT 16 - HUNTER 16 - REDEFINE RAW KEY CODES
- AH = 2Ch
- AL = Matrix code of key (see AH=29h)
- BL = new key code
- Return: AL = status (00h success, nonzero failed)
- Desc: redefine the key code generated by holding the PAW key down and
- pressing the key in AL
- SeeAlso: AH=24h,AH=2Bh
- --------b-162D------------------------------------
- INT 16 - HUNTER 16 - CONTROL BREAK KEYS
- AH = 2Dh
- AL = enabled break keys
- bit 0 Ctrl-C
- bit 1 Ctrl-Break
- BX = 0708h
- CX = 0910h
- DX = 1112h
- Return: AL = status (00h success, FFh failed)
- SeeAlso: AH=21h"HUNTER"
- --------U-163577-----------------------------
- INT 16 U - TextWare TWTSR - API
- AX = 3577h
- CX = function
- 00CBh ???
- Return: AX = 0000h
- BX = 0000h
- DX:CX -> ???
- 00CCh uninstall
- Return: AX = status
- 0000h successful
- FFFDh unable to unload because vectors taken
- 00CDh ???
- Return: AX = 0000h
- BX = 0000h
- DX:CX -> ???
- other
- Return: AX = 5345h ('SE')
- Program: TWTSR is a TSR which allows the TextWare hypertext browser to be
- popped up via hotkey
- SeeAlso: AX=D724h
- --------U-164252-----------------------------
- INT 16 - TEXTCAP 2.0 - INSTALLATION CHECK
- AX = 4252h
- Return: AX = 5242h if installed
- Program: TEXTCAP 2.0 is a heavily modified (by Gisbert W. Selke) version of the
- PC Magazine utility CAPTURE written by Tom Kihlken
- SeeAlso: AX=4253h,AX=4254h
- --------U-164253-----------------------------
- INT 16 - TEXTCAP 2.0 - UNINSTALL
- AX = 4253h
- Return: AX = segment of resident code
- Notes: the uninstall code does not check whether interrupt vectors have been
- chained by other programs
- the caller must free the main memory block (using the returned segment)
- SeeAlso: AX=4252h,AX=4254h
- --------U-164254-----------------------------
- INT 16 - TEXTCAP 2.0 - DUMP TEXT SCREEN TO FILE
- AX = 4254h
- Return: AX = status
- 4254h if screen dump will be written as soon as disk becomes idle
- 5442h if screen dump written
- SeeAlso: AX=4252h,AX=4253h
- --------e-164500-----------------------------
- INT 16 - Shamrock Software EMAIL - GET STATUS
- AX = 4500h
- DL = port number (01h = COM1)
- ES:BX -> 13-byte buffer for ASCIZ name
- Return: AX = 4D00h if EMAIL installed on specified port
- ES:BX -> "" if no connection
- -> "*" if connection but caller has not identified name
- -> name otherwise
- CX = version (CH = major, CL = minor)
- DL = privilege level of user (00h = guest)
- DH = chosen language (00h German, 01h English)
- SeeAlso: AX=4501h,AX=4502h
- --------e-164501-----------------------------
- INT 16 - Shamrock Software EMAIL - GET ELAPSED ONLINE TIME AND MAXIMUM TIME
- AX = 4501h
- DL = port number (01h = COM1)
- Return: AX = 4D00h if EMAIL installed on specified port
- BX = maximum connect time in clock ticks
- CX = maximum connect time for guests (without name) in clock ticks
- DX = elapsed connect time of current user in clock ticks
- SeeAlso: AX=4500h
- --------e-164502-----------------------------
- INT 16 - Shamrock Software EMAIL - GET CURRENT COMMUNICATIONS PARAMETERS
- AX = 4502h
- DL = port number (01h = COM1)
- Return: AX = 4D00h if EMAIL installed on specified port
- BL = current value of serial port's Line Control Register
- BH = flags (see #0453)
- CX = selected country code (33 = France, 49 = Germany, etc)
- DX = baudrate divisor (115200/DX = baudrate)
- SeeAlso: AX=4500h
-
- Bitfields for Shamrock Software EMAIL flags:
- Bit(s) Description (Table 0453)
- 0 ISO code
- 1 pause
- 2 linefeed
- 3 ANSI sequences
- --------e-164503-----------------------------
- INT 16 - Shamrock Software EMAIL - SPECIFY COMMAND-WORD FOR USER FUNCTION
- AX = 4503h
- DL = port number (01h = COM1)
- DH = maximum execution time in clock ticks (00h = 5 seconds)
- ES:BX -> ASCIZ string with new user command-word
- Return: AX = 4D00h if EMAIL installed on specified port
- Notes: a single user command (consisting of only uppercase letters and digits)
- may be defined, and remains valid until it is overwritten or the
- EMAIL program terminates; the user command must be activated by
- calling AX=4504h at least once.
- an existing command word may be redefined with this function
- SeeAlso: AX=4504h,AX=4505h
- --------e-164504-----------------------------
- INT 16 - Shamrock Software EMAIL - CHECK FOR USER FUNCTION COMMAND-WORD
- AX = 4504h
- DL = port number (01h = COM1)
- ES:BX -> 80-byte buffer for ASCIZ user input line
- Return: AX = 4D00h if EMAIL installed on specified port
- DL = flags
- bit 0: user function supported (always set)
- bit 1: user entered user-function command word
- if DL bit 1 set,
- ES:BX buffer contains line entered by user which begins with
- the defined command word and has been converted to all
- caps
- Note: caller must process the returned commandline and invoke AX=4505h
- within five seconds with the result of that processing
- SeeAlso: AX=4503h,AX=4505h
- --------e-164505-----------------------------
- INT 16 - Shamrock Software EMAIL - SEND RESULT OF USER FUNCTION
- AX = 4505h
- DL = port number (01h = COM1)
- DH = error flag
- bit 3: set on error
- ES:BX -> ASCIZ text to return to user, max 1024 bytes
- Return: AH = 4Dh if EMAIL installed on specified port
- AL = status
- 00h successful
- 02h unable to perform function (timeout, prev call not complete)
- other error
- Notes: if the error flag in DH is set, the string is not sent and an error
- message is generated instead; if this function is not called within
- five seconds of AX=4504h, EMAIL automatically generates an error
- message
- the string is copied into an internal buffer, allowing this function's
- caller to continue immediately
- SeeAlso: AX=4503h,AX=4504h,INT 17/AX=2400h
- --------e-164506-----------------------------
- INT 16 - Shamrock Software EMAIL - MONITOR XMODEM DOWNLOAD
- AX = 4506h
- DL = port number (01h = COM1)
- ES:BX -> 13-byte buffer for ASCIZ filename
- Return: AX = 4D00h if EMAIL installed on specified port
- DH = Xmodem status
- 00h no XGET command given
- 01h XGET in progress
- 02h XGET completed successfully
- ES:BX buffer filled with last filename given to XGET command
- (without path)
- Note: DH=02h will only be returned once per XGET; subsequent calls will
- return DH=00h
- SeeAlso: AX=4500h,INT 17/AX=2408h
- --------K-164D4F-----------------------------
- INT 16 - M16_KBD.COM v5.6 - INSTALLATION CHECK
- AX = 4D4Fh
- Return: AX = 6F6Dh if installed
- ES = segment of resident code
- Program: M16_KBD is a shareware Cyrillic keyboard driver by I.V. Morozov
- SeeAlso: INT 10/AX=1130h/BX=4D4Fh
- --------J-165000-----------------------------
- INT 16 - KEYBOARD - AX PC - SET KEYBOARD COUNTRY CODE
- AX = 5000h
- BX = country code
- 0001h USA (English), 0051h Japan
- Return: AL = status
- 00h successful
- 01h bad country code
- 02h other error
- SeeAlso: AX=5001h,INT 10/AX=5000h,INT 17/AX=5000h
- --------J-165001-----------------------------
- INT 16 - KEYBOARD - AX PC - GET KEYBOARD COUNTRY CODE
- AX = 5001h
- Return: AL = status
- 00h successful
- BX = country code
- 02h error
- SeeAlso: AX=5000h,INT 10/AX=5001h,INT 17/AX=5001h
- --------J-1651-------------------------------
- INT 16 - KEYBOARD - AX PC - READ SHIFT KEY STATUS
- AH = 51h
- Return: AL = standard shift key states (see #0442,#0447)
- AH = Kana lock (00h off, 01h on)
- SeeAlso: AH=02h,AH=12h,AH=22h
- --------t-165453BX5242-----------------------
- INT 16 - TSRBONES - INSTALLATION CHECK
- AX = 5453h ('TS')
- BX = 5242h ('RB')
- CX = 4F4Eh ('ON')
- DX = 4553h ('ES')
- Return: AX = 4553h if installed
- BX = 4F4Eh if installed
- CX = 5242h if installed
- DX = 5453h if installed
- Program: TSRBONES is a skeletal TSR framework by Robert Curtis Davis
- Note: these values are the default as the TSRBONES package is distributed,
- but will normally be changed when implementing an actual TSR with
- the TSRBONES skeleton
- SeeAlso: INT 2D"AMIS"
- --------A-165500-----------------------------
- INT 16 C - Microsoft Word internal - MICROSOFT WORD COOPERATION WITH TSR
- AX = 5500h
- Return: AX = 4D53h ('MS') if keyboard TSR present
- Notes: during startup, Microsoft Word tries to communicate with any TSRs
- that are present through this call.
- if the return is not 4D53h, Word installs its own INT 09 and INT 16
- handlers; otherwise it assumes that the TSR will handle the keyboard
- SeeAlso: AX=55FFh,INT 1A/AX=3601h
- --------A-1655FE-----------------------------
- INT 16 CU - Microsoft QBASIC internal - MICROSOFT COOPERATION WITH TSR
- AX = 55FEh
- DX = function
- 0000h initialize
- ES:BX -> ??? function
- ES:CX -> ??? structure
- FFFFh shutdown/reset
- Return: AX = result
- 4D4Bh only the INT 1B handler will be installed.
- other: handlers for INT 08, INT 09, INT 16, INT 1B, and INT 1C
- are installed
- Notes: The pointer in ES:CX seems to point at a structure defining a callback
- function when new keyboard keys are pressed. If a TSR returns
- AX=4D4Bh, QBASIC will stop (with IRQ's and interrupts enabled).
- these calls are also made by MS-DOS 6.0's DOSSHELL at startup, exit,
- and before/after shelling out
- since EDIT.COM and HELP.COM merely invoke QBASIC, those two programs
- will also cause this interface to be invoked
- SeeAlso: INT 16/AX=5500h,INT 1A/AX=3601h
- --------U-1655FF-----------------------------
- INT 16 C - Microsoft Word - TSR COOPERATION???
- AX = 55FFh
- BX >= 0004h (version of Microsoft Word [BL = major] ???)
- CX = function
- 0000h set ??? flag
- other clear ??? flag
- Notes: hooks intercepting this call are present in SWAPSH and SWAPDT v1.77j,
- distributed with PC Tools v7, as well as the Trusted Access
- SCRNBLNK.COM; this may be part of the standard TesSeRact library
- known to be called by the German edition of Microsoft Word 5.0
- SeeAlso: AX=5500h,INT 2F/AX=5453h
- --------c-165758BX4858-----------------------
- INT 16 U - Netroom CACHECLK - INSTALLATION CHECK
- AX = 5758h
- BX = 4858h ('HX')
- DX = 4443h ('DC')
- CX <> 5758h
- Return: BX = 6878h if installed
- CX = 6463h if installed
- AX = code segment of TSR
- CX = internal version??? (v3.00 returns 0100h)
- Program: CACHECLK is a "cloaked" disk cache included with Netroom
- Notes: if CX=5758h on entry, CACHECLK returns with all registers unchanged
- the cache statistics are located early in the segment pointed at by
- AX on return
- SeeAlso: INT 2F/AX=5758h
- ----------165758BX5754-----------------------
- INT 16 U - Netroom ??? - ???
- AX = 5758h
- BX = 5754h
- ???
- Return: ???
- ----------165758BX5755-----------------------
- INT 16 U - Netroom ??? - ???
- AX = 5758h
- BX = 5755h
- DS:SI -> ???
- Return: ???
- ----------165758BX5756-----------------------
- INT 16 U - Netroom ??? - INSTALLATION CHECK
- AX = 5758h
- BX = 5756h
- Return: BX <> 5756h if installed
- --------m-165758BX5858-----------------------
- INT 16 U - Netroom PRENET - GET OLD INTERRUPT VECTORS
- AX = 5758h
- BX = 5858h
- Return: CF clear
- DX:BX -> saved copy of interrupt vector table
- Note: the installation check consists of calling this function and comparing
- BX against 5858h on return; if it has changed, PRENET is installed
- SeeAlso: AX=5758h/BX=5859h
- Index: installation check;Netroom PRENET
- --------m-165758BX5859-----------------------
- INT 16 U - Netroom POSTNET - GET OLD INTERRUPT VECTORS
- AX = 5758h
- BX = 5859h
- Return: CF clear
- DX:BX -> saved copy of interrupt vector table
- Note: the installation check consists of calling this function and comparing
- BX against 5859h on return; if it has changed, POSTNET is installed
- SeeAlso: AX=5758h/BX=5858h
- Index: installation check;Netroom POSTNET
- --------U-166969BX6968-----------------------
- INT 16 - PC Tools v5.1+ BACKTALK - UNHOOK
- AX = 6969h
- BX = 6968h
- Return: resident code unhooked, but not removed from memory
- Index: uninstall;BACKTALK
- --------U-166969BX6969-----------------------
- INT 16 - PC Tools v5.1+ BACKTALK - INSTALLATION CHECK
- AX = 6969h
- BX = 6969h
- DX = 0000h
- Return: DX nonzero if installed
- BX = CS of resident code
- DX = PSP segment of resident code
- DS:SI -> ASCIZ identification string "CPoint Talk"
- --------i-166A6B-----------------------------
- INT 16 U - FastJuice - DISABLE/UNLOAD???
- AX = 6A6Bh
- Return: ???
- Program: FastJuice is a resident battery-power monitor by SeaSide Software
- SeeAlso: AX=7463h
- Index: uninstall;FastJuice
- --------G-166C63-----------------------------
- INT 16 U - TMED v1.6a - INSTALLATION CHECK
- AX = 6C63h ('lc')
- Return: AX = 4C43h ('LC') if installed
- Program: TMED is a freeware resident memory editor by Liang Chen
- --------b-166F00-----------------------------
- INT 16 - HP Vectra EX-BIOS - "F16_INQUIRE" - Extended BIOS INSTALLATION CHECK
- AX = 6F00h
- BX <> 4850h (usually set to 0000h for simplicity)
- Return: BX = 4850h ("HP") if present
- Notes: called by recent MS Mouse drivers looking for an HP-HIL mouse
- supported by the original HP Vectra AT and ES/QS/RS series HP Vectras
- SeeAlso: AX=6F01h,AX=6F04h,AX=6F07h,AX=6F09h,AX=6F0Dh,AX=6F11h,AX=6F12h
- SeeAlso: INT 14/AX=6F00h,INT 17/AX=6F00h,INT 33/AX=6F00h
- SeeAlso: INT 6F/AH=00h"HP Vectra"
- --------b-166F01-----------------------------
- INT 16 - HP Vectra EX-BIOS - "F16_DEF_ATTR" - GET DEFAULT TYPEMATIC VALUES
- AX = 6F01h
- Return: AH = 00h (successful)
- CX = 0004h (size of returned buffer)
- ES:SI -> buffer for typematic info (see #0454)
- Note: supported by the original HP Vectra AT and ES/QS/RS series HP Vectras
- SeeAlso: AX=6F00h,AX=6F02h,AX=6F03h,AX=6F04h
-
- Format of HP Vectra EX-BIOS typematic info:
- Offset Size Description (Table 0454)
- 00h BYTE delay before repeat for all non-Cursor Control Pad keys
- (see #0455)
- 01h BYTE typematic rate for all non-Cursor Control Pad keys (see #0456)
- 02h BYTE delay before repeat for Cursor Control Pad keys (see #0457)
- 03h BYTE typematic rate for Cursor Control Pad keys (see #0456)
-
- (Table 0455)
- Values for HP Vectra EX-BIOS non-CCP delay time:
- 00h 17 ms
- 01h 150 ms
- 02h 283 ms
- 03h 417 ms
- 04h 550 ms
- 05h 683 ms
- 06h 817 ms
- 07h 950 ms
- 08h 1083 ms
- 09h 1217 ms
- 0Ah 1350 ms
- 0Bh 1483 ms
- 0Ch 1617 ms
- 0Dh 1750 ms
- 0Eh 1883 ms
- 0Fh 2017 ms
- Note: the above values assume that the key repeat rate has been set to 60 Hz;
- double the times if set to 30 Hz
- SeeAlso: #0454,#0456,#0457
-
- (Table 0456)
- Values for HP Vectra EX-BIOS typematic rate:
- 00h 60 / sec
- 01h 30 / sec
- 02h 20
- 03h 15
- 04h 12
- 05h 10
- 06h 8.57
- 07h 7.5
- 08h 6.66
- 09h 6 / sec
- 0Ah 5.45
- 0Bh 5
- 0Ch 4.62
- 0Dh 4.28
- 0Eh 4 / sec
- 0Fh typematic disabled
- Note: the above values assume that the key repeat rate has been set to 60 Hz;
- halve the rates if set to 30 Hz
- SeeAlso: #0455,#0457
-
- (Table 0457)
- Values for HP Vectra EX-BIOS CCP delay time:
- 00h 17 ms
- 01h 83 ms
- 02h 150 ms
- 03h 217 ms
- 04h 283 ms
- 05h 350 ms
- 06h 417 ms
- 07h 483 ms
- 08h 550 ms
- 09h 617 ms
- 0Ah 683 ms
- 0Bh 750 ms
- 0Ch 817 ms
- 0Dh 883 ms
- 0Eh 950 ms
- 0Fh 1017 ms
- Note: the above values assume that the key repeat rate has been set to 60 Hz;
- double the times if set to 30 Hz
- SeeAlso: #0455,#0456
- --------b-166F02-----------------------------
- INT 16 - HP Vectra EX-BIOS - "F16_GET_ATTR" - GET CURRENT TYPEMATIC VALUES
- AX = 6F02h
- Return: AH = 00h (successful)
- CX = 0004h (size of returned buffer)
- ES:SI -> buffer for typematic info (see #0454)
- Note: supported by the original HP Vectra AT and ES/QS/RS series HP Vectras
- SeeAlso: AX=6F00h,AX=6F02h,AX=6F03h,AX=6F04h
- SeeAlso: AX=6F00h,AX=6F01h,AX=6F03h
- --------b-166F03-----------------------------
- INT 16 - HP Vectra EX-BIOS - "F16_SET_ATTR" - SET TYPEMATIC VALUES
- AX = 6F03h
- ES:SI -> buffer containing typematic info (see #0454)
- Return: AH = 00h (successful)
- Note: supported by the original HP Vectra AT and ES/QS/RS series HP Vectras
- SeeAlso: AX=6F00h,AX=6F02h,AX=6F03h,AX=6F04h
- SeeAlso: AX=6F00h,AX=6F01h,AX=6F02h
- --------b-166F04-----------------------------
- INT 16 - HP Vectra EX-BIOS - "F16_DEF_MAPPING" - GET DEFAULT KEY MAPPINGS
- AX = 6F04h
- ES:SI -> mapping buffer (see #0458)
- Return: AH = 00h (successful)
- CX = 001Eh (number of bytes in buffer)
- ES:SI buffer filled
- Notes: supported by the original HP Vectra AT and ES/QS/RS series HP Vectras
- the HIL input system translates the HIL keyboard events to simulate
- an IBM-compatible keyboard; the translation can be altered
- dynamically by applications
- SeeAlso: AX=6F00h,AX=6F05h,AX=6F06h
-
- Format of HP Vectra EX-BIOS keyboard mapping info:
- Offset Size Description (Table 0458)
- 00h 3 WORDs entry for V_QWERTY driver (IP, CS, DS)
- 06h 3 WORDs entry for V_SOFTKEY driver (IP, CS, DS)
- 0Ch 3 WORDs entry for V_FUNCTION driver
- 12h 3 WORDs entry for V_NUMPAD driver
- 18h 3 WORDs entry for V_CCP driver
- --------b-166F05-----------------------------
- INT 16 - HP Vectra EX-BIOS - "F16_GET_MAPPING" - GET CURRENT KEY MAPPINGS
- AX = 6F05h
- ES:SI -> mapping buffer (see #0458)
- Return: AH = 00h (successful)
- CX = 001Eh (number of bytes in buffer)
- ES:SI buffer filled
- Note: supported by the original HP Vectra AT and ES/QS/RS series HP Vectras
- SeeAlso: AX=6F04h,AX=6F06h
- --------b-166F06-----------------------------
- INT 16 - HP Vectra EX-BIOS - "F16_SET_MAPPING" - SET KEY MAPPINGS
- AX = 6F06h
- CX = number of bytes in buffer (001Eh)
- ES:SI -> mapping buffer (see #0458)
- Return: AH = 00h (successful)
- Notes: supported by the original HP Vectra AT and ES/QS/RS series HP Vectras
- any application which modifies the key mappings should restore them
- before terminating
- drivers installed with this function are assured of 32 bytes of stack
- space when they are invoked
- SeeAlso: AX=6F04h,AX=6F05h,AX=6F07h
- --------b-166F07-----------------------------
- INT 16 - HP Vectra EX-BIOS - "F16_SET_XLATORS" - SET CCP AND SOFTKEY PADS
- AX = 6F07h
- BL = translation to set (see #0459)
- Return: AH = 00h (successful)
- Notes: supported by the original HP Vectra AT and ES/QS/RS series HP Vectras
- this function may no longer work properly if the application has
- modified the key mappings with AX=6F06h
- SeeAlso: AX=6F06h,AX=6F09h
-
- (Table 0459)
- Values for HP Vectra keyboard translation specifier:
- 00h map V_CCP to V_CCPCUR, forcing the cursor pad to return cursor keys
- 01h map V_CCP to V_CCPNUM, forcing the cursor pad to always return numbers
- 02h map V_CCP to V_OFF, disabling the cursor pad
- 03h map V_CCP to V_CCPGID, converting cursor pad keys to GID data
- 04h map V_CCP to V_RAW, passing cursor pad data untranslated to INT 09
- 05h map V_SOFTKEY to V_SKEY2KFEY, translating into standard function keys
- 06h map V_SOFTKEY to V_RAW, passing Softkey scancodes direct to INT 09
- 07h map V_SOFTKEY to V_OFF, disabling HP Softkeys
- SeeAlso: #0460
-
- (Table 0460)
- Values for HP Vectra scancodes and BIOS keycodes for V_RAW translator:
- INT 09 INT 16 keycode
- Key scan code Default Shifted Ctrl Alt
- * (NumPd) 37h 2Ah (Prt Sc) 00/72h 00/37H
- Sysreq 54h -- -- -- --
- CCP-Up 60h 00/D9h 00/BFh 00/A5h 00/8BH
- CCP-Left 61h 00/DAh 00/C0h 00/A6h 00/8CH
- CCP-Down 62h 00/DBh 00/C1h 00/A7h 00/8DH
- CCP-Right 63h 00/DCh 00/C2h 00/A8h 00/8EH
- CCP-Home 64h 00/DDh 00/C3h 00/A9h 00/8FH
- CCP-PgUp 65h 00/DEh 00/C4h 00/AAh 00/90H
- CCP-End 66h 00/DFh 00/C5h 00/ABh 00/91H
- CCP-PgDn 67h 00/E0h 00/C6h 00/ACh 00/92H
- CCP-Ins 68h 00/E1h 00/C7h 00/ADh 00/93H
- CCP-Del 69h 00/E2h 00/C8h 00/AEh 00/94H
- CCP-CNTR 6Ah 00/E3h 00/C9h 00/AFh 00/95H
- F1 70h 00/E9h 00/CFh 00/B5h 00/9BH
- F2 71h 00/EAh 00/D0h 00/B6h 00/9CH
- F3 72h 00/EBh 00/D1h 00/B7h 00/9DH
- F4 73h 00/ECh 00/D2h 00/B8h 00/9EH
- F5 74h 00/EDh 00/D3h 00/B9h 00/9FH
- F6 75h 00/EEh 00/D4h 00/BAh 00/A0H
- F7 76h 00/EFh 00/D5h 00/BBh 00/A1H
- F8 77h 00/F0h 00/D6h 00/BCh 00/A2H
- SeeAlso: #0005,#0459
- --------b-166F08-----------------------------
- INT 16 - HP Vectra EX-BIOS - "F16_KBD" - GET KEYBOARD INFORMATION
- AX = 6F08h
- Return: AH = status
- 00h successful
- 02h unsupported (non-HIL, i.e. standard, keyboard)
- BH = HP-HIL address (HP Vectra AT only???)
- BL = HP-HIL ID (HP Vectra AT only???)
- BL = keyboard language (ES/QS/RS only???) (see #0461)
- Notes: supported by the original HP Vectra AT and ES/QS/RS series HP Vectras
- the driver's address in the HP_VECTOR_TABLE (see INT 6F/AH=00h) may
- be computed as (BH-1)*6 + N, where N is the address of the first
- HP-HIL device driver (see INT 6F/AH=0Ah"SF_INQUIRE_FIRST")
- SeeAlso: AX=6F05h,AX=6F09h,INT 6F/AH=0Ah"SF_INQUIRE_FIRST"
-
- (Table 0461)
- Values for HP HIL keyboard language code:
- 00h reserved
- 01h Arabic-French
- 02h Kanji
- 03h Swiss-French
- 04h Portugese
- 05h Arabic
- 06h Hebrew
- 07h Canadian-English
- 08h Turkish
- 09h Greek
- 0Ah Thai
- 0Bh Italian
- 0Ch Hangul (Korean)
- 0Dh Dutch
- 0Eh Swedish
- 0Fh German
- 10h Chinese (PRC)
- 11h Chinese (Taiwan)
- 12h Swiss (French ii)
- 13h Spanish
- 14h Swiss (German ii)
- 15h Belgian (Flemish)
- 16h Finish
- 17h United Kingdom
- 18h French-Canadian
- 19h French-German
- 1Ah Norwegian
- 1Bh French
- 1Ch Danish
- 1Dh Katakana
- 1Eh Latin American Spanish
- 1Fh United States-American
- 20h-FEh reserved
- FFh non-HP keyboard (IBM AT keyboard and IBM Enhanced keyboard)
- --------b-166F09-----------------------------
- INT 16 - HP Vectra EX-BIOS - "F16_KBD_RESET" - RESET KEYBOARD TO DEFAULTS
- AX = 6F09h
- Return: AH = 00h (successful)
- Desc: reset all keyboard mappings to their default translators, and reset
- typematic values to their defaults
- Note: supported by the original HP Vectra AT and ES/QS/RS series HP Vectras
- SeeAlso: AX=6F04h,AX=6F07h,AX=6F08h
- --------b-166F0A-----------------------------
- INT 16 - HP Vectra ES/QS/RS EX-BIOS - READ PROCESSOR SPEED
- AX = 6F0Ah
- Return: AH = 00h (successful)
- BX = speed code
- 0Bh for low speed (see #0462)
- 12h for medium speed (see #0462)
- 0Ch for high speed (see #0462)
- Note: supported by ES, QS, and RS series of HP Vectras
- SeeAlso: AX=6F00h
-
- (Table 0462)
- Values for HP Vetra CPU speed:
- Vectra Low Medium High
- ES 8 MHz - 8 MHz
- ES/12 8 MHz - 12 MHz
- QS/16, RS/16 8 MHz - 16 MHz
- QS/16S 8 MHz - 16 MHz
- QS/20, RS/20 8 MHz - 20 MHz
- RS/20C 5 MHz 10 MHz 20 MHz
- RS/25C 5 MHz 12.5 MHz 25 MHz
- --------b-166F0B-----------------------------
- INT 16 - HP Vectra ES/QS/RS EX-BIOS - SET PROCESSOR SPEED TO LOW
- AX = 6F0Bh
- Return: AH = 00h (successful)
- Notes: see AX=6F0Ah for speed definitions
- supported by ES, QS, and RS series of HP Vectras
- SeeAlso: AX=6F00h,AX=6F0Ah
- --------b-166F0C-----------------------------
- INT 16 - HP Vectra ES/QS/RS EX-BIOS - SET PROCESSOR SPEED TO HIGH
- AX = 6F0Ch
- Return: AH = 00h (successful)
- Notes: see AX=6F0Ah for speed definitions
- supported by ES, QS, and RS series of HP Vectras
- SeeAlso: AX=6F00h,AX=6F0A
- --------b-166F0D-----------------------------
- INT 16 - HP Vectra ES/QS/RS EX-BIOS - GET HIL Extended BIOS INTERRUPT NUMBER
- AX = 6F0Dh
- Return: AH = interrupt number (default 6Fh, 02h means 6Fh as well)
- Notes: supported by ES, QS, and RS series of HP Vectras
- called by MS Windows HPSYSTEM.DRV and HPEBIOS.386 to support the HP-HIL
- input system
- SeeAlso: AX=6F00h,AX=6F0Eh,INT 6F"HP Vectra"
- --------b-166F0E-----------------------------
- INT 16 - HP Vectra ES/QS/RS EX-BIOS - SET HIL Extended BIOS INTERRUPT NUMBER
- AX = 6F0Eh
- BL = new interrupt number (60h-6Fh,78h-7Fh)
- Return: AH = status (00h = successful)
- Desc: allows the HIL Extended BIOS software to use a non-default interrupt
- number in case of an interrupt conflict with another application
- Notes: supported by ES, QS, and RS series of HP Vectras
- called by MS Windows HPSYSTEM.DRV and HPEBIOS.386 to support the HP-HIL
- input system
- SeeAlso: AX=6F00h,AX=6F0Dh,INT 6F"HP"
- --------b-166F0F-----------------------------
- INT 16 - HP Vectras RS/20C and RS/25C - ENABLE MEMORY CACHING
- AX = 6F0Fh
- Return: AH = status
- 00h successful
- FEh cache subsystem is bad
- SeeAlso: AX=6F00h,AX=6F10h,AX=6F11h
- --------b-166F10-----------------------------
- INT 16 - HP Vectras RS/20C and RS/25C - DISABLE MEMORY CACHING
- AX = 6F10h
- Return: AH = 00h (successful)
- SeeAlso: AX=6F00h,AX=6F0Fh,AX=6F11h
- --------b-166F11-----------------------------
- INT 16 - HP Vectras RS/20C and RS/25C - GET MEMORY CACHING STATE
- AX = 6F11h
- Return: AH = 00h (successful)
- AL bit 0 = cache state
- 0 cache disabled
- 1 cache enabled
- SeeAlso: AX=6F00h,AX=6F0Fh,AX=6F10h
- --------b-166F12-----------------------------
- INT 16 - HP Vectras RS/20C and RS/25C - SET PROCESSOR SPEED TO MEDIUM
- AX = 6F12h
- Return: AH = 00h (successful)
- Note: see AX=6F0Ah for speed definitions
- SeeAlso: AX=6F00h,AX=6F0Ah
- --------K-1670-------------------------------
- INT 16 - FAKEY.COM - INSTALLATION CHECK
- AH = 70h
- Return: AX = 1954h if installed
- Program: FAKEY is a keystroke faking utility by System Enhancement Associates
- --------K-1671-------------------------------
- INT 16 - FAKEY.COM - PUSH KEYSTROKES
- AH = 71h
- CX = number of keystrokes
- DS:SI -> array of words containing keystrokes to be returned by AH=00h
- Program: FAKEY is a keystroke faking utility by System Enhancement Associates
- SeeAlso: AH=05h,AH=72h
- --------K-1672-------------------------------
- INT 16 - FAKEY.COM - CLEAR FAKED KEYSTROKES
- AH = 72h
- Program: FAKEY is a keystroke faking utility by System Enhancement Associates
- SeeAlso: AH=71h
- --------K-1673-------------------------------
- INT 16 - FAKEY.COM - PLAY TONES
- AH = 73h
- CX = number of tones to play
- DS:SI -> array of tones (see #0463)
- Program: FAKEY is a keystroke faking utility by System Enhancement Associates
- SeeAlso: INT 15/AX=1019h
-
- Format of FAKEY.COM tone array entries:
- Offset Size Description (Table 0463)
- 00h WORD divisor for timer channel 2
- 02h WORD duration in clock ticks
- --------i-167463-----------------------------
- INT 16 U - FastJuice - INSTALLATION CHECK
- AX = 7463h ("tc")
- Return: AX = 5443h ("TC") if installed
- Program: FastJuice is a resident battery-power monitor by SeaSide Software
- SeeAlso: AX=6A6Bh
- --------R-1675-------------------------------
- INT 16 - pcANYWHERE III - SET TICK COUNT FOR SCANNING
- AH = 75h
- AL = number of ticks between checks for new screen changes
- --------R-1676-------------------------------
- INT 16 - pcANYWHERE III - SET ERROR CHECKING TYPE
- AH = 76h
- AL = error checking type
- 00h none
- 01h fast
- 02h slow
- --------R-1677-------------------------------
- INT 16 - pcANYWHERE III - LOG OFF
- AH = 77h
- AL = mode
- 00h wait for another call
- 01h leave in Memory Resident Mode
- 02h leave in Automatic Mode
- FFh leave in current operating mode
- --------U-167761-----------------------------
- INT 16 - WATCH.COM v2.x-v3.0 - INSTALLATION CHECK
- AX = 7761h ('wa')
- Return: AX = 5741h ('WA') if installed
- Note: WATCH.COM is part of the "TSR" package by Kim Kokkonen
- SeeAlso: INT 21/AX=7761h
- --------U-167788BX7789-----------------------
- INT 16 - PC Magazine PUSHDIR.COM - INSTALLATION CHECK
- AX = 7788h
- BX = 7789h
- DS:SI -> signature "PUSHDIR VERSION 1.0"
- Return: AX = 7789h if installed and signature correct
- BX = 7788h
- SI destroyed
- --------R-1679-------------------------------
- INT 16 - pcANYWHERE III - CHECK STATUS
- AH = 79h
- Return: AX = status
- FFFFh if resident and active
- FFFEh if resident but not active
- FFFDh if in Memory Resident mode
- FFFCh if in Automatic mode
- other value if not resident
- SeeAlso: AX=7B00h,INT 21/AX=2B44h
- --------R-167A-------------------------------
- INT 16 - pcANYWHERE III - CANCEL SESSION
- AH = 7Ah
- --------R-167B00-----------------------------
- INT 16 - pcANYWHERE III - SUSPEND
- AX = 7B00h
- SeeAlso: AH=79h,AX=7B01h
- --------R-167B01-----------------------------
- INT 16 - pcANYWHERE III - RESUME
- AX = 7B01h
- SeeAlso: AH=79h,AX=7B00h
- --------R-167C-------------------------------
- INT 16 - pcANYWHERE III - GET PORT CONFIGURATION
- AH = 7Ch
- Return: AH = port number
- AL = baud rate (see #0464)
- SeeAlso: AX=7B00h,AH=7Eh
-
- (Table 0464)
- Values for pcANYWHERE III baud rate:
- 00h 50 baud
- 01h 75 baud
- 02h 110 baud
- 03h 134.5 baud
- 04h 150 baud
- 05h 300 baud
- 06h 600 baud
- 07h 1200 baud
- 08h 1800 baud
- 09h 2000 baud
- 0Ah 2400 baud
- 0Bh 4800 baud
- 0Ch 7200 baud
- 0Dh 9600 baud
- 0Eh 19200 baud
- SeeAlso: #0206
- --------R-167D-------------------------------
- INT 16 - pcANYWHERE III - GET/SET TERMINAL PARAMETERS
- AH = 7Dh
- AL = subfunction
- 00h set terminal parameters
- 01h get terminal parameters
- 02h get configuration header and terminal parameters
- DS:CX -> terminal parameter block
- SeeAlso: AH=7Ch,AH=7Eh
- --------R-167E-------------------------------
- INT 16 - pcANYWHERE III - COMMUNICATIONS I/O THROUGH PORT
- AH = 7Eh
- AL = subfunction
- 01h port input status
- Return AX = 0 if no characer ready,
- AX = 1 if character ready
- 02h port input character
- Return AL = received character
- 03h port output character in CX
- 11h hang up phone
- SeeAlso: AH=7Ch
- --------R-167F-------------------------------
- INT 16 - pcANYWHERE III - SET KEYBOARD/SCREEN MODE
- AH = 7Fh
- AL = subfunction
- 00h enable remote keyboard only
- 01h enable host keyboard only
- 02h enable both keyboards
- 08h display top 24 lines
- 09h display bottom 24 lines
- 10h Hayes modem
- 11h other modem
- 12h direct connect
- --------U-1680-------------------------------
- INT 16 - MAKEY.COM - INSTALLATION CHECK
- AH = 80h
- Return: AX = 1954h if installed
- Program: MAKEY is a utility by System Enhancement Associates
- --------U-168765BX4321-----------------------
- INT 16 - AT.COM version 8/26/87 - API
- AX = 8765h
- BX = 4321h
- CX = ??? or FFFFh
- if CX = FFFFh
- DX = number of event to remove or FFFFh
- Return: ES:BX -> event record array (see #0465)
- Program: AT.COM is a resident scheduler by Bill Frolik
-
- Format of AT.COM event record:
- Offset Size Description (Table 0465)
- 00h BYTE in-use flag (00h free, 01h in use, FFh end of array)
- 01h BYTE day of date on which to trigger
- 02h BYTE month of date on which to trigger
- 03h BYTE trigger time, minute
- 04h BYTE trigger time, hour
- 05h WORD offset of command to be executed
- --------K-1692-------------------------------
- INT 16 - KEYB.COM KEYBOARD CAPABILITIES CHECK (not an actual function!)
- AH = 92h
- Return: AH <= 80h if enhanced keyboard functions (AH=10h-12h) supported
- Desc: this function is called by the DOS 3.2 KEYBxx.COM and DOS 5+ KEYB.COM
- to determine the highest supported keyboard function
- Note: many BIOSes (including at least some versions of Phoenix and AMI) will
- destroy AH on return from functions higher than AH=12h, returning
- 12h less than was in AH on entry (due to a chain of DEC/JZ
- instructions)
- SeeAlso: AH=05h"PCjr",AH=A2h
- --------U-1699-------------------------------
- INT 16 - SCOUT v5.4 - GET ???
- AH = 99h
- Return: AX = ABCDh
- BX:CX -> ??? (appears to be start of PSP for resident portion)
- Program: Scout is a memory-resident file manager by New-Ware
- SeeAlso: AH=9Eh
- --------U-169E-------------------------------
- INT 16 - SCOUT v5.4 - INSTALLATION CHECK
- AH = 9Eh
- Return: AX = ABCDh if installed
- Program: Scout is a memory-resident file manager by New-Ware
- SeeAlso: AH=99h
- --------K-16A2-------------------------------
- INT 16 - KEYB.COM KEYBOARD CAPABILITIES CHECK (not an actual function!)
- AH = A2h
- Return: AH <= 80h if 122-key keyboard functions (AH=20h-22h) supported
- Desc: this function is called by the DOS 3.2 KEYBxx.COM and DOS 5+ KEYB.COM
- to determine the highest supported keyboard function
- Note: many BIOSes (including at least some versions of Phoenix and AMI) will
- destroy AH on return from functions higher than AH=12h, returning
- 12h less than was in AH on entry (due to a chain of DEC/JZ
- instructions)
- SeeAlso: AH=05h"PCjr",AH=92h
- --------V-16AA-------------------------------
- INT 16 - PTxxx.COM - (xxx=CGA,EGA,VGA,HER...) CALL GATE FOR GRAPHICS
- AH = AAh
- Various registers set up by high level language.
- Return: Graphics performed
- Note: PT stands for Paint Tools which is a graphics library for Turbo Pascal,
- Modula 2 and others from DataBiten in Sweden. The library is
- installed as a memory resident driver.
- --------U-16AABBBXEEFF-----------------------
- INT 16 U - JORJ v4.3 - INSTALLATION CHECK
- AX = AABBh
- BX = EEFFh
- Return: AX = EEFFh if installed
- BX = AABBh if installed
- CL = hotkey name (default 6Ah 'j' for Alt-J)
- Program: JORJ is a shareware dictionary with phonetic lookup by Jorj Software
- Co.
- Index: hotkeys;JORJ
- --------K-16AF20BX4B33-----------------------
- INT 16 - K3PLUS v6.00+ (API v2.0+) - GET EXTENDED BUFFER STATE
- AX = AF20h
- BX = 4B33h ('K3')
- Return: AX = K3 version (same as returned in BX by AX=AF4Dh)
- ES:BX -> extended keyboard buffer start
- ES:DX -> extended keyboard buffer end
- ES:SI -> next keystroke
- ES:DI -> last keystroke in buffer
- CX = number of keystrokes in buffer
- Program: K3PLUS is an enhancement by Matthias Paul and Axel C. Frinke of the
- K3 extended German keyboard driver by Martin Gerdes published in c't
- magazine in 1988
- Note: this function replaces the identical function AH=20h"K3"
- SeeAlso: AH=20h"K3",AX=AF25h,AX=AF4Dh,AX=AF50h,INT 2F/AX=ED58h
- --------K-16AF25BX4B33-----------------------
- INT 16 - K3PLUS v6.00+ (API v2.0+) - COPY INTO EXTENDED BUFFER
- AX = AF25h
- BX = 4B33h ('K3')
- CX = number of keystrokes to copy
- ES:SI -> buffer containing keystrokes
- Return: CF clear if successful
- CF set on error (i.e. buffer full)
- CX = number of keystrokes NOT transferred
- ES:SI -> first keystroke not transferred
- Note: this function replaces the identical function AH=25h"K3"
- SeeAlso: AH=25h"K3",AX=AF20h,AX=AF4Dh,AX=AF50h,INT 2F/AX=D44Fh/BX=0001h
- --------K-16AF4DBX4B33-----------------------
- INT 16 - K3PLUS v6.00+ (API v2.0+) - GET VERSION INFORMATION
- AX = AF4Dh
- BX = 4B33h ('K3')
- Return: AL = 50h if installed
- BX = K3 version
- DX = API version
- ES:CX -> K3 structure (version-dependent) (see #0466)
- Program: K3PLUS is an enhancement by Matthias Paul and Axel C. Frinke of the
- K3 extended German keyboard driver by Martin Gerdes published in c't
- magazine in 1988
- SeeAlso: AX=AF20h,AX=AF50h,AX=AF80h,AX=AF83h,INT 2F/AX=D44Fh/BX=0000h
- SeeAlso: INT 2F/AX=ED58h
- Index: installation check;K3PLUS
-
- Format of internal K3 structure:
- Offset Size Description (Table 0466)
- 00h 3 BYTEs signature "K3$"
- 03h BYTE length of structure, including this byte and signature
- 04h WORD compiler switch option flags A (see #0467)
- 06h WORD compiler switch option flags B (see #0468)
- 08h BYTE internal flags A (see #0469)
- 09h BYTE internal flags B (see #0470)
- 0Ah WORD DOS version recorded at startup
- 0Ch WORD "ActTypeSpeed"
- 0Eh WORD last Keyboard-ID sent
- 41ABh translated, 83ABh native (pass-through)
- 10h WORD offset of K3TAB Special
- 12h WORD offset of K3TAB German
- 14h WORD offset of K3TAB Alt
- 16h WORD offset of K3TAB AltGr
- 18h WORD offset of K3TAB Ctrl
- 1Ah WORD offset of K3TAB NPad
- 1Ch WORD offset of K3TAB CtrlNPad
- 1Eh WORD offset of K3TAB AltNPad
- 20h WORD offset of K3TAB ApoTbl or 0000h
- 22h WORD offset of K3TAB UmlautTbl or 0000h
- 24h WORD offset of K3TAB UmlautTblExp or 0000h
- 26h WORD length of video mode table
- 28h WORD offset of VidMdTbl or 0000h
- 2Ah BYTE '$' end marker
-
- Bitfields for K3PLUS compiler switch option flags A:
- Bit(s) Description (Table 0467)
- 15 GuINT16Fct2 (general use of INT 16 function 2)
- 14 Int15df (INT 15 has to be predefined)
- 13 GuAltNP (general use of Alt Numpad)
- 12 SupAT (ATs+ supported)
- 11 GuINT16Fct3 (general use of INT 16 function 3)
- 10 GuINT16Ret (general use of INT16 bad function return)
- 9-8 Layout (0-2, 3 reserved; 0=PC, 1=AT, 2=MF)
- 7 ForceMF (force MF decode without read-ID)
- 6 KXlate (translate keys for special keyboard)
- 5 UmlautX (umlaut translation capability included)
- 4 ApoX (translate apostrophe)
- 3 DoINT16 (INT 16 handler included)
- 2 UseCC (CopyCursor included)
- 1-0 UseEB
- 0=no extended keystroke buffer, 1=reserve mem, 2=use PSP, 3=reserved
-
- Bitfields for K3 compiler switch option flags B:
- Bit(s) Description (Table 0468)
- 15-11 reserved (0)
- 10 CtrlSeq (Ctrl macro capability included)
- 9-8 SupINT16fct55FE
- 6 DoInstallCheck (check for double installation)
- 5 SupINT16fct5PcJr (INT 16/AH=05h"PCjr" supported)
- 4 SendOut (sound and message output supported)
- 3 SupInt16fct5500 (INT 16/AX=5500h supported)
- 2 GuINT15Fct4F (calls to INT 15/AH=4Fh supported)
- 1-0 UseBufferStart (0=use standard area, 1=set standard area,
- 2=use internal indexes, 3=reserved)
-
- Bitfields for K3 internal flags A:
- Bit(s) Description (Table 0469)
- 7 DoingUmlautExp
- 6 CallINT15fct4F
- 5 Beep1 (requires SendOut set in option flags B)
- 4 ATflag (set for AT, 386, PS/2 Models 50-80)
- 3 XTflag (set for PC, PC/XT, Micromint PC, Pencock PC, PS/2 Model 30)
- 2 KeyClick
- 1 UmlautExp
- 0 UmlautTrans
-
- Bitfields for K3 internal flags B:
- Bit(s) Description (Table 0470)
- 7-5 reserved
- 4 TranslateE0 enabled
- 3 Boot enabled
- 2 PrintScreen enabled
- 1 Break enabled
- 0 ApoPendingBeep
- --------K-16AF50BX4B33-----------------------
- INT 16 - K3PLUS v6.00+ (API v2.0+) - CHECK IF FUNCTION SUPPORTED
- AX = AF50h
- BX = 4B33h ('K3')
- CH = function
- 00h get function flags
- CL = 00h
- Return: CX = supported function flags (see #0471)
- nonzero reserved for extensions
- SeeAlso: AX=AF20h,AX=AF4Dh,AX=AF51h,AX=AF80h
-
- Bitfields for K3PLUS supported function list:
- Bit(s) Description (Table 0471)
- 0 function 4Dh supported
- 1 function 50h supported
- 2-3 reserved (0)
- 4 function 20h supported
- 5 function 25h supported
- 6 function 51h supported
- 7 reserved (0)
- 8 function 80h supported
- 9 function 81h supported
- 10 function 82h supported
- 11-15 reserved (0)
- --------K-16AF51BX4B33-----------------------
- INT 16 - K3PLUS v6.00+ (API v2.00+) - SET OPTIONS
- AX = AF51h
- BX = 4B33h ('K3')
- CX = switches
- Return: AL = status
- 00h done
- CX = previous switch settings
- 01h switch not supported
- FFh other error
- SeeAlso: AX=AF4Dh,AX=AF50h,AX=AF80h
- --------K-16AF80BX4B33-----------------------
- INT 16 - K3PLUS v6.00+ (API v2.00+) - GET ORIGINAL INT 09h VECTOR
- AX = AF80h
- BX = 4B33h ('K3')
- Return: AL = status
- 00h not supported
- 81h if successful
- ES:CX -> original INT 09 handler
- SeeAlso: AX=AF4Dh,AX=AF50h,AX=AF81h,AX=AF82h
- --------K-16AF81BX4B33-----------------------
- INT 16 - K3PLUS v6.00+ (API v2.00+) - GET ORIGINAL INT 16h HANDLER
- AX = AF81h
- BX = 4B33h ('K3')
- Return: AL = status
- 00h not supported
- 82h if successful
- ES:CX -> original INT 16 handler
- SeeAlso: AX=AF4Dh,AX=AF50h,AX=AF80h,AX=AF82h
- --------K-16AF82BX4B33-----------------------
- INT 16 - K3PLUS v6.00+ (API v2.00+) - GET ORIGINAL INT 10h HANDLER
- AX = AF82h
- BX = 4B33h ('K3')
- Return: AL = status
- 00h not supported
- 83h if successful
- ES:CX -> original INT 10 handler
- Program: K3PLUS is an enhancement by Matthias Paul and Axel C. Frinke of the
- K3 extended German keyboard driver by Martin Gerdes published in c't
- magazine in 1988
- SeeAlso: AX=AF4Dh,AX=AF50h,AX=AF80h,AX=AF81h,INT 2F/AX=ED58h
- --------m-16B0B1-----------------------------
- INT 16 - VGARAM v1.00 - INSTALLATION CHECK
- AX = B0B1h
- ES:DI -> 6 byte signature "VGARAM"
- Return: AX = B1B0h if installed,
- DS:BX -> VGARAM Status byte: 0 = OFF, 1 = ON
- Program: VGARAM is a utility by Brett Warthen which makes VGA memory which is
- not used in text modes available for DOS
- --------K-16CA--BX736B-----------------------
- INT 16 - CtrlAlt Associates STACKEY.COM v3.00 - API
- AH = CAh
- BX = 736Bh ("sk")
- CX = 736Bh
- AL = function
- 00h installation check
- Return: DX = words available in keyboard buffer
- 01h place keystroke in buffer
- DX = keystroke (DH = scan code, DL = ASCII character)
- Return: DX = words available in keyboard buffer
- FFFFh on error
- 02h flush STACKEY and BIOS keyboard buffers
- Return: AX = CAFFh if installed
- BX = segment of resident code
- CX = STACKEY version (CH = major, CL = minor)
- Program: STACKEY is a shareware keyboard-input faking TSR
- Index: installation check;STACKEY
- --------V-16CA00BX6570-----------------------
- INT 16 - CtrlAlt Associates EGAPAL.COM v1.00 - INSTALLATION CHECK
- AX = CA00h
- BX = 6570h ("ep")
- CX = 6570h
- Return: AX = CAFFh if installed
- BX = segment of resident code
- CX = ??? (0090h)
- Program: EGAPAL is a TSR supplied with STACKEY which makes EGA palette settings
- permanent across mode switches
- SeeAlso: AX=CA00h/BX=7670h
- --------V-16CA00BX7670-----------------------
- INT 16 - CtrlAlt Associates VGAPAL.COM v1.00 - INSTALLATION CHECK
- AX = CA00h
- BX = 7670h ("vp")
- CX = 7670h
- Return: AX = CAFFh if installed
- BX = segment of resident code
- CX = ??? (0090h)
- Program: VGAPAL is a TSR supplied with STACKEY which makes VGA palette settings
- permanent across mode switches
- SeeAlso: AX=CA00h/BX=6570h
- --------U-16CB00-----------------------------
- INT 16 - PUPClip v1.12+ - INSTALLATION CHECK
- AX = CB00h
- Return: BX = 4342h if installed
- AX = version (AH = major version, AL = BCD minor version)
- Program: PUPClip is the freeware PopUP Clipboard for DOS and Windows DOS
- sessions by SkullC0DEr
- SeeAlso: AX=CB01h,AX=CB02h,AX=CB03h,AX=CB04h,AX=CB05h,AX=CB06h,AX=CB08h
- SeeAlso: INT 2F/AX=1701h
- --------U-16CB01-----------------------------
- INT 16 - PUPClip v1.12+ - GET CLIPBOARD CURSOR POSITION
- AX = CB01h
- Return: BL = column (0-79)
- BH = row (0-49)
- SeeAlso: AX=CB00h,AX=CB02h,AX=CB03h
- --------U-16CB02-----------------------------
- INT 16 - PUPClip v1.12+ - SET CLIPBOARD CURSOR POSITION
- AX = CB02h
- BL = column (0-79)
- BH = row (0-49)
- Return: CF clear if successful
- CF set on error (invalid position)
- SeeAlso: AX=CB00h,AX=CB01h,AX=CB04h
- --------U-16CB03-----------------------------
- INT 16 - PUPClip v1.12+ - GET CHARACTER FROM CURRENT CLIPBOARD CURSOR POSITION
- AX = CB03h
- Return: BL = ASCII character at current position
- SeeAlso: AX=CB00h,AX=CB02h,AX=CB04h,INT 2F/AX=1705h
- --------U-16CB04-----------------------------
- INT 16 - PUPClip v1.12+ - WRITE CHARACTER TO CURRENT CLIPBOARD CURSOR POSITION
- AX = CB04h
- BL = ASCII character to store
- SeeAlso: AX=CB00h,AX=CB02h,AX=CB03h,AX=CB05h,INT 2F/AX=1703h
- --------U-16CB05-----------------------------
- INT 16 - PUPClip v1.12+ - CLEAR CLIPBOARD CONTENTS
- AX = CB05h
- Return: nothing
- SeeAlso: AX=CB00h,AX=CB04h,AX=CB06h,AX=CB07h,INT 2F/AX=1702h
- --------U-16CB06-----------------------------
- INT 16 - PUPClip v1.12+ - SCROLL UP CLIPBOARD CONTENTS
- AX = CB06h
- Return: nothing
- SeeAlso: AX=CB00h,AX=CB05h,AX=CB07h
- --------U-16CB07-----------------------------
- INT 16 - PUPClip v1.12+ - SCROLL DOWN CLIPBOARD CONTENTS
- AX = CB07h
- Return: nothing
- SeeAlso: AX=CB00h,AX=CB05h,AX=CB06h
- --------U-16CB08-----------------------------
- INT 16 - PUPClip v1.12+ - POP UP
- AX = CB08h
- Return: CF clear if successful
- CF set on error (unsupported video mode)
- SeeAlso: AX=CB00h
- --------U-16D724CX00CB-----------------------
- INT 16 U - APCAL v3.20 - GET ???
- AX = D724h
- CX = 00CBh
- Return: AX = 0000h
- BX = 0000h
- DX:CX -> ??? or 0000h:0000h
- Program: APCAL is an optionally-resident shareware appointment calendar by
- Gamma Software
- SeeAlso: AX=3577h,AX=D724h/CX=00CCh,AX=D724h/CX=00CDh
- --------U-16D724CX00CC-----------------------
- INT 16 U - APCAL v3.20 - GET ???
- AX = D724h
- CX = 00CCh
- Return: AX = 0000h
- BX = 0000h
- DX:CX -> ??? (apparently an internal data area)
- SeeAlso: AX=D724h/CX=00CBh,AX=D724h/CX=00CDh
- --------U-16D724CX00CD-----------------------
- INT 16 U - APCAL v3.20 - GET ???
- AX = D724h
- CX = 00CDh
- Return: AX = ??? (5345h seen)
- SeeAlso: AX=D724h/CX=00CBh,AX=D724h/CX=00CCh
- --------v-16DD--------------------------
- INT 16 - VIRUS - "Frumble" - INSTALLATION CHECK
- AH = DDh
- Return: AL = DDh if resident
- SeeAlso: INT 13/AX=FD50h,INT 21/AX=0B56h
- ----------16DFDF-----------------------------
- INT 16 U - Corel PowerSCSI - FDAUDIO.COM - INSTALLATION CHECK
- AX = DFDFh
- Return: ES:DI -> ASCII signature "FDAUDIO/CD" followed by ASCII date, i.e.
- "06/18/93" if installed
- --------b-16E000-----------------------------
- INT 16 - AMI BIOS - BIOS-FLASH Interface - GET VERSION NUMBER
- AX = E000h
- Return: CF clear if successful
- AL = FAh
- BX = version number (BCD) (0200h = v2.00)
- CF set on error (not implemented)
- Notes: this interface is available on AMI BIOSes built from AMI core version
- 8/8/93 (HiFlex BIOS) or 11/15/93 (WinBIOS) or later
- the "Meningitis" virus uses this API when attacking a system equipped
- with an AMI BIOS; it is supposedly able to write itself into the
- Flash ROM and thus make itself part of the BIOS
- SeeAlso: AX=E001h,AX=E004h,AX=E006h,AX=E008h,AX=E00Ah,AX=E00Bh,AX=E0FFh
- --------b-16E001-----------------------------
- INT 16 - AMI BIOS - BIOS-FLASH Interface - GET CHIPSET SAVE/RESTORE SIZE
- AX = E001h
- Return: CF clear if successful
- AL = FAh
- BX = number of bytes required to save chipset configuration
- CF set on error
- SeeAlso: AX=E000h,AX=E002h,AX=E003h
- --------b-16E002-----------------------------
- INT 16 - AMI BIOS - BIOS-FLASH Interface - SAVE CHIPSET STATUS & PREPARE CHPSET
- AX = E002h
- ES:DI -> buffer for storing chipset status
- Return: CF clear if successful
- AL = FAh
- CF set on error
- SeeAlso: AX=E000h,AX=E001h,AX=E003h
- --------b-16E003-----------------------------
- INT 16 - AMI BIOS - BIOS-FLASH Interface - RESTORE CHIPSET STATUS
- AX = E003h
- ES:DI -> buffer in which chipset status was previously stored
- Return: CF clear if successful
- AL = FAh
- CF set on error
- SeeAlso: AX=E000h,AX=E001h,AX=E002h
- --------b-16E004-----------------------------
- INT 16 - AMI BIOS - BIOS-FLASH Interface - LOWER PROGRAMMING VOLTAGE Vpp
- AX = E004h
- Return: CF clear if successful
- AL = FAh
- CF set on error
- Note: this function does not return until the voltage level stabilizes
- SeeAlso: AX=E000h,AX=E005h,AX=E006h
- --------b-16E005-----------------------------
- INT 16 - AMI BIOS - BIOS-FLASH Interface - RAISE PROGRAMMING VOLTAGE Vpp
- AX = E005h
- Return: CF clear if successful
- AL = FAh
- CF set on error
- Note: this function does not return until the voltage level stabilizes
- SeeAlso: AX=E000h,AX=E004h,AX=E007h
- --------b-16E006-----------------------------
- INT 16 - AMI BIOS - BIOS-FLASH Interface - FLASH WRITE PROTECT
- AX = E006h
- Return: CF clear if successful
- AL = FAh
- CF set on error
- Note: this function performs any delay required to allow the Flash ROM to
- stabilize in the write-protected state
- SeeAlso: AX=E000h,AX=E004h,AX=E007h
- --------b-16E007-----------------------------
- INT 16 - AMI BIOS - BIOS-FLASH Interface - FLASH WRITE ENABLE
- AX = E007h
- Return: CF clear if successful
- AL = FAh
- CF set on error
- Note: this function performs any delay required to allow the Flash ROM to
- stabilize in the write-enabled state
- SeeAlso: AX=E000h,AX=E005h,AX=E006h,AX=E008h
- --------b-16E008-----------------------------
- INT 16 - AMI BIOS - BIOS-FLASH Interface - FLASH SELECT
- AX = E008h
- Return: CF clear if successful
- AL = FAh
- CF set on error
- Desc: select the Flash ROM if the system contains both EPROM and Flash ROM
- Note: this function performs any delay required to allow the Flash ROM to
- stabilize in the selected state; if no EPROM is present, this
- function always returns successfully
- SeeAlso: AX=E000h,AX=E007h,AX=E009h
- --------b-16E009-----------------------------
- INT 16 - AMI BIOS - BIOS-FLASH Interface - FLASH DE-SELECT
- AX = E009h
- Return: CF clear if successful
- AL = FAh
- CF set on error
- Desc: select the EPROM if the system contains both EPROM and Flash ROM
- Note: this function performs any delay required to allow the Flash ROM to
- stabilize in the de-selected state; if no EPROM is present, this
- function always returns successfully
- SeeAlso: AX=E000h,AX=E006h,AX=E008h
- --------b-16E00A-----------------------------
- INT 16 - AMI BIOS - BIOS-FLASH Interface - VERIFY ALLOCATED MEMORY
- AX = E00Ah
- BX = number of paragraphs
- ES = starting segment of memory
- Return: CF clear if successful
- AL = FAh
- CF set on error
- Desc: determine whether the specified memory may be used for flash
- programming
- Note: always returns error if BX is zero on entry
- SeeAlso: AX=E000h,AX=E00Bh
- --------b-16E00B-----------------------------
- INT 16 - AMI BIOS - BIOS-FLASH Interface - SAVE INTERNAL CACHE STATUS
- AX = E00Bh
- ES:DI -> buffer for internal cache status (minimum 4Kbytes)
- Return: CF clear if successful
- AL = FAh
- CF set on error
- Note: always returns error if the hardware does not contain internal
- cache or this call is made in protected mode
- SeeAlso: AX=E000h,AX=E00Ah,AX=E00Ch
- --------b-16E00C-----------------------------
- INT 16 - AMI BIOS - BIOS-FLASH Interface - RESTORE INTERNAL CACHE STATUS
- AX = E00Ch
- ES:DI -> buffer containing internal cache status (minimum 4Kbytes)
- Return: CF clear if successful
- AL = FAh
- CF set on error
- Note: always returns error if the hardware does not contain internal
- cache or this call is made in protected mode
- SeeAlso: AX=E000h,AX=E00Bh
- --------t-16E0E0-----------------------------
- INT 16 - TurboPower TSRs - ALTERNATE INSTALLATION CHECK
- AX = E0E0h
- Return: AX = 1F1Fh if installed
- DWORD 0040h:00F0h -> last data block in TSR list (see #0473)
- Note: the returned TSR list provides support for communication among TSRs
- built with TurboPower's Turbo Professional and Object Professional
- libraries for Turbo Pascal
- SeeAlso: AX=F0F0h
- --------b-16E0FF-----------------------------
- INT 16 - AMI BIOS - BIOS-FLASH Interface - GENERATE CPU RESET
- AX = E0FFh
- Return: never
- SeeAlso: AX=E000h,INT 14/AH=17h"FOSSIL"
- --------U-16ED--BHED-------------------------
- INT 16 - BORLAND TURBO LIGHTNING - API
- AH = EDh
- BH = EDh
- BL = function
- 00h installation check
- Return: AX = 5205h
- CH = major version
- CL = minor version
- 01h identical to function 00h???
- 02h get resident data segment
- Return: AX = data segment of resident portion
- 03h get resident ???
- Return: AX = offset of some buffer in resident code seg
- 04h redefine auxiliary dictionary
- DS:SI -> counted filename string
- Return: AL = result code
- 05h select active environment
- AL = environment (00h to 0Ch)
- Return: AX = status
- 0000h if OK
- 0001h if out of range
- 06h toggle AutoProof???
- AL = state (00h off, 01h on)
- 07h ???
- 08h ???
- AL = char???
- CX = ???
- DX = ???
- Return: AX = 0, 1 or 2
- 09h ???
- 0Ah ???
- CX = ???
- DX = ???
- Return: AX = ???
- 0Bh check dictionary integrity???
- DS:SI -> counted dictionary filename string
- Return: AX = 0, 40h, 80h
- 0Ch spellcheck string (disk dictionary, possibly RAM dict as well)
- DS:SI -> counted string to check
- Return: AH = 0
- AL = result code
- 00h string found in dictionary
- 20h string begins more than one word
- 40h string not found
- 0Dh set ???
- (sets an internal flag)
- 0Eh spellcheck string (RAM dictionary only)
- DS:SI -> counted string to check
- Return: AH = 00h
- AL = result code
- 00h string found in dictionary
- 01h string not found
- 02h ???
- 0Fh ???
- 10h ???
- Notes: AX in general returns an error code from most functions.
- Index: installation check;Turbo Lightning
- --------U-16EF-------------------------------
- INT 16 - CALCULATOR - INSTALLATION CHECK
- AH = EFh
- Return: AX = 0088h if installed
- Program: CALCULATOR is a shareware popup calculator by Andrzej Brzezinski and
- Marek Kosznik
- --------b-16F0-------------------------------
- INT 16 - Compaq 386 and newer - SET CPU SPEED
- AH = F0h
- AL = speed code (see #0472)
- if AL=09h,
- CX = speed value, 1 (slowest) to 50 (full), 3 ~= 8088
- Note: also supported by some versions of AMI BIOS dated June 1992 or later;
- speed codes 0 or 1 are used for Low Speed, 2 for High Speed
- SeeAlso: AH=F1h,AH=F3h
-
- (Table 0472)
- Values for speed code:
- 00h equivalent to 6 MHz 80286 (COMMON)
- 01h equivalent to 8 MHz 80286 (FAST)
- 02h full 16 MHz (HIGH)
- 03h toggles between 8 MHz-equivalent and speed set by system board switch
- (AUTO or HIGH)
- 08h full 16 MHz except 8 MHz-equivalent during floppy disk access
- 09h specify speed directly
- --------t-16F0F0-----------------------------
- INT 16 - TurboPower TSRs - INSTALLATION CHECK
- AX = F0F0h
- Return: AX = 0F0Fh if installed
- ES:DI -> last data block in TSR list (see #0473)
- Note: the returned TSR list provides support for communication among TSRs
- built with TurboPower's Turbo Professional and Object Professional
- libraries for Turbo Pascal
- SeeAlso: AX=E0E0h
-
- Format of TurboPower TSR data block:
- Offset Size Description (Table 0473)
- 00h DWORD pointer to program tag (counted ASCII string)
- 04h WORD interface version number (0400h)
- 06h DWORD pointer to command entry point
- 0Ah DWORD pointer to previous data block (0000h:0000h if none)
- 0Eh DWORD pointer to next data block (0000h:0000h if none)
- ---swappable TSRs only---
- 12h DWORD pointer to swapping data
- 16h DWORD pointer to user data
- more???
- --------b-16F1-------------------------------
- INT 16 - Compaq 386 and newer - READ CURRENT CPU SPEED
- AH = F1h
- Return: AL = speed code (see #0472)
- if AL = 09h, CX = speed code
- Note: also supported by some versions of AMI BIOS dated June 1992 or later
- SeeAlso: AH=F0h,AH=F3h
- --------b-16F2-------------------------------
- INT 16 - Compaq 386 and newer - DETERMINE ATTACHED KEYBOARD TYPE
- AH = F2h
- Return: AL = type
- 00h if 11-bit AT keyboard is in use
- 01h if 9-bit PC keyboard is in use
- AH = 00h (04/08/93 system ROM)
- --------b-16F3-------------------------------
- INT 16 - Compaq 80286s - SET CPU SPEED LIMIT (OVERRIDE JUMPER)
- AH = F3h
- AL = new limit
- 00h limit is 6 Mhz
- 01h limit is 8 Mhz/6 Mhz
- SeeAlso: AH=F0h,AH=F1h
- --------U-16F398-----------------------------
- INT 16 U - NORTON GUIDES - INSTALLATION CHECK
- AX = F398h
- Return: AX = 6A73h ("js")
- BH = scan code of current hot key
- BL = ASCII code of current hot key
- Note: NG.EXE was written by John Socha
- --------b-16F400-----------------------------
- INT 16 - Compaq Systempro and higher - CACHE CONTROLLER STATUS
- AX = F400h
- Return: AH = E2h (*)
- AL = status
- 00h not present
- 01h enabled
- 02h disabled
- CX = cache memory size
- bit 15: cache size information is NOT valid
- bits 14-0: cache memory size in kilobytes
- DH = cache write technology
- bit 7: cache write information is NOT valid
- bits 6-1: reserved (0)
- bit 0: 0 = Write-through caching
- 1 = Write-back caching
- DL = cache type
- bit 7: cache type information is NOT valid
- bits 6-1: reserved (0)
- bit 0: 0 = Direct mapped
- 1 = Two-way set-associative
- Notes: also supported by some versions of AMI BIOS dated June 1992 or later
- many (most) BIOSes return a modified AH when called for an unsupported
- or non-keyboard function (typically, the highest supported keyboard
- function [normally 12h] is subtracted from the original AH)
- SeeAlso: AX=F401h,AX=F402h
- --------b-16F401-----------------------------
- INT 16 - Compaq Systempro and higher - ENABLE CACHE CONTROLLER
- AX = F401h
- Return: AX = E201h
- Notes: also supported by some versions of AMI BIOS dated June 1992 or later
- many (most) BIOSes return a modified AH when called for an unsupported
- or non-keyboard function (typically, the highest supported keyboard
- function [normally 12h] is subtracted from the original AH)
- SeeAlso: AX=F400h,AX=F402h
- --------b-16F402-----------------------------
- INT 16 - Compaq Systempro and higher - DISABLE CACHE CONTROLLER
- AX = F402h
- Return: AX = E202h
- Notes: also supported by some versions of AMI BIOS dated June 1992 or later
- many (most) BIOSes return a modified AH when called for an unsupported
- or non-keyboard function (typically, the highest supported keyboard
- function [normally 12h] is subtracted from the original AH)
- SeeAlso: AX=F400h,AX=F401h
- --------v-16FA00DX5945-----------------------
- INT 16 U - PC Tools v8+ VSAFE, VWATCH - INSTALLATION CHECK
- AX = FA00h
- DX = 5945h
- Return: CF clear
- DI = 4559h
- BX = BIOS hotkey scancode (default 2F00h) (VSAFE only)
- FFFFh if disabled
- Note: MS-DOS 6.0 bundles VSAFE and VWATCH as part of its virus protection
- SeeAlso: AX=FA05h,INT 13/AH=FAh,INT 21/AH=FAh"VDEFEND",INT 2F/AX=6282h
- --------v-16FA01DX5945-----------------------
- INT 16 U - PC Tools v8+ VSAFE, VWATCH - UNINSTALL
- AX = FA01h
- DX = 5945h
- Return: CF clear if successful
- DI = 4559h
- SeeAlso: AX=FA00h
- --------v-16FA02DX5945-----------------------
- INT 16 U - PC Tools v8+ VSAFE, VWATCH - GET/SET OPTIONS
- AX = FA02h
- DX = 5945h
- BL = new parameter flags (see #0474)
- Return: CF clear
- DI = 4559h
- CL = old value of parameter flags
-
- Bitfields for VSAFE/VWATCH parameter flags:
- Bit(s) Description (Table 0474)
- 7 Protect executable files
- 6 Protect FD boot sector
- 5 Protect HD boot sector
- 4 Boot sector viruses
- 3 Check executable files
- 2 General write protect
- 1 Resident
- 0 HD Low level format
- --------v-16FA03DX5945-----------------------
- INT 16 U - PC Tools v8+ VSAFE, VWATCH - GET ???
- AX = FA03h
- DX = 5945h
- Return: CF clear
- DI = 4559h
- AX = 0002h
- --------v-16FA04DX5945-----------------------
- INT 16 U - PC Tools v8+ VSAFE - GET HOTKEY DISABLE FLAG
- AX = FA04h
- DX = 5945h
- Return: CF clear
- DI = 4559h
- BL = hotkey disable flag (nonzero if hotkey disabled)
- Note: this function is a NOP under VWATCH, merely returning CF clear/DI=4559h
- SeeAlso: AX=FA00h,AX=FA05h
- --------v-16FA05DX5945-----------------------
- INT 16 U - PC Tools v8+ VSAFE - SET HOTKEY DISABLE FLAG
- AX = FA05h
- DX = 5945h
- BL = new value of hotkey disable flag (nonzero to disable hotkey)
- Return: CF clear
- DI = 4559h
- Note: this function is a NOP under VWATCH, merely returning CF clear/DI=4559h
- SeeAlso: AX=FA00h,AX=FA04h
- --------v-16FA06DX5945-----------------------
- INT 16 U - PC Tools v8+ VSAFE, VWATCH - GET NETWORK DRIVES TEST FLAG
- AX = FA06h
- DX = 5945h
- Return: CF clear
- DI = 4559h
- BL = test status
- 00h don't monitor network drives (default for VWATCH v2.1)
- FFh monitor network drives (default for VSAFE v2.0)
- CL = ??? (only VSAFE 2.0)
- SeeAlso: AX=FA07h
- --------v-16FA07DX5945-----------------------
- INT 16 U - PC Tools v8+ VSAFE, VWATCH - SET NETWORK DRIVES TEST FLAG
- AX = FA07h
- DX = 5945h
- BL = new state
- 00h don't monitor
- 01h monitor network drives
- Return: CF clear
- DI = 4559h
- Note: VWATCH v2.1 (from PC Tools 9.0) returns CF set instead
- SeeAlso: AX=FA00h,AX=FA06h
- --------v-16FA08DX5945-----------------------
- INT 16 U - PC Tools v9+ VWATCH v2.1 - ???
- AX = FA08h
- DX = 5945h
- Return: CF clear
- DI = 4559h
- AX = ??? (0002h)
- BX = version (BH=major, BL=two-digit minor)
- Note: this function is not supported by the PC Tools 9.0 VSAFE v2.0
- SeeAlso: AX=FA00h,AX=FA06h
- --------U-16FE55-----------------------------
- INT 16 U - PC Tools v8+ programs - GET ???
- AX = FE55h
- CX = segment of resident program or 0000h for last loaded
- DX = 0000h
- Return: DX = resident code segment (unchanged if CX=0000h on entry)
- AX = ??? or 0000h
- Note: this call is supported by CPSCHED, CPTASK, DATAMON, DPROTECT, DRIVEMAP,
- and DSKLIGHT beginning in PC Tools v8.0; programs other than CPTASK
- seem to hook it merely to return the same AX as the CPTASK loaded
- prior to them returned
- --------U-16FEA4-----------------------------
- INT 16 U - PC Tools v7+ CPSCHED/DESKTOP - RESET ???
- AX = FEA4h
- Return: nothing
- Note: this function is identical to AX=FFA4h, and is implemented by the same
- code in DESKTOP
- SeeAlso: AX=FFA4h
- --------U-16FEC6-----------------------------
- INT 16 U - PC Tools v7+ CPSCHED - ENABLE/DISABLE CPSCHED API
- AX = FEC6h
- BL = new state (00h enabled, nonzero disabled)
- Return: nothing
- Desc: specify whether CPSCHED API calls other than this one and AX=FE55h will
- be honored
- --------U-16FED3-----------------------------
- INT 16 U - PC Tools v7+ CPSCHED/DESKTOP - ???
- AX = FED3h
- DS:SI -> 92-byte data record for ???
- Return: ???
- Note: this function is identical to AX=FFD3h, and is implemented by the same
- code in DESKTOP
- SeeAlso: AX=FFD3h
- --------U-16FEDC-----------------------------
- INT 16 U - PC Tools v7+ CPSCHED - UNHOOK INTERRUPTS
- AX = FEDCh
- Return: AX,DX destroyed
- Index: uninstall;CPSCHED
- --------U-16FEEFCX0000-----------------------
- INT 16 U - PC Tools v7+ CPSCHED/DESKTOP - INSTALLATION CHECK
- AX = FEEFh
- CX = 0000h
- Return: CX = ABCDh if PC Tools scheduler (CPSCHED or DESKTOP) installed
- BX = segment of resident portion
- DX = (CPSCHED v8.0) resident CS
- Note: this function is identical to AX=FFD3h, and is implemented by the same
- code in DESKTOP
- SeeAlso: AX=FFEFh
- --------U-16FEF1-----------------------------
- INT 16 U - PC Tools v7 only CPSCHED/DESKTOP - ALTERNATE INSTALLATION CHECK
- AX = FEF1h
- BX = ???
- Return: CX = 5555h if PC Tools scheduler (CPSCHED or DESKTOP) installed
- DX = 5555h
- Note: this function is identical to AX=FFD3h, and is implemented by the same
- code in DESKTOP
- SeeAlso: AX=FFF1h
- --------K-16FF-------------------------------
- INT 16 - KEYBOARD - KBUF extensions - ADD KEY TO TAIL OF KEYBOARD BUFFER
- AH = FFh
- DX = scan code
- Return: AL = status
- 00h success
- 01h failure
- Program: KBUF is a keyboard buffer expander by Mark Adler
- SeeAlso: AH=05h
- --------V-16FF-------------------------------
- INT 16 - OPTIMA 1024 VGA-Sync,ET-3000 chipset - QUERY ZOOM INTERRUPT
- AH = FFh
- Return: AL = interrupt number to which BIOS keyboard handler has been relocated
- AL+1 = Zoom interrupt number
- BX = hotkey
- Notes: the default interrupts are 60h for keyboard and 61h for Zoom interrupt;
- the default hot key is F10
- not all vendors include the Tseng TSR which supports these functions
- SeeAlso: INT 61"OPTIMA"
- Index: hotkeys;OPTIMA 1024 VGA
- ----------16FF--BH00-------------------------
- INT 16 - FREEZE.COM - INSTALLATION CHECK
- AH = FFh
- BH = 00h
- Return: BH = FFh if installed
- Program: FREEZE is a PC Magazine utility
- --------d-16FF70BX0000-----------------------
- INT 16 U - PC Tools v8+ DRIVEMAP - INSTALLATION CHECK
- AX = FF70h
- BX = 0000h
- CX = 4C69h ('Li')
- DX = 6E6Bh ('nk')
- Return: AX = 0000h
- CX = 4350h ('CP')
- DH = major version
- DL = minor version
- Program: DRIVEMAP is a redirector which allows drives on computers connected
- over the parallel or serial ports to appear as local drives
- SeeAlso: AX=FF70h/BX=0001h,AX=FF70h/BX=0002h
- --------d-16FF70BX0001-----------------------
- INT 16 U - PC Tools v8+ DRIVEMAP - ???
- AX = FF70h
- BX = 0001h
- DL = ???
- Return: AX = ???
- DH = ???
- SeeAlso: AX=FF70h/BX=0000h,AX=FF70h/BX=0002h
- --------d-16FF70BX0002-----------------------
- INT 16 U - PC Tools v8+ DRIVEMAP - ???
- AX = FF70h
- BX = 0002h
- CX = ???
- DX = ???
- Return: AX = ??? or FFFEh/FFFFh on error
- DL = ???
- BUG: DRIVEMAP will branch to random locations for BX values other than
- those listed above for v8.0-9.0 because a) the incorrect register is
- range-tested, resulting in BX=0003h-5CD6h being accepted as valid
- function numbers, and b) the conditional which branches on invalid
- function numbers jumps to the following instruction, becoming a NOP
- SeeAlso: INT 2F/AX=9203h"DRIVEMAP"
- Index: installation check;DRIVEMAP
- --------T-16FF80BX0000-----------------------
- INT 16 U - PC Tools v8+ CPTASK - INSTALLATION CHECK
- AX = FF80h
- BX = 0000h
- CX = 0000h
- DX = 0000h
- Return: CX = 5555h if installed
- Program: CPTASK is a task switcher by Central Point Software
- --------T-16FF80BX0001-----------------------
- INT 16 U - PC Tools v8+ CPTASK - GET ???
- AX = FF80h
- BX = 0001h
- ???
- Return: DX:SI -> task list??? (ten entries of 70h bytes in v9.0)
- BX = ??? (PSP segment of resident code???)
- --------T-16FF80BX0002-----------------------
- INT 16 U - PC Tools v8+ CPTASK - GET ???
- AX = FF80h
- BX = 0002h
- Return: DX:SI -> ???
- --------T-16FF80BX0003-----------------------
- INT 16 U - PC Tools v8+ CPTASK - GET ??? FLAGS
- AX = FF80h
- BX = 0003h
- Return: AX = flags (see #0475)
- SeeAlso: AX=FF80h/BX=0004h,AX=FF80h/BX=0006h
-
- Bitfields for CPTASK flags:
- Bit(s) Description (Table 0475)
- 10 ???
- 13 ???
- 14 ???
- 15 ???
- --------T-16FF80BX0004-----------------------
- INT 16 U - PC Tools v8+ CPTASK - SET ???
- AX = FF80h
- BX = 0004h
- CX = new value of ???
- Return: ???
- Note: this function also sets bit 14 of the flags word returned by
- AX=FF80h/BX=0003h
- --------T-16FF80BX0005-----------------------
- INT 16 U - PC Tools v8+ CPTASK - GET NUMBER OF ACTIVE TASKS???
- AX = FF80h
- BX = 0005h
- Return: AX = number of active tasks???
- --------T-16FF80BX0006-----------------------
- INT 16 U - PC Tools v8+ CPTASK - GET AND CLEAR ??? FLAG
- AX = FF80h
- BX = 0006h
- Return: AX = old state (0000h clear, 0001h set)
- Note: the tested flag is bit 13 of the flags returned by AX=FF80h/BX=0003h
- --------T-16FF80BX0007-----------------------
- INT 16 U - PC Tools v8+ CPTASK - ???
- AX = FF80h
- BX = 0007h
- ES:DI -> ???
- ???
- Return: ???
- --------T-16FF80BX0008-----------------------
- INT 16 U - PC Tools v8+ CPTASK - ???
- AX = FF80h
- BX = 0008h
- ???
- Return: ???
- --------T-16FF80BX0009-----------------------
- INT 16 U - PC Tools v8+ CPTASK - GET ???
- AX = FF80h
- BX = 0009h
- Return: CL = ???
- CH = ??? (01h or 02h)
- --------T-16FF80BX000A-----------------------
- INT 16 U - PC Tools v9+ CPTASK - SET ???
- AX = FF80h
- BX = 000Ah
- DS:SI -> 128-byte buffer containing ???
- --------T-16FF80BX000B-----------------------
- INT 16 U - PC Tools v9+ CPTASK - SET ???
- AX = FF80h
- BX = 000Bh
- DX = index of ??? task (1-10)
- --------T-16FF80BX000C-----------------------
- INT 16 U - PC Tools v9+ CPTASK - SET IDLE??? DELAY
- AX = FF80h
- BX = 000Ch
- CX = new delay time in minutes
- --------T-16FF80BX4350-----------------------
- INT 16 U - PC Tools v8+ CPTASK - UNINSTALL
- AX = FF80h
- BX = 4350h ('CP')
- CX = 5354h ('ST')
- Return: never returns; terminates all tasks and exits to program originally
- calling CPTASK
- --------U-16FF90-----------------------------
- INT 16 U - PC Tools v8+ DESKTOP - ???
- AX = FF90h
- ???
- Return: ???
- Note: available only when popped up
- --------U-16FF91-----------------------------
- INT 16 U - PC Tools v7+ DESKTOP - ???
- AX = FF91h
- ???
- Return: AX = 0000h
- Note: calls AX=FFFDh after ???
- SeeAlso: AX=FF92h,AX=FFFDh
- --------U-16FF92-----------------------------
- INT 16 U - PC Tools v7+ DESKTOP - ???
- AX = FF92h
- ???
- Return: AX = 0000h
- Note: like AX=FF91h, but temporarily sets ??? to 3
- SeeAlso: AX=FF91h,AX=FFFDh
- --------U-16FF93-----------------------------
- INT 16 U - PC Tools v7+ DESKTOP - SET ??? FLAG
- AX = FF93h
- --------U-16FF94-----------------------------
- INT 16 U - PC Tools v7+ DESKTOP - SET ???
- AX = FF94h
- CX = ??? (default 0017h)
- --------U-16FF95-----------------------------
- INT 16 U - PC Tools v7+ DESKTOP - SET ???
- AX = FF95h
- BX = ???
- --------U-16FF96-----------------------------
- INT 16 U - PC Tools v7+ DESKTOP - ???
- AX = FF96h
- CL = ???
- Return: AX = ???
- --------U-16FF97-----------------------------
- INT 16 U - PC Tools v7+ DESKTOP - ???
- AX = FF97h
- DS:DX -> buffer for ??? (see #0476)
- Return: ???
-
- Format of PC Tools DESKTOP buffer:
- Offset Size Description (Table 0476)
- 00h 48 BYTEs ???
- 30h 128 BYTEs ???
- --------U-16FF98-----------------------------
- INT 16 U - PC Tools v7+ DESKTOP - OPEN \DESK.OVL FILE AND SEEK TO OVERLAY
- AX = FF98h
- DX = byte offset in file of overlay header (see #0477)
- Return: BX = file handle for DESK.OVL file
- Desc: open the DESK.OVL file, seek to the specified offset, read in the
- overlay header, and seek to the offset specified by the header
-
- Format of PC Tools DESKTOP overlay header:
- Offset Size Description (Table 0477)
- 00h 12 BYTEs NUL-padded ASCII overlay filename
- 0Ch DWORD offset within DESK.OVL file of actual overlay
- --------U-16FF99-----------------------------
- INT 16 U - PC Tools v7+ DESKTOP - ???
- AX = FF99h
- ???
- Return: ???
- --------U-16FF9A-----------------------------
- INT 16 U - PC Tools v7+ DESKTOP - GET NAME OF COLOR SCHEME
- AX = FF9Ah
- Return: ES:BX -> name of current color scheme
- Note: available even if not popped up
- --------U-16FF9B-----------------------------
- INT 16 U - PC Tools v7+ DESKTOP - UNUSED
- AX = FF9Bh
- Return: ???
- Note: sounds triple-length beep
- --------T-16FF9C-----------------------------
- INT 16 U - PC Tools v8+ CPTASK - SET/CLEAR ??? POINTER
- AX = FF9Ch
- BL = function
- 00h set ??? pointer
- DS:SI -> ???
- 01h clear pointer to 0000h:0000h
- ----------16FF9D-----------------------------
- INT 16 U - PC Tools v8+ CPTASK, VSAFE - ???
- AX = FF9Dh
- ES:BX -> ??? word
- Return: ???
- Note: if ES is non-zero, the word pointed at by ES:BX determines whether the
- ??? flag is cleared (word = 0000h) or set (word is nonzero). The
- flag is always cleared if ES=0000h.
- --------U-16FF9E-----------------------------
- INT 16 U - PC Tools v7+ DESKTOP - ???
- AX = FF9Eh
- DL = ???
- bit 7: ???
- bits 6-0: function number??? (00h,01h,other)
- ???
- Return: ???
- --------U-16FFA1-----------------------------
- INT 16 U - PC Tools v7+ DESKTOP - ???
- AX = FFA1h
- ???
- Return: ???
- Note: same as AX=FFA2h, except ??? set to FFh
- SeeAlso: AX=FFA2h
- --------U-16FFA2-----------------------------
- INT 16 U - PC Tools v7+ DESKTOP - ???
- AX = FFA2h
- ???
- Return: ???
- Note: calls AX=FFC7h (remove window) and AX=FFFDh
- SeeAlso: AX=FFA1h,AX=FFC7h,AX=FFFDh
- --------y-16FFA3BX0000-----------------------
- INT 16 U - PC Tools v7-8 DATAMON, v9+ DPROTECT - INSTALLATION CHECK
- AX = FFA3h
- BX = 0000h
- CX = 0000h
- Return: AX = segment of resident code
- BX = 5555h
- CX = 5555h
- Note: also supported by DOS 6 UNDELETE which is licensed from PC Tools
- SeeAlso: INT 21/AH=3Fh"NB.SYS",INT 21/AX=4101h,INT 2F/AX=6284h
- --------y-16FFA3BX0001-----------------------
- INT 16 U - PC Tools v7-8 DATAMON, v9+ DPROTECT - GET ???
- AX = FFA3h
- BX = 0001h
- CX = 0001h
- Return: AX:BX -> ???
- CX = BX
- --------y-16FFA3BX0002-----------------------
- INT 16 U - PC Tools v7-8 DATAMON, v9+ DPROTECT - GET ???
- AX = FFA3h
- BX = 0002h
- CX = 0002h
- Return: AX = ??? (0 or 1)
- CX = BX = AX
- --------y-16FFA3BX0003-----------------------
- INT 16 U - PC Tools v7-8 DATAMON, v9+ DPROTECT - GET ???
- AX = FFA3h
- BX = 0003h
- CX = 0003h
- Return: AX = ??? (0 or 1)
- CX = BX = AX
- --------y-16FFA3BX0004-----------------------
- INT 16 U - PC Tools v7+ DATAMON - SET ??? FLAG
- AX = FFA3h
- BX = 0004h
- CX = 0004h
- SeeAlso: AX=FFA3h/BX=0005h
- --------y-16FFA3BX0005-----------------------
- INT 16 U - PC Tools v7+ DATAMON - CLEAR ??? FLAG
- AX = FFA3h
- BX = 0005h
- CX = 0005h
- SeeAlso: AX=FFA3h/BX=0004h
- --------y-16FFA3BX0006-----------------------
- INT 16 U - PC Tools v7+ DATAMON - SET PSP SEGMENT ???
- AX = FFA3h
- BX = 0006h
- CX = 0006h
- DX = current PSP segment as known to DOS??? or 0000h
- ----------16FFA3BXFFA3-----------------------
- INT 16 U - PC Tools v9 DSKLIGHT - INSTALLATION CHECK
- AX = FFA3h
- BX = FFA3h
- CX = FFA3h
- Return: BX = CX = 5555h if installed
- AX = resident code segment
- Program: DSKLIGHT is a TSR included with PC Tools v9+ which displays a disk-
- access indicator on the screen; in v7 and v8, this function was
- provided by DATAMON
- Note: DSKLIGHT chains to the previous handler if BX or CX is not FFA3h
- --------U-16FFA4-----------------------------
- INT 16 U - PC Tools v7-8 DESKTOP - ???
- AX = FFA4h
- Return: ???
- Notes: available even when not popped up
- sets unknown flag if ??? conditions met
- SeeAlso: AX=FEA4h
- --------c-16FFA5CX1111-----------------------
- INT 16 - PC-Cache v6+ - INSTALLATION CHECK
- AX = FFA5h
- CX = 1111h
- Return: CH = 00h if installed
- ES:DI -> internal data (see #0478)
- CL = cache state
- 01h enabled
- 02h disabled
- SeeAlso: INT 13/AH=27h,INT 13/AH=A0h,INT 21/AH=2Bh/CX=4358h
-
- Format of PC-Cache internal data:
- Offset Size Description (Table 0478)
- -1Ch 20 BYTEs cached drive list, one byte per drive A: to T:
- each byte is either blank (20h) or drive letter (41h-54h)
- -8 BYTE ???
- -7 WORD number of physical transfers (scaled down to 0000h-7FFFh)
- -5 WORD number of saved transfers (scaled down to 0000h-7FFFh)
- -3 3 BYTEs ???
- --------c-16FFA5CXAAAA-----------------------
- INT 16 - PC-Cache v6+ - ENABLE DELAYED WRITES
- AX = FFA5h
- CX = AAAAh
- Return: AX = ??? (apparently either 0000h or sectors_in_cache - 5)
- SeeAlso: AX=FFA5h/CX=CCCCh
- --------c-16FFA5CXCCCC-----------------------
- INT 16 - PC-Cache v6+ - FLUSH CACHE AND DISABLE DELAYED WRITES
- AX = FFA5h
- CX = CCCCh
- Return: AX = ??? (apparently either 0000h or sectors_in_cache - 5)
- Note: delayed writes are automatically disabled on EXECing
- (see INT 21/AH=4Bh) a program named either WIN.CO? or DV.E??;
- however, delayed writes are not automatically reenabled upon the
- program's termination in v6.
- SeeAlso: AX=FFA5h/CX=AAAAh,AX=FFA5h/CX=FFFFh
- --------c-16FFA5CXDDDD-----------------------
- INT 16 - PC-Cache v6+ - FLUSH AND DISABLE CACHE
- AX = FFA5h
- CX = DDDDh
- SeeAlso: AX=FFA5h/CX=EEEEh,AX=FFA5h/CX=FFFFh
- --------c-16FFA5CXEEEE-----------------------
- INT 16 - PC-Cache v6+ - ENABLE CACHE
- AX = FFA5h
- CX = EEEEh
- SeeAlso: AX=FFA5h/CX=DDDDh
- --------c-16FFA5CXFFFF-----------------------
- INT 16 - PC-Cache v6+ - FLUSH CACHE
- AX = FFA5h
- CX = FFFFh
- SeeAlso: AX=FFA5h/CX=CCCCh,AX=FFA5h/CX=DDDDh,INT 13/AH=A1h
- --------U-16FFA6-----------------------------
- INT 16 U - PC Tools v6.0-8.0 DESKTOP - GET ???
- AX = FFA6h
- Return: DS:SI -> ???
- Note: available only when popped up
- --------U-16FFA7-----------------------------
- INT 16 U - PC Tools v6.0-8.0 DESKTOP - GET ??? PATH
- AX = FFA7h
- Return: DS:SI -> ASCIZ path (directory from which PCTools was run???)
- --------U-16FFA8-----------------------------
- INT 16 U - PC Tools v6.0-8.0 DESKTOP - ???
- AX = FFA8h
- DS:SI -> three consecutive ASCIZ strings for ??? (max 256 bytes total)
- ???
- Return: ???
- Notes: available only when popped up
- strings copied into internal buffer, among other actions
- --------U-16FFA9-----------------------------
- INT 16 U - PC Tools v6.0-8.0 DESKTOP - GET VERSION STRING
- AX = FFA9h
- Return: DS:SI -> version string
- --------U-16FFAA-----------------------------
- INT 16 U - PC Tools v6.0-8.0 DESKTOP - ???
- AX = FFAAh
- ???
- Return: ???
- Note: available only when popped up
- --------U-16FFAB-----------------------------
- INT 16 U - PC Tools v6.0-8.0 DESKTOP - GET EDITOR SETTINGS???
- AX = FFABh
- Return: DS:SI -> editor setting strings???
- --------U-16FFAC-----------------------------
- INT 16 U - PC Tools v6.0-8.0 DESKTOP - SET ???
- AX = FFACh
- DL = ???
- Note: available only when popped up
- --------U-16FFAD-----------------------------
- INT 16 U - PC Tools v6.0-8.0 DESKTOP - SET ???
- AX = FFADh
- DL = ???
- --------U-16FFAE-----------------------------
- INT 16 U - PC Tools v6.0-8.0 DESKTOP - GET ???
- AX = FFAEh
- Return: AL = ???
- --------U-16FFAF-----------------------------
- INT 16 U - PC Tools v6.0-8.0 DESKTOP - SET ???
- AX = FFAFh
- DL = ???
- --------U-16FFB0-----------------------------
- INT 16 U - PC Tools v6.0-8.0 DESKTOP - SET ???
- AX = FFB0h
- BL = ???
- --------U-16FFB1-----------------------------
- INT 16 U - PC Tools v6.0-8.0 DESKTOP - ???
- AX = FFB1h
- ???
- Return: ???
- --------U-16FFB2-----------------------------
- INT 16 U - PC Tools v5.5-8.0 DESKTOP - GET ???
- AX = FFB2h
- Return: DS:SI -> ???
- --------U-16FFB3-----------------------------
- INT 16 U - PC Tools v5.5-8.0 DESKTOP - ???
- AX = FFB3h
- ???
- Return: ???
- Note: available only when popped up
- --------U-16FFB4-----------------------------
- INT 16 U - PC Tools v5.5-8.0 DESKTOP - SET ??? FLAG
- AX = FFB4h
- Note: available only when popped up
- SeeAlso: AX=FFBBh
- --------U-16FFB5-----------------------------
- INT 16 U - PC Tools v5.5-8.0 DESKTOP - GET/SET WINDOW PARAMETERS
- AX = FFB5h
- BX = window specifier (000Fh to 0019h) (see #0479)
- DX = 0000h get, nonzero = set
- ES:DI -> window parameter buffer (see #0480)
- SeeAlso: AX=FFCBh
-
- (Table 0479)
- Values for PC Tools DESKTOP window specifier:
- 000Fh comm/FAX
- 0014h hotkey selection
- 0015h ASCII table
- 0016h system colors menu
-
- Format of PC Tools DESKTOP window parameters:
- Offset Size Description (Table 0480)
- 00h BYTE rows in window, not counting frame
- 01h BYTE columns in window, not counting frame
- 02h BYTE row number of top of window
- 03h BYTE 2*column number of left of window
- 04h BYTE character attribute for ???
- 05h BYTE character attribute for background/border
- 06h BYTE character attribute for ???
- 07h DWORD pointer to ??? on screen
- 0Bh 4 BYTEs ???
- 0Fh BYTE nonzero if window may be resized
- Note: if running in monochrome mode, character attributes at offsets 04h to
- 06h are stored unchanged, but attributes other than 07h, 0Fh, or 70h
- are changed to 07h on reading
- --------U-16FFB6-----------------------------
- INT 16 U - PC Tools v5.5-8.0 DESKTOP - GET ???
- AX = FFB6h
- Return: AH = ???
- AL = ???
- --------U-16FFB7-----------------------------
- INT 16 U - PC Tools v5.5-8.0 DESKTOP - GET/SET ???
- AX = FFB7h
- BX = direction
- 0000h copy to buffer
- else copy from buffer
- DS:SI -> 70-byte buffer with ???
- Return: data copied
- Note: available only when popped up under v6.0+
- --------U-16FFB8-----------------------------
- INT 16 U - PC Tools v5.1-8.0 DESKTOP - GET/SET???
- AX = FFB8h
- BH = subfunction
- 00h get
- Return: BL = old value of ???
- CL = old value of ??? (v6.0+)
- CH = old value of ??? (v6.0+)
- nonzero set
- BL = new value for ???
- CL = new value for ??? (v6.0+)
- CH = new value for ??? (v6.0+)
- DH = ???
- Return: AL = old value replaced by CL (v6.0+)
- AH = old value replaced by CH (v6.0+)
- --------U-16FFB9-----------------------------
- INT 16 U - PC Tools v5.1-8.0 DESKTOP - ???
- AX = FFB9h
- ???
- Return: AX = ???
- CX = ???
- DS:SI -> ???
- ES:DI -> ???
- --------U-16FFBA-----------------------------
- INT 16 U - PC Tools v5.1-8.0 DESKTOP - ???
- AX = FFBAh
- ???
- Return: AX = ???
- Note: available only when popped up
- --------U-16FFBB-----------------------------
- INT 16 U - PC Tools v5.1-8.0 DESKTOP - CLEAR ??? FLAG
- AX = FFBBh
- Note: available only when popped up
- SeeAlso: AX=FFB4h
- --------U-16FFBC-----------------------------
- INT 16 U - PC Tools v5.1-8.0 DESKTOP - RESTORE ORIGINAL SCREEN???
- AX = FFBCh
- --------U-16FFBD-----------------------------
- INT 16 U - PC Tools v5.1-8.0 DESKTOP - ??? DATABASE INDEXING MESSAGES
- AX = FFBDh
- ???
- Return: ???
- --------U-16FFBE-----------------------------
- INT 16 U - PC Tools v5.1-8.0 DESKTOP - ???
- AX = FFBEh
- ???
- Return: ???
- Note: available only when popped up
- --------U-16FFBF-----------------------------
- INT 16 U - PC Tools v5.1-8.0 DESKTOP - ???
- AX = FFBFh
- BX = DOS file handle to write on
- ???
- Return: ???
- Note: available only when popped up
- --------U-16FFC0-----------------------------
- INT 16 U - PC Tools v5.1-8.0 DESKTOP - ???
- AX = FFC0h
- ???
- Return: AX = 0000h if successful
- AX = FFFFh on error
- Note: available only when popped up
- --------U-16FFC1-----------------------------
- INT 16 U - PC Tools v5.1-8.0 DESKTOP - ???
- AX = FFC1h
- BL = ???
- ES:DI -> data structure (see #0481)
- ???
- Return: AX = ???
- Note: available only when popped up
- SeeAlso: AX=FFC2h,AX=FFC3h
-
- Format of PC Tools DESKTOP data structure:
- Offset Size Description (Table 0481)
- 00h WORD ???
- 02h WORD ???
- 04h WORD ???
- 06h WORD ???
- 08h WORD ???
- 0Ah BYTE ???
- 0Bh BYTE ??? (zero/nonzero)
- ---v7.1---
- 0Ch WORD ???
- 0Eh BYTE ???
- 0Fh WORD ???
- 11h WORD ???
- ???
- --------U-16FFC2-----------------------------
- INT 16 U - PC Tools v5.1-8.0 DESKTOP - ???
- AX = FFC2h
- BL = ???
- ES:DI -> data structure (see #0481)
- ???
- Return: AH = ???
- CX = ???
- DH = ???
- DL = ???
- Note: available only when popped up
- SeeAlso: AX=FFC1h,AX=FFC3h
- --------U-16FFC3-----------------------------
- INT 16 U - PC Tools v5.1-8.0 DESKTOP - ???
- AX = FFC3h
- BL = ???
- ES:DI -> data structure (see #0481)
- ???
- Return: AH = ???
- CX = ???
- DH = ???
- DL = ???
- Note: available only when popped up
- SeeAlso: AX=FFC1h,AX=FFC2h
- --------U-16FFC4-----------------------------
- INT 16 U - PC Tools v5.1-8.0 DESKTOP - GET ???
- AX = FFC4h
- Return: AL = ???
- BX = segment of scratch space???
- CX = segment of stored screen data (section covered by window???)
- DX = segment of window parameters for ???
- ES:BP -> ???
- Note: available only when popped up in versions prior to 6.0
- --------U-16FFC5-----------------------------
- INT 16 U - PC Tools v5.1-8.0 DESKTOP - CHECK WHETHER DESKTOP LOADED RESIDENT
- AX = FFC5h
- Return: BL = Desktop state
- 00h if nonresident
- nonzero if loaded resident
- Note: available only when popped up; should call AX=FFEFh first to ensure
- that DESKTOP is active
- SeeAlso: AX=FFEFh,AX=FFF3h
- --------U-16FFC6-----------------------------
- INT 16 U - PC Tools v5.1-8.0 DESKTOP - SET ???
- AX = FFC6h
- BL = new value for ???
- --------U-16FFC7-----------------------------
- INT 16 U - PC Tools v5.1-8.0 DESKTOP - REMOVE WINDOW
- AX = FFC7h
- ???
- Return: ???
- --------U-16FFC8-----------------------------
- INT 16 U - PC Tools v5.1-8.0 DESKTOP - GET ???
- AX = FFC8h
- Return: DS:SI -> ???
- Note: valid only while popped up
- --------U-16FFC9-----------------------------
- INT 16 U - PC Tools v5.1-8.0 DESKTOP - COPY DATA TO CLIPBOARD
- AX = FFC9h
- DS:SI -> characters to store in clipboard
- CX = size in bytes
- Return: CF set on error
- Notes: available only when popped up
- while copying, bytes of 00h and 0Ah are skipped
- --------U-16FFCA-----------------------------
- INT 16 U - PC Tools v5.1-8.0 DESKTOP - SET ???
- AX = FFCAh
- DX = ???
- Return: AX destroyed
- Note: available only when popped up
- --------U-16FFCB-----------------------------
- INT 16 U - PC Tools v5.1-8.0 DESKTOP - SELECT WINDOW PARAMETERS???
- AX = FFCBh
- DX = window specifier???
- Return: AX destroyed
- Note: available only when popped up
- SeeAlso: AX=FFB5h
- --------U-16FFCC-----------------------------
- INT 16 U - PC Tools v5.1-8.0 DESKTOP - DISPLAY ASCIZ STRING CENTERED IN WINDOW
- AX = FFCCh
- DS:SI -> ASCIZ string
- Return: AX = ???
- CX = ???
- ES:DI -> address past last character displayed (v5.1/5.5)
- -> ??? on menu bar (v6.0)
- --------U-16FFCD-----------------------------
- INT 16 U - PC Tools v5.1-8.0 DESKTOP - ???
- AX = FFCDh
- DS:DX -> ???
- Return: ???
- Note: available only when popped up
- --------U-16FFCE-----------------------------
- INT 16 U - PC Tools v5.1-8.0 DESKTOP - SET ??? DELAYS
- AX = FFCEh
- CX = ???
- Return: nothing???
- --------U-16FFCF-----------------------------
- INT 16 U - PC Tools v5.1-8.0 DESKTOP - CLOSE PRINTER/PRINT FILE
- AX = FFCFh
- Note: available only when popped up
- --------U-16FFD0-----------------------------
- INT 16 U - PC Tools v5.1-8.0 DESKTOP - PREPARE TO PRINT???
- AX = FFD0h
- ???
- Return: ???
- Note: available only when popped up
- --------U-16FFD1-----------------------------
- INT 16 U - PC Tools v5.1-8.0 DESKTOP - DISPLAY PRINT OPTIONS MENU
- AX = FFD1h
- Return: BX = number of copies
- DX = destination
- 00h cancel
- 01h LPT1
- 02h LPT2
- 03h LPT3
- 04h COM1
- 05h COM2
- 06h disk file
- Note: available only when popped up
- --------U-16FFD2-----------------------------
- INT 16 U - PC Tools v5.1-8.0 DESKTOP - ???
- AX = FFD2h
- BX = ???
- Return: BL = ???
- Note: available only when popped up
- --------U-16FFD3-----------------------------
- INT 16 U - PC Tools v5.1-8.0 DESKTOP - ???
- AX = FFD3h
- DS:SI -> 92-byte data record for ???
- Return: ???
- SeeAlso: AX=FED3h
- --------U-16FFD4BH3C-------------------------
- INT 16 U - PC Tools v5.1-8.0 DESKTOP - CREATE/OPEN/DELETE FILE
- AX = FFD4h
- BH = 3Ch create file (with no attributes)
- 3Dh open file
- 41h delete file
- BL = access mode
- 00h read only
- 01h write only
- 02h read/write
- DS:SI -> ASCIZ filename
- Return: BX = file handle
- 0000h on error
- Note: operation is attempted in (in order) the directory from which the
- desktop was started/run???, the directory specified with the
- filename, X:\PCTOOLS\, and X:\
- --------U-16FFD5-----------------------------
- INT 16 U - PC Tools v5.1-8.0 DESKTOP - ???
- AX = FFD5h
- ???
- Return: ???
- Note: available only when popped up
- --------U-16FFD6-----------------------------
- INT 16 U - PC Tools v5.1-8.0 DESKTOP - ???
- AX = FFD6h
- BX = ???
- CX = ???
- DX = offset in ???
- ???
- Return: ???
- Note: available only when popped up
- --------U-16FFD7-----------------------------
- INT 16 U - PC Tools v5.1-8.0 DESKTOP - ???
- AX = FFD7h
- ???
- Return: BL = ???
- Note: available only when popped up
- --------U-16FFD8-----------------------------
- INT 16 U - PC Tools v5.1-8.0 DESKTOP - SAFE CREATE FILE
- AX = FFD8h
- DS:BX -> ASCIZ filename
- Return: BX = file handle
- 0000h on error
- Note: pops up confirmation menu if file already exists
- only available when popped up???
- --------U-16FFD9-----------------------------
- INT 16 U - PC Tools v5.1-8.0 DESKTOP - GET ???
- AX = FFD9h
- Return: AX = ???
- Note: available only when popped up
- --------U-16FFDA-----------------------------
- INT 16 U - PC Tools v5.1-8.0 DESKTOP - GET NAME OF LAST FILE OPENED
- AX = FFDAh
- DS:SI -> ??? (v5.1/5.5 only)
- Return: DS:SI -> filename
- --------U-16FFDB-----------------------------
- INT 16 U - PC Tools v5.1-8.0 DESKTOP - SET ???
- AX = FFDBh
- BL = ???
- Note: available only when popped up
- --------U-16FFDC-----------------------------
- INT 16 U - PC Tools v5.1-8.0 DESKTOP - UNHOOK
- AX = FFDCh
- Return: interrupt vectors 09h, 10h (v6.0+), 16h, 1Ch, and 21h restored to
- original values
- Index: uninstall;PC Tools DESKTOP
- --------U-16FFDDBX0000-----------------------
- INT 16 U - PC Tools v5.1+ PCShell API - INSTALLATION CHECK
- AX = FFDDh
- BX = 0000h
- Return: CX = 5555h
- DX = 5555h if PCShell installed in resident mode
- --------U-16FFDDBX0001-----------------------
- INT 16 U - PC Tools v5.1+ PCShell API - REQUEST POP-UP
- AX = FFDDh
- BX = 0001h
- Return: CF clear if request successful (PCShell will pop up)
- CF set on error
- SeeAlso: AX=FFDDh/BX=0003h
- --------U-16FFDDBX0002-----------------------
- INT 16 U - PC Tools v5.1-5.5 PCShell API - GET ???
- AX = FFDDh
- BX = 0002h
- Return: AL =
- 00h ???
- 01h ???
- Note: PCShell v6.0+ displays the error message "Incorrect PCRUN version",
- awaits a keystroke, and aborts the current process
- --------U-16FFDDBX0003-----------------------
- INT 16 U - PC Tools v5.1+ PCShell API - REQUEST POP-UP
- AX = FFDDh
- BX = 0003h
- SeeAlso: AX=FFDDh/BX=0001h
- --------U-16FFDDBX0004-----------------------
- INT 16 U - PC Tools v5.1+ PCShell API - GET ???
- AX = FFDDh
- BX = 0004h
- Return: CF clear if successful
- DS:SI -> ???
- --------U-16FFDDBX0005-----------------------
- INT 16 U - PC Tools v5.1+ PCShell API - ???
- AX = FFDDh
- BX = 0005h
- ???
- Return: ???
- Note: resets various variables if certain conditions are met
- --------U-16FFDDBX0006-----------------------
- INT 16 U - PC Tools v5.1+ PCShell API - ???
- AX = FFDDh
- BX = 0006h
- ???
- Return: ???
- Note: resets various variables if certain conditions are met
- --------U-16FFDDBX0007-----------------------
- INT 16 U - PC Tools v5.1+ PCShell API - SET ??? FLAG
- AX = FFDDh
- BX = 0007h
- Return: CF clear if successful
- SeeAlso: AX=FFDDh/BX=0008h
- --------U-16FFDDBX0008-----------------------
- INT 16 U - PC Tools v5.1+ PCShell API - CLEAR ??? FLAG
- AX = FFDDh
- BX = 0008h
- Return: CF undefined
- SeeAlso: AX=FFDDh/BX=0007h
- --------U-16FFDDBX0009-----------------------
- INT 16 U - PC Tools v6.0+ PCShell API - GET PCRUN PARAMETERS
- AX = FFDDh
- BX = 0009h
- Return: CF clear if successful
- DS:SI -> list of pointers (see #0482)
-
- Format of PC Tools PCShell returned pointer list:
- Offset Size Description (Table 0482)
- 00h WORD offset of WORD containing ???
- 02h WORD offset of name of program to execute
- 04h WORD offset of 80-byte buffer for ???
- 06h WORD offset of buffer for ??? (length in WORD preceding buffer)
- 08h WORD offset of buffer for ??? (length in WORD preceding buffer)
- --------U-16FFDDBX000A-----------------------
- INT 16 U - PC Tools v6.0+ PCRUN API - INSTALLATION CHECK
- AX = FFDDh
- BX = 000Ah
- Return: CX = 5555h if running
- DX = 5555h
- Note: also sets a flag
- --------U-16FFDDBX000B-----------------------
- INT 16 U - PC Tools v6.0+ PCRUN API - ???
- AX = FFDDh
- BX = 000Bh
- ???
- Return: CX = 5555h if PCRUN active
- DX = 5555h
- Note: also clears flag set by AX=FFDDh/BX=000Ah
- --------U-16FFDE-----------------------------
- INT 16 U - PC Tools v5.1-8.0 DESKTOP - DISPLAY POPUP MENU
- AX = FFDEh
- DS:DX -> menu description (must be on a paragraph boundary)
- Return: AX = ???
- AL seems to be the number of the selected button
- Note: available only when popped up
- SeeAlso: AX=FFEEh
- --------U-16FFDF-----------------------------
- INT 16 U - PC Tools v5.1-8.0 DESKTOP - ???
- AX = FFDFh
- ???
- Return: ???
- --------U-16FFE0-----------------------------
- INT 16 U - PC Tools v5.1-8.0 DESKTOP - ???
- AX = FFE0h
- CX = ???
- DX = ???
- Note: available only when popped up
- --------U-16FFE1-----------------------------
- INT 16 U - PC Tools v5.1-8.0 DESKTOP - BEEP
- AX = FFE1h
- --------U-16FFE2-----------------------------
- INT 16 U - PC Tools v5.1-8.0 DESKTOP - ???
- AX = FFE2h
- DX = ???
- Return: ???
- Note: available only when popped up
- --------U-16FFE3-----------------------------
- INT 16 U - PC Tools v5.1-8.0 DESKTOP - PRINT CHARACTER
- AX = FFE3h
- BL = character to print to currently open printer or print file
- Return: CF set on error
- Note: available only when popped up
- SeeAlso: INT 17/AH=00h
- --------U-16FFE4-----------------------------
- INT 16 U - PC Tools v5.1-8.0 DESKTOP - ???
- AX = FFE4h
- DX = segment of ???
- Return: ???
- Note: available only when popped up
- --------U-16FFE5-----------------------------
- INT 16 U - PC Tools v5.1-8.0 DESKTOP - POP UP FILE SELECTION MENU
- AX = FFE5h
- DS:SI -> ASCIZ wildcard filespec followed by ASCIZ menu title
- DX = segment of window parameters???
- Return: AX = DOS file handle for file
- DS:DX -> filename???
- FFFFh if function cancelled by user
- Note: available only when popped up
- SeeAlso: AX=FFDAh
- --------U-16FFE6-----------------------------
- INT 16 U - PC Tools v5.1-8.0 DESKTOP - CHECK FOR AND GET KEYSTROKE
- AX = FFE6h
- Return: AX = 0000h if no key available
- else BIOS keycode
- Notes: available only when popped up
- invokes INT 28 idle interrupt before checking for key
- --------U-16FFE7-----------------------------
- INT 16 U - PC Tools v5.1-8.0 DESKTOP - ???
- AX = FFE7h
- BX = segment of ???
- Return: ???
- Note: available only when popped up
- --------U-16FFE8-----------------------------
- INT 16 U - PC Tools v5.1-8.0 DESKTOP - DISPLAY NUMBER
- AX = FFE8h
- CX = number
- DH = attribute
- DS:SI -> destination for ASCII number
- Return: DS:SI buffer filled in with alternating characters and attributes
- --------U-16FFE9-----------------------------
- INT 16 U - PC Tools v5.1-8.0 DESKTOP - GET FILE LIST???
- AX = FFE9h
- Return: BX = segment of file/directory list (14 bytes per file, NUL-padded)
- Note: available only when popped up
- --------U-16FFEA-----------------------------
- INT 16 U - PC Tools v5.1-8.0 DESKTOP - DISPLAY COUNTED STRING
- AX = FFEAh
- DS:SI -> counted string (count byte followed by string)
- Return: ???
- Note: available only when popped up
- --------U-16FFEB-----------------------------
- INT 16 U - PC Tools v5.1-8.0 DESKTOP - ???
- AX = FFEBh
- ???
- Return: ???
- --------U-16FFEC-----------------------------
- INT 16 U - PC Tools v5.1-8.0 DESKTOP - GET KEY
- AX = FFECh
- DS:SI -> FAR routine to ???
- BX = ???
- ???
- Return: AX = keystroke
- FFFFh if F10 pressed to go to menu
- Notes: available only when popped up
- invokes INT 28 while waiting for keystroke
- F10 is hotkey to Desktop menu
- Index: hotkeys;PC Tools DESKTOP
- --------U-16FFED-----------------------------
- INT 16 U - PC Tools v5.1-8.0 DESKTOP - GET ???
- AX = FFEDh
- Return: AX = ???
- Note: available only when popped up
- --------U-16FFEE-----------------------------
- INT 16 U - PC Tools v5.1-8.0 DESKTOP - DEFINE PULLDOWN MENUS
- AX = FFEEh
- DS:SI -> pulldown menu system description (see #0483)
- Return: AX destroyed
- Notes: available only when popped up
- if the accessory does not need any menu items of its own, it should
- call AX=FFFAh instead
- SeeAlso: AX=FFF7h,AX=FFFAh
-
- Format of PC Tools DESKTOP pulldown menu system description:
- Offset Size Description (Table 0483)
- 00h WORD offset of menu bar contents (counted string)
- 02h WORD number of items on menu bar
- 04h 10 BYTEs scan codes for hotkeying to each of up to ten menu items
- 0Eh 10 BYTEs which character to highlight in each menu item (01h=first)
- 18h WORD offset of first menu definition (see #0484)
- 1Ah WORD offset of second menu definition
- ...
-
- Format of PC Tools DESKTOP menu definition:
- Offset Size Description (Table 0484)
- 00h WORD offset of menu contents (see #0485)
- 02h WORD number of entries in menu
- 04h for each entry:
- Offset Size Description
- 00h BYTE scancode of Alt-key to invoke entry
- 01h BYTE character to highlight (01h=first, etc)
- 02h WORD offset of FAR routine to handle selection
-
- Format of PC Tools DESKTOP menu contents:
- Offset Size Description (Table 0485)
- 00h BYTE number of lines in menu
- 01h BYTE width of menu
- 02h N BYTEs counted strings, one for each line in menu
- --------U-16FFEFCX0000-----------------------
- INT 16 U - PC Tools v5.1-8.0 DESKTOP - INSTALLATION CHECK
- AX = FFEFh
- CX = 0000h
- Return: CX = ABCDh if PC Tools DESKTOP.EXE installed
- BX = segment of resident portion
- AX = ??? (v5.1/5.5 only)
- SeeAlso: AX=FEEFh,AX=FFC5h,AX=FFF3h
- --------U-16FFF0-----------------------------
- INT 16 U - PC Tools v5.1-8.0 DESKTOP - SET ???
- AX = FFF0h
- DX = ???
- Return: AX destroyed
- Note: available only when popped up
- --------U-16FFF1BX0000-----------------------
- INT 16 U - PC Tools v5.1-8.0 DESKTOP - ALTERNATE INSTALLATION CHECK
- AX = FFF1h
- BX = 0000h leave ??? flag as is
- nonzero set ??? flag
- Return: CX = 5555h if installed
- DX = 5555h
- --------U-16FFF2-----------------------------
- INT 16 U - PC Tools v5.1-8.0 DESKTOP - DISPLAY HELP LINE
- AX = FFF2h
- DS:SI -> ASCIZ function key label string (each label preceded by '[')
- or help text
- Return: AX destroyed
- Notes: available only when popped up
- if the specified string does not start with '[', it is displayed
- centered on the bottom line, else the function key labels are shown
- --------U-16FFF3-----------------------------
- INT 16 U - PC Tools v5.1-8.0 DESKTOP - PREPARE TO UNLOAD RESIDENT DESKTOP
- AX = FFF3h
- Note: releases any EMS being used; restores video mode, page, and cursor
- shape; and restores interrupt vectors
- SeeAlso: AX=FFC5h,AX=FFEFh
- Index: uninstall;PC Tools DESKTOP
- --------U-16FFF4-----------------------------
- INT 16 U - PC Tools v5.1-8.0 DESKTOP - ???
- AX = FFF4h
- ???
- Return: ???
- Note: available only when popped up
- SeeAlso: AX=FFF6h
- --------U-16FFF5-----------------------------
- INT 16 U - PC Tools v5.1-8.0 DESKTOP - GET SCREEN ATTRIBUTE ARRAY
- AX = FFF5h
- Return: ES:BX -> screen attributes data structure (see #0486)
- AL = ??? (v6.0+)
-
- Format of PC Tools DESKTOP attribute data structure:
- Offset Size Description (Table 0486)
- -1 BYTE attribute for desktop background
- 00h BYTE attribute for normal characters on desktop menu
- 01h BYTE attribute for highlighted characters on desktop menu
- 02h 5 BYTEs ???
- 07h BYTE attribute for dialog boxes
- 08h 15 BYTEs ???
- 17h BYTE attribute for message boxes
- --------U-16FFF6-----------------------------
- INT 16 U - PC Tools v5.1-8.0 DESKTOP - INVOKE NOTEPAD EDITOR
- AX = FFF6h
- DS = segment of editor buffer structure (see #0487)
- BX = ???
- DX = segment of window parameters structure (see #0480)
- Return: ???
- Note: available only when popped up
- SeeAlso: AX=FFF4h
-
- Format of PC Tools DESKTOP editor buffer structure:
- Offset Size Description (Table 0487)
- 00h WORD offset of current cursor position in buffer segment
- 02h 2 BYTEs ???
- 04h WORD offset of beginning of file data in buffer segment
- 06h 10 BYTEs ???
- 10h N BYTEs ASCIZ name of file being edited
- --------U-16FFF7-----------------------------
- INT 16 U - PC Tools v5.1-8.0 DESKTOP - PROCESS MENU BAR ENTRY???
- AX = FFF7h
- DS:SI -> ???
- ???
- Return: ???
- Notes: available only when popped up
- performs input processing on the menu bar set up with AX=FFEEh
- SeeAlso: AX=FFEEh,AX=FFFBh
- --------U-16FFF8-----------------------------
- INT 16 U - PC Tools v5.1-8.0 DESKTOP - DRAW EMPTY WINDOW
- AX = FFF8h
- DS:0000h -> window parameters structure (see #0480)
- DS:BX -> DWORD to store address of ??? on screen
- Return: ???
- --------U-16FFF9-----------------------------
- INT 16 U - PC Tools v5.1-8.0 DESKTOP - DEFINE SCREEN REFRESH ROUTINE
- AX = FFF9h
- ES:BX -> FAR routine to redisplay the utility's window
- Note: available only when popped up
- --------U-16FFFA-----------------------------
- INT 16 U - PC Tools v5.1-8.0 DESKTOP - DEFINE STANDARD PULLDOWN MENUS
- AX = FFFAh
- Notes: available only when popped up
- adds the "Window" option to the "Desktop" option which is the only one
- available when no accessories are active. Unlike AX=FFEEh, no
- additional menu items are added between "Desktop" and "Window"
- SeeAlso: AX=FFEEh,AX=FFFBh
- --------U-16FFFB-----------------------------
- INT 16 U - PC Tools v5.1-8.0 DESKTOP - PROCESS STANDARD MENU BAR
- AX = FFFBh
- Return: ???
- Notes: available only when popped up
- performs input processing on the standard menu bar set up with AX=FFFAh
- SeeAlso: AX=FFF7h
- --------U-16FFFC-----------------------------
- INT 16 U - PC Tools v5.1-8.0 DESKTOP - GET HOTKEYS AND KEYBOARD VECTOR
- AX = FFFCh
- Return: ES:BX -> hotkey table (see #0488)
- DS:DX = original INT 09 vector
-
- Format of PC Tools DESKTOP hotkey table:
- Offset Size Description (Table 0488)
- 00h 2 BYTEs scancode/shift state for desktop hotkey
- 02h 2 BYTEs scancode/shift state for clipboard paste key
- 04h 2 BYTEs scancode/shift state for clipboard copy key
- 06h 2 BYTEs scancode/shift state for screen autodial key
- --------U-16FFFD-----------------------------
- INT 16 U - PC Tools v5.1-8.0 DESKTOP - COPY ???
- AX = FFFDh
- Return: AX destroyed
- Note: copies 4000 bytes from ??? to ??? under certain circumstances
- SeeAlso: AX=FF91h,AX=FF92h
- --------M-16FFFE-----------------------------
- INT 16 U - PC Tools v5.1-8.0 DESKTOP - SHOW MOUSE CURSOR
- AX = FFFEh
- SeeAlso: AX=FFFFh,INT 33/AX=0001h
- --------M-16FFFF-----------------------------
- INT 16 U - PC Tools v5.1-8.0 DESKTOP - HIDE MOUSE CURSOR
- AX = FFFFh
- SeeAlso: AX=FFFEh,INT 33/AX=0002h
- --------P-17----DX0ABC-----------------------
- INT 17 - PRINTER - LPTx v5.x INSTALLATION CHECK
- DX = 0ABCh
- Return: AX = AAAAh
- DX = BAAAh
- ES = code segment of resident portion
- --------P-17----DX0B90-----------------------
- INT 17 - PRINTER - LPTx v6.x INSTALLATION CHECK
- DX = 0B90h
- Return: DX = ABBBh
- ES = code segment of resident portion
- --------P-17----DX0B91-----------------------
- INT 17 - PRINTER - LPTx v7.x INSTALLATION CHECK
- DX = 0B91h
- Return: DX = ABCBh
- ES = code segment of resident portion
- --------P-17----DX0F5F-----------------------
- INT 17 - PRINTER - LPTx v4.x INSTALLATION CHECK
- DX = 0F5Fh
- Return: AX = AAAAh
- DX = F555h
- ES = code segment of resident portion
- --------B-1700-------------------------------
- INT 17 - PRINTER - WRITE CHARACTER
- AH = 00h
- AL = character to write
- DX = printer number (00h-02h)
- Return: AH = printer status (see #0489)
- SeeAlso: AH=02h,AH=84h"AX",AX=6F02h,AH=F1h,INT 16/AX=FFE3h,INT 1A/AH=11h"NEC"
-
- Bitfields for printer status:
- Bit(s) Description (Table 0489)
- 7 not busy
- 6 acknowledge
- 5 out of paper
- 4 selected
- 3 I/O error
- 2-1 unused
- 0 timeout
- --------B-1701-------------------------------
- INT 17 - PRINTER - INITIALIZE PORT
- AH = 01h
- DX = printer number (00h-02h)
- Return: AH = printer status (see #0489)
- Note: some printers report that they are ready immediately after
- initialization when they actually are not; a more reliable result may
- be obtained by calling AH=02h after a brief delay
- SeeAlso: AH=02h,AH=FFh"PC-MOS",INT 1A/AH=10h"NEC"
- --------B-1702-------------------------------
- INT 17 - PRINTER - GET STATUS
- AH = 02h
- DX = printer number (00h-02h)
- Return: AH = printer status (see #0489)
- Note: PRINTFIX from MS-DOS 5.0 hooks this function and always returns AH=90h
- SeeAlso: AH=01h,AH=F2h,INT 1A/AH=12h"NEC"
- --------P-1702--DX0000-----------------------
- INT 17 - INSET - INSTALLATION CHECK
- AH = 02h
- DX = 0000h
- CX = 07C3h (1987d)
- Return: CX = 07C2h (1986d) if installed
- Program: INSET is a text/graphics integration program
- --------b-170200BX5050-----------------------
- INT 17 - Advanced Parallel Port (EPP) BIOS - INSTALLATION CHECK
- AX = 0200h
- BX = 5050h ('PP')
- CH = 45h ('E')
- DX = printer port number (00h-02h)
- Return: AH = status
- 00h if installed and port is an enhanced parallel port
- CX:AL = installed BIOS type
- 5050h:45h ('PPE') if EPP v3.0 BIOS Installed
- 4550h:50h ('EPP') if EPP v1.0 BIOS installed
- DX:BX -> far entry point to Advanced BIOS (see #0490)
- 03h if installed but specified port not supported
- CF set
- Program: The Advanced Parallel Port BIOS provides support for parallel
- port peripherals using the enhanced modes of the IEEE 1284.
- SeeAlso: AH=E0h
-
- (Table 0490)
- Call EPP BIOS entry point with:
- DL = port number
- AH = function
- 00h get ???
- Return: AH = 00h if successful
- BH = ??? (10h)
- BL = ??? (00h)
- ES:DI -> driver copyright string???
- CX = I/O port base address for parallel port
- AL = IRQ number used by port
- 01h set port mode???
- AL = ???
- bit 0: ???
- bit 1: ???
- bit 2: ???
- bits 3-7 reserved (0)
- Return: AH = 00h if successful
- CF clear if successful
- AL = ??? (destroyed?)
- 02h get port mode???
- Return: AL = ??? (01h,02h,04h,FFh)
- AH = 00h
- CF clear
- 03h interrupt control
- AL = subfunction
- 00h enable parallel port interrupts
- 01h disable parallel port interrupts
- Return: AH = status (00h,05h,06h) (see also #0491)
- 04h set ???
- Return: AH = 00h if successful
- AL destroyed
- 05h ???
- Return: AL destroyed
- 06h get ???
- Return: AL = ??? (read from port 037Bh after setting bit 5 of
- port 037Ah)
- 07h get ???
- Return: AL = ??? (read from port 037Ch after clearing bit 5 of
- port 037Ah)
- 08h output block of data
- ES:SI -> block of data to be sent to parallel port
- CX = number of bytes to output
- Return: AH = status (see #0491)
- Note: clears bit 5 of port 037Ah, then does OUTSB to 037Ch
- 09h read byte of data
- Return: AH = status (see #0491)
- AL = byte read from parallel port
- Note: sets bit 5 of port 037Ah, then does IN from 037Ch
- 0Ah read block of data
- ES:DI -> buffer for received data
- CX = number of bytes to read from paralle port
- Return: AH = status (see #0491)
- ES:DI buffer filled if successful
- Note: sets bit 5 of port 037Ah, then does INSB from 037Ch
- 0Bh read ???
- AL = ???
- Return: AH = status (see #0491)
- AL = byte read if successful
- Note: clears bit 5 of port 037Ah, does OUT to 037Bh, then
- sets bit 5 of 037Ah and does IN from 037Ch
- 0Ch send ???
- AL = ??? (byte to send to port 037Bh)
- DH = ??? (byte to send to port 037Ch)
- Return: AH = status (see #0491)
- Note: clears bit 5 of port 037Ah, does OUT to 037Bh, then
- sets bit 5 of 037Ah and does OUT to 037Ch
- 0Dh read block ???
- AL = ??? (byte to send to port 037Bh)
- ES:DI -> buffer for received data
- CX = number of bytes to read
- Return: AH = status (see #0491)
- Note: clears bit 5 of port 037Ah, does OUT to 037Bh, then
- sets bit 5 of 037Ah and does INSB from 037Ch
- 0Eh write block ???
- AL = ??? (byte to send to port 037Bh)
- ES:DI -> data to be sent
- CX = number of bytes to write
- Return: AH = status (see #0491)
- Note: clears bit 5 of port 037Ah, does OUT to 037Bh, then
- sets bit 5 of 037Ah and does OUTSB to 037Ch
- 0Fh NOP???
- Return: AH = status (00h,03h,05h) (see #0491)
- Notes: this function does nothing beyond checking whether
- the desired port is supported and in the proper mode
- must call function 01h with AL=04h first to get a
- successful return code
- 10h NOP???
- Return: AH = status (00h,03h,05h) (see #0491)
- Notes: this function does nothing beyond checking whether
- the desired port is supported and in the proper mode
- must call function 01h with AL=04h first to get a
- successful return code
- 11h ???
- AL = subfunction
- 00h ???
- 01h ???
- ES:DI -> ???
- Return: AH = status (00h,03h,05h,06h) (see #0491)
- 12h ???
- AL = subfunction
- 00h get ???
- 01h increment ???
- 02h decrement ???
- Return: AH = status (00h,05h,06h,07h) (see #0491)
- AL = current state of ??? (00h,01h)
- Note: unlike all other functions, this one does not use DL
- Return: AH = status (see #0491)
- CF clear if successful
- CF set on error
- Notes: functions 03h-12h all require that function 01h have been called
- with AL=04h first
- the above description is derived from Compaq's EPPBIOS.SYS, supplied
- in SOFTPAQ number 0937
-
- (Table 0491)
- Values for EPP BIOS function status:
- 00h successful
- 02h invalid parameter???
- 03h unsupported parallel port
- 05h unsupported in current mode
- 06h invalid subfunction
- 07h already ???
- FFh invalid/unsupported function
- --------P-1703-------------------------------
- INT 17 U - Emulaser ELTSR - INSTALL INTERRUPT HANDLERS
- AH = 03h
- Return: BX = ???
- CX = ???
- Program: ELTSR is the resident portion of the Emulaser PostScript emulator by
- Vertisoft Systems, Inc.
- SeeAlso: AH=04h"Emulaser",AH=0Eh,INT 1A/AH=E5h
- --------c-1703-------------------------------
- INT 17 - PC-MOS/386 v5.01 - PRINT SPOOLER - PRINT STRING
- AH = 03h
- DX = printer port number
- CX = number of characters to print
- DS:SI -> string
- Return: AH = printer status (see #0489)
- CX = number of characters actually printed
- Desc: send an entire string of chars to the print spooler with a single call
- Program: PC-MOS/386 v5.01 is a multitasking, multiuser MS-DOS 5.0-compatible
- operating system by The Software Link, Inc.
- SeeAlso: AH=00h,AH=01h,AH=02h,AH=FFh"PC-MOS"
- --------c-1703--BX5A00-----------------------
- INT 17 - DMP Print Spooler v2.03 - INSTALLATION CHECK
- AH = 03h
- BX = 5A00h
- Return: AX = 5ACBh
- DI = 0000h
- ES = DMP code segment (also data segment)
- Program: DMP is a Printer driver/spooler, by DMP (USA), available on the
- PCTODAY disk, volume 10, March 1991
- --------N-170300-----------------------------
- INT 17 - DOSISODE to WATTCP TSR Interface - "socket"
- AX = 0300h
- CX = type of socket from socket( domain, type, protocol )
- DX = local identifier of socket (0 - 31)
- Return: AX = 0000h success
- CX = segment of 4500 byte transfer buffer
- DX = offset of 4500 byte transfer buffer
- = FFFFH failure
- CX = error code
- ENFILE 23
- Program: DOSISODE is the ISO developers environment which has been ported to
- DOS and will run with the Waterloo TCP turned into a resident TSR.
- Currently it allows a maximum of 6 open sockets.
- Note: this function will initialize the interface the first time it is
- called
- SeeAlso: AX=0400h"DOSISODE",AX=0600h"DOSISODE",AX=0800h"DOSISODE"
- SeeAlso: AX=0A00h"DOSISODE",AX=0C00h"DOSISODE",AX=0E00h"DOSISODE"
- --------P-1704-------------------------------
- INT 17 U - Emulaser ELTSR - BEGIN CAPTURING OUTPUT
- AH = 04h
- Note: has no effect unless ELTSR is deactivated (see AX=0503h)
- SeeAlso: AH=03h"Emulaser",AX=0503h,INT 1A/AH=E5h
- --------N-170400-----------------------------
- INT 17 - DOSISODE to WATTCP TSR Interface - "bind"
- AX = 0400h
- Note: this function just returns
- SeeAlso: AX=0300h"DOSISODE",AX=0500h"DOSISODE",AX=0C00h"DOSISODE"
- --------P-170500-----------------------------
- INT 17 U - Emulaser ELTSR - ???
- AX = 0500h
- ???
- Return: AX = unload status (0001h safe to unload, 0002h not safe)
- BX = ???
- CX = PSP segment of ELTSR
- DX = activity flag (0000h disabled, 0001h capturing, 0002h ???printing)
- SI = ???
- DI = ???
- SeeAlso: AH=04h,INT 1A/AH=E5h
- --------N-170500-----------------------------
- INT 17 - DOSISODE to WATTCP TSR Interface - "connect"
- AX = 0500h
- SeeAlso: AX=0400h"DOSISODE",AX=0700h"DOSISODE",AX=0C00h"DOSISODE"
- --------P-170501-----------------------------
- INT 17 U - Emulaser ELTSR - UNHOOK INTERRUPTS
- AX = 0501h
- Return: (see AX=0500h)
- Note: restores interrupt vectors without checking whether they have been
- hooked by later programs; should only be called if ELTSR reports
- that it is safe to unload
- SeeAlso: AH=04h,AX=0500h,AX=0503h,INT 1A/AH=E5h
- Index: uninstall;Emulaser ELTSR
- --------P-170502-----------------------------
- INT 17 U - Emulaser ELTSR - SET ???
- AX = 0502h
- BL = Emulaser port (31h = LPT1, 32h = LPT2, 33h = LPT3)
- CL = ???
- DL = ???
- Return: (see AX=0500h)
- SeeAlso: AH=04h,AX=0500h,INT 1A/AH=E5h
- --------P-170503-----------------------------
- INT 17 U - Emulaser ELTSR - DEACTIVATE???
- AX = 0503h
- Return: (see AX=0500h)
- SeeAlso: AH=04h,AX=0500h,AX=0501h,INT 1A/AH=E5h
- --------P-1706-------------------------------
- INT 17 U - Emulaser ELTSR - ???
- AH = 06h
- ???
- Return: ???
- SeeAlso: AH=05h,INT 1A/AH=E5h
- --------N-170600-----------------------------
- INT 17 - DOSISODE to WATTCP TSR Interface - "listen"
- AX = 0600h
- Note: this function just returns
- SeeAlso: AX=0300h"DOSISODE",AX=0700h"DOSISODE",AX=0C00h"DOSISODE"
- SeeAlso: AX=0E00h"DOSISODE"
- --------P-1707-------------------------------
- INT 17 U - Emulaser ELTSR - OPEN CAPTURE FILE
- AH = 07h
- ES:DX -> ASCIZ filename to be opened
- Return: ???
- Note: new output will be appended to the specified file
- SeeAlso: AH=08h,INT 1A/AH=E5h
- --------N-170700-----------------------------
- INT 17 - DOSISODE to WATTCP TSR Interface - "accept"
- AX = 0700h
- Note: this function just returns
- SeeAlso: AX=0600h"DOSISODE",AX=0800h"DOSISODE",AX=0C00h"DOSISODE"
- --------P-1708-------------------------------
- INT 17 U - Emulaser ELTSR - CLOSE CAPTURE FILE
- AH = 08h
- ???
- Return: ???
- Desc: close the file previously opened by function 07h
- SeeAlso: AH=07h,INT 1A/AH=E5h
- --------N-170800-----------------------------
- INT 17 - DOSISODE to WATTCP TSR Interface - "recvfrom"
- AX = 0800h
- SeeAlso: AX=0500h"DOSISODE",AX=0900h"DOSISODE",AX=0A00h"DOSISODE"
- --------P-1709-------------------------------
- INT 17 U - Emulaser ELTSR - PRINT CAPTURE FILE???
- AH = 09h
- BX = ???
- CX = ???
- DX = printer port (01h COM1, 02h COM2, 05h LPT1, 06h LPT2)
- Return: AX = status
- 00h successful
- FFh failed
- Program: ELTSR is the resident portion of the Emulaser PostScript emulator by
- Vertisoft Systems, Inc.
- Note: this function calls through to INT 1A/AX=E401h, and thus requires
- that either ELSPL or Disk Spool II be installed
- SeeAlso: AH=0Ah,INT 1A/AX=E401h,INT 1A/AH=E5h
- --------N-170900-----------------------------
- INT 17 - DOSISODE to WATTCP TSR Interface - "sendto"
- AX = 0900h
- SeeAlso: AX=0700h"DOSISODE",AX=0800h"DOSISODE",AX=0A00h"DOSISODE"
- --------P-170A-------------------------------
- INT 17 U - Emulaser ELTSR - SET ??? FILENAME
- AH = 0Ah
- ES:BX -> ??? buffer
- CX = length of ??? buffer
- Return: ???
- Note: copies the specified name into the buffer passed to ELSPL as the
- filename by AH=09h
- SeeAlso: AH=09h,INT 1A/AH=E5h
- --------N-170A00-----------------------------
- INT 17 - DOSISODE to WATTCP TSR Interface - "select"
- AX = 0A00h
- SeeAlso: AX=0800h"DOSISODE",AX=0B00h"DOSISODE",AX=0E00h"DOSISODE"
- --------P-170B-------------------------------
- INT 17 U - Emulaser ELTSR - GET ???
- AH = 0Bh
- Return: AX:BX -> ???
- SeeAlso: AH=0Ah,INT 1A/AH=E5h
- --------N-170B00-----------------------------
- INT 17 - DOSISODE to WATTCP TSR Interface - "ioctl"
- AX = 0B00h
- DX = local identifier of socket (0 - 31)
- Note: this function sets the socket into non_block mode
- SeeAlso: AX=0A00h"DOSISODE",AX=0C00h"DOSISODE",AX=0E00h"DOSISODE"
- --------P-170C-------------------------------
- INT 17 U - Emulaser ELTSR - SET ??? FLAG
- AH = 0Ch
- ???
- Return: ???
- SeeAlso: AH=0Bh,INT 1A/AH=E5h
- --------N-170C00-----------------------------
- INT 17 - DOSISODE to WATTCP TSR Interface - "close"
- AX = 0C00h
- SeeAlso: AX=0300h"DOSISODE",AX=0500h"DOSISODE",AX=0D00h"DOSISODE"
- --------P-170D-------------------------------
- INT 17 U - Emulaser ELTSR - GET TRUE ScrlLk STATE
- AH = 0Dh
- Return: AX = state (0000h off, 0010h on)
- Desc: determine the actual state of ScrlLk even when Emulaser is controlling
- the ScrlLk light as its activity indicator
- SeeAlso: AH=0Ch,INT 16/AH=02h,INT 1A/AH=E5h
- --------N-170D00-----------------------------
- INT 17 - DOSISODE to WATTCP TSR Interface - "shutdown" - SHUTDOWN INTERFACE
- AX = 0D00h
- Note: this function is used to shutdown the interface
- SeeAlso: AX=0C00h"DOSISODE",AX=0E00h"DOSISODE"
- --------P-170E-------------------------------
- INT 17 U - Emulaser ELTSR - BACKGROUND PROCESSING
- AH = 0Eh
- Program: ELTSR is the resident portion of the Emulaser PostScript emulator by
- Vertisoft Systems, Inc.
- Note: this function is called by ELTSR on every INT 08 to allow data to be
- processed in the background, but may also be called by applications
- to give Emulaser additional CPU time
- SeeAlso: AH=0Dh,INT 1A/AH=E5h
- --------N-170E00-----------------------------
- INT 17 - DOSISODE to WATTCP TSR Interface - INSTALLATION CHECK
- AX = 0E00h
- Return: CX = 1234h if installed
- Program: DOSISODE is the ISO developers environment which has been ported to
- DOS and will run with the Waterloo TCP turned into a resident TSR.
- Currently it allows a maximum of 6 open sockets.
- Note: this function is used to check if the interface is loaded
- SeeAlso: AX=0300h"DOSISODE",AX=0A00h"DOSISODE"
- --------P-172000-----------------------------
- INT 17 - PC Paint Plus 2.0 - PRINTER DRIVER - INSTALLATION CHECK
- AX = 2000h
- BL = printer number???
- Return: AX = status (see #0492)
- BX = driver version number (BH=major,BL=minor)
- CH = ??? (00h)
- CL = ???
- DX = ??? (0100h)
- Note: also enables the remaining printer driver functions (2001h-2007h)
- SeeAlso: AX=2001h,AX=2002h,AX=2003h,AX=2004h,AX=2005h,AX=2006h,AX=2007h
-
- (Table 0492)
- Values for PC Paint function status:
- 0000h successful
- 0001h invalid printer???
- 0002h ???
- 0003h invalid subfunction
- 0005h driver disabled, must call function 00h first
- 0009h unknown printer error
- 000Bh printer not selected
- 000Ch printer out of paper
- 000Eh error while writing to serial printer
- 000Fh ???
- 0010h invalid function number
- 0011h value out of range
- --------P-172001-----------------------------
- INT 17 - PC Paint Plus 2.0 - PRINTER DRIVER - SET ??? FLAG
- AX = 2001h
- BL = printer number???
- Return: AX = status (see #0492)
- --------P-172002-----------------------------
- INT 17 - PC Paint Plus 2.0 - PRINTER DRIVER - GET INFORMATION
- AX = 2002h
- BL = printer number???
- CL = desired information
- 00h printer type
- Return: ES:DI -> ASCIZ printer name
- 01h paper size
- DX = size index
- Return: ES:DI -> ASCIZ paper size description
- 02h ???
- Return: BX = ???
- 03h printer information???
- DX = ???
- ES:BX -> buffer for ??? (min 134 bytes)
- Return: AX = status (see #0492)
- SeeAlso: AX=2000h,AX=2004h
- --------P-172003-----------------------------
- INT 17 - PC Paint Plus 2.0 - PRINTER DRIVER - ???
- AX = 2003h
- ES:BX -> ???
- Return: AX = status (see #0492)
- SeeAlso: AX=2000h,AX=2004h
- --------P-172004-----------------------------
- INT 17 - PC Paint Plus 2.0 - PRINTER DRIVER - GET ???
- AX = 2004h
- BL = printer number???
- Return: AX = status (see #0492)
- ES:DI -> ???
- SeeAlso: AX=2000h,AX=2003h
- --------P-172005-----------------------------
- INT 17 - PC Paint Plus 2.0 - PRINTER DRIVER - ADVANCE PRINTER TO NEXT PAGE
- AX = 2005h
- BL = printer number???
- Return: AX = status (see #0492)
- Note: this function also clears the flag set by AX=2001h
- SeeAlso: AX=2000h,AX=2001h,AX=2006h
- --------P-172006-----------------------------
- INT 17 - PC Paint Plus 2.0 - PRINTER DRIVER - ADVANCE TO NEXT PAGE & SHUT DOWN
- AX = 2006h
- BL = printer number???
- Return: AX = status (see #0492)
- Note: this function also clears the flag set by AX=2001h and disables
- functions other than AX=2000h
- SeeAlso: AX=2000h,AX=2001h,AX=2005h
- --------P-172007-----------------------------
- INT 17 - PC Paint Plus 2.0 - PRINTER DRIVER - UNIMPLEMENTED
- AX = 2007h
- Return: AX unchanged
- SeeAlso: AX=2000h
- --------N-172400-----------------------------
- INT 17 - Shamrock Software NET.24 v3.11+ - ENABLE/DISABLE API FUNCTIONS
- AX = 2400h
- DL = new state
- 00h disabled
- 01h enabled
- Return: DL = 24h if installed
- DH = minor version number
- CX = network address of this machine
- AL = status (see #0493)
- SeeAlso: AX=2403h,INT 16/AX=4500h
-
- (Table 0493)
- Values for NET.24 function status:
- 00h successful
- 01h timeout
- 02h header error
- 03h data error
- 04h busy
- 05h invalid parameters
- --------N-172401-----------------------------
- INT 17 - Shamrock Software NET.24 v3.11+ - RECEIVE BLOCK, NO HANDSHAKE
- AX = 2401h
- BL = timeout in clock ticks
- Return: AL = status (see #0493)
- DX:BX -> receive buffer
- SeeAlso: AX=2402h,AX=2404h,AX=2408h
- --------N-172402-----------------------------
- INT 17 - Shamrock Software NET.24 v3.11+ - TRANSMIT BLOCK, NO HANDSHAKE
- AX = 2402h
- transmit buffer filled (see AX=2403h)
- Return: AL = status (see #0493)
- SeeAlso: AX=2401h,AX=2403h,AX=2404h,AX=2409h
- --------N-172403-----------------------------
- INT 17 - Shamrock Software NET.24 v3.11+ - GET STATUS AND TRANSMISSION BUFFER
- AX = 2403h
- Return: AL = status (see #0493)
- CX = number of characters in receive ring buffer
- DX:BX -> transmit buffer
- SeeAlso: AX=2400h,AX=2402h
- --------N-172404-----------------------------
- INT 17 - Shamrock Software NET.24 v3.11+ - SEND ACK BLOCK
- AX = 2404h
- BX = target address
- Return: AL = status (see #0493)
- SeeAlso: AX=2402h,AX=2405h
- --------N-172405-----------------------------
- INT 17 - Shamrock Software NET.24 v3.11+ - SEND NAK BLOCK
- AX = 2405h
- BX = target address
- Return: AL = status (see #0493)
- SeeAlso: AX=2402h,AX=2404h
- --------N-172406-----------------------------
- INT 17 - Shamrock Software NET.24 v3.11+ - PREPARE CHARACTER-ORIENTED RECEIVE
- AX = 2406h
- Return: AL = status (see #0493)
- SeeAlso: AX=2407h,AX=240Ah
- --------N-172407-----------------------------
- INT 17 - Shamrock Software NET.24 v3.11+ - RECEIVE CHARACTER FROM REMOTE
- AX = 2407h
- Return: AL = status (see also #0493)
- 06h end of data
- DL = received character
- SeeAlso: AX=2406h
- --------N-172408-----------------------------
- INT 17 - Shamrock Software NET.24 v3.11+ - RECEIVE BLOCK, WITH HANDSHAKE
- AX = 2408h
- Return: AL = status (see also #0493)
- 06h end of data
- CX = number of bytes in receive buffer
- DX:SI -> receive buffer
- SeeAlso: AX=2401h,AX=2405h,AX=2409h
- --------N-172409-----------------------------
- INT 17 - Shamrock Software NET.24 v3.11+ - TRANSMIT COMMAND, WITH HANDSHAKE
- AX = 2409h
- BX = target address
- CX = number of data bytes
- DL = command code to send
- DS:SI -> data bytes for command
- Return: AL = status (see also #0493)
- 03h no response
- 06h remote currently unable to perform command
- SeeAlso: AX=2405h,AX=2408h
- --------N-17240A-----------------------------
- INT 17 - Shamrock Software NET.24 v3.11+ - PREPARE CHARACTER-ORIENTED TRANSMIT
- AX = 240Ah
- Return: AL = status (see #0493)
- SeeAlso: AX=2406h,AX=240Bh,AX=240Ch
- --------N-17240B-----------------------------
- INT 17 - Shamrock Software NET.24 v3.11+ - TRANSMIT SINGLE CHARACTER TO REMOTE
- AX = 240Bh
- DL = character to send
- Return: AL = status (see also AX=2400h)
- 03h transmission error
- 06h write error
- SeeAlso: AX=2407h,AX=240Ah,AX=240Ch
- --------N-17240C-----------------------------
- INT 17 - Shamrock Software NET.24 v3.11+ - END CHARACTER-ORIENTED TRANSMIT
- AX = 240Ch
- Return: AL = status (see also AX=2400h)
- 03h transmission error
- 06h remote breaks connection
- SeeAlso: AX=240Ah,AX=240Bh
- --------J-175000-----------------------------
- INT 17 - AX (Japanese AT) PRINTER - SET PRINTER COUNTRY CODE
- AX = 5000h
- BX = country code
- 0001h USA (English), 0051h Japan
- Return: AL = status
- 00h successful
- 01h bad country code
- 02h other error
- SeeAlso: AX=5001h,AH=51h,INT 10/AX=5000h,INT 16/AX=5000h
- --------J-175001-----------------------------
- INT 17 - AX (Japanese AT) PRINTER - GET PRINTER COUNTRY CODE
- AX = 5001h
- Return: AL = status
- 00h successful
- BX = country code
- 02h error
- SeeAlso: AX=5000h,AH=51h,INT 10/AX=5001h,INT 16/AX=5001h
- --------J-1751-------------------------------
- INT 17 - AX (Japanese AT) PRINTER - JIS to Shift-JIS CONVERSION
- AH = 51h
- DX = 2-byte JIS code
- Return: DX = shift-JIS value or 0000h on error
- Note: one of AH=51h and AH=52h converts from JIS (Japanese Industry Standard)
- characters to Shift-JIS characters, and the other performs the
- opposite conversion
- SeeAlso: AX=5000h,AH=52h
- --------J-1752-------------------------------
- INT 17 - AX (Japanese AT) PRINTER - Shift-JIS to JIS CONVERSION
- AH = 52h
- DX = 2-byte shift-JIS code
- Return: DX = JIS code or 0000h on error
- Note: one of AH=51h and AH=52h converts from JIS (Japanese Industry Standard)
- characters to Shift-JIS characters, and the other performs the
- opposite conversion
- SeeAlso: AH=51h
- --------V-1760-------------------------------
- INT 17 - FLASHUP.COM - INSTALLATION CHECK
- AH = 60h
- Return: AL = 60h
- DX = CS of resident code
- Notes: FLASHUP.COM is part of Flash-Up Windows by The Software Bottling Co.
- FLASHUP also hooks INT 10 and receives commands via INT 10/AH=09h,0Ah
- consisting of an 80h followed by the actual command
- SeeAlso: INT 10/AH=09h,INT 10/AH=0Ah
- --------V-1761-------------------------------
- INT 17 - SPEEDSCR.COM - INSTALLATION CHECK
- AH = 61h
- Return: AL = 61h
- DX = CS of resident code
- Note: SPEEDSCR.COM is by The Software Bottling Co.
- --------P-1762-------------------------------
- INT 17 U - T2PS v1.0 - UNINSTALL
- AH = 62h
- Return: nothing
- SeeAlso: AH=63h,AH=64h,INT 05/AX=554Eh
- --------P-1763-------------------------------
- INT 17 U - T2PS v1.0 - SET PARAMETERS
- AH = 63h
- ES:SI -> settings (see #0494)
- Program: T2PS is a shareware ASCII-to-PostScript converter by A.N.D.
- Technologies
- SeeAlso: AH=62h,AH=64h,INT 05/AX=4E57h
-
- Format of T2PS settings:
- Offset Size Description (Table 0494)
- 00h WORD LPT port number (0=LPT1, etc.)
- 02h WORD page heigh in points
- 04h WORD page width in points
- 06h WORD top margin in points
- 08h WORD bottom margin in points
- 0Ah WORD left margin in points
- 0Ch WORD right margin in points
- 0Eh WORD font size in points
- 10h WORD tab size
- 12h WORD timeout in clock ticks
- --------P-1764-------------------------------
- INT 17 U - T2PS v1.0 - GET PARAMETERS
- AH = 64h
- ES:SI -> buffer for settings (see #0494)
- Return: ES:SI buffer filled
- SeeAlso: AH=62h,AH=63h,INT 05/AX=5053h
- --------b-176F00BX0000-----------------------
- INT 17 - HP Vectra - EXTENDED BIOS - "F17_INQUIRE" - INSTALLATION CHECK
- AX = 6F00h
- BX = 0000h
- Return: BX = 4850h ("HP") if HP Extended BIOS printer extensions available
- SeeAlso: AX=6F02h,INT 14/AX=6F00h,INT 10/AX=6F00h,INT 14/AX=6F00h
- SeeAlso: INT 33/AX=6F00h,INT 6F/AH=00h"HP Vectra"
- --------b-176F02-----------------------------
- INT 17 - HP Vectra - EXTENDED BIOS - "F17_PUT_BUFFER" - PRINT BUFFER
- AX = 6F02h
- CX = size of buffer in bytes
- DX = port number (0-3)
- ES:DI -> buffer containing characters to be printed
- Return: AH = printer status (see #0489)
- CX = number of bytes successfully printed
- ---on error (AH bit 0 set)---
- ES:DI -> next byte to be sent
- ---if successful---
- ES:DI unchanged
- SeeAlso: AH=00h,AX=6F00h,INT 14/AX=6F02h
- --------N-1781-------------------------------
- INT 17 - Alloy NTNX, MW386 - CANCEL JOBS FOR CURRENT USER
- AH = 81h
- AL = 00h (NTNX compatibility mode)
- CL = number of jobs to cancel
- Return: AL = status (see #0495)
- Note: this function cancels the last CL printouts for the current task
- SeeAlso: AH=82h
-
- (Table 0495)
- Values for Alloy status:
- 00h success
- 01h-7Fh warning
- 80h general failure
- 81h host overloaded (NTNX only)
- 82h module busy (NTNX only)
- 83h host busy (NTNX only)
- 84h re-entry flag set
- 85h invalid request
- 86h invalid printer
- 87h invalid process ID
- 89h access denied
- 8Ah option not available for given port type
- 8Bh option not available for given task type
- 91h printer busy
- C2h file not found
- C3h path not found
- C4h file access failure
- --------N-1782-------------------------------
- INT 17 - Alloy NTNX, MW386 - CANCEL ALL JOBS FOR CURRENT USER
- AH = 82h
- AL = 00h (NTNX compatibility mode)
- Return: AL = status (see #0495)
- SeeAlso: AH=81h
- --------N-1783-------------------------------
- INT 17 - Alloy NTNX, MW386 - SET NUMBER OF COPIES
- AH = 83h
- AL = mode
- 00h NTNX compatibility
- CL = number of copies (max 99, default 1)
- 02h MW386 v2+
- BX = logical device number
- 00h-03h = LPT1-LPT4
- 04h-07h = COM1-COM4
- CX = number of copies
- Return: AL = status (see #0495)
- Note: in NTNX compatibility mode, this function only affects LPT1
- --------N-1784-------------------------------
- INT 17 - Alloy NTNX, MW386 - GENERATE PRINT BREAK
- AH = 84h
- AL = mode
- 00h NTNX compatibility
- 02h MW386 v2+
- BX = logical device number
- 00h-03h = LPT1-LPT4
- 04h-07h = COM1-COM4
- Note: closes spool file and tells spooler to queue the print job (LPT1 only
- under MW386 in NTNX compatibility mode)
- --------J-1784-------------------------------
- INT 17 - AX (Japanese AT) PRINTER - OUTPUT CHARACTER WITHOUT CONVERSION
- AH = 84h
- AL = character
- DX = printer number
- Return: AH = printer status (see #0489)
- SeeAlso: AH=00h,AH=85h
- --------J-1785-------------------------------
- INT 17 - AX (Japanese AT) PRINTER - ENABLE/DISABLE CHARACTER CONVERSION
- AH = 85h
- AL = new state (00h enabled, 01h disabled)
- SeeAlso: AH=84h"AX"
- --------N-1787-------------------------------
- INT 17 - Alloy NTNX - SET INDOS POINTER
- AH = 87h
- AL = 00h
- CX:BX -> buffer for user-written printer drivers
- Return: BX,CX destroyed
- Note: must be executed before the printer is enabled
- SeeAlso: AH=8Ah
- --------N-1788-------------------------------
- INT 17 - Alloy NTNX, MW386 - REMOVE PRINTER FROM SPOOLER
- AH = 88h
- AL = mode
- 00h NTNX compatibility
- DX = NTNX printer number (see #0496)
- 01h MW386
- DX = MW386 printer number
- Return: AH = status (see #0495)
- Note: removes specified printer from the spooler's list of printers
- SeeAlso: AH=89h,AH=8Bh
-
- (Table 0496)
- Values for Alloy NTNX printer number:
- 00h host LPT1
- 01h host LPT2
- 02h host LPT3
- 03h host LPT4
- 04h host COM1
- 05h host COM2
- 06h user's logical COM2
- 07h user's terminal AUX port
- 08h user's logical COM1 (MW386 only)
- --------N-1789-------------------------------
- INT 17 - Alloy NTNX, MW386 - ADD PRINTER TO SPOOLER
- AH = 89h
- AL = mode
- 00h NTNX compatibility
- DX = NTNX printer number (see #0496)
- 01h MW386
- DX = MW386 printer number
- Return: AL = status (see #0495)
- Note: the specified printer is added to the spooler's list of available
- printers
- SeeAlso: AH=88h,AH=8Bh
- --------N-178A-------------------------------
- INT 17 - Alloy NTNX - ACTIVATE USER-WRITTEN PRINTER DRIVER
- AH = 8Ah
- ???
- SeeAlso: AH=92h
- --------N-178B-------------------------------
- INT 17 - Alloy MW386 - GET PHYSICAL DEVICE NUMBER FROM NAME
- AH = 8Bh
- DS:DX -> ASCIZ printer name
- Return: AL = status (see also AH=81h)
- 00h successful
- DX = physical device number
- SeeAlso: AH=89h,AH=8Ch,INT 14/AH=20h"Alloy"
- --------N-178C-------------------------------
- INT 17 - Alloy MW386 - GET DEVICE NAME FROM PHYSICAL DEVICE NUMBER
- AH = 8Ch
- DX = physical device number
- ES:DI -> 17-byte buffer for ASCIZ device name
- Return: AL = status (see also AH=81h)
- 00h successful
- ES:DI buffer filled
- SeeAlso: AH=88h,AH=8Bh
- --------N-178D-------------------------------
- INT 17 - Alloy NTNX,MW386 - RESET SPOOLER
- AH = 8Dh
- AL = 00h
- Return: AL = status (see #0495)
- Notes: clears all buffers and resets spooler to boot-up values
- MW386 supports this function for compatibility only; it is a NOP
- --------N-178E-------------------------------
- INT 17 - Alloy NTNX - GET INT 28 ENTRY POINT
- AH = 8Eh
- AL = 00h
- Return: CX:BX -> INT 28 entry point
- SeeAlso: AH=8Fh
- --------N-178F-------------------------------
- INT 17 - Alloy NTNX - GET DOS INTERCEPT ENTRY POINT
- AH = 8Fh
- AL = 00h
- Return: CX:BX -> DOS intercept routine
- SeeAlso: AH=8Eh
- --------N-1790-------------------------------
- INT 17 - Alloy NTNX, MW386 - SPOOL FILE BY NAME
- AH = 90h
- AL = mode
- 00h NTNX compatibility
- DL = printer code (FFh=current) (NTNX, MW386 v1.x only)
- DH = number of copies (FFh=current) (NTNX, MW386 v1.x only)
- 02h MW386 v2+
- BX = logical device number
- 00h-03h = LPT1-LPT4
- 04h-07h = COM1-COM4
- CX:SI -> ASCIZ pathname
- Return: AL = status (see #0495)
- Note: in mode 00h, the file is always sent to logical LPT1
- SeeAlso: AH=A0h
- --------N-1791-------------------------------
- INT 17 - Alloy NTNX, MW386 - GET USER NUMBER AND CURRENT PRINTER
- AH = 91h
- AL = mode
- 00h NTNX compatibility
- Return: CX = user number (00h = host)
- DX = currently selected printer number (00h-08h)
- 01h MW386
- Return: CX = user number
- DX = physical dev number of currently selected printer
- 02h MW386 v2+
- BX = logical device number
- 00h-03h = LPT1-LPT4
- 04h-07h = COM1-COM4
- Return: CX = user number
- DX = physical device number
- Return: AL = status (see #0495)
- SeeAlso: AH=8Ch
- --------N-1792-------------------------------
- INT 17 - Alloy NTNX - CHECK PRINTER DRIVER
- AH = 92h
- AL = 00h
- CL = 00h
- Return: CL = driver state
- 01h initialized
- 80h not initialized
- AX = status (see #0495)
- SeeAlso: AH=8Ah
- --------N-1794-------------------------------
- INT 17 - Alloy NTNX, MW386 - SELECT PRINTER
- AH = 94h
- AL = mode
- 00h NTNX compatibility
- DX = NTNX printer number (see #0496)
- 01h MW386
- DX = MW386 printer number
- 02h MW386 v2+
- BX = logical printer number
- DX = MW386 printer number
- Return: AL = status (see #0495)
- Note: modes 00h and 01h affect only logical LPT1
- SeeAlso: AH=8Bh,AH=95h
- --------N-1795-------------------------------
- INT 17 - Alloy NTNX, MW386 - GET CURRENT PRINTER
- AH = 95h
- AL = mode
- 00h NTNX compatibility
- Return: DX = NTNX printer number (see #0496)
- (FFFFh if current printer not compatible with NTNX)
- 01h MW386
- Return: DX = MW386 printer number
- 02h MW386 v2+
- BX = logical device number
- 00h-03h = LPT1-LPT4
- 04h-07h = COM1-COM4
- Return: DX = MW386 printer number (FFFFh = none)
- Return: AL = status (see #0495)
- Note: modes 00h and 01h return the printer number of logical LPT1 only
- SeeAlso: AH=94h
- --------N-1796-------------------------------
- INT 17 - Alloy NTNX - SET SERIAL PORT PARAMETERS
- AH = 96h
- AL = 00h
- Note: documentation states that this is a NOP, doing only XOR AX,AX before
- returning
- SeeAlso: INT 14/AH=24h
- --------N-1797-------------------------------
- INT 17 - Alloy NTNX, MW386 - SET DATA DRIVEN PRINT BREAK
- AH = 97h
- AL = mode
- 00h NTNX compatibility
- 02h MW386 v2+
- BX = logical device number
- 00h-03h = LPT1-LPT4
- 04h-07h = COM1-COM4
- CH,CL,DH = three character break sequence
- DL = subfunction
- 00h set break string
- else reset break
- Return: AL = status (see #0495)
- Notes: mode 00h affects only logical LPT1
- when the break string is encountered, the spool file will be closed and
- queued for printing automatically
- the break string is not permanently saved, and will be reset each time
- MW386 or the user is rebooted
- SeeAlso: AH=9Bh
- --------N-1798-------------------------------
- INT 17 - Alloy NTNX,MW386 - RESTART PRINTER
- AH = 98h
- AL = 00h
- DL = printer number (FFh=current)
- Return: AL = status
- 00h successful
- 01h incorrect printer
- 02h task not found
- Note: MW386 supports this function for compatibility only; it is a NOP
- --------N-1799-------------------------------
- INT 17 - Alloy NTNX, MW386 - GET/SET PRINTER MODE
- AH = 99h
- AL = mode
- 00h NTNX compatibility
- DL = NTNX printer number (see #0496)
- (FFh = task's current logical LPT1)
- DH = mode (see #0497)
- 01h MW386
- DX = MW386 printer number
- CL = mode (as for DH above)
- Return: AL = status (see #0495)
- DH = mode (bits 1 and 2 set as above)
- DL = printer owner's user number if not spooled
-
- Bitfields for Alloy printer mode:
- 0 get mode if 1, set mode if 0 (Table 0497)
- 1 private ("attached")
- 2 direct instead of spooled
- 3-7 reserved (0)
- --------N-179A-------------------------------
- INT 17 - Alloy NTNX,MW386 - SET TAB EXPANSION
- AH = 9Ah
- AL = mode
- 00h NTNX compatibility
- DX = NTNX printer number (see #0496)
- (FFFFh = current logical LPT1)
- 01h MW386
- DX = MW386 printer number
- CL = tab length (00h = no expansion, 01h-63h = spaces per tab)
- Return: AL = status (see #0495)
- Note: beginning with MW386 v2.0, tab expansion is set on a per-printer basis
- rather than a per-user basis; NTNX and MW386 v1.x ignore DX
- SeeAlso: AH=A4h
- --------N-179B-------------------------------
- INT 17 - Alloy NTNX,MW386 - SET PRINT BREAK TIMEOUT
- AH = 9Bh
- AL = mode
- 00h NTNX compatibility
- CX = timeout value in clock ticks (1/18 sec) (00h = never)
- 01h MW386
- CX = timeout value in seconds (00h = never)
- 02h MW386 v2+
- BX = logical device number
- 00h-03h = LPT1-LPT4
- 04h-07h = COM1-COM4
- CX = timeout value in seconds (00h = never)
- Return: AL = status (see #0495)
- Notes: modes 00h and 01h affect only the current logical LPT1
- if no data is sent to a printer for the specified amount of time, the
- spool file will be closed and queued for printing automatically
- SeeAlso: AH=97h
- --------N-17A0-------------------------------
- INT 17 - Alloy MW386 - SPOOL COPY OF FILE
- AH = A0h
- AL = mode
- 00h NTNX compatibility
- DX = ??? (NTNX, MW386 v1.x only)
- 02h MW386 v2+
- BX = logical device number
- 00h-03h = LPT1-LPT4
- 04h-07h = COM1-COM4
- CX:SI -> ASCIZ pathname
- Return: AL = status (see #0495)
- Notes: makes a copy of the specified file in the spooler's directory, allowing
- the original file to be modified or deleted while the copy is printed
- in mode 00h, the file is printed on logical LPT1
- SeeAlso: AH=90h
- --------N-17A4-------------------------------
- INT 17 - Alloy MW386 - ENABLE/DISABLE FORM FEED
- AH = A4h
- AL = new state
- 00h form feed after end of print job disabled
- 01h form feed enabled
- Return: AL = status (see #0495)
- Note: only affects the current logical LPT1
- SeeAlso: AH=9Ah,AH=A6h,INT 7F/AH=05h"NTNX (Host)"
- --------N-17A6-------------------------------
- INT 17 - Alloy MW386 - ENABLE/DISABLE BANNER PAGE
- AH = A6h
- AL = new state
- 00h banner page before print job disabled
- 01h banner page enabled
- Return: AL = status (see #0495)
- Note: only affects the current logical LPT1
- SeeAlso: AH=A4h
- --------N-17A7-------------------------------
- INT 17 - Alloy MW386 v2+ - GET/SET SPOOL FLAGS
- AH = A7h
- AL = spool flags (see #0498)
- BX = logical device number
- 00h-03h = LPT1-LPT4
- 04h-07h = COM1-COM4
- Return: AL = status (see #0495)
- Note: the documentation does not state which register contains the result of
- a GET
- SeeAlso: AH=A4h,AH=A6h
-
- Bitfields for Alloy spool flags:
- Bit(s) Description (Table 0498)
- 0 banner page enabled (see AH=A6h)
- 1 form feed enabled (see AH=A4h)
- 2-6 reserved (0)
- 7 set flags if 1, get flags if 0
- --------N-17A8-------------------------------
- INT 17 - Alloy MW386 - DEFINE TEMPORARY FILENAME
- AH = A8h
- CX:SI -> ASCIZ filename without extension (max 8 chars)
- Return: AL = status (see #0495)
- Note: allows application to specify banner page filename for spool files
- collected from the application's printer output
- SeeAlso: AH=A9h
- --------N-17A9-------------------------------
- INT 17 - Alloy MW386 - CHANGE TEMPORARY SPOOL DRIVE
- AH = A9h
- AL = new spool drive (2=C:,3=D:,etc)
- Return: AL = status (see #0495)
- Note: does not remove previous spooling directory since jobs may be pending
- SeeAlso: AH=A8h
- --------N-17AA-------------------------------
- INT 17 - Alloy MW386 v2+ - GET REAL-TIME PRINTER STATUS
- AH = AAh
- AL = mode
- 00h NTNX
- DX = NTNX printer number (see #0496)
- 01h MW386
- DX = MW386 printer number
- Return: AH = instantaneous printer status
- 00h printer ready
- 01h not ready
- 12h off line
- 13h out of paper
- 14h general device failure
- 15h device timeout
- 16h bad device number
- --------N-17AF-------------------------------
- INT 17 - Alloy MW386 - CHECK SPOOLER
- AH = AFh
- Return: AX = 55AAh if spooler available
- --------c-17C0-------------------------------
- INT 17 - PC Magazine PCSpool - GET CONTROL BLOCK ADDRESS
- AH = C0h
- DX = printer port (0-3)
- Return: ES:BX -> control block (see #0499)
- SeeAlso: AH=C1h
-
- Format of PCSpool control block:
- Offset Size Description (Table 0499)
- 00h WORD printer number
- 02h WORD address of printer status port
- 04h WORD number of first record in queue
- 06h WORD number of last record in queue
- 08h DWORD characters already printed
- 0Ch DWORD number of characters remaining
- 10h DWORD pointer to dequeue buffer
- 14h DWORD previous count of characters printed
- 18h DWORD number of clock ticks taken to print them
- 1Ch WORD offset of next character to output
- 1Eh WORD offset of next character to print
- 20h WORD pointer to spooling queue record
- 22h BYTE current spooling status
- 23h BYTE current printer status:
- 00h OK
- 01h not ready
- 02h paused with message
- 03h paused
- 04h initializing
- FEh non-existent port
- FFh not spooled
- 24h BYTE current control record type
- 25h WORD observed printer speed
- 27h WORD characters to print per service
- 29h BYTE 01h if disk write needed
- 2Ah BYTE 01h if queued data should be flushed
- 2Bh BYTE 01h to update cps status
- --------c-17C1--------------------------------
- INT 17 - PC Magazine PCSpool - BUILD PAUSE CONTROL RECORD
- AH = C1h
- DX = printer port (0-3)
- DS:SI -> ASCIZ string to save for display
- Note: flushes pending writes
- SeeAlso: AH=C0h,AH=C2h
- --------c-17C2-------------------------------
- INT 17 - PC Magazine PCSpool - FLUSH PENDING WRITES
- AH = C2h
- DX = printer port (0-3)
- SeeAlso: AH=C3h
- --------c-17C3-------------------------------
- INT 17 - PC Magazine PCSpool - CANCEL PRINTER QUEUE (FLUSH ALL QUEUED OUTPUT)
- AH = C3h
- DX = printer port (0-3)
- SeeAlso: AH=C2h,AH=C7h
- --------c-17C4-------------------------------
- INT 17 - PC Magazine PCSpool - QUERY SPOOLER ACTIVE
- AH = C4h
- Return: DI = B0BFh
- SI = segment
- --------c-17C5-------------------------------
- INT 17 - PC Magazine PCSpool - JOB SKIP PRINTER QUEUE
- AH = C5h
- DX = printer port (0-3)
- Note: cancels up to the pause record
- --------c-17C6-------------------------------
- INT 17 - PC Magazine PCSpool - CHECK PRINTER QUEUE STATUS
- AH = C6h
- DX = printer port (0-3)
- Return: AX = queue status
- 0000h printer not active or at pause
- 0001h printer busy
- --------c-17C7-------------------------------
- INT 17 - PC Magazine PCSpool - CLOSE QUEUE
- AH = C7h
- DX = printer port (0-3)
- SeeAlso: AH=C3h
- --------P-17CD00-----------------------------
- INT 17 - INSET - EXECUTE COMMAND STRING
- AX = CD00h
- DS:DX -> ASCIZ command string (max 80 bytes)
- Return: CX = 07C2h (1986d)
- Note: user interface menus pop up after last command, unless that command
- exits INSET
- --------P-17CD01-----------------------------
- INT 17 - INSET - GET IMAGE SIZE
- AX = CD01h
- DS:DX -> ASCIZ name of image file
- Return: AX = height in 1/720th inch
- BX = width in 1/720th inch
- CX = 07C2h (1986d)
- --------P-17CD02-----------------------------
- INT 17 - INSET - INITIALIZE
- AX = CD02h
- Return: CX = 07C2h (1986d)
- Note: all open files are closed and the printer is reset
- SeeAlso: AX=CD04h
- --------P-17CD03-----------------------------
- INT 17 - INSET - EXECUTE INSET MENU WITHIN OVERRIDE MODE
- AX = CD03h
- Return: CX = 07C2h (1986d)
- --------P-17CD04-----------------------------
- INT 17 - INSET - INITIALIZE LINKED MODE
- AX = CD04h
- ES:SI -> FAR routine for linked mode (see #0500)
- Return: CX = 07C2h
- SeeAlso: AX=CD02h,AX=CD08h
-
- (Table 0500)
- Values INSET linked-mode routine is called with:
- AL = function
- 00h send character to printer
- BL = character to send
- 01h send string to printer
- CX = number of bytes to send
- DS:DX -> buffer containing data
- 02h move print head to horizontal starting position of image
- Return: AX = status
- 0000h success
- 0001h failure
- --------P-17CD05-----------------------------
- INT 17 - INSET - START MERGING IMAGE INTO TEXT
- AX = CD05h
- DS:DX -> ASCIZ name of PIX file
- CX = left margin of text in 1/720th inch
- Return: AH = printer type
- 00h page-oriented (multiple images may be placed side-by-side)
- 01h line-oriented (use AX=CD06h for vertical paper movement)
- CX = 07C2h (1986d)
- SeeAlso: AX=CD07h
- --------P-17CD06-----------------------------
- INT 17 - INSET - GRAPHICS LINE FEED
- AX = CD06h
- Return: AH = completion status
- 00h image complete
- 01h image incomplete
- CX = 07C2h (1986d)
- SeeAlso: AX=CD09h
- --------P-17CD07-----------------------------
- INT 17 - INSET - FLUSH GRAPHICS FROM MERGE BUFFER
- AX = CD07h
- Return: CX = 07C2h
- SeeAlso: AX=CD05h
- --------P-17CD08-----------------------------
- INT 17 - INSET - CANCEL LINK MODE
- AX = CD08h
- Return: CX = 07C2h
- SeeAlso: AX=CD04h
- --------P-17CD09-----------------------------
- INT 17 - INSET - ALTER TEXT LINE SPACING
- AX = CD09h
- CX = line spacing in 1/720th inch
- Return: CX = 07C2h
- Note: not yet implemented, line spacing is currently fixed at 1/6 inch
- SeeAlso: AX=CD06h
- --------P-17CD0A-----------------------------
- INT 17 - INSET - GET SETUP
- AX = CD0Ah
- DS:DX -> buffer for IN.SET data
- Return: CX = 07C2h
- --------P-17CD0B-----------------------------
- INT 17 - INSET - START GETTING SCALED IMAGE
- AX = CD0Bh
- DS:SI -> ASCIZ pathname of .PIX file
- BX = number of bitplanes
- CX = number of rows in output bitmap
- DX = number of columns in output bitmap
- Return: AX = status
- 0000h OK
- FFFFh error
- Note: image is returned in strips by repeated calls to AX=CD0Ch
- --------P-17CD0C-----------------------------
- INT 17 - INSET - GET NEXT IMAGE STRIP
- AX = CD0Ch
- Return: AX = status
- 0000h OK but not complete
- 0001h OK and image complete
- FFFFh error
- DS:SI -> buffer (max 4K) for bit map strip
- CX = start row
- DX = number of rows
- BX = offset in bytes between bit planes
- Note: buffer may be overwritten by subsequent calls
- SeeAlso: AX=CD0Bh
- --------P-17E0-------------------------------
- INT 17 - EPP BIOS - INSTALLATION CHECK
- AH = E0h
- Return: ??? (AH <> E0h if installed ???)
- SeeAlso: AX=0200h"EPP",AH=E1h,AH=E2h
- --------P-17E1-------------------------------
- INT 17 - EPP BIOS - DISABLE EPP
- AH = E1h
- ???
- Return: ???
- SeeAlso: AX=0200h"EPP",AH=E0h,AH=E2h
- --------P-17E2-------------------------------
- INT 17 - EPP BIOS - ENABLE EPP
- AH = E2h
- ???
- Return: ???
- SeeAlso: AX=0200h"EPP",AH=E0h,AH=E1h
- --------P-17F0-------------------------------
- INT 17 - NorthNet Jetstream API - INSTALLATION CHECK
- AH = F0h
- DX = printer port (0-3)
- Return: AX = 0001h Jetstream present
- else non-Jetstream port
- Note: NorthNet Jetstream is a high-performance DMA-driven parallel card able
- to drive printers at up to 80000 characters per second
- --------P-17F1-------------------------------
- INT 17 - NorthNet Jetstream API - PRINT DATA BUFFER
- AH = F1h
- CX = data buffer length
- DX = printer port (0-3)
- DS:SI -> data buffer
- Return: AX = status
- 0000h printer not ready (see also AH=02h)
- other printing started
- SeeAlso: AH=00h,AH=F2h,AH=F3h,AH=F5h
- --------P-17F2-------------------------------
- INT 17 - NorthNet Jetstream API - GET PRINT PROGRESS STATUS
- AH = F2h
- DX = printer port (0-3)
- Return: AX = status
- 0000h prior print request finished
- other number of characters left to print
- SeeAlso: AH=02h,AH=F1h,AH=F3h
- --------P-17F3-------------------------------
- INT 17 - NorthNet Jetstream API - ABORT PRINT OPERATION
- AH = F3h
- DX = printer port (0-3)
- Return: AX = number of unprinted characters due to abort
- SeeAlso: AH=F1h,AH=F4h
- --------P-17F4-------------------------------
- INT 17 - NorthNet Jetstream API - SET COMPLETION (POST) ADDRESS
- AH = F4h
- DX = printer port (0-3)
- DS:DS -> FAR post address (called with interrupts on)
- SeeAlso: AH=F1h,AH=F3h
- --------P-17F5-------------------------------
- INT 17 - NorthNet Jetstream API - PRINT DATA BUFFER FROM EXTENDED MEMORY
- AH = F5h
- CX = data buffer length
- DX = printer port (0-3)
- DS:SI -> data buffer (32-bit physical address)
- Return: AX = status
- 0000h printer not ready (see also AH=02h)
- other printing started
- SeeAlso: AH=F1h
- --------c-17FF--BX0000-----------------------
- INT 17 U - PC-MOS/386 v5.01 - PRINT SPOOLER - CLOSE SPOOL FILE
- AH = FFh
- BX = 0000h
- CX = 0000h
- DX = printer port number
- Return: AH = printer status (see #0489 at AH=00h)
- Program: PC-MOS/386 v5.01 is a multitasking, multiuser MS-DOS 5.0-compatible
- operating system by The Software Link, Inc.
- Desc: close the spool file immediately instead of waiting for the close time
- to elapse
- SeeAlso: AH=01h,AH=03h"PC-MOS"
- --------B-18---------------------------------
- INT 18 - DISKLESS BOOT HOOK (START CASSETTE BASIC)
- Desc: called when there is no bootable disk available to the system
- Notes: only PCs produced by IBM contain BASIC in ROM, so the action is
- unpredictable on compatibles; this interrupt often reboots the
- system, and often has no effect at all
- network cards with their own BIOS can hook this interrupt to allow
- a diskless boot off the network (even when a hard disk is present
- if none of the partitions is marked as the boot partition)
- SeeAlso: INT 2F/AX=4A06h,INT 86"NetBIOS"
- --------J-1800-------------------------------
- INT 18 - NEC PC-9800 series - KEYBOARD - GET KEYSTROKE
- AH = 00h
- Return: AX = keystroke
- SeeAlso: AH=01h,AH=02h,INT 16/AH=00h
- --------J-1801-------------------------------
- INT 18 - NEC PC-9800 series - KEYBOARD - CHECK FOR KEYSTROKE
- AH = 01h
- Return: BH = status
- 00h no keystrokes available
- 01h keystroke available
- AX = keystroke
- SeeAlso: AH=00h,AH=02h,INT 16/AH=01h
- --------J-1802-------------------------------
- INT 18 - NEC PC-9800 series - KEYBOARD - GET SHIFT STATUS
- AH = 02h
- Return: AL = shift flags
- SeeAlso: AH=00h,AH=02h,AH=03h,AH=04h,INT 16/AH=02h
- --------J-1803-------------------------------
- INT 18 - NEC PC-9800 series - KEYBOARD - INITIALIZE
- AH = 03h
- ???
- Return: ???
- SeeAlso: AH=00h,AH=04h
- --------J-1804-------------------------------
- INT 18 - NEC PC-9800 series - KEYBOARD - KEY PRESSED
- AH = 04h
- ???
- Return: ???
- Note: details are not available at this time
- SeeAlso: AH=00h,AH=02h,INT 16/AH=00h,INT 16/AH=01h,INT 16/AH=02h
- --------J-18---------------------------------
- INT 18 - NEC PC-9800 series - VIDEO
- AH = function
- 0Ah set video mode
- 0Bh get video mode
- 0Ch start text screen display
- 0Dh end text screen display
- 0Eh set single display area
- 0Fh set multiple display area
- 10h set cursor shape
- 11h display cursor
- 12h terminate cursor
- 13h set cursor position
- 14h read font patter
- 16h initialize text video RAM
- 1Ah define user character
- ???
- Return: ???
- Notes: details are not available at this time
- text video RAM is located at segments A000h (characters) and A200h
- (attributes)
- ----------185350BX4849-----------------------
- INT 18 - SPHINX C-- - WB.COM - API
- AX = 5350h ('SP')
- BX = 4849h ('HI')
- CX = 4E58h ('NX')
- DH = function
- 01h set ???
- DL = ???
- 02h get ???
- Return: DL = ???
- 03h get ???
- Return: ES:DI -> ??? data buffer
- 06h ???
- Return: AX = 7370h ('sp') if installed
- BX = 6869h ('hi') if installed
- CX = 6E78h ('nx') if installed
- Program: SPHINX C-- is a shareware compiler by Peter Cellik for a language
- which is a cross between C and assembler; WB.COM is the driver which
- launches the WorkBench
- --------s-186900-----------------------------
- INT 18 - Gravis Ultra Sound YEA_GUS.EXE - GET STATUS
- AX = 6900h
- Return: AX = amount of DRAM on card or 0000h if GUS not available
- Program: YEA_GUS is a driver for the Graphics Ultra Sound which hooks INT 18h
- and then shells out the the program requiring its services
- SeeAlso: AX=6901h,AX=690Ah,AX=690Bh
- --------s-186901-----------------------------
- INT 18 - Gravis Ultra Sound YEA_GUS.EXE - RESET
- AX = 6901h
- BX = number of active voices (14-32)
- Return: nothing
- SeeAlso: AX=6900h
- --------s-186902-----------------------------
- INT 18 - Gravis Ultra Sound YEA_GUS.EXE - SET VOLUME FOR SPECIFIC VOICE
- AX = 6902h
- BX = voice number (00h-1Fh)
- CX = linear volume (0000h-01FFh)
- Return: nothing
- SeeAlso: AX=6900h,AX=6903h,AX=6904h,AX=6909h,AX=690Ah
- --------s-186903-----------------------------
- INT 18 - Gravis Ultra Sound YEA_GUS.EXE - SET FREQUENCY FOR VOICE
- AX = 6903h
- BX = voice number (00h-1Fh)
- CX = frequency in Hz (0-44100)
- Return: nothing
- SeeAlso: AX=6902h,AX=6904h
- --------s-186904-----------------------------
- INT 18 - Gravis Ultra Sound YEA_GUS.EXE - SET LEFT/RIGHT BALANCE
- AX = 6904h
- BX = voice number (00h-1Fh)
- CX = balance (0 = left, 7 = even, 15 = right)
- Return: nothing
- SeeAlso: AX=6902h,AX=6903h
- --------s-186905-----------------------------
- INT 18 - Gravis Ultra Sound YEA_GUS.EXE - PLAY MUSIC
- AX = 6905h
- BL = voice number
- BH = sample type (0 = 8-bit, 1 = 16-bit)
- CL = looping type (0 = none, 1 = forward, 2 = back and forth)
- CH:DI = 20-bit starting address for voice data
- DL:SI = 20-bit address for loop start
- DH:BP = 20-bit address for loop end
- SeeAlso: AX=6903h,AX=6906h,AX=690Bh
- --------s-186906-----------------------------
- INT 18 - Gravis Ultra Sound YEA_GUS.EXE - LOAD SOUND DATA
- AX = 6906h
- BL = data format (1 = twos-complement, 0 = not)
- BH = sample type (0 = 8-bit, 1 = 16-bit)
- CX = number of bytes to send
- ES:SI -> buffer containing data
- DL:DI = 20-bit address of GUS DRAM at which to load sound data
- SeeAlso: AX=6900h,AX=6905h,AX=690Ch
- --------s-186907-----------------------------
- INT 18 - Gravis Ultra Sound YEA_GUS.EXE - STOP VOICE
- AX = 6907h
- BX = voice number (00h-1Fh)
- Return: nothing
- SeeAlso: AX=6908h,AX=690Dh
- --------s-186908-----------------------------
- INT 18 - Gravis Ultra Sound YEA_GUS.EXE - SET VOICE END
- AX = 6908h
- BX = voice number (00h-1Fh)
- CL:DX = 20-bit ending address
- Return: nothing
- SeeAlso: AX=690Bh
- --------s-186909-----------------------------
- INT 18 - Gravis Ultra Sound YEA_GUS.EXE - RAMP VOLUME
- AX = 6909h
- BL = voice number (00h-1Fh)
- BH = looping type (0 = none, 1 = forward, 2 = back and forth)
- CX = starting volume
- DX = ending volume
- DI:SI = time
- Return: nothing
- SeeAlso: AX=6902h,AX=690Ah
- --------s-18690A-----------------------------
- INT 18 - Gravis Ultra Sound YEA_GUS.EXE - GET VOLUME
- AX = 690Ah
- BX = voice number (00h-1Fh)
- Return: AX = current non-linear volume for voice
- SeeAlso: AX=6902h,AX=6909h
- --------s-18690B-----------------------------
- INT 18 - Gravis Ultra Sound YEA_GUS.EXE - GET POSITION
- AX = 690Bh
- BX = voice number
- Return: BX:AX = 20-bit address at which voice is playing
- SeeAlso: AX=6900h,AX=6905h,AX=6908h
- --------s-18690C-----------------------------
- INT 18 - Gravis Ultra Sound YEA_GUS.EXE - SAVE SOUND DATA
- AX = 690Ch
- BL = data format (1 = twos-complement, 0 = not)
- BH = sample type (0 = 8-bit, 1 = 16-bit)
- CX = number of bytes to get
- ES:SI -> buffer for retrieved data
- DL:DI = 20-bit address in GUS DRAM from which to read voice data
- Return: nothing
- SeeAlso: AX=6906h
- --------s-18690D-----------------------------
- INT 18 - Gravis Ultra Sound YEA_GUS.EXE - RESTART VOICE
- AX = 690Dh
- BX = voice
- CX = sample type (0 = 8-bit, 1 = 16-bit)
- DX = looping type (0 = none, 1 = forward, 2 = back and forth)
- Return: CX = balance value
- SeeAlso: AX=6907h,AX=6908h
- --------s-188000-----------------------------
- INT 18 - Gravis Ultra Sound EURO_MOD.EXE - INITIALIZE
- AX = 8000h
- Program: EURO_MOD is a .MOD file player for the Gravis Ultra Sound which hooks
- INT 18h and then shells out to the program requiring its services
- SeeAlso: AX=8001h,AX=8004h
- --------s-188001-----------------------------
- INT 18 - Gravis Ultra Sound EURO_MOD.EXE - LOAD .MOD FILE
- AX = 8001h
- BX:CX -> ASCIZ filename
- SeeAlso: AX=8000h,AX=8002h
- --------s-188002-----------------------------
- INT 18 - Gravis Ultra Sound EURO_MOD.EXE - PLAY .MOD FILE
- AX = 8002h
- SeeAlso: AX=8002h,AX=8003h
- --------s-188003-----------------------------
- INT 18 - Gravis Ultra Sound EURO_MOD.EXE - STOP PLAYING
- AX = 8003h
- --------s-188004-----------------------------
- INT 18 - Gravis Ultra Sound EURO_MOD.EXE - SHUTDOWN
- AX = 8004h
- SeeAlso: AX=8000h,AX=8003h
- --------B-19---------------------------------
- INT 19 - SYSTEM - BOOTSTRAP LOADER
- Desc: This interrupt reboots the system without clearing memory or restoring
- interrupt vectors. Because interrupt vectors are preserved, this
- interrupt usually causes a system hang if any TSRs have hooked
- vectors from 00h through 1Ch, particularly INT 08.
- Notes: Usually, the BIOS will try to read sector 1, head 0, track 0 from drive
- A: to 0000h:7C00h. If this fails, and a hard disk is installed, the
- BIOS will read sector 1, head 0, track 0 of the first hard disk.
- This sector should contain a master bootstrap loader and a partition
- table (see #0502). After loading the master boot sector at
- 0000h:7C00h, the master bootstrap loader is given control. It will
- scan the partition table for an active partition, and will then load
- the operating system's bootstrap loader (contained in the first
- sector of the active partition) and give it control.
- true IBM PCs and most clones issue an INT 18 if neither floppy nor hard
- disk have a valid boot sector
- to accomplish a warm boot equivalent to Ctrl-Alt-Del, store 1234h in
- 0040h:0072h and jump to FFFFh:0000h. For a cold boot equivalent to
- a reset, store 0000h at 0040h:0072h before jumping.
- VDISK.SYS hooks this interrupt to allow applications to find out how
- much extended memory has been used by VDISKs (see #0501). DOS 3.3+
- PRINT hooks INT 19 but does not set up a correct VDISK header block
- at the beginning of its INT 19 handler segment, thus causing some
- programs to overwrite extended memory which is already in use.
- the default handler is at F000h:E6F2h for 100% compatible BIOSes
- MS-DOS 3.2+ hangs on booting (even from floppy) if the hard disk
- contains extended partitions which point at each other in a loop,
- since it will never find the end of the linked list of extended
- partitions
- under Windows Real and Enhanced modes, calling INT 19 will hang the
- system in the same was as under bare DOS; under Windows Standard
- mode, INT 19 will successfully perform a cold reboot as it appears
- to have been redirected to a MOV AL,0FEh/OUT 64h,AL sequence
- SeeAlso: INT 14/AH=17h,INT 18,INT 5B"PC Cluster"
-
- Format of VDISK header block (at beginning of INT 19 handler's segment):
- Offset Size Description (Table 0501)
- 00h 18 BYTEs n/a (for VDISK.SYS, the device driver header)
- 12h 11 BYTEs signature string "VDISK Vn.m" for VDISK.SYS version n.m
- 1Dh 15 BYTEs n/a
- 2Ch 3 BYTEs linear address of first byte of available extended memory
-
- Format of hard disk master boot sector:
- Offset Size Description (Table 0502)
- 00h 446 BYTEs Master bootstrap loader code
- 1BEh 16 BYTEs partition record for partition 1 (see #0503)
- 1CEh 16 BYTEs partition record for partition 2
- 1DEh 16 BYTEs partition record for partition 3
- 1EEh 16 BYTEs partition record for partition 4
- 1FEh WORD signature, AA55h indicates valid boot block
-
- Format of partition record:
- Offset Size Description (Table 0503)
- 00h BYTE boot indicator (80h = active partition)
- 01h BYTE partition start head
- 02h BYTE partition start sector (bits 0-5)
- 03h BYTE partition start track (bits 8,9 in bits 6,7 of sector)
- 04h BYTE operating system indicator (see #0504)
- 05h BYTE partition end head
- 06h BYTE partition end sector (bits 0-5)
- 07h BYTE partition end track (bits 8,9 in bits 6,7 of sector)
- 08h DWORD sectors preceding partition
- 0Ch DWORD length of partition in sectors
- SeeAlso: #0502
-
- (Table 0504)
- Values for operating system indicator:
- 00h empty
- 01h DOS 12-bit FAT
- 02h XENIX root file system
- 03h XENIX /usr file system (obsolete)
- 04h DOS 16-bit FAT (up to 32M)
- 05h DOS 3.3+ extended partition
- 06h DOS 3.31+ Large File System (16-bit FAT, over 32M)
- 07h QNX
- 07h OS/2 HPFS
- 07h Windows NT NTFS
- 07h Advanced Unix
- 08h AIX bootable partition, SplitDrive
- 09h AIX data partition
- 09h Coherent filesystem
- 0Ah OS/2 Boot Manager
- 0Ah OPUS
- 0Ah Coherent swap partition
- 10h OPUS
- 11h OS/2 Boot Manager hidden 12-bit FAT partition
- 12h Compaq Diagnostics partition
- 14h (resulted from using Novell DOS 7.0 FDISK to delete Linux Native part)
- 14h OS/2 Boot Manager hidden sub-32M 16-bit FAT partition
- 16h OS/2 Boot Manager hidden over-32M 16-bit FAT partition
- 17h OS/2 Boot Manager hidden HPFS partition
- 18h AST special Windows swap file
- 24h NEC MS-DOS 3.x
- 3Ch PowerQuest PartitionMagic recovery partition
- 40h VENIX 80286
- 42h SFS (Secure File System) by Peter Gutmann
- 50h Disk Manager, read-only partition
- 51h Disk Manager, read/write partition
- 51h Novell???
- 52h CP/M
- 52h Microport System V/386
- 56h GoldenBow VFeature
- 61h SpeedStor
- 63h Unix SysV/386, 386/ix
- 63h Mach, MtXinu BSD 4.3 on Mach
- 63h GNU HURD
- 64h Novell NetWare
- 65h Novell NetWare (3.11)
- 70h DiskSecure Multi-Boot
- 75h PC/IX
- 80h Minix v1.1 - 1.4a
- 81h Minix v1.4b+
- 81h Linux
- 81h Mitac Advanced Disk Manager
- 82h Linux Swap partition
- 83h Linux native file system (ext2fs/xiafs)
- 84h OS/2-renumbered type 04h partition (related to hiding DOS C: drive)
- 93h Amoeba file system
- 94h Amoeba bad block table
- A5h FreeBSD
- B7h BSDI file system (secondarily swap)
- B8h BSDI swap partition (secondarily file system)
- C1h DR-DOS 6.0 LOGIN.EXE-secured 12-bit FAT partition
- C4h DR-DOS 6.0 LOGIN.EXE-secured 16-bit FAT partition
- C6h DR-DOS 6.0 LOGIN.EXE-secured Huge partition
- C7h Cyrnix Boot
- DBh CP/M, Concurrent CP/M, Concurrent DOS
- DBh CTOS (Convergent Technologies OS)
- E1h SpeedStor 12-bit FAT extended partition
- E4h SpeedStor 16-bit FAT extended partition
- F2h DOS 3.3+ secondary
- F4h SpeedStor
- FEh LANstep
- FFh Xenix bad block table
- SeeAlso: #0503
- --------!---Section--------------------------
-