15 ;******************************************* 25 ; SOURCE PRINT5 35 ;******************************************* 45 ; 55 ; SEARCH NAME TABLE FOR MATCH TO 'WORD' 65 ; 75 SEARCH, I= 85 FINDSW= 95 SERCH1, INCR I 105 IF (I.GT.NAMEI) RETURN 115 DATANE=DATANT(I) 125 IF (DATANM.NE.WORD) GOTO SERCH1 135 FINDSW='X' 145 RETURN 155 ; 165 ;GET NEXT LINE AND INSIST ON DIRECTIVE 175 ; 185 GETDIR, CALL GETLIN 195 CALL GATOM 205 IF (FATALI.NE.0) GOTO GETDIR 215 IF (ATMTYP.EQ.1) RETURN 225 ERRCOD=20 235 CALL FATALA 245 GOTO GETDIR 255 ; 265 ;PUT OUT A SOURCE LINE 275 ; 285 LISTIN, LPTLIN= 295 IF (FATALI.NE.0) GOTO LIST1 305 IF (LPTSW.EQ.SPACE) RETURN 315 LIST1, ERRLNM=#INLNUM(1,1)*64+#INLNUM(2,2) 325 ERRLIN=INLINE 335 IF (LINES.LE.0) CALL LISTOF 345 XMIT (2,ERRECD(1,INLSIZ+7)) 355 LINES=LINES-1 365 IF (FATALI.NE.0) CALL ERROUT 375 RETURN 385 ; 395 ;PUT OUT HEADING AT TOP OF PAGE 405 ; 415 LISTOF, IF (LPTOPN.NE.SPACE) GOTO LSTOF1 425 INIT (2,LPT) 435 LPTOPN='X' 445 LSTOF1, FORMS (2,0) 455 INCR PAGES 465 SHPAGE=PAGES 475 XMIT (2,SHDR) 485 FORMS (2,1) 495 LINES=58 505 RETURN 515 ; 525 ; PUT OUT DIAGNOSTIC MESSAGES 535 ; 545 ERROUT, IF (FATALI.EQ.0) RETURN 555 ERRECD= 565 K=4 575 I= 585 ICOL= 595 ERROR2, J=FATALE(K,K+2) 605 ERRLIN(J,J)='^' 615 IF (J.LE.ICOL) GOTO ERROR3 625 ICOL=J 635 ERROR3, K=K+6 645 INCR I 655 IF (I.LT.FATALI) GOTO ERROR2 665 XMIT (2,ERRECD(1,ICOL+7)) 675 LINES=LINES-1 685 ERRLIN= 695 ERRFLG='****' 705 K=1 715 I= 725 ERROR4, IF (LINES.LE.0) CALL LISTOF 735 J=FATALE(K,K+2) 745 ERRLIN(1,3)=FATALE(K+3,K+5) 755 ERRLIN(7,36)=ERRMES(J) 765 ERRLIN(4,4)='-' 775 XMIT (2,ERRECD(1,43)) 785 LINES=LINES-1 795 K=K+3 805 INCR I 815 IF (I.LT.FATALI) GOTO ERROR4 825 FORMS (2,1) 835 LINES=LINES-1 845 FATALI= 855 RETURN 865 ; 875 ;GET INTEGER FROM SOURCE 885 ; 895 GETINT, CALL GATOM 905 IF (ATMTYP.NE.3) GOTO GTINT1 915 IF (DPCOL.EQ.0) RETURN 925 GTINT1, ERRCOD=11 935 NUMLIT(1,1)=1 945 ATOMSZ=1 955 GOTO FATALA 965 ; 975 ;GET NEXT WORD 985 ;IF INTEGER, TREAT IT AS IF IT WERE A WORD 995 ; 1005 WDINT, CALL GATO2, 2497 (#INLINE(J,J).NE.61) GOTO GETL2A^W2P K=(K+7)/8*8+1^X2Z GOTO GETL2B^N3$GETL2A, HOLDIR(K,K)=INLINE(J,J)^Z3. INCR K^K38 IF (INLINE(J,J).EQ.SPACE) GOTO GETL2B^X3B BLANKX='X'^W3LGETL2B, INCR J^P3V IF (J.LE.INLSIZ) GOTO GETL2^W4 INLINE=HOLDIR^Y4* INLSIZ=K^X44 LPTLIN='X'^N4> IF (BLANKX.NE.SPACE) GO 104 ETL6^X4H GOTO GETLIN^V4RGETL3, FINI (1)^V4 ON ERROR GETL4^W5& INIT (1,SYS)^X50 GOTO GETL1^T5:GETL4, INLINE='END'^Y5D INLSIZ=3^X5NGETL6, ICOL=^[5X EOL=^Z6" RETURN^]6,;^W66;GET NEXT ATOM^]6@ ^W6JGATOM, ATMTYP=^Z6T LETSW=^Z6^ DPCOL=^M7( CALL SCANF ;FIND FIRST NON-SPACE^P72 IF (ICHAR.EQ.SPACE) RETURN^L7< ACOL1=ICOL ;REMEMBER FIRST COLUMN^M7F IF (ICHAR.EQ.SQUOTE) GOTO GATM20^]7P;^K7ZGATOM1, IF (ICHAR.LT.'0') GOTO GATOM4^O8$ IF (ICHAR.LE.'9') GOTO GATOM6^O8. IF (ICHAR.LT.'A') GOTO GATOM8^O88 IF (ICHAR.GT.'Z') GOTO GATOM8^Y8B LETSW='X'^X8L GOTO GATOM6^]8V;^K9 ;CHARACTER IS NEITHER LETTER NOR DIGIT^]9*;^K94GATOM4, IF (ICHAR.NE.'.') GOTO GATOM8^P9> IF (DPCOL.NE.0) GOTO GATOM5^X9H DPCOL=ICOL^X9R GOTO GATOM6^V9 GATOM5, ERRCOD=2^X:& CALL FATALB^U:0GATOM6, CALL GETCH^X:: GOTO GATOM1^]:D;^X:N;END OF ATOM^]:X;^U;"GATOM8, ACOL2=ICOL^T;, ATOMSZ=ACOL2-ACOL1^N;6 IF (LETSW.EQ.SPACE) GOTO GATM10^Y;@ ATMTYP=1^[;J WORD=^O;T IF (ATOMSZ.LE.6) GOTO GATOM9^Y;^ ATOMSZ=6^I<(GATOM9, WORD=INLINE(ACOL1,ACOL1+ATOMSZ-1)^Y<2 ERRCOD=3^P<< IF (DPCOL.NE.0) CALL FATALA^X IF (ATOMSZ.LE.0) GOTO GATM15^]>*