File: PXGETC.SB of Tape: Sources/Other/new-14
(Source file text) 

/      FUNCTION IGETC(IARG)
/      IARG=-1: REREAD FILE TO OLD POSITION
/      IARG=0:  INITIALIZE FILE, IARG=1: GET NEXT CHAR
/ 
LAP 
\JPLOT, COMMN 3000
\JEXTR, COMMN 2600
\JCHRS, COMMN 1400
\ICOMM, COMMN 1
\FNAME, COMMN 3
\IGREC, COMMN 1
\IGCHR, COMMN 1
\IDUDS, COMMN 33
\IDASH, COMMN 1
\IDSHC, COMMN 1
\IDSHP, COMMN 1
\X0,	COMMN 3
\Y0,	COMMN 3
\FAKTX, COMMN 3
\FAKTY,	COMMN 3
\IFONT, COMMN 1
\DXW,	COMMN 3
\DYW,	COMMN 3
\DXH,	COMMN 3
\DYH,	COMMN 3
/ 
/1000  FORMAT (72A1)
\1000,	5067
	6201
	6151
	0
/
	DUMMY \IARG
\IARG,	BLOCK 2
\I,	BLOCK 1
IGETP,	BLOCK 1
ITEXP,	\ITEXT
/
	ENTRY IGETC
IGETC,	BLOCK 2
	TAD I IGETC
	DCA \IARG
	INC IGETC#
	TAD I IGETC
	DCA \IARG#
	INC IGETC#
/      IF (IARG)10,20,30
	TAD I \IARG
	SNA 
	JMP \20
	SPC 
	JMP \10
	JMP \30
/ 
/      REPOSITION RECORD
/ 
/10    DO 15 I=1,IGREC
\10,	DCA \I
^A,	ISZ \I
	TAD \I
	CIA 
	TAD \IGREC
	SPC 
	JMP \30
/15    READ(4,1000) ITEXT
\15,	CALL 2,READ
	ARG (4
	ARG \1000
	CMA 
	CALL 2,IOH
	ARG 110
	ARG \ITEXT
	CALL 1,IOH
	ARG 0
	JMP ^A
/ 
/      FRESH FILE
/ 
\20,	DCA \IGREC
\25,	DCA \IGCHR
/      READ(4,1000) ITEXT
	CALL 2,READ
	ARG (4
	ARG \1000
	CMA 
	CALL 2,IOH
	ARG 110
	ARG \ITEXT
	CALL 1,IOH
	ARG 0
/      IGREC=IGREC+1
	INC \IGREC
/ 
/      RECORD EXHAUSTED ?
/ 
\30,	TAD (110
	CIA 
	TAD \IGCHR
	SMA CLA
	JMP \25
/35    IGETC=ITEXT(IGCHR+1)
\35,	TAD \IGCHR
	TAD ITEXP
	DCA IGETP
	TAD I IGETP
	7002		/BSW
	TAD (40
	AND (77
	INC \IGCHR
	RETRN IGETC
	PAGE
\ITEXT, (110		/DON'T LIKE LONG LISTING (REALLY 110)
	PAGE
	END