Outils pour utilisateurs

Outils du site


back2root:ibm-pc-ms-dos:interrupts:old:ms_interrupt_list-51-60

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentesRévision précédente
back2root:ibm-pc-ms-dos:interrupts:old:ms_interrupt_list-51-60 [2023/01/05 04:01] – supprimée - modification externe (Unknown date) 127.0.0.1back2root:ibm-pc-ms-dos:interrupts:old:ms_interrupt_list-51-60 [2023/01/05 04:01] (Version actuelle) – créée - modification externe 127.0.0.1
Ligne 1: Ligne 1:
 +====== MSDOS - Interrupt List 51h-60h ======
 +
 +===== INT 51 ======
 +
 +
 +==== INT 51 - through 53 - IRQ1-IRQ3 relocated by DESQview ====
 +
 +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"
 +
 +==== INT 51 - through 53 - IRQ1-IRQ3 relocated by IBM 3278 emulation control program ====
 +
 +SeeAlso: INT 50"IBM 3278",INT 54"IBM 3278"
 +
 +==== INT 51 - through 53 - IRQ1-IRQ3 relocated by OS/2 v1.x ====
 +
 +SeeAlso: INT 50"OS/2",INT 54"OS/2"
 +
 +==== INT 53 - ??? - API ====
 +
 + 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)
 +
 +===== INT 54 =====
 +
 +==== INT 54 - through 57 - IRQ4-IRQ7 relocated by DESQview ====
 +
 +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"
 +
 +==== INT 54 - through 57 - IRQ4-IRQ7 relocated by IBM 3278 emulation control program ====
 +
 +SeeAlso: INT 51"IBM 3278"
 +
 +==== INT 54 - through 57 - IRQ4-IRQ7 relocated by OS/2 v1.x ====
 +
 +SeeAlso: INT 51"OS/2"
 +
 +===== INT 58 =====
 +
 +==== INT 58 - IRQ8 relocated by DESQview 2.26+ ====
 +
 +Note: this is the default, but other INTs may be used (see INT 50"DESQview")
 +SeeAlso: INT 50"DESQview",INT 70
 +
 +==== INT 58 - IRQ0 relocated by DoubleDOS ====
 +
 +SeeAlso: INT 08
 +
 +===== INT 59 ====:
 +
 +==== INT 59 - IRQ9 relocated by DESQview 2.26+ ====
 +
 +Note: this is the default, but other INTs may be used (see INT 50"DESQview")
 +SeeAlso: INT 50"DESQview",INT 71
 +
 +==== INT 59 - IRQ1 relocated by DoubleDOS ====
 +
 +SeeAlso: INT 09
 +----------59---------------------------------
 +==== INT 59 - GSS Computer Graphics Interface (GSS*CGI) ====
 +
 + 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
 +
 +===== INT 5A =====
 +
 +==== INT 5A - IRQ10 relocated by DESQview 2.26+ ====
 +
 +Note: this is the default, but other INTs may be used (see INT 50"DESQview")
 +SeeAlso: INT 50"DESQview",INT 72
 +
 +==== INT 5A - IRQ2 relocated by DoubleDOS ====
 +
 +SeeAlso: INT 0A
 +
 +==== INT 5A - Cluster adapter BIOS entry address ====
 +
 + ???
 +
 +==== INT 5B - IRQ11 relocated by DESQview 2.26+ ====
 +
 +Note: this is the default, but other INTs may be used (see INT 50"DESQview")
 +SeeAlso: INT50"DESQview",INT 73
 +
 +===== INT 5B =====
 +
 +==== INT 5B - IRQ3 relocated by DoubleDOS ====
 +
 +SeeAlso: INT 0B
 +
 +==== INT 5B - Used by cluster adapter ====
 +
 +
 +==== INT 5B - AT&T Starlan Extended NetBIOS (variable length names) ====
 +
 + 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
 +
 +==== INT 5B - Microsoft Network Transport Layer Interface ====
 +
 +Note: used by MS-NET for executing network commands
 +SeeAlso: INT 5C"NetBIOS"
 +
 +==== INT 5B - used by Alloy NTNX ====
 +
 +
 +==== INT 5B - ISOLAN Multi Protocol Software ====
 +
 + 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
 +
 +===== INT 5C =====
 +
 +==== INT 5C - IRQ12 relocated by DESQview 2.26+ ====
 +
 +Note: this is the default, but other INTs may be used (see INT 50"DESQview")
 +SeeAlso: INT 50"DESQview",INT 74
 +
 +==== INT 5C - IRQ4 relocated by DoubleDOS ====
 +
 +SeeAlso: INT 0C
 +
 +==== INT 5C - NetBIOS INTERFACE ====
 +
 + 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
 +
 +==== INT 5C - TOPS INTERFACE ====
 +
 + ES:BX -> Network Control Block
 +Note: TOPS card uses DMA 1, 3 or none.
 +
 +==== INT 5C - ATALK.SYS - AppleTalk INTERFACE ====
 +
 + 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"
 +
 +==== INT 5C - IBM 802.2 INTERFACE (LLC) ====
 +
 + 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???
 +
 +==== INT 5C - $25 LAN - INSTALLATION CHECK ====
 +
 +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
 +
 +==== INT 5C - $25 LAN - CHECK IF CONNECTION ALIVE ====
 +
 + AH = 04h
 + AL = COM port (0 = default)
 + CX = wait count in character times (should be at least 100)
 +Return: ZF set if link alive
 +
 +==== INT 5D - IRQ13 relocated by DESQview 2.26+ ====
 +
 +Note: this is the default, but other INTs may be used (see INT 50"DESQview")
 +SeeAlso: INT 50"DESQview",INT 75
 +
 +==== INT 5D - IRQ5 relocated by DoubleDOS ====
 +
 +SeeAlso: INT 0D,INT 5C"DoubleDOS"
 +
 +===== INT 5E =====
 +
 +==== INT 5E - IRQ14 relocated by DESQview 2.26+ ====
 +
 +Note: this is the default, but other INTs may be used (see INT 50"DESQview")
 +SeeAlso: INT 50"DESQview",INT 76
 +
 +==== INT 5E - IRQ6 relocated by DoubleDOS ====
 +
 +SeeAlso: INT 0E,INT 5D"DoubleDOS"
 +
 +===== INT 5F =====
 +
 +==== INT 5F - IRQ15 relocated by DESQview 2.26+ ====
 +
 +Note: this is the default, but other INTs may be used (see INT 50"DESQview")
 +SeeAlso: INT 50"DESQview",INT 77
 +
 +==== INT 5F - IRQ7 relocated by DoubleDOS ====
 +
 +SeeAlso: INT 0F,INT 5E"DoubleDOS"
 +
 +==== INT 5F - HP 95LX GRAPHICS PRIMITIVES - SET VIDEO MODE ====
 +
 + 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
 +
 +==== INT 5F - HP 95LX GRAPHICS PRIMITIVES - SET FILL MASK ====
 +
 + AH = 01h
 + ES:DI -> 8-byte fill mask
 +Note: the fill mask represents an 8x8 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
 +
 +==== INT 5F - HP 95LX GRAPHICS PRIMITIVES - GET CURRENT GRAPHICS INFORMATION ====
 +
 + 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
 +
 +==== INT 5F - HP 95LX GRAPHICS PRIMITIVES - SET LOGICAL ORIGIN ====
 +
 + AH = 03h
 + CX = column
 + DX = row
 +SeeAlso: AH=04h
 +
 +==== INT 5F - HP 95LX GRAPHICS PRIMITIVES - SET CLIP REGION ====
 +
 + AH = 04h
 + CX = left-most column
 + DX = top-most row
 + SI = right-most column
 + DI = bottom-most row
 +SeeAlso: AH=03h
 +
 +==== INT 5F - HP 95LX GRAPHICS PRIMITIVES - DRAW RECTANGLE ====
 +
 + 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
 +
 +==== INT 5F - HP 95LX GRAPHICS PRIMITIVES - DRAW LINE ====
 +
 + 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
 +
 +===== INT 60 - reserved for user interrupt =====
 +
 +
 +==== INT 60 - VIRUS - "Zero Bug" - INSTALLATION CHECK ====
 +
 +<WRAP round box>
 +The "Zero Bug" virus hooks this vector.
 +
 +It considers itself installed if  offset 103h of the handler's segment contains the bytes "ZE"
 +</WRAP>
 +
 +SeeAlso: INT 32,INT 61"SEMTEX"
 +
 +==== INT 60 - Adaptec and OMTI controllers - DRIVE 0 DATA ====
 +
 +SeeAlso: INT 61"Adaptec",INT 62"Adaptec",INT 63"Adaptec",INT 64"Adaptec"
 +
 +<WRAP round box>
 +this vector stores the first four bytes of the parameter table for hard disk 0
 +
 +these vectors are used by the following Adaptec controllers:
 +  * ACB 2370 A/B/C, ACB 2372 A/B/C, ACB 2333 A/B, 2322B-8, 2322B-16
 +
 +these vectors are NOT used by the following Adaptec controllers:
 +  * ACB 2310, ACB 2312, ACB 2320D, ACB 2322D
 +</WRAP>
 +
 +==== INT 60 - Atari Portfolio - USER INTERFACE FUNCTIONS ====
 +
 +<WRAP round box>
 +supplies a number of subfunctions which perform such functions as drawing boxes and menus, and provide input line editing
 +</WRAP>
 +
 +SeeAlso: INT 61"Atari"
 +
 +==== INT 60 - PC-IPC API ====
 +
 +<code>
 + STACK: DWORD pointer to parameter block (see below)
 +Return: STACK: unchanged
 +</code>
 +
 +<WRAP round box>
 +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
 +</WRAP>
 +
 +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                  |
 +
 +==== INT 60 - Tangram Arbiter - API ====
 +
 +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
 +
 +==== INT 60 U - INTRSPY/CMDSPY API ====
 +
 +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"
 +
 +==== INT 60 - JPI TopSPEED Modula-2 v1 - PROCEDURE ENTRY TRAP ====
 +
 +SeeAlso: INT 61"JPI"
 +
 +==== INT 60 - FTP Packet Driver - PC/TCP Packet Driver Specification ====
 +
 +<WRAP round box 80%>
 +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.
 +</WRAP>
 +
 +
 +==== INT 60 u - HP 95LX System Manager - WAIT FOR EVENT ====
 +
 + 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
 +
 +==== INT 60 u - HP 95LX System Manager - YIELD CPU ====
 +
 + 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
 +
 +==== INT 60 u - HP 95LX System Manager - "NO_FINI" - REFUSE TERMINATION REQUEST ====
 +
 + 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"
 +
 +==== INT 60 u - HP 95LX System Manager - SETUP MENU ====
 +
 + 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-----------------------
 +==== INT 60 u - HP 95LX System Manager - DISPLAY OR REDISPLAY MENU ====
 +
 + 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-----------------------
 +==== INT 60 u - HP 95LX System Manager - "MENU_ON" - ENABLE PROCESSING OF MENU ====
 +
 + 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-----------------------
 +==== INT 60 u - HP 95LX System Manager - REMOVE MENU ====
 +
 + 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
 +
 +==== INT 60 u - HP 95LX System Manager - LET SYSTEM MANAGER HANDLE MENU KEYSTROKE ====
 +
 + 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
 +
 +==== INT 60 u - HP 95LX System Manager - INITIALIZE FILE SELECTION MENU ====
 +
 + 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
 +
 +==== INT 60 u - HP 95LX System Manager - DISPLAY/REDISPLAY FILE SELECTION MENU ====
 +
 + 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
 +
 +==== INT 60 u - HP 95LX System Manager - LET SYSMGR PROCESS FILE SEL MENU KEYSTROKE ====
 +
 + 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
 +
 +==== INT 60 u - HP 95LX System Manager - REMOVE FILE SELECTION MENU ====
 +
 + 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
 +
 +==== INT 60 u - HP 95LX System Manager - DISPLAY STRING ====
 +
 + 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
 +
 +==== INT 60 u - HP 95LX System Manager - CLEAR PORTION OF SCREEN ====
 +
 + 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
 +
 +==== INT 60 u - HP 95LX System Manager - SCROLL PORTION OF SCREEN ====
 +
 + 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
 +
 +==== INT 60 u - HP 95LX System Manager - SCREEN SERVICE "M_XCHG" ====
 +
 + DI = 0303h
 + STACK: 2 WORDs unused dummies (for calls from high level languages)
 + WORD ???
 + WORD ???
 + WORD ???
 + WORD ???
 + DWORD pointer to ???
 +Return: ???
 + STACK unchanged
 +
 +==== INT 60 u - HP 95LX System Manager - SCREEN SERVICE "M_CHRATTR" ====
 +
 + DI = 0304h
 + STACK: 2 WORDs unused dummies (for calls from high level languages)
 + DWORD pointer to ???
 + WORD ???
 +Return: ???
 + STACK unchanged
 +
 +==== INT 60 u - HP 95LX System Manager - SCREEN SERVICE "M_CHRRVRT" ====
 +
 + DI = 0305h
 + STACK: 2 WORDs unused dummies (for calls from high level languages)
 + WORD ???
 + WORD ???
 + DWORD pointer to ???
 + WORD ???
 +Return: ???
 + STACK unchanged
 +
 +==== INT 60 u - HP 95LX System Manager - SCREEN SERVICE "M_CHRINV" ====
 +
 + DI = 0307h
 + STACK: 2 WORDs unused dummies (for calls from high level languages)
 + WORD ???
 + WORD ???
 + WORD ???
 +Return: ???
 + STACK unchanged
 +
 +==== INT 60 u - HP 95LX System Manager - SCREEN SERVICE "M_ROWS_COLS" ====
 +
 + 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"
 +
 +==== INT 60 u - HP 95LX System Manager - "CP_TO_LICS" ====
 +
 + 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"
 +
 +==== INT 60 - SYS_PROF.EXE - PROFILER STATUS ====
 +
 + 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"
 +
 +==== INT 60 - MDEBUG - GET STATUS ====
 +
 + 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
 +
 +==== INT 60 - MDEBUG - GET ADDRESS OF THE HELP REGISTERS ====
 +
 + 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)
 +
 +==== INT 60 - SYS_PROF.EXE - TURN PROFILING OFF ====
 +
 + 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"
 +
 +==== INT 60 - FTP Packet Driver - BASIC FUNC - GET DRIVER INFO ====
 +
 + 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
 +
 +==== INT 60 - MDEBUG - SET STATUS ====
 +
 + 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"
 +
 +==== INT 60 - FTP Packet Driver - BASIC FUNC - ACCESS TYPE ====
 +
 + 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
 +
 +==== INT 60 - SYS_PROF.EXE - TURN PROFILING ON ====
 +
 + 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"
 +
 +==== INT 60 - MDEBUG - POP UP ====
 +
 + 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"
 +
 +==== INT 60 - FTP Packet Driver - BASIC FUNC - RELEASE TYPE ====
 +
 + AH = 03h
 + BX = handle
 +Return: CF set on error
 +    DH = error code (see AX=01FFh)
 + CF clear if successful
 +SeeAlso: AH=02h"FTP"
 +
 +==== INT 60 - SYS_PROF.EXE - GET ADDRESS OF PROFILING TABLE ====
 +
 + 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"
 +
 +==== INT 60 - FTP Packet Driver - BASIC FUNC - SEND PACKET ====
 +
 + 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
 +
 +==== INT 60 - MDEBUG - POP UP ====
 +
 + 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"
 +
 +==== INT 60 - SYS_PROF.EXE - CLEAR PROFILING TABLE ====
 +
 + AH = 04h
 +Note: SYS_PROF.EXE is the TSR portion of a profiler from Micro Cornucopia #47
 +SeeAlso: AH=03h"SYS_PROF"
 +
 +==== INT 60 - FTP Packet Driver - BASIC FUNC - TERMINATE DRIVER FOR HANDLE ====
 +
 + AH = 05h
 + BX = handle (optional for v1.10+)
 +Return: CF set on error
 +    DH = error code (see AX=01FFh)
 + CF clear if successful
 +
 +==== INT 60 - MDEBUG - GET AND SET MDEBUG FLAGS ====
 +
 + 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)
 +
 +==== INT 60 - FTP Packet Driver - BASIC FUNC - GET ADDRESS ====
 +
 + 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
 +
 +==== INT 60 - MDEBUG - GET PASSWORD STATUS ====
 +
 + AH = 06h
 +Return: AL = status
 +     00h password inactive
 +     01h password active
 +
 +==== INT 60 - FTP Packet Driver - BASIC FUNC - RESET INTERFACE ====
 +
 + AH = 07h
 + BX = handle (optional for v1.10+)
 +Return: CF set on error
 +     DH = error code (see AX=01FFh)
 + CF clear if successful
 +
 +==== INT 60 - MDEBUG v1.70+ - GET ACTIVE PART OF MDEBUG ====
 +
 + 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"
 +
 +==== INT 60 - MDEBUG - UNUSED ====
 +
 + AH = 08h-FFh
 +Return: AX = FFFCh
 +
 +==== INT 60 - FTP Packet Driver 1.09+ - HIGH-PERF FUNC - GET PARAMETERS ====
 +
 + 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
 +
 +==== INT 60 - FTP Packet Driver 1.09 - HIGH-PERF FUNC - ASYNCHRONOUS SEND PACKET ====
 +
 + 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
 +
 +==== INT 60 - FTP Packet Driver 1.10+ - HIGH-PERF FUNC - ASYNCHRONOUS SEND PACKET ====
 +
 + 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
 +
 +==== INT 60 - Banyan VINES, 3com - GET STATION ADDRESS ====
 +
 + AH = 0Ch
 +Return: AL = status
 +     00h successful
 + ES:SI -> 6-byte station address
 +     02h semaphore service is unavailable
 +
 +==== INT 60 - FTP Packet Driver 1.10+ - HIGH-PERF FUNC - DROP PACKET FROM QUEUE ====
 +
 + 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"
 +
 +==== INT 60 - 3com, 10-NET, Banyan VINES - LOCK AND WAIT ====
 +
 + 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
 +
 +==== INT 60 - 3com, 10-NET, Banyan VINES - LOCK ====
 +
 + 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
 +
 +==== INT 60 - 3com, 10-NET, Banyan VINES - UNLOCK ====
 +
 + 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
 +
 +==== INT 60 - FTP Packet Driver - EXTENDED FUNC - SET RECEIVE MODE ====
 +
 + 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
 +
 +==== INT 60 - FTP Packet Driver - EXTENDED FUNC - GET RECEIVE MODE ====
 +
 + 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
 +
 +==== INT 60 - FTP Packet Driver - EXTENDED FUNC - SET MULTICAST LIST ====
 +
 + 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
 +
 +==== INT 60 - FTP Packet Driver - EXTENDED FUNC - GET MULTICAST LIST ====
 +
 + 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
 +
 +==== INT 60 - FTP Packet Driver - EXTENDED FUNC - GET STATISTICS ====
 +
 + 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
 +
 +==== INT 60 - FTP Packet Driver - EXTENDED FUNC - SET NETWORK ADDRESS ====
 +
 + 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
 +
 +==== INT 60 - FTP Packet Driver v1.10+ - EXTENDED FUNC - SEND RAW BYTES ====
 +
 + 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
 +
 +==== INT 60 - FTP Packet Driver v1.10+ - EXTENDED FUNC - FLUSH RAW BYTES RECEIVED ====
 +
 + AH = 1Bh
 +Return: CF set on error
 +     DH = error code (see AX=01FFh)
 + CF clear if successful
 +SeeAlso: AH=1Ch
 +
 +==== INT 60 - FTP Packet Driver v1.10+ - EXTENDED FUNC - FETCH RAW BYTES RECEIVED ====
 +
 + 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
 +
 +==== INT 60 - AccessDOS - API ====
 +
 + 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.