Register parameters
Code Block |
---|
language | none |
---|
title | RST 20H, DEFW DEFB $8D |
---|
|
IN:
L = reason code
Other register parameters depend on reason code
OUT:
Depends on reason code, see below.
IX will always be unchanged. |
...
Other information of this call can be found in the The Serial Interface section.
SI_HRD
Code Block |
---|
title | SI_HRD (L = $00), Serial hard reset |
---|
|
IN: -
OUT: Fc = 0
Registers changed after return:
..BCDEHL/IXIY same
AF....../.... 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
Code Block |
---|
title | SI_INT (L = $06), interrupt entry point |
---|
|
...
|
IN: -
OUT: -
Registers changed after return:
AFBCDEHL/IXIY same
......../.... different |
Internal operating system usage only.
This call is used by the serial port driver to send XOFF when software handshaking is active.
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 |
...
Code Block |
---|
title | SI_GXT (L = $21), get multiple bytes until ESC <x> terminator, using default timeout (OZ 4.5SI_TMO) |
---|
|
IN:
A = terminator that will stop incoming serial flow
BC = number of byte to get from serial port, maximum 16384, one bank
DE = destination
DE = 0, write bytes to a file opened with its handle in IX
DE > 0, write bytes to memory at (DE)
IX = file handle (if DE = 0)
Out if call succeeded, Fc = 0:
Fz = 1,
BC <> 0, A = ESC terminator encountered, number of Fcbytes not read
Fz = 0,
A = FFh
BC = remaining time (SI_TMO)0, all bytes read, no terminator encountered
DE = points at last byte fetched + 1 (if DE(INin) > 0)
Out if call failed:
Fc = 1
A = RC_TIME, timeout elapsed
A = RC_EOF, end of file reached
A = RC_WP, input device is read protected
BC = number of bytes not read
Registers changed after return:
......../IXIY same
AFBCDEHL/.... different |
...