| 0001h |
get PHARLAP.386 version
| Return: |
AH |
= |
major version |
| AL |
= |
minor version |
|
|
---queue functions--- |
| 0101h |
allocate a new message queue
| Data: |
CX |
= |
size of queue data buffer in bytes |
| Return: |
DX:AX |
= |
handle for new queue, or 0000h:0000h on
error |
|
| 0102h |
allocate a new key queue
| Data: |
CX |
= |
size of queue data buffer in bytes |
| EDX |
= |
VM handle into which keys will be pasted |
| Return: |
DX:AX |
= |
handle for new queue, or 0000h:0000h on
error |
|
| 0103h |
free message queue
| Data: |
| EDX |
= |
queue handle |
| Return: |
AX |
= |
status (0000h,0003h,0007h) (see
#02695) |
|
| 0104h |
free key queue
| Data: |
| EDX |
= |
queue handle |
| Return: |
AX |
= |
status (0000h,0003h,0005h) (see
#02695) |
|
| 0105h |
add message to communications queue
| Data: |
| EDX |
= |
queue handle |
| BX |
= |
length of message data in bytes |
| CX |
= |
length of message header in bytes |
| ES:(E)SI |
 |
message header |
| GS:(E)DI |
 |
message data |
| Return: |
AX |
= |
status (0000h-0003h,0007h) (see
#02695) |
|
| 0106h |
remove message from queue
| Data: |
| EDX |
= |
queue handle |
| CX |
= |
length of buffer in bytes |
| ES:(E)SI |
 |
buffer for message |
| Return: |
AX |
= |
status (0000h,0003h,0006h,0007h,0008h) (see
#02695) |
| CX |
= |
length of returned message (if AX=0000h or
0008h) |
|
| 0107h |
flush queue (remove all data)
| Data: |
| EDX |
= |
queue handle |
| Return: |
AX |
= |
status (0000h,0003h) (see
#02695) |
|
| 0108h |
add PasteKey structure(s) to key queue
| Data: |
| EDX |
= |
queue handle |
| CX |
= |
number of PasteKey structures in buffer |
| ES:(E)SI |
 |
PasteKey array (see
#02696) |
| Return: |
AX |
= |
status (0000h-0003h) (see
#02695) |
|
| 0109h |
register enqueueing callback function
| Data: |
| EDX |
= |
queue handle |
| ECX |
= |
function argument |
| ES:(E)SI |
 |
callback function |
| Return: |
AX |
= |
status (0000h,0003h,0009h) (see
#02695) |
|
| 010Ah |
register dequeueing callback function
| Data: |
| EDX |
= |
queue handle |
| ECX |
= |
function argument |
| ES:(E)SI |
 |
callback function |
| Return: |
AX |
= |
status (0000h,0003h,0009h) (see
#02695) |
|
| 010Bh |
unregister enqueueing callback function
| Data: |
| EDX |
= |
queue handle |
| Return: |
AX |
= |
status (0000h,0003h,0009h) (see
#02695) |
|
| 010Ch |
unregister dequeueing callback function
| Data: |
| EDX |
= |
queue handle |
| Return: |
AX |
= |
status (0000h,0003h,0009h) (see
#02695) |
|
| 010Dh |
get message queue status
| Data: |
| EDX |
= |
queue handle |
| Return: |
AX |
= |
status (0000h,0003h) (see
#02695) |
| CX |
= |
number of pending messages |
|
| 010Eh |
peek at message in queue
| Data: |
| EDX |
= |
queue handle |
| BX |
= |
number of message in queue (0000h = first) |
| CX |
= |
size of buffer in bytes |
| ES:(E)SI |
 |
buffer for message |
| Return: |
AX |
= |
status (0000h,0003h,0006h,0008h) (see
#02695) |
| CX |
= |
length of returned message (if AX=0000h or
0008h) |
|
| 010Fh |
peek at last message in queue
| Data: |
| EDX |
= |
queue handle |
| CX |
= |
size of buffer in bytes |
| ES:(E)SI |
 |
buffer for message |
| Return: |
AX |
= |
status (0000h,0003h,0006h,0008h) (see
#02695) |
| CX |
= |
length of returned message (if AX=0000h or
0008h) |
|
| 0110h |
replace last message in queue
| Data: |
| EDX |
= |
queue handle |
| CX |
= |
length of message header in bytes |
| BX |
= |
length of message data in bytes |
| ES:(E)SI |
 |
message header |
| GS:(E)DI |
 |
message data |
| Return: |
AX |
= |
status (0000h,0002h,0003h) (see
#02695) |
|
| 0111h |
set permitted message count for queue
| Data: |
| EDX |
= |
queue handle |
| CX |
= |
maximum number of messages to enqueue (FFFFh
= unlimited) |
| Return: |
AX |
= |
status (0000h,0003h) (see
#02695)
|
|
|
---generalized VxD services--- |
| 0202h |
call VxD function
| Data: |
| ES:(E)BX |
 |
in/out register-set buffer |
| Return: |
buffer updated |
|
| 0203h |
map flat
|
|
--system register functions--- |
| 0301h |
read system registers into buffer
| Data: |
| ES:(E)SI |
 |
512-byte buffer |
| Return: |
AX |
= |
0000h buffer filled (mostly
zeros) |
|
| 0302h |
copy linear memory into buffer
| Data: |
| EDX |
= |
linear address |
| CX |
= |
number of bytes to copy |
| ES:(E)SI |
 |
buffer |
| Return: |
AX |
= |
0000h |
|
| 0303h |
copy data into linear memory
| Data: |
| EDX |
= |
linear address |
| CX |
= |
number of bytes to copy |
| ES:(E)SI |
 |
buffer |
| Return: |
AX |
= |
0000h |
|
| 0304h |
freeze VM
|
| 0305h |
unfreeze VM
|
|
---name registration functions--- |
| 0401h |
register name
| Data: |
| EDX |
= |
magic number to associate with name |
| ES:(E)SI |
 |
name to register |
| Return: |
AX |
= |
status (0000h,0009h) (see
#02695) |
|
| 0402h |
unregister name
| Data: |
| ES:(E)SI |
 |
name to be unregistered |
| Return: |
AX |
= |
status (0000h,0009h) (see
#02695) |
|
| 0403h |
look up name
| Data: |
| ES:(E)SI |
 |
name to look up |
| Return: |
DX:AX |
= |
magic number or 0000h:0000h if not
registered |
|
| 0404h |
get name list handle
| Return: |
DX:AX |
= |
name list handle
0000h:0000h if not initialized |
|
|
---special DOS server routines
(undocumented)--- |
| 0501h |
register |
| 0502h |
unregister |
| 0503h |
validate VM |
| 0504h |
get INT9 count |
| 0505h |
get screen line |
| 0506h |
get shift status |
| 0507h |
get server PB pointer |
| 0508h |
initialize DOS shell |
| 0509h |
get last VM handle |