...
This resets the UART in the gate array. This call should not need to be used.
SI_SFT
Code Block |
---|
language | none |
---|
title | SI_SFT (L = $03), serial soft rest |
---|
|
IN: -
OUT: -
Registers changed after return:
......../IXIY same
AFBCDEHL/.... different |
This call should be useful to install new panel settings or when starting low level (ie. using SI_GBT, SI_PBT etc.) serial operations. It carries out the following:
1. Empty receive and transmit buffers.
2. Reset the XON/XOFF flags.
3. Reset baud rates, parity and flow control settings to the PANEL values.
4. Assert RTS.
5. Resets the serial port timeout to its default of 10 minutes.
SI_INT
SI_INT (L = $06), interrupt entry point. Internal operating system usage only.
SI_GBT
Code Block |
---|
language | none |
---|
title | SI_GBT (L = $09), get byte from serial port |
---|
|
IN: BC = timeout in centiseconds
Out if call succeeded:
Fc = 0
A = byte received
BC = remaining time
Out if call failed:
Fc = 1
A = RC_TIME ($02) (if no data available before timeout)
Registers changed after return:
....DE../IXIY same
AFBC..HL/.... different |
SI_PBT
Code Block |
---|
language | none |
---|
title | SI_PBT (L = $0C), put byte to serial port |
---|
|
IN: BC = timeout in centiseconds. If BC = $FFFF then default timeout.
A = byte to send
Out if call succeeded:
Fc = 0
BC = remaining time
Out if call failed:
Fc = 1
A = RC_TIME ($02)
Registers changed after return:
....DE../IXIY same
AFBC..HL/.... different |
This call will return immediatly if there is space in the transmit buffer, otherwise it will wait until there is space for as long as the timeout. If the timeout is exceeded it will return with an error.
SI_ENQ
Code Block |
---|
language | none |
---|
title | SI_ENQ (L = $0F), Status enquiry |
---|
|
IN: -
OUT:
B = number of full slots in the Tx (transmit) buffer
C = number of empty slots in the Tx (transmit) buffer
D = number of full slots in the Rx (receive) buffer
E = number of empty slots in the Rx (receive) buffer
A0 = 1, CTS level (inverse of the value on the D-connector)
A1 = 1, DCD level (inverse of the value on the D-connector)
A2 = 1, Rx register full
A3 = undefined
A4 = 1, Tx Register empty
A5 = 1, CTS interrupt
A6 = 1, DCD interrupt
A7 = 1, Rx shift register full
Registers changed after return:
......../IXIY same
AFBCDEHL/.... different |
A slot, in this context, is the set of bits required to transmit on character. This will include 8 data bits plus start and stop bits.