Z88 Developers' Notes | ||
---|---|---|
Contents | Contents of System Calls |
OS_Cli, CLI interface
RST 20H, DEFB $84
IN:
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_RIN, successful:
Fc = 0 BC = remaining timeout DE = character: D = 0, E is ISO character D = 1, E is special characterOUT, A(in) = CL_RIN, failed:
Fc = 1 A = RC_ESC A = RC_SUSP A = RC_TIMERegisters changed after return:
......HL/IXIY same AFBCDE../.... differentOUT, A(in) = CL_MBC, successful:
Fc = 0 DE = character: D = 0, E is ISO character D = 1, E is special characterOUT, A(in) = CL_MBC, failed:
Fc = 1 A = RC_FAIL, not a meaningful characterRegisters changed after return:
..BC..HL/IXIY same AF..DE../.... differentOUT, 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 characterOUT, A(in) = CL_CMB, failed:
Fc = 1 A = RC_FAIL, not a meaningful characterRegisters changed after return:
..BC..HL/IXIY same AF..DE../.... differentOUT, A(in) = CL_INC, CL_DEC, CL_RES always:
Fc = 0Registers changed after return:
A.BCDEHL/IXIY same .F....../.... differentOUT, A(in) = CL_ACK, always:
Fc = 0 Fz = 1, no Escape Fz = 0, Escape D = resulting maskRegisters changed after return:
A.BCDEHL/IXIY same .F....../.... different
Notes:
Internal operating system usage.Bugs: