;
; SYSLIB Module Name:  S2FILE
; Author:  Richard Conn
; SYSLIB Version Number:  2.0
; Module Version Number:  1.0
; Module Entry Points:
;       F2$GET          F2$PUT          FI2$CLOSE       FI2$OPEN
;       FO2$CLOSE       FO2$OPEN
; Module External References:
;       ADRCPY          F$GET           F$PUT           FI$CLOSE
;       FI$OPEN         FO$CLOSE        FO$OPEN
;

;
;  EXTERNAL DECLARATIONS
;
       EXT     ADRCPY
       EXT     FI$OPEN
       EXT     FO$OPEN
       EXT     FI$CLOSE
       EXT     FO$CLOSE
       EXT     F$GET
       EXT     F$PUT

;
;  MAIN ROUTINES FOR F2
;
FI2$OPEN::
       CALL    F2$COPY ; COPY ADDRESSES
       JMP     FI$OPEN ; DO IT
FO2$OPEN::
       CALL    F2$COPY ; COPY ADDRESSES
       JMP     FO$OPEN
F2$GET::
       CALL    F2$COPY ; COPY ADDRESSES
       JMP     F$GET
F2$PUT::
       CALL    F2$COPY ; COPY ADDRESSES
       JMP     F$PUT
FI2$CLOSE::
       CALL    F2$COPY ; COPY ADDRESSES
       JMP     FI$CLOSE
FO2$CLOSE::
       CALL    F2$COPY ; COPY ADDRESSES
       JMP     FO$CLOSE

F2$COPY:
       PUSH    H
       PUSH    D
       PUSH    B
       PUSH    PSW
       LXI     D,F2$TAB        ; COPY F2
       CALL    ADRCPY
       POP     PSW
       POP     B
       POP     D
       POP     H
       RET

;
;  INIT TABLE AND BUFFERS FOR F2 ROUTINES
;
I2$FLG: DB      0       ; INPUT FILE OPENED FLAG (0=NO)
O2$FLG: DB      0       ; OUTPUT FILE OPENED FLAG (0=NO)
I2$FCB: DS      36      ; INPUT FILE FCB
O2$FCB: DS      36      ; OUTPUT FILE FCB
I2$BUF: DS      128     ; INPUT BUFFER
O2$BUF: DS      128     ; OUTPUT BUFFER
I2$PTR: DS      2       ; INPUT CHAR PTR
O2$PTR: DS      2       ; OUTPUT CHAR PTR
I2$CNT: DS      1       ; INPUT CHAR COUNT
O2$CNT: DS      1       ; OUTPUT CHAR COUNT

F2$TAB:
       DW      I2$FLG
       DW      O2$FLG
       DW      I2$FCB
       DW      O2$FCB
       DW      I2$BUF
       DW      O2$BUF
       DW      I2$PTR
       DW      O2$PTR
       DW      I2$CNT
       DW      O2$CNT

       END