Register parameters
RST 20H, DEFB $7B
IN:
A = reason code
Other register parameters depend on reason code
OUT:
Depends on reason code, see below.
Notes
Internal operating system usage. This call is used to allocate all I/O type handles. The handle type and structure is documented in handle.def file.
FN_AH (A = $01), Allocate handle
IN: A = FN_AH ($01)
B = handle type
B = 0, returns the first free handle, does not allocate it properly
OUT, if successful:
Fc = 0, IX = handle
OUT, if failed:
Fc = 1, A = RC_ROOM
Registers changed after return:
..BCDEHL/..IY same
AF....../IX.. different
FN_VH (A = $02), Verify handle
IN: A = FN_VH ($02)
B = handle type
IX = handle
OUT, if successful:
Fc = 0
OUT, if failed
Fc = 1, A = RC_ROOM
Registers changed after return:
..BCDEHL/IXIY same
AF....../.... different
FN_FH (A = $03), Free handle
IN: A = FN_FH ($03)
B = handle type
IX = handle
OUT, if successful:
Fc = 0, IX = 0
OUT, if failed:
Fc = 1, A = RC_HAND
Registers changed after return:
..BCDEHL/..IY same
AF....../IX.. different
FN_GH (A = $04), Get (Find) handle (OZ 4.6 and newer)
IN: A = FN_GH ($04)
IX = first handle to test, 0 to begin with top handle
B = handle type
C = dyn id, 0 to bypass the check
OUT, if successful:
Fc = 0, IX = handle
OUT, if failed:
Fc = 1, A = RC_EOF
Registers changed after return:
..BCDEHL/..IY same
AF....../IX.. different
FN_NH (A = $05), Get next handle of same type (OZ 4.6 and newer)
IN: A = FN_NH ($05)
IX = handle to test
OUT, if successful:
Fc = 0, IX = handle
OUT, if failed:
Fc = 1, A = RC_EOF
Registers changed after return:
..BCDEHL/..IY same
AF....../IX.. different
FN_CH (A = $06), Change handle type (0Z 5.0 and newer
IN: A = FN_CH ($06)
B = old type
C = new type
IX = handle
OUT, if successful:
Fc = 0, IX = same handle
OUT, if failed:
Fc = 1, A = RC_Hand : bad handle old type
Registers changed after return:
A.BCDEHL/IXIY same
.F....../.... different