Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Code Block
titleRST 20H, DEFB $7B
IN:
     A = FN_AH ($01), allocate handlereason code
     Other register parameters depend on reason code
BOUT:
= handle type   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.


Code Block
titleFN_AH (A = $01), Allocate handle
IN:  A B = 0, does not allocate aFN_AH ($01)
	 B = handle properlytype
- the next handle is B = 0, returns the first free handle, does not givenallocate theit SAME numberproperly

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

IN:
      



Code Block
titleFN_VH (A = $02), Verify handle
IN:  A = FN_VH ($02),
verify handle
          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



Code Block
titleFN_FH (A = $03), Free handle
IN:
     A = FN_FH ($03),
free handle           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
 
IN:
     A = 



get find
Code Block
titleFN_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 firsttop handle
  
       B = handle type, 0 for any type
      C = dyn id, 0 tofor any bypassdyn theid
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

IN:
     A = FN_NH ($05), get next handle of same type (OZ 4.6 and newer)
          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

...

 



Code Block
titleFN_AH CH (A = $01$05), Allocate handle
IN:  A = FN_AH ($01)
	 B = handle type
     B = 0, does not allocate a handle properly - the next handle is given the SAME number

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
Code Block
titleFN_VH (A = $02), Verify handleChange handle type (0Z 5.0 and newer)
IN:  A = FN_VHCH ($02$05)
	     B = handleold 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
Code Block
titleFN_FH (A = $03), Free handle
IN:  A = FN_FH ($03)
     B = handleC = new type
     IX = handle

OUT, if successful:
     Fc = 0, IX = 0same handle
OUT, if failed:
     Fc = 1, A = RC_HAND

Registers changed after return:
     ..BCDEHL/..IY same
     AF....../IX.. different
Code Block
titleFN_AH (A = $01), Allocate handle
IN:  B = handle type
     B = 0, does not allocate a handle properly - the next handle is given the SAME number

OUT, if successful:
     Fc = 0, IX = handle

OUT, if failed:
     Fc = 1, A = RC_ROOM

Hand (old type wrong)

Registers changed after return:
     .A.BCDEHL/..IYIXIY same
     AF.F....../IX.... different

...