Z88 Developers' Notes
Contents   Contents of System Calls

GN_Flo, open a filter

RST 20H, DEFW $2209

IN:

     HL = local pointer to filter table
     A = attribute byte; some combination of
               A0 = 1: ($01) allow case equivalence on input
          A1 = 1: ($02) use table in reverse mode
          A2 = 1: ($04) force maximum buffer size to B bytes

     B = maximum buffer size. Must be <= 128, and is only relevant if
     A2 = 1.
OUT, if call successful:
     Fc = 0
     IX = filter handle
OUT, if call failed:
     Fc = 1
     A = error code:
          RC_ROOM ($07), out of memory
          RC_BAD ($04), FDT structure invalid
          RC_HAND ($08), can't allocate handle
Registers changed after return:
     A.BCDEHL/IXIY same
     .F....../.... different

Notes:

Bugs:

Filter table must be addressed in segment 1, or this call will fail. The filter table must not cross a 16K segment boundary otherwise the call will crash the operating system.
Related calls:
GN_Flc, close filter
GN_Flf, flush filter
GN_Flr, read from filter
GN_Flw, write character to filter
GN_Fpb, push back into filter