File FLOW4.AS (Source fil)

Directory of image this file is from
This file as a plain text file

14 	START	;MAIN LOOP FOR PASS 2
24 ;...		SBTTL	;MAIN LOOP FOR PASS 2 
34   
44 ;...	PASS2,	I/O		;OPEN FILES
54 ;...		IF NO:END2	;L OPTION? 
64 ;...	LOOP2,	DISK		;READ A PASS 1 RECORD 
74 ;...		IF YES:DOHOF	;HOF RECORD? 
84 ;...		I/O		;PRINT THE RECORD
94 ;...		GOTO LOOP2
104 ;...	DOHOF,	I/O		;OUTPUT A FORM FEED
114 ;...		GOTO LOOP2
124 ;...	END2,	I/O		;CLOSE FILES
134 ;...		STOP		;END OF PGM 
144 PASS2, INIT(1,I,'$PASS1',1) 
154 	INIT(2,LPT)
164 	IF(OPTL.NE.'L')GO TO END2	;SKIP PASS 2 IF LISTING NOT SELECTED 
174 LOOP2, XMIT(1,OUTREC,END2)	;READ A PASS 1 RECORD
184 	IF(OUTDTA.EQ.'$HOF')GO TO DOHOF ;IS THIS A NEW PAGE? 
194 	RSIZE=(4096-64*#TRICK2(3)-#TRICK2(4))*2+2
204 	XMIT(2,OUTREC(1,RSIZE)) ;PRINT THE LINE
214 	GO TO LOOP2
224 DOHOF,	FORMS(2,0)		;GO TO A NEW PAGE
234 	GO TO LOOP2
244 END2,	FINI(1) 
254 	FINI(2)
264 	STOP 
274 	START	;SUBROUTINES 
284 ;...		SBTTL	;SUBROUTINES
294   
304 ;...		START		;HOF ROUTINE 
314 ;...	HOF,	IF YES:HOFEXT	;SBTTL COMMAND? 
324 ;...		IF YES:HOFEXT	;TITLE COMMAND? 
334 ;...		IF YES:HOFEXT	;GOTO COMMAND?
344 ;...		IF YES:HOFEXT	;STOP COMMAND?
354 ;...		IF YES:HOFYES	;NEED OFF PAGE POINTER? 
364 ;...		CALL HOF1	;START A NEW PAGE 
374 ;...		GOTO HOFEXT 
384 ;...	HOFYES, DISK		;OUTPUT OFF PAGE POINTER 
394 ;...		CALL HOF1	;START A NEW PAGE 
404 ;...		DISK		;OUTPUT POINTER TO FIRST BLOCK
414 ;...		PROC		;FIX LINE COUNT & LBLFIX
424 ;...	HOFEXT, STOP		;RETURN
434 HOF,	IF(COMAND.EQ.'SBTTL')GO TO HOFEXT
444 	IF(COMAND.EQ.'TITLE')GO TO HOFEXT
454 	IF(COMAND.EQ.'GOTO')GO TO HOFEXT 
464 	IF(COMAND.EQ.'STOP')GO TO HOFEXT 
474 	IF(LBLFIX.NE.SPACES)GO TO HOFYES 
484 	CALL HOF1
494 	GO TO HOFEXT 
504 HOFYES, DATA=LINE 
514 	CALL PUT 
524 	DATA=START1
534 	CALL PUT 
544 	PGE=PGECTR+1 
554 	DATA=PAGE1 
564 	CALL PUT 
574 	DATA=START1
584 	CALL PUT 
594 	CALL HOF1
604 	DATA=START1
614 	CALL PUT 
624 	DATA=PAGE1 
634 	CALL PUT 
644 	DATA=START1
654 	CALL PUT 
664 	LNECTR=LNECTR+3
674 	LBLFIX='!' 
684 HOFEXT,	RETURN
694   
704 ;...		START		;HOF1 ROUTINE
714 ;...	HOF1,	DISK		;OUTPUT NEW PAGE INDICATOR 
724 ;...		PROC		;INCREMENT PAGE NUMBER
734 ;...		DISK		;OUTPUT TITLE 
744 ;...		DISK		;OUTPUT SUBTITLE
754 ;...		DISK		;OUTPUT A BLANK RECORD
764 ;...		PROC		;FIX LINE COUNT & LBLFIX
774 ;...		STOP		;RETURN 
784 HOF1,	XMIT(2,"$HOF')		;OUTPUT PASS 2 HOF COMMAND
794 	INCR PGECTR
804 	PAGENO=PGECTR
814 	XMIT(2,TTLREC) 
824 	XMIT(2,SUBREC) 
834 	XMIT(2," ')
844 	LNECTR=3 
854 	LBLFIX=
864 	RETURN 
874   
884 ;...		START		;PRINT LABEL 
894 ;...	LABCHK, IF NO:NOLAB	;IS THERE A LABEL? 
904 ;...		DISK		;OUTPUT THE LABEL 
914 ;...		PROC		;FIX LINE COUNT 
924 ;...		DISK		;OUTPUT ENTRY TO '$KREF' FILE 
934 ;...		GOTO LABEXT 
944 ;...	NOLAB,	IF YES:NOLINE	;IS THIS A NEW PAGE?
954 ;...		DISK		;OUTPUT A LINE
964 ;...		PROC		;FIX LINE COUNT 
974 ;...	NOLINE, PROC		;FIX LBLFIX
984 ;...	LABEXT, STOP		;RETURN
994 LABCHK, IF(LABEL.EQ.SPACES)GO TO NOLAB
1004 	LBLDTA=LBL1
1014 	CALL PUT 
1024 	LBLDTA=LBL2
1034 	CALL PUT 
1044 	LBLFIX='!' 
1054 	LBLDTA=LBL1
1064 	CALL PUT 
1074 	LNECTR=LNECTR+3
1084 	SRTLBL=LABEL 
1094 	DEFREF='#' 
1104 	XMIT(3,SRTREC) 
1114 	DEFREF=
1124 	GO TO LABEXT 
1134 NOLAB,	IF(LBLFIX.EQ.SPACES)GO TO NOLINE 
1144 	DATA=LINE
1154 	CALL PUT 
1164 	INCR LNECTR
1174 NOLINE,	LBLFIX='!'
1184 LABEXT,	RETURN
1194   
1204 ;...		START		;GET TEXT
1214 ;...	GETTXT, PROC		;GET THE NEXT LINE 
1224 ;...		STOP		;RETURN 
1234 GETTXT,	INCR LNE
1244 	TXT=LN(LNE)
1254 	RETURN 
1264   
1274 ;...		START		;CENTER TEXT 
1284 ;...	CENTER, PROC		;CENTER TEXT IN BUFFER 
1294 ;...		STOP		;RETURN 
1304 CENTER,	TEXT= 
1314 	BGNLN= 
1324 	IF(END.GE.LAST)GO TO LNAGN 
1334 	TEXT=CHR(END+1,LAST) 
1344 LNAGN, LNE= 
1354 	LNMX=
1364 LNLP1, INCR LNE 
1374 	LN(LNE)= 
1384 	IF(XMAX(LNE).EQ.0)GO TO NOLN 
1394 	INCR LNMX
1404 	IF(LNE.LT.5)GO TO LNLP1
1414 NOLN,	LNE=BGNLN 
1424 	K=1
1434 LNLP2,	INCR LNE 
1444 	MAX=XMAX(LNE)
1454 	TXT= 
1464 GETLP, IF(TEXT(K+MAX,K+MAX).EQ.SPACES)GO TO OK
1474 	MAX=MAX-1
1484 	IF(MAX.GT.1)GO TO GETLP
1494 	MAX=XMAX(LNE)
1504 OK,	TXT=TEXT(K,K+MAX-1) 
1514 	K=K+MAX+1
1524 	IF(TXT.EQ.SPACES)GO TO GTTEXT
1534 	MAX=XMAX(LNE)
1544 GETLP2,	IF(TXT(1,1).NE.SPACES)GO TO LEFT
1554 	TXT(1,MAX-1)=TXT(2,MAX)
1564 	TXT(MAX,MAX)=
1574 	GO TO GETLP2 
1584 LEFT,	IF(TXT(MAX-1,MAX).NE.SPACES)GO TO GTTEXT
1594 	LN(LNE)=TXT(1,MAX-2) 
1604 	TXT(1,1)=
1614 	TXT(2,MAX-1)=LN(LNE) 
1624 	MAX=MAX-1
1634 	IF(MAX.GT.0)GO TO LEFT 
1644 GTTEXT,	LN(LNE)=TXT 
1654 	IF(LNE.LT.LNMX)GO TO LNLP2 
1664 	GO TO (CENEXT,CENEXT,LN3,LN4,LN5),LNMX 
1674 	GO TO CENEXT 
1684 LN3,	IF(LN(2).NE.SPACES)GO TO CENEXT
1694 	GO TO AGN
1704 LN4,	IF(LN(3).NE.SPACES)GO TO CENEXT
1714 AGN,	INCR BGNLN 
1724 	IF(BGNLN.GE.LNMX)GO TO CENEXT
1734 	GO TO LNAGN
1744 LN5,	IF(LN(4).NE.SPACES)GO TO CENEXT
1754 	IF(LN(1).NE.SPACES)GO TO AGN 
1764 	IF(LN(2).NE.SPACES)GO TO AGN 
1774 CENEXT,	LNE=
1784 	RETURN 
1794   
1804 ;...		START		;GET FIELD 
1814 ;...	GETFLD, PROC		;GET NEXT FIELD IN INPUT LINE
1824 ;...		STOP		;RETURN 
1834 GETFLD,	TXT=
1844 	END=BGN
1854 GTLP,	INCR END
1864 	IF(CHR(END).EQ.DELIM1)GO TO GETFND 
1874 	IF(CHR(END).EQ.DELIM2)GO TO GETFND 
1884 	IF(CHR(END).EQ.DELIM3)GO TO GETFND 
1894 	IF(END.LT.LAST)GO TO GTLP
1904 	END=BGN
1914 GETFND,	IF(END-1.LE.BGN)GO TO GTLP2 
1924 	TXT=CHR(BGN+1,END-1) 
1934 GTLP2, IF(END.GE.LAST)GO TO GTEXT 
1944 	INCR END 
1954 	IF(CHR(END).EQ.SPACES)GO TO GTLP2
1964 	IF(CHR(END).EQ.TAB)GO TO GTLP2 
1974 	IF(CHR(END).EQ.COMDLM)GO TO GTLP2
1984 GTEXT, END=END-1
1994 	BGN=END
2004 	RETURN 
2014   
2024 ;...		START		;OUTPUT LINE 
2034 ;...	PUT,	PROC		;GET THE RECORD SIZE
2044 ;...		DISK		;OUTPUT THE RECORD
2054 ;...		PROC		;CLEAR THE RECORD 
2064 ;...		STOP		;RETURN 
2074 PUT,	RSIZE=62 
2084 	IF(AREA3.NE.SPACES)GO TO SIZEXT
2094 	RSIZE=47 
2104 	IF(AREA2.NE.SPACES)GO TO SIZEXT
2114 	RSIZE=40 
2124 	IF(AREA1.NE.SPACES)GO TO SIZEXT
2134 	RSIZE=1
2144 SIZEXT,	RSIZE=RSIZE+2 
2154 	XMIT(2,OUTREC(1,RSIZE)) ;OUTPUT THE RECORD 
2164 	OUTDTA=
2174 	RETURN 



Feel free to contact me, David Gesswein djg@pdp8online.com with any questions, comments on the web site, or if you have related equipment, documentation, software etc. you are willing to part with.  I am interested in anything PDP-8 related, computers, peripherals used with them, DEC or third party, or documentation. 

PDP-8 Home Page   PDP-8 Site Map   PDP-8 Site Search