Sim68K Serial I/O


TRAP #15 is used for I/O.  Put the task number in lower 8 bits of D0.

The success of the Serial I/O calls is returned in D0.W as follows:
    0 = Success
    1 = Invalid port identifier (PID)
    2 = Error
    3 = Port not initialized (Tasks 41, 42, 43 only)
    4 = Timeout (Tasks 42, 43 only)

    A maximum of 16 communications ports are supported. 

 Task
 40  Initialize communications port. This must be called once for each port before any other serial I/O function.
 The port defaults to 9600 baud, 8 data bits, no parity, one stop bit.
  Pre:
    High 16 bits of D0 contain port identifier (PID), (0 through 15). The PID is used to identify
    the port in all other serial I/O tasks. It is not used to specify the COM port number,
    (i.e. A PID of 4 does not mean the same thing as COM4)
    (A1) address of serial port name as null terminated string (e.g. PORT   DC.B  'COM4',0)
  Post:
    D0.W is 0 on success, 1 on invalid PID, 2 on error

Example:

; initialize serial port
        move.l  #1<<16+40,d0  ; PID 1, task 40
        lea     PORT,A1       ; name of port
        trap   #15

 Visit www.EASy68K.com for examples.

 41  Set port parameters.
  Pre:
    High 16 bits of D0 contain port identifier (PID)
    D1.L
    Bits 0-7 (D1.B)
          Baud rate: 0=9600(default), 1=110, 2=300, 3=600, 4=1200, 5=2400, 6=4800, 7=9600
          8=19200, 9=38400, 10=56000, 11=57600, 12=115200, 13=128000, 14=256000.
    Bits 8-9
          Parity: 0=no, 1=odd, 2=even, 3=mark
    Bits 10-11
          Number of data bits: 0=8 bits, 1=7 bits, 2=6 bits
    Bit 12
          Stop bits: 0=1 stop bit, 1=2 stop bits
    The higher bits of D1.L are reserved for future use.
  Post:
    D0.W is 0 on success, 1 on invalid PID, 2 on error, 3 on port not initialized
 42  Receive string.
  Pre:
    High 16 bits of D0 contain port identifier (PID)
    (A1) buffer address.
    D1.B max number of characters to receive. The port will wait sufficient time for the requested number of bytes
    to be received. A timeout will occur if the number of bytes received is less than the requested number. For
    faster response use a smaller number in D1.B.
  Post:
    D0.W is 0 on success, 1 on invalid PID, 2 on error, 3 on port not initialized, 4 on timeout
    D1.B number of characters received.
    (A1) null terminated string of characters received.
 43  Send string.
  Pre:
    High 16 bits of D0 contain port identifier (PID)
    (A1) buffer address.
    D1.B number of characters to send. The port will wait sufficient time for the specified number of bytes
    to be sent. A timeout will occur if the number of bytes sent is less than the requested number.
  Post:
    D0.W is 0 on success, 1 on invalid PID, 2 on error, 3 on port not initialized, 4 on timeout
    D1.B number of characters sent.