Specifications

MICROPROCESSADORES
INTERRUPÇÕES
5
Luís Miguel Charrua Figueiredo 5 - 12 E.N.I.D.H.
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 (286) zero
(386+) extended access rights and high byte of source
address
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 WORD (286) zero
(386+) extended access rights and high byte of destin.
address
20h 16 BYTEs zeros (used by BIOS to build CS and SS descriptors)
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 Due to applications not dealing with more than 24-bit
descriptors (286), Windows 3.0 has problems when this function reports more than
15 MB. Some releases of HIMEM.SYS are therefore limited to use only 15 MB,
even when this function reports more.
SeeAlso
: AH=87h,AH=8Ah"Phoenix",AH=C7h,AX=DA88h,AX=E801h,AX=E820h
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 #00500)
Return
: CF set on error
AH = FFh error enabling address line 20
CF clear if successful
AH = 00h
in protected mode at specified address
BP may be destroyed; all segment registers change
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 00500)
00h 8 BYTEs null descriptor (initialize to zeros)
08h 8 BYTEs GDT descriptor (see #00501)
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 00501)
00h WORD segment limit, low word
02h 3 BYTEs segment base address, low 24 bits
05h BYTE access mode (see #00502)
06h BYTE 386+ extended access mode (see #00505)
07h BYTE 386+ segment base address, high 8 bits
SeeAlso
: #00500,INT 2C/AX=0002h,INT 31/AX=0009h
Bitfields for segment descriptor table access mode field:
Bit(s) Description (Table 00502)
3-0 segment type (see #00503,#00504)
4 descriptor type (1 = application, 0 = system)
6-5 descriptor privilege level
7 segment is present in RAM
SeeAlso
: #00501,#00505
(Table 00503)
Values for system segment descriptor type:
0 reserved
1 available 16-bit TSS
2 LDT
3 busy 16-bit TSS
4 16-bit call gate
5 task gate
6 16-bit interrupt gate
7 16-bit trap gate
8 reserved
9 available 32-bit TSS
10 reserved
11 busy 32-bit TSS
12 32-bit call gate
13 reserved
14 32-bit interrupt gate
15 32-bit trap gate
SeeAlso
: #00502,#00504
Bitfields for application segment descriptor type:
Bit(s) Description (Table 00504)
3 code/data
0 date
1 code
---data segments---
2 expand down
1 writeable
---code segments---
2 conforming
1 readable
------
0 accessed
SeeAlso
: #00502,#00503
Bitfields for 386+ segment descriptor table extended access mode field:
Bit(s) Description (Table 00505)
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
: #00501,#00502,#02557
INT 15 - OS HOOK - DEVICE BUSY (AT,PS)
AH = 90h
AL = device type (see #00507)
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