Message Services


 
Contents: 0x20    Get message

This gets a message from a message queue. If there are no message this service waits until one is received.

Input
  EBX    queue ID

Output
  EBX    Senders ID
  ECX    function
  EDX    data 1
  ESI    data 2
  AL     status
 

0x24    Check for message


This gets a message from a message queue. If there are no messages it returns an error.

Input
  EBX    queue ID

Output
  EBX    Senders ID
  ECX    function
  EDX    data 1
  ESI    data 2
  AL     status
 

0x28    Return message


This function handles all messages that a message receiver doesn't handle.

Input
  EBX    Senders ID
  ECX    function
  EDX    data 1
  ESI    data 2
  EDI    Receivers ID

Output
  AL     status

 
0x30    Send message


This sends a message to a message queue.

Input
  EBX    Senders queue ID
  ECX    function
  EDX    data 1
  ESI    data 2
  EDI    Receivers queue ID

Output
  AL     status
 

0x40    Open message queue


You can't receive messages without first opening a message queue.

Input
  BX    code ID

Output
  EBX    queue ID
  AL     status
 
 

0x68    Release block


This service releases a block.

Input
  EBX    Sender ID
  ECX    Function number
  EDX    Size of block
  ESI    Start address of block

Output
  AL     status (0 means ok, no error string)
 

0x80    Open message port


System code can allocate a message port without a queue. When a message is sent to this port the code is called directly, the message is not queued.

Input
  BX     code ID
  ECX    offset to call

Output
  AL     status
 

0xA0    Allocate IRQ


This allocates an IRQ. When the interrupt occurs a message is sent to the owner.

Input
  EBX    message port ID
  ECX    returned function number
  DL     IRQ number

Output
  AL     status

The message sent when an IRQ occurs has this format:

 Function: As set when IRQ allocated
 Data1:    IRQ number
 Data2:    tickHigh when message sent
 

0xE0    Register local user interface 


When a message is sent to this port the code is called directly, the message is not queued. The local user interface always has message port ID 0.

Input
  BX     code ID
  ECX    offset to call

Output
  AL     status
 

0xEF    Shutdown computer 


This service spawns a task and returns like a normal. The spawned task performs an orderly shutdown before rebooting the computer.

Input
  None

Output
  AL     status
 

0xF0    Self Test


This service test the message services data structures.

Input
  none

Output
  EBX    address of error string (unless no error)
  AL     status (0 means ok, no error string)
 


Home  Index
Copyright 1998, Brendan Trotter