PREQ . DEFINES THE REGISTERS AND SUCH $(1) GXEOS EQU FEOS DO EX8=1 ,MCUF$ EQUF MCOUF,0,H2 DO EX8=1 ,MCOF$ EQUF MCOUF,0,H1 . GET ITEM ROUTINE (GIT) . THIS ROUTINE EXTRACTS THE NEXT SYNTACTIC UNIT (ITEM) FROM THE SOURCE STRING. . CALLING SEQUENCE -- A LMJ B11,GIT . A+1 END OF STATEMENT RETURN . A+2 NORMAL RETURN . UPON EXIT- A0=GXX=THE CHARACTER FOLLOWING THE ITEM IN THE SOURCE STRING . A2=ITEM NUMBER . GITV,GITV+1 CONTAIN THE ITEM . GIT* TNZ FIMP ARE VALUES ALREADY IN TABLE J GITP1 NO, USE GX B0001400 LA A2,IMPMUL YES, TAKE FROM TABLE B0001500 LA A0,IMPMUL+3 (CHARACTER) B0001600 LA A3,IMPMUL+1 ITEM B0001700 SA A3,GITV B0001800 LA A3,IMPMUL+2 B0001900 SA A3,GITV+1 B0002000 SZ FIMP B0002100 J 1,B11 GITR3 SZ FNXT SET NEXT LX B11,GITXT J 1,B11 NORMAL EXIT B0002400 . TEST IF PRIOR END STATEMENT FOUND B0002500 GITP1 SX,H2 B11,GITXT TNZ GXEOS J GITP2 NO, (7O ON B0002700 GITR1 LX,H2 B11,GITXT RELOAD B0002800 J 0,B11 EOS EXIT B0002900 . USE GX B0003000 GITP2 LMJ B11,GX B0003100 J GITR1 EOS B0003200 LA,H2 A1,TFDA,A0 JUMP TO TYPE FIRST CHARACTER B0003300 J 0,A1 B0003320 . EXIT FROM GIT, RESTORE GX IXS AND GET NEXT CHAR. B0003400 GITR4 LMJ B11,RGX1 RESTORE IXS FROM GX B0003500 GITR2 LMJ B11,GX GET NEXT CHARACTER J GITR3 FOR (7XX(A0) BEFORE B0003700 J GITR3 EXIT FROM GIT B0003800 . $ FOUND (GITP2 BRANCH), LOOK FOR LABEL B0003900 GI2S SZ GITV VARIABLE STORAGE AREA B0004000 LX A3,(1,0) COUNT CHAR. B0004100 GI2S1 LMJ B11,GX B0004200 J GI2S3 EOS B0004300 TZ,S1 TFDA,A0 NUMERIC B0004400 J GI2S3 NO B0004500 TLEM,M A3,5 NUMERIC, COUNT OK B0004600 J GI2S2 YES B0004700 TLEM,M A3,7 NO B0004800 J GIERA ERROR, TOO MANY CHAR. IN LABEL B0004900 J GI2S1 ERROR ALREADY MARKED B0005000 GI2S2 LA A4,GITV PARTIAL LABEL B0005100 ANU,M A0,48 - FIELD DATA B0005200 MI,M A4,10 B0005300 AA A5,A1 B0005400 SA A5,GITV NEW PARTIAL B0005500 J GI2S1 B0005600 GI2S3 JMGI A3,GI2S4 A3=0 (NO LABEL) B0005700 LA,M A2,1 =0, ONLY $ FOUND B0005800 J GITR3 EXIT VIA FNXT B0005900 GI2S4 LA,M A2,2 STATEMENT LABEL=2 B0006000 J GITR3 B0006100 . * FOUND AT GITP2 B0006200 GI2A LMJ B11,GX B0006300 J GI2A1 EOS B0006400 TE,M A0,40 =* B0006500 J GI2A1 NOT=** B0006600 LA,M A2,13 =**,EXPONENTIATION B0006700 J GITR2 B0006800 GI2A1 LA,M A2,11 =*,MULTIPLY B0006900 J GITR3 B0007000 GI2RPR GI2CM . COMMA FOUND LA,S3 A2,TFDA,A0 TZ GEICFL TEST FOR EVALUATING INCREMENT FIELD IN GENERATE TNZ PARFLG J GITR2 TZ B10 J GITR2 IF COMMA TERMINATES A PARAMETER EXPRESSION L B11,GITXT J 1,B11 . COMMA,+,-,/,=,) (GITP2) FOUND B0007100 GI2M LA,S3 A2,TFDA,A0 PROPER ITEM NO. TO A2 B0007200 J GITR2 EXIT, GET NEXT CHAR. B0007300 . QUOTE FOUND. BYPASS GETTING NEXT NON-BLANK CHAR GI2Q LA,S3 A2,TFDA,A0 L B11,GITXT J 1,B11 . ALL OTHER CHARACTERS FOUND (GITP2) B0007400 GI2E LA,M A2,0 PSEUDO ERROR TO ITEM NO. B0007500 J GITR2 EXIT,NEXT CHAR. B0007600 . O FOUND (GITP2) B0007700 GI2OC TZ FOCT OCTAL FLAG B0007800 J GI2O POSSIBLE OCTAL B0007900 . ALPHABETIC FOUND (GITP2) B0008000 GI2N LX A3,(1,0) SET COUNT B0008100 GI2N1 LA A1,(' ') NO OCTAL, SETUP FOR NAME B0008200 SA A1,GITV B0008300 GI2N8 L A2,(1,0) . INDEX GITV GI2N2 EX GI2SA,*A3 LMJ B11,GX B0008600 J GITR3J LA,M A1,2 ALPHA-NUMERIC OR O B0008800 TLE,S1 A1,TFDA,A0 TYPE CHARACTER B0008900 J GITR33 J GI2N2 GITR33 TE,M A0,'$' J GITR3J TLE,S1 A1,TFDA$ J GITR3J J GI2N2 GITR3J L,M A1,0,A2 MSI,M A1,6 A,M A1,0,A3 . COMPUTE CHARACTER COUNT L,M A2,3 . TYPE FOR VARIABLE TLE,M A1,7 J GITR3 TNZ,T3 SCNBRK . TEST FOR VALID LONG NAMES J GIERB . FLAG LONG VARIABLE TZ,S5 SCNBRK . SET WHEN SCANNING MACRO NAME J GITR3 . LEAVE AS CHARACTERS S A0,('SVA0LX') S B6,('SVB6LX') DSL A1,36 DI,M A1,6 . COMPUTE LENGTH IN WORDS L A5,A1 L,M B6,GITV LMJ B11,SL2N +CRLNHL . HEADLINK FOR LONG NAMES LMJ B11,SLTIN . INSERT LONG NAME INTO LIST L A0,0,A1 . COMPILER GENERATED NAME S A0,GITV L,M A2,3 . TYPE FOR VARIABLE L B6,('SVB6LX') . RESTORE REGISTERS L A0,('SVA0LX') J GITR3 . CONVERT TO OCTAL B0009600 GI2O LMJ B11,SGX1 SZ GITSM SZ GITV B0009800 SZ GITV+1 DPOCT LX A3,(1,0) CHAR. CT. B0009900 GI2O1 LMJ B11,GX B0010000 J GI208A LA,S2 A1,TFDA,A0 TEST FOR +,-,NUMERIC B0010200 TG,M A1,3 B0010300 J GI2O8 NOT +,-,DIGIT B0010400 J $+1,A1 BRANCH ON +,-,DIGIT B0010500 J GI2O2 =0,DIGIT B0010600 GI2O6 SR,H2 R15,GITSM -SIGN,SET FLAG B0010700 GI2O5 TE A3,(1,0) + SIGN B0010800 J GI2O9 NOT 0 B0010900 TZ,H1 GITSM H1=PREVIOUS +OR-SIGN B0011000 J GIERF PREVIOUS B0011100 SX,H1 B11,GITSM SET B0011200 J GI2O1 B0011300 . B0011400 GI2O8Z JMGI A3,GI209Z DPOCT L A1,('Z ') DPOCT J GI208B GI208A L,M A0,' ' GI2O8 JMGI A3,GI2O9 ANY PREVIOUS DIGITS B0011500 LA A1,('O ') SET FOR ALPHA START B0011600 GI208B . SA A1,GITV WITH O B0011700 LX A3,(1,1) TG,M A0,040 SZ FNXT TG,M A0,5 TG,M A0,040 L,M A0,' ' J GI2N8 RETURN, DO AS ALPHA B0011800 . FOUND NUMBER IN OCTAL CONVERT B0011900 GI2O2 TG,M A0,070 B0012000 J GIERD NOT OCTAL DIGIT B0012100 AN,M A0,060 CONVERT DPOCT TLEM,M A3,24 OVER 24 DIGITS DPOCT J GI2O3 OK B0012300 TLEM,M A3,26 TOO MANY DPOCT J GIERC ERROR MARKED B0012500 J GI2O1 ALREADY MARKED B0012600 . CONVERT TO OCTAL B0012700 GI2O3 DL A4,GITV ADD INTO LOW-ORDER DPOCT LDSC A4,39 3 BITS OF DPOCT S A5,GITV (GITV,GITV+1) DPOCT OR A4,A0 DPOCT S A5,GITV+1 DPOCT J GI2O1 B0013300 . EXIT FROM OCTAL CONVERT B0013400 GI209Z L,S1 A1,TFDA,A0 TG,M A1,3 J $+4 LMJ B11,RGX1 L A0,GXX J GI2N TLEM,M A3,11 J GI209S NO DPOCT J GI209D YES DPOCT GI2O9 L,S1 A1,TFDA,A0 TG,M A1,3 J $+4 LMJ B11,RGX1 L A0,GXX J GI2N TLEM,M A3,14 J GI209S NO DPOCT GI209D L,M A2,7 YES, SET DP CONSTANT J GI209X DPOCT GI209S L A2,GITV+1 SCALE SINGLE PRECISION UP DPOCT S A2,GITV DPOCT L,M A2,4 ITEM NO. FOR INTEGER CONST DPOCT GI209X . S A2,OCTINT . SET OCTAL INTEGER FLAG NON ZERO TNZ,H2 GITSM SIGN B0013600 J GITR3 B0013700 LA A4,GITV B0013800 OR A4,(0400000,0) SET MINUS AS 1 BIT B0013900 SA A5,GITV B0014000 J GITR3 GI20Z TNZ FOCT HEX ALLOWED WHERE OCTAL CONSTANTS WERE ALLOWED J GI2N LMJ B11,SGX1 SZ GITSM ZCON SZ GITV SZ GITV+1 DPOCT L A3,(1,0) GI203Z LMJ B11,GX J GI2O8Z EOS DPOCT TE,M A0,'/' TNE,M A0,',' J GI2O8Z DPOCT TLE,M A0,'A' J GI2O8Z DPOCT TG,M A0,'G' J GI204Z NOT 'A' TO 'F' A,M A0,4 GI202Z TLEM,M A3,18 DPOCT J GI201Z TLEM,M A3,20 DPOCT J GIERZ DPOCT J GI203Z ALREADY MARKED. DPOCT GI201Z DL A4,GITV DPOCT LDSC A4,40 DPOCT S A5,GITV DPOCT OR A4,A0 DPOCT S A5,GITV+1 DPOCT J GI203Z GI204Z TLE,M A0,'0' J GI2O8Z TG,M A0,'9'+1 J GI2O8Z AN,M A0,'0' J GI202Z . PERIOD FOUND (GITP2) B0014200 GI2P LMJ B11,SGX1 SAVE GX REGISTERS B0014300 LMJ B11,GX B0014400 J GI2P4 EOS B0014500 TNZ,S1 TFDA,A0 B0014600 J GI2P5 =0,NUMERIC B0014700 LX A3,(1,0) B0014800 LA A2,(' ') B0014900 SA A2,GITV B0015000 L A2,(1,0) . GITV INDEX GI2P2 L,S1 A4,TFDA,A0 JZ A4,GI2P3 . =NUMBER TG,M A4,3 . ALPHA TYPE J GI2P3 NOT ALPHA B0015400 TLEM,M A3,5 CHECK COUNT B0015500 J $+2 B0015600 J GIT1A TOO MANY CHARACTERS B0015700 EX GI2SA-1,A3 STORAGE GITV B0015800 LMJ B11,GX B0015900 J GIT1A B0016000 J GI2P2 RETURN B0016100 GI2P3 TLEM,M A3,1 NOT ALPHA,=.THEN NON-ALPHA B0016200 J GIT1A B0016300 TNE,M A0,61 =. B0016400 J GIT2A B0016500 GIT1A LA,M A2,0 ERROR B0016600 J GITR4 RESET GX IXS B0016700 . SET ERROR ITEM NO. B0016800 GI2P4 LA,M A2,0 B0016900 J GITR3 B0017000 . FOUND DIGIT FOLLOWING . B0017100 GI2P5 LA,M A1,2 B0017200 SR,H1 R15,GITSM FLAG=NO LEAD ZEROES B0017300 SA A1,GITDR NO. DECIMAL DIGITS +1 B0017400 J GIT3 B0017500 . SUBROUTINE FOR LOGICAL TERMS (.XXX.) TEST B0017600 GITLT LR,M R1,11 COUNT B0017700 LA A1,(1,0) B0017900 LR R2,(0777777777700) MASK B0017800 MSE A4,TFDB,*A1 B0018000 J 0,B11 ERROR B0018200 J 1,B11 FOUND B0018100 . LOGICAL TERMS B0018300 GIT2A LA A4,GITV B0018400 LMJ B11,GITLT B0018500 J GIT1A NOT FOUND B0018600 GITP6 LA,S6 A2,TFDB-1,A1 ITEM NO. TO A2 B0018700 J GITR2 B0018800 . LEFT PARANTHESIS,(, FOUND (GITP2) B0020100 GI2L TZ FPAR DATA STATEMENT, NOT COMPLEX B0020200 J GI2L9 YES, SKIP ( B0020300 LMJ B11,SGX1 SAVE GX IXS B0020400 LMJ B11,GX B0020500 J GIT1C B0020600 SZ GITSM B0020700 LA,S2 A3,TFDA,A0 TYPE B0020800 TG,M A3,4 B0020900 J GIT1C NOT NUMERIC B0021000 J $+1,A3 B0021100 J GI2L4 NUMBER B0021200 J GI2L6 - B0021300 J GI2L5 + B0021400 J GI2LX . B0021500 . NUMBER TO RT. OF ( B0021600 GI2L4 SZ GITDR B0021700 GIT4C LA,M A4,1 ( FOUND B0021800 SA A4,GITCX B0021900 J GIT4 B0022000 . - FOUND B0022100 GI2L6 SR,H2 R15,GITSM - ENTRY B0022200 GI2L5 SZ GITDR + ENTRY B0022300 GIT3C LMJ B11,GX GET B0022400 J GIT2C B0022500 TZ,S1 TFDA,A0 = DIGIT B0022600 J GI2L8 NO B0022700 J GIT4C B0022800 . JUST SEND ( TO ITEM NO. B0022900 GIT1C LA,M A2,15 B0023000 J GITR3 GET NEXT CHAR B0023100 GI2L8 TNE,M A0,'.' J GI2LX = . B0023300 GIT2C LA,M A2,15 ( TO ITEM NO. B0023400 J GITR4 RETURN, RESET IXS (GX) B0023500 . .FOUND RT. OF ( B0023600 GI2LX SR,H1 R15,GITSM NO LEAD ZEROES B0023700 LMJ B11,GX GET B0023800 J GIT2C B0023900 TZ,S1 TFDA,A0 = NUMERIC B0024000 J GIT2C NO B0024100 LA,M A4,2 B0024200 SA A4,GITDR B0024300 J GIT4C B0024400 GI2L9 LA,M A2,15 ( TO ITEM NO. B0024500 J GITR2 GET NEXT CHAR. B0024600 . NUMERIC AT GITP2 B0024700 GIT2N SZ GITDR NO. B0024800 SZ,H1 GITSM DROP LEAD ZEROES B0024900 GIT3 SZ GITCX B0025000 SZ,H2 GITSM B0025100 GIT4 TZ,H1 GITSM LEADING ZEROES OK B0025200 J GIT43 COUNT THEM B0025300 TE,M A0,48 B0025400 J GIT42 B0025500 SZ GITD = 0, SO NO COUNT YET B0025600 J GIT44 B0025700 GIT42 SX,H1 B11,GITSM SET NO LEAD ZEROES B0025800 GIT43 LA,M A4,1 B0025900 SA A4,GITD B0026000 GIT44 SZ GITLS B0026100 ANU,M A0,48 B0026200 S A1,GITN1+1 GIT5 SZ GITDP NO DOUBLE PREC. B0026400 SZ GITMC MANTISSA (WORKING ON) B0026500 SZ GITN1 SIGNIF SZ GITN1+2 B0026700 SZ GITN3 EXPONENT = 0 B0026800 SZ GITSC SIGN OF EXPONENT + B0026900 SZ GITIM RESET IMPLIED MULT. B0027000 GIT6 LMJ B11,GX B0027100 J GIT1X EOS B0027200 LA,S2 A3,TFDA,A0 B0027300 TG,M A3,9 B0027400 J GIT6L OTHER B0027500 J $+1,A3 B0027600 J GI6A 0 NUMBER B0027700 J GI6C 1 - B0027800 J GI6B 2 + B0027900 J GI6D 3 . B0028000 J GI6E 4 D B0028100 J GI6F 5 E B0028200 J GI6G 6 , B0028300 J GI6H 7 ) B0028400 J GI6K 8 Q,A,G,L,N,O B0028500 . NUMBER B0028600 GI6A TZ,H2 GITMC MANTISSA OR CHARAC. B0028700 J GI6A5 CHARAC. B0028800 TNZ,H1 GITSM PREVIOUS ZEROES B0028900 J GI6A8 = 0 B0029000 GI6A0 LA A3,GITD COUNT B0029100 A,M A3,1 B0029200 SA A3,GITD B0029300 TG,M A3,22 B0029400 J GI6A3 TOO MANY DIGITS B0029500 TZ,S1 GITN1 TEST FOR MAXIMUM SIGNIFICANCE SIGNIF J GIT6 SIGNIF L A2,A0 SIGNIF AND,M A2,017 SIGNIF L A2,GITN1+1 ACCUMULATE PRODUCE WITH SIGNIF MSI,M A2,10 LOWER 30 BITS SIGNIF A A3,A2 SIGNIF S A3,GITN1+1 SIGNIF L A2,GITN1 SIGNIF TNZ,S1 GITN1+1 TEST FOR OVERFLOW SIGNIF JZ A2,GI6A4 MSI,M A2,10 CONVERSION OF UPPER 35 BITS SIGNIF A,S1 A2,GITN1+1 OVERFLOW FROM LOWER TO UPPER SIGNIF SZ,S1 GITN1+1 SIGNIF S A2,GITN1 SIGNIF GI6A4 TNZ GITDR . YET B0030300 J GIT6 NO B0030400 LA A4,GITDR B0030500 AA,M A4,1 B0030600 SA A4,GITDR B0030700 J GIT6 B0030800 GI6A3 TLE,M A3,22 B0030900 J GIT6 EXCEEDS 21 B0031000 . DECIMAL NUMBER EXCEEDS 21 DIGITS B0031100 GIERE LMJ B11,PERR OVER 21 DIGITS B0031200 FORM6 01,104,GITV J GIT6 UP 1 AND GO ON B0031400 . WORK ON EXPONENT FOR FLOAT PT. B0031500 GI6A5 LA A3,GITMC MANTISSA B0031600 LA A4,GITN3 B0031900 MI,M A4,10 B0032000 ANU,M A0,48 B0032100 AA A5,A1 B0032200 SA A5,GITN3 B0032300 GI6A7 AA,M A3,1 B0032400 SA A3,GITMC B0032500 SZ GITIM B0032600 J GIT6 B0032700 . PREVIOUS ZEROES B0033400 GI6A8 TNE,M A0,48 B0033500 J GIT6 B0033600 SX,H1 B11,GITSM B0033700 J GI6A0 B0033800 . + SIGN FOUND (GIT6) IN NUMERIC B0033900 GI6B SZ R1 =+ B0034000 J GI6C+1 B0034100 . - SIGN FOUND (GIT6) B0034200 GI6C LR R1,R15 = - B0034300 TNZ GITLS SIGN OK NOW B0034400 J GIT1X NO B0034500 SZ GITLS NO MORE B0034600 TNZ GITMC MANTISSA B0034700 J GI6C1 YES B0034800 LA A3,GITMC B0034900 TE,M A3,1 B0035000 J GIT1X 2 OR MORE B0035100 SR R1,GITSC SIGN CHARACTERISTIC B0035200 J GIT6 B0035300 GI6C1 TZ GITD B0035400 J GIT1X SOME DIGITS B0035500 SR,H2 R1,GITSM B0035600 SZ,H1 GITSM B0035700 J GIT6 B0035800 . FOUND . IN NUMBER (GIT6) B0035900 GI6D TZ GITDR B0036000 J GIT1X . BEFORE B0036100 LA,M A3,1 B0036200 SA A3,GITDR B0036300 SZ GITLS SIGN NOT OK B0036400 SX,H1 B11,GITSM NO LEADING ZEROES FLAG B0036500 TNZ GITCX PREVIOUS ( B0036600 LMJ B11,SGX1 NO (, SAVE GX IXS B0036700 J GIT6 B0036800 . D IN NUMBER B0036900 GI6E TZ DOIV . D.P. OR INDUCTION VARIABLE J GIT6L . INDUCTION VARIABLE TZ GITMC . MANTISSA OR CHAR - D.P. J GIT1X B0037100 SR,H2 R15,GITDP . D.P. FLAG TNZ GITDR . DEC POINT ENCOUNTERED SR,H2 R15,GITDR . SUPPLY DEC POINT J GI6F1 B0037400 . E IN NUMBER B0037500 GI6F TZ DOIV . EXP OR DO INDUCTION VARIABLE J GIT6L . INDUCTION VARIABLE TZ GITMC . MANTISSA OR CHAR - D.P. J GIT1X CHAR ALREADY B0037700 TNZ GITDR . DEC POINT ENCOUNTERED SR,H2 R15,GITDR . SUPPLY DEC POINT GI6F1 TZ GITIM SAVED IMPLIED MULT PRIOR B0037800 J GIT6L B0037900 GI6F2 LMJ B11,SGX SAVE GX REGISTERS FOR LOGICAL B0038000 SX,H2 B11,GITIM SAVED FOR IMPLIED MULT. B0038100 SR,H2 R15,GITMC SR,H2 R15,GITLS J GIT6 B0038500 . FOUND COMMA IN NUMERIC B0038600 GI6G LA A3,GITCX COMPLEX B0038700 TE,M A3,1 B0038800 J GIT1X SOMETHING ODD B0038900 LMJ B11,NUM B0039000 J GIT2C INTEGER EXIT B0039100 TZ GITDP DOUBLE PRECISION B0039200 J GIT2C DOUBLE PREC. B0039300 . NOT DP B0039400 LA A3,GITV SAVE CONVERTED FOR B0039500 SA A3,GITT1 LATER B0039600 LA,M A3,2 B0039700 SA A3,GITCX B0039800 LA,M A3,1 CAN FIND SIGN B0039900 SA A3,GITLS B0040000 SZ GITD DIGITS B0040100 SZ GITDR DECIMAL DIGITS B0040200 SZ GITN1 S.P. PART B0040300 SZ GITSM SIGN MANTISSA B0040400 SZ GITN1+1 J GIT5 B0040500 . RIGHT PARANTHESIS FOUND B0040600 GI6H LA A3,GITCX B0040700 TE,M A3,2 IS COMPLEX,IMAG. PART B0040800 J GIT1X NO B0040900 LMJ B11,NUM B0041000 J GIT2C INTEGER B0041100 TZ GITDP IS DOUBLE PREC B0041200 J GIT2C LO B0041300 LA A3,GITV = 0 B0041400 SA A3,GITV+1 MOVE REAL AND COMPLEX B0041500 LA A3,GITT1 PARTS TO GITV,+1 B0041600 SA A3,GITV B0041700 LA,M A2,6 ITEM NO = 6 B0041800 J GITR2 RETURN B0041900 GIT1X TZ GITCX COMPLEX B0042000 J GIT2C YES B0042100 GIT2X LMJ B11,NUM B0042200 J GI6J1 INTEGER VALVE (NUM) B0042300 TZ GITDP FLOATING FROM NUM B0042400 J GI6J2 D.P. (GO SET ITEM=D.P.) B0042500 LA,M A2,8 SINGLE PRECISION ITEM B0042600 J GITR3 B0042700 . SEND INTEGER ITEM B0042800 GI6J1 LA,M A2,4 INTEGER B0042900 J GITR3 B0043000 . SEND D.P. ITEM B0043100 GI6J2 LA,M A2,7 D.P. B0043200 J GITR3 B0043300 . FOUND Q,A,G,L,N,O (POSSIBLE LOGICAL) IN DIGITS B0043400 GI6K LA A3,GITDR B0043500 TE,M A3,1 B0043600 J GIT6L B0043700 TZ GITCX A ( YET, IF SO WILL SET TO THAT B0043800 J GIT2C YES, A ( PRECEDED B0043900 TNZ GITIM LMJ B11,SGX S B11,GITIM LA A4,(' ') B0044000 SA A4,GITT1 B0044100 TNE,M A0,22 Q B0044200 J GI6K2 = Q B0044300 GI6K5 LA A3,(1,0) B0044400 GI6K6 SA,S1 A0,GITT1 B0044500 GI6K1 LMJ B11,GX NEXT CHARACTER B0044600 J GI6L1 B0044700 TNE,M A0,61 = . B0044800 J GI6K3 YES B0044900 TLEM,M A3,2 B0045000 J $+2 B0045100 J GI6L1 TOO MANY, SO NOT LOGICAL B0045200 EX GI6KK-1,A3 B0045300 J GI6K1 B0045400 GI6KK SA,S2 A0,GITT1 B0045500 SA,S3 A0,GITT1 B0045600 GI6K2 TNZ GITMC B0045700 J GIT2X NO E, SO B0045800 TZ GITDP POSSIBLE E B0045900 J GI6L1 NOT E, BUT=D (=DQ...) B0046000 SA,S2 A0,GITT1 B0046100 LA,M A0,10 E SET B0046200 LA A3,(1,1) B0046300 J GI6K6 B0046400 GI6K3 LA A4,GITT1 FOUND 2ND ., CHECK LOGICAL B0046500 LMJ B11,GITLT LOGICAL COMPARE B0046600 J GI6L1 NOT LOGICAL B0046700 SZ GITDR SET NUM TO CONVERT B0046800 SZ GITMC AS INTEGER B0046900 LMJ B11,RGX1 RESET GX REGISTERS TO B0047000 J GIT2X RETURN TO ., THEN TO NUM B0047100 . FOUND OTHER THAN D,E,+,.,,,),A,G,L,N,O,Q, OR NUMBER B0047200 GIT6L TZ GITCX B0047300 J GIT2C B0047400 GI6L1 TZ GITIM B0047500 LMJ B11,RGX RESTORE GX REGISTERS B0047600 SZ GITIM B0047700 J GIT2X B0047800 GI2SA SA,S1 A0,GITV,A2 SA,S2 A0,GITV,A2 SA,S3 A0,GITV,A2 SA,S4 A0,GITV,A2 SA,S5 A0,GITV,A2 SLJ GI2SLJ GI2SLR SA,S6 A0,GITV,*A2 LXM,M A3,0 L A0,(' ') S A0,GITV,A2 . BLANK OUT NEXT WORD TLE A2,(1,6) . TEST FOR EXCEEDING J GI2SLJ . GITV AN,M A2,1 J GI2SLJ . NUM CONVERTS TO FINAL FORM(INTEGER,REAL,DOUBLE) B0048500 . LMJ B11,NUM B0048600 . EXIT IF INTEGER B0048700 . EXIT IF FLOATING POINT OR DOUBLE PRECISION B0048800 . B0048900 NUM . SIGNIF DL A3,GITN1 SIGNIF DJZ A3,NUMZ ZERO . LSSL A4,6 CONCATENATE LOWER TO UPPER SIGNIF DLSC A3,A3 GET MOST SIGNIFICANT BIT SIGNIF DSL A3,1 SIGNIF L,M A2,02067 GET STARTING EXPONENT VALUE SIGNIF AN A2,A5 SHIFT COUNT SIGNIF NUMZ . TNZ GITDR TEST DIGITS AFTER DECIMAL POINT SIGNIF TZ GITCX SIGNIF J NUMA IN COMPLEX CONVERT INTEGER TO REAL SIGNIF J NUM50 SIGNIF . ATH THIS POINT A TEST IS MADE BETWEEN DOUBLE PRECISION AND REAL SIGNIF . A NUMBER IS DOUBLE PRECISION IF IT HAS A D OR IF THE SIGNIF . EXPONENT IS OUT OF RANGE FOR REAL SIGNIF NUMA DJZ A3,NUM60 NUMB TZ CRCNVT SZ GITDP INHIBIT DOUBLE PRECISION IF RANGE WILSIGNIFW L A1,GITN3 GETEXPONENT SIGNIF TZ GITSC TEXT EXPONENT SIGN SIGNIF LN A1,A1 SIGNIF L A0,GITDR SIGNIF TZ A0 SIGNIF AN,M A0,1 SIGNIF S A0,GITDR TRUE COUNT OF DECIMAL DIGITS SIGNIF AN A1,A0 GET ACTUAL EXPONENT SIGNIF LM A0,A1 SIGNIF TZ GITSC J NUMBX TG,M A0,311 SIGNIF J NUM99 EXPONENT OUT OF RANGE SIGNIF NUMBX . DA A3,DRND SIGNIF DFP A2,A3 CONVERT TO FLOATING POINT FORM SIGNIF TZ,H2 GITSM SIGNIF DLN A3,A3 SIGNIF JZ A1,NUMC CONVERSION COMPLETE SIGNIF L,M A0,0 SET POSITIVE EXP INDEX SIGNIF JP A1,NUM20 SIGNIF L,M A0,1 NEGATIVE EXPONENT INDEX SIGNIF LM A1,A1 USE ABSOLUTE EXPONENT SIGNIF NUM20 DSL A1,36 SIGNIF TG,M A2,10 SIGNIF DI,M A1,10 SIGNIF JZ A2,NUM27 SIGNIF LSSL A2,1 SIGNIF EX DMDC,A0 A*10**(100X+10Y+Z) SIGNIF NUM27 JNZ A1,NUM40 SIGNIF NUMC DS A3,GITV SIGNIF L A0,GXX TZ GITDP SIGNIF J 1,B11 SIGNIF JZ A3,1,B11 SIGNIF LM,T1 A2,GITV TG,M A2,02200 J NUM99 DFU A2,A3 UNPACK THE DP NUMBER DA A3,SRND ROUND TO SINGLE PRECISION TP A3 IS IT NEGATIVE DAN A3,SRDN DFP A2,A3 PACK IT FCL A3,A3 CONVERT TO REAL SIGNIF DS A3,GITV SIGNIF J 1,B11 SIGNIF NUM40 A,M A0,2 SET TO NEX POWER IN EXPONENT TABLE SIGNIF J NUM20 SIGNIF NUM50 L A0,A5 SHIFT COUNT SIGNIF DSL A3,4,A0 L A0,GXX TZ A3 SIGNIF J GIERJ INTEGER OUT OF RANGE SIGNIF SSL A4,1 NUM52 TZ,H2 GITSM TEST FOR MINUS NUMBER SIGNIF LN A4,A4 SIGNIF S A4,GITV SIGNIF J 0,B11 SIGNIF NUM60 SZ A3 J NUMC NUM99 L A3,(0377777777777) S A3,GITV SIGNIF SZ GITV+1 SIGNIF S,H2 B11,NUM99X SIGNIF LMJ B11,PERR SIGNIF FORM6 1,107,GITV SIGNIF L A0,GXX L B11,NUM99X SIGNIF J 1,B11 SIGNIF GIERJ . KEEP RIGHT MOST 35 BITS SIGNIF S B11,NUM99X SIGNIF LMJ B11,PERR SIGNIF FORM6 1,213,0 SIGNIF L B11,NUM99X SIGNIF J 0,B11 SIGNIF GITSL . . DETERMINE IF SLASH IS A SLASH OR PART OF A SLASH-SLASH TO FORM . A CONCATENATION OPERATOR LMJ B11,SGX1 . SAVE GX REGISTERS LMJ B11,GX . GET NEXT CHARACTER J GITSL1 TE,M A0,'/' J GITSL1 . ORDINARY SLASH L,M A2,036 . NUMBER FOR CONCATENATION J GITR2 GITSL1 LMJ B11,RGX1 L,M A0,'/' . RESTORE ORIGINAL CHARACTER J GI2CM . RETURN AS SLASH . ERRORS FROM GIT B0061500 . TOO MANY DIGITS IN LABEL B0061600 . TOO MANY ALPHA-NUMERIC CHARACTERS IN NAME $$$$$$ B0061700 . OCTAL NUMBER EXCEEDS 12 DIGITS $$$$$$$$$$$$ B0061800 . NON OCTAL DIGIT $ B0061900 . TWO SIGNS IN OCTAL NUMBER B0062000 GIERA LMJ B11,PERR DIGITS IN LABEL (TOO) B0062100 FORM6 021,100,GITV J GI2S1 RETURN FOR MORE B0062300 GIERB LMJ B11,PERR ALPHA CHAR (TOO) B0062400 FORM6 011,101,GITV J GITR3 GIERC LMJ B11,PERR 13 OCTAL B0062700 FORM6 01,102,GITV J GI2O1 B0062900 GIERZ LMJ B11,PERR GT 18 HEX DIGITS DPOCT FORM6 1,117,GITV DPOCT J GI203Z DPOCT GIERD OR A0,(' 0') NON OCTAL DIGIT B0063020 SSC A1,6 B0063040 SA A1,GITV+1 B0063060 LMJ B11,PERR B0063080 FORM6 011,103,GITV+1 LA,M A3,14 SET COUNT EXCLUDE COMMENT B0063200 J GI2O1 B0063300 GIERF LMJ B11,PERR B0063400 FORM6 01,105,GITV J GI2O1 B0063600 . OCTAL DIGIT EXCEEDS 7 B0063700 . RESET GX (SEE SGX) 387900 . 388000 RGX* L,M R4,RGXTA . PRIMARY RESTORE SECTION SLJ RMGRS J 0,B11 RGX1* L,M R4,RGXTB . SECONDARY RESTORE SECTION SLJ RMGRS J 0,B11 SGX* L,M R4,RGXTA . PRIMARY SAVE SECTION SLJ RMGSV J 0,B11 SGX1* L,M R4,RGXTB SLJ RMGSV J 0,B11 . THIS SECTION SAVES NECESSARY PARAMETERS TO RESTART A SCAN . ON ENTRY R4 CONTAINS LOCATION OF TABLE TO SAVE INFO IN RMGSVR S B2,('SVB2 ') SIGNIF S B3,('SVB3 ') L B2,R4 LXI,M B2,1 L R4,('SVB2 ') S,H1 R4,0,B2 S,H2 B3,0,*B2 L R4,FEOS S,S1 R4,0,B2 L R4,FSCLN S,S2 R4,0,B2 L,S6 R4,GXX S,S4 R4,0,B2 L,S5 R4,GXX S,S3 R4,0,B2 TNZ MACNO J RMGAX L R4,MCNT S,S5 R4,0,B2 L B3,MCQNT S,S6 B3,0,*B2 JGD B3,$+2 J $+4 L R4,MQTB,B3 S R4,0,*B2 JGD B3,$-2 L R4,MCLVOU S R4,0,*B2 L R4,GXLOC S R4,0,*B2 L R4,GXLOC+1 S R4,0,B2 L R4,GXLOC+2 . EXTRA WORD FOR ASCII S R4,0,B2 RMGAX L R4,GXSDEL S R4,1,*B2 L R4,GXMSPC S R4,1,*B2 L R4,GXDEL S R4,1,*B2 L R4,GXHOL S R4,1,*B2 L R4,GXSCLN S R4,1,*B2 L R4,GXDMPS S R4,1,*B2 S R5,1,*B2 S R6,1,*B2 L B2,('SVB2 ') L B3,('SVB3 ') J *RMGSV . THIS SECTION RESTORES ALL NECESSARY PARAMETERS TO RESTART A SCAN . ON ENTRY R4 CONTAINS LOCATION OF TABLE TO RESTORE INFO FROM RMGRSR L B2,R4 LXI,M B2,1 S R4,('SVR4 ') S A0,('SVA0ZZ') L,S1 R4,1,*B2 S R4,FEOS L,S2 R4,0,B2 S R4,FSCLN L A0,0,B2 LSSC A0,12 . SIMULATE L,T2 SSA A0,24 S A0,GXX TNZ MACNO J RMGBX L,S5 R4,0,B2 S R4,MCNT L,S6 B3,0,*B2 S B3,MCQNT JGD B3,$+2 J $+4 L R4,0,*B2 S R4,MQTB,B3 JGD B3,$-2 L R4,0,*B2 S R4,MCLVOU L R4,0,*B2 S R4,GXLOC L R4,0,B2 S R4,GXLOC+1 L R4,0,B2 S R4,GXLOC+2 RMGBX L R4,1,*B2 S R4,GXSDEL L R4,1,*B2 S R4,GXMSPC L R4,1,*B2 S R4,GXDEL L R4,1,*B2 S R4,GXHOL L R4,1,*B2 S R4,GXSCLN L R4,1,*B2 S R4,GXDMPS L R5,1,*B2 L R6,1,*B2 L B2,MCNT L R4,GXSB2,B2 S R4,GXB2 L R4,GXTRCZ,B2 S R4,GXSKIP LXM B2,('SVR4 ') L A0,('SVA0ZZ') L,H2 B3,0,B2 LXI,M B3,1 L,H1 B2,0,B2 J *RMGRS . 404600 $(2) GITXT J $-$ SAVES EXIT ADDRESS RMGSV* J $-$ SIGNIF J RMGSVR SIGNIF RMGRS* J $-$ SIGNIF J RMGRSR SIGNIF GI2SLJ J $-$ J GI2SLR $(1) . TFDB + 'EQ O' 20 B0019000 + 'NE P' 21 B0019100 + 'GT Q' 22 B0019200 + 'GE R' 23 B0019300 + 'LT S' 24 B0019400 + 'LE T' 25 B0019500 + 'AND W' 28 B0019600 + 'OR V' 27 B0019700 + 'NOT U' 26 B0019800 + 'TRUE ' 5 B0019900 + 'FALSE ' 5 B0020000 NUMTF + 10 B0055900 + 100 B0056000 + 1000 B0056100 $(2) . GITDR +0 NO. PLACES RIGHT OF DEC. PT. B0060300 GITD +0 NO. DIGITS B0060400 GITSM +0 SIGN OF NUMERIC, LEAD ZEROES B0060500 GITDP +0 DP OR NOT B0060600 GITLS +0 SIGN TO FIND OR NOT B0060700 GITMC +0 MANTISSA OR CHAR B0060800 GITN1 +0 SAVE PARTIAL NUMBERS +0 +0 GITN3 +0 B0061000 GITSC +0 SIGN OF CHAR B0061100 GITCX +0 COMPLEX OR NOT B0061200 GITT1 +0 TEMP. STORAGE B0061300 GITIM + 0 NON ZERO = SAVED SGX2 B0061400 GXEOS EQU FEOS . GIT SEARCH TABLE B0063800 . S1 INDICATION AS TO TYPE SYMBOL (ALPHABETIC,OCTAL,NUMERIC) B0063900 . S2 VALUE IN TRANSFER TABLE FOR DIT 6 + GIT 20 B0064000 . S3 SYMBOL FOR ITEM NO. (*,$,),+,-,1,=,),.,() B0064100 . S4 S4-S6 LOCATION OF GIT 2 OPERATIONS B0064200 . TABLE CALLED TFDA B0064300 NUM99X J $-$ $(1) . TFDA + 031700,GI2E SP (MS) B0064400 + 031700,GI2E (UC) B0064500 + 031700,GI2E (LC) B0064600 + 031700,GI2E (LF) B0064700 + 031700,GI2E (CR) B0064800 + 031700,GI2E (SPACE) B0064900 + 011000,GI2N A B0065000 + 011700,GI2N B B0065100 + 011700,GI2N C B0065200 + 010400,GI2N D B0065300 + 010500,GI2N E B0065400 + 011700,GI2N F B0065500 + 011000,GI2N G B0065600 + 011700,GI2N H B0065700 + 011700,GI2N I B0065800 + 011700,GI2N J B0065900 + 011700,GI2N K B0066000 + 011000,GI2N L B0066100 + 011700,GI2N M B0066200 + 011000,GI2N N B0066300 + 021000,GI2OC O B0066400 + 011700,GI2N P B0066500 + 011000,GI2N Q B0066600 + 011700,GI2N R B0066700 + 011700,GI2N S B0066800 + 011700,GI2N T B0066900 + 011700,GI2N U B0067000 + 011700,GI2N V B0067100 + 011700,GI2N W B0067200 + 011700,GI2N X B0067300 +011700,GI2N +011700,GI20Z +030722,GI2RPR + 030112,GI2M - B0067700 + 030211,GI2M + B0067800 + 031700,GI2E LT B0067900 + 031723,GI2M = B0068000 + 031700,GI2E GT B0068100 + 031701,GI2S + 031701,GI2S + 031713,GI2A * B0068400 + 031717,GI2L ( B0068500 + 031700,GI2E SP B0068600 +031737,GI2CM . COLON + 031700,GI2E SP B0068800 + 031700,GI2E SP B0068900 +030616,GI2CM COMMA + 031700,GI2E SP B0069100 + 000000,GIT2N 0 B0069200 + 000000,GIT2N 1 B0069300 + 000000,GIT2N 2 B0069400 + 000000,GIT2N 3 B0069500 + 000000,GIT2N 4 B0069600 + 000000,GIT2N 5 B0069700 + 000000,GIT2N 6 B0069800 + 000000,GIT2N 7 B0069900 + 000000,GIT2N 8 B0070000 + 000000,GIT2N 9 B0070100 + 031720,GI2Q QUOTE + 031700,GI2E SP B0070300 +031714,GITSL + 030300,GI2P . B0070500 + 031700,GI2E SP(SQUARE) B0070600 + 031700,GI2E STOP (IDLE B0070700 DMDC. SIGNIF DFM A3,DPE1,A2 SIGNIF DFD A3,DPE1,A2 SIGNIF DFM A3,DPE10,A2 SIGNIF DFD A3,DPE10,A2 SIGNIF DFM A3,DPE100,A2 SIGNIF DFD A3,DPE100,A2 SIGNIF SRND +0 +040000,0 SRDN +0 +0100000,0 DRND + 0 SIGNIF + 01000 SIGNIF DPE1 EQU $-2 SIGNIF + 1.0D*+1 SIGNIF + 1.0D*+2 SIGNIF + 1.0D*+3 SIGNIF + 1.0D*+4 SIGNIF + 1.0D*+5 SIGNIF + 1.0D*+6 SIGNIF + 1.0D*+7 SIGNIF + 1.0D*+8 SIGNIF + 1.0D*+9 SIGNIF DPE10 EQU $-2 SIGNIF + 1.0D*+10 SIGNIF + 1.0D*+20 SIGNIF + 1.0D*+30 SIGNIF RES -1 CORRECT ASSEMBLER ERRORS SIGNIF +0632021472355 SIGNIF + 1.0D*+40 SIGNIF RES -1 CORRECT ASSEMBLER ERRORS SIGNIF +0434153451137 SIGNIF + 1.0D*+50 SIGNIF RES -1 CORRECT ASSEMBLER ERRORS SIGNIF +0127714446320 SIGNIF + 1.0D*+60 SIGNIF + 1.0D*+70 SIGNIF + 1.0D*+80 SIGNIF + 1.0D*+90 SIGNIF RES -1 CORRECT ASSEMBLER ERRORS SIGNIF +0222453161645 SIGNIF DPE100 EQU $-2 SIGNIF + 1.0D*+100 SIGNIF RES -1 CORRECT ASSEMBLER ERRORS SIGNIF +0131230337165 SIGNIF + 1.0D*+200 SIGNIF RES -1 CORRECT ASSEMBLER ERRORS SIGNIF +0575354226426 SIGNIF + 1.0D*+300 SIGNIF RES -1 CORRECT ASSEMBLER ERRORS SIGNIF +0200016546722 SIGNIF LIT END