Versions Compared

Key

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

...

Code Block
titleRST 20H, DEFB $7B
IN:
     A = FN_GH ($04), get (find) handle (OZ 4.6 and newer)
     reason code
     Other register parameters depend on reason code
OUT:
    IX =Depends firston handlereason tocode, test, 0 to begin with first handle
          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 = FN_AH ($01)
	 B = handle type
     B = 0, returns the Cfirst =free dynhandle, id,does 0not toallocate bypassit theproperly
check
OUT, if successful:
     Fc = 0,      IX = handle

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

Registers changed after return:
     ..BCDEHL/..IY same
     AF....../IX.. different



Code Block
titleFN_VH (A = $02), Verify handle
IN:      A = FN_NHVH ($05$02),
get next handle of same typeB (OZ 4.6 and newer)
    = handle type
     IX = handle
to
test
OUT, if successful:
     Fc = 0
     IX = handle
OUT, if failed:
     Fc = 1
          , A = RC_EOFROOM

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

Notes

...




Code Block
titleFN_AH FH (A = $01$03), Allocate Free handle
IN:  A A = FN_AHFH ($01$03)
	 B = handle type      B = 0,handle doestype
not allocate a handle properly - theIX next= handle
is
given the SAME number

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

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

Registers changed after return:
     ..BCDEHL/..IY same
     AF....../IX.. different



Code Block
titleFN_VH GH (A = $02$04), Verify handleGet (Find) handle (OZ 4.6 and newer)
IN:  A = FN_VHGH ($02$04)
     BIX = handle type
     IX = first handle to OUTtest, if successful:
     Fc = 0 to OUT,begin ifwith failedtop handle
    Fc =B 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)handle type, 0 for any type
      BC = handledyn typeid, 0 for any   IX = handledyn id

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

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

Registers changed after return:
     ..BCDEHL/..IY same
     AF....../IX.. different



Code Block
titleFN_AH CH (A = $04$05), Get (Find) Change handle type (OZ 40Z 5.6 0 and newer)
IN:  A = FN_GHCH ($04$05)
	  B   IX = firstold handletype
to test, 0 to begin with first handle
     B	 C = handlenew type
     CIX = dyn id, 0 to bypass the check

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

OUT, if failed:
     Fc = 1, A = RC_EOFHand (old type wrong)

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

...