GN_Flo, Open a filter

Register parameters

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

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

web analytics