File PRINT7.AS (Source fil)

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

17 PROC	;INSTANT DIBOL - GENERATION
27 ;***************************************
37 ; SOURCE  PRINT7
47 ;***************************************
57 ;
67 ;MAIN GENERATING ROUTINE
77 ;
87 GENRAT,	LPTSW=
97 	IF (SWITCH(2,2).NE.'L') GOTO GNRAT1
107 	LPTSW='X'
117 	INIT (2,LPT)
127 	CALL STARTL
137 GNRAT1,	WORKB=
147 	ERRLNM=
157 	PRGLIN=
167 	LEVELS(10)='A'
177 	CALL SETLEV
187 	LEVELN(10)=TOPLEV
197 	INIT (4,OUT,PROGF,PROGU)
207 	PRGLIN='START   ;'
217 	CALL PROCI9	;GENERATE 'START' LINE
227 	CALL PUTDLR	;GENERATE LISTING RECORD
237 	CALL PUTINR	;GENERATE INPUT RECORD
247 	CALL PUTRHD	;GENERATE REPORT HEADING RECORD
257 	CALL PUTHDS	;GENERATE HEAD1&HEAD2 RECORDS
267 	CALL PUTUHD	;GENERATE USER HEADINGS
277 	CALL PUTMES	;GENERATE TOTAL MESSAGES
287 	CALL PUTMSK	;GENERATE MASKS
297 	CALL PUTWRK	;GENERATE WORK RECORD
307 	CALL PUTACS	;GENERATE ACCUMULATOR RECORD
317 	CALL PUTSAV	;GENERATE 'SAVE' FIELDS
327 ;
337 	IF (LPTSW.NE.SPACE) CALL LSTOP
347 	CALL PROCI	;GENERATE INITIAL PROCEDURE CODE
357 	CALL PUTBRC	;GENERATE BREAK COMPARES
367 	CALL PUTBRP	;GENERATE BREAK PRINTING ROUTINES
377 	CALL PUTRSC	;GENERATE BREAK RESETTING ROUTINES
387 	CALL PUTCMP	;GENERATE COMPUTATION & DETAIL PRINT
397 	CALL PUTOTL	;GENERATE COMMON TOTALER
407 	CALL PUTRES	;GENERATE COMMON RESET CODE
417 	CALL PUTOF	;GENERATE TOP-OF-FORM CODE
427 ;
437 	CALL PUTBL
447 	PRGLIN='END'
457 	PLSIZ=3
467 	CALL PUTPL
477 	FINI (4)
487 	IF (LPTSW.EQ.SPACE) STOP
497 	FORMS (2,0)
507 	FINI (2)
517 	STOP
527 ;
537 ; GENERATE REPORT HEADING RECORD
547 ;
557 PUTRHD,	CALL PUTBL
567 	PRGLIN=GENREC(1)
577 	PLSIZ=29
587 	CALL PUTPL
597 	PRGLIN=PREC01
607 	PRGLIN(10,11)='6,'
617 	PRGLIN(12,12)=SQUOTE
627 	PRGLIN(13,18)=PROGID
637 	PRGLIN(19,19)=SQUOTE
647 	PLSIZ=19
657 	CALL PUTPL
667 	CALL PUTRH2
677 	PRGLIN='XXHDAT, A8'
687 	PLSIZ=10
697 	CALL PUTPL
707 	CALL PUTRH2
717 	PRGLIN=PREC01
727 	PRGLIN(10,17)='5, PAGE'
737 	PRGLIN(12,12)=SQUOTE
747 	PRGLIN(18,18)=SQUOTE
757 	PLSIZ=18
767 	CALL PUTPL
777 	PRGLIN='XXHPAG, A4'
787 	PLSIZ=10
797 	GOTO PUTPL
807 ;
817 PUTRH2,	J=(PWIDTH-23)/2
827 	IF (J.GE.3) GOTO PUTFIL
837 	J=3
847 	GOTO PUTFIL
857 ;
867 ;GENERATE INPUT RECORD
877 ;
887 PUTINR,	CALL PUTBL
897 	PRGLIN=GENREC(2)
907 	PLSIZ=29
917 	CALL PUTPL
927   
937 	I=1
947 PUTIR1,	DATANE=DATANT(I)
957 	IF (DATAWK.NE.SPACE) RETURN
967 	CALL PUTDAT
977 	INCR I
987 	IF (I.LE.NAMEI) GOTO PUTIR1
997 	RETURN
1007 ;
1017 ;GENERATE DETAIL LISTING RECORD
1027 ;
1037 PUTDLR,	CALL PUTBL
1047 	PRGLIN=GENREC(3)
1057 	PLSIZ=31
1067 	CALL PUTPL
1077 	IF (ACNUM.EQ.0) GOTO PTDR0B
1087 	IF (BIGHS.GE.6) GOTO PTDR0A
1097 	BIGHS=6
1107 PTDR0A,	BIGHS=BIGHS+7
1117 	J=FIRSTA-BIGHS
1127 	IF (J.GE.0) GOTO PTDR0C
1137 	IF (PWIDTH-J.GT.LINMAX) GOTO PTDR0B
1147 	LISTE=LISTER(1)
1157 	LISTFS=LISTFS-J
1167 	LISTER(1)=LISTE
1177 	PWIDTH=PWIDTH-J
1187 	FIRSTA=BIGHS
1197 	GOTO PTDR0C
1207 PTDR0B,	BIGHS=
1217   
1227 PTDR0C,	I=1
1237 PTDLR1,	LISTE=LISTER(I)
1247 	IF (LISTFS.EQ.0) GOTO PTDLR3
1257 	J=LISTFS
1267 	CALL PUTFIL
1277 PTDLR3,	PRGLIN='XXPF00, A'
1287 	CALL BLDESD
1297 	PRGLIN(5,6)=DESCRP
1307 	J=LISTIS
1317 	CALL BLDESA
1327 	PRGLIN(10,12)=DESCRP
1337 	CALL PUTPL
1347 	INCR I
1357 	IF (I.LE.LISTI) GOTO PTDLR1
1367 	IF (BIGHS.LE.0) RETURN
1377 	PRGSTM='RECORD,X'
1387 	PLSIZ=16
1397 	CALL PUTPL
1407 	J=FIRSTA-BIGHS
1417 	IF (J.LE.0) GOTO PTDLR4
1427 	PRGLIN=PREC01
1437 	CALL BLDESA
1447 	PRGLIN(10,12)=DESCRP
1457 	PLSIZ=12
1467 	CALL PUTPL
1477 PTDLR4,	PRGLIN='XXTOTM, A'
1487 	J=BIGHS
1497 	CALL BLDESA
1507 	PRGLIN(10,12)=DESCRP
1517 	PLSIZ=12
1527 	GOTO PUTPL
1537 ;
1547 ;GENERATE HEAD1&HEAD2 RECORDS
1557 ;
1567 PUTHDS,	TEMP4=HEAD1S*2-1
1577 	IF (TEMP4.GT.PWIDTH) GOTO PUTHD2
1587 	I=HEAD1S
1597 PUTHD1,	HEAD1T(TEMP4,TEMP4)=HEAD1T(I,I)
1607 	TEMP4=TEMP4-1
1617 	HEAD1T(TEMP4,TEMP4)=
1627 	TEMP4=TEMP4-1
1637 	I=I-1
1647 	IF (I.GT.1) GOTO PUTHD1
1657 	HEAD1S=HEAD1S*2-1
1667 ;
1677 PUTHD2,	IF (HEAD1S.NE.0) GOTO PUTHD3
1687 	IF (HEAD2S.EQ.0) RETURN
1697 PUTHD3,	CALL PUTBL
1707 	PRGLIN=GENREC(4)
1717 	CALL PUTHD4
1727 	PRGLIN=GENREC(5)
1737 	HEAD1T=HEAD2T
1747 	K=HEAD1S
1757 	HEAD1S=HEAD2S
1767 	CALL PUTHD4
1777 	HEAD1S=K
1787 	RETURN
1797   
1807 PUTHD4,	IF (HEAD1S.EQ.0) RETURN
1817 	PLSIZ=26
1827 	CALL PUTPL
1837 	J=(PWIDTH-HEAD1S)/2
1847 	IF (J.GT.0) CALL PUTFIL
1857 PUTHD5,	I=1
1867 PTHD5A,	PRGLIN=PREC01
1877 	IF (HEAD1S.LE.60) GOTO PUTHD6
1887 	PRGLIN(10,12)='60,'
1897 	PRGLIN(13,13)=SQUOTE
1907 	PRGLIN(14,73)=HEAD1T(I,I+59)
1917 	PRGLIN(74,74)=SQUOTE
1927 	PLSIZ=74
1937 	CALL PUTPL
1947 	HEAD1S=HEAD1S-60
1957 	I=I+60
1967 	GOTO PTHD5A
1977 PUTHD6,	IF (HEAD1S.GT.9) GOTO PUTHD7
1987 	PRGLIN(10,10)=HEAD1S(3,3)
1997 	PRGLIN(11,11)=','
2007 	GOTO PUTHD8
2017 PUTHD7,	PRGLIN(10,11)=HEAD1S(2,3)
2027 	PRGLIN(12,12)=','
2037 PUTHD8,	PRGLIN(13,13)=SQUOTE
2047 	PRGLIN(14,HEAD1S+13)=HEAD1T(I,I+HEAD1S-1)
2057 	PLSIZ=HEAD1S+14
2067 	PRGLIN(PLSIZ,PLSIZ)=SQUOTE
2077 	GOTO PUTPL
2087 ;
2097 ;GENERATE WORK RECORD
2107 ;
2117 PUTWRK,	CALL PUTBL
2127 	PRGLIN=GENREC(6)
2137 	PLSIZ=31
2147 	CALL PUTPL
2157 	I=1
2167 PTWRK1,	PRGLIN=WRKSV(I)
2177 	PLSIZ=12
2187 	CALL PUTPL
2197 	INCR I
2207 	IF (I.LE.WRKSC) GOTO PTWRK1
2217 	PRGLIN='XXFILE, A6'
2227 	PLSIZ=10
2237 	IF (FILNAM.EQ.SPACE6) GOTO PTWRK2
2247 	PRGLIN(11,11)=','
2257 	PRGLIN(12,12)=SQUOTE
2267 	PRGLIN(19,19)=SQUOTE
2277 	PRGLIN(13,18)=FILNAM
2287 	PLSIZ=19
2297 PTWRK2,	CALL PUTPL
2307 	PRGLIN='XXUNIT, D2'
2317 	PLSIZ=10
2327 	IF (FILUNT.EQ.0) GOTO PTWRK3
2337 	PRGLIN(11,11)=','
2347 	I=FILUNT
2357 	CALL BLDESD
2367 	PRGLIN(12,13)=DESCRP
2377 	PLSIZ=13
2387 PTWRK3,	CALL PUTPL
2397 	IF (COMPI.LE.0) RETURN
2407 	I=1
2417 PTWRK4,	DATANE=DATANT(I)
2427 	IF (DATAWK.NE.SPACE) CALL PUTDAT
2437 	INCR I
2447 	IF (I.LE.NAMEI) GOTO PTWRK4
2457 	RETURN
2467 ;
2477 ;GENERATE ACCUMULATOR RECORD
2487 ;
2497 PUTACS,	IF (ACNUM.LE.0) RETURN
2507 	I=1
2517 PUTAC1,	LISTE=LISTER(I)
2527 	IF (LISTAC.EQ.0) GOTO PUTAC5
2537 	PRGLIN='XXAC00,   D'
2547 	PRGLIN(9,10)=TOPLEV
2557 	CALL BLDESB
2567 	PRGLIN(5,6)=DESCRP
2577 	DATANE=DATANT(LISTID)
2587 	J=DATAS+2
2597 	IF (J.LE.15) GOTO PUTAC4
2607 	J=15
2617 PUTAC4,	CALL BLDESA
2627 	PRGLIN(12,13)=DESCRP
2637 	PLSIZ=13
2647 	CALL PUTPL
2657 PUTAC5,	INCR I
2667 	IF (I.LE.LISTI) GOTO PUTAC1
2677 	RETURN
2687 ;
2697 ; GENERATE BREAK SAVE REGISTERS
2707 ;
2717 PUTSAV,	I=1
2727 PUTSV1,	DATANE=DATANT(I)
2737 	IF (DATALV.EQ.0) GOTO PUTSV2
2747 	PRGLIN='XX0000,'
2757 	PRGLIN(3,3)=DATALV
2767 	DESCRP=I
2777 	CALL BLDESC
2787 	PRGLIN(4,6)=DESCRP
2797 	PRGLIN(9,9)=DATAM
2807 	J=DATAS
2817 	CALL BLDESA
2827 	PRGLIN(10,12)=DESCRP
2837 	PLSIZ=12
2847 	CALL PUTPL
2857 PUTSV2,	INCR I
2867 	IF (I.LE.NAMEI) GOTO PUTSV1
2877 	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