Note: this is the default location for older versions; see INT 50“DESQview”
for details of interrupt relocation
SeeAlso: INT 50“DESQview”,INT 54“DESQview”,INT 58“DESQview”
SeeAlso: INT 50“IBM 3278”,INT 54“IBM 3278”
SeeAlso: INT 50“OS/2”,INT 54“OS/2”
BX = function 0000h ??? AX = ??? Return: AX = ??? 0004h ??? 0009h ??? 0015h AX = ??? DX = ??? 0017h
Return: ??? Notes: the installation check consists of looking for the signature “WEBCO”
immediately prior to the interrupt handler the above calls are made by Show Partner F/X v3.6 (see INT 10/AH=53h)
Note: this is the default location for older versions; see INT 50“DESQview”
for details of interrupt relocation
SeeAlso: INT 50“DESQview”,INT 58“DESQview”
SeeAlso: INT 51“IBM 3278”
SeeAlso: INT 51“OS/2”
Note: this is the default, but other INTs may be used (see INT 50“DESQview”) SeeAlso: INT 50“DESQview”,INT 70
SeeAlso: INT 08
===== INT 59 ====:
Note: this is the default, but other INTs may be used (see INT 50“DESQview”) SeeAlso: INT 50“DESQview”,INT 71
SeeAlso: INT 09 ———-59———————————
DS:DX -> block of 5 array pointers
Return: CF set on error
AX = error code CF clear if successful AX = return code
Note: INT 59 is the means by which GSS*CGI language bindings communicate with
GSS*CGI device drivers and the GSS*CGI device driver controller. also used by the IBM Graphic Development Toolkit
Note: this is the default, but other INTs may be used (see INT 50“DESQview”) SeeAlso: INT 50“DESQview”,INT 72
SeeAlso: INT 0A
???
Note: this is the default, but other INTs may be used (see INT 50“DESQview”) SeeAlso: INT50“DESQview”,INT 73
SeeAlso: INT 0B
ES:BX -> Network Control Block (see below)
Return: AL = status (see INT 5C) SeeAlso: INT 5C
Format of Network Control Block Offset Size Description 00h BYTE ncb_command (see below) 01h BYTE ncb_retcode 02h BYTE ncb_lsn 03h BYTE ncb_num 04h DWORD → ncb_buffer 08h WORD ncb_length 0Ah 16 BYTEs ncb_callname 1Ah 16 BYTEs ncb_name 2Ah BYTE ncb_rto 2Bh BYTE ncb_sto 2Ch DWORD → ncb_post /* int (far *ncb_post)(); */ 30h BYTE ncb_lana_num 31h BYTE ncb_cmd_cplt 32h DWORD → ncb_vname 36h BYTE ncb_vnamelen 37h 9 BYTEs ncb_reserve Note: fields 00h-31h are the same as for a standard NetBIOS NCB (see INT 5C)
Values for ncb_command field same as for INT 5C, except
70h send net Break
Note: used by MS-NET for executing network commands SeeAlso: INT 5C“NetBIOS”
ES:BX -> Transfer Control Block
Return: AL - status Note: this software interface allows multiple protocols/software packages
to access a BICC 411x network card
Format of Transfer Control Block: Offset Type Description 00h BYTE command code
B3h Status F2h Activate F3h Deactivate F4h Send Data
01h BYTE command identity 02h BYTE virtual circuit ID 03h WORD buffer length 05h DWORD buffer pointer 09h BYTE expedited data flag 0Ah BYTE cancelable flag 0Bh 16 BYTEs local network address 1Bh 16 BYTEs remote network address 2Bh DWORD asynchronous notification routine 30h DWORD local network number 34h DWORD remote network number 38h BYTE call timeout 39h BYTE not used 3Ah 8 BYTEs reserved 42h BYTE command code extension 43h WORD Blue Book MAC type
Note: this is the default, but other INTs may be used (see INT 50“DESQview”) SeeAlso: INT 50“DESQview”,INT 74
SeeAlso: INT 0C
ES:BX -> network control block (NCB) (see below)
Return: AL = status
00h successful 01h bad buffer size 03h invalid NETBIOS command 05h timeout 06h receive buffer too small 07h No-ACK command failed 08h bad session number 09h LAN card out of memory 0Ah session closed 0Bh command has been cancelled 0Dh name already exists 0Eh local name table full 0Fh name still in use, can't delete 11h local session table full 12h remote PC not listening 13h bad NCB_NUM field 14h no answer to CALL or no such remote 15h name not in local name table 16h duplicate name 17h bad delete 18h abnormal end 19h name error, multiple identical names in use 1Ah bad packet 21h network card busy 22h too many commands queued 23h bad LAN card number 24h command finished while cancelling 26h command can't be cancelled 30h name defined by another process (OS/2) 34h NetBIOS environment not defined, must issue reset (OS/2) 35h required operating system resources exhausted (OS/2) 36h maximum applications exceeded (OS/2) 37h no SAPs available for NetBIOS (OS/2) 38h requested resources not available (OS/2) 40h Lana System Error 41h Lana Remote Hot Carrier 42h Lana Local Hot Carrier 43h Lana No Carrier Detected 44h unusual network condition 45h-4Fh hardware error 50h adapter malfunction FFh NetBIOS busy (command pending)
Note: Sytek PCnet card uses DMA 3. SeeAlso: INT 2A/AH=01h,INT 2A/AH=04h,INT 5B
Format of Network Control Block: Offset Size Description 00h BYTE command code (see below) 01h BYTE return code 02h BYTE local session number (LSN) 03h BYTE “ncb_num” datagram table entry from ADD NAME 04h DWORD → I/O buffer 08h WORD length of data in buffer 0Ah 16 BYTEs remote system to call 1Ah 16 BYTEs network name of local machine 2Ah BYTE receive timeout in 1/2 seconds 2Bh BYTE send timeout in 1/2 seconds 2Ch DWORD → FAR post handler /* int (far *ncb_post)(); */ 30h BYTE network adapter number on which to execute command
00h-03h IBM NetBIOS specs F0h-FFh Eicon NABios interface (see also INT 7B"Eicon")
31h BYTE command completion code (see returned status above) 32h 14 BYTEs reserved for network card
Values for command code field in NCB (or with 80h for non-waiting call):
10h start session with NCB_NAME name (call) 11h listen for call 12h end session with NCB_NAME name (hangup) 14h send data via NCB_LSN 15h receive data from a session 16h receive data from any session 17h send multiple data buffers 20h send unACKed message (datagram) 21h receive datagram 22h send broadcast datagram 23h receive broadcast datagram 30h add name to name table 31h delete name from name table 32h reset adapter card and tables 33h get adapter status (see structure "astatus" below) 34h status of all sessions for name (see structure "sstatus" below) 35h cancel 36h add group name to name table 48h send data and receive data (LAN Manager NETBEUI.DOS) 70h unlink from IBM remote program (no F0h function) 71h send data without ACK 72h send multiple buffers without ACK 72h UngermannBass Register (conflicts with above function) 73h UngermannBass SendNmc 74h UngermannBass Callniu 75h UngermannBass Calladdr 76h UngermannBass Listenaddr 77h UngermannBass SendPkt 78h find name 78h UngermannBass RcvPkt (conflicts with above function) 79h token-ring protocol trace 79h UngermannBass SendAttn (conflicts with above function) 7Ah UngermannBass RcvAttn 7Bh UngermannBass Listenniu 7Ch UngermannBass RcvRaw 7Dh UngermannBass SendNmc2
Format of structure “name”: Offset Size Description 00h 16 BYTEs “nm_name” symbolic name 10h BYTE “nm_num” number associated with name 11h BYTE nm_status
Format of structure “astatus”: Offset Size Description 00h 6 BYTEs as_id 06h BYTE as_jumpers 07h BYTE as_post 08h BYTE as_major 09h BYTE as_minor 0Ah WORD as_interval 0Ch WORD as_crcerr 0Eh WORD as_algerr 10h WORD as_colerr 12h WORD as_abterr 14h DWORD as_tcount 18h DWORD as_rcount 1Ch WORD as_retran 1Eh WORD as_xresrc 20h 8 BYTEs as_res0 28h WORD as_ncbfree 2Ah WORD as_ncbmax 2Ch WORD as_ncbx 2Eh 4 BYTEs as_res1 32h WORD as_sespend 34h WORD as_msp 36h WORD as_sesmax 38h WORD as_bufsize 3Ah WORD as_names 3Ch 16 name structures as_name
Format of structure “sstatus”: Offset Size Description 00h BYTE number of sessions being reported 01h BYTE number of sessions with this name 02h BYTE number of outstanding receive datagrams 03h BYTE number of outstanding ReceiveAnys 04h var session structures (see below)
Format of structure “session”: Offset Size Description 00h BYTE local session number 01h BYTE state
01h listen pending 02h call pending 03h session established 04h hangup pending 05h hangup done 06h session aborted
02h 16 BYTEs local name 12h 16 BYTEs remote name 22h BYTE number of outstanding receives 23h BYTE number of outstanding sends/chainsends
ES:BX -> Network Control Block
Note: TOPS card uses DMA 1, 3 or none.
DX:BX -> control block (see below)
Return: none Notes: this driver can use any interrupt from 5Ch to 70h
the signature 'AppleTalk' appears 16 bytes prior to the interrupt handler; this serves as the installation check
Format of AppleTalk control block: Offset Size Description 00h WORD command code
01h "AT_INIT" initialize the driver 02h "AT_KILL" 03h "AT_GETNETINFO" get current network info incl init status 04h "AT_GETCLOCKTICKS" 05h "AT_STARTTIMER" 06h "AT_RESETTIMER" 07h "AT_CANCELTIMER" 10h "LAP_INSTALL" 11h "LAP_REMOVE" 12h "LAP_WRITE" 13h "LAP_READ" 14h "LAP_CANCEL" 20h "DDP_OPENSOCKET" 21h "DDP_CLOSESOCKET" 22h "DDP_WRITE" 23h "DDP_READ" 24h "DDP_CANCEL" 30h "NBP_REGISTER" 31h "NBP_REMOVE" 32h "NBP_LOOKUP" 33h "NBP_CONFIRM" 34h "NBP_CANCEL" 35h "ZIP_GETZONELIST" 36h "ZIP_GETMYZONE" 37h "ZIP_TAKEDOWN" 38h "ZIP_BRINGUP" 40h "ATP_OPENSOCKET" 41h "ATP_CLOSESOCKET" 42h "ATP_SENDREQUEST" 43h "ATP_GETREQUEST" 44h "ATP_SENDRESPONSE" 45h "ATP_ADDRESPONSE" 46h "ATP_CANCELTRANS" 47h "ATP_CANCELRESPONSE" 48h "ATP_CANCELREQUEST" 50h "ASP_GETPARMS" 51h "ASP_CLOSESESSION" 52h "ASP_CANCEL" 53h "ASP_INIT" 54h "ASP_KILL" 55h "ASP_GETSESSION" 56h "ASP_GETREQUEST" 57h "ASP_CMDREPLY" 58h "ASP_WRTCONTINUE" 59h "ASP_WRTREPLY" 5Ah "ASP_CLOSEREPLY" 5Bh "ASP_NEWSTATUS" 5Ch "ASP_ATTENTION" 5Dh "ASP_GETSTATUS" 5Eh "ASP_OPENSESSION" 5Fh "ASP_COMMAND" 60h "ASP_WRITE" 61h "ASP_GETATTENTION" 70h "PAP_OPEN" 71h "PAP_CLOSE" 72h "PAP_READ" 73h "PAP_WRITE" 74h "PAP_STATUS" 75h "PAP_REGNAME" 76h "PAP_REMNAME" 77h "PAP_INIT" 78h "PAP_NEWSTATUS" 79h "PAP_GETNEXTJOB" 7Ah "PAP_KILL" 7Bh "PAP_CANCEL" or with the following flags 8000h start command then return 4000h wait for interrupt service to complete
02h WORD returned status
0000h success (already initialized if func 01h)
04h DWORD pointer to completion function 08h WORD network number 0Ah BYTE node ID —if general func (01h,03h), control block continues: 0Bh BYTE “inf_abridge” 0Ch WORD “inf_config” 0Eh DWORD pointer to buffer 12h WORD buffer size —if DDP function (20h-24h), control block continues: 0Bh BYTE “ddp_addr_socket” 0Ch BYTE “ddp_socket” 0Dh BYTE “ddp_type” 0Eh DWORD pointer to buffer 12h WORD buffer size 14h BYTE “ddp_chksum” —if Name Binding Protocol (30h-34h), control block continues: 0Bh BYTE “nbp_addr_socket” 0Ch WORD “nbp_toget” 0Eh DWORD pointer to buffer 12h WORD buffer size 14h BYTE “nbp_interval” 15h BYTE “nbp_retry” 16h DWORD “nbp_entptr” —if AppleTalk Transaction Protocol (42h), control block continues: 0Bh BYTE “atp_addr_socket” 0Ch WORD “atp_socket” 0Eh DWORD pointer to buffer 12h WORD buffer size 14h BYTE “atp_interval” 15h BYTE “atp_retry” 16h BYTE ATP flags
bit 5: exactly one transaction
17h BYTE “atp_seqbit” 18h BYTE transaction ID 19h 4 BYTEs ATP user bytes 1Dh BYTE number of BDS buffers 1Eh BYTE number of BDS responses 1Fh DWORD pointer to BDS buffers (see below)
Format of Name Binding Protocol Name-to-Address binding entries for NBP_LOOKUP: Offset Size Description 00h WORD “tup_address_network” 02h BYTE “tup_address_notid” 03h BYTE “tup_address_socket” 04h BYTE “tup_enum” 05h 99 BYTEs name
Format of BDS entries: Offset Size Description 00h DWORD pointer to buffer 04h WORD size of buffer 06h WORD BDS data size 08h 4 BYTEs “bds_userbytes”
ES:BX -> CCB
Return: none
Format of CCB: Offset Size Description 00h BYTE adapter 01h BYTE command code 02h BYTE return code 03h BYTE work 04h DWORD pointer to ??? 08h DWORD pointer to completion function??? 0Ch DWORD pointer to parameters???
Notes: current versions only check whether the vector is 0000h:0000h or not
future versions are supposed to have the signature "NET" in the three bytes preceding the INT 5C handler
AH = 04h AL = COM port (0 = default) CX = wait count in character times (should be at least 100)
Return: ZF set if link alive
Note: this is the default, but other INTs may be used (see INT 50“DESQview”) SeeAlso: INT 50“DESQview”,INT 75
SeeAlso: INT 0D,INT 5C“DoubleDOS”
Note: this is the default, but other INTs may be used (see INT 50“DESQview”) SeeAlso: INT 50“DESQview”,INT 76
SeeAlso: INT 0E,INT 5D“DoubleDOS”
Note: this is the default, but other INTs may be used (see INT 50“DESQview”) SeeAlso: INT 50“DESQview”,INT 77
SeeAlso: INT 0F,INT 5E“DoubleDOS”
AH = 00h AL = video mode 07h text, system manager compliant 20h 240x128 mono graphics, system manager compliant 87h text, not system manager compliant A0h 240x128 mono graphics, not system manager compliant
Note: the defaults after setting the mode to graphics are (0,0) logical
origin, full-screen clip region, (0,0) pen location, pen color 1, pixel replacement FORCE, line type and fill mask all bits set
SeeAlso: INT 0F“HP 95LX”,INT 10/AH=00h,INT 15/AX=4DD4h
AH = 01h ES:DI -> 8-byte fill mask
Note: the fill mask represents an 8×8 pixel box and is repeated as necessary
when drawing filled rectangles; it is always aligned with the byte boundaries of video memory, regardless of the actual boundaries of the rectangle
SeeAlso: AH=02h
AH = 02h ES:DI -> graphics info record (see below)
Return: DX:AX → filled graphics info record (for return to high-level langs) Format of graphics info record: Offset Size Description 00h BYTE current video mode 01h BYTE default video mode 02h WORD display width in pixels 04h WORD display height in pixels 06h WORD current pen column 08h WORD current pen row 0Ah WORD current line type 0Ch WORD current replacement rule 0Eh WORD current pen color 10h WORD current leftmost column of clip region 12h WORD current rightmost column of clip region 14h WORD current topmost row of clip region 16h WORD current bottommost row of clip region 18h WORD current column of logical origin 1Ah WORD current row of logical origin 1Ch 8 BYTEs current fill mask
AH = 03h CX = column DX = row
SeeAlso: AH=04h
AH = 04h CX = left-most column DX = top-most row SI = right-most column DI = bottom-most row
SeeAlso: AH=03h
AH = 05h AL = fill type 00h outline, using current line type and color 01h solid, using current color 02h pattern, using current fill mask and color DX,CX = row,column of other corner of rectangle
Note: the rectangle is drawn starting at the current pen position SeeAlso: AH=01h,AH=06h,AH=07h
AH = 06h DX,CX = row,column of end point
Note: the line is drawn starting at the current pen position SeeAlso: AH=05h,AH=07h ———-5F07——————————- INT 5F - HP 95LX GRAPHICS PRIMITIVES - PLOT POINT
AH = 07h DX,CX = row,column of point
Note: also sets pen position to the specified point SeeAlso: AH=06h,AH=08h,AH=0Ch ———-5F08——————————- INT 5F - HP 95LX GRAPHICS PRIMITIVES - MOVE PEN
AH = 08h DX,CX = row,column of new pen position
SeeAlso: AH=07h,AH=09h ———-5F09——————————- INT 5F - HP 95LX GRAPHICS PRIMITIVES - SET PEN COLOR
AH = 09h AL = new color (00h = white, 01h = black)
SeeAlso: AH=08h,AH=0Ah,AH=0Bh ———-5F0A——————————- INT 5F - HP 95LX GRAPHICS PRIMITIVES - SET REPLACEMENT RULE
AH = 0Ah AL = new replacement rule 00h force 01h AND 02h OR 03h XOR
SeeAlso: AH=01h,AH=09h,AH=0Bh ———-5F0B——————————- INT 5F - HP 95LX GRAPHICS PRIMITIVES - SET LINE TYPE
AH = 0Bh CX = new line type
Note: the line type specifies 16 bits which are repeated over and over while
drawing the pixels of a line
SeeAlso: AH=09h,AH=0Ah ———-5F0C——————————- INT 5F - HP 95LX GRAPHICS PRIMITIVES - GET PIXEL
AH = 0Ch DX,CX = row,column of pixel to read
Return: AX = pixel color SeeAlso: AH=07h ———-5F0D——————————- INT 5F - HP 95LX GRAPHICS PRIMITIVES - GET IMAGE
AH = 0Dh DX,CX = row,column of first corner BP,SI = row,column of second corner ES:DI -> image buffer (see below)
Note: the specified corners are included in the saved image SeeAlso: AH=0Eh
Format of image buffer: Offset Size Description 00h WORD number of planes (always 01h on HP 95LX) 02h WORD number of bits/pixel (always 01h on HP 95LX) 04h WORD image width in pixels 06h WORD image height in pixels 08h N BYTEs image data
requires (WIDTH+7)/8 * HEIGHT bytes
———-5F0E——————————- INT 5F - HP 95LX GRAPHICS PRIMITIVES - PUT IMAGE
AH = 0Eh AL = replacement rule bit 2: invert image before applying rule bits 1-0: 00 force 01 AND 10 OR 11 XOR DX,CX = row,column of top left corner ES:DI -> image buffer (see AH=0Dh)
Note: if the specified image does not fit completely on the screen, this call
does nothing
SeeAlso: AH=0Dh ———-5F0F——————————- INT 5F - HP 95LX GRAPHICS PRIMITIVES - WRITE TEXT
AH = 0Fh AL = rotate flag (if nonzero, rotate 90 degrees counter-clockwise) DX,CX = row,column of first character's top left corner ES:DI -> ASCIZ text
The “Zero Bug” virus hooks this vector.
It considers itself installed if offset 103h of the handler's segment contains the bytes “ZE”
SeeAlso: INT 32,INT 61“SEMTEX”
SeeAlso: INT 61“Adaptec”,INT 62“Adaptec”,INT 63“Adaptec”,INT 64“Adaptec”
this vector stores the first four bytes of the parameter table for hard disk 0
these vectors are used by the following Adaptec controllers:
these vectors are NOT used by the following Adaptec controllers:
supplies a number of subfunctions which perform such functions as drawing boxes and menus, and provide input line editing
SeeAlso: INT 61“Atari”
STACK: DWORD pointer to parameter block (see below) Return: STACK: unchanged
PC-IPC is a shareware TSR by Donnelly Software Engineering which allows communication between independent programs
INT 60 is the default, any interrupt vector may be used by specifying the vector on the commandline
Format of parameter block:
Offset | Size | Description |
---|---|---|
00h | WORD | caller's ID |
02h | WORD | to ID |
04h | WORD | command code (see below) |
06h | WORD | returned status * bit 0: unused * bit 1: IPC enabled * bit 2: IPC installed * bit 3: error * bit 4: message(s) available |
08h | WORD | returned error code (see below) |
0Ah | WORD | size of data |
0Ch | DWORD | pointer to data buffer |
Values of command code:
01h | “IPC_CMND_INQUIRE” | inquire current status set status field, writes WORD to data buffer containing free message space in bytes, and sets the “size” field to the number of messages waiting |
02h | “IPC_CMND_ENABLE” | reenable PC-IPC ignored unless called with the same ID that disabled PC-IPC |
03h | “IPC_CMND_DISABLE” | disable PC-IPC |
04h | “IPC_CMND_INSTALL” | reset PC-IPC |
06h | “IPC_CMND_RDATA” | read data returns first message in data buffer, sets “size” to message length and “to ID” field to sender's ID if no messages available, bit 4 of status is cleared and “size” is set to zero |
07h | “IPC_CMND_SDATA” | send data |
08h | “IPC_CMND_REQID” | require user ID create a new recognized ID and return in “caller's ID” field |
09h | “IPC_CMND_DELID” | cancel user ID delete caller's ID from pool of recognized IDs |
0Ah | “IPC_CMND_RDATAW” | read data, wait if no messages available |
0Bh | “IPC_CMND_VERS” | get PC-IPC version string representing version returned in data buffer, “size” field set to length of string |
Values for error code:
00h | no error |
01h | invalid command or parameter |
02h | only process 0 can install/reset IPC |
03h | process can not install/reset IPC |
04h | IPC is not enabled |
05h | process can not disable IPC |
06h | invalid destination process ID |
07h | invalid sending process ID |
08h | invalid data destination |
09h | no more process IDs available |
0Ah | can not relinquish that process ID |
0Bh | message space is full |
0Ch | IPC is not installed |
Notes: Arbiter may use any interrupt from 60h to 66h (parameterized)
identified by string "@ARB_API" immediately following a short jump at the interrupt handler address Arbiter makes a PC disk look like a slow disk over an SNA link to an IBM mainframe
Notes: INTRSPY will hook the first available interrupt in the range 60h-67h.
The installation check is to a) determine that the handler is an IRET instruction b) the signature 0Dh "INTRSPY vN.NN" immediately precedes the handler If INTRSPY is installed, the DWORD immediately after the IRET stores its entry point. INTRSPY is a script-driven debugger included with the book _Undocumented_DOS_.
Call INTRSPY entry point with:
AH = function 00h ??? 01h set current directory (for use in reporting) ES:DI -> counted string containing directory name (max 79 char) 02h set name of script file ES:DI -> counted string containing file name (max 79 chars) 03h set script arguments ES:DI -> counted string containing arguments (max 79 chars) 04h get directory set with function 01h ES:DI -> 80-byte buffer for directory name 05h get name of script file ES:DI -> 80-byte buffer for script filename 06h get script arguments ES:DI -> 80-byte buffer for script arguments 07h get ??? CL = 00h-15h specifies what to get ES:DI -> WORD to be set with desired value on return 08h get ??? ES:DI -> WORD to be set with returned value 09h get ??? ES:DI -> WORD to be set with returned value 0Bh store code for interrupt handler??? ES:DI -> data CX = number of bytes 0Ch ??? ES:DI -> ??? 0Dh get ??? ES:DI -> BYTE to be set with returned value 0Eh set ??? flag 0Fh clear ??? flag 10h ??? Return: AL = 04h or 05h if failed 11h ??? Return: AL = 05h if failed 12h get ??? ES:DI -> buffer Return: CX = number of bytes returned in buffer 13h ???
Return: AH = 00h
AL = status 00h successful 01h invalid function 02h ??? 03h ??? 04h ??? 05h ???
INT 60 U - PC/370 v4.2 - ???
???
Return: ??? Notes: PC/370 is an IBM 370 emulator by Donald S. Higgins
this is the default interrupt, however the documentation includes instructions for patching the system for another interrupt
SeeAlso: INT 2F/AX=7F24h,INT DC“PC/370”
SeeAlso: INT 61“JPI”
The handler for the interrupt will start with a 3-byte jump instruction, followed by the ASCIZ string “PKT DRVR” (the terminating NUL is significant).
To find the interrupt being used by the driver, an application should scan through interrupt vectors 60h to 80h (20h through FFh for v1.10+ of the specification) until it finds one with the “PKT DRVR” string.
AH values of 80h to FFh have been reserved for user-defined additions.
DI = 0100h STACK: 2 WORDs unused dummies (for calls from high level languages) DWORD pointer to event record (see below)
Return: event record filled
STACK unchanged
Note: this call will timeout after about 500ms SeeAlso: INT 15/AX=4DD4h,INT 60/DI=0101h,INT 61“HP 95LX”,INT 62“HP 95LX”
Format of event record: Offset Size Description 00h WORD event type 00h no events
01h keystroke available 02h Ctrl-Break 03h reactivation (always follows deactivation event) 04h about to deactivate (sleep) next get-event call will not return until reactivated 05h forced application termination 06h 1-2-3 bridge service request (only given to 1-2-3) 07h request to grow 08h request to shrink 09h application's alarm expired 0Ah daily chance to set an alarm 0Bh system date or time has been changed
02h WORD ASCII code page 850 translation of keystroke or grow/shrink amount in paragraphs or 0000h if error or alarm expiration data 04h BYTE scan code from BIOS 05h BYTE shift key states at time keystroke is retrieved 06h WORD LICS translation of keystroke 08h BYTE function key number (1-2-3 only) 09h DWORD pointer to 1-2-3 bridge record (see INT 60/DI=0104h) or pointer to time change structure (see below) Note: if the System Manager is waiting the conclusion of a bridge service
or grow/shrink call and the event type field is set to FFFFh on entry, the SysMgr will resume
Format of time change structure: Offset Size Description 00h WORD old year 02h BYTE old month 03h BYTE old date 04h BYTE old day 05h BYTE old hour 06h BYTE old minute 07h BYTE old second 08h BYTE old hundredth of a second 09h 9 BYTEs new time in same format as old time ———-60—-DI0101———————– INT 60 u - HP 95LX System Manager - CHECK FOR EVENT
DI = 0101h STACK: 2 WORDs unused dummies (for calls from high level languages) DWORD pointer to event record (INT 60/DI=0100h)
Return: event record filled
STACK unchanged
Note: this call returns immediately if no event is available SeeAlso: INT 60/DI=0100h ———-60—-DI0102———————– INT 60 u - HP 95LX System Manager - “SH_STATUS”
DI = 0102h STACK: 2 WORDs unused dummies (for calls from high level languages)
Return: ???
STACK unchanged
———-60—-DI0104———————– INT 60 u - HP 95LX System Manager - LOTUS 1-2-3 BRIDGE SERVICES
DI = 0104h STACK: 2 WORDs unused dummies (for calls from high level languages) DWORD pointer to bridge record (see below)
Return: ???
STACK unchanged
Format of bridge record: Offset Size Description 00h WORD function code 00h test
01h get range 02h "GETRANGE_ADDR" 03h "SETRANGE_ADDR" 04h "GETRANGE_DATA" 05h "SETRANGE_DATA" 06h recalculate 07h get cursor 08h set cursor 09h redisplay 0Ah cell type 0Bh "CALCTYPE"
02h WORD return code from 1-2-3 04h 16 BYTEs ASCII range name 14h WORD start column of range 16h WORD start row of range 18h WORD end column of range 1Ah WORD end row of range 1Ch WORD order in which data is placed in buffer 1Eh WORD buffer size 20h WORD offset within bridge record's segment of buffer for cell data ———-60—-DI0105———————– INT 60 u - HP 95LX System Manager - FLUSH KEYBOARD BUFFER
DI = 0105h STACK: 2 WORDs unused dummies (for calls from high level languages)
Return: ???
STACK unchanged
DI = 0106h STACK: 2 WORDs unused dummies (for calls from high level languages) DWORD pointer to ???
Return: ???
STACK unchanged
SeeAlso: INT 15/AX=1000h,INT 2F/AX=1680h
DI = 0107h STACK: 2 WORDs unused dummies (for calls from high level languages) DWORD pointer to ???
Return: ???
STACK unchanged
SeeAlso: INT 15/AX=4DD4h,INT 61“HP 95LX”,INT 62“HP 95LX”
DI = 0200h STACK: 2 WORDs unused dummies (for calls from high level languages) DWORD pointer to menu data (see below) DWORD pointer to ??? WORD number of items on menu??? WORD ??? DWORD pointer to ??? WORD ??? DWORD pointer to ???
Return: ???
STACK unchanged
SeeAlso: INT 15/AX=4DD4h,INT 60/DI=0201h,INT 60/DI=0203h,INT 60/DI=0205h
Format of menu data: Offset Size Description 00h 80 BYTEs first line of menu text 50h 80 BYTEs second line of menu text A0h 80 BYTEs third line of menu text F0h WORD number of keywords F2h WORD index of currently highlighted keyword or FFFFh F4h WORD single prompt on top line if nonzero F6h 20 BYTEs which line each of 20 keywords is located on 10Ah 20 BYTEs offset of each of 20 keywords within its line 11Eh 20 BYTEs length of each of 20 keywords 132h 20 BYTEs first letter of each of 20 keywords 146h 20 WORDs offsets of long prompts for each of 20 keywords ———-60—-DI0201———————–
DI = 0201h STACK: 2 WORDs unused dummies (for calls from high level languages) DWORD pointer to menu data (see INT 60/DI=0200h)
Return: ???
STACK unchanged
SeeAlso: INT 60/DI=0200h,INT 60/DI=0202h,INT 60/DI=0206h ———-60—-DI0202———————–
DI = 0202h STACK: 2 WORDs unused dummies (for calls from high level languages) DWORD pointer to menu data (see INT 60/DI=0200h)
Return: ???
STACK unchanged
SeeAlso: INT 60/DI=0200h,INT 60/DI=0201h,INT 60/DI=0203h ———-60—-DI0203———————–
DI = 0203h STACK: 2 WORDs unused dummies (for calls from high level languages) DWORD pointer to menu data (see INT 60/DI=0200h)
Return: ???
STACK unchanged
SeeAlso: INT 60/DI=0201h,INT 60/DI=0202h,INT 60/DI=0204h,INT 60/DI=0208h
DI = 0204h STACK: 2 WORDs unused dummies (for calls from high level languages) DWORD pointer to menu data (see INT 60/DI=0200h) WORD keystroke DWORD pointer to WORD to receive selection number
Return: buffer for selection number filled with index of selected menu item or
FFFFh if no final selection yet STACK unchanged
SeeAlso: INT 60/DI=0200h,INT 60/DI=0202h,INT 60/DI=0207h
DI = 0205h STACK: 2 WORDs unused dummies (for calls from high level languages) DWORD pointer to file menu structure (see below) DWORD pointer to edit record (see INT 60/DI=0400h) DWORD pointer to wildcard filespec for initial file list WORD row??? WORD column???
Return: ???
STACK unchanged
SeeAlso: INT 60/DI=0200h,INT 60/DI=0206h,INT 60/DI=0208h
Format of file menu structure: Offset Size Description 00h DWORD pointer to ASCIZ base directory name 04h DWORD pointer to ASCIZ file pattern (wildcard filespec) 08h DWORD pointer to file list workspace, at least 1024 bytes (see below) 0Ch WORD size of file list workspace in bytes 0Eh WORD starting row (-3 is topmost, 0 is first non-“reserved” line) 10h WORD starting column 12h WORD number of lines 14h WORD number of columns 16h WORD number of files displayed on each line —the remaining fields are initialized by the System Manager— 18h WORD 0000h if first edit character, else multiline 1Ah WORD number of files in file list 1Ch WORD max files workspace has room for 1Eh WORD file at top of list 20h WORD index of file to highlight 22h WORD index of file to unhighlight 24h WORD current focus (01h FMENU, 02h EDIT)
Format of file list workspace entry: Offset Size Description 00h BYTE file attributes 01h WORD file time (see INT 21/AX=5700h) 03h WORD file date (see INT 21/AX=5700h) 05h DWORD file size 09h 13 BYTEs ASCIZ filename
DI = 0206h STACK: 2 WORDs unused dummies (for calls from high level languages) DWORD pointer to file menu structure (see INT 60/DI=0205h) DWORD pointer to edit record (see INT 60/DI=0400h)
Return: ???
STACK unchanged
SeeAlso: INT 60/DI=0205h
DI = 0207h STACK: 2 WORDs unused dummies (for calls from high level languages) DWORD pointer to file menu structure (see INT 60/DI=0205h) DWORD pointer to edit record (see INT 60/DI=0400h) WORD keystroke
Return: AX = status
0000h keystroke processed, call INT 60/DI=0206h to refresh menu 0001h redisplay application area before refreshing menu 0002h user confirmed selection, filename is in edit record's buffer 0003h user aborted menu FFFBh bad filename FFFCh bad directory FFFDh bad drive FFFEh unknown keystroke FFFFh keystroke known but invalid in current context STACK unchanged
SeeAlso: INT 60/DI=0205h,INT 60/DI=0208h
DI = 0208h STACK: 2 WORDs unused dummies (for calls from high level languages) DWORD pointer to file menu structure (see INT 60/DI=0205h) DWORD pointer to edit record (see INT 60/DI=0400h)
Return: ???
STACK unchanged
SeeAlso: INT 15/AX=4DD4h,INT 60/DI=0205h,INT 60/DI=0206h
DI = 0300h STACK: 2 WORDs unused dummies (for calls from high level languages) WORD starting row (-3 is topmost, 0 is first user line) WORD starting column DWORD pointer to string WORD length of string WORD display style: 0000h normal, 0001h reverse video WORD "OSTYLE"
Return: ???
STACK unchanged
SeeAlso: INT 60/DI=0F03h,INT 60/DI=1005h
DI = 0301h STACK: 2 WORDs unused dummies (for calls from high level languages) WORD starting row (-3 is topmost, 0 is first user line) WORD starting column WORD number of rows WORD number of columns
Return: ???
STACK unchanged
SeeAlso: INT 60/DI=0302h,INT 60/DI=1005h
DI = 0302h STACK: 2 WORDs unused dummies (for calls from high level languages) WORD starting row??? WORD starting column??? WORD height of scroll region??? WORD width of scroll region??? WORD number of lines to scroll region???
Return: ???
STACK unchanged
SeeAlso: INT 60/DI=0301h
DI = 0303h STACK: 2 WORDs unused dummies (for calls from high level languages) WORD ??? WORD ??? WORD ??? WORD ??? DWORD pointer to ???
Return: ???
STACK unchanged
DI = 0304h STACK: 2 WORDs unused dummies (for calls from high level languages) DWORD pointer to ??? WORD ???
Return: ???
STACK unchanged
DI = 0305h STACK: 2 WORDs unused dummies (for calls from high level languages) WORD ??? WORD ??? DWORD pointer to ??? WORD ???
Return: ???
STACK unchanged
DI = 0307h STACK: 2 WORDs unused dummies (for calls from high level languages) WORD ??? WORD ??? WORD ???
Return: ???
STACK unchanged
DI = 0308h STACK: 2 WORDs unused dummies (for calls from high level languages)
Return: ???
STACK unchanged
———-60—-DI0309———————– INT 60 u - HP 95LX System Manager - SET SCREEN (VIDEO???) MODE
DI = 0309h STACK: 2 WORDs unused dummies (for calls from high level languages) WORD new mode
Return: ???
STACK unchanged
———-60—-DI030A———————– INT 60 u - HP 95LX System Manager - GET SCREEN (VIDEO???) MODE
DI = 030Ah STACK: 2 WORDs unused dummies (for calls from high level languages)
Return: ???
STACK unchanged
———-60—-DI030B———————– INT 60 u - HP 95LX System Manager - SET CURSOR POSITION
DI = 030Bh STACK: 2 WORDs unused dummies (for calls from high level languages) WORD row (-3 is topmost, 0 is first non-reserved line) WORD column
Return: ???
STACK unchanged
Note: cursor is hidden if the specified position is not on the physical
display
SeeAlso: INT 10/AH=02h,INT 15/AX=4DD4h,INT 61“HP 95LX”,INT 62“HP 95LX” ———-60—-DI0400———————– INT 60 u - HP 95LX System Manager - “EDIT_INIT”
DI = 0400h STACK: 2 WORDs unused dummies (for calls from high level languages) DWORD pointer to edit record (see below) DWORD pointer to string to be edited WORD initial length of string being edited WORD maximum length of edited string WORD row of edit field WORD leftmost column of edit field
Return: ???
STACK unchanged
Format of edit record: Offset Size Description 00h WORD current length of edit buffer 02h BYTE flag for special processing on first character 03h BYTE flags bit 0: tab handling 04h WORD editing in prompt window? 06h DWORD pointer to top line of prompt window message 0Ah WORD length of top line of prompt 0Ch DWORD pointer to second line of prompt window message 10h WORD length of second line of prompt 12h 80 BYTEs workspace for editing 62h 2 WORDs line array needed for multi-line editing 66h 36 BYTEs multi-line edit record (see below) 8Ah WORD displayable columns
Format of multi-line edit record: Offset Size Description 00h DWORD pointer to user-supplied edit buffer 04h WORD length of edit buffer 06h WORD current cursor position 08h WORD starting row of edit area (-3 is topmost, 0 is first user line) 0Ah WORD starting column of edit area 0Ch WORD height of edit area 0Eh WORD width of edit area 10h WORD current top row (-3 is topmost, 0 is first user line) 12h WORD number of rows displayable 14h BYTE cursor column 15h BYTE 01h if buffer has been modified 16h BYTE first displayable column (ticker fields only) 17h BYTE 01h if wordwrap enabled, FFh if ticker field 18h DWORD pointer to array of line starts (at least one bigger than edit area is high) 1Ch BYTE currently marking? 1Dh BYTE flag 1Eh WORD offset of mark start 20h WORD offset of mark end (inclusive) 22h WORD displayable columns ———-60—-DI0401———————– INT 60 u - HP 95LX System Manager - EDIT ON TOP LINE
DI = 0401h STACK: 2 WORDs unused dummies (for calls from high level languages) DWORD pointer to edit record (see INT 60/DI=0400h) DWORD pointer to string to edit WORD initial length of string being edited WORD maximum length of edited string DWORD pointer to first line of prompt WORD length of first line DWORD pointer to second line of prompt WORD length of second line
Return: ???
STACK unchanged
———-60—-DI0402———————– INT 60 u - HP 95LX System Manager - DISPLAY OR REDISPLAY EDIT FIELD
DI = 0402h STACK: 2 WORDs unused dummies (for calls from high level languages) DWORD pointer to edit record (see INT 60/DI=0400h)
Return: ???
STACK unchanged
———-60—-DI0403———————– INT 60 u - HP 95LX System Manager - LET SYSTEM MANAGER PROCESS EDITING KEYSTROK
DI = 0403h STACK: 2 WORDs unused dummies (for calls from high level languages) DWORD pointer to edit record (see INT 60/DI=0400h) WORD keystroke DWORD pointer to WORD buffer for result code
Return: result code buffer filled with 0001h if editing complete
STACK unchanged
———-60—-DI0404———————– INT 60 u - HP 95LX System Manager - “MDIT_INI”
DI = 0404h STACK: 2 WORDs unused dummies (for calls from high level languages) DWORD pointer to ??? WORD ??? WORD ??? WORD ??? WORD ??? DWORD pointer to ??? WORD ??? WORD ??? WORD ??? DWORD pointer to ???
Return: ???
STACK unchanged
———-60—-DI0405———————– INT 60 u - HP 95LX System Manager - “MDIT_DIS”
DI = 0405h STACK: 2 WORDs unused dummies (for calls from high level languages) DWORD pointer to ???
Return: ???
STACK unchanged
———-60—-DI0406———————– INT 60 u - HP 95LX System Manager - “MDIT_KEY”
DI = 0406h STACK: 2 WORDs unused dummies (for calls from high level languages) DWORD pointer to ??? WORD ???
Return: ???
STACK unchanged
———-60—-DI0407———————– INT 60 u - HP 95LX System Manager - “MDIT_FIL”
DI = 0407h STACK: 2 WORDs unused dummies (for calls from high level languages) DWORD pointer to ??? DWORD pointer to ???
Return: ???
STACK unchanged
———-60—-DI0408———————– INT 60 u - HP 95LX System Manager - “MDIT_MARK”
DI = 0408h STACK: 2 WORDs unused dummies (for calls from high level languages) DWORD pointer to ???
Return: ???
STACK unchanged
———-60—-DI0409———————– INT 60 u - HP 95LX System Manager - “MDIT_UNMARK”
DI = 0409h STACK: 2 WORDs unused dummies (for calls from high level languages) DWORD pointer to ???
Return: ???
STACK unchanged
———-60—-DI040A———————– INT 60 u - HP 95LX System Manager - “MDIT_CUTMARK”
DI = 040Ah STACK: 2 WORDs unused dummies (for calls from high level languages) DWORD pointer to ???
Return: ???
STACK unchanged
———-60—-DI040B———————– INT 60 u - HP 95LX System Manager - “MDIT_INS_STR”
DI = 040Bh STACK: 2 WORDs unused dummies (for calls from high level languages) DWORD pointer to ??? DWORD pointer to ??? WORD ???
Return: ???
STACK unchanged
SeeAlso: INT 15/AX=4DD4h,INT 61“HP 95LX”,INT 62“HP 95LX” ———-60—-DI0500———————– INT 60 u - HP 95LX System Manager - OPEN FILE
DI = 0500h STACK: 2 WORDs unused dummies (for calls from high level languages) DWORD pointer to file state record (see below) DWORD pointer to filename WORD length of filename WORD ??? WORD suppress buffering if nonzero
Return: AX = status
STACK unchanged
SeeAlso: INT 60/DI=0501h,INT 60/DI=0502h,INT 60/DI=0508h
Format of file state record: Offset Size Description 00h WORD DOS file handle 02h WORD flags bit 0: buffer contents valid
bit 1: buffer is dirty and must be written bit 2: unbuffered I/O bit 3: file is a character device
04h DWORD current DOS physical file offset (FFFFFFFFh if unknown) 08h DWORD DOS file offset of start of buffer 0Ch DWORD effective file offset as seen by caller 10h WORD number of bytes in file buffer —buffered I/O only— 12h 512 BYTEs file buffer ———-60—-DI0501———————– INT 60 u - HP 95LX System Manager - OPEN FILE IN READ-ONLY MODE
DI = 0501h STACK: 2 WORDs unused dummies (for calls from high level languages) DWORD pointer to file state record (see INT 60/DI=0500h) DWORD pointer to filename WORD length of filename WORD ??? WORD suppress buffering if nonzero
Return: AX = status
STACK unchanged
SeeAlso: INT 60/DI=0500h ———-60—-DI0502———————– INT 60 u - HP 95LX System Manager - CREATE NEW FILE
DI = 0502h STACK: 2 WORDs unused dummies (for calls from high level languages) DWORD pointer to file state record (see INT 60/DI=0500h) DWORD pointer to filename WORD length of filename WORD ??? WORD suppress buffering if nonzero
Return: AX = status
STACK unchanged
SeeAlso: INT 60/DI=0500h,INT 60/DI=0503h ———-60—-DI0503———————– INT 60 u - HP 95LX System Manager - CREATE OR TRUNCATE FILE
DI = 0503h STACK: 2 WORDs unused dummies (for calls from high level languages) DWORD pointer to file state record (see INT 60/DI=0500h) DWORD pointer to filename WORD length of filename WORD ??? WORD suppress buffering if nonzero
Return: AX = status
STACK unchanged
SeeAlso: INT 60/DI=0502h ———-60—-DI0504———————– INT 60 u - HP 95LX System Manager - READ FROM FILE
DI = 0504h STACK: 2 WORDs unused dummies (for calls from high level languages) DWORD pointer to file state record (see INT 60/DI=0500h) DWORD pointer to data buffer WORD number of bytes to read DWORD pointer to WORD in which to return actual bytes read
Return: ???
STACK unchanged
SeeAlso: INT 60/DI=0505h ———-60—-DI0505———————– INT 60 - HP 95LX System Manager - WRITE TO FILE
DI = 0505h STACK: 2 WORDs unused dummies (for calls from high level languages) DWORD pointer to file state record (see INT 60/DI=0500h) DWORD pointer to data WORD length of data
Return: AX = status
STACK unchanged
SeeAlso: INT 60/DI=0504h ———-60—-DI0506———————– INT 60 u - HP 95LX System Manager - SET FILE POSITION
DI = 0506h STACK: 2 WORDs unused dummies (for calls from high level languages) DWORD pointer to file state record (see INT 60/DI=0500h) WORD ??? WORD ???
Return: ???
STACK unchanged
SeeAlso: INT 60/DI=0507h ———-60—-DI0507———————– INT 60 u - HP 95LX System Manager - GET FILE POSITION
DI = 0507h "M_TELL" STACK: 2 WORDs unused dummies (for calls from high level languages) DWORD pointer to file state record (see INT 60/DI=0500h) DWORD pointer to DWORD buffer for file position???
Return: ???
STACK unchanged
SeeAlso: INT 60/DI=0506h ———-60—-DI0508———————– INT 60 u - HP 95LX System Manager - CLOSE FILE
DI = 0508h STACK: 2 WORDs unused dummies (for calls from high level languages) DWORD pointer to file state record (see INT 60/DI=0500h)
Return: ???
STACK unchanged
SeeAlso: INT 60/DI=0500h ———-60—-DI0509———————– INT 60 u - HP 95LX System Manager - FILE SERVICE “M_SETPAT”
DI = 0509h STACK: 2 WORDs unused dummies (for calls from high level languages) DWORD pointer to ??? DWORD pointer to ??? WORD ??? WORD ???
Return: ???
STACK unchanged
———-60—-DI050A———————– INT 60 u - HP 95LX System Manager - FILE SERVICE “M_MATCH”
DI = 050Ah STACK: 2 WORDs unused dummies (for calls from high level languages) DWORD pointer to ??? DWORD pointer to ???
Return: ???
STACK unchanged
Format of pattern match control block: Offset Size Description 00h 43 BYTEs FindFirst data block (see INT 21/AH=4Eh) 2Bh 80 BYTEs full path name 7Bh BYTE offset of last component of filename 7Ch BYTE DOS function number (4Eh or 4Fh) ———-60—-DI050B———————– INT 60 u - HP 95LX System Manager - IDENTIFY FILENAME REFERENT
DI = 050Bh STACK: 2 WORDs unused dummies (for calls from high level languages) DWORD pointer to ??? WORD ??? WORD ??? DWORD pointer to ???
Return: ???
STACK unchanged
Values returned: 0000h nonexistent 0001h file 0002h directory 0003h character device ———-60—-DI050C———————– INT 60 u - HP 95LX System Manager - DELETE FILE
DI = 050Ch "M_DELETE" STACK: 2 WORDs unused dummies (for calls from high level languages) DWORD pointer to ??? WORD ??? WORD ???
Return: ???
STACK unchanged
———-60—-DI050D———————– INT 60 u - HP 95LX System Manager - RENAME FILE
DI = 050Dh STACK: 2 WORDs unused dummies (for calls from high level languages) DWORD pointer to ??? WORD ??? WORD ??? DWORD pointer to ??? WORD ??? WORD ???
Return: ???
STACK unchanged
———-60—-DI050E———————– INT 60 u - HP 95LX System Manager - FILE SERVICE “M_GETDIR”
DI = 050Eh STACK: 2 WORDs unused dummies (for calls from high level languages) WORD ??? DWORD pointer to ??? DWORD pointer to ???
Return: ???
STACK unchanged
———-60—-DI050F———————– INT 60 u - HP 95LX System Manager - FILE SERVICE “M_SETDIR”
DI = 050Fh STACK: 2 WORDs unused dummies (for calls from high level languages) DWORD pointer to ??? WORD ???
Return: ???
STACK unchanged
———-60—-DI0510———————– INT 60 u - HP 95LX System Manager - FILE SERVICE “M_VOLUME”
DI = 0510h STACK: 2 WORDs unused dummies (for calls from high level languages) DWORD pointer to ??? DWORD pointer to ???
Return: ???
STACK unchanged
———-60—-DI0511———————– INT 60 u - HP 95LX System Manager - MAKE A SUBDIRECTORY
DI = 0511h STACK: 2 WORDs unused dummies (for calls from high level languages) DWORD pointer to ??? WORD ??? WORD ???
Return: ???
STACK unchanged
———-60—-DI0512———————– INT 60 u - HP 95LX System Manager - REMOVE A SUBDIRECTORY
DI = 0512h STACK: 2 WORDs unused dummies (for calls from high level languages) DWORD pointer to ??? WORD ??? WORD ???
Return: ???
STACK unchanged
———-60—-DI0513———————– INT 60 u - HP 95LX System Manager - GET DEFAULT DRIVE
DI = 0513h STACK: 2 WORDs unused dummies (for calls from high level languages) DWORD pointer to ??? buffer for current drive
Return: ???
STACK unchanged
———-60—-DI0514———————– INT 60 u - HP 95LX System Manager - SET DEFAULT DRIVE
DI = 0514h STACK: 2 WORDs unused dummies (for calls from high level languages) WORD new drive
Return: ???
STACK unchanged
———-60—-DI0515———————– INT 60 u - HP 95LX System Manager - FILE SERVICE “M_FDATE”
DI = 0515h STACK: 2 WORDs unused dummies (for calls from high level languages) DWORD pointer to ??? DWORD pointer to ???
Return: ???
STACK unchanged
———-60—-DI0516———————– INT 60 u - HP 95LX System Manager - FILE SERVICE “M_GET_SYSDIR”
DI = 0516h STACK: 2 WORDs unused dummies (for calls from high level languages) DWORD pointer to ???
Return: ???
STACK unchanged
———-60—-DI0517———————– INT 60 u - HP 95LX System Manager - GET FILE ATTRIBUTES
DI = 0517h STACK: 2 WORDs unused dummies (for calls from high level languages) DWORD pointer to ??? WORD ??? WORD ??? DWORD pointer to ??? buffer for file's attributes???
Return: ???
STACK unchanged
———-60—-DI0518———————– INT 60 u - HP 95LX System Manager - SET FILE ATTRIBUTES
DI = 0518h STACK: 2 WORDs unused dummies (for calls from high level languages) DWORD pointer to ??? WORD ??? WORD ??? WORD new attributes???
Return: ???
STACK unchanged
———-60—-DI0519———————– INT 60 u - HP 95LX System Manager - FILE SERVICE “M_COMMON_OPEN”
DI = 0519h STACK: 2 WORDs unused dummies (for calls from high level languages) DWORD pointer to ??? DWORD pointer to ??? WORD ??? WORD ??? WORD ??? WORD ??? WORD ???
Return: ???
STACK unchanged
———-60—-DI051A———————– INT 60 u - HP 95LX System Manager - FILE SERVICE “M_COPYDT”
DI = 051Ah STACK: 2 WORDs unused dummies (for calls from high level languages) DWORD pointer to ??? DWORD pointer to ???
Return: ???
STACK unchanged
———-60—-DI051B———————– INT 60 u - HP 95LX System Manager - FILE SERVICE “M_GETFDT”
DI = 051Bh STACK: 2 WORDs unused dummies (for calls from high level languages) DWORD pointer to ??? DWORD pointer to ???
Return: ???
STACK unchanged
———-60—-DI051C———————– INT 60 u - HP 95LX System Manager - FILE SERVICE “M_PUTFDT”
DI = 051Ch STACK: 2 WORDs unused dummies (for calls from high level languages) DWORD pointer to ??? WORD ???
Return: ???
STACK unchanged
———-60—-DI0600———————– INT 60 u - HP 95LX System Manager - PROCESS INITIALIZING
DI = 0600h STACK: 2 WORDs unused dummies (for calls from high level languages)
Return: ???
STACK unchanged
SeeAlso: INT 15/AX=4DD4h,INT 60/DI=0601h,INT 61“HP 95LX” ———-60—-DI0601———————– INT 60 u - HP 95LX System Manager - PROCESS TERMINATION
DI = 0601h STACK: 2 WORDs unused dummies (for calls from high level languages)
Return: never
STACK unchanged
SeeAlso: INT 21/AH=4Ch,INT 60/DI=0600h ———-60—-DI0602———————– INT 60 u - HP 95LX System Manager - “M_LOCK” - PREVENT TASK SWITCHES
DI = 0602h STACK: 2 WORDs unused dummies (for calls from high level languages)
Return: ???
STACK unchanged
SeeAlso: INT 15/AX=101Bh,INT 60/DI=0603h ———-60—-DI0603———————– INT 60 u - HP 95LX System Manager - “M_UNLOCK” - ALLOW TASK SWITCHES
DI = 0603h STACK: 2 WORDs unused dummies (for calls from high level languages)
Return: ???
STACK unchanged
SeeAlso: INT 15/AX=101Ch,INT 60/DI=0602h ———-60—-DI0604———————– INT 60 u - HP 95LX System Manager - “M_SPAWN”
DI = 0604h STACK: 2 WORDs unused dummies (for calls from high level languages) DWORD pointer to ??? WORD ??? WORD ??? DWORD pointer to ???
Return: ???
STACK unchanged
———-60—-DI0605———————– INT 60 u - HP 95LX System Manager - “M_APPCOUNT”
DI = 0605h STACK: 2 WORDs unused dummies (for calls from high level languages)
Return: ???
STACK unchanged
———-60—-DI0606———————– INT 60 u - HP 95LX System Manager - “M_REBOOT”
DI = 0606h STACK: 2 WORDs unused dummies (for calls from high level languages)
Return: ???
STACK unchanged
———-60—-DI0607———————– INT 60 u - HP 95LX System Manager - “M_SPAWNARG”
DI = 0607h STACK: 2 WORDs unused dummies (for calls from high level languages) DWORD pointer to ??? WORD ??? DWORD pointer to ??? WORD ???
Return: ???
STACK unchanged
———-60—-DI0608———————– INT 60 u - HP 95LX System Manager - “M_REG_APP_NAME”
DI = 0608h STACK: 2 WORDs unused dummies (for calls from high level languages) DWORD pointer to ???
Return: ???
STACK unchanged
———-60—-DI0609———————– INT 60 u - HP 95LX System Manager - “M_APP_NAME”
DI = 0609h STACK: 2 WORDs unused dummies (for calls from high level languages) DWORD pointer to ???
Return: DX:AX → ???
STACK unchanged
SeeAlso: INT 15/AX=4DD4h,INT 61“HP 95LX”,INT 62“HP 95LX” ———-60—-DI0700———————– INT 60 u - HP 95LX System Manager - OPEN CLIPBOARD
DI = 0700h STACK: 2 WORDs unused dummies (for calls from high level languages)
Return: ???
STACK unchanged
SeeAlso: INT 60/DI=0701h,INT 60/DI=0702h
Values for error code: 0000h successful FFF8h transfer request out of bounds FFF9h no such representation FFFAh no representation open FFFBh a representation is already open FFFCh representation already exists FFFDh heap allocation failure FFFEh clipboard not open FFFFh clipboard access denied ———-60—-DI0701———————– INT 60 u - HP 95LX System Manager - CLOSE CLIPBOARD
DI = 0701h STACK: 2 WORDs unused dummies (for calls from high level languages)
Return: ???
STACK unchanged
SeeAlso: INT 60/DI=0700h,INT 60/DI=0702h ———-60—-DI0702———————– INT 60 u - HP 95LX System Manager - RESET CLIPBOARD
DI = 0702h STACK: 2 WORDs unused dummies (for calls from high level languages) DWORD pointer to ???
Return: ???
STACK unchanged
SeeAlso: INT 60/DI=0700h ———-60—-DI0704———————– INT 60 u - HP 95LX System Manager - “M_NEW_REP” - START A NEW REPRESENTATION???
DI = 0704h STACK: 2 WORDs unused dummies (for calls from high level languages) DWORD pointer to ???
Return: ???
STACK unchanged
SeeAlso: INT 60/DI=0705h,INT 60/DI=0706h,INT 60/DI=0707h ———-60—-DI0705———————– INT 60 u - HP 95LX System Manager - CLIPBOARD SERVICE “M_FINI_REP”
DI = 0705h STACK: 2 WORDs unused dummies (for calls from high level languages)
Return: ???
STACK unchanged
SeeAlso: INT 60/DI=0704h ———-60—-DI0706———————– INT 60 u - HP 95LX System Manager - CLIPBOARD SERVICE “M_REP_NAME”
DI = 0706h STACK: 2 WORDs unused dummies (for calls from high level languages) WORD ??? DWORD pointer to ??? DWORD pointer to ???
Return: ???
STACK unchanged
SeeAlso: INT 60/DI=0704h,INT 60/DI=0707h ———-60—-DI0707———————– INT 60 u - HP 95LX System Manager - CLIPBOARD SERVICE “M_REP_INDEX”
DI = 0707h STACK: 2 WORDs unused dummies (for calls from high level languages) DWORD pointer to ??? DWORD pointer to ??? DWORD pointer to ???
Return: ???
STACK unchanged
SeeAlso: INT 60/DI=0704h,INT 60/DI=0706h ———-60—-DI0708———————– INT 60 u - HP 95LX System Manager - WRITE TO CLIPBOARD
DI = 0708h STACK: 2 WORDs unused dummies (for calls from high level languages) DWORD pointer to data to be written??? WORD length of data???
Return: ???
STACK unchanged
SeeAlso: INT 60/DI=0709h ———-60—-DI0709———————– INT 60 u - HP 95LX System Manager - READ FROM CLIPBOARD
DI = 0709h STACK: 2 WORDs unused dummies (for calls from high level languages) WORD ??? WORD ??? DWORD pointer to buffer for data??? WORD length of buffer???
Return: ???
STACK unchanged
SeeAlso: INT 60/DI=0708h ———-60—-DI0800———————– INT 60 u - HP 95LX System Manager - BEEP
DI = 0800h STACK: 2 WORDs unused dummies (for calls from high level languages)
Return: ???
STACK unchanged
SeeAlso: INT 60/DI=0801h,INT 60/DI=0802h,INT 60/DI=0803h ———-60—-DI0801———————– INT 60 u - HP 95LX System Manager - SOUND SERVICE “M_THUD”
DI = 0801h STACK: 2 WORDs unused dummies (for calls from high level languages)
Return: ???
STACK unchanged
SeeAlso: INT 60/DI=0800h,INT 60/DI=0802h,INT 60/DI=0803h ———-60—-DI0802———————– INT 60 u - HP 95LX System Manager - MAKE A SOUND PATTERN
DI = 0802h STACK: 2 WORDs unused dummies (for calls from high level languages) WORD pattern number (00h-06h)
Return: ???
STACK unchanged
SeeAlso: INT 60/DI=0800h,INT 60/DI=0801h,INT 60/DI=0803h ———-60—-DI0803———————– INT 60 u - HP 95LX System Manager - TURN OFF SOUND
DI = 0803h STACK: 2 WORDs unused dummies (for calls from high level languages)
Return: ???
STACK unchanged
SeeAlso: INT 60/DI=0800h,INT 60/DI=0801h,INT 60/DI=0802h ———-60—-DI0900———————– INT 60 - HP 95LX System Manager - ALLOCATE REGULAR MEMORY BLOCK
DI = 0900h STACK: 2 WORDs unused dummies (for calls from high level languages) WORD size of block in bytes
Return: AX → memory block
STACK unchanged
Note: System Manager-compliant applications are always small-model (64K code,
64K data)
SeeAlso: INT 15/AX=4DD4h,INT 60/DI=0902h,INT 60/DI=0903h ———-60—-DI0902———————– INT 60 u - HP 95LX System Manager - FREE REGULAR MEMORY BLOCK
DI = 0902h STACK: 2 WORDs unused dummies (for calls from high level languages) WORD offset of memory block???
Return: ???
STACK unchanged
Note: System Manager-compliant applications are always small-model (64K code,
64K data)
SeeAlso: INT 60/DI=0900h,INT 60/DI=0904h ———-60—-DI0903———————– INT 60 u - HP 95LX System Manager - ALLOCATE LARGE MEMORY BLOCK
DI = 0903h STACK: 2 WORDs unused dummies (for calls from high level languages) WORD size of block in bytes???
Return: AX → memory block???
STACK unchanged
SeeAlso: INT 60/DI=0900h,INT 60/DI=0904h ———-60—-DI0904———————– INT 60 u - HP 95LX System Manager - FREE LARGE MEMORY BLOCK
DI = 0904h STACK: 2 WORDs unused dummies (for calls from high level languages) WORD segment of memory block???
Return: AX → ???
STACK unchanged
SeeAlso: INT 60/DI=0902h,INT 60/DI=0903h ———-60—-DI0B00———————– INT 60 u - HP 95LX System Manager - CLOCK/CALENDAR SERVICE “M_DTINFO”
DI = 0B00h STACK: 2 WORDs unused dummies (for calls from high level languages) DWORD pointer to ???
Return: ???
STACK unchanged
———-60—-DI0B01———————– INT 60 u - HP 95LX System Manager - CLOCK/CALENDAR SERVICE “M_GETDTM”
DI = 0B01h STACK: 2 WORDs unused dummies (for calls from high level languages) DWORD pointer to ???
Return: ???
STACK unchanged
———-60—-DI0B02———————– INT 60 u - HP 95LX System Manager - CLOCK/CALENDAR SERVICE “M_SETDTM”
DI = 0B02h STACK: 2 WORDs unused dummies (for calls from high level languages) DWORD pointer to ???
Return: ???
STACK unchanged
———-60—-DI0B03———————– INT 60 u - HP 95LX System Manager - CLOCK/CALENDAR SERVICE “M_XALARM”
DI = 0B03h STACK: 2 WORDs unused dummies (for calls from high level languages) WORD ???
Return: ???
STACK unchanged
———-60—-DI0B04———————– INT 60 u - HP 95LX System Manager - CLOCK/CALENDAR SERVICE “M_ALARM”
DI = 0B04h STACK: 2 WORDs unused dummies (for calls from high level languages) DWORD pointer to alarm record??? WORD ???
Return: ???
STACK unchanged
Format of alarm record: Offset Size Description 00h BYTE hour 01h BYTE minute 02h BYTE second 03h BYTE unused padding 04h WORD rescheduling interval, in seconds 06h BYTE are seconds significant? 07h BYTE alarm sound 08h 40 BYTEs message displayed when alarm activates 30h BYTE task ID of owner 31h BYTE application's own use for sub-class 32h 4 BYTEs application's own use for private data ———-60—-DI0B05———————– INT 60 u - HP 95LX System Manager - CLOCK/CALENDAR SERVICE “M_START_SW”
DI = 0B05h STACK: 2 WORDs unused dummies (for calls from high level languages) DWORD pointer to ???
Return: ???
STACK unchanged
———-60—-DI0B06———————– INT 60 u - HP 95LX System Manager - CLOCK/CALENDAR SERVICE “M_GET_SW”
DI = 0B06h STACK: 2 WORDs unused dummies (for calls from high level languages) DWORD pointer to ??? DWORD pointer to ??? DWORD pointer to ???
Return: ???
STACK unchanged
———-60—-DI0B07———————– INT 60 u - HP 95LX System Manager - CLOCK/CALENDAR SERVICE “M_STOP_SW”
DI = 0B07h STACK: 2 WORDs unused dummies (for calls from high level languages) DWORD pointer to ???
Return: ???
STACK unchanged
———-60—-DI0B08———————– INT 60 u - HP 95LX System Manager - “M_TELLTIME” - DISPLAY TIMESTAMP
DI = 0B08h STACK: 2 WORDs unused dummies (for calls from high level languages) WORD timestamp format bits 1-0: 00 date only 01 time only 10 date and time 11 day and date bit 4: supply am/pm bit 5: supply seconds bit 6: show year bit 7: four-digit year WORD row (-3 is topmost, 0 is first non-reserved line) WORD column
Return: ???
STACK unchanged
———-60—-DI0B09———————– INT 60 u - HP 95LX System Manager - CLOCK/CALENDAR SERVICE “M_GET_SETTINGS”
DI = 0B09h STACK: 2 WORDs unused dummies (for calls from high level languages) DWORD pointer to ??? DWORD pointer to ???
Return: ???
STACK unchanged
SeeAlso: INT 60/DI=0B0Ah,INT 60/DI=0B0Fh
Format of system settings: Offset Size Description 00h WORD country code 02h WORD speaker volume (00h-03h or FFh for off) 04h WORD contrast level (00h-0Fh) 06h WORD week start (00h Sunday, 01h Monday) 08h WORD punctuation format code decimal arg thousands
00h . , , 01h , . . 02h . ; ; 03h , ; . 04h . , " " 05h , . " " 06h . ; " " 07h , ; " "
0Ah WORD two-character language code (only 5355h = “US” byte-swapped) 0Ch WORD current date format 00h dd-mmm-yy
01h dd-mmm 02h mmm-yy 03h mm/dd/yy 04h dd/mm/yy 05h dd.mm.yy 06h yy-mm-dd 07h mm/dd 08h dd/mm 09h dd.mm 0Ah mm-dd
0Eh WORD current time format 00h HH:MM:SS am/pm
01h HH:MM am/pm 02h HH:MM:SS 03h HH.MM.SS 04h HH,MM,SS 05h HHhMMmSSs 06h HH:MM 07h HH.MM 08h HH,MM 09h HHhMMm
10h WORD collating sequence 00h numbers first, 01h letters first, 02h ASCII 12h 80 BYTEs name of picture file 62h 30 BYTEs name 80h 30 BYTEs title 9Eh 28 BYTEs company name BAh WORD number of languages BCh 6 BYTEs available languages C2h 66 BYTEs language menu 104h 2 BYTEs ASCIZ date separator 106h 2 BYTEs ASCIZ time separator 108h BYTE date order 109h BYTE use 24 hour time? 10Ah 16 BYTEs currency string 11Ah WORD currency string position (00h prefix, 01h suffix) 11Ch WORD keyboard (see below) 11Eh WORD printer baud rate
00h 300, 01h 1200, 02h 2400, 03h 4800, 04h 9600, 05h 19200
120h WORD printer driver code
00h Epson FX80, 01h HP Laserjet, 02h IBM ProPrinter
122h WORD printer interface (00h COM1, 01h COM2, 02h IR, 03h LPT1) 124h WORD system manager interrupt (60h by default) 126h WORD code page (01h CP850, 02h CP437) 128h WORD active exit key 12Ah WORD active menu key 12Ch WORD active CHAR key toggle 12Eh 6 BYTEs alarm
Values for keyboard:
0001h Belgium 0002h French Canadian 0004h Denmark 0008h Finland 0010h French 0020h Finland 0040h Italy 0080h Netherlands 0100h Norway 0200h Portugal 0400h Spain 0800h Sweden 1000h Swiss French 2000h Swiss German 4000h United Kingdom 8000h USA
———-60—-DI0B0A———————– INT 60 u - HP 95LX System Manager - CLOCK/CALENDAR SERVICE “M_SET_SETTINGS”
DI = 0B0Ah STACK: 2 WORDs unused dummies (for calls from high level languages) DWORD pointer to ??? DWORD pointer to ???
Return: ???
STACK unchanged
SeeAlso: INT 60/DI=0B09h ———-60—-DI0B0B———————– INT 60 u - HP 95LX System Manager - CLOCK/CALENDAR SERVICE “M_START_TIMER”
DI = 0B0Bh STACK: 2 WORDs unused dummies (for calls from high level languages) DWORD pointer to ???
Return: ???
STACK unchanged
SeeAlso: INT 60/DI=0B0Ch,INT 60/DI=0B0Dh ———-60—-DI0B0C———————– INT 60 u - HP 95LX System Manager - CLOCK/CALENDAR SERVICE “M_STOP_TIMER”
DI = 0B0Ch STACK: 2 WORDs unused dummies (for calls from high level languages) DWORD pointer to ???
Return: ???
STACK unchanged
SeeAlso: INT 60/DI=0B0Bh,INT 60/DI=0B0Dh ———-60—-DI0B0D———————– INT 60 u - HP 95LX System Manager - CLOCK/CALENDAR SERVICE “M_GET_TIMER”
DI = 0B0Dh STACK: 2 WORDs unused dummies (for calls from high level languages) DWORD pointer to ??? DWORD pointer to ??? DWORD pointer to ???
Return: ???
STACK unchanged
SeeAlso: INT 60/DI=0B0Bh,INT 60/DI=0B0Ch ———-60—-DI0B0E———————– INT 60 u - HP 95LX System Manager - CLOCK/CALENDAR SERVICE “M_TELL_ANYTIME”
DI = 0B0Eh STACK: 2 WORDs unused dummies (for calls from high level languages) WORD ??? WORD ??? WORD ??? DWORD pointer to ??? DWORD pointer to ???
Return: DX:AX → ???
STACK unchanged
———-60—-DI0B0F———————– INT 60 u - HP 95LX System Manager - CLOCK/CALENDAR SERVCE “M_GET_SETTINGS_ADDR”
DI = 0B0Fh STACK: 2 WORDs unused dummies (for calls from high level languages)
Return: DX:AX → system settings record (see INT 60/DI=0B09h)
STACK unchanged
SeeAlso: INT 60/DI=0B09h ———-60—-DI0B10———————– INT 60 u - HP 95LX System Manager - PARSE DATE SPECIFICATION
DI = 0B10h STACK: 2 WORDs unused dummies (for calls from high level languages) WORD ??? DWORD pointer to ??? DWORD pointer to ???
Return: ???
STACK unchanged
———-60—-DI0B11———————– INT 60 u - HP 95LX System Manager - PARSE TIME SPECIFICATION
DI = 0B11h STACK: 2 WORDs unused dummies (for calls from high level languages) WORD ??? DWORD pointer to ??? DWORD pointer to ???
Return: ???
STACK unchanged
———-60—-DI0B12———————– INT 60 u - HP 95LX System Manager - SET DATE PARSING RULE
DI = 0B12h STACK: 2 WORDs unused dummies (for calls from high level languages) WORD new parsing rule 01h day-month-year 02h month-day-year 03h year-month-day 04h "DMYO" 05h "MDYO" OR with 08h to get any year
Return: ???
STACK unchanged
SeeAlso: INT 60/DI=0B13h ———-60—-DI0B13———————– INT 60 u - HP 95LX System Manager - SET TIME PARSING RULE
DI = 0B13h STACK: 2 WORDs unused dummies (for calls from high level languages) WORD new parsing rule 01h HH:MM:SS (am/pm) 02h HH:MM:SS (24hr) 03h HHMM:SS (24hr) 04h HH:MM:SS.hh (24hr) 05h HH:MM (am/pm) 06h HH:MM (24hr) 07h HHMM (24hr)
Return: ???
STACK unchanged
SeeAlso: INT 60/DI=0B12h ———-60—-DI0B14———————– INT 60 u - HP 95LX System Manager - CLOCK/CALENDAR SERVICE “M_POST_TIME”
DI = 0B14h STACK: 2 WORDs unused dummies (for calls from high level languages)
Return: ???
STACK unchanged
———-60—-DI0B15———————– INT 60 u - HP 95LX System Manager - CLOCK/CALENDAR SERVICE “M_DAY_TRIGGER”
DI = 0B15h STACK: 2 WORDs unused dummies (for calls from high level languages) WORD ???
Return: ???
STACK unchanged
SeeAlso: INT 15/AX=4DD4h,INT 61“HP 95LX”,INT 62“HP 95LX” ———-60—-DI0C00———————– INT 60 u - HP 95LX System Manager - OPEN PRINTER
DI = 0C00h STACK: 2 WORDs unused dummies (for calls from high level languages)
Return: ???
STACK unchanged
SeeAlso: INT 60/DI=0C01h,INT 60/DI=0C02h,INT 60/DI=0C03h ———-60—-DI0C01———————– INT 60 u - HP 95LX System Manager - CLOSE PRINTER
DI = 0C01h STACK: 2 WORDs unused dummies (for calls from high level languages)
Return: ???
STACK unchanged
Note: relinquishes control of printer SeeAlso: INT 60/DI=0C00h ———-60—-DI0C02———————– INT 60 u - HP 95LX System Manager - WRITE TO PRINTER
DI = 0C02h STACK: 2 WORDs unused dummies (for calls from high level languages) DWORD pointer to data to be written WORD length of data
Return: ???
STACK unchanged
SeeAlso: INT 60/DI=0C00h ———-60—-DI0C03———————– INT 60 u - HP 95LX System Manager - INITIALIZE PRINTER
DI = 0C03h STACK: 2 WORDs unused dummies (for calls from high level languages)
Return: ???
STACK unchanged
SeeAlso: INT 60/DI=0C00h ———-60—-DI0C04———————– INT 60 u - HP 95LX System Manager - “M_TRANS_PRINTER”
DI = 0C04h STACK: 2 WORDs unused dummies (for calls from high level languages) WORD ??? DWORD pointer to ???
Return: ???
STACK unchanged
———-60—-DI0C05———————– INT 60 u - HP 95LX System Manager - “M_FALL_PRINTER”
DI = 0C05h STACK: 2 WORDs unused dummies (for calls from high level languages) WORD ??? DWORD pointer to ???
Return: ???
STACK unchanged
SeeAlso: INT 15/AX=4DD4h,INT 61“HP 95LX”,INT 62“HP 95LX” ———-60—-DI0E00———————– INT 60 u - HP 95LX System Manager - COMMUNICATIONS SERVICE “M_COMM_INIT”
DI = 0E00h STACK: 2 WORDs unused dummies (for calls from high level languages) DWORD pointer to ???
Return: ???
STACK unchanged
SeeAlso: INT 60/DI=0E01h,INT 60/DI=0E02h
Values for error code: 0000h successful FFF1h “E_BUSY” FFF2h timeout FFF3h framing error FFF4h parity error FFF5h overrun error FFF6h “E_EMPTY” FFF7h “E_CONECT” FFF8h not open FFF9h out of memory FFFAh buffer overflow FFFBh “E_NOFIT” FFFCh unsupported FFFDh “E_IVOPR” FFFEh “E_IVCHN” FFFFh “E_REOPEN” ———-60—-DI0E01———————– INT 60 u - HP 95LX System Manager - OPEN COMMUNICATIONS CHANNEL
DI = 0E01h STACK: 2 WORDs unused dummies (for calls from high level languages) DWORD pointer to WORD buffer for comm channel handle WORD communications line number (01h-04h)
Return: ???
STACK unchanged
SeeAlso: INT 60/DI=0E00h,INT 60/DI=0E02h ———-60—-DI0E02———————– INT 60 u - HP 95LX System Manager - CLOSE COMMUNICATIONS CHANNEL
DI = 0E02h STACK: 2 WORDs unused dummies (for calls from high level languages) WORD comm channel handle
Return: ???
STACK unchanged
SeeAlso: INT 60/DI=0E00h,INT 60/DI=0E01h ———-60—-DI0E03———————– INT 60 u - HP 95LX System Manager - “M_COMM_GETMDM”
DI = 0E03h STACK: 2 WORDs unused dummies (for calls from high level languages) WORD ???
Return: ???
STACK unchanged
———-60—-DI0E04———————– INT 60 u - HP 95LX System Manager - “M_COMM_ANSWER”
DI = 0E04h STACK: 2 WORDs unused dummies (for calls from high level languages) WORD ??? WORD ???
Return: ???
STACK unchanged
———-60—-DI0E05———————– INT 60 u - HP 95LX System Manager - “M_COMM_DIAL”
DI = 0E05h STACK: 2 WORDs unused dummies (for calls from high level languages) WORD ??? DWORD pointer to ???
Return: ???
STACK unchanged
———-60—-DI0E06———————– INT 60 u - HP 95LX System Manager - RESET COMMUNICATIONS CHANNEL
DI = 0E06h STACK: 2 WORDs unused dummies (for calls from high level languages) WORD comm channel handle WORD reset options bit 0: reset line bit 1: flush transmit buffer bit 2: flush receive buffer bit 3: reset modem bit 4: reset receiver's ^S state bit 5: reset transmitter's ^S state
Return: ???
STACK unchanged
———-60—-DI0E07———————– INT 60 u - HP 95LX System Manager - “M_COMM_HANGUP”
DI = 0E07h STACK: 2 WORDs unused dummies (for calls from high level languages) WORD ???
Return: ???
STACK unchanged
———-60—-DI0E08———————– INT 60 u - HP 95LX System Manager - SEND DATA OVER COMM CHANNEL
DI = 0E08h STACK: 2 WORDs unused dummies (for calls from high level languages) WORD comm channel handle DWORD pointer to data to be sent WORD option flags bit 0: send partial buffer bit 1: turn on receiver after sending DWORD pointer to WORD containing length of data to be sent
Return: length WORD updated to contain number of bytes actually sent???
STACK unchanged
SeeAlso: INT 60/DI=0E09h,INT 60/DI=0E0Bh ———-60—-DI0E09———————– INT 60 u - HP 95LX System Manager - QUERY COMM CHANNEL TRANSMIT QUEUE
DI = 0E09h STACK: 2 WORDs unused dummies (for calls from high level languages) WORD ??? DWORD pointer to ??? WORD DWORD pointer to ??? WORD
Return: ???
STACK unchanged
SeeAlso: INT 60/DI=0E0Ah ———-60—-DI0E0A———————– INT 60 u - HP 95LX System Manager - QUERY COMM CHANNEL RECEIVE QUEUE
DI = 0E0Ah STACK: 2 WORDs unused dummies (for calls from high level languages) WORD comm channel handle DWORD pointer to WORD to get receive buffer size DWORD pointer to WORD to get free bytes in receive buffer
Return: ???
STACK unchanged
SeeAlso: INT 60/DI=0E09h,INT 60/DI=0E0Bh ———-60—-DI0E0B———————– INT 60 u - HP 95LX System Manager - RECEIVE DATA FROM COMM CHANNEL
DI = 0E0Bh STACK: 2 WORDs unused dummies (for calls from high level languages) WORD comm channel handle DWORD pointer to data buffer DWORD pointer to WORD (input) length of data buffer (output) number of bytes received
Return: ???
STACK unchanged
SeeAlso: INT 60/DI=0E08h,INT 60/DI=0E0Ah ———-60—-DI0E0C———————– INT 60 u - HP 95LX System Manager - “M_COMM_HAZCMD”
DI = 0E0Ch STACK: 2 WORDs unused dummies (for calls from high level languages) WORD ??? DWORD pointer to ??? WORD ???
Return: ???
STACK unchanged
———-60—-DI0E0D———————– INT 60 u - HP 95LX System Manager - “M_COMM_COMAND”
DI = 0E0Dh STACK: 2 WORDs unused dummies (for calls from high level languages) WORD ??? DWORD pointer to ??? WORD ???
Return: ???
STACK unchanged
———-60—-DI0E0E———————– INT 60 u - HP 95LX System Manager - “M_COMM_BREAK”
DI = 0E0Eh STACK: 2 WORDs unused dummies (for calls from high level languages) WORD ??? WORD ???
Return: ???
STACK unchanged
———-60—-DI0E0F———————– INT 60 u - HP 95LX System Manager - “M_COMM_FRCXON”
DI = 0E0Fh STACK: 2 WORDs unused dummies (for calls from high level languages) WORD ???
Return: ???
STACK unchanged
———-60—-DI0E10———————– INT 60 u - HP 95LX System Manager - “M_COMM_FRCXOF”
DI = 0E10h STACK: 2 WORDs unused dummies (for calls from high level languages) WORD ???
Return: ???
STACK unchanged
———-60—-DI0E11———————– INT 60 u - HP 95LX System Manager - “M_COMM_SETDTR”
DI = 0E11h STACK: 2 WORDs unused dummies (for calls from high level languages) WORD ??? WORD ???
Return: ???
STACK unchanged
———-60—-DI0E12———————– INT 60 u - HP 95LX System Manager - “M_COMM_XMITNG”
DI = 0E12h STACK: 2 WORDs unused dummies (for calls from high level languages) WORD ???
Return: ???
STACK unchanged
———-60—-DI0E13———————– INT 60 u - HP 95LX System Manager - “M_COMM_STATUS”
DI = 0E13h STACK: 2 WORDs unused dummies (for calls from high level languages) WORD ???
Return: ???
STACK unchanged
———-60—-DI0E14———————– INT 60 u - HP 95LX System Manager - SET COMMUNICATIONS SETTINGS
DI = 0E14h STACK: 2 WORDs unused dummies (for calls from high level languages) WORD comm channel handle DWORD pointer to comm settings (see below)
Return: ???
STACK unchanged
SeeAlso: INT 60/DI=0E15h
Format of comm settings: Offset Size Description 00h BYTE dial type ('T' tone, 'P' pulse) 01h WORD baud rate divisor (115200/baud_rate) 03h BYTE parity (00h none, 08h odd, 18h even, 28h mark, 38h space) 04h BYTE stop bits (00h one, 04h two) 05h BYTE data bits - 5 06h BYTE software handshake 01h none, 02h XOFF/XON, 04h XOFF/any, 08h ENQ/ACK 07h BYTE infrared (01h off, 02h on) 08h BYTE duplex (01h half, 02h full) 09h BYTE echo (01h echo, 02h no echo) ———-60—-DI0E15———————– INT 60 u - HP 95LX System Manager - GET COMMUNICATIONS SETTINGS
DI = 0E15h STACK: 2 WORDs unused dummies (for calls from high level languages) WORD ??? DWORD pointer to buffer for settings (see INT 60/DI=0E14h)
Return: ???
STACK unchanged
SeeAlso: INT 60/DI=0E14h ———-60—-DI0E16———————– INT 60 u - HP 95LX System Manager - “M_COMM_CNFGUR”
DI = 0E16h STACK: 2 WORDs unused dummies (for calls from high level languages) WORD ??? WORD ??? WORD ??? WORD ??? WORD ???
Return: ???
STACK unchanged
———-60—-DI0E17———————– INT 60 u - HP 95LX System Manager - “M_COMM_QRYERR”
DI = 0E17h STACK: 2 WORDs unused dummies (for calls from high level languages) WORD ???
Return: ???
STACK unchanged
SeeAlso: INT 15/AX=4DD4h,INT 61“HP 95LX”,INT 62“HP 95LX” ———-60—-DI0F00———————– INT 60 u - HP 95LX System Manager - “M_ERRMSG”
DI = 0F00h STACK: 2 WORDs unused dummies (for calls from high level languages) WORD ??? DWORD pointer to ??? WORD ??? DWORD pointer to ???
Return: ???
STACK unchanged
———-60—-DI0F01———————– INT 60 u - HP 95LX System Manager - DRAW STANDARD TITLE BOX
DI = 0F01h STACK: 2 WORDs unused dummies (for calls from high level languages) DWORD pointer to ASCIZ title string
Return: ???
STACK unchanged
———-60—-DI0F02———————– INT 60 u - HP 95LX System Manager - “SHOWNAME”
DI = 0F02h STACK: 2 WORDs unused dummies (for calls from high level languages) DWORD pointer to ???
Return: ???
STACK unchanged
———-60—-DI0F03———————– INT 60 u - HP 95LX System Manager - DISPLAY TWO-LINE MESSAGE BOX
DI = 0F03h STACK: 2 WORDs unused dummies (for calls from high level languages) DWORD pointer to first line of message WORD length of first line DWORD pointer to second line of message WORD length of second line
Return: ???
STACK unchanged
SeeAlso: INT 60/DI=0300h,INT 60/DI=0F04h,INT 60/DI=0F09h ———-60—-DI0F04———————– INT 60 u - HP 95LX System Manager - REMOVE MESSAGE BOX
DI = 0F04h STACK: 2 WORDs unused dummies (for calls from high level languages)
Return: ???
STACK unchanged
SeeAlso: INT 60/DI=0F03h,INT 60/DI=0F09h ———-60—-DI0F05———————– INT 60 u - HP 95LX System Manager - “M_COM_TIMER_ADDR”
DI = 0F05h STACK: 2 WORDs unused dummies (for calls from high level languages)
Return: DX:AX → ???
STACK unchanged
———-60—-DI0F06———————– INT 60 u - HP 95LX System Manager - “M_COM_TIMER_COUNT_ADDR”
DI = 0F06h STACK: 2 WORDs unused dummies (for calls from high level languages)
Return: DX:AX → ???
STACK unchanged
———-60—-DI0F07———————– INT 60 u - HP 95LX System Manager - “M_SYS_RSRC_ADDR”
DI = 0F07h STACK: 2 WORDs unused dummies (for calls from high level languages)
Return: DX:AX → ???
STACK unchanged
———-60—-DI0F08———————– INT 60 u - HP 95LX System Manager - “M_BIOS_OUTSTR”
DI = 0F08h STACK: 2 WORDs unused dummies (for calls from high level languages) ???
Return: ???
STACK unchanged
———-60—-DI0F09———————– INT 60 u - HP 95LX System Manager - DISPLAY THREE-LINE MESSAGE BOX
DI = 0F09h STACK: 2 WORDs unused dummies (for calls from high level languages) DWORD pointer to first line of message WORD length of first line DWORD pointer to second line of message WORD length of second line DWORD pointer to third line of message WORD length of third line
Return: ???
STACK unchanged
SeeAlso: INT 60/DI=0F03h,INT 60/DI=0F04h ———-60—-DI0F0A———————– INT 60 u - HP 95LX System Manager - DISABLE MACROS
DI = 0F0Ah STACK: 2 WORDs unused dummies (for calls from high level languages)
Return: ???
STACK unchanged
SeeAlso: INT 60/DI=0F0Bh ———-60—-DI0F0B———————– INT 60 u - HP 95LX System Manager - ENABLE MACROS
DI = 0F0Bh STACK: 2 WORDs unused dummies (for calls from high level languages)
Return: ???
STACK unchanged
SeeAlso: INT 60/DI=0F0Ah ———-60—-DI0F0C———————– INT 60 u - HP 95LX System Manager - “M_DATE_TIME_SEPS”
DI = 0F0Ch STACK: 2 WORDs unused dummies (for calls from high level languages) ???
Return: ???
STACK unchanged
———-60—-DI0F0D———————– INT 60 u - HP 95LX System Manager - “M_FORM_FT”
DI = 0F0Dh STACK: 2 WORDs unused dummies (for calls from high level languages) DWORD pointer to ???
Return: DX:AX → ???
STACK unchanged
———-60—-DI0F0E———————– INT 60 u - HP 95LX System Manager - “M_RAM_IV_INFO”
DI = 0F0Eh STACK: 2 WORDs unused dummies (for calls from high level languages) DWORD pointer to ???
Return: DX:AX → ???
STACK unchanged
SeeAlso: INT 15/AX=4DD4h,INT 61“HP 95LX”,INT 62“HP 95LX” ———-60—-DI1005———————– INT 60 u - HP 95LX System Manager - “M_DIRTY_SYNC” - FORCE SCREEN UPDATE
DI = 1005h STACK: 2 WORDs unused dummies (for calls from high level languages)
Return: ???
STACK unchanged
SeeAlso: INT 10/AH=FFh,INT 60/DI=0300h,INT 60/DI=0301h ———-60—-DI1200———————– INT 60 u - HP 95LX System Manager - RESOURCE SERVICE “MAP_RESOURCE_FILE”
DI = 1200h STACK: 2 WORDs unused dummies (for calls from high level languages) DWORD pointer to ???
Return: ???
STACK unchanged
———-60—-DI1201———————– INT 60 u - HP 95LX System Manager - “GET_RESOURCE_PTR”
DI = 1201h STACK: 2 WORDs unused dummies (for calls from high level languages) WORD ???
Return: DX:AX → ???
STACK unchanged
SeeAlso: INT 15/AX=4DD4h,INT 61“HP 95LX”,INT 62“HP 95LX” ———-60—-DI1202———————– INT 60 u - HP 95LX System Manager - “GET_RSRC_TAB_PTR”
DI = 1202h STACK: 2 WORDs unused dummies (for calls from high level languages)
Return: DX:AX → ???
STACK unchanged
———-60—-DI1203———————– INT 60 u - HP 95LX System Manager - “INIT_SYSGMR_RSRCS”
DI = 1203h STACK: 2 WORDs unused dummies (for calls from high level languages)
Return: ???
STACK unchanged
———-60—-DI1300———————– INT 60 u - HP 95LX System Manager - INITIALIZE HELP SYSTEM
DI = 1300h STACK: 2 WORDs unused dummies (for calls from high level languages) DWORD pointer to ??? DWORD pointer to ??? WORD ???
Return: ???
STACK unchanged
———-60—-DI1301———————– INT 60 u - HP 95LX System Manager - DISPLAY HELP
DI = 1301h STACK: 2 WORDs unused dummies (for calls from high level languages) DWORD pointer to ???
Return: ???
STACK unchanged
———-60—-DI1302———————– INT 60 u - HP 95LX System Manager - “M_HELP_KEY”
DI = 1302h STACK: 2 WORDs unused dummies (for calls from high level languages) DWORD pointer to ??? WORD ???
Return: ???
STACK unchanged
———-60—-DI1303———————– INT 60 u - HP 95LX System Manager - “M_HELP_TERM”
DI = 1303h STACK: 2 WORDs unused dummies (for calls from high level languages) DWORD pointer to ???
Return: ???
STACK unchanged
SeeAlso: INT 15/AX=4DD4h,INT 61“HP 95LX”,INT 62“HP 95LX” ———-60—-DI1400———————– INT 60 u - HP 95LX System Manager - “M_ColInit”
DI = 1400h STACK: 2 WORDs unused dummies (for calls from high level languages)
Return: AX = ???
STACK unchanged
———-60—-DI1401———————– INT 60 u - HP 95LX System Manager - “M_ColCpStr”
DI = 1401h STACK: 2 WORDs unused dummies (for calls from high level languages) DWORD pointer to ??? WORD ??? DWORD pointer to ??? WORD ???
Return: ???
STACK unchanged
———-60—-DI1402———————– INT 60 u - HP 95LX System Manager - “M_ColLicsStr”
DI = 1402h STACK: 2 WORDs unused dummies (for calls from high level languages) ???
Return: ???
STACK unchanged
———-60—-DI1403———————– INT 60 u - HP 95LX System Manager - “M_ColLicsChar”
DI = 1403h STACK: 2 WORDs unused dummies (for calls from high level languages) ???
Return: ???
STACK unchanged
———-60—-DI1404———————– INT 60 u - HP 95LX System Manager - “M_ColToLower”
DI = 1404h STACK: 2 WORDs unused dummies (for calls from high level languages) DWORD pointer to ??? WORD ???
Return: ???
STACK unchanged
———-60—-DI1405———————– INT 60 u - HP 95LX System Manager - “M_ColCpSearch”
DI = 1405h STACK: 2 WORDs unused dummies (for calls from high level languages) DWORD pointer to ??? WORD ??? DWORD pointer to ??? WORD ??? WORD ???
Return: ???
STACK unchanged
———-60—-DI1406———————– INT 60 u - HP 95LX System Manager - “M_ColToUpper”
DI = 1406h STACK: 2 WORDs unused dummies (for calls from high level languages) DWORD pointer to ??? WORD ???
Return: ???
STACK unchanged
SeeAlso: INT 15/AX=4DD4h,INT 61“HP 95LX”,INT 62“HP 95LX” ———-60—-DI1500———————– INT 60 u - HP 95LX System Manager - “GrDispInit”
DI = 1500h STACK: 2 WORDs unused dummies (for calls from high level languages) ???
Return: ???
STACK unchanged
———-60—-DI1501———————– INT 60 u - HP 95LX System Manager - “GrDispClear”
DI = 1501h STACK: 2 WORDs unused dummies (for calls from high level languages) ???
Return: ???
STACK unchanged
———-60—-DI1502———————– INT 60 u - HP 95LX System Manager - “GrDispDot”
DI = 1502h STACK: 2 WORDs unused dummies (for calls from high level languages) ???
Return: ???
STACK unchanged
———-60—-DI1503———————– INT 60 u - HP 95LX System Manager - “GrDispDraw”
DI = 1503h STACK: 2 WORDs unused dummies (for calls from high level languages) ???
Return: ???
STACK unchanged
———-60—-DI1504———————– INT 60 u - HP 95LX System Manager - “GrDispFill”
DI = 1504h STACK: 2 WORDs unused dummies (for calls from high level languages) ???
Return: ???
STACK unchanged
———-60—-DI1505———————– INT 60 u - HP 95LX System Manager - “GrDispRead”
DI = 1505h STACK: 2 WORDs unused dummies (for calls from high level languages) ???
Return: ???
STACK unchanged
———-60—-DI1506———————– INT 60 u - HP 95LX System Manager - “GrDispString”
DI = 1506h STACK: 2 WORDs unused dummies (for calls from high level languages) ???
Return: ???
STACK unchanged
———-60—-DI1507———————– INT 60 u - HP 95LX System Manager - “GrDispPan”
DI = 1507h STACK: 2 WORDs unused dummies (for calls from high level languages) ???
Return: ???
STACK unchanged
———-60—-DI1508———————– INT 60 u - HP 95LX System Manager - “GrDispZoom”
DI = 1508h STACK: 2 WORDs unused dummies (for calls from high level languages) ???
Return: ???
STACK unchanged
———-60—-DI1509———————– INT 60 u - HP 95LX System Manager - “GrDispSave”
DI = 1509h STACK: 2 WORDs unused dummies (for calls from high level languages) ???
Return: ???
STACK unchanged
———-60—-DI150A———————– INT 60 u - HP 95LX System Manager - “GrDispRestore”
DI = 150Ah STACK: 2 WORDs unused dummies (for calls from high level languages) ???
Return: ???
STACK unchanged
———-60—-DI150B———————– INT 60 u - HP 95LX System Manager - “GrDispCorner”
DI = 150Bh STACK: 2 WORDs unused dummies (for calls from high level languages) ???
Return: ???
STACK unchanged
SeeAlso: INT 15/AX=4DD4h,INT 61“HP 95LX”,INT 62“HP 95LX”
DI = 1604h STACK: 2 WORDs unused dummies (for calls from high level languages) ???
Return: ???
STACK unchanged
SeeAlso: INT 15/AX=4DD4h,INT 61“HP 95LX”,INT 62“HP 95LX”
AH = 00h
Return: AX = 0000h profiling is off
otherwise profiling is on
Note: SYS_PROF.EXE is the TSR portion of a profiler from Micro Cornucopia #47 SeeAlso: AH=01h“SYS_PROF”,02h“SYS_PROF”
AH = 00h DS:SI -> password or a null byte
Return: AX = return code
FFFEh password is invalid FFFDh display mode is invalid else successful ES = value of the monitor register SE DI = value of the monitor register OF CH = monitor color CL = interpreter color BH = monitor start line BL = interpreter start line AH = makecode of the hotkey AL = ASCII code of the hotkey DL = status of special keys (only SHIFT, ALT, CTRL) for the hotkey (coded as for the keyboard flag at 0040h:0017h) DH = basic process number for the communication with drivers process number for the display driver, DH+1 = process number for the command driver(s) DS:SI -> MDEBUG identification table
Notes: MDEBUG is a shareware memory-resident debugging tool by Bernd Schemmer,
including a memory monitor, an interpreter, and a disassembler MDEBUG uses INT 60 by default, but may be directed to any of INT 60 through INT 67; the interrupt handler is preceded by the signature "USERINT" and is not chained if DS:SI points at a null byte, MDEBUG will prompt for a password if passwords are active; enough stack space must be provided for an INT 10h call (which MDEBUG uses while prompting for the password)
SeeAlso: AH=02h“MDEBUG”
Format of MDEBUG identification table: Offset Size Description -2 WORD entry offset 00h WORD CS of MDEBUG 02h DWORD old INT 08h vector 06h DWORD old INT 09h vector 0Ah DWORD address INT 16h routine used by MDEBUG 0Eh BYTE length of version string 0Fh N BYTEs version string
AH = 01h DS:SI -> password or a null byte
Return: AX = return code
FFFEh password is invalid FFFDh display mode is invalid else successful ES:DI point to the help registers of MDEBUG ES:DI-02h -> R0 (WORD) ES:DI -> R1 (WORD) ES:DI+02h -> R2 (WORD) ES:DI+04h -> R3 (WORD) ... ES:DI+0Eh -> R8 (WORD)
AH = 01h
Note: SYS_PROF.EXE is the TSR portion of a profiler from Micro Cornucopia #47 SeeAlso: AH=00h“SYS_PROF”,02h“SYS_PROF”
AX = 01FFh BX = handle returned by function 02h
Return: CF set on error
DH = error code (see below) CF clear if successful BX = version CH = network interface class (see below) DX = interface type (see below) CL = number DS:SI -> name AL = driver functions supported 01h basic 02h basic and extended 05h basic and high-performance 06h basic, high-performance, and extended FFh not installed
Note: the handle in BX is optional for drivers written to v1.07 or later of
the packet driver specification
Values for error code: 01h “BAD_HANDLE” invalid handle number 02h “NO_CLASS” no interfaces of the specified class found 03h “NO_TYPE” no interfaces of the specified type found 04h “NO_NUMBER” no interfaces of the specified number found 05h “BAD_TYPE” bad packet type 06h “NO_MULTICAST” interface does not support multicast messages 07h “CANT_TERMINATE” this packet driver cannot terminate 08h “BAD_MODE” invalid receiver mode 09h “NO_SPACE” insufficient space 0Ah “TYPE_INUSE” type accessed but never released 0Bh “BAD_COMMAND” bad command 0Ch “CANT_SEND” packet could not be sent 0Dh “CANT_SET” hardware address could not be changed 0Eh “BAD_ADDRESS” hardware address has a bad length or format 0Fh “CANT_RESET” could not reset interface
Values for Network Interface classes/types:
Class 01h Ethernet/IEEE 802.3 01h 3COM 3C500/3C501 02h 3COM 3C505 03h MICOM-Interlan NI5010 04h BICC Data Networks 4110 05h BICC Data Networks 4117 06h MICOM-Interlan NP600 08h Ungermann-Bass PC-NIC 09h Univation NC-516 0Ah TRW PC-2000 0Bh MICOM-Interlan NI5210 0Ch 3COM 3C503 0Dh 3COM 3C523 0Eh Western Digital WD8003 0Fh Spider Systems S4 10h Torus Frame Level 11h 10Net Communications 12h Gateway PC-bus 13h Gateway AT-bus 14h Gateway MCA-bus 15h IMC PCnic 16h IMC PCnic II 17h IMC PCnic 8-bit 18h Tigan Communications 19h Micromatic Research 1Ah Clarkson "Multiplexor" 1Bh D-Link 8-bit 1Ch D-Link 16-bit 1Dh D-Link PS/2 1Eh Research Machines 8 1Fh Research Machines 16 20h Research Machines MCA 21h Radix Microsystems EXM1 16-bit 22h Interlan Ni9210 23h Interlan Ni6510 24h Vestra LANMASTER 16-bit 25h Vestra LANMASTER 8-bit 26h Allied Telesis PC/XT/AT 27h Allied Telesis NEC PC-98 28h Allied Telesis Fujitsu FMR 29h Ungermann-Bass NIC/PS2 2Ah Tiara LANCard/E AT 2Bh Tiara LANCard/E MC 2Ch Tiara LANCard/E TP 2Dh Spider Communications SpiderComm 8 2Eh Spider Communications SpiderComm 16 2Fh AT&T Starlan NAU 30h AT&T Starlan-10 NAU 31h AT&T Ethernet NAU 32h Intel smart card 33h Xircom Packet Adapter 34h Aquila Ethernet 35h Novell NE1000 36h Novell NE2000 37h SMC PC-510 38h AT&T Fiber NAU 39h NDIS to Packet Driver adapter 3Ah Racal-InterLan ES3210 3Bh General Systems ISDN simulated Ethernet 3Ch Hewlett-Packard 3Dh IMC EtherNic-8 3Eh IMC EtherNic-16 3Fh IMC EtherNic-MCA 40h NetWorth EtherNext 41h Dataco Scanet 42h DEC DEPCA 43h C-Net 44h Gandalf LANLine 45h Apricot built-in 46h David Systems Ether-T 47h ODI to Packet Driver adapter 48h AMD Am21110-16 49h Intel ICD Network controller family 4Ah Intel ICD PCL2 4Bh Intel ICD PCL2A 4Ch AT&T LANPacer 4Dh AT&T LANPacer+ 4Eh AT&T EVB 4Fh AT&T StarStation 50h SLIP simulated ethernet 51h Racal-Interlan NIA310 52h Racal-Interlan NISE 53h Racal-Interlan NISE30 54h Racal-Interlan NI6610 55h Ethernet over IP/UDP Class 02h ProNET-10 01h Proteon p1300 02h Proteon p1800 Class 03h IEEE 802.5/ProNet-4 01h IBM Token-Ring Adapter 02h Proteon p1340 03h Proteon p1344 04h Gateway PC-bus 05h Gateway AT-bus 06h Gateway MCA-bus 39h NDIS to Packet Driver adapter 47h ODI to Packet Driver adapter Class 04h Omninet Class 05h Appletalk 01h ATALK.SYS adapter Class 06h Serial Line 01h Clarkson 8250-SLIP 02h Clarkson "Multiplexor" Class 07h StarLAN (subsumed by Ethernet class) Class 08h ARCnet 01h Datapoint RIM Class 09h AX.25 01h Ottawa PI card Class 0Ah KISS Class 0Bh IEEE 802.3 with 802.2 headers types same as for class 01h Class 0Ch FDDI with 802.2 headers 01h Western Digital 02h Frontier Technology Class 0Dh Internet X.25 01h Western Digital 02h Frontier Technology Class 0Eh N.T. LANSTAR (encapsulating DIX Ethernet) 01h NT LANSTAR/8 02h NT LANSTAR/MC Class 0Fh SLFP (MIT serial specification) 01h MERIT Class 10h PPP (Point-to-Point Protocol)
Note: class and type numbers are cleared through FTP Software
AH = 02h DS:SI -> password or a null byte ES = new value for the register SE DI = new value for the register OF CH = new monitor color if nonzero CL = new interpreter color if nonzero BH = new monitor start line if nonzero BL = new interpreter start line if nonzero AL = new ASCII code for the hotkey ('A'..'Z', 'a'..'z') if nonzero DL = new status of the special keys (SHIFT, ALT, CTRL) for the hotkey if nonzero DH = if nonzero, new basic process number for communication with the drivers (DH = multiplex number for the display driver, DH+1 = multiplex number for the command driver or drivers)
Return: AX = return code
FFFFh call not allowed FFFEh password is invalid FFFDh display mode is invalid 0000h successful, status changed else AL = error code bit 0 invalid monitor start line 1 invalid interpreter start line 2 invalid hotkey 3 invalid process number 4-7 reserved
Note: the values of the registers SE and OF are always changed, the other
values are only changed if they are valid
SeeAlso: AH=00h“MDEBUG”
AH = 02h AL = interface class BX = interface type DL = interface number DS:SI -> type CX = length of type (0000h for all packets) ES:DI -> receiver
Return: CF set on error
DH = error code (see AX=01FFh) CF clear if successful AX = handle
SeeAlso: AH=03h“FTP”
Receiver is called with:
AX = subfunction 00h get packet buffer DX = lookahead length (v1.10+) DS:SI -> lookahead buffer if DX nonzero (v1.10+) DI = error flags (class dependent) (v1.10+) Return: ES:DI -> packet buffer 0000h:0000h means throw away packet CX = size of buffer (v1.10+), may be smaller than incoming data 01h copy completed DS:SI -> buffer CX = bytes actually copied (v1.10+) BX = handle CX = buffer length
when a packet is received
AH = 02h
Note: SYS_PROF.EXE is the TSR portion of a profiler from Micro Cornucopia #47 SeeAlso: AH=00h“SYS_PROF”,01h“SYS_PROF”
AH = 03h DS:SI -> password or a null byte ES -> new value for the register SE DI -> new value for the register OF
Return: AX = return code
FFFFh call not allowed FFFEh password is invalid FFFDh display mode is invalid else successful
SeeAlso: AH=04h“MDEBUG”
AH = 03h BX = handle
Return: CF set on error
DH = error code (see AX=01FFh) CF clear if successful
SeeAlso: AH=02h“FTP”
AH = 03h
Return: ES:BX → profiling table Note: SYS_PROF.EXE is the TSR portion of a profiler from Micro Cornucopia #47 SeeAlso: AH=04h“SYS_PROF”
AH = 04h DS:SI -> buffer CX = length
Return: CF set on error
DH = error code (see AX=01FFh) CF clear if successful
Note: the buffer may be modified immediately upon return from this call SeeAlso: AH=0Bh
AH = 04h DS:SI -> password or a null byte
Return: AX = return code
FFFFh call not allowed FFFEh password is invalid FFFDh display mode is invalid else successful
SeeAlso: AH=03h“MDEBUG”,AH=07h“MDEBUG”
AH = 04h
Note: SYS_PROF.EXE is the TSR portion of a profiler from Micro Cornucopia #47 SeeAlso: AH=03h“SYS_PROF”
AH = 05h BX = handle (optional for v1.10+)
Return: CF set on error
DH = error code (see AX=01FFh) CF clear if successful
AH = 05h DS:SI -> password or a null byte BL = new value for the semaphor of MDEBUG 00h enable popup of MDEBUG else disable popup of MDEBUG
Return: AX = return code
FFFEh password is invalid FFFDh display mode is invalid else successful BL = old value of the semapor of MDEBUG BH = old value of the INT 08h semaphor (this semaphor is always reset after this function)
AH = 06h BX = handle (optional for v1.10+) ES:DI -> buffer CX = length
Return: CF set on error
DH = error code (see AX=01FFh) CF clear if successful CX = length
Note: copies the local net address associated with the handle into the buffer
AH = 06h
Return: AL = status
00h password inactive 01h password active
AH = 07h BX = handle (optional for v1.10+)
Return: CF set on error
DH = error code (see AX=01FFh) CF clear if successful
AH = 07h
Return: AL = active part for the next popup session of MDEBUG:
bit 0: the next popup session will start in the interpreter rather than in the monitor bit 1: the next popup session will sart in the online-help
SeeAlso: AH=03h“MDEBUG”,AH=04h“MDEBUG”
AH = 08h-FFh
Return: AX = FFFCh
AH = 0Ah
Return: CF set on error
DH = error code (0Bh) (see AX=01FFh) CF clear if successful ES:DI -> parameter table (see below)
Format of parameter table: Offset Size Description 00h BYTE major revision of packet driver spec driver conforms to 01h BYTE minor revision of packet driver spec 02h BYTE length of this structure in bytes 03h BYTE length of a MAC-layer address 04h WORD maximum transfer unit, including MAC headers 06h WORD buffer size for multicast addr 08h WORD number of receive buffers (one less than back-to-back MTU rcvs) 0Ah WORD number of transmit buffers 0Ch WORD interrupt number to hook for post-EOI processing, 00h=none
AH = 0Bh DS:SI -> buffer CX = length of buffer ES:DI -> FAR function to call when buffer becomes available
Return: CF set on error
DH = error code (0Bh,0Ch) (see AX=01FFh) CF clear if successful
Notes: unlike function 04h, the buffer is not available for modification as
soon as the call returns; the buffer may be queued by the driver and not processed until later this function has been dropped from v1.10+ of the specification and replaced by function 0Ch
SeeAlso: AH=04h“Packet Driver”,AH=0Ch“Packet Driver”
Completion function called with:
AX = result 00h copy OK nonzero error ES:DI -> buffer passed to INT 60/AH=0Bh call
AH = 0Ch ES:DI -> pointer to IOCB
Return: CF set on error
DH = error code (see AX=01FFh) CF clear if successful
SeeAlso: AH=04h“Packet Driver”,AH=09h“Packet Driver”
Format of IOCB: Offset Size Description 00h DWORD pointer to buffer 04h WORD length of buffer 06h BYTE flags
bit 0: packet driver is finished with IOCB bit 1: application requests upcall when driver completes
07h DWORD function address for upcall 0Bh 4 BYTEs future gather write 0Fh BYTE ??? 10h 8 BYTEs private driver workspace
Completion function called with:
ES:DI -> IOCB passed to INT 60/AH=0Ch
AH = 0Ch
Return: AL = status
00h successful ES:SI -> 6-byte station address 02h semaphore service is unavailable
AH = 0Dh ES:DI -> IOCB
Return: CF set on error
DH = error code (see AX=01FFh) CF clear if successful
SeeAlso: AH=0Ch“Packet Driver”
AH = 11h AL = drive number or 0 DX = number of seconds to wait ES:SI = Ethernet address or 0 DS:BX -> 31-byte ASCIZ semaphore name
Return: AL = status
00h successful 01h timeout 02h server not responding 03h invalid semaphore name 04h semaphore list is full 05h invalid drive ID 06h invalid Ethernet address 07h not logged in 08h write to network failed 09h semaphore already logged for this CPU
SeeAlso: AH=12h,AH=13h
AH = 12h AL = drive number or 00h ES:SI = Ethernet address or 0000h:0000h DS:BX -> 31-byte ASCIZ semaphore name
Return: AL = status (see also AH=11h)
01h semaphore currently locked by another PC
Note: unlike function 11h, this function returns immediately SeeAlso: AH=11h,AH=13h
AH = 13h AL = drive number or 00h ES:SI = Ethernet address or 0000h:0000h DS:BX -> 31-byte ASCIZ semaphore name
Return: AL = status (see also AH=11h)
1 semaphore not locked
SeeAlso: AH=11h,AH=12h
AH = 14h BX = handle (optional for v1.10+) CX = mode 01h turn off receiver 02h receive only packets sent to this interface 03h mode 2 plus broadcast packets 04h mode 3 plus limited multicast packets 05h mode 3 plus all multicast packets 06h all packets 07h raw mode for serial line only (v1.10+)
Return: CF set on error
DH = error code (01h,08h) (see AX=01FFh) CF clear if successful
SeeAlso: AH=15h
AH = 15h BX = handle (optional for v1.10+)
Return: CF set on error
DH = error code (01h) (see AX=01FFh) CF clear if successful AX = mode
SeeAlso: AH=14h
AH = 16h ES:DI -> multicast list CX = length of list in bytes
Return: CF set on error
DH = error code (06h,09h,0Eh) (see AX=01FFh) CF clear if successful
SeeAlso: AH=17h
AH = 17h
Return: CF set on error
DH = error code (06h,09h) (see AX=01FFh) CF clear if successful ES:DI -> multicast addresses (do not modify) CX = bytes of multicast addresses currently in use
SeeAlso: AH=16h
AH = 18h BX = handle (optional for v1.10+)
Return: CF set on error
DH = error code (01h) (see AX=01FFh) CF clear if successful DS:SI -> statistics (see below)
Format of statistics: Offset Size Description 00h DWORD packets in 04h DWORD packets out 08h DWORD bytes in 0Ch DWORD bytes out 10h DWORD errors in 14h DWORD errors out 18h DWORD packets dropped
AH = 19h ES:DI -> address CX = length of address
Return: CF set on error
DH = error code (0Dh,0Eh) (see AX=01FFh) CF clear if successful CX = length
AH = 1Ah DS:SI -> buffer CX = length of buffer
Return: CF set on error
DH = error code (see AX=01FFh) CF clear if successful
SeeAlso: AH=1Ch
AH = 1Bh
Return: CF set on error
DH = error code (see AX=01FFh) CF clear if successful
SeeAlso: AH=1Ch
AH = 1Ch DS:SI -> buffer CX = length of buffer DX = timeout in clock ticks
Return: CF set on error
DH = error code (see AX=01FFh) CF clear if successful CX = number of bytes transferred to buffer
SeeAlso: AH=1Ah,AH=1Bh
AH = ADh AL = function E1h ??? Return: AX = ??? E2h get configuration Return: BX:AX -> configuration data
Notes: AccessDOS is a public domain TSR developed at The Trace Research and
Development Center which provides extensions for keyboard, mouse, and sound access by the visually, hearing, or motor-control impaired. INT 60 is the default vector; AccessDOS will use the first 0000h:0000h vector in the range 60h through 66h.