;
; SYSLIB Module Name:  S3FILE
; Author:  Richard Conn
; SYSLIB Version Number:  2.0
; Module Version Number:  1.0
; Module Entry Points:
;	F3$GET		F3$PUT		FI3$CLOSE	FI3$OPEN
;	FO3$CLOSE	FO3$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 F3
;
FI3$OPEN::
	CALL	F3$COPY	; COPY ADDRESSES
	JMP	FI$OPEN	; DO IT
FO3$OPEN::
	CALL	F3$COPY	; COPY ADDRESSES
	JMP	FO$OPEN
F3$GET::
	CALL	F3$COPY	; COPY ADDRESSES
	JMP	F$GET
F3$PUT::
	CALL	F3$COPY	; COPY ADDRESSES
	JMP	F$PUT
FI3$CLOSE::
	CALL	F3$COPY	; COPY ADDRESSES
	JMP	FI$CLOSE
FO3$CLOSE::
	CALL	F3$COPY	; COPY ADDRESSES
	JMP	FO$CLOSE

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

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

F3$TAB:
	DW	I3$FLG
	DW	O3$FLG
	DW	I3$FCB
	DW	O3$FCB
	DW	I3$BUF
	DW	O3$BUF
	DW	I3$PTR
	DW	O3$PTR
	DW	I3$CNT
	DW	O3$CNT

	END
