File PRINT1.AS (Source fil)

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

11 	START	;PRINT - "INSTANT DIBOL"
21 ;******************************************
31 ; SOURCE  PRINT1
41 ;******************************************
51 	
61 ;COPYRIGHT 1973
71 ;DIGITAL EQUIPMENT CORPORATION
81 ;MAYNARD, MASS.  01754
91 	
101 ;THIS SOFTWARE IS FURNISHED TO PURCHASER UNDER A LICENSE FOR USE
111 ;ON A SINGLE COMPUTER SYSTEM AND CAN BE COPIED (WITH INCLUSION
121 ;OF DEC'S COPYRIGHT NOTICE) ONLY FOR USE IN SUCH SYSTEM, EXCEPT
131 ;AS MAY OTHERWISE BE PROVIDED IN WRITING BY DEC.
141 ;
151 ;THE INFORMATION IN THIS DOCUMENT IS SUBJECT TO CHANGE WITHOUT
161 ;NOTICE AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL
171 ;EQUIPMENT CORPORATION.
181 ;
191 ;DEC ASSUMES NO RESPONSIBILITY FOR THE USE OR RELIABILITY OF
201 ;ITS SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPLIED BY DEC.
211 ;
221 ;COMPILATION INSTRUCTIONS:
231 ;	.RUN COMP,PRINT1,PRINT2,PRINT3,PRINT4,PRINT5,PRINT6
241 ;	.SAVE PRINTA
251 ;	.RUN COMP,PRINT1,PRINT2,PRINT7,PRINT8,PRINT9,PRINT0
261 ;	.SAVE PRINTB
271 ;	.RUN PRINTA+PRINTB,INPUT
281 	
291 	
301 RECORD		;PARAMETERS OF THE PROGRAM
311 ALFMAX,	D3,132	;MAXIMUM SIZE OF ALPHA LITERAL
321 LINMAX,	D3,132	;MAXIMUM NUMBER OF COLUMNS IN PRINTER
331 DATMAX,	D2,20	;MAXIMUM NUMBER OF DATA ITEMS
341 LSTMAX,	D2,12	;MAXIMUM NUMBER OF LIST ITEMS
351 TITMAX,	D3,030	;MAXIMUM SIZE OF ANY TITLE
361 PICMAX,	D2,22	;MAXIMUM SIZE OF ANY PICTURE
371 ERRMAX,	D2,10	;MAXIMUM NUMBER OF ERRORS PER LINE
381 EXPMAX,	D1,8	;MAXIMUM NUMBER OF COMPUTE STATEMENTS
391 XIMAX,	D1,6	;MAXIMUM NUMBER OF SUB-EXPRESSIONS
401   
411 RECORD	ERRECD	;FOR ERROR LINES
421 ERRLNM,	D4	;LINE NUMBER
431 	,A1
441 ERRLIN,	A126	;TEXT OF LINE
451 	RECORD,X
461 ERRFLG,	A4	;TO CONTAIN '****' ON DIAG LINE
471   
481 RECORD		;TO GET AT THE
491 XLINE,	A2	;  RECORD SIZE OF INPUTL
501 RECORD INPUTL	;INPUT LINE, FROM SOURCE FILES
511 INLNUM,	A2	;LINE NUMBER
521 INLINE,	A126
531  
541 RECORD
551 SWITCH,	A2,S	;COMMAND SWITCHES
561   
571 RECORD	WORKA	;WORK AREA
581 LPTOPN,	A1	;NON-SPACE WHEN LPT OPEN
591 LPTSW,	A1	;NON-SPACE IF LISTING REQUIRED
601 LPTLIN,	A1	;NON-SPACE WHEN THERE IS A LINE TO PRINT
611 LINES,	D2	;COUNT OF LINES LEFT ON PAGE
621 PAGES,	D2	;CURRENT PAGE NUMBER
631 EOL,	A1	;NON-SPACE WHEN END-OF-INPUT-LINE SEEN
641 FINDSW,	A1	;NON-SPACE IF DATA NAME FOUND IN SEARCH
651 INLSIZ,	D3	;SIZE OF INPUT LINE
661 NUMHDR,	D2	;NUMBER OF OBJECT HEADER LINES
671 WORD,	A6	;CURRENT ATOM, IF IT IS A WORD
681 NUMLIT,	D15	;CURRENT ATOM, IF NUMERIC LITERAL
691 ATMTYP,	D1	;ATOM TYPE
701 LETSW,	A1	;NON-SPACE  IF LETTER SEEN IN CURRENT ATOM
711 ATOMSZ,	D3	;SIZE OF CURRENT ATOM
721 ATOMDP,	D2	;NUMBER OF DECIMAL PLACES IN ATOM
731 DPCOL,	D3	;INPUT COLUMN CONTAINING DECIMAL POINT
741 ICOL,	D3	;INPUT COLUMN NUMBER
751 ACOL1,	D3	;FIRST INPUT COLUMN OF CURRENT ATOM
761 ACOL2,	D3	;LAST INPUT COLUMN, PLUS 1, OF CURRENT ATOM
771 SCOL,	D3	;INPUT COLUMN FOR '+' OR '-' IN EXPRESSION
781 ICHAR,	A1	;AN INPUT CHARACTER
791 ERRCOD,	D2	;ERROR CODE NUMBER
801 ERRCOL,	D3	;INPUT COLUMN WHERE ERROR DETECTED
811 ACNUM,	D2	;NEXT AVAILABLE ACCUMULATOR
821 I,	D3	;INDEX
831 J,	D3	;INDEX
841 K,	D3	;INDEX
851 XI,	D3
861 COMPI,	D3	;INDEX TO COMPUTE STATEMENT TABLE
871 LISTI,	D3	;INDEX TO LIST TABLE
881 NAMEI,	D3	;INDEX TO NAME TABLE
891 FATALI,	D2	;INDEX TO ERROR TABLE
901 FATALC,	D4	;COUNT OF ERRORS
911 FATALM,	D6	;TO BUILD 'FATALE' ENTRY
921 FATALE,	10D6	;TO HOLD ERROR CODES FOR CURRENT LINE
931 LEVELS,	10A1	;USED LEVEL-BREAK INDICATORS
941 LEVELN,	10D2	;RELATIVE LEVEL NUMBERS
951 XTABLE,	6A14	;
961 HLDCOL,	D3	;TO HOLD COL NUMBER OF COMPUTED RESULT
971 HOLDIR,	A126	;TO HOLD INPUT LINE WHILE REFORMATTING
981 HOLDNM,	A6	;TO HOLD RESULT NAME WHILE PARSEING COMPUTE
991 HOLDDP,	D2	;HOLD ARGUEMENT TO '#' DURING COMPUTE
1001 EXPRMD,	A1	;MODE OF CURRENT EXPRESSION
1011 XASIZ,	D3	;TO HOLD SIZE DURING COMPUTE PARSE
1021 XADP,	D2	;LIKEWISE FOR DECIMAL PLACES
1031 PWIDTH,	D3	;WIDTH OF REPORT
1041 FIRSTA,	D3	;NUMBER OF COLUMNS TO LEFT OF FIRST TOTAL
1051 BIGHS,	D3	;LARGEST TOTAL MESSAGE
1061 TOPFLG,	D2	;LEVEL AT WHICH PAGE IS SKIPPED
1071 BLANKX,	A1	;NON-SPACE WHEN INPUT LINE IS NON-SPACE
1081   
1091 RECORD		;CONSTANTS
1101 SQUOTE,	A1	;SINGLE QUOTE (SET UP BY INITIALIZE)
1111 SPACE,	A1,' '	;SINGLE SPACE
1121 TODAY,	D6,D	;TODAY'S DATE
1131 MONTAB,	12A3,'JAN','FEB','MAR','APR','MAY','JUN','JUL','AUG','SEP','OCT','NOV','DEC'
1141 	RECORD,X	;REDEFINITION OF 'SQUOTE' TO
1151 SQUOTX,	D1	;  CREATE A SINGLE QUOTE
1161   
1171 RECORD	SHDR	;LISTING HEADER LINE
1181 ,	A21,'INSTANT DIBOL V3.0328'
1191 ,	A10
1201 SHDAY,	A2
1211 ,	A1,'-'
1221 SHMON,	A3
1231 ,	A1,'-'
1241 SHYEAR,	D2
1251 ,	A10
1261 ,	A5,'PAGE '
1271 SHPAGE,	A2
1281   
1291 RECORD		;KEEP LISTING DATA
1301 LISTE,	A74	;TO BUILD ONE ENTRY
1311 LISTER,	12A74	;TABLE OF ENTRIES
1321 	RECORD,X
1331 LISTID,	D3	;NUMBER OF THE ITEM
1341 LISTIT,	A30	;TITLE
1351 LISTAC,	D2	;ACCUMULATOR (IF NON-ZERO)
1361 LISTPC,	A22	;PICTURE
1371 LISTHW,	D3	;WIDTH OF HEADING
1381 LISTIS,	D3	;SIZE OF ITEM
1391 LISTNH,	D2	;NUMBER OF HEADING LINES
1401 LISTFS,	D3	;SIZE OF PRECEDING FILLER
1411 LISTHS,	D3	;TOTAL SIZE OF HEADING
1421 LISTWN,	D3	;POINTER TO NEXT HEADING PIECE
1431   
1441 RECORD		;INFO FROM 'IDENT' DIRECTIVE
1451 PROGID,	A6	;PROGRAM NAME
1461 AUTHOR,	A24	;AUTHOR
1471 PROGU,	D2	;OUTPUT UNIT (0=NOT SPWCIFIED)
1481   
1491 RECORD		;FIRST HEADER
1501 HEAD1T,	A132	;TEXT
1511 HEAD1S,	D3	;SIZE OF TEXT
1521   
1531 RECORD		;SECOND HEADER
1541 HEAD2T,	A132	;TEXT
1551 HEAD2S,	D3	;SIZE OF TEXT
1561   
1571 RECORD		;INFO FROM 'INPUT' DIRECTIVE
1581 FILNAM,	A6	;FILE NAME (SPACES = NOT SPECIFIED)
1591 FILUNT,	D2	;FILE UNIT (0=NOT SPECIFIED)
1601 SUMARY,	A1	;SUMMARY SWITCH (SPACE=NO SUMMARY)
1611   
1621 RECORD		;INFO ABOUT DATA ITEMS
1631 DATANE,	A14	;TO BUILD ONE ENTRY
1641 DATANT,	20A14	;TABLE OF ENTRIES
1651 	RECORD,X
1661 DATANM,	A6	;DATA NAME
1671 DATAM,	A1	;MODE (A OR D)
1681 DATAS,	D3	;SIZE OF THE ITEM
1691 DATADP,	D2	;NUMBER OF DECIMAL PLACES
1701 DATALV,	D1	;LEVEL OF BREAK (0=NO BREAK)
1711 DATAWK,	A1	;SPACE IF INPUT ITEM
1721   
1731 RECORD		;TO HOLD COMPUTED ENTRY
1741 XNAME,	A6
1751 XMOD,	A1
1761 XSIZ,	D3
1771 XDP,	D2
1781 ,	D1
1791 XWK,	A1
1801 	RECORD,X
1811 XENTRY,	A14
1821 RECORD
1831 COMPT,	8A118	;TO HOLD COMPUTE LINES
1841   
1851 RECORD		;ERROR MESSAGES
1861 ,A30,'SYNTAX ERROR                  ' ;1
1871 ,A30,'IMPROPER NUMERIC LITERAL      ' ;2
1881 ,A30,'PICTURE TOO LONG              '  ;3
1891 ,A30,'LITERAL TOO LONG              '  ;4
1901 ,A30,'IMPROPER LITERAL              '  ;5
1911 ,A30,'NEED FILE NAME                '  ;6
1921 ,A30,'INTEGER FROM 1-15 REQUIRED    '  ;7
1931 ,A30,'ALPHA LITERAL REQUIRED        '  ;8
1941 ,A30,'HEADER IS TOO LONG            '  ;9
1951 ,A30,'NO ENDING QUOTE               '  ;10
1961 ,A30,'INTEGER REQUIRED              '  ;11
1971 ,A30					;12
1981 ,A30,'MUST BE S                     '  ;13
1991 ,A30,'INTEGER FROM 1-132 REQUIRED   '  ;14
2001 ,A30,'NOT DEFINED                   '  ;15
2011 ,A30,'TOO MANY LIST ITEMS           '  ;16
2021 ,A30,'TOO MANY DATA ITEMS           '  ;17
2031 ,A30,'IMPROPER DEFINITION           '  ;18
2041 ,A30,'MUST BE IDENT                 '  ;19
2051 ,A30,'UNKNOWN DIRECTIVE             '  ;20
2061 ,A30,'NO INPUT DIRECTIVE            '  ;21
2071 ,A30,'NO PRINT DIRECTIVE            '  ;22
2081 ,A30,'MUST BE NUMERIC ITEM          '  ;23
2091 ,A30,'NO INPUT ITEMS                '  ;24
2101 ,A30,'NO PRINT ITEMS                '  ;25
2111 ,A30,'TOO MANY COLUMNS IN REPORT    '  ;26
2121 ,A30,'TOO MANY RIGHT PARENTHESES    '  ;27
2131 ,A30,'NOT ENOUGH RIGHT PARENTHESES  '  ;28
2141 ,A30,'TOO MANY LEFT PARENTHESES     '  ;29
2151 ,A30,'IMPROPER USE OF DECIMAL PLACES'  ;30
2161 ,A30,'ALREADY DEFINED               '  ;31
2171 ,A30,'TOO MANY COMPUTE STATEMENTS   '  ;32
2181 RECORD,X
2191 ERRMES,	32A30
2201 ;
2211 RECORD
2221 PICMSP,	15D2,01,02,03,05,06,07,09,10,11,13,14,15,17,18,19
2231 PICMSK,	A19,'XXX,XXX,XXX,XXX,XXX'



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