$(1) LIT . PREQ . DEFINE THE REGISTERS . NON-ARITHMETIC STATEMENT SCAN 282000 . 282100 NARLNM* S,H2 B11,NA30 . ENTRANCE FOR LONG NAMES S B11,NA15 . FLAG TO RETURN TO N1STD SZ NA13 J NARMS NARM* S,H2 B11,NA30 S A0,NA13 . SET DROP/RESTORE 1/-1 J NARM1 NAR* S,H2 B11,NA30 282200 SZ NA13 282300 NARM1 SZ NA15 . CLEAR LONG NAMES FLAG NARMS LMJ B11,NGX6 . GET FIRST TWO CHARACTERS + 2 282500 SSL A2,24 282510 L A3,(1,0) 282600 L,M R1,NA12 282700 SE,H1 A2,NA21,*A3 SEARCH TABLE 282800 J NA67 NOT IN 282900 L,H2 A3,NA21-1,A3 283000 J 0,A3 BRANCH ON 1ST 2 CHARACTERS 283020 . 283100 NA300 DL A2,STDMSK . CERTAIN STATEMENTS DSL A2,0,A0 . CAN BE DEACTIVATED SZ NA13 . ALLOW ONE PASS TO LOOK FOR MACRO L A2,MACNO . GET MACRO LEVEL TLE,M A2,2 . SMALL? JB A3,NA67J . SO THEY CAN BE MACROS J *NA30 REENT . 283400 . 283500 . 283600 . ERROR ROUTINE 283700 . 283800 NA3ERR TZ NA13 REENT J *NA3ER 284100 LMJ B11,SGX3 SAVE PLACE WHERE ERROR OCCURRED LMJ B11,FINDM SEE IF MACRO IS A POSSIBILITY LMJ B11,RGX3 CONTROL ONLY RETURN TI THERE IS NO MACRO S R15,NA13 284200 SZ A0 SET FOR NO VALID STATEMENT TYPE TZ NA15 . TEST FOR LONG NAMES RETURN J NA30 TZ MACNO IS MACRO ACTIVE SLJ MACLST EDIT MACRO STATEMENT TZ FEOS 284300 J NA3ER1 END OF STATEMENT 284400 LMJ B11,PERR 284500 FORM6 1,27,0 284600 J *NA3ER 284700 NA3ER1 LMJ B11,PERR 284800 FORM6 0,4,0 284900 J *NA3ER 285000 . 285100 . 285200 . 285300 . ARE NEXT CHARACTERS 'FUNCTION) 285400 . 285500 NA3FUR LMJ B11,SGX1 LMJ B11,NGX (NO RETURN-JUMPS TO R1(NA300) 285800 + 8 285900 TE A2,('FUNCTI') 286000 J NA3FU1 286100 TE A3,('ON ') 286200 J NA3FU1 L,H1 A0,*NA3FU 286400 J NA300 286500 NA3FU1 LMJ B11,RGX1 RESET GX(1) L,H2 A0,*NA3FU 286700 J NA300 286800 . 286900 . 287000 . 287100 . AS - ASSIGN 287200 NA40 LMJ B11,NGX6 287300 +3 TNE A2,('CII ') J NAASCI . ASCII DIRECTIVE TE A2,('SIG ') SLJ NA3ER 287600 LMJ B11,NGX +1 TE A2,('N ') SLJ NA3ER L,M A0,5 ST=5,ASSIGN 287700 J NA300 287800 . 287900 . AB-ABNORMAL 288000 NA41 LMJ B11,NGX6 288100 + 6 288200 TE A2,('NORMAL') 288300 SLJ NA3ER 288400 L,M A0,41 ST=41,ABNORMAL 288500 J NA300 288600 . 288700 . BA-BACKSPACE 288800 NA42 LMJ B11,NGX 288900 + 7 289000 TNE A2,('CKSPAC') 289100 TE A3,('E ') 289200 SLJ NA3ER 289300 L,M A0,22 ST=22,BAKSPACE 289400 J NA300 289500 . 289600 . BL-BLOCKDATA 289700 NA43 LMJ B11,NGX 289800 + 7 289900 TNE A2,('OCKDAT') 290000 TE A3,('A ') 290100 SLJ NA3ER 290200 L,M A0,63 ST=63,BLOCKDATA 290300 J NA300 290400 . 290500 . CA-CALL 290600 NA44 LMJ B11,NGX6 290700 + 2 290800 TE A2,('LL ') 290900 SLJ NA3ER 291000 L,M A0,16 ST=16,CALL 291100 J NA300 EXIT 291150 . 291200 . CO-COMMON,COMPLEX,COMPLEX FUNCTION CONTINUE,COMPILER NA45 LMJ B11,NGX6 291400 + 4 291500 TE A2,('MMON ') 291600 J NA451 291700 NA454 L,M A0,62 ST=62,COMMON 291800 J NA300 291900 NA451 TE A2,('MPLE ') 292000 J NA452 292100 LMJ B11,GX 292200 J NA67 EOS 292300 TE,M A0,'X' 292400 SLJ NA3ER 292500 SR,S1 R15,CRREFL . SHOW THAT COMPLEX STATEMENTS OCCURRED LMJ B11,ASTKN CHECK FOR *N J $+1 IGNORE IT, IF PRESENT SLJ NA3FU ST=60, COMPLEX FUNCTION 292600 + 60,61 ST=61, COMPLEX 292700 . 292800 NA452 TNE A2,('NTIN ') 292900 J NA453 IT IS CONTINUE 293000 TNE A2,('MPIL ') J N456 SLJ NA3ER 293100 J NA454 GO TRY COMMON 293200 NA453 LMJ B11,NGX6 293300 + 2 293400 TE A2,('UE ') 293500 SLJ NA3ER 293600 L,M A0,59 ST=59, CONTINUE 293700 J NA300 293800 . 293900 N456 LMJ B11,NGX6 +2 TE A2,('ER ') SLJ NA3ER L A2,COMP-1 TEST IF CODE FOR COMP TE A2,('COMP ') STATEMENT HAS BEEN OVERWIRITTEN J N456J L,M A0,28 J NA300 N456J LMJ B11,PERR DO NOT RECOGNIZE STATEMENT IF CODE OVERLAID FORM6 1,220,0 OVERWIRTTEN BY LOOP TABLE L,M A0,0 SET STATEMENTY TYPE TO ZERO J NA300 . DA-DATA 294000 NA46 LMJ B11,NGX6 294100 + 2 294200 TE A2,('TA ') 294300 SLJ NA3ER 294400 L,M A0,58 ST=58, DATA 294500 J NA300 294600 . 294700 . DI-DIMENSION 294800 NA47 LMJ B11,NGX 294900 + 7 295000 TNE A2,('MENSIO') 295100 J NA475 295105 TE A2,('AGNOST') 295110 J NA476 ASSUME DIMENSION 295120 TE A3,('I ') 295130 SLJ NA3ER NOT=I 295135 LMJ B11,GX 295140 SLJ NA3ER EOS 295150 TE,M A0,'C' 295160 SLJ NA3ER 295170 L,M A0,40 ST. TYPE=DIAGNOSTIC 295180 J NA300 295190 NA475 TE A3,('N ') 295200 NA476 SLJ NA3ER ERROR AFTER ASSUME DIMENSION 295300 L,M A0,57 ST=57, DIMENSION 295400 J NA300 295500 . 295600 . DO-DOUBLE PRECISION, DOUBLE PRECISION FUNCTION, DO 295700 NA48 LMJ B11,GX 295800 J NA67 EOS 295900 TNE,M A0,'U' 296000 J NA481 X=U 296100 NA48B SZ FNXT . L,M A0,21 ST=21,DO 296300 J NA300 296400 NA481 LMJ B11,NGX 296500 + 12 296600 L,M A0,'U' . RESTORE CHARACTER TNE A2,('BLEPRE') 296700 TE A3,('CISION') 296800 J NA48B . ASSUME DO SR,S2 R15,CRREFL . SHOW THAT DOUBLE PREC. STMTS OCCURRED NA481A TZ CRCNVT J NA652A TREAT DOUBLE AS REAL SLJ NA3FU . ST=55, DBL PREC + 56,55 . ST=56, DBL PREC FUNC . 297200 NA49 LMJ B11,GX 297400 J NA67 297500 TE,M A0,'D' 297600 J NA493 LMJ B11,SGX1 LMJ B11,NGX6 +2 TNE A2,(' ') J NA492 . IT'S AN END TE A2,('IF ') J NA49Q L,M A0,0 . DROP I.D. LMJ B11,DROP . CHECK DROP/RESTORE S B11,IFELSE . SET O.K. AFTER IF L,XH2 A1,FLF TP A1 J NAENDXT L A0,DL TNE,S3 A0,LGDOTS,A1 . TEST STRUCTURE MISMATCH J $+3 LMJ B11,PERR FORM6 2,11,0 JZ A1,NAENDXT L,H2 A0,LGIFSB,A1 . POSSIBLE END OF IFELSE SSC A0,30 A A0,(0240000,021) . END OF IFELSE TZ,S3 LGIFSB,A1 . FLAG FOR END OF IFELSE S A0,SLOUT,*B9 L,H2 A2,LGELSE,A1 . RESTORE START OF IF TZ,S3 LGIFSB,A1 . TEST FOR IFELSE S,H2 A2,LGIFSB,A1 . SZ,S3 LGIFSB,A1 . CLEAR IFELSE FLAG L,H2 A0,LGIFSB,A1 SSC A0,30 A A0,(0240000,1) BASE FOR TERMINAL LOGICAL IF SEPARATER TZ,S3 LGIEXT,A1 A,M A0,040 . FLAG FOR LABELS IN IF S A0,SLOUT,*B9 L,S3 A0,LGIEXT,A1 TZ A0 S,S3 A0,LGIEXT-1,A1 . MOVE LABEL FLAG DOWN ONE LEVEL L A0,LGLABL,A1 S A0,PLABL SZ,H2 GNSFL . PREVENT DUPLICATE ENTRY OF LABEL AN,M A1,1 TN A1 S,H2 A1,FLF L,M A0,$+3 S,H2 A0,PS40 J PS401 L,M A0,59 TN,XH2 FLF J NA300 NAENDXT . LMJ B11,PERR FORM6 2,5,0 NA49J L,M A0,59 J NA300 NA49Q L A5,A2 LMJ B11,NGX6 +2 L A1,A5 SSL A1,24 DSL A1,12 TNE A2,('LIST ') J NA49L TNE A2,('LOOP ') . J NA492P . ENDLOOP TE A2,('FILE ') 298100 J NA492A . NOT RECOGNIZED L,M A0,24 ST=24, END FILE 298300 J NA300 298400 NA49L L,M A0,1 . DROP I.D. LMJ B11,DROP . CHECK DROP/RESTORE L A0,(0330000,0) S A0,SLOUT,*B9 J NA49LE NA492P L,M A0,2 . DROP I.D. LMJ B11,DROP . CHECK DROP/RESTORE L A1,DL . GET LOOP LEVEL JZ A1,NOLOOP . OOPS L A4,(100000) . ILLEGAL LABEL TE,H1 A4,DOTAB,A1 . GOTIT? J LOOPERR . OOPS LMJ B11,EDO . END IT! LMJ B11,EDO2 . MORE PROCESSING L,M A0,59 . IGNORE FOR NOW J NA300 . LOOPERR LMJ B11,PERR . FORM6 1,37,0 . IMPROPER ENDING J NA49J . NOLOOP LMJ B11,PERR . FORM6 1,13,0 . CURRENT DO NEST IS EMPTY J NA49J . . 298500 . 298590 NA492A SLJ NA3ER . NOT RECOGNIZED NA492 LMJ B11,RGX1 L,M A0,20 ST=20, 'END' 298610 TZ FCPEND . ENS FOR INCLUDES CAN NOT BE DROPPED J *NA30 DL A2,STDMSK DSL A2,0,A0 TNZ MACNO JB A3,NA67 . ALLOW END TO BE MACRO L,XH2 A1,FLF . CURRENT NESTED IF*LEVEL TNZ MACNO . ONLY TEST FINAL END CARD JNZ A1,NAENDXT . IF* NOT BALANCED IF NON ZERO J NA300 298700 NA493 TE,M A0,'T' J NA494 LMJ B11,NGX + 2 TE A2,('RY ') SLJ NA3ER L,M A0,37 ST=37, ENTER J NA300 NA494 TE,M A0,'C' SLJ NA3ER LMJ B11,NGX + 3 TE A2,('ODE ') SLJ NA3ER L,M A0,4 ENCODE J NA300 . 298800 . EQ-EQUIVALENCE 298900 NA50 LMJ B11,NGX 299000 + 9 299100 TNE A2,('UIVALE') 299200 TE A3,('NCE ') 299300 SLJ NA3ER 299400 L,M A0,54 ST'54,EQUIVALENCE 299500 J NA300 299600 . 299700 . EX-EXTERNAL 299800 NA51 LMJ B11,NGX6 299900 + 6 300000 TE A2,('TERNAL') 300100 J NAEXIT . CHECK EXIT L,M A0,53 ST=53, EXTERNAL 300300 J NA300 300400 . 300500 . FO-FORMAT 300600 NA52 LMJ B11,NGX6 300700 + 4 300800 TE A2,('RMAT ') 300900 SLJ NA3ER 301000 L,M A0,52 ST=52, FORMAT 301100 J NA300 301200 . 301300 . FR-FREQUENCY 301400 NA53 LMJ B11,NGX 301500 + 7 301600 TNE A2,('EQUENC') 301700 TE A3,('Y ') 301800 SLJ NA3ER 301900 L,M A0,59 ST=59 CONTINUE ,FREQUENCY MONITO J NA300 302100 . 302200 . GO-GOTO 302300 NA54 LMJ B11,NGX6 302400 + 2 302500 TE A2,('TO ') 302600 SLJ NA3ER 302700 L,M A0,6 ST=6, GOTO 302800 J NA300 302900 . 303000 . FU-FUNCTION 303100 NA55 LMJ B11,NGX6 303200 + 6 303300 TE A2,('NCTION') 303400 SLJ NA3ER 303500 L,M A0,50 ST=50, FUNCTION 303600 J NA300 303700 . 303800 NA56 LMJ B11,GX 304200 J NA564 . TNE,M A0,',' J NA569 L,M A1,0 TNE,M A0,'*' L A1,A0 S A1,IFAST TE,M A0,'*' J $+3 LMJ B11,GX J NA67 TE,M A0,'(' IS X=( 304400 J NA561 NO 304500 LMJ B11,GX YES 304600 J NA67 304700 TNE,M A0,'S' IS X=S 304800 J NA566 YES 304900 NA569 SZ FNXT SET NEXT NA564 L,M A0,9 ST=9, ARITH OR LOGICAL IF 305100 J NA300 305200 . 305300 NA566 LMJ B11,SGX1 MARK GX(1) LMJ B11,NGX6 305500 + 5 305600 TE A2,('ENSES ') 305700 J NA567 305800 LMJ B11,NGX6 305900 + 5 306000 TE A2,('WITCH ') 306100 J NA568 MUST BE ARITH OR LOGICAL IF 306200 L,M A0,14 306300 J NA300 ST=14, IF (SENSE SWITCH 306400 . 306500 NA567 TE A2,('ENSEL ') 306600 J NA568 MUST BE ARITH OR LOGICAL IF 306700 LMJ B11,NGX6 306800 + 4 306900 TE A2,('IGHT ') 307000 J NA568 MUST BE ARITH OR LOGICAL IF 307100 L,M A0,13 ST=13, IF (SENSE LIGHT 307200 J NA300 307300 . 307400 NA568 LMJ B11,RGX1 J NA569 GO TO ARITH-LOGICAL IF 307600 . 307700 NA561 LMJ B11,SGX1 SZ FNXT SET NEXT LMJ B11,NGX 308000 + 11 308100 TE A2,('DIVIDE') 308200 J NA562 308300 TE A3,('CHECK ') 308400 SLJ NA3ER 308500 L,M A0,12 ST=12,IF DIVIDE CHECK 308600 J NA300 308700 . 308800 NA562 TE A2,('ACCUMU') 308900 J NA563 309000 TE A3,('LATOR ') 309100 SLJ NA3ER 309200 LMJ B11,NGX 309300 + 8 309400 TNE A2,('OVERFL') 309500 TE A3,('OW ') 309600 SLJ NA3ER 309700 L,M A0,10 ST=10, IF ACCUMULATOR OVERFLOW 309800 J NA300 309900 . 310000 NA563 TNE A2,('QUOTIE') 310100 J NA565 310200 LMJ B11,RGX1 SLJ NA3ER 310400 J NA564 GO TRY ARITH-LOGICAL IF 310500 NA565 TE A3,('NTOVE ') SLJ NA3ER 310700 LMJ B11,NGX6 310800 + 5 310900 TE A2,('RFLOW ') 311000 SLJ NA3ER 311100 L,M A0,11 ST=11, IF QUOTIENT OVERFLOW 311200 J NA300 311300 . 311400 NA57 LMJ B11,NGX6 311600 +4 TE A2,('CLUD ') J NA571 LMJ B11,NGX +1 TE A2,('E ') J NA571 L,M A0,39 ST=39, INCLUDE J NA300 NA571 TE A2,('TEGE ') J NA573 LMJ B11,NGX +1 TE A2,('R ') J NA573 LMJ B11,ASTKN CHECK FOR *N J $+1 IGNORE IT, IF PRESENT SLJ NA3FU + 48,49 ST=49,INTEGER 312100 NA573 TE A2,('LIST ') SLJ NA3ER L,M A2,1 FLAG FOR INPUT J NAOUTA . 312200 NA58 LMJ B11,NGX6 312400 + 5 312500 TE A2,('GICAL ') 312600 SLJ NA3ER 312700 LMJ B11,ASTKN CHECK FOR *N J $+1 IGNORE IT, IF PRESENT SLJ NA3FU ST=46, LOGICAL FUNCTION 312800 + 46,47 ST=47, LOGICAL 312900 . 313000 . PA-PAUSE,PARAMETER 313100 NA59 LMJ B11,NGX6 313200 + 3 313300 TE A2,('USE ') 313400 J NA591 313500 L,M A0,17 ST=17, PAUSE 313600 J NA300 313700 . 313800 NA591 TE A2,('RAM ') 313900 SLJ NA3ER 314000 LMJ B11,NGX6 314100 + 4 314200 TE A2,('ETER ') 314300 SLJ NA3ER 314400 L,M A0,45 ST=45, PARAMETER 314500 J NA300 314600 . 314700 . PR-PRINT 314800 NA60 LMJ B11,NGX6 314900 + 3 315000 TE A2,('INT ') 315100 SLJ NA3ER 315200 L,M A0,25 ST=25=PRINT 315300 J NA300 315400 NA61 LMJ B11,NGX 315700 + 8 315800 NA611 TNE A2,('NSELIG') 317000 TE A3,('HT ') 317100 SLJ NA3ER 317200 L,M A0,15 ST=15,SENSE LIGHT 317300 J NA300 317400 . 317500 . ST-STOP 317600 NA62 LMJ B11,NGX6 317700 + 2 317800 SZ,S2 NA62Z REENT SZ,S3 NA62Z REENT TE A2,('OP ') 317900 J NA62A LMJ B11,SGX1 LMJ B11,NGX6 + 4 TNE A2,('TRAC ') TRACE J NA62T TRACE TNE A2,('EDIT ') J NA62B NA62M. LMJ B11,RGX1 L,M A0,18 ST=18,STOP 318100 J NA300 318200 NA62A TE A2,('AR ') J NA67 LMJ B11,NGX6 + 5 TNE A2,('TCODE ') J N62J TNE A2,('TTRAC ') TRACE J NA62T1 TRACE TE A2,('TEDIT ') J NA67 L,M A2,1 NA62C S,S2 A2,NA62Z LMJ B11,NGX6 + 4 TNE A2,('PAGE ') J NA62Q TZ,S2 NA62Z SHOW OCCURANCE OF START EDIT S B11,CRSTED TNE A2,('GENE ') J NA62YG L,M A1,2 TE A2,('CODE ') J NA62N NA62L. S,S3 A1,NA62Z L A0,(1,NA62Z) L,M A1,1 . LENGTH L,M A2,0 . NO TERMINATING CONTROL WORDS L,M A3,0 . FORCE TO FIELDATA LMJ B11,W60F L,M A0,59 FREQUENCY USED AS DUMMY MONITO S A0,PARFLG . PREVENT FILE ITEMS J NA300 NA62B L,M A2,0 J NA62C NA62N TE A2,('SOUR ') J NA62O LMJ B11,NGX6 +2 TE A2,('CE ') J NA62O NA62P L,M A1,1 J NA62L NA62O L,S2 A2,NA62Z JZ A2,NA62M J NA62P NA62Q L,M A1,3 S,S2 A1,NA62Z J NA62L+1 NA62T1 L,M A0,1 TRACE S,H2 A0,TRACF SHOW TRACE ACTIVATED TRACE J $+2 NA62T SZ,H2 TRACF L,M A0,40 J NA300 TRACE NA62YG. STOPED LMJ B11,NGX6 +5 L,S2 A0,NA62Z . 0 FOR STOP..1 FOR START TE A2,('RATE ') J $+3 S,H1 A0,CRSD1 J NA62YJ TE A2,('RATED ') SLJ NA3ER TNZ,S2 NA62Z STOPED J NA62YH STOPED S,S2 A2,COMMAC . START EDIT GENERATED SSL A2,6 . SIMULATE S,T1 S,S1 A2,COMMAC . SZ FCPLST ALLOW LISTING NA62YJ. STOPED L,M A0,59 FREQUENCY USED AS DUMMY S A0,PARFLG J NA300 NA62YH SZ,S1 COMMAC . STOP EDIT GENERATED SZ,S2 COMMAC S R15,FCPLST . STOP LISTING MACRO LINES J NA62YJ STOPED . AT THIS POINT WE PROCESS SNYTAX FOR START CODE,X . WHERE X MAY BE I FOR IBANK, D FOR DBANK OR R FOR RANDOM STORAGE. N62J LMJ B11,NGX6 +2 TE A2,(',I ') J N62H L,M A0,1 . COUNTER FOR INSTRUCTIONS N62X A A0,(0230100) SSC A0,18 S A0,SLOUT,*B9 LMJ B11,GX J $+2 SLJ NA3ER L,M A0,59 J NA300 N62H TE A2,(',D ') J N62R L,M A0,2 J N62X N62R TE A2,(',R ') SLJ NA3ER L,M A0,5 J N62X . 318300 . 318370 . SU-SUBROUTINE 318400 NA63 LMJ B11,NGX 318500 + 8 318600 TNE A2,('BROUTI') 318700 TE A3,('NE ') 318800 SLJ NA3ER 318900 L,M A0,44 ST=44,SUBROUTINE 319000 J NA300 319100 . 319200 . PU-PUNCH 319300 NA64 LMJ B11,NGX6 319400 + 3 319500 TE A2,('NCH ') 319600 SLJ NA3ER 319700 L,M A0,26 ST=26,PUNCH 319800 J NA300 319900 . 320000 . RE-READ,REAL,REAL FUNCTION,RETURN,REWIND,REPRODUCE CSC22 NA65 LMJ B11,NGX6 320200 + 2 320300 TE A2,('AD ') 320400 J NA652 320500 NA651 L,M A0,27 ST=27,READ 320600 J NA300 320700 . 320800 NA652 TE A2,('AL ') 320900 J NA653 321000 LMJ B11,ASTKN CHECK FOR *8 J NA481A TREAT *8 AS DOUBLE PRECISION NA652A SLJ NA3FU ST=42,REAL FUNCTION 321100 + 42,43 ST=43,REAL 321200 . 321300 NA653 TE A2,('TU ') 321400 J NA654 321500 LMJ B11,NGX6 321600 + 2 321700 TE A2,('RN ') 321800 SLJ NA3ER 321900 L,M A0,19 ST=19,RETURN 322000 J NA300 322100 . 322200 NA654 TE A2,('WI ') 322300 J NA655 322400 LMJ B11,NGX6 322500 + 2 322600 TE A2,('ND ') 322700 SLJ NA3ER 322800 L,M A0,23 ST=23,REWIND 322900 J NA300 323000 . 323100 NA655 TE A2,('GI ') TEST FOR REGISTER J NA656 LMJ B11,NGX6 +4 TE A2,('STER ') J NA656 L A2,COMP-1 . TEST IF CODE FOR ARGUMENT TE A2,('COMP ') . STATEMENT OVERLAYED J N456J L,M A0,34 J NA300 NA656 SLJ NA3ER J NA651 GOTRY'READ' 323300 . 323400 . WR- 323500 NA66 LMJ B11,NGX6 323600 + 3 323700 TE A2,('ITE ') 323800 SLJ NA3ER 323900 LMJ B11,GX 324000 J NA67 324100 TE,M A0,'(' ISX=RTPAREN 324200 J NA661 NO 324300 L,M A0,32 ST=32,WRITE( 324400 J NA300 324500 . 324600 NA661 TE,M A0,'O' 324700 J NA663 324800 NA662 LMJ B11,NGX 324900 + 9 325000 TNE A2,('UTPUTT') 325100 TE A3,('APE ') 325200 SLJ NA3ER 325300 L,M A0,33 ST=33,WRITE OUTPUT TAPE 325400 J NA300 325500 . 325600 NA663 TE,M A0,'T' 325700 J NA664 325800 LMJ B11,NGX6 325900 + 3 326000 TE A2,('APE ') 326100 SLJ NA3ER 326200 L,M A0,35 ST=35,WRITE TAPE 326300 J NA300 326400 . 326500 NA664 SLJ NA3ER 326600 J NA662 GO TRY WRITE OUTPUT TAPE 326700 . 326800 NA20 LMJ B11,NGX ARGUMETN STMT + 6 TE A2,('GUMENT') SLJ NA3ER L A2,N1ARG-1 HAS CODE BEEN OVERLAID TE A2,('N1ARG ') J N456J L,M A0,2 J NA300 NA80 . TEST FOR SCAN STATEMENT LMJ B11,NGX +2 TE A2,('AN ') SLJ NA3ER L,M A0,7 TYPE FOR SCAN STATEMENT J NA300 NA81 . TEST FOR GENERATE STATEMENT LMJ B11,NGX +6 TE A2,('NERATE') SLJ NA3ER L,M A0,8 TYPE FOR GENERATE STATEMENT J NA300 NA82 . TEST FOR MACRO LMJ B11,NGX +3 TE A2,('CRO ') SLJ NA3ER L,M A0,31 J NA300 . XX-OTHER 326900 NA67J TE,M A0,20 . SPECIAL TEST FOR END J NA67 TN INCLVL .TEST FOR ACTIVE INCLUDE J *NA30 . GO PROCESS END CARD NA67 SLJ NA3ER 327000 SZ A0 327100 J NA300 327200 NA97 LMJ B11,NGX ST=38, NAME LIST + 6 TE A2,('MELIST') SLJ NA3ER L,M A0,38 J NA300 . NA98 LMJ B11,NGX ST=36, IMPLICIT + 6 TE A2,('PLICIT') SLJ NA3ER L,M A0,36 J NA300 . NA99 LMJ B11,NGX DEFINE STATEMENT CSC27 +4 CSC27 TE A2,('FINE ') CSC27 J NA995 LMJ B11,SGX1 SAVE POSITION LMJ B11,NGX +4 TNE A2,('FILE ') DEFINE FILE J NAD02 NAD01 LMJ B11,RGX1 RESTORE POSITION L,M A0,29 CSC27 J NA300 CSC27 NA995 TE A2,('LETE ') J NA996 L,M A0,30 ST=30, DELETE J NA300 NA996 TE A2,('CODE ') J NA997 L,M A0,3 DECODE J NA300 NA997 TE A2,('INTR ') SLJ NA3ER LMJ B11,NGX +6 TE A2,('INSIFY') SLJ NA3ER NA997L LMJ B11,GIT SLJ NA3ER . NO VARIABLE GIVEN LMJ B11,GLG . TEST IF NAME IN SYMBOL TABLE J NA997X . NO JUST IGNORE SLJ DEINTX . DEINTRINSIFY NAME L A0,GXX L FNXT,R8 TNE,M A0,',' J NA997L NA997X L,M A0,59 . PLAY LIKE CONTINUE J NA300 . DEFINE FILE NAD02 LMJ B11,GX J NAD03 EOS TE,M A0,'=' J NAD02 LOOP TO END OF STMT J NAD01 DEFINE STMT NAD03 LMJ B11,RGX1 RESTORE TO FILE LMJ B11,NGX MOVE PAST FILE +4 L,M A0,64 J NA300 NA70 . TSSEDIT VARIATIONS EXEC 8 TED EQU 0 DO 1-TED , PROC LMJ B11,NGX EXEC 8 +5 EXEC 8 TNE A2,('SEDIT ') EXEC 8 J NA71 EXEC 8 SLJ NA3ER EXEC 8 J PH301 EXEC 8 NA71 L,M A0,1 EXEC 8 S A0,CRSTEX EXEC 8 LMJ B11,PSTL J PH301 SET SPECIAL EDIT FLAG EXEC 8 DO TED , PROC END DO 1-TED , J NA67 NA72 LMJ B11,NGX MONITO +5 MONITO TNE A2,('NITOR ') MONITO J NA73 MONITO SLJ NA3ER MONITO L,M A0,0 MONITO J NA300 MONITO NA73 L,M A0,51 MONITO L A2,COMP-1 TE A2,('COMP ') J N456J J NA300 MONITO . FIND STATEMENT FIND (3'N) NA75 LMJ B11,NGX +2 TNE A2,('EL ') J NAFLDTA . TEST FOR FIELDATA DIRECTIVE TE A2,('ND ') SLJ NA3ER L,M A0,65 J NA300 . FOR COMPATIBILITY WITH IBM (UGH) TREAT *8 AS DOUBLE PRECISION . AND IGNORE ALL OTHER INTEGERS. ASTKN S,H2 B11,NG11 SAVE RETURN ADDRESS LMJ B11,SGX1 SAVE CURRENT POSITION LMJ B11,GX GET NEXT CHARACTER SLJ NA3ER STMT INCOMPLETE TE,M A0,'*' IS IT AN ASTERISK J ASTKN2 NO - RESTORE POSITION AND RETURN LMJ B11,GX YES - NEXT CHAR MUST BE INTEGER SLJ NA3ER WHOOPS L,H2 B11,NG11 GET READY TO RETURN TNE,M A0,'8' IS IT *8 J 0,B11 YES J 1,B11 NO ASTKN2 LMJ B11,RGX1 RESTORE POSITION IN STRING L,H2 B11,NG11 RESTORE EXIT J 1,B11 . NAELSJ S A2,IFLSEZ . FLAG FOR IFELSE STAT L,XH2 A1,FLF JNZ A1,$+3 LMJ B11,PERR . INVALID STRUCTURE FORM6 02,11,0 TNZ,S3 LGIFSB,A1 . TEST FOR ACTIVE IFELSE J NA564 .. GO JOIN IF CODING L,H2 A0,LGIFSB,A1 SSC A0,30 A A0,(0240000,021) . SHOW END OF IFELSE TZ,S3 LGIEXT,A1 . TEST FOR CALLS LABELS IN IF A,M A0,040 L,H2 A2,LGELSE,A1 S,H2 A2,LGIFSB,A1 S A0,SLOUT,*B9 S R15,FEB . INHIBIT TRACE LMJ B11,PSDP SZ FEB J NA564 . JOIN MAIN CODING . IF - ELSE CLAUSE NAELSE LMJ B11,NGX +2 TE A2,('SE ') SLJ NA3ER L,M A0,3 . DROP I.D. LMJ B11,DROP . CHECK DROP/RESTORE L,H2 A0,FLF L,M A1,1 OR,S3 A1,LGIEXT,A0 S,S3 A2,LGIEXT,A0 . MAKE ELSE APPEAR AS LABEL L A1,DL TNE,S3 A1,LGDOTS,A0 J $+3 LMJ B11,PERR FORM6 02,11,0 LMJ B11,SGX3 LMJ B11,GX J NAEL3 . JUST AN ELSE STATEMENT LMJ B11,RGX3 LMJ B11,NGX +2 TNE A2,('IF ') J NAELSJ SLJ NA3ER NAEL3 . SZ FNXT L,H2 A1,FLF . LOGICAL IF LEVEL L,H2 A0,LGIFSB,A1 SSC A0,30 A A0,(0240000,021) TZ,S3 LGIEXT,A1 . TEST FOR CALLS LABELS/CALLS IN IF A,M A0,040 TZ,S3 LGIFSB,A1 . TEST FOR ACTIVE IF ELSE S A0,SLOUT,*B9 SZ IFLSEZ L,H2 A2,LGELSE,A1 TZ,S3 LGIFSB,A1 S,H2 A2,LGIFSB,A1 SZ,S3 LGIFSB,A1 . CLEAR IF ELSE FLAG L,H2 A1,FLF . ELSE MUST BE ON LOGICAL IF JNZ A1,NAEL2 SLJ NA3ER NAEL2 L A0,(0260000,1) L A1,FLF . LOGICAL IF LEVEL TZ,S3 LGIEXT,A1 . TEST IF LABELS HAVE APPEARED SO FAR A,M A0,040 . FLAG FOR LABELS IN IF S A0,SLOUT,*B9 L,H2 A12,N0LOGF OUTPUT DEFINITION POINT LMJ B11,GENDP2 SZ A12 L A0,(0120100,0) A,M A0,0,B1 S A0,SLOUT,*B9 L,M A0,59 SET STATEMENT TYPE TO 'CONTINUE' S B11,IFELSE INDICATE CONTINUE OK ON LOG. IF J NA300 CHANGE ST TO 59 - CONTINUE . . OUTLIST NAOUT LMJ B11,NGX +5 TE A2,('TLIST ') SLJ NA3ER L,M A2,2 . . INLIST NAOUTA S A2,LIST 1=INLIST, 2=OUTLIST S A2,LISTST SZ,H2 GNSFL LMJ B11,PSTL LMJ B11,SLIS S R15,FEB . KEEP TRACE FROM WORKING LMJ B11,PSDP SZ FEB NA49LE L,M A0,59 MAKE ST=59 , CONTINUE J NA300 NATHEN LMJ B11,NGX6 + 2 . TE A2,('EN ') . SLJ NA3ER . L A0,FLF . GET IF NESTING TZ A0 . NO IF ACTIVE? TZ,S1 LGIFSB,A0 . THEN OR * ALREADY SET? J NA67 . YES/ OOPS L,M A1,'*' . GET * S,S1 A1,LGIFSB,A0 . SET IF * ! L,M A0,59 . SET CONTINUE S A0,IFELSE . SET CONTINUE O.K. J NA300 . NAEXIT TE A2,('ITLOOP') . SLJ NA3ER . L A4,(0600000) . EXITLOOP FLAG L,M A0,4 . DROP I.D. J NAEXCY . MERGE WITH CYCLE NACYCLE LMJ B11,NGX6 . + 3 . TE A2,('CLE ') . SLJ NA3ER . TZ,H2 GNSFL LMJ B11,PSTL . OUTPUT LABEL SZ,H2 GNSFL L A4,(0500000) . CYCLE FLAG L,M A0,5 . DROP I.D. NAEXCY LMJ B11,DROP . MACRO DROP ENTRY? LMJ B11,NGX6 . GET POSSIBLE I.V. + 6 . L A1,DL . GET DO LEVEL JGD A1,$+1 . DECREMENT COUNT JN A1,NOLOOP . IS DO ACTIVE? TNE A2,(' ') . WAS I.V. GIVEN? J LATEST . NO / CONTINUE CHECKIV L,H2 A0,DOTAB+1,A1 . GET PB L,H2 A3,LOOP+1,A0 . GET SYMBOL TABLE REF TNE A2,0,A3 . MATCH ON I.V.? J LATEST . YES/ USE THAT LEVEL! JGD A1,CHECKIV . LOOP OVER ACTIVE DO'S LMJ B11,PERR . FORM6 9,14,NG11 . I.V. NOT FOUND J NA49J . LATEST L,H2 A0,DOTAB+1,A1 . PB L,H1 A3,LOOP,A0 . SB OR A3,A4 . CYCLE OR EXITLOOP S A4,GITV . SAVE LMJ B11,GETL2 . ENTER LXI,M A1,ID4*/12 . GOTO S A1,STRING,*B5 . SET L A1,SEQL . S OF LABEL LXI,M A1,ID1*/12+0701 . S A1,STRING,*B5 . SET S B11,IFELSE . SAY O.K. FOR BEHIND IF J NA49J . DONE DROP L A1,NA13J . GET BITS SSC A1,0,A0 . MOVE TO RIGHT BIT L A2,NA13 . DROP/RESTORE FLAG JZ A2,NOCHANGE . CHECK ONLY? JN A2,RESTORE . NOT DROP? OR A1,A2 . SET BIT J GOBACK . CLEAN UP RESTORE AND A1,A2 . CLEAR BIT. GOBACK LSSC A2,0,A0 . MOVE BIT BACK S A2,NA13J . SAVE STATUS J NA49J . DONE NOCHANGE L A2,MACNO . GET MACRO LEVEL TLE,M A2,2 . SMALL? JB A1,NA67 . IT HAS BEEN DROPPED J 0,B11 . RETURN/ ALL IS WELL NACHAR . TRY FOR CHARACTER DIRECTIVE LMJ B11,NGX6 +6 TE A2,('ARACTE') SLJ NA3ER LMJ B11,NGX6 +1 TE A2,('R ') SLJ NA3ER . UNRECOGNIZED STATEMENT LMJ B11,SGX1 . SAVE CHARACTER POINTERS LMJ B11,NGX +8 TE A2,('FUNCTI') J NACHARA L,M B11,PH301K . EXIT FOR CHARACTER FUNCTION TNE A3,('ON ') J SUBCH . GO PROCESS A CHARACTER FUNCTION NACHARA LMJ B11,RGX1 . RESTORE CHARACTER POINTER J N1CHAR . REMAINDER CODE IN SEPARATE ELEMENT NAFLDTA LMJ B11,NGX +4 TE A2,('DATA ') SLJ NA3ER SZ FDASQT . PROHIBIT CONVERSION OF CHARACTER STRIN L A0,GXASCVB . ASCII TO FIELDATA CONVERSION S A0,FDASCN L,M A0,59 . MARK AS CONTINUE STATEMENT J NA300 NAASCI . TZ FDASCZ . TEST IF ELEMENT IS ASCII J NAASCX . IT WAS LMJ B11,PERR . ASCII DIRECTIVE ONLY ALLOWED IN FORM6 1,57,0 . AN ASCII ELEMNT L,M A0,59 . MARK AS CONTINUATION J NA300 NAASCX S A2,FDASQT . MARK ASCII STRINGS ALLOWED L A0,(NOP 0,0 ) . ALLOW ASCII CHARACTERS IN HOLERITH S A0,FDASCN L,M A0,59 . MARK AS CONTINUE STATEMENT J NA300 . GET FROM 1 TO 12 NON-BLANK CHARACTERS LEFT JUSTIFIED BLANK FILLED IN A2 AND A3 . 331000 NGX* L A2,(' ') USES A2, A3, R4 331100 S A2,NG11 331200 S A2,NG12 A LMJ B11, NGX 331300 L R4,0,B11 A+1 N 331400 S,H2 B11,NG32 A+2 RETURN 331500 JGD R4,$+1 331600 L A2,(1,0) FIRST 6 CHARS IN A2 331700 NG31 LMJ B11,GX SECOND 6 CHARS IN A3 331800 J NG31K TNE,M A0,',' . MIGHT APPEAR FROM MACRO DROP J NG31J EX NG2,*A2 332000 JGD R4,NG31 332100 NG31J L B11,NG32 L A2,NG11 332300 L A3,NG12 332400 J 1,B11 332500 NG31K SZ FNXT . SAVE COMMA FOR NEXT USER J NG31J . 332600 NG2 SA,S1 A0,NG11 333200 SA,S2 A0,NG11 333300 SA,S3 A0,NG11 333400 SA,S4 A0,NG11 333500 SA,S5 A0,NG11 333600 SA,S6 A0,NG11 333700 SA,S1 A0,NG12 333800 SA,S2 A0,NG12 333900 SA,S3 A0,NG12 334000 SA,S4 A0,NG12 334100 SA,S5 A0,NG12 334200 SA,S6 A0,NG12 334300 . 334400 . 327500 . NAR CONSTANTS 327600 . 327800 . JUMP TABLE 328000 NA21 FORM1 'GO',NA54 GO 0 328100 FORM1 'IF',NA56 IF 1 328200 FORM1 'DO',NA48 DO 2 328300 FORM1 'FO',NA52 FO 3 328400 FORM1 'RE',NA65 RE 4 328500 FORM1 'WR',NA66 WR 5 328600 FORM1 'CO',NA45 CO 6 328700 FORM1 'DI',NA47 DI 7 328800 FORM1 'EQ',NA50 EQ 8 328900 FORM1 'CA',NA44 CA 9 329000 FORM1 'PR',NA60 PR 10 329100 FORM1 'IN',NA57 IN 11 329200 FORM1 'PU',NA64 PU 12 329300 FORM1 'PA',NA59 PA 13 329400 FORM1 'LO',NA58 LO 14 329500 FORM1 'AS',NA40 AS 15 329600 FORM1 'BA',NA42 BA 16 329700 FORM1 'EN',NA49 EN 17 329800 FORM1 'AB',NA41 AB 18 329900 FORM1 'EX',NA51 EX 19 330000 FORM1 'DA',NA46 DA 20 330100 FORM1 'FU',NA55 FU 21 330200 FORM1 'SU',NA63 SU 22 330300 FORM1 'SE',NA61 SE 23 330400 FORM1 'BL',NA43 BL 24 330500 FORM1 'ST',NA62 ST 25 330600 FORM1 'FR',NA53 FR 26 330700 FORM1 'DE',NA99 DE 27 CSC27 FORM1 'NA',NA97 FORM1 'IM',NA98 FORM1 'AR',NA20 FORM1 'GE',NA81 FORM1 'SC',NA80 FORM1 'MA',NA82 FORM1 'TS',NA70 TSEDIT FORM1 'MO',NA72 MONITO FORM1 'FI',NA75 FORM1 'EL',NAELSE FORM1 'OU',NAOUT FORM1 'TH',NATHEN FORM1 'CY',NACYCLE . FORM1 'CH',NACHAR NA12 EQU $-NA21 . 330800 . NGX CONSTANTS 332800 . 332900 $(2) . NA13 +0 NA13J +0 . USED FOR DROPPING NAR INTERNAL STATS NG32 +0 NG11 +0 NG12 +0 NA15 +0 RGX3* L,M R4,RGXTD SLJ RMGRS J 0,B11 SGX3* L,M R4,RGXTD SLJ RMGSV J 0,B11 NA30 J $-$ EENT NA3ER* J $-$ EENT J NA3ERR EENT NA3FU J $-$ EENT J NA3FUR EENT NA62Z +0100000,0 EENT END