...
Code Block | ||
---|---|---|
| ||
IN:
A = CL_CNT ($00), get CLI use count
A = CL_RIM ($01), get raw input
BC = timeout in 1/100 second ticks
BC = 0, return immediately if no data
BC = -1 ($FFFF), wait forever for data
A = CL_MBC ($02), meta/base to character conversion
DE = meta (D) / base (E)
D = $01 SHIFT
= $02 CTRL (DIAMOND)
= $04 ALT (SQUARE)
= $08 special
E = base character
A = CL_CMB ($03), character to meta/base conversion
DE = raw character
D = 0, E is ISO character
D = 1, E is special character
A = CL_INC ($04), increment CLI use count
A = CL_DEC ($05), decrement CLI use count
A = CL_RES ($06), reset CLI use count
A = CL_ACK ($07), acknowledge CLI/Escape
D = reset mask (zero to reset):
CLM_SH ($01) = SHIFT (bit)
CLM_CT ($02) = DIAMOND (bit)
OUT, A(in) = CL_CNT, always:
Fc = 0
A = CLI use count (A = 0 if no active CLI)
IX = keyboard variable frame
Registers changed after return:
..BCDEHL/..IY same
AF....../IX.. different
OUT, A(in) = CL_RIN, successful:
Fc = 0
BC = remaining timeout
DE = character:
D = 0, E is ISO character
D = 1, E is special character
OUT, A(in) = CL_RIN, failed:
Fc = 1
A = RC_ESC
A = RC_SUSP
A = RC_TIME
Registers changed after return:
......HL/IXIY same
AFBCDE../.... different
OUT, A(in) = CL_MBC, successful:
Fc = 0
DE = character:
D = 0, E is ISO character
D = 1, E is special character
OUT, A(in) = CL_MBC, failed:
Fc = 1
A = RC_FAIL, not a meaningful character
Registers changed after return:
..BC..HL/IXIY same
AF..DE../.... different
OUT, A(in) = CL_CMB, successful:
Fc = 0
DE = meta (D) / base (E)
D = $01 SHIFT
= $02 CTRL (DIAMOND)
= $04 ALT (SQUARE)
= $08 special
E = base character
OUT, A(in) = CL_CMB, failed:
Fc = 1
A = RC_FAIL, not a meaningful character
Registers changed after return:
..BC..HL/IXIY same
AF..DE../.... different
OUT, A(in) = CL_INC, CL_DEC, CL_RES always:
Fc = 0
Registers changed after return:
A.BCDEHL/IXIY same
.F....../.... different
OUT, A(in) = CL_ACK, always:
Fc = 0
Fz = 1, no Escape
Fz = 0, Escape
D = resulting mask
Registers changed after return:
A.BCDEHL/IXIY same
.F....../.... different |
...