#	INTERPRE.DAT -- template file for INTERPRE.EXE
#	by Ned Konz 08/02/87
#	Note that any line can be continued by ending it with a backslash.
#	Comment lines may be started with any non-hex character.
#	Format of each line: NN[AH][AL] rest-of-line, i.e.:
#	2,4, or 6 hex characters followed by the rest of the line.
#	First 2 characters (required) are the interrupt number
#	Next 2 (optional) are the contents of AH
#	Next 2 (optional) are the contents of AL
#	within the body of a template, the following strings are replaced
#	with the contents of the appropriate registers:
#
#	AX AH AL BX BH BL CX CH CL DX DH DL BP DI SI DS ES CS IP
#
#	Added functionality by Russell Nelson.  If an interrupt is mentioned
#	in INTERPRE.DAT, then it is traced, otherwise not.  No need to
#	recompile to change the interrupts.  However, because of cheesy
#	programming, all interrupts belonging to a single vector (first two
#	digits identical) MUST be kept together.  I.e. all the interrupt 10s,
#	then all the interrupt 21s, etc.

05	Print screen
1000	Set video mode to AL
1001	Set cursor to CH-CL
1002	Set cursor position to row DH col DL page BH
1003	Read cursor position (page BH)
1004	Read light-pen position
1005	Set active display page to AL
100580	Get display page register
100581	Set CPU display page register to BL
100582	Set CRT display page register to BH
100583	Set CPU display page register to BL, CRT display page register to BH
1006	Scroll window (CH,CL DH,DL) up by AL lines (fill with BH)
100600	Clear window (CH,CL DH,DL) (fill with BH)
1007	Scroll window (CH,CL DH,DL) down by AL lines (fill with BH)
100700	Clear window (CH,CL DH,DL) (fill with BH)
1008	Read character and attribute from page BH
1009	Write character (AL) CX times to page BH with attr. BL
100a	Write character (AL) CX times to page BH (color BL if graphics mode)
100b	Set color BH to (physical color) BL
100c	Write pixel dot (color AL) to col. CX, row DL
100d	Read pixel dot from col. CX, row DL
100e	Write character (AL) as TTY (color BL if in graphics mode)
100f	Get current video mode
101130	Get EGA font pointer for font BL (3:8x8, 5:9x14)	
11	???
12	???
13	???
14	???
15	???
1600	Read next keyboard character
1601	Report whether character ready
1602	Get shift status
1700	Send byte (AL) to printer
1701	Initialize printer
1702	Get printer status
1800	Jump to BASIC
1900	Reboot computer
1a00	Read the current clock count
1a01	Set the current clock count to CXDX ticks
1a02	Read AT real-time clock
1a03	Set AT real time clock to CH:CL:DH (DST if DL==1)
1a04	Read date from AT real-time clock
1a05	Set date of AT real-time clock to DH/DL/CHCL
1a06	Set AT alarm to CH:CL.DH
1a07	Reset AT alarm
20	Program terminate
2100	Terminate program (DOS 1 type)
2101	Keyboard input with echo
2106	Direct Kbd/Display I/O (get char if DL=ff) (output char DL otherwise)
2107	Direct keyboard input without echo
2108	Keyboard input without echo
2109	Display string (from DS:DX)
210a	Buffered keyboard input (to DS:DX)
210b	Check keyboard input status
210c01	Clear keyboard and do keyboard input with echo
210c06	Clear keyboard and do direct Kbd/Display I/O (get char if DL=ff) \
        (output char DL otherwise)
210c07	Clear keyboard and do direct keyboard input without echo
210c08	Clear keyboard and do keyboard input without echo
210c0a	Clear keyboard and do buffered keyboard input (to DS:DX)
210d	Reset Disk
210e	Select DL as current drive
210f	Open file using FCB at DS:DX
2110	Close file (FCB at DS:DX)
2111	Search for first file matching FCB at DS:DX
2112	Search for next matching file
2113	Delete file using FCB at DS:DX
2114	Read sequential file record (FCB at DS:DX)
2115	Write sequential file record (FCB at DS:DX)
2116	Create file (FCB at DS:DX)
2117	Rename file (modified FCB at DS:DX)
2118	Internal DOS function 24
2119	Report current drive
211a	Set DTA to DS:DX
211b	Get FAT information, current drive
211c	Get FAT information, drive DL
211d	Internal DOS function 1d
211e	Internal DOS function 1e
211f	Internal DOS function 1f
2120	Internal DOS function 20
2121	Read random file record (FCB at DS:DX)
2122	Write random file record (FCB at DS:DX)
2123	Get file size (FCB at DS:DX)
2124	Set random record field (FCB at DS:DX)
2125	Set interrupt AL vector to DS:DX
2126	Create PSP at segment DX
2126	Create program segment at DX
2127	Read CX random file records (FCB at DS:DX)
2128	Write CX random file records (FCB at DS:DX)
2129	Parse filename (string at DS:SI) (make FCB at ES:DI)
212a	Get date
212b	Set date to DH/DL/CH (weekday AL)
212c	Get Time
212d	Set Time to CH:CL:DH.DL
212e	Called by command.com to reset transient portion of PSP (?) if DL!=00
212e00	Set verification off (if Dl(DL)==00), else undocumented
212e01	Set verification on (if Dl(DL)==00), else undocumented
212f	Get DTA address
2130	Get DOS version number
2131	Terminate (ret. code AL) and stay resident (free from DX)
2131	Terminate and stay resident (return code AL) (return from DX:0000 on)
213300	Get control break	
213300 	Get control break state
213301	Set control break to DL
213301 	Set control break state (to DL)
2135	Get interrupt AL vector
2136	Get disk DL free space
213700	Get switch character
213701	Set switch character to DL
2138	Get country-dependent info (for country AL) to DS:DX
2139	Make directory (name at DS:DX)
213a	Remove directory (name at DS:DX)
213b	Change current directory (name at DS:DX)
213c	Create file (name at DS:DX) with attribute CL
213d	Open file (name at DS:DX) mode AL
213e	Close file handle #BX
213f	Read CX bytes from file #BX to DS:DX
2140	Write CX bytes from DS:DX to file #BX 
2141	Delete file (name at DS:DX)
2142	Move file #BX pointer by CX:DX (whence=AL)
214300	Get mode of file (name at DS:DX)
214301	Set mode of file (name at DS:DX) to CL
214400	IOCTL: get device info for file #BX
214401	IOCTL: set device info for file #BX to DX
214402	IOCTL: read CX bytes from control channel of file #BX (to DS:DX)
214403	IOCTL: write CX bytes (from DS:DX) to control channel of file #BX
214404	IOCTL: read CX bytes from control channel of drive #BL (to DS:DX)
214405	IOCTL: write CX bytes (from DS:DX) to control channel of drive #BL
214406	IOCTL: report input status of file #BL
214407	IOCTL: report output status of file #BL
214408	IOCTL: report whether removable media in disk #BL
21440b	IOCTL: set retries for disk #BL to DX (retry time CX)
2145	Duplicate file handle #BX (DUP)
2146	Duplicate file handle #BX onto #CX (CDUP)
2147	Get current directory for drive #DL
2148	Allocate BX paragraphs of memory
2149	Free memory at ES:0000
214a	Change size of memory block at ES:0000 to BX paragraphs
214b00	Load and execute (make PSP) (program name @DS:DX)
214b01	Load program (program name @DS:DX)
214c	Terminate process (return code AL)
214d	Get return code of subprogram
214e	Begin file search (name at DS:DX) for files with attr. CL
214f	Continue file search
2151	Get PSP address (undocumented, like 2162)
2152	Set PSP address to BX (undocumented, inverse of 2162)
2154	Get verify state
2156	Rename file (old name at DS:DX to new name at ES:DI)
215700	Get File #BX date/time
215701	Set File #BX date/time to DX:CX
2159	Get Extended error code (DOS version code:BX)
215a	Create temp file (attr. CL), pathname at DS:DX
215b	Create new file (name at DS:DX, attr. CL)
215c00	Lock file access for file #BX starting at offs. CXDX for SIDI bytes
215c01	Unlock file access for file #BX starting at offs. CXDX for SIDI bytes
2162	Get PSP address
25		Abs. disk read (DOS) of drive AL: CX sectors from sec. DX to DS:BX
26		Abs. disk write (DOS) CX sectors from sec. DX to drive AL: from DS:BX 
27	Terminate and stay resident (return past CS:DX to DOS)
28	Idle loop
29	???
2a	???
2f	Print spool control (function AL) (Ds:Dx=DS:DX)
