Texas Instruments Professional related Interrupts.
MS-DOS-related Interrupts:
TI Professional BIOS Interrupts:
- INT 40 - IRQ0
- INT 41 - IRQ1
- INT 42 - IRQ2
- INT 43 - IRQ3 - TIMER1 25ms INTERVAL INTERRUPT
- INT 44 - IRQ4
- INT 45 - IRQ5
- INT 46 - IRQ6 - FLOPPY DISK CONTROLLER
- INT 47 - IRQ7 - KEYBOARD USART
- INT 48, function 00 - SPEAKER DEVICE - SOUND SPEAKER
- INT 48, function 01 - SPEAKER DEVICE - CHECK SPEAKER STATUS
- INT 48, function 02 - SPEAKER DEVICE - SET SPEAKER FREQUENCY
- INT 48, function 03 - SPEAKER DEVICE - TURN ON SPEAKER
- INT 48, function 04 - SPEAKER DEVICE - TURN OFF SPEAKER
- INT 48, function 05 - SPEAKER DEVICE - DELAY
- INT 48, function 06 - CALCULATE CRC
- INT 48, function 07 - PRINT ROM MESSAGE
- INT 48, function 08 - DISPLAY SYSTEM ERROR MESSAGE
- INT 48, function 09 - GET SYSTEM CONFIGURATION DATA
- INT 48, function 0A - GET EXTRA SYSTEM CONFIGURATION INFO ADDRESS
- INT 48, function 0B - GET EXTRA SYSTEM CONFIGURATION INFORMATION
- INT 49, function 01 - CRT - SET CURSOR SIZE AND TYPE
- INT 49, function 02 - CRT - SET CURSOR POSITION
- INT 49, function 03 - CRT - GET CURSOR POSTION AND TYPE
- INT 49, function 04 - CRT - SCROLL UP/COPY WINDOW
- INT 49, function 07 - CRT - SCROLL DOWN/COPY WINDOW
- INT 49, function 08 - CRT - GET CHARACTER AND ATTRIBUTE AT POSITION
- INT 49, function 09 - CRT - WRITE CHARACTER(S) WITH ATTRIBUTE
- INT 49, function 0A - CRT - WRITE CHARACTER(S) WITH CURRENT ATTRIBUTE
- INT 49, function 0E - CRT - TTY OUTPUT
- INT 49, function 10 - CRT - WRITE BLOCK OF CHARACTERS WITH ATTRIBUTE
- INT 49, function 11 - CRT - WRITE BLOCK OF CHARACTERS WITH CURR ATTRIB
- INT 49, function 12 - CRT - FILL ENTIRE SCREEN WITH ATTRIBUTE
- INT 49, function 13 - CRT - CLEAR ENTIRE TEXT SCREEN AND HOME CURSOR
- INT 49, function 14 - CRT - CLEAR ENTIRE GRAPHICS SCREEN
- INT 49, function 15 - CRT - SET PROTECTED STATUS AREA
- INT 49, function 16 - CRT - SET ATTRIBUTE LATCH
- INT 49, function 17 - CRT - GET START-OF-DISPLAY POINTER
- INT 49, function 18 - CRT - PRINT TTY STRING
- INT 4A, function 00 - KEYBOARD - GET KEYPRESS
- INT 4A, function 01 - KEYBOARD - GET KEYBOARD STATUS
- INT 4A, function 02 - KEYBOARD - GET KEYBOARD MODE
- INT 4A, function 03 - KEYBOARD - FLUSH KEYBOARD BUFFER
- INT 4A, function 04 - KEYBOARD - SEND COMMAND TO KEYBOARD
- INT 4A, function 05 - KEYBOARD - INSERT CHARACTER INTO KEYBOARD BUFFER
- INT 4B, function 00 - PARALLEL PORT - OUTPUT CHARACTER
- INT 4B, function 01 - PARALLEL PORT - INITIALIZE PRINTER
- INT 4B, function 02 - PARALLEL PORT - GET PRINTER STATUS
- INT 4C - CLOCK/ANALOG INTERFACE
- INT 4D, function 00 - DISK - RESET DISK SYSTEM
- INT 4D, function 01 - DISK - GET STATUS OF LAST OPERATION
- INT 4D, function 02 - DISK - READ SECTOR(S) INTO MEMORY
- INT 4D, function 03 - DISK - WRITE SECTOR(S) FROM MEMORY
- INT 4D, function 04 - DISK - VERIFY DISK SECTOR CRC(S)
- INT 4D, function 05 - DISK - NOP
- INT 4D, function 06 - DISK - VERIFY DISK SECTOR(S)
- INT 4D, function 07 - DISK - GET RETRY STATUS OF LAST OPERATION
- INT 4D, function 08 - DISK - SET STANDARD DEVICE INTERFACE TABLE
- INT 4D, function 09 - DISK - SET DEVICE INTERFACE TABLE ADDRESS
- INT 4D, function 0A - DISK - GET DEVICE INTERFACE TABLE ADDRESS
- INT 4D, function 0B - DISK - TURN OFF ALL DRIVES
- INT 4E, function 00 - TIME-OF-DAY CLOCK - SET BIOS DATE
- INT 4E, function 01 - TIME-OF-DAY CLOCK - SET BIOS TIME
- INT 4E, function 02 - TIME-OF-DAY CLOCK - GET BIOS
DATE AND TIME
- INT 4F - SYSTEM CONFIGURATION CALL
- INT 50 - FATAL SOFTWARE ERROR TRAP
- INT 51 - RESTART TIMING EVENT
- INT 52 - CANCEL TIMING EVENT
- INT 53 - SVC INTERFACE
- INT 54 - ACTIVATE TASK SUBROUTINE
- INT 55 - RESERVED FOR FUTURE USE
- INT 56 - RESERVED FOR FUTURE USE
- INT 57 - CRT MAPPING HOOK
- INT 58 - SYSTEM TIMER 25ms HOOK
- INT 59 - COMMON ROM HARDWARE INTERRUPT EXIT VECTOR
- INT 5A - SYSTEM TIMER 100ms HOOK
- INT 5B - KEYBOARD MAPPING HOOK
- INT 5C - KEYBOARD PAUSE KEY VECTOR
- INT 5D - KEYBOARD BREAK KEY VECTOR
- INT 5E - KEYBOARD PRINT-SCREEN VECTOR
- INT 5F - KEYBOARD QUEUEING VECTOR
- INT 60 - SYSTEM ROM DATA AREA POINTER (NOT A VECTOR!)
- INT 61 - FACTORY ROM DATA AREA POINTER (NOT A VECTOR!)
- INT 62 - OPTION ROM DATA AREA POINTER (NOT A VECTOR!)
- INT 63 - OPTION ROM DATA AREA POINTER (NOT A VECTOR!)
- INT 64 - OPTION ROM DATA AREA POINTER (NOT A VECTOR!)
- INT 65 - OPTION ROM DATA AREA POINTER (NOT A VECTOR!)
- INT 66 - SYSTEM INFORMATION (NOT A VECTOR!)
- INT 67 - SYSTEM DATA (NOT A VECTOR!)
INT 21 - DOS 2.11+ - GET OR SET MEMORY ALLOCATION STRATEGY
AH = 58h
AL = subfunction
00h get allocation strategy
Return: AX = current strategy (see #01679)
01h set allocation strategy
BL = new allocation strategy (see #01679)
BH = 00h (DOS 5+)
Return: CF clear if successful
CF set on error
AX = error code (01h) (see #01680)
Notes: the Set subfunction accepts any value in BL for DOS 3.x and 4.x;
2 or greater means last fit
the Get subfunction returns the last value set
setting an allocation strategy involving high memory does not
automatically link in the UMB memory chain; this must be done
explicitly with AX=5803h in order to actually allocate high memory
a program which changes the allocation strategy should restore it
before terminating
Toshiba MS-DOS v2.11 supports subfunctions 00h and 01h, as does the
TI Professional MS-DOS v2.13
DR DOS 3.41 reportedly reverses subfunctions 00h and 01h
SeeAlso: AH=48h,AH=49h,AH=4Ah,INT 2F/AX=4310h"XMS",INT 67/AH=3Fh
(Table 01679)
Values for DOS memory allocation strategy:
00h low memory first fit
01h low memory best fit
02h low memory last fit
[DOS 5+ values snipped, not applicable to the TI Professional.]
INT 21 - DOS v2.11-2.13 - SET OEM INT 21 HANDLER
AH = F8h
DS:DX -> OEM INT 21 handler for functions F9h to FFh
FFFFh:FFFFh disables OEM handler
Notes: this function is known to be supported by Toshiba T1000 ROM MS-DOS
v2.11, Sanyo MS-DOS v2.11, and TI Professional Computer DOS v2.13
at least potentially this is still available with (OEM versions??? of)
MS-DOS 6.0.
calls to AH=F9h through AH=FFH will return AL=00h if no handler set
the user handler is called immediately on entry to the main DOS INT 21h
function dispatcher with interrupts disabled and all registers and
stack exactly as set by caller; it should exit with IRET
SeeAlso: AH=F9h"OEM"
INT 40 - TI Professional PC - IRQ0
Note: on the TI Pro, IRQ0 is connected to the same pin on the expansion bus
that IBM connects to IRQ2
SeeAlso: INT 0A"IRQ2",INT 41"TI Professional"
INT 41 - TI Professional PC - IRQ1
Note: on the TI Pro, IRQ1 is connected to the same pin on the expansion bus
that IBM connects to IRQ3
SeeAlso: INT 0B"IRQ3",INT 40"TI Professional",INT 42"TI Professional"
INT 42 - TI Professional PC - IRQ2
Note: on the TI Pro, IRQ0 is connected to the same pin on the expansion bus
that IBM connects to IRQ4
SeeAlso: INT 0C"IRQ4",INT 41"TI Professional",INT 43"TI Professional"
INT 43 - TI Professional PC - IRQ3 - TIMER1 25ms INTERVAL INTERRUPT
SeeAlso: INT 0B"IRQ3",INT 42"TI Professional",INT 44"TI Professional"
SeeAlso: INT 58"TI Professional"
INT 44 - TI Professional PC - IRQ4
Note: on the TI Pro, IRQ4 is connected to the same pin on the expansion bus
that IBM connects to IRQ5
SeeAlso: INT 0D"IRQ5",INT 43"TI Professional",INT 45"TI Professional"
INT 45 - TI Professional PC - IRQ5
Note: on the TI Pro, IRQ5 is connected to the same pin on the expansion bus
that IBM connects to IRQ6
SeeAlso: INT 0E"IRQ6",INT 44"TI Professional",INT 46"TI Professional"
INT 46 - TI Professional PC - IRQ6 - FLOPPY DISK CONTROLLER
Note: on the TI Pro, IRQ6 is connected to the same pin on the expansion bus
that IBM connects to IRQ7
SeeAlso: INT 0F"IRQ7",INT 45"TI Professional",INT 47"TI Professional"
INT 47 - TI Professional PC - IRQ7 - KEYBOARD USART
SeeAlso: INT 09"IRQ1",INT 46"TI Professional"
INT 48 - TI Professional PC - SPEAKER DEVICE - SOUND SPEAKER
AH = 00h
AL = number of 25ms ticks sound should last
Return: nothing
Desc: sound the speaker at the current frequency setting (see AH=02h) for
the indicated duration
Notes: this function returns immediately; the sound is terminated by the
timer interrupt handler
if a new sound is requested while one is already in progress, the
previous sound is terminated immediately and the new sound takes
its place
SeeAlso: AH=01h,AH=02h,AH=03h,AH=04h,AH=06h,AH=08h,AH=0Ah,AH=0Bh
SeeAlso: INT 40"TI Professional",INT 49/AH=01h"TI"
SeeAlso: INT 4A/AH=00h"TI",INT 4C"TI Professional",INT 4D/AH=00h
INT 48 - TI Professional PC - SPEAKER DEVICE - CHECK SPEAKER STATUS
AH = 01h
Return: ZF clear if speaker is currently on
ZF set if speaker is currently off
SeeAlso: AH=00h,AH=02h,AH=03h,AH=04h,AH=06h,AH=08h,AH=0Ah,AH=0Bh
INT 48 - TI Professional PC - SPEAKER DEVICE - SET SPEAKER FREQUENCY
AH = 02h
CX = frequency divisor (freq = 1250000 / CX)
Return: nothing
SeeAlso: AH=00h,AH=01h,AH=03h,AH=04h,AH=06h,AH=08h,AH=0Ah,AH=0Bh
INT 48 - TI Professional PC - SPEAKER DEVICE - TURN ON SPEAKER
AH = 03h
Return: nothing
Desc: turn on the speaker at the current frequency, leaving it on until
explicitly turned off with AH=04h or the end of a subsequent
AH=00h
SeeAlso: AH=00h,AH=01h,AH=02h,AH=04h,AH=06h,AH=08h,AH=0Ah,AH=0Bh
INT 48 - TI Professional PC - SPEAKER DEVICE - TURN OFF SPEAKER
AH = 04h
Return: nothing
SeeAlso: AH=00h,AH=01h,AH=02h,AH=03h,AH=04h,AH=06h,AH=08h,AH=0Ah,AH=0Bh
INT 48 - TI Professional PC - SPEAKER DEVICE - DELAY
AH = 05h
CX = desired delay in milliseconds
Return: after delay expires
Note: the delay is only approximate, and may be longer than requested
SeeAlso: AH=00h,AH=01h,AH=02h,AH=03h,AH=04h,AH=06h,AH=08h,AH=0Ah,AH=0Bh
INT 48 - TI Professional PC - CALCULATE CRC
AH = 06h
ES:BX -> memory block for which to calculate CRC
BP = size of block in bytes
Return: DX = CRC for block
ZF set if DX = 0000h
Note: if the CRC of a memory block is appended to the block, then the CRC
of the block plus CRC should equal 0000h
SeeAlso: AH=00h,AH=01h,AH=02h,AH=03h,AH=04h,AH=06h,AH=08h,AH=0Ah,AH=0Bh
INT 48 - TI Professional PC - PRINT ROM MESSAGE
AH = 07h
SI = offset of ASCIZ message string within segment F400h
Return: nothing
SeeAlso: AH=00h,AH=01h,AH=02h,AH=03h,AH=04h,AH=06h,AH=08h,AH=0Ah,AH=0Bh
INT 48 - TI Professional PC - DISPLAY SYSTEM ERROR MESSAGE
AH = 08h
BX = error number
Return: nothing
Desc: displays the error message " ** System Error ** - xxxx" where xxxx is
the hexadecimal value in BX
SeeAlso: AH=00h,AH=01h,AH=02h,AH=03h,AH=04h,AH=06h,AH=08h,AH=0Ah,AH=0Bh
INT 48 - TI Professional PC - GET SYSTEM CONFIGURATION DATA
AH = 09h
Return: ES:BX -> system configuration word (see #03227)
SeeAlso: AH=00h,AH=01h,AH=02h,AH=03h,AH=04h,AH=06h,AH=08h,AH=0Ah,AH=0Bh
INT 48 - TI Professional PC - GET EXTRA SYSTEM CONFIGURATION INFO ADDRESS
AH = 0Ah
Return: ES:BX -> configuration information (see #03205)
SeeAlso: AH=00h,AH=01h,AH=02h,AH=03h,AH=04h,AH=06h,AH=08h,AH=0Bh
Format of TI Professional PC extra system configuration information:
Offset Size Description (Table 03205)
-3 WORD memory size in paragraphs
00h BYTE drive type byte (see #03206)
01h WORD extra system configuration word 1
bit 0: 8087 is present
bits 15-1: reserved (0)
03h WORD extra system configuration word 2
bits 15-0: reserved (0)
Bitfields for TI Professional PC drive type byte:
Bit(s) Description (Table 03206)
0 drive A is double-sided
1 drive A has 80 tracks instead of 40
2 drive B is double-sided
3 drive B has 80 tracks instead of 40
4 drive C is double-sided
5 drive C has 80 tracks instead of 40
6 drive D is double-sided
7 drive D has 80 tracks instead of 40
Note: the type for drive A is determined by motherboard switches; the
remaining drives' types are set from a table in IO.SYS
SeeAlso: #03205
INT 48 - TI Professional PC - GET EXTRA SYSTEM CONFIGURATION INFORMATION
AH = 0Bh
Return: AL = drive type byte (see #03206)
BX = extra system configuration word 1 (see #03205)
CX = extra system configuration word 2 (see #03205)
AH destroyed
SeeAlso: AH=00h,AH=01h,AH=02h,AH=03h,AH=04h,AH=06h,AH=08h,AH=0Ah
INT 49 - TI Professional PC - CRT - SET CURSOR SIZE AND TYPE
AH = 01h
CH = cursor start line (bits 3-0) and status (bits 6-5)
status bits:
00 non-blinking cursor
01 no cursor
10 fast-blinking cursor
11 slow-blinking cursor
CL = cursor end line
Return: nothing
Note: AH=00h,04h,05h,0Bh,0Ch,0Dh,0Fh are documented as NOPs
SeeAlso: AH=02h,AH=03h,INT 40"TI Professional",INT 48/AH=00h"TI Professional"
SeeAlso: INT 4A/AH=00h"TI",INT 4B"TI Professional",INT 4D/AH=00h
SeeAlso: INT 57"TI Professional"
INT 49 - TI Professional PC - CRT - SET CURSOR POSITION
AH = 02h
DH = column
DL = row
Return: DX destroyed
Notes: AH=00h,04h,05h,0Bh,0Ch,0Dh,0Fh are documented as NOPs
the TI swaps the row and column compared to the equivalent IBM call
SeeAlso: AH=01h,AH=03h
INT 49 - TI Professional PC - CRT - GET CURSOR POSTION AND TYPE
AH = 03h
Return: CH = cursor start and status (see AH=01h)
CL = cursor end line
DH = cursor column
DL = cursor row
Note: AH=00h,04h,05h,0Bh,0Ch,0Dh,0Fh are documented as NOPs
SeeAlso: AH=01h,AH=02h
INT 49 - TI Professional PC - CRT - SCROLL UP/COPY WINDOW
AH = 06h
AL = source blanking
00h blank source region (move/scroll)
nonzero do not blank source region (copy)
DH,DL = source start column,row
BH,BL = destination start column,row
CH = width of region to move/copy
CL = height of region to move/copy
Return: nothing
Notes: AH=00h,04h,05h,0Bh,0Ch,0Dh,0Fh are documented as NOPs
the specified region may be wider than the screen, but reliable
operation then requires that the height be exactly one row
SeeAlso: AH=01h,AH=02h,AH=07h,AH=13h,AH=14h
INT 49 - TI Professional PC - CRT - SCROLL DOWN/COPY WINDOW
AH = 07h
AL = source blanking
00h blank source region (move/scroll)
nonzero do not blank source region (copy)
DH,DL = source start column,row
BH,BL = destination start column,row
CH = width of region to move/copy
CL = height of region to move/copy
Return: nothing
Note: AH=00h,04h,05h,0Bh,0Ch,0Dh,0Fh are documented as NOPs
SeeAlso: AH=01h,AH=02h,AH=06h,AH=13h,AH=14h
INT 49 - TI Professional PC - CRT - GET CHARACTER AND ATTRIBUTE AT POSITION
AH = 08h
Return: AL = character at current cursor position
AH = attribute
Note: AH=00h,04h,05h,0Bh,0Ch,0Dh,0Fh are documented as NOPs
SeeAlso: AH=01h,AH=09h,AH=0Ah,AH=0Eh,INT 10/AH=08h
INT 49 - TI Professional PC - CRT - WRITE CHARACTER(S) WITH ATTRIBUTE
AH = 09h
AL = character to write
BL = attribute to use (becomes new current attribute)
CX = number of times to write character
Return: nothing
Desc: write CX copies of the character in AL beginning at the current cursor
position
Note: AH=00h,04h,05h,0Bh,0Ch,0Dh,0Fh are documented as NOPs
SeeAlso: AH=01h,AH=08h,AH=0Ah,AH=0Eh,INT 10/AH=09h
INT 49 - TI Professional PC - CRT - WRITE CHARACTER(S) WITH CURRENT ATTRIBUTE
AH = 0Ah
AL = character to write
CX = number of times to write character
Return: nothing
Desc: write CX copies of the character in AL beginning at the current cursor
position
Note: AH=00h,04h,05h,0Bh,0Ch,0Dh,0Fh are documented as NOPs
SeeAlso: AH=01h,AH=02h,AH=08h,AH=09h,AH=0Eh,INT 10/AH=0Ah
INT 49 - TI Professional PC - CRT - TTY OUTPUT
AH = 0Eh
AL = character to write
Return: nothing
Desc: write the character in AL at the current cursor position, advancing
the cursor, and interpreting CR, LF, TAB, and BEL characters
Note: AH=00h,04h,05h,0Bh,0Ch,0Dh,0Fh are documented as NOPs
SeeAlso: AH=01h,AH=02h,AH=08h,AH=09h,AH=0Ah,INT 10/AH=0Eh
INT 49 - TI Professional PC - CRT - WRITE BLOCK OF CHARACTERS WITH ATTRIBUTE
AH = 10h
AL = attribute (becomes new current attribute)
DX:BX -> string of characters to write
CX = length of string
Return: nothing
Note: AH=00h,04h,05h,0Bh,0Ch,0Dh,0Fh are documented as NOPs
BUG: CX must not be 0000h on entry, or the system will crash
SeeAlso: AH=01h,AH=02h,AH=09h,AH=0Eh,AH=11h
INT 49 - TI Professional PC - CRT - WRITE BLOCK OF CHARACTERS WITH CURR ATTRIB
AH = 11h
DX:BX -> string of characters to write
CX = length of string
Return: nothing
Note: AH=00h,04h,05h,0Bh,0Ch,0Dh,0Fh are documented as NOPs
BUG: CX must not be 0000h on entry, or the system will crash
SeeAlso: AH=01h,AH=02h,AH=09h,AH=0Eh,AH=10h
INT 49 - TI Professional PC - CRT - FILL ENTIRE SCREEN WITH ATTRIBUTE
AH = 12h
AL = attribute (see #03210)
Return: nothing
Note: AH=00h,04h,05h,0Bh,0Ch,0Dh,0Fh are documented as NOPs
SeeAlso: AH=01h,AH=02h
Bitfields for TI Professional PC screen attribute:
Bit(s) Description (Table 03210)
7 alternate character set (requires user-supplied ROM)
6 blink
5 underline
4 reverse video
3 character enable
2 green (color) or 58% intensity (gray-scale)
1 red (color) or 27.5% intensity
0 blue (color) or 14.5% intensity
INT 49 - TI Professional PC - CRT - CLEAR ENTIRE TEXT SCREEN AND HOME CURSOR
AH = 13h
Return: nothing
Note: AH=00h,04h,05h,0Bh,0Ch,0Dh,0Fh are documented as NOPs
SeeAlso: AH=01h,AH=02h,AH=06h,AH=14h
INT 49 - TI Professional PC - CRT - CLEAR ENTIRE GRAPHICS SCREEN
AH = 14h
Return: nothing
Note: AH=00h,04h,05h,0Bh,0Ch,0Dh,0Fh are documented as NOPs
SeeAlso: AH=01h,AH=02h,AH=06h,AH=13h
INT 49 - TI Professional PC - CRT - SET PROTECTED STATUS AREA
AH = 15h
CL = row at which to start status area, or 00h to cancel
CH = 00h
Return: nothing
Desc: set a protected area of the screen which will not be affected by TTY
writes or the scrolls they may generate
Notes: AH=00h,04h,05h,0Bh,0Ch,0Dh,0Fh are documented as NOPs
the current cursor position must be above the status area in order to
set the protected area
SeeAlso: AH=01h,AH=02h
INT 49 - TI Professional PC - CRT - SET ATTRIBUTE LATCH
AH = 16h
BL = new attribute (see #03210)
Return: nothing
Note: AH=00h,04h,05h,0Bh,0Ch,0Dh,0Fh are documented as NOPs
SeeAlso: AH=01h,AH=02h
INT 49 - TI Professional PC - CRT - GET START-OF-DISPLAY POINTER
AH = 17h
Return: DX = current offset at which display starts
Note: AH=00h,04h,05h,0Bh,0Ch,0Dh,0Fh are documented as NOPs
SeeAlso: AH=01h,AH=02h,INT 10/AH=FEh
INT 49 - TI Professional PC - CRT - PRINT TTY STRING
AH = 18h
CS:BX -> counted string (count byte with length followed by string)
Return: nothing
Notes: AH=00h,04h,05h,0Bh,0Ch,0Dh,0Fh are documented as NOPs
the string must be located in the caller's code segment; any TSRs
which want to hook INT 49 must check for this function and emulate
it, because the BIOS retrieves the caller's CS from the stack
SeeAlso: AH=01h,AH=02h,AH=0Eh
INT 4A - TI Professional PC - KEYBOARD - GET KEYPRESS
AH = 00h
Return: AX = keystroke (AH=00h for ASCII keys -- no scan code)
SeeAlso: AH=01h,AH=02h,AH=03h,AH=04h,AH=05h,INT 16/AH=00h
SeeAlso: INT 47"TI Professional",INT 48/AH=00h"TI Professional"
SeeAlso: INT 49/AH=01h"TI",INT 4C"TI Professional",INT 4D/AH=00h
SeeAlso: INT 5B"TI Professional"
INT 4A - TI Professional PC - KEYBOARD - GET KEYBOARD STATUS
AH = 01h
Return: ZF set if no keystroke available
ZF clear if keystrokes in buffer
AX = next keystroke (AH=00h for ASCII keys -- no scan code)
SeeAlso: AH=00h,AH=02h,AH=03h,AH=04h,AH=05h,INT 16/AH=01h
INT 4A - TI Professional PC - KEYBOARD - GET KEYBOARD MODE
AH = 02h
Return: AL = shift states (see #03213)
SeeAlso: AH=00h,AH=02h,AH=03h,AH=04h,AH=05h,INT 16/AH=02h
Bitfields for TI Professional PC keyboard shift states:
Bit(s) Description (Table 03213)
0 Ctrl key pressed
1 Alt key pressed
2 either Shift key pressed
3-6 0
7 CapsLock is ON
INT 4A - TI Professional PC - KEYBOARD - FLUSH KEYBOARD BUFFER
AH = 03h
Return: nothing
SeeAlso: AH=00h,AH=02h,AH=03h,AH=04h,AH=05h
INT 4A - TI Professional PC - KEYBOARD - SEND COMMAND TO KEYBOARD
AH = 04h
AL = command
00h reset to default states
01h enable auto-repeat (default)
02h disable auto-repeat
03h lock keyboard
04h unlock keyboard (default)
05h enable keyclick (requires hardware modification to work)
06h disable keyclick (default)
Return: nothing
SeeAlso: AH=00h,AH=02h,AH=03h,AH=04h,AH=05h
INT 4A - TI Professional PC - KEYBOARD - INSERT CHARACTER INTO KEYBOARD BUFFER
AH = 05h
BX = character code (BH=00h if ASCII character, BL=00h/BH nonzero for
extended codes) (see #03214)
Return: ZF set if keyboard buffer was already full
ZF clear if keystroke inserted into buffer
SeeAlso: AH=00h,AH=02h,AH=03h,AH=04h,AH=05h,INT 5B"TI"
(Table 03214)
Values for TI Professional PC scan/character codes:
Scan Key Normal Shift Ctrl Alt Notes
00h -- unused
01h F5 3F00h 5800h 6200h 6C00h
02h F6 4000h 5900h 6300h 6D00h
03h F7 4100h 5A00h 6400h 6E00h
04h F8 4200h 5B00h 6500h 6F00h
05h F9 4300h 5C00h 6600h 7000h
06h F10 4400h 5D00h 6700h 7100h
07h F11 4500h 0800h 0A00h 0C00h
08h F12 4600h 0900h 0B00h 0D00h
09h 1 ! 0031h 0021h ---- 7800h
0Ah 2 @ 0032h 0040h 0300h 7900h
0Bh 3 # 0033h 0023h ---- 7A00h
0Ch 4 $ 0034h 0024h ---- 7B00h
0Dh 5 % 0035h 0025h ---- 7C00h
0Eh 6 ^ 0036h 005Eh 001Eh 7D00h
0Fh 7 & 0037h 0026h ---- 7E00h
10h 8 * 0038h 002Ah ---- 7F00h
11h 9 ( 0039h 0028h ---- 8000h
12h 0 ) 0030h 0029h ---- 8100h
13h - _ 002Dh 005Fh 001Fh 8200h
14h = + 003Dh 002Bh ---- 8300h
15h BACK SPACE 0008h 0008h 007Fh ----
16h ` ~ 0060h 007Eh ---- ----
17h NUM = 003Dh 003Dh 003Dh 8C00h
18h NUM + 002Bh 002Bh 002Bh 8D00h
19h NUM SPAC 0020h 0020h 0020h 8E00h
1Ah NUM TAB 0009h 0F00h 0009h 8F00h
1Bh NUM 1 0031h 0031h 0031h (alt-###) [Note 5]
1Ch (unused)
1Dh NUM 0 0030h 0030h 0030h (alt-###) [Note 5]
1Eh NUM ENTER 000Dh 000Dh 000Dh ----
1Fh NUM 4 0034h 0034h 0034h (alt-###) [Note 5]
20h NUM 5 0035h 0035h 0035h (alt-###) [Note 5]
21h NUM 9 0039h 0039h 0039h (alt-###) [Note 5]
22h NUM - 002Dh 002Dh 002Dh ----
23h NUM 2 0032h 0032h 0032h (alt-###) [Note 5]
24h-26h -- unused
27h NUM 7 0037h 0037h 0037h (alt-###) [Note 5]
28h NUM 8 0038h 0038h 0038h (alt-###) [Note 5]
29h NUM 6 0036h 0036h 0036h (alt-###) [Note 5]
2Ah NUM , 002Ch 002Ch 002Ch ----
2Bh NUM 3 0033h 0033h 0033h (alt-###) [Note 5]
2Ch NUM . 002Eh 002Eh 002Eh ----
2Dh PRINT 7200h [Note2] ---- ---- [Notes 1,2]
2Eh RtArrow 4D00h 8A00h 7400h 4E00h
2Fh INS 5200h 2800h 2900h 2A00h [Note 1]
30h DEL 5300h 3800h 3900h 3A00h [Note 1]
31h TAB 0009h 0F00h 0009h ----
32h Q 0071h 0051h 0011h 1000h
33h W 0077h 0057h 0017h 1100h
34h E 0065h 0045h 0005h 1200h
35h R 0072h 0052h 0012h 1300h
36h T 0074h 0054h 0014h 1400h
37h Y 0079h 0059h 0019h 1500h
38h U 0075h 0055h 0015h 1600h
39h I 0069h 0049h 0009h 1700h
3Ah O 006Fh 004Fh 000Fh 1800h
3Bh P 0070h 0050h 0010h 1900h
3Ch [ { 005Bh 007Bh 001Bh ----
3Dh ] } 005Dh 007Dh 001Dh ----
3Eh LINE FEED 000Ah 000Ah 7500h 4F00h
3Fh BRK/PAUS [Note3] [Note4] ---- ---- [Notes 1,3,4]
40h UpArrow 4800h 8800h 8400h 4900h
41h ESC 001Bh 001Bh 001Bh ----
42h A 0061h 0041h 0001h 1E00h
43h S 0073h 0053h 0013h 1F00h
44h D 0064h 0044h 0004h 2000h
45h F 0066h 0046h 0006h 2100h
46h G 0067h 0047h 0007h 2200h
47h H 0068h 0048h 0008h 2300h
48h J 006Ah 004Ah 000Ah 2400h
49h K 006Bh 004Bh 000Bh 2500h
4Ah L 006Ch 004Ch 000Ch 2600h
4Bh ; : 003Bh 003Ah ---- ----
4Ch ' " 0027h 0022h ---- ----
4Dh RETURN 000Dh 000Dh 000Dh ----
4Eh \ | 005Ch 007Ch 001Ch ----
4Fh LeftArrow 4B00h 8B00h 7300h 4C00h
50h HOME 4700h 8600h 7700h 8500h
51h Space Bar 0020h 0020h 0020h 0020h
52h Z 007Ah 005Ah 001Ah 2C00h
53h X 0078h 0058h 0018h 2D00h
54h C 0063h 0043h 0003h 2E00h
55h V 0076h 0056h 0016h 2F00h
56h B 0062h 0042h 0002h 3000h
57h N 006Eh 004Eh 000Eh 3100h
58h M 006Dh 004Dh 000Dh 3200h
59h , < 002Ch 003Ch ---- ----
5Ah PRINT 7200h [Note2] ---- ---- [Notes 1,2]
5Bh . > 002Eh 003Eh ---- ----
5Ch / ? 002Fh 003Fh ---- ----
5Dh (unused)
5Eh DEL 5300h 3800h 3900h 3A00h [Note 1]
5Fh INS 5200h 2800h 2900h 2A00h [Note 1]
60h DownArrow 5000h 8900h 7600h 5100h
61h-63h -- unused
64h BRK/PAUS [Note3] [Note4] ---- ---- [Notes 1,3,4]
65h F1 3B00h 5400h 5E00h 6800h
66h F2 3C00h 5500h 5F00h 6900h
67h F3 3D00h 5600h 6000h 6A00h
68h F4 3E00h 5700h 6100h 6B00h
69h-6Fh -- unused
Notes: [1] four of the keys can have differing scan codes, depending on the
actual keyboard; the BIOS accepts either scan code ("normal": 2Fh,
30h, 5Ah, 64h; "alternate": 2Dh,3Fh,5Eh,5Fh) for any of these keys
[2] Shift-Print invokes INT 5E for a screen dump; the PRTSCRN.DEV
device driver also supports Alt-Print, Ctrl-Print, Shift-Alt-Print,
and Shift-Ctrl-Print for dumping graphics in various permutations
[3] BRK/PAUS invokes INT 5C for a pause, then stuffs 0100h into the
keyboard buffer
[4] Shift-BRK/PAUS invokes INT 5D for the Break, then stuffs 0000h
into the keyboard buffer; MS-DOS hooks INT 5D to keep the 0000h from
appearing in the keyboard buffer
[5] on the TI Pro, one enters an arbitrary character slightly
differently than on a standard PC: exactly three numberpad digits
must be pressed (using leading zeros for codes less than 100), and
the key for the requested code is inserted into the keyboard buffer
immediately on pressing the third key. The Alt key may be released
and re-pressed arbitrarily often between digits without affecting
the Alt-digit-digit-digit sequence.
scan codes with bit 7 set are not key releases, but rather
auto-repeated keystrokes, which the BIOS only places into the
keyboard buffer if the buffer is empty at the time (thus avoiding
typeahead of repeated keystrokes faster than they can be processed)
SeeAlso: #00006 at INT 09
INT 4B - TI Professional PC - PARALLEL PORT - OUTPUT CHARACTER
AH = 00h
DL = printer number (00h)
AL = character to print
Return: AH = printer status (see #03216)
Note: on the TI Pro, the BIOS only supports DL=00h; MS-DOS versions for the
TI hook INT 4B and handle requests for DL<>00h
SeeAlso: AH=01h,AH=02h,INT 17/AH=00h
SeeAlso: INT 40"TI Professional",INT 48/AH=00h"TI Professional"
SeeAlso: INT 49/AH=01h"TI",INT 4C"TI Professional",INT 4D/AH=00h
Bitfields for TI Professional PC printer status:
Bit(s) Description (Table 03216)
0 timeout (function 00h only)
3-1 unused
4 busy
5 paper out
6 on-line (selected)
7 fault
INT 4B - TI Professional PC - PARALLEL PORT - INITIALIZE PRINTER
AH = 01h
DL = printer number (00h)
Return: AH = printer status (see #03216)
Note: on the TI Pro, the BIOS only supports DL=00h; MS-DOS versions for the
TI hook INT 4B and handle requests for DL<>00h
SeeAlso: AH=00h,AH=02h,INT 17/AH=01h
INT 4B - TI Professional PC - PARALLEL PORT - GET PRINTER STATUS
AH = 02h
DL = printer number (00h)
Return: AH = printer status (see #03216)
Note: on the TI Pro, the BIOS only supports DL=00h; MS-DOS versions for the
TI hook INT 4B and handle requests for DL<>00h
SeeAlso: AH=00h,AH=01h,INT 17/AH=02h
INT 4C - TI Professional PC - CLOCK/ANALOG INTERFACE
no details available
SeeAlso: INT 40"TI Professional",INT 49/AH=01h"TI"
SeeAlso: INT 4A/AH=00h"TI",INT 4B"TI Professional",INT 4D/AH=00h
SeeAlso: INT 58"TI Professional"
INT 4D - TI Professional PC - DISK - RESET DISK SYSTEM
AH = 00h
DL = drive (if bit 7 is set both hard disks and floppy disks reset)
Return: AH = status (see #00234 at INT 13/AH=01h)
CF clear if successful (returned AH=00h)
CF set on error
Note: this function is the same as INT 13/AH=00h on a standard PC BIOS
SeeAlso: AH=01h,AH=02h,AH=08h,AH=0Bh,INT 13/AH=00h,INT 46"TI Professional"
SeeAlso: INT 48/AH=00h"TI Professional",INT 4A/AH=00h"TI"
INT 4D - TI Professional PC - DISK - GET STATUS OF LAST OPERATION
AH = 01h
DL = drive (bit 7 set for hard disk)
Return: CF clear if status unchanged
CF set if status changed since last call
AH = 00h
AL = status of previous operation (see #00234 at INT 13/AH=01h)
Notes: this function is nearly the same as INT 13/AH=01h on a standard PC BIOS
the TI's BIOS tranparently performs a number of retries, and an error
status is only reported if all of the retries fail. To get the error
status if the operation succeeded on a retry, use AH=07h instead
SeeAlso: AH=00h,AH=07h,INT 13/AH=01h
INT 4D - TI Professional PC - DISK - READ SECTOR(S) INTO MEMORY
AH = 02h
AL = number of sectors to read (must be nonzero)
CH = low eight bits of cylinder number
CL = sector number 1-63 (bits 0-5)
high two bits of cylinder (bits 6-7, hard disk only)
DH = head number
DL = drive number (bit 7 set for hard disk)
ES:BX -> data buffer
Return: CF set on error
if AH = 11h (corrected ECC error), AL = burst length
CF clear if successful
AH = status (see #00234 at INT 13/AH=01h)
AL = number of sectors transferred
ES:BX -> buffer for last sector processed (including one with errors)
SeeAlso: AH=00h,AH=01h,AH=03h,AH=04h,INT 13/AH=02h
INT 4D - TI Professional PC - DISK - WRITE SECTOR(S) FROM MEMORYv
AH = 03h
AL = number of sectors to write (must be nonzero)
CH = low eight bits of cylinder number
CL = sector number 1-63 (bits 0-5)
high two bits of cylinder (bits 6-7, hard disk only)
DH = head number
DL = drive number (bit 7 set for hard disk)
ES:BX -> buffer containing data
Return: CF set on error
if AH = 11h (corrected ECC error), AL = burst length
CF clear if successful
AH = status (see #00234 at INT 13/AH=01h)
AL = number of sectors transferred
ES:BX -> buffer for last sector processed (including one with errors)
SeeAlso: AH=00h,AH=01h,AH=02h,AH=04h,INT 13/AH=03h
INT 4D - TI Professional PC - DISK - VERIFY DISK SECTOR CRC(S)
AH = 04h
AL = number of sectors to verify (must be nonzero)
CH = low eight bits of cylinder number
CL = sector number 1-63 (bits 0-5)
high two bits of cylinder (bits 6-7, hard disk only)
DH = head number
DL = drive number (bit 7 set for hard disk)
ES:BX -> data buffer
Return: CF set on error
if AH = 11h (corrected ECC error), AL = burst length
CF clear if successful
AH = status (see #00234 at INT 13/AH=01h)
AL = number of sectors transferred
ES:BX -> buffer for last sector processed (including one with errors)
Note: even though no data is transferred, ES:BX must still be valid
SeeAlso: AH=00h,AH=01h,AH=02h,AH=06h,INT 13/AH=04h
INT 4D - TI Professional PC - DISK - NOP
AH = 05h
Note: on the TI Pro, FORMAT.COM contains direct port I/O commands to perform
disk formatting, rather than using the BIOS
INT 4D - TI Professional PC - DISK - VERIFY DISK SECTOR(S)
AH = 06h
AL = number of sectors to verify (must be nonzero)
CH = low eight bits of cylinder number
CL = sector number 1-63 (bits 0-5)
high two bits of cylinder (bits 6-7, hard disk only)
DH = head number
DL = drive number (bit 7 set for hard disk)
ES:BX -> data buffer
Return: CF set on error
if AH = 11h (corrected ECC error), AL = burst length
CF clear if successful
AH = status (see #00234 at INT 13/AH=01h)
AL = number of sectors transferred
ES:BX -> buffer for last sector processed (including one with errors)
Note: even though no data is transferred, ES:BX must still be valid because
an actual comparison with disk data is performed, not just the CRC
check of the standard PC BIOS or INT 4D/AH=04h
SeeAlso: AH=00h,AH=01h,AH=02h,AH=04h,INT 13/AH=04h
INT 4D - TI Professional PC - DISK - GET RETRY STATUS OF LAST OPERATION
AH = 07h
DL = drive (bit 7 set for hard disk)
Return: CF clear if status unchanged
CF set if status changed since last call
AH = 00h
AL = status of previous operation (see #00234 at INT 13/AH=01h)
Notes: this function is nearly the same as INT 13/AH=01h on a standard PC BIOS
the TI's BIOS tranparently performs a number of retries; this function
returns the error status of a failed operation even if the operation
succeeded on a retry
SeeAlso: AH=00h,AH=01h,INT 13/AH=01h
INT 4D - TI Professional PC - DISK - SET STANDARD DEVICE INTERFACE TABLE
AH = 08h
DL = drive number (00h-03h)
AL = drive type
00h single-sided 48 tpi (40-track, 8 sectors, 512 bytes/sector)
01h double-sided 48 tpi (40-track, 8 sectors, 512 bytes/sector)
02h single-sided 96 tpi (80-track, 8 sectors, 512 bytes/sector)
03h double-sided 96 tpi (80-track, 8 sectors, 512 bytes/sector)
Return: nothing???
SeeAlso: AH=00h,AH=09h
INT 4D - TI Professional PC - DISK - SET DEVICE INTERFACE TABLE ADDRESS
AH = 09h
DL = drive number (00h-07h)
ES:BX -> Device Interface Table (see #03226)
Return: nothing???
SeeAlso: AH=00h,AH=08h,AH=0Ah,INT 1E
Format of TI Professional PC Device Interface Table:
Offset Size Description (Table 03226)
00h DWORD -> entry point for disk routine
04h WORD bytes per sector
06h BYTE sectors per track
07h BYTE number of heads
08h BYTE number of cylinders
09h BYTE retry count
0Ah BYTE precompensation start
SeeAlso: #01264 at INT 1E
INT 4D - TI Professional PC - DISK - GET DEVICE INTERFACE TABLE ADDRESS
AH = 0Ah
DL = drive number (00h-07h)
Return: AH = status
ES:BX -> Device Interface Table (see #03226)
SeeAlso: AH=00h,AH=08h,AH=09h,INT 1E
INT 4D - TI Professional PC - DISK - TURN OFF ALL DRIVES
AH = 0Bh
Return: AH = 00h
Note: used for diagnostics or to conserve power
SeeAlso: AH=00h
INT 4E - TI Professional PC - TIME-OF-DAY CLOCK - SET BIOS DATE
AH = 00h
BX = number of days since January 1, 1980
Return: nothing
SeeAlso: AH=01h,AH=02h
SeeAlso: INT 40"TI Professional",INT 48/AH=00h"TI Professional"
SeeAlso: INT 4A/AH=00h"TI",INT 4F"TI Professional"
INT 4E - TI Professional PC - TIME-OF-DAY CLOCK - SET BIOS TIME
AH = 01h
CH = hours
CL = minutes
DH = seconds
DL = hundredths
Return: nothing
Note: the BIOS does not validate the data passed to this function
SeeAlso: AH=00h,AH=02h
INT 4E - TI Professional PC - TIME-OF-DAY CLOCK - GET
BIOS DATE AND TIME
AH = 02h
Return: AX = number of days since January 1, 1980
CH = hours
CL = minutes
DH = seconds
DL = hundredths
SeeAlso: AH=00h,AH=01h
INT 4F - TI Professional PC - SYSTEM CONFIGURATION CALL
Return: AX = system configuration word (see #03227)
BX = size of contiguous DOS memory in paragraphs
SeeAlso: INT 11"BIOS",INT 12"BIOS",INT 40"TI Professional",INT 48/AH=09h
SeeAlso: INT 49/AH=01h"TI",INT 4B"TI Professional",INT 4D/AH=00h
SeeAlso: INT 4E"TI Professional"
Bitfields for TI Professional PC system configuration:
Bit(s) Description (Table 03227)
0 floppy drive 0 (A:, internal) installed
1 floppy drive 1 (B:, internal) installed
2 floppy drive 2 (C:, external) installed
3 floppy drive 3 (D:, external) installed
4 drive A: is 96tpi (80 tracks)
5 drive A: is double-sided
6 60 Hz power instead of 50 Hz
7 hard disk (E: or E:/F:) installed
8 serial port 1 installed
9 serial port 2 installed
10 serial port 3 installed
11 serial port 4 installed
14-12 installed graphics RAM
000 none (text-only system)
001 bank A only (graphics limited to 2 of 8 colors)
111 banks A/B/C (graphics supports 8 of 8 colors)
15 clock/analog board installed
INT 50 - TI Professional PC - FATAL SOFTWARE ERROR TRAP
Desc: the default handler generates a System Error message and halts the
computer such that only Ctrl-Alt-Del can restart operation
Note: documented as "for system use only"; intended for multi-tasking
software
SeeAlso: INT 40"TI Professional",INT 4F"TI Professional"
SeeAlso: INT 51"TI Professional",INT 53"TI Professional"
INT 51 - TI Professional PC - RESTART TIMING EVENT
AX = timer count in 25ms intervals
DS:DI -> timing-event table (see #03244)
Note: documented as "for system use only"; intended for multi-tasking
software
SeeAlso: INT 50"TI Professional",INT 52"TI Professional"
Format of TI Professional PC timing event table:
Offset Size Description (Table 03244)
00h WORD offset of next event table entry
02h BYTE normally unused (FFh)
03h BYTE flags:
bit 7 set if timing event active
bits 6-0 not used by BIOS (0), but could be used by option ROMs
04h WORD timeout count (decremented every 25ms when active)
06h WORD offset of event handler (in segment F400h) to call on event
timeout; the F400h segment allows addressing both system ROMs
and the first 16K of memory (due to the 1M memory wraparound)
INT 52 - TI Professional PC - CANCEL TIMING EVENT
DS:DI -> timing-event table (see #03244)
Note: documented as "for system use only"; intended for multi-tasking
software
SeeAlso: INT 51"TI Professional",INT 53"TI Professional"
INT 53 - TI Professional PC - SVC INTERFACE
Notes: documented as "for system use only"; intended for multi-tasking
software
this interrupt is not used by the BIOS; the default handler generates
a system error trap (see INT 51"TI Professional")
SeeAlso: INT 50"TI Professional",INT 54"TI Professional"
INT 54 - TI Professional PC - ACTIVATE TASK SUBROUTINE
Notes: documented as "for system use only"; intended for multi-tasking
software
this interrupt is not used by the BIOS; the default handler generates
a system error trap (see INT 51"TI Professional")
SeeAlso: INT 50"TI Professional",INT 53"TI Professional"
INT 55 - TI Professional PC - RESERVED FOR FUTURE USE
Notes: documented as "for system use only"; intended for multi-tasking
software
this interrupt is not used by the BIOS; the default handler generates
a system error trap (see INT 51"TI Professional")
SeeAlso: INT 50"TI Professional",INT 56"TI Professional"
INT 56 - TI Professional PC - RESERVED FOR FUTURE USE
Notes: documented as "for system use only"; intended for multi-tasking
software
this interrupt is not used by the BIOS; the default handler generates
a system error trap (see INT 51"TI Professional")
SeeAlso: INT 50"TI Professional",INT 55"TI Professional"
INT 57 - C TI Professional PC - CRT MAPPING HOOK
AX/BX/CX/DX/BP/SI/DI same as on entry to CRT subroutine (e.g. INT 49)
DS = BIOS system segment
ES = DE00h
Return: DF/IF flags must be preserved
ES,DS,BP preserved
AX,BX,CX,DX,SI,DI may be changed as necessary to modify the original
call
Desc: hooking this vector permits programs to intercept or modify all
screen output, including both application calls to INT 49 and
calls generated internally by the BIOS which bypass INT 49
Note: by default, this vector points at an IRET instruction
SeeAlso: INT 49/AH=01h"TI",INT 50"TI Professional"
INT 58 C - TI Professional PC - SYSTEM TIMER 25ms HOOK
Desc: called from the hardware timer tick interrupt, after executing the
first four BIOS timing events, updating the system clock, invoking
INT 5A if required, saving registers, and switching to a temporary
stack (the one reserved for IRQ3)
Notes: the handler for this interrupt may destroy AX,BX,DI,ES but must
preserve all other registers; 8 WORDs of stack space are available,
of which at most 4 may be used if the handler enables interrupts
if the handler switches stacks (because more than 4/8 WORDs are
required), the original stack must be restored before chaining to
the previous handler
SeeAlso: INT 43"TI Professional",INT 4C"TI Professional"
SeeAlso: INT 5A"TI Professional"
INT 59 - TI Professional PC - COMMON ROM HARDWARE INTERRUPT EXIT VECTOR
Desc: all hardware interrupts on the TI Pro jump indirectly to the handler
pointed at by this interrupt vector to finish their handling of
the hardware interrupt
Notes: the default handler decrements the interrupt count, restores registers
(including the stack pointer), sends an EOI to the interrupt
controller, and finally does an IRET
can be used by multitaskers which need to get control after every
hardware interrupt
SeeAlso: INT 40"TI Professional",INT 47"TI Professional"
SeeAlso: INT 53"TI Professional"
INT 5A C - TI Professional PC - SYSTEM TIMER 100ms HOOK
Desc: called from the hardware timer tick interrupt, after executing the
first four BIOS timing events, updating the system clock, saving
registers, and switching to a temporary stack (the one reserved
for IRQ3), but before calling INT 58
no details available
Notes: this interrupt is invoked on every fourth timer interrupt
the handler for this interrupt may destroy AX,BX,DI,ES but must
preserve all other registers; 8 WORDs of stack space are available,
of which at most 4 may be used if the handler enables interrupts
if the handler switches stacks (because more than 4/8 WORDs are
required), the original stack must be restored before chaining to
the previous handler
SeeAlso: INT 43"TI Professional",INT 4C"TI Professional"
SeeAlso: INT 58"TI Professional"
INT 5B C - TI Professional PC - KEYBOARD MAPPING HOOK
CF set
AH = shift state (see #03247)
AL = scan code (see #03214)
Return: BX, CX, DI, ES may be destroyed
various return methods are supported:
IRET, AX unchanged: process keystroke normally
IRET, AL = FFh: discard keystroke
IRET, AX changed: process modified keystroke
chain to old INT 5B: allow other handlers to look at (possibly
modified) keystroke in AX
RETF 2, CF clear: place returned AX into keyboard buffer without
any further processing
Notes: invoked by the keyboard ISR, and used to remap the keyboard
if CF is clear on entry, some other handler has processed the
keystroke and the current handler should not modify it, instead
performing a RETF 2 or IRET (after clearing CF on the stack)
when requesting that a value be placed directly into the keyboard
buffer, AL and AH may not *both* be nonzero (the TI does not
return scan codes as part of the key code for non-extended keys)
SeeAlso: INT 15/AH=4Fh,INT 4A/AH=00h"TI",INT 59"TI Professional"
SeeAlso: INT 5C"TI Professional",INT 5D"TI Professional"
SeeAlso: INT 5E"TI Professional",INT 5F"TI Professional"
Bitfields for TI Professional PC keyboard mapping hook shift states:
Bit(s) Description (Table 03247)
7 CAPS LOCK is on
6-4 reserved (0)
3 repeated key
2 Shift is pressed
1 Alt is pressed
0 Ctrl is pressed
INT 5C C - TI Professional PC - KEYBOARD PAUSE KEY VECTOR
AX = 0100h
CF clear
Return: CF clear
AX = keystroke to be placed into keyboard buffer
CF set
AX ignored
Desc: toggle a pause flag which is checked by the CRT Device Service Routine
(see INT 49/AH=01h"TI") and causes it to temporarily halt the
machine on the next video-related function (until a key is pressed)
SeeAlso: INT 09"IRQ1",INT 4A/AH=00h"TI",INT 59"TI Professional"
SeeAlso: INT 5B"TI Professional",INT 5D"TI Professional"
SeeAlso: INT 5E"TI Professional",INT 5F"TI Professional"
INT 5D C - TI Professional PC - KEYBOARD BREAK KEY VECTOR
CF clear
AX = 0000h
Return: CF clear
AX = keystroke to place into keyboard buffer
CF set
AX ignored
Desc: invoked by the keyboard ISR when Shift-BrkPause is pressed
Note: the default handler is a simple IRET instruction
SeeAlso: INT 09"IRQ1",INT 4A/AH=00h"TI",INT 59"TI Professional"
SeeAlso: INT 5B"TI Professional",INT 5C"TI Professional"
SeeAlso: INT 5E"TI Professional",INT 5F"TI Professional"
INT 5E C - TI Professional PC - KEYBOARD PRINT-SCREEN VECTOR
CF set
Return: CF clear
AX = keystroke to be placed into keyboard buffer
CF set
AX ignored
Desc: hook to dump the screen to the printer
Notes: hooked by TI MS-DOS, which provides a PRTSCRN character device which
can invoke screen prints when a decimal digit (indicating the type
of screen dump) is written to it
the TI MS-DOS print-screen routine allows selective dumps of text
only, graphics only, or text and graphics superimposed, in either
normal or reverse, by pressing the appropriate keystroke combination:
Shift-Print, Ctrl-Print, Alt-Print, Shift-Alt-Print, Ctrl-Alt-Print,
or Shift-Ctrl-Print.
the BIOS default routine for this vector is an IRET
SeeAlso: INT 05"PRINT SCREEN",INT 4A/AH=00h"TI",INT 59"TI Professional"
SeeAlso: INT 5B"TI Professional",INT 5C"TI Professional"
SeeAlso: INT 5D"TI Professional",INT 5F"TI Professional"
INT 5F C - TI Professional PC - KEYBOARD QUEUEING VECTOR
Return: all registers preserved
Desc: hook for multitaskers to be informed when a keypress is placed in the
keyboard buffer
Note: the default handler is a simple IRET instruction
SeeAlso: INT 09,INT 4A/AH=00h"TI",INT 59"TI Professional"
SeeAlso: INT 5B"TI Professional",INT 5C"TI Professional"
SeeAlso: INT 5D"TI Professional",INT 5E"TI Professional"
INT 60 - TI Professional PC - SYSTEM ROM DATA AREA POINTER (NOT A VECTOR!)
Desc: the low word of this vector contains the segment of the RAM data area
to be used by the system ROM at F400h:A000h, and the high word
contains the length of the data area (see #03263)
SeeAlso: INT 61"TI Professional PC",INT 66"TI Professional PC"
Format of TI Professional System ROM data area:
Offset Size Description (Table 03263)
00h BYTE port 00h shadow
01h BYTE port 03h shadow
02h BYTE port 04h shadow
03h WORD system configuration word (see #03266)
05h BYTE 25ms count
06h WORD offset of timing event 1 (0008h)
08h WORD (event 1) offset of timing event 2 (0010h)
0Ah BYTE (event 1) unused (FFh)
0Bh BYTE (event 1) active flag (bit 7 set if on)
0Ch WORD (event 1) count-down until end of event
0Eh WORD (event 1) event routine (in segment F400h) to call at timeout
10h WORD (event 2) offset of timing event 3 (0018h)
12h BYTE (event 2) unused (FFh)
13h BYTE (event 2) active flag (bit 7 set if on)
14h WORD (event 2) count-down until end of event
16h WORD (event 2) event routine (in segment F400h) to call at timeout
18h WORD (event 3) offset of timing event 3 (0020h)
1Ah BYTE (event 3) unused (FFh)
1Bh BYTE (event 3) active flag (bit 7 set if on)
1Ch WORD (event 3) count-down until end of event
1Eh WORD (event 3) event routine (in segment F400h) to call at timeout
20h WORD (event 4) 0000h - last event
22h BYTE (event 4) unused (FFh)
23h BYTE (event 4) active flag (bit 7 set if on)
24h WORD (event 4) count-down until end of event
26h WORD (event 4) event routine (in segment F400h) to call at timeout
28h WORD offset of start of text display within segment DE00h
2Ah WORD end of display
2Ch WORD current absolute cursor position
2Eh WORD start of current character row
30h WORD current cursor column
32h WORD cursor type and size (see #03264)
34h WORD start of protected status region on screen (0000h = none)
36h BYTE pop flag used by some ROM routines
00h pop registers before return
nonzero: do not pop
37h BYTE unused (FFh)
38h BYTE PAUSE flag
00h off
FFh on
39h BYTE temp: current attribute while moving characters on screen
3Ah WORD start of keyboard queue (next key at start+2 or 0042h if 0060h)
3Ch WORD end of keyboard queue (next key inserted at end+2 or 0042h)
3Eh BYTE number of characters in buffer
3Fh BYTE keyboard mode flags (see #03265)
40h BYTE Alt-digit-digit-digit accumulator
41h BYTE Alt-digit-digit-digit count of digits (mod 3)
42h 16 WORDs keyboard buffer (circular queue)
62h 8 DWORDs Drive Interface Table pointers for floppies A:-D: + four others
(0000h:0000h if pointer not in use)
82h BYTE disk-error retry count (incremented on each disk error)
83h 2 BYTEs BIOS scratch space
85h 8 BYTEs current cylinder number for drives 0-7
FFh = unknown
8Dh BYTE BIOS scratch space
8Eh BYTE hard error code for last disk access
00h operation successful
8Fh 8 BYTEs save area for disk DSR parameters
97h 6 BYTEs current drive status
9Dh BYTE retry error status
9Eh BYTE BIOS scratch space
9Fh 7 BYTEs ???
A6h 2 WORDs INT 47 save area for SS,SP
AAh 2 WORDs INT 46 save area for SS,SP
AEh 2 WORDs INT 43 save area for SS,SP
B2h 2 WORDs save area for SS,SP to be restored by common intr. exit routine
B6h 24 WORDs stack for INT 47
E6h 24 WORDs stack for INT 46
116h 17 WORDs stack for INT 43
13Ah 6 BYTEs system date and time (hundredths, seconds, minutes, hours, and
WORD days since 01jan1980)
Note: timing event 1 is the disk I/O timeout, event 2 is the floppy disk
motor timeout, event 3 is the floppy disk motor spin-up time, and
event 4 is used to turn off the speaker after a delay
Bitfields for TI Professional PC cursor size and type:
Bit(s) Description (Table 03264)
15 reserved (0)
14-13 cursor type
00 nonblinking
01 off
10 slow blink
11 fast blink
12-8 starting scan line (0-11)
7-5 reserved (0)
4-0 ending scan line (0-11)
SeeAlso: #03263
Bitfields for TI Professional PC keyboard mode flags:
Bit(s) Description (Table 03265)
7 CapsLock was ON at last keypress
6-4 reserved (0)
3 repeat key
2 Shift was down at last keypress
1 Alt was down at last keypress
0 Ctrl was down at last keypress
SeeAlso: #03263
Bitfields for TI Professional System Configuration Word:
Bit(s) Description (Table 03266)
0 drive A: installed
1 drive B: installed
2 drive C: installed
3 drive D: installed
4 drive A: is 80-track
5 drive A: is double-sided
6 60-Hz (USA,etc.) system instead of 50-Hz (Europe)
7 hard disk installed
8 serial port 1 installed
9 serial port 2 installed
10 serial port 3 installed
11 serial port 4 installed
14-12 installed graphics planes
000 none
001 plane A
111 planes A, B, and C
15 clock installed
SeeAlso: #03263
INT 61 - TI Professional PC - FACTORY ROM DATA AREA POINTER (NOT A VECTOR!)
Desc: the low word of this vector contains the segment of the RAM data area
to be used by the expansion ROM at F400h:0000h, and the high word
contains the length of the data area; this segment and size are
both set to 0000h if no ROM is installed at F400h:0000h
SeeAlso: INT 60"TI Professional PC",INT 62"TI Professional"
SeeAlso: INT 66"TI Professional PC"
INT 62 - TI Professional PC - OPTION ROM DATA AREA POINTER (NOT A VECTOR!)
Desc: the low word of this vector contains the segment of the RAM data area
to be used by the expansion ROM at F400h:2000h, and the high word
contains the length of the data area; this segment and size are
both set to 0000h if no ROM is installed at F400h:2000h
SeeAlso: INT 61"TI Professional PC",INT 63"TI Professional"
SeeAlso: INT 66"TI Professional PC"
INT 63 - TI Professional PC - OPTION ROM DATA AREA POINTER (NOT A VECTOR!)
Desc: the low word of this vector contains the segment of the RAM data area
to be used by the expansion ROM at F400h:4000h, and the high word
contains the length of the data area; this segment and size are
both set to 0000h if no ROM is installed at F400h:4000h
SeeAlso: INT 60"TI Professional PC",INT 62"TI Professional"
SeeAlso: INT 64"TI Professional PC"
INT 64 - TI Professional PC - OPTION ROM DATA AREA POINTER (NOT A VECTOR!)
Desc: the low word of this vector contains the segment of the RAM data area
to be used by the expansion ROM at F400h:6000h, and the high word
contains the length of the data area; this segment and size are
both set to 0000h if no ROM is installed at F400h:6000h
SeeAlso: INT 60"TI Professional PC",INT 63"TI Professional"
SeeAlso: INT 65"TI Professional PC"
INT 65 - TI Professional PC - OPTION ROM DATA AREA POINTER (NOT A VECTOR!)
Desc: the low word of this vector contains the segment of the RAM data area
to be used by the expansion ROM at F400h:8000h, and the high word
contains the length of the data area; this segment and size are
both set to 0000h if no ROM is installed at F400h:8000h
SeeAlso: INT 60"TI Professional PC",INT 64"TI Professional"
SeeAlso: INT 66"TI Professional PC"
INT 66 - TI Professional PC - SYSTEM INFORMATION (NOT A VECTOR!)
Desc: the low word of this vector contains the system memory size in
paragraphs; the third byte contains the number of outstanding
interrupt requests, and the fourth byte contains a description
of the installed drive types (see #03517)
SeeAlso: INT 60"TI Professional PC",INT 67"TI Professional"
Bitfields for TI Professional drive type information:
Bit(s) Description (Table 03517)
7 floppy drive D: has 80 tracks
6 floppy drive D: is double-sided
5 floppy drive C: has 80 tracks
4 floppy drive C: is double-sided
3 floppy drive B: has 80 tracks
2 floppy drive B: is double-sided
1 floppy drive A: has 80 tracks
0 floppy drive A: is double-sided
INT 67 - TI Professional PC - SYSTEM DATA (NOT A VECTOR!)
Desc: this vector contains the TI Pro's system configuration words
(see #03521)
SeeAlso: INT 66"TI Professional PC"
Bitfields for TI Professional PC System Configuration doubleword:
Bit(s) Description (Table 03521)
0 8087 present
31-1 reserved (0)