$JOB ASSEMBLY OF MONITOR, COMPILER SECTIONS 1 THROUGH 6 OF $00000010 $* FORTRAN II PROCESSOR, 7090-FO-928 00000020 $* VERSION 3, MODIFICATION LEVEL 35 (35)00000030 $EXECUTE IBSFAP $00000050 * 32K 709/7090 FORTRAN SECTION ONE F1A00010 * FAP F1A00020 * SECTIONS ONE, ONE PRIME, ONE DOUBLE PRIME (RECORDS 13-17) F1A00030 COUNT 12000 F1A00050 ABS F1A00060 REM F1A00070 REM SECTION 1= READS IN AND CLASSIFIES STATEMENTS. FOR ARITHMETICF1A00080 REM FORMULAS, COMPILES THE OBJECT (OUTPUT) INSTRUCTIONS. FOR F1A00090 REM NONARITHMETIC STATEMENTS INCLUDING INPUT-OUTPUT, DOES A F1A00100 REM PARTIAL COMPILATION, AND RECORDS THE REMAINING INFORMATION F1A00110 REM IN TABLES. F1A00120 REM F1A00130 REM * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *F1A00140 REM F1A00150 SST FORTRAN $F1A00151 REM F1A00160 REM SYNONYMS USED BY SECTION ONE. F1A00170 A EQU 1 F1A00180 B EQU 2 F1A00190 C EQU 4 F1A00200 .. EQU 0 F1A00210 REM F1A00220 TAGA SYN 4 F1A00230 TAGB SYN 2 F1A00240 TAGC SYN 4 F1A00250 REM F1A00260 REM F1A00270 REM PARAMETERS VARIABLE AT ASSEMBLY TIME F1A00280 REM F1A00290 TMFACT SYN 7 CONSTANT FOR EXPANDING TABLE SIZES. $F1A00300 TNFACT SYN 8 CONSTANT FOR REDUCING TABLE SIZES $F1A00310 BMFACT SYN 7 $F1A00320 BNFACT SYN 8 $F1A00330 AMFACT SYN 7 $F1A00340 ANFACT SYN 8 $F1A00350 REM F1A00360 TOPTAB SYN BOTIOP-1 TOP OF AVAILABLE MEMORY. F1A00370 BOTMEM SYN BOTTOM BOTTOM OF AVAILABLE MEMORY. F1A00380 TITLE $F1A00385 EJECT F1A01150 REM F1A01160 REM DEFINITIONS OF TAPES FOR DUMPING THE CORE BUFFERS. F1A01170 REM F1A01180 CITTAP SYN 2 COMPAIL TAPE ADDRESS. F1A01190 TEIFTP SYN 3 TEIFNO. F1A01200 DOLPTP SYN 3 TDO. F1A01210 TIFGTP SYN 3 TIFGO. F1A01220 TRADTP SYN 3 TRAD. F1A01230 FRTGTP SYN 3 FORTAG. F1A01240 FRVRTP SYN 3 FORVAR. F1A01250 FRVLTP SYN 3 FORVAL. F1A01260 FRETTP SYN 3 FRET. F1A01270 EQITTP SYN 3 EQUIT. F1A01280 CLSBTP SYN 3 CLOSUB. F1A01290 FRMTTP SYN 3 FORMAT. F1A01300 SBDFTP SYN 3 SUBDEF. F1A01310 CMMNTP SYN 3 COMMON. F1A01320 HLRGTP SYN 3 HOLARG. F1A01330 NONXTP SYN 3 NONEXC. F1A01340 STOPTP SYN 3 TSTOPS. F1A01350 CALLTP SYN 3 CALLFN. F1A01360 FMTNTP SYN 3 FMTEFN. F1A01370 ENDITP SYN 3 ENDI. F1A01380 INPUTP SYN 2 BCD INPUT TAPE. F1A01390 EXEQTP SYN 4 EXECUTABLE STATEMENT INTERMEDIATE TAPE. F1A01400 BUFTAP SYN 3 CORE BUFFER DUMP TAPE. F1A01410 TABTAP SYN 2 TABLE TAPE. F1A01420 EJECT F1A01430 REM DEFINITIONS OF MAXIMUM SIZES FOR TAPE TABLES. F1A01440 REM F1A01450 FRMTMX SYN 6000*TMFACT/TNFACT NUMBER OF BCD WORDS IN FORMAT STATS. F1A01460 CLSBMX SYN 6000*TMFACT/TNFACT NUMBER OF SUBPROGRAMS. F1A01470 NONXMX SYN 1200*TMFACT/TNFACT NUMBER OF NON-EXECUTABLE STATEMENTS. F1A01480 STOPMX SYN 1200*TMFACT/TNFACT NUMBER OF STOP AND RETURN STATEMENTS.F1A01490 FMTNMX SYN 2000*TMFACT/TNFACT NUMBER OF REFERENCES TO FORMAT STATS.F1A01500 CALLMX SYN 2400*TMFACT/TNFACT NUMBER OF CALL STATEMENTS. (FUNCTION)F1A01510 HLRGMX SYN 3600*TMFACT/TNFACT NUMBER OF BCD WORDS USED AS HOLERITH F1A01520 REM ARGUMENTS FOR SUBROUTINES. F1A01530 DOLPMX SYN 600*TMFACT/TNFACT NUMBER OF DO LOOPS. F1A01540 FRVLMX SYN 2000*TMFACT/TNFACT NUMBER OF FIXED POINT VARIABLES (N-S)F1A01550 REM APPEARING TO THE LEFT OF EQUAL SIGNS.F1A01560 FRVRMX SYN 3000*TMFACT/TNFACT NUMBER OF FIXED POINT VARIABLES (N-S)F1A01570 REM APPEARING TO THE RIGHT OF EQUAL SIGNSF1A01580 FRTGMX SYN 6000*TMFACT/TNFACT NUMBER OF I-TAU TAGS. F1A01590 FRSBMX SYN 200*TMFACT/TNFACT NUMBER OF ARITHMETIC STAT. FUNCTIONS.F1A01600 SBDFMX SYN 180*TMFACT/TNFACT NUMBER OF SUBPROGRAM DEFINITIONS. F1A01610 TIFGMX SYN 1200*TMFACT/TNFACT NUMBER OF IF AND GO TO STATEMENTS. F1A01620 TRADMX SYN 1000*TMFACT/TNFACT NUMBER OF BRANCHES IN COMPUTED AND F1A01630 REM ASSIGNED GO TO'S. F1A01640 TEIFMX SYN 3000*TMFACT/TNFACT NUMBER EXTERNAL FORMULA NUMBERS. F1A01650 CMMNMX SYN 6000*TMFACT/TNFACT NUMBER OF COMMON VARIABLES. F1A01660 FRETMX SYN 3000*TMFACT/TNFACT NUMBER OF FREQUENCY ESTIMATES. F1A01670 EQITMX SYN 3000*TMFACT/TNFACT NUMBER OF EQUIVALENCED VARIABLES. F1A01680 ENDIMX SYN 36 NUMBER OF END CARD SETTINGS. F1A01690 FLCNMX SYN 1800*TMFACT/TNFACT NUMBER OF FLOATING POINT VARIABLES. F1A01700 FXCNMX SYN 400*TMFACT/TNFACT NUMBER OF FIXED POINT VARIABLES. F1A01710 TAU1MX SYN 400*TMFACT/TNFACT NUMBER OF 1 DIMENSIONAL SYMBOLIC TAGSF1A01720 TAU2MX SYN 360*TMFACT/TNFACT NUMBER OF 2 DIMENSIONAL SYMBOLIC TAGSF1A01730 TAU3MX SYN 300*TMFACT/TNFACT NUMBER OF 3 DIMENSIONAL SYMBOLIC TAGSF1A01740 DIM1MX SYN 400*TMFACT/TNFACT NUMBER OF ARRAYS OF 1 DIMENSION. F1A01750 DIM2MX SYN 400*TMFACT/TNFACT NUMBER OF ARRAYS OF 2 DIMENSIONS. F1A01760 DIM3MX SYN 360*TMFACT/TNFACT NUMBER OF ARRAYS OF 3 DIMENSIONS. F1A01770 DLT1MX SYN 150*TMFACT/TNFACT NUMBER OF DP-CA ARRAYS. F1A01780 DLT2MX SYN 400*TMFACT/TNFACT NUMBER OF DP-CA NON-SUBSCRIPTED F1A01790 REM VARIABLES. F1A01800 REM F1A01810 EJECT F1A01820 REM DEFINITIONS OF MAXIMUM SIZES FOR TABLE BUFFERS. F1A01830 REM F1A01840 FREGSZ SYN 111 SIZE OF FORMULA REGION. F1A01850 FTBFSZ SYN 12 FT BUFFER LENGTH. F1A01860 CITSIZ SYN 200 LENGTH OF EACH CIT BUFFER. F1A01870 BOLSIZ SYN 19 LENGTH OF BOOLEAN OPERATION CODE TABLE. F1A01880 BFSZ SYN 4000*BMFACT/BNFACT TEMPORARY FORMAT BUFFER. F1A01890 FRMTSZ SYN 200*BMFACT/BNFACT FORMAT. F1A01900 CLSBSZ SYN 200*BMFACT/BNFACT CLOSUB. F1A01910 NONXSZ SYN 250*BMFACT/BNFACT NONEXC. F1A01920 STOPSZ SYN 100*BMFACT/BNFACT TSTOPS. F1A01930 FMTNSZ SYN 200*BMFACT/BNFACT FMTEFN. F1A01940 CALLSZ SYN 200*BMFACT/BNFACT CALLFN. F1A01950 HLRGSZ SYN 200*BMFACT/BNFACT HOLARG. F1A01960 DOLPSZ SYN 100*BMFACT/BNFACT TDO. F1A01970 FRVLSZ SYN 150*BMFACT/BNFACT FORVAL. F1A01980 FRVRSZ SYN 300*BMFACT/BNFACT FORVAR. F1A01990 FRTGSZ SYN 600*BMFACT/BNFACT FORTAG. F1A02000 DLT1SZ SYN DLT1MX DLST1 (SIZ). F1A02010 DLT2SZ SYN DLT2MX DLST2 (SIZ). F1A02020 DIM1SZ SYN DIM1MX DIM1 (SIZ). F1A02030 DIM2SZ SYN DIM2MX DIM2 (SIZ). F1A02040 DIM3SZ SYN DIM3MX DIM3 (SIZ). F1A02050 FLCNSZ SYN FLCNMX FLOCON. F1A02060 FXCNSZ SYN FXCNMX FIXCON. F1A02070 TAU1SZ SYN TAU1MX TAU1 (I-TAU). F1A02080 TAU2SZ SYN TAU2MX TAU2 (I-TAU). F1A02090 TAU3SZ SYN TAU3MX TAU3 (I-TAU). F1A02100 FRSBSZ SYN FRSBMX FORSUB. F1A02110 SBDFSZ SYN SBDFMX SUBDEF. F1A02120 TRADSZ SYN 250*BMFACT/BNFACT TRAD. F1A02130 TIFGSZ SYN 300*BMFACT/BNFACT TIFGO. F1A02140 TEIFSZ SYN 600*BMFACT/BNFACT TEIFNO. F1A02150 CMMNSZ SYN 800*BMFACT/BNFACT COMMON. F1A02160 FRETSZ SYN 100*BMFACT/BNFACT FRET. F1A02170 EQITSZ SYN 350*BMFACT/BNFACT EQUIT. F1A02180 ENDISZ SYN ENDIMX END. F1A02190 ELSESZ SYN 3 COMPENSATING VARIABLE. F1A02200 OTHRSZ SYN 0 COMPENSATING VARIABLE. F1A02210 REM F1A02220 REM F1A02230 REM F1A02240 REM DEFINITIONS OF MAXIMUM SIZES FOR INTERNAL TABLES. F1A02250 REM F1A02260 LAMBSZ SYN 4800*AMFACT/ANFACT LAMBDA. F1A02270 SCRPSZ SYN LAMBSZ/2 OPTIMIZED LAMBDA. F1A02280 ALPHSZ SYN 556*AMFACT/ANFACT ALPHA. F1A02290 BETASZ SYN LAMBSZ/4 BETA. F1A02300 SGMASZ SYN 120*AMFACT/ANFACT SIGMA1. F1A02310 RGRGSZ SYN 200*AMFACT/ANFACT ARGREG. F1A02320 REM F1A02330 EJECT F1A02340 REM DEFINITION OF ORIGIN FOR TABLES AND BUFFERS (TABORG). F1A02350 REM F1A02360 TABLSA SYN 6*TAU3SZ+4*TAU2SZ+2*TAU1SZ+1+FXCNSZ+FLCNSZ F1A02370 TABLSB SYN 2*DLT1SZ+DLT2SZ+2*DIM1SZ+2*DIM2SZ+3*DIM3SZ F1A02380 TABLSC SYN LAMBSZ+BETASZ+SGMASZ F1A02390 TABLSD SYN CLSBSZ+SBDFSZ+ELSESZ F1A02400 TABLSE SYN NONXSZ+STOPSZ+FRETSZ+FRMTSZ+2*TIFGSZ+TRADSZ+5*DOLPSZ F1A02410 TABLSF SYN TEIFSZ+2*FRSBSZ+HLRGSZ+FMTNSZ+ENDISZ+CMMNSZ F1A02420 TABLSG SYN 2*FRVRSZ+2*FRVLSZ+FRTGSZ+2*EQITSZ+CALLSZ+OTHRSZ+2 F1A02430 TABLSH SYN TABLSA+TABLSB+TABLSC+TABLSD+TABLSE+TABLSF+TABLSG F1A02440 REM F1A02450 TABORG SYN TOPTAB-TABLSH ORIGIN FOR TABLE BUFFERS. F1A02460 TTL * SECTION ONE * COMMON BLOCK * RECORD 9F13 * F1A02550 REM F1A02570 ORG SYSCUR $F1A02580 LBL 9F13,THE WORKS F1A02590 BCI 1,9F1300 $F1A02600 ORG (LODR) $F1A02610 TXI INITIL,,130 ENTRY POINT,,RECORD NUMBER F1A02620 REM F1A02630 REM F1A02640 REM * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *F1A02650 REM F1A02660 ABS F1A02670 ORGONE ORG BOTMEM F1A02680 REM F1A02690 REM TABLE PARAMETERS FOR CORE AND TAPE TABLES GENERATED BY F1A02700 REM SECTION ONE. F1A02710 REM F1A02720 REM PARAMETERS FOR USE BY SECTION 1 PRIME AND 1 DOUBLE PRIME.F1A02730 REM F1A02740 REM F1A02750 REM WORD CONTAINING LAST EXTERNAL FORMULA NUMBER AND LAST F1A02760 REM INTERNAL FORMULA NUMBER. F1A02770 EIFNO PZE **,,** EXTERNAL,,INTERNAL FORMULA NUMBER. F1A02780 REM F1A02790 EIFLOC PZE **,TAGC,** LOCATION OF TEIFNO TABLE,,WORD COUNT F1A02800 TIFLOC PZE **,TAGB,** LOCATION OF TIFGO TABLE,,WORD COUNT F1A02810 TRDLOC PZE **,TAGB,** LOCATION OF TRAD TABLE,,WORD COUNT F1A02820 TDOLOC PZE **,TAGB,** LOCATION OF TDO TABLE,,WORD COUNT F1A02830 FRTLOC PZE **,TAGB,** LOCATION OF FRET TABLE,,WORD COUNT F1A02840 EQTLOC PZE **,TAGB,** LOCATION OF EQUIT TABLE,,WORD COUNT F1A02850 NXCLOC PZE **,TAGC,** LOCATION OF NONEXC TABLE,,WORD COUNT F1A02860 STPLOC PZE **,TAGC,** LOCATION OF TSTOPS TABLE,,WORD COUNT F1A02870 REM F1A02880 ONLINE PZE **,,** ON-LINE INDICATOR,,LOCATION OF CALL. F1A02890 REM F1A02900 REM PARAMETER FOR THE FORSUB TABLE. F1A02910 BK PZE **,,** FORSUB COUNTER. F1A02920 REM F1A02930 REM PARAMETER FOR THE COMPAIL (CIT) TABLE . F1A02940 CITCNT PZE **,,-20 COUNT OF REC. ON TAPE,,BUFFER INCREMENT $F1A02950 REM F1A02960 XEQCTR PZE ** COUNT OF EXECUTABLE STATEMENTS. F1A02970 REM F1A02980 DGFLAG PZE ** SIGNAL FOR PRIOR DIAGNOSTIC CALL. F1A02990 REM F1A03000 EJECT F1A03010 REM PARAMETERS FOR ALL TAPE TABLES EXCEPT COMPAIL (CIT) F1A03020 REM GENERATED BY SECTION ONE. F1A03030 REM ENTRIES ARE MADE IN THESE TABLES BY THE TET00 SUBROUTINE IN F1A03040 REM SECTION ONE. F1A03050 REM THE TAP00 SUBROUTINE IN SECTION ONE PRIME ASSEMBLES THE F1A03060 REM FRAGMENTS OF A GIVEN TABLE INTO AN ENTITY FOR LATER SECTIONS.F1A03070 REM F1A03080 REM EACH TABLE HAS AN IDENTIFICATION NUMBER WHICH IS ALSO AN F1A03090 REM INDEX TO ITS SET OF PARAMETERS IN THE FOLLOWING LIST. WHERE F1A03100 REM O = ORIGIN OF TABLE BUFFER, F1A03110 REM B = BUFFER CAPACITY, F1A03120 REM A = ADDRESS OF TABLE ENTRY, F1A03130 REM E = ENTRY LENGTH IN WORDS, F1A03140 REM C = COUNT OF BLOCKS PUT ON TAPE, F1A03150 REM P = PORTION OF BUFFER THAT IS FULL.F1A03160 REM T = TAPE FOR DUMPING BUFFERS. F1A03170 REM X = MARKS THE SPOT FOR ASSEMBLING F1A03180 REM THE TABLE IN SECTION I PRIME. F1A03190 REM M = MAXIMUM TABLE SIZE. F1A03200 REM N = NUMBER OF WORDS IN TABLE. F1A03210 REM L = LABEL ATTACHED TO THIS TABLE. F1A03220 REM F1A03230 INTETX PZE TEIFBF,TAGA,** 00) O,,P F1A03240 PZE EIFNO+1,TAGB,1 A,,E F1A03250 PZE TEIFSZ,,TEIFTP B,,T F1A03260 INTETA PZE TEIFNO,TAGC,TEIFMX X,,M F1A03270 PZE **,,** C,,N F1A03280 BCI 1,TEIFNO L F1A03290 REM F1A03300 PZE DOLPBF,TAGA,** 01) O,,P F1A03310 PZE 1C+5,TAGB,5 A,,E F1A03320 PZE DOLPSZ*5,,DOLPTP B,,T F1A03330 INTETB PZE TDOTAB,TAGC,DOLPMX*5 X,,M F1A03340 PZE **,,** C,,N F1A03350 BCI 1,TDO L F1A03360 REM F1A03370 PZE TIFGBF,TAGA,** 02) O,,P F1A03380 PZE 1C+2,TAGB,2 A,,E F1A03390 PZE TIFGSZ*2,,TIFGTP B,,T F1A03400 INTETC PZE TIFGOT,TAGC,TIFGMX*2 X,,M F1A03410 PZE **,,** C,,N F1A03420 BCI 1,TIFGO L F1A03430 REM F1A03440 PZE TRADBF,TAGA,** 03) O,,P F1A03450 PZE 1G+1,TAGB,1 A,,E F1A03460 PZE TRADSZ,,TRADTP B,,T F1A03470 INTETD PZE TRADTB,TAGC,TRADMX X,,M F1A03480 PZE **,,** C,,N F1A03490 BCI 1,TRAD L F1A03500 REM F1A03510 PZE FRTGBF,TAGA,** 04) O,,P F1A03520 PZE G+1,TAGB,1 A,,E F1A03530 PZE FRTGSZ,,FRTGTP B,,T F1A03540 INTETE PZE FORTAG,TAGC,FRTGMX X,,M F1A03550 PZE **,,** C,,N F1A03560 BCI 1,FORTAG L F1A03570 REM F1A03580 PZE FRVRBF,TAGA,** 05) O,,P F1A03590 PZE G+2,TAGB,2 A,,E F1A03600 PZE FRVRSZ*2,,FRVRTP B,,T F1A03610 INTETF PZE FORVAR,TAGC,FRVRMX*2 X,,M F1A03620 PZE **,,** C,,N F1A03630 BCI 1,FORVAR L F1A03640 REM F1A03650 PZE FRVLBF,TAGA,** 06) O,,P F1A03660 PZE G+2,TAGB,2 A,,E F1A03670 PZE FRVLSZ*2,,FRVLTP B,,T F1A03680 INTETG PZE FORVAL,TAGC,FRVLMX*2 X,,M F1A03690 PZE **,,** C,,N F1A03700 BCI 1,FORVAL L F1A03710 REM F1A03720 PZE FRETBF,TAGA,** 07) O,,P F1A03730 PZE 1G+1,TAGB,1 A,,E F1A03740 PZE FRETSZ,,FRETTP B,,T F1A03750 INTETH PZE FRETTB,TAGC,FRETMX X,,M F1A03760 PZE **,,** C,,N F1A03770 BCI 1,FRET L F1A03780 REM F1A03790 PZE EQITBF,TAGA,** 08) O,,P F1A03800 PZE 1C+2,TAGB,2 A,,E F1A03810 PZE EQITSZ*2,,EQITTP B,,T F1A03820 INTETI PZE EQUITT,TAGC,EQITMX*2 X,,M F1A03830 PZE **,,** C,,N F1A03840 BCI 1,EQUIT L F1A03850 REM F1A03860 CLSBCN PZE CLSBBF,TAGA,1 09( O,,P F1A03870 PZE G+1,TAGB,1 A,,E F1A03880 PZE CLSBSZ,,CLSBTP B,,T F1A03890 INTETJ PZE CLOSUB,TAGC,CLSBMX X,,M F1A03900 PZE **,,** C,,N F1A03910 BCI 1,CLOSUB L F1A03920 REM F1A03930 REM THE CLOSUB TABLE HAS ONE PRESET ENTRY OF (FPT). F1A03940 REM (FPT) IS A FLOATING POINT TRAP SUBROUTINE CALLED FOR F1A03950 REM BY MAIN PROGRAMS COMPILED BY FORTRAM. F1A03960 REM F1A03970 PZE FRMTBF,TAGA,** 10) O,,P F1A03980 PZE G+1,TAGB,1 A,,E F1A03990 PZE BFSZ,,FRMTTP B,,T F1A04000 INTETK PZE FORMAT,TAGC,FRMTMX X,,M F1A04010 PZE **,,** C,,N F1A04020 BCI 1,FORMAT L F1A04030 REM F1A04040 SBDFCN PZE SBDFBF,TAGA,** 11) O,,P F1A04050 PZE 1G+1,TAGB,1 A,,E F1A04060 PZE SBDFSZ,,SBDFTP B,,T F1A04070 INTETL PZE SUBDEF,TAGC,SBDFMX X,,M F1A04080 PZE **,,** C,,N F1A04090 BCI 1,SUBDEF L F1A04100 REM F1A04110 PZE CMMNBF,TAGA,** 12) O,,P F1A04120 PZE 1G+1,TAGB,1 A,,E F1A04130 PZE CMMNSZ,,CMMNTP B,,T F1A04140 INTETM PZE COMMON,TAGC,CMMNMX X,,M F1A04150 PZE **,,** C,,N F1A04160 BCI 1,COMMON L F1A04170 REM F1A04180 PZE HLRGBF,TAGA,** 13) O,,P F1A04190 PZE 1G+1,TAGB,1 A,,E F1A04200 PZE HLRGSZ,,HLRGTP B,,T F1A04210 INTETN PZE HOLARG,TAGC,HLRGMX X,,M F1A04220 PZE **,,** C,,N F1A04230 BCI 1,HOLARG L F1A04240 REM F1A04250 PZE NONXBF,TAGA,** 14) O,,P F1A04260 PZE EIFNO+1,TAGB,1 A,,E F1A04270 PZE NONXSZ,,NONXTP B,,T F1A04280 INTETO PZE NONEXC,TAGC,NONXMX X,,M F1A04290 PZE **,,** C,,N F1A04300 BCI 1,NONEXC L F1A04310 REM F1A04320 PZE STOPBF,TAGA,** 15) O,,P F1A04330 PZE EIFNO+1,TAGB,1 A,,E F1A04340 PZE STOPSZ,,STOPTP B,,T F1A04350 INTETP PZE TSTOPS,TAGC,STOPMX X,,M F1A04360 PZE **,,** C,,N F1A04370 BCI 1,TSTOPS L F1A04380 REM F1A04390 PZE CALLBF,TAGA,** 16) O,,P F1A04400 PZE CALLNM+1,TAGB,1 A,,E F1A04410 PZE CALLSZ,,CALLTP B,,T F1A04420 INTETQ PZE CALLFN,TAGC,CALLMX X,,M F1A04430 PZE **,,** C,,N F1A04440 BCI 1,CALLFN L F1A04450 REM F1A04460 PZE FMTNBF,TAGA,** 17) O,,P F1A04470 PZE SET+1,TAGB,1 A,,E F1A04480 PZE FMTNSZ,,FMTNTP B,,T F1A04490 INTETR PZE FMTEFN,TAGC,FMTNMX X,,M F1A04500 PZE **,,** C,,N F1A04510 BCI 1,FMTEFN L F1A04520 REM F1A04530 PZE 18) O,,P TSKIPS TABLE. F1A04540 PZE A,,E NOT USED IN F1A04550 PZE B,,T 709/7090 F1A04560 PZE X,,M FORTRAN. F1A04570 PZE C,,N F1A04580 BCI 1, L F1A04590 REM F1A04600 ENDICN PZE ENDIBF,TAGA,** 19) O,,P F1A04610 PZE G+1,TAGB,1 A,,E F1A04620 PZE ENDISZ,,ENDITP B,,T F1A04630 INTETT PZE ENDTAB,TAGC,ENDIMX X,,M F1A04640 PZE **,,** C,,N F1A04650 BCI 1,END L F1A04660 REM F1A04670 BSS 6 EXPANSION SPACE. F1A04680 EJECT F1A04690 REM PARAMETERS FOR ALL CORE TABLES WHICH ARE GENERATED AND F1A04700 REM SEARCHED BY THE TBSR00 (TABLE SEARCH) SUBROUTINE. F1A04710 REM ALL OF THESE TABLES AND THEIR PARAMETERS EXCEPT SIGMA ARE F1A04720 REM LEFT IN CORES FOR SECTION ONE PRIME. F1A04730 REM F1A04740 REM F1A04750 REM ENTRY TO THE TBSR00 ROUTINE IS BY TSX TO ....IX WHERE ....IX F1A04760 REM IS THE LAST WORD OF THE BLOCK OF PARAMETERS ASSOCIATED WITH F1A04770 REM A GIVEN TABLE. THE PARAMETERS ARE... F1A04780 REM *** = TXH/TXL OP SWITCH FOR DIMS, F1A04790 REM ARG1 = LOCATION OF 1ST ARGUMENT, F1A04800 REM L = LENGTH OF ARGUMENT, F1A04810 REM NCA = NEXT CORE ADDRESS, F1A04820 REM N = CURRENT NUMBER OF ENTRIES, F1A04830 REM FCA = 1ST CORE ADDRESS, F1A04840 REM J = MAXIMUM NUMBER OF ENTRIES, F1A04850 REM EP = ENTRY POINT TO TBSR00. F1A04860 REM ID = IDENTIFICATION FOR DIAG. F1A04870 REM F1A04880 REM F1A04890 TXL G+1,,1 FXCN) *** ARG1,,L F1A04900 PZE FXCNBF+1,,** NCA,,N F1A04910 PZE FXCNBF,,FXCNSZ FCA,,J F1A04920 FXCNIX TXI TBSR00,0,-11 TXI EP,,ID F1A04930 REM F1A04940 TXL G+1,,1 FLCN) *** ARG1,,L F1A04950 PZE FLCNBF+1,,** NCA,,N F1A04960 PZE FLCNBF,,FLCNSZ FCA,,J F1A04970 FLCNIX TXI CORR01,0,-10 TXI EP,,ID F1A04980 REM F1A04990 TXL E+3+2,,2 TAU1) *** ARG1,,L F1A05000 PZE TAU1BF+2,,** NCA,,N F1A05010 PZE TAU1BF,,TAU1SZ FCA,,J F1A05020 TAU1IX TXI TBSR00,0,-9 TXI EP,,ID F1A05030 REM F1A05040 TXL E+3+4,,4 TAU2) *** ARG1,,L F1A05050 PZE TAU2BF+4,,** NCA,,N F1A05060 PZE TAU2BF,,TAU2SZ FCA,,J F1A05070 TAU2IX TXI TBSR00,0,-8 TXI EP,,ID F1A05080 REM F1A05090 TXL E+3+6,,6 TAU3) *** ARG1,,L F1A05100 PZE TAU3BF+6,,** NCA,,N F1A05110 PZE TAU3BF,,TAU3SZ FCA,,J F1A05120 TAU3IX TXI TBSR00,0,-7 TXI EP,,ID F1A05130 REM F1A05140 TXLOP TXL E+11+1,,1 SIG1) *** ARG1,,L F1A05150 PZE **,,** NCA,,N F1A05160 PZE SIGMA1,,SGMASZ FCA,,J F1A05170 SIG1IX TXI TBSR00,0,-6 TXI EP,,ID F1A05180 REM F1A05190 TXHOP TXH 1C+2,,2 DIM1) *** ARG1,,L F1A05200 PZE DIM1BF+2,,** NCA,,N F1A05210 ORGDM1 PZE DIM1BF,,DIM1SZ FCA,,J F1A05220 DIM1IX TXI TBSR00,0,-3 TXI EP,,ID F1A05230 REM F1A05240 TXH 1C+2,,2 DIM2) *** ARG1,,L F1A05250 PZE DIM2BF+2,,** NCA,,N F1A05260 ORGDM2 PZE DIM2BF,,DIM2SZ FCA,,J F1A05270 DIM2IX TXI TBSR00,0,-2 TXI EP,,ID F1A05280 REM F1A05290 TXH 1C+3,,3 DIM3) *** ARG1,,L F1A05300 PZE DIM3BF+3,,** NCA,,N F1A05310 PZE DIM3BF,,DIM3SZ FCA,,J F1A05320 DIM3IX TXI TBSR00,0,-1 TXI EP,,ID F1A05330 REM F1A05340 TXH 1C+2,,2 DLT1) *** ARG1,,L F1A05350 PZE DLT1BF+2,,** NCA,,N F1A05360 PZE DLT1BF,,DLT1SZ FCA,,J F1A05370 DLIST1 TXI TBSR00,,-12 TXI EP,,ID F1A05380 REM F1A05390 TXL E+3,,1 DLT2) *** ARG1,,L F1A05400 PZE DLT2BF+1,,** NCA,,N F1A05410 PZE DLT2BF,,DLT2SZ FCA,,J F1A05420 DLIST2 TXI TBSR00,0,-13 TXI EP,,ID F1A05430 REM F1A05440 BSS 4 EXPANSION SPACE. F1A05450 REM F1A05460 REM TEST FOR IMPROPERLY WRITTEN COMPLEX CONSTANT WHICH IS F1A05470 REM ABOUT TO BE ENTERED AS A SINGLE PRECISION STANDARD F1A05480 REM FORTRAN CONSTANT. F1A05490 CORR01 CLA MODECL F1A05500 SUB L(I) TEST FOR CA MODE F1A05510 TNZ TBSR00 NO, CONTINUE F1A05520 TRA ICM6 YES, ERROR, GO TO DIAGNOSTIC F1A05530 EJECT F1A05540 REM MACHINE ERROR CALLS TO DIAGNOSTIC. F1A05550 REM F1A05560 REM F1A05570 MRTN77 TXI (DIAG),,0 *GO TO MACHINE ERROR DIAGNOSTIC. F1A05580 REM CHARACTER IN AC IS GREATER THAN 77 OCTAL. F1A05590 REM SECTION ONE SCANS A SATEMENT 1 CHARACTER AT A TIME. F1A05600 REM THE AC WAS CLEARED PRIOR TO SHIFTING IN THE CURRENT F1A05610 REM SIX BITS. A COMPARISION WAS MADE WITH A CELL CONTAINING F1A05620 REM THE NUMBER 77 OCTAL AND THE AC GREATER THAN BRANCH WAS F1A05630 REM TAKEN. 77 OCTAL IS AN INTERNAL CHARACTER USED AS AN F1A05640 REM END OF STATEMENT FLAG. F1A05650 REM F1A05660 OCTL12 TXI (DIAG),,0 *GO TO MACHINE ERROR DIAGNOSTIC. F1A05670 REM STATEMENT SCAN IS THE SAME THE ONE DESCRIBED IN MRTN77 F1A05680 REM ERROR. HOWEVER, THIS TIME THE AC CONTAINS THE NUMBER F1A05690 REM 12 OCTAL, AN ILLEGAL CHARACTER IN ANY SENSE. F1A05700 REM F1A05710 TXI (DIAG),,0 NOT USED. F1A05720 REM F1A05730 TXI (DIAG),,0 NOT USED. F1A05740 REM F1A05750 REM F1A05760 REM F1A05770 REM F1A05780 REM F1A05790 REM CALLS TO THE SECTION I DIAGNOSTIC THAT WOULD F1A05800 REM FALL INTO DUPLICATE LOCATION NUMBERS IN F1A05810 REM RECORDS 9F10 AND 9F11. F1A05820 REM F1A05830 ER0033 TSX DIAG,4 *N.A. STATEMENT NOT FOUND IN DICTIONARY. F1A05840 REM F1A05850 BSS 4 ADDITIONAL SPACE. F1A05860 REM F1A05870 EJECT F1A05880 REM F1A05890 REM RE-ENTRY TO PASS1 OR PASS 2. F1A05900 REM F1A05910 PASS1 TXH PASS2,,0 (TXH-TXL) SWITCH FOR PASS 1 OR PASS 2. F1A05920 LXD LDFT2,4 HAS AN EOF BEEN SENSED ON BCD INPUT TAPE. F1A05930 TXH LDFR0,4,0 *NO, GET NEXT STATEMENT. F1A05940 TRA CLOSP1 *YES, CLOSE OUT PASS 1 AND GET PASS 2. F1A05950 REM F1A05960 REM *************************************************************F1A05961 REM F1A05962 REM CIT00 / CALLS I/O ROUTINE. F1A05970 REM F1A05980 REM ENTERS FOUR WORD CITS INTO THE CIT BUFFER AND F1A05990 REM DUMPS A BUFFER WHEN IT BECOMES FULL. F1A06000 REM THE ROUTINE ALSO MAPS ARITHMETIC INSTRUCTIONS F1A06010 REM INTO BOOLEAN OPERATIONS IF THE CURRENT STATEMENT F1A06020 REM MODE IS BOOLEAN. F1A06030 REM F1A06040 CIT00 ZET DGFLAG HAS THERE BEEN A DIAGNOSTIC. F1A06050 TRA BERPCH GO TO BOOLEAN TEST PATCH $F1A06060 SXA CITJ1,1 SAVE IR1 AND IR2. F1A06070 SXA CITJ2,2 F1A06080 TRA COMP1 TEST FOR FUNCTION OR SUBROUTINE $F1A06090 ZET *+1 IS THIS A CLOSE OUT CALL. F1A06100 CITA0 TXH CITC0,2,-CITSIZ NO, IS THE BUFFER FULL. F1A06110 SXA CITB0,4 YES. F1A06120 LXA CITD0,1 GET CURRENT BUFFER ORIGIN. F1A06130 SXA CIT01,1 SET IN I/O COMMAND. F1A06140 TXL CITB0,2,0 *NOTHING TO WRITE. F1A06150 PXD ,2 GET TRUE NUMBER. F1A06160 PDC ,2 F1A06170 SXD CIT01,2 SET I/O COMMAND WORD COUNT. F1A06180 TSX (TAPE),4 WRITE CIT RECORD. F1A06190 PZE CIT01,,(WBNP) F1A06200 PZE CIT02,,CITTAP F1A06210 CLA CITCNT INCREMENT CIT RECORD COUNT. F1A06220 ADD L(1) F1A06230 STO CITCNT F1A06240 TXL *+2,1,CITBUF SET NEW BUFFER ORIGIN. F1A06250 TXI *+2,1,-CITSIZ F1A06260 TXI *+1,1,CITSIZ F1A06270 SXA CITD0,1 SET ADDRESSES IN ROUTINE. F1A06280 TXI *+1,1,1 F1A06290 SXA CITE0,1 F1A06300 TXI *+1,1,-4 F1A06310 SXA CITF0,1 F1A06320 CITB0 AXT **,4 RESTORE LINKAGE. F1A06330 AXT 0,2 RESET BUFFER INCREMENT. F1A06340 NZT CITA0 IS THIS A CLOSE OUT CALL. F1A06350 TRA CITJ0 YES. F1A06360 CITC0 AXT 2,1 NO, LOAD LOOP COUNT. F1A06370 CITC1 CAL* 1,4 GET FIRST (OR THIRD) WORD OF CIT. F1A06380 CITD0 SLW CITBUF,2 STORE IN CURRENT BUFFER. F1A06390 CLA 1,4 GET ADDRESS OF SECOND (OR FOURTH) F1A06400 ARS 18 WORD OF CIT. F1A06410 STA *+1 F1A06420 CAL ** GET WORD. F1A06430 CITE0 SLW CITBUF+1,2 STORE IN CURRENT BUFFER. F1A06440 TXI *+1,2,-2 INCREMENT BUFFER INDEX. F1A06450 TXI *+1,4,-1 INCREMENT LINKAGE ADDRESS. F1A06460 TIX CITC1,1,1 GET NEXT TWO WORDS OF CIT. F1A06470 CAL MODECL IS THIS A BOOLEAN STATEMENT. F1A06480 ERA L(B) F1A06490 TNZ CITJ0 *NO. F1A06500 CITF0 CAL CITBUF-3,2 YES, GET THE OPERATION CODE. F1A06510 LAS ALL1 IS THIS AN ARITHMETIC STATEMENT FUNCTION. F1A06520 TRA *+2 NO. F1A06530 TRA CITJ0 YES, DO NOT MODIFY FLAG. F1A06540 SLW ERASE SAVE DECREMENT, IF ANY. F1A06550 AXT BOLSIZ,1 LOAD COUNT OF BOOLEAN OPERATION CODES. F1A06560 CITG0 LDQ BTABL,1 GET FIRST (OR NEXT) DICTIONARY WORD AND F1A06570 SLQ ERASE SPLIT OF ALGEBRAIC OPERATION CODE. F1A06580 LAS ERASE ARE OPERATION CODES IDENTICAL. F1A06590 TRA *+2 NO. F1A06600 TRA CITH0 YES, MAP LOGICAL COUNTER PART. F1A06610 TIX CITG0,1,1 NO, CONTINUE COMPARISON. F1A06620 BER001 TSX DIAG,4 OPERATION CODE NOT IN DICTIONARY. F1A06630 CITH0 LGL 18 MOVE LOGICAL COUTERPART INTO DECREMENT. F1A06640 SLQ* CITF0 SET LOGICAL COUNTERPART IN CURRENT CIT. F1A06650 CITJ0 SXD CITCNT,2 SAVE BUFFER INCREMENT. F1A06660 CITJ1 AXT **,1 RESTORE INDICES. F1A06670 CITJ2 AXT **,2 F1A06680 TRA 1,4 RETURN TO CALLER. F1A06690 REM F1A06700 CIT01 IORT **,,** I/O COMMAND FOR WRITING CITS. F1A06710 CIT02 BCI 1,COMAIL COMPAIL LABEL. F1A06720 REM F1A06730 REM F1A06740 REM TABLE OF CORRESPONDENCE BETWEEN REAL ALGEBRA AND BOOLEAN. F1A06750 REM F1A06760 BSS 5 SPACE FOR POSSIBLE ADDITIONAL ENTRIES... F1A06770 BCD 1CHSCOM F1A06780 BCD 1CLACAL F1A06790 BCD 1CLSCAL F1A06800 BCD 1FADORA F1A06810 BCD 1FMPANA F1A06820 BCD 1STOSLW F1A06830 BCD 1COMCOM F1A06840 BCD 1LDQLDQ F1A06850 BCD 1SXDSXD F1A06860 BCD 1TSXTSX F1A06870 BCD 1LXDLXD F1A06880 BCD 1PXAPXA F1A06890 BCD 1SUBSUB F1A06900 BCD 1STASTA F1A06910 BCD 1STQSTQ F1A06920 BCD 1TRATRA F1A06930 BCD 1PZEPZE F1A06940 BCD 1XCAXCA F1A06950 BCD 1NTRNTR F1A06960 BTABL SYN * F1A06970 REM F1A06980 BOOLIN PZE 0 CELL FOR BOOLEAN INDICATOR. F1A06990 REM F1A07000 REM *************************************************************F1A07001 REM F1A07002 REM TET00 / CALLS I/O ROUTINE. F1A07010 REM F1A07020 REM MAKES ENTRIES INTO THE CORE BUFFERS FOR F1A07030 REM VARIOUS TABLES AND DUMPS A BUFFER WHEN F1A07040 REM IT BECOMES FULL. F1A07050 REM F1A07060 TET00 ZET DGFLAG HAS THERE BEEN A DIAGNOSTIC. F1A07070 TRA 2,1 *YES, DO NOT MAKE ENTRY. F1A07080 SXA TETX1,1 SAVE INDICES. F1A07090 SXA TETX2,2 F1A07100 SXA TETX4,4 F1A07110 STQ TEMP SAVE CONTENTS OF MQ. F1A07120 LDQ 1,1 GET TABLE IDENTIFICATION. F1A07130 STQ TABNUM SAVE FOR POSSIBLE WRITE. F1A07140 MPY L(6) F1A07150 XCA F1A07160 PAC ,1 F1A07170 CLA INTETX,1 GET COUNT OF WORDS IN BUFFER. F1A07180 STD TETA0 SET TEST FOR FULL BUFFER. F1A07190 CLA INTETX+2,1 GET MAXIMUM BUFFER LENGTH. F1A07200 PAX ,2 LOAD BUFFER LENGTH. F1A07210 ZET TETCL IS THIS A CALL TO CLOSE OUT BUFFER. F1A07220 TETA0 TXH TETC0,2,** *NO, IS BUFFER FULL. F1A07230 STD TETB1 YES, SET TAPE ADDRESS. F1A07240 CLA INTETX,1 GET BUFFER ADDRESS AND WORD COUNT. F1A07250 STA TETIO+1 SET I/O COMMAND FOR WRITING. F1A07260 STD TETIO+1 F1A07270 ANA 1BAR F1A07280 TZE TETB2 *WORD COUNT OF BUFFER ZERO, NIL TO WRITE. F1A07290 CLA INTETX+4,1 INCREMENT COUNT OF BUFFERS. F1A07300 ADD L(1) DUMPED ON TAPE. F1A07310 STA INTETX+4,1 SAVE COUNT. F1A07320 PAX ,4 SET BUFFER NUMBER IN RECORD LABEL. F1A07330 ADD TETA0 UPDATE COUNT OF WORDS ON TAPE. F1A07340 STD INTETX+4,1 F1A07350 SXD TABNUM,4 F1A07360 TSX (TAPE),4 DUMP BUFFER ON DESIGNATED TAPE. F1A07370 TETB0 PZE TETIO,,(WBNC) OPERATION CODE MAY BECOME A PROCEED. F1A07380 TETB1 PZE INTETX+5,1,** F1A07390 SXA TETFLG,4 RESET NO DUMP FLAG. F1A07400 TETB2 CLA TETCL IS THIS A CALL TO CLOSE OUT BUFFER. F1A07410 TZE TETE0 *YES, DO NOT MAKE AN ENTRY. F1A07420 STD TETA0 NO, RESET COUNT OF WORDS IN BUFFER. F1A07430 TETC0 LDC TETA0,4 LOAD 2S COMPLEMENT OF BUFFER WORD COUNT. F1A07440 CLA INTETX+1,1 GET COUNT OF WORDS IN THIS TABLE ENTRY. F1A07450 PDX ,2 LOAD ENTRY LENGTH. F1A07460 TETD0 CAL* INTETX+1,1 GET A WORD OF THIS ENTRY. F1A07470 SLW* INTETX,1 STORE IN TABLE BUFFER. F1A07480 TXI *+1,4,-1 INCREMENT BUFFER REFERENCE. F1A07490 TIX TETD0,2,1 DECREMENT ENTRY REFERENCE AND TEST COUNT. F1A07500 CAL TETA0 UPDATE COUNT OF WORDS IN BUFFER. F1A07510 ADD INTETX+1,1 F1A07520 TETE0 STD INTETX,1 F1A07530 TETX1 AXT **,1 RESTORE INDICES. F1A07540 TETX2 AXT **,2 F1A07550 TETX4 AXT **,4 F1A07560 LDQ TEMP RESTORE CONTENTS OF MQ. F1A07570 TRA 2,1 *RETURN TO CALLER. F1A07580 REM F1A07590 TETFLG PZE ** BUFFER DUMP FLAG. F1A07600 TETCL PZE -1 CLOSE OUT BUFFER FLAG. F1A07610 REM F1A07620 TETIO IOCP TABNUM,,1 I/O COMMAND TO WRITE LABEL. F1A07630 IOCT **,,** I/O COMMAND TO WRITE BUFFER. $F1A07640 REM F1A07650 REM *************************************************************F1A07651 RP2I CLA PS2L SET EXIT TO PASS TWO $F1A07653 TRA *+2 $F1A07657 D12CS CLA DIAGL SET EXIT TO SECTION ONE DIAGNOSTIC. $F1A07660 STO 1TOCS+1 SETS EXIT FOR DISKS. $F1A07665 1TOCS TSX (LOAD),4,1 CALLS THE ONE TO CS ROUTINE. $F1A07670 PZE F1A07680 REM F1A07690 REM *************************************************************F1A07691 REM F1A07700 REM SUBROUTINE TO CALL THE SECTION I DIAGNOSTIC. F1A07710 REM F1A07720 P1DXIT AXT 0,4 SET END OF SECTION ONE FLAG FOR DIAG. F1A07730 REM F1A07740 DIAG SXD ONLINE,4 SAVE LOCATION OF CALL. F1A07750 NZT *+2 IS SYSTEM TAPE POSITIONED AT DIAGNOSTIC. F1A07760 TRA 1TOCS-2 *YES, READ IN DIAGNOSTIC. $F1A07770 DGX1 TSX (TAPE),4 NO, SPACE OVER PASS 2. F1A07780 PZE FRSP,,(SKBP) F1A07790 PZE ,,SYSTAP F1A07800 TRA 1TOCS-2 * READ IN DIAGNOSTIC. $F1A07810 DIAGL BCI 1,9F1500 $F1A07813 PS2L BCI 1,9F1400 $F1A07817 REM F1A07820 REM *************************************************************F1A07821 REM F1A07822 REM I/O COMMANDS USED BY PASS 2. F1A07830 REM F1A07840 REM F-REGION AND CONTROL INFORMATION. F1A07850 REM F1A07860 IORT FREGON-4,,FREGSZ+4 LOADS BUFFER 1. F1A07870 DCF PZE **,2,-FREGON ORIGIN OF CURRENT F-REGION,,2S COMPLIMENT.F1A07880 IORT FREGON+FREGSZ,,FREGSZ+4 LOADS BUFFER 2. F1A07890 REM F1A07900 REM CURRENT CONTROL WORDS. F1A07910 REM F1A07920 TLABEL PZE **,,** PROCESSOR ADDRESS,,F-SCAN POSITION. F1A07930 MODECL PZE ** MODE INDICATOR. F1A07940 EFN PZE **,,0 EXTERNAL FORMULA NUMBER IN BINARY (IF ANY)F1A07950 FIRST5 PZE ** FIRST 5 CHARACTERS OF STATEMENT IN BCD. F1A07960 REM F1A07970 REM F-REGION DEFINITION - FORMULA REGION. F1A07980 BEGFRG SYN * ORIGIN OF FT-REGION. F1A07990 BSS 4 CONTROL WORD RESERVATION. F1A08000 FREGON BSS FREGSZ STATEMENT RESERVATION. F1A08010 FRGBF2 SYN * ORIGIN OF SECOND F-REGION BUFFER. F1A08020 BSS FREGSZ+4 BUFFER 2 FOR F-REGION. F1A08030 REM F1A08040 ENDFRG SYN * END OF F-REGION. F1A08050 REM * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *F1A08060 REM F1A08070 REM COMMON/3-CONSTANTS AND VARIABLES= F1A08080 REM F1A08090 COMCON BSS 0 F1A08100 REM F1A08110 FRSP PZE 1,,0 CONTROL WORD TO FORWARD SPACE 1 RECORD. F1A08120 BKSP MZE 1,,0 CONTROL WORD TO BACKSPACE 1 RECORD. F1A08130 REWD PZE ,,-1 CONTROL WORD TO REWIND TAPE. F1A08140 REM F1A08150 TRAILR IOCP ALL1,,1 F1A08160 IOCP ALL1,,1 F1A08170 IOCP ALL1,,1 F1A08180 IOCT ALL1,,1 $F1A08190 TRAIL BCI 1,MARKER F1A08200 REM F1A08210 WTXQ5 BCI 1,EXEQ LABEL FOR EXEQUTABLE STATEMENT RECORDS. F1A08220 EXEQF BCI 1,EOF 1 END-OF-FILE LABEL. F1A08230 REM F1A08240 REM *************************************************************F1A08250 REM F1A08260 TEN OCT 12 (1010) - CTEST-11 F1A08270 ENDMK OCT 77 111111 - CTEST-10 F1A08280 OPEN OCT 74 ( - CTEST-9 F1A08290 COMMA OCT 73 , - CTEST-8 F1A08300 CLOS OCT 34 ) - CTEST-7 F1A08310 EQUAL OCT 13 = - CTEST-6 F1A08320 11Z OCT 40 - - CTEST-5 F1A08330 SLASH OCT 61 / - CTEST-4 F1A08340 POINT OCT 33 . - CTEST-3 F1A08350 12Z OCT 20 + - CTEST-2 F1A08360 STAR OCT 54 * - CTEST-1 F1A08370 CTEST BSS 0 ADDRESS USED FOR INDEXING ABOVE. F1A08380 REM F1A08390 MASK2 OCT 77777 2**15-1 -ARITHMETIC. F1A08400 L(0) BCD 1000000 0 F1A08410 L(1) BCD 1000001 1 F1A08420 L(2) BCD 1000002 2 F1A08430 L(3) BCD 1000003 3 F1A08440 L(4) BCD 1000004 4 F1A08450 L(5) BCD 1000005 5 F1A08460 L(6) BCD 1000006 6 F1A08470 L(7) BCD 1000007 7 F1A08480 L(8) BCD 1000008 8 F1A08490 L(9) BCD 1000009 9 F1A08500 MINUS OCT 14 - F1A08510 L(A) BCD 100000A F1A08520 L(B) BCD 100000B F1A08530 L(C) BCD 100000C CONSTANT USED BY PASS1 AND DIAG. F1A08540 L(D) BCD 100000D F1A08550 L(F) BCD 100000F CONSTANT USED BY PASS2 AND DIAG. F1A08560 L(H) BCD 100000H H F1A08570 L(I) BCD 100000I F1A08580 L(L) BCD 100000L F1A08590 L(O) BCD 100000O O (ALPHABETIC) F1A08600 SPECOP OCT 53 00000$ F1A08610 BLANK OCT 60 000000000060 F1A08620 IFSYM OCT 6712 CONSTANT USED BY PASS2 AND DIAG. F1A08630 IFSYM2 OCT 671260606060 F1A08640 CALLSM OCT 711260606060 F1A08650 CALLER OCT 7112 CONSTANT USED BY PASS2 AND DIAG. F1A08660 2E18 OCT 1000000 DECREMENT=1 F1A08670 5BLANS BCD 10 006060606060 F1A08680 1BAR OCT 77777000000 (2**15-1)*2**18DECREMENT MASK. F1A08690 BLANKS BCD 1 606060606060 F1A08700 ALL1 OCT -377777777777 END OF STATEMENT WORD. F1A08710 MAXIMA OCT 077777777777 F1A08720 COMVAR BSS 0 F1A08730 ARGCNT PZE 4,,1 ARGUMENT COUNTER USED BY C30,C32. F1A08740 SET PON .. VARIABLE USED TO COMPILE 8).... F1A08750 REM END OF COMMON CONSTANTS AND VARIABLES. F1A08760 REM * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *F1A08770 REM F1A08780 REM COMMON/4-SUBROUTINES USED BY SECTION ONE= F1A08790 REM F1A08800 REM * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *F1A08810 REM F1A08820 REM C0160,2/ CALLS=C0190,DIAG. F1A08830 REM C0160 ASSEMBLES LEFT-ADJUSTED IN 1G, THE CHAR IN THE AC AND F1A08840 REM SUCCESSIVE NB CHARS STARTING IN THE MQ, UNTIL A ,()= OR ENDMKF1A08850 REM IS MET AND LEFT IN THE AC. ALSO MARKS END OF WORD WITH A F1A08860 REM BLANK, IF LESS THAN 6 CHARACTERS. F1A08870 C0160 SXD C016X,2 SAVE THE C(XR2), AND F1A08880 LXA L(0),2 SET XR2 TO CONTROL SHIFTING. F1A08890 STZ 1G CLEAR WORKING STORAGE. F1A08900 TSX TESTH0,4 TEST FIRST CHARACTER FOR NUMERIC, ERROR. F1A08910 C0161 AXT CTEST-ENDMK,4 TEST F1A08920 C0162 CAS CTEST,4 CHARACTER F1A08930 C016X TXI C0163,0,** IN THE AC F1A08940 FWA TXI C0165,0,** AGAINST F1A08950 C0163 TIX C0162,4,1 ALL PUNCTUATION. F1A08960 TXL C0164,2,30 IF SYMBOL EXCEEDS 6 CHARACTERS, F1A08970 ER0001 BSS 0 F1A08980 TSX DIAG,4 * GO TO THE DIAGNOSTIC. F1A08990 C0164 ALS 30,2 BUILD LEFT-ADJUSTED F1A09000 ORS 1G SYMBOL IN WORKING STORAGE. F1A09010 TSX C0190,4 * GET NEXT NB CHARACTER IN THE AC. F1A09020 TXI C0161,2,6 UPDATE SHIFT COUNT, AND CONTINUE. F1A09030 C0165 TXH C0167,2,0 IF PUNCTUATION IS 1ST CHARACTER, F1A09040 ER0002 BSS 0 F1A09050 C0166 TSX DIAG,4 * OR ILLEGAL, GO TO THE DIAGNOSTIC. F1A09060 C0167 TXL C0166,4,5 IF LEGAL PUNCTUATION, THEN F1A09070 STO 1H SAVE, AND F1A09080 PXD ,0 F1A09090 LDQ BLANKS COMPLETE VARIABLE NAMES LESS THAN SIX CHAR-F1A09100 LGL 36,2 ARCTERS WITH BCD BLANKS. F1A09110 ORS 1G THAN 6 CHARACTERS IN LENGTH. F1A09120 CLA 1H PICKUP PUNCTUATION MARK, F1A09130 LXD C016X,2 RESTORE THE C(XR2), AND F1A09140 TRA 1,2 * RETURN TO CALLER. F1A09150 REM END OF PROGRAM C0160. F1A09160 REM * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *F1A09170 REM F1A09180 REM C0180,2/ CALLS=C0190. F1A09190 REM C0180 CONVERTS SUCCESSIVE NUMERICS STARTING IN THE AC TO F1A09200 REM BINARY, PLACES RESULT IN 1G, AND LEAVES 1ST NON-NUMERIC IN ACF1A09210 C0180X TSX C0190,4 * OBTAIN 1ST NUMERIC IN THE AC. F1A09220 C0180 TSX TESTI0,4 TEST CHARACTER FOR NUMERIC. F1A09230 C0181 STO 1G PLACE 1ST NUMERIC IN 1G. F1A09240 TSX C0190,4 * EXAMINE NEXT NON-BLANK CHARACTER, F1A09250 CAS L(9) AND IF NON-NUMERIC, THEN F1A09260 TRA 1,2 * RETURN TO CALLER. F1A09270 NOP IF NUMERIC, THEN F1A09280 STO 2G SAVE DIGIT IN 2G. F1A09290 CLA 1G MULTIPLY F1A09300 ALS 2 C(1G) F1A09310 ADD 1G BY F1A09320 ALS 1 10, F1A09330 ADD 2G AND ADD CURRENT DIGIT. F1A09340 TXI C0181,0,0 REPEAT PROCESS FOR NEXT CHARACTER. F1A09350 REM END OF PROGRAM C0180. F1A09360 REM * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *F1A09370 REM F1A09380 REM C0190X,4/ F1A09390 REM C0190X INITIALIZES C0190 TO OBTAIN 1ST WORD OF FORMULA IN F. F1A09400 C0190X CLA DCF SET FORMULA WORD ADDRESS F1A09410 STD FWA TO THE FIRST WORD OF F-REGION. F1A09420 SXA XCHCTR,0 SET CHARACTER COUNT TO ZERO. F1A09430 TRA 1,4 * RETURN TO MAIN ROUTINE. F1A09440 REM END OF PROGRAM C0190X. F1A09450 REM * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *F1A09460 REM F1A09470 REM C0390,4/ F1A09480 REM C0390 INSERTS THE CHARACTER IN THE AC INTO THE 1ST POSITION F1A09490 REM TO THE LEFT OF THAT DEFINED BY FWA AND XR1. F1A09500 C0390 CLA ENDMK PREPARE TO CHANGE F1A09510 LXD FWA,2 THE PROPER CHARACTER F1A09520 LXA XCHCTR,1 IN THE F-REGION. F1A09530 TNX C0393,1,1 ADJUST MASK F1A09540 C0392 LGL 6 TO POSITION F1A09550 TIX C0392,1,1 CHARACTER. F1A09560 C0393 COM INVERT MASK, AND F1A09570 ANS -1,2 ERASE PROPER CHARACTER. F1A09580 XCL MOVE TO AC AND F1A09590 ORS -1,2 INSERT IN ERASED POSITION. F1A09600 REM C0390 CONTINUES BY USING C0190. F1A09610 REM F1A09620 REM C0190,4/ F1A09630 REM C0190 OBTAINS IN AC THE NEXT NON-BLANK CHARACTER OF FORMULA. F1A09640 C0190 SXA C0194,1 SAVE C(IR1). F1A09650 XCHCTR AXT **,1 LOAD CHARACTER COUNT. F1A09660 LDQ RESIDU PICK UP ANY REMAINING CHARACTERS. F1A09670 C0191 TIX C0193,1,1 IF NONE, F1A09680 LXD FWA,1 PICK UP NEXT FORMULA F1A09690 LDQ 0,1 WORD FROM F-REGION, F1A09700 TXI C0192,1,-1 AND INCREASE F1A09710 C0192 SXD FWA,1 FORMULA WORD ADDRESS BY 1. F1A09720 AXT 6,1 RESET IR1 FOR 6 NEW CHARACTERS. F1A09730 C0193 PXD ,0 EXAMINE F1A09740 LGL 6 NEXT CHARACTER F1A09750 CAS BLANK AND COMPARE WITH A BLANK. F1A09760 TRA C0195 IF BLANK F1A09770 TRA C0191 GO EXAMINE NEXT CHARACTER. F1A09780 C0195 SXA XCHCTR,1 IF NOT BLANK, SAVE CHARACTER COUNT. F1A09790 STQ RESIDU SAVE ANY REMAINING CHARACTERS, F1A09800 C0194 AXT **,1 RESTORE C(IR1). F1A09810 TRA 1,4 * RETURN TO MAIN ROUTINE. F1A09820 REM END OF PROGRAM C0190. F1A09830 REM * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *F1A09840 REM F1A09850 REM DIM.SR,4/ CALLS=DIAG. F1A09860 REM DIM.SR SEARCHS THE DIMENSION TABLES. ENTRANCE IS TO DIM1SR, F1A09870 REM DIM2SR, OR DIM3SR ACCORDING TO THE DIMENSION. F1A09880 REM DIM1SR= ENTRY POINT FOR 1 DIMENSION TABLE. F1A09890 DIM1SR SXA DIMXR4,4 F1A09900 LXD DIM1IX-2,4 GET NO OF ENTRIES IN DIM1. F1A09910 CLA ORGDM1 GET ORIGIN ADDRESS OF DIM1 TABLE. F1A09920 TXI DMSR00,0,0 F1A09930 REM DIM2SR= ENTRY POINT FOR 2 DIMENSION TABLE. F1A09940 DIM2SR SXA DIMXR4,4 F1A09950 LXD DIM2IX-2,4 GET NO OF ENTRIES IN DIM2. F1A09960 CLA ORGDM2 GET ORIGIN ADDRESS OF DIM2 TABLE. F1A09970 DMSR00 STA DMSR01 SET ADDRESS OF COMPARISON TEST. F1A09980 STA DMSR03 SET ADDRESS OF RETRIEVAL INSTRUCTION. F1A09990 SXA DIMXR2,2 F1A10000 LXA L(0),2 SET INDEX 2 FOR FORWARD SEARCH. F1A10010 CLA E+2 ARGUMENT BEING SEARCHED FOR TO AC. F1A10020 DMSR01 CAS **,2 COMPARISON OF ARGUMENT TO 1ST WORD OF ENTRYF1A10030 TXI DMSR02,2,-2 NO F1A10040 TXI DMSR03,2,-1 YES F1A10050 TXI DMSR02,2,-2 NO F1A10060 DMSR02 TIX DMSR01,4,1 NOT THIS ENTRY, WAS THIS LAST ENTRY... F1A10070 TRA DIMXR2 F1A10080 DMSR03 CLA **,2 FOUND, SECOND WORD OF DIM ENTRY TO AC F1A10090 TRA DMSR07 F1A10100 REM DIM3SR= ENTRY POINT FOR 3 DIMENSION TABLE. F1A10110 DIM3SR SXA DIMXR4,4 F1A10120 SXA DIMXR2,2 F1A10130 LXD DIM3IX-2,4 GET NO OF ENTRIES IN DIM3. F1A10140 LXA L(0),2 SET INDEX 2 FOR FORWARD SEARCH. F1A10150 CLA E+2 ARGUMENT BEING SEARCHED FOR TO AC. F1A10160 DMSR04 CAS **,2 COMPARE ARGUMENT TO 1ST WORD OF DIM3 ENTRY F1A10170 TXI DMSR05,2,-3 NO F1A10180 TRA DMSR06 YES F1A10190 TXI DMSR05,2,-3 NO F1A10200 DMSR05 TIX DMSR04,4,1 NOT THIS ENTRY, WAS THIS LAST ENTRY... F1A10210 DIMXR2 AXT ..,2 F1A10220 DIMXR4 AXT ..,4 F1A10230 TRA 1,4 EXIT (NOT FOUND). F1A10240 DMSR06 CLA **,2 THIRD WORD OF DIM3 ENTRY TO D3. F1A10250 STO ERASE2 F1A10260 DMSR08 CLA **,2 SECOND WORD OF DIM3 ENTRY TO AC. F1A10270 DMSR07 STO ERASE1 AC TO D12. F1A10280 LXA DIMXR2,2 F1A10290 LXA DIMXR4,4 F1A10300 TRA 2,4 EXIT (FOUND). F1A10310 REM END OF PROGRAM DIM.SR. F1A10320 REM * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *F1A10330 REM F1A10340 REM SR6DC1,1/ CALLS=DIAG. F1A10350 REM SR6DC1 CONVERTS UP TO 6 BCD DIGITS TO THEIR BINARY EQUIV. F1A10360 SR6DC1 SXD SR6XR2,2 SAVE THE C(XR2), AND F1A10370 LXA L(6),2 SET TO COUNT 6 CHARACTERS. F1A10380 STZ ERASE1 INITIALIZE OUTPUT CELL TO 0. F1A10390 SR6DC2 PXD ,0 OBTAIN NEXT CHARACTER F1A10400 LGL 6 IN AC AND F1A10410 CAS BLANK TEST FOR BLANK. F1A10420 SR6XR2 TXI SR6DC3,0,** IF NOT BLANK, F1A10430 TXI SR6DC4,0,-1 F1A10440 SR6DC3 CAS L(9) TEST FOR NUMERIC. F1A10450 ER0004 BSS 0 F1A10460 TSX DIAG,4 * IF NON-NUMERIC - GO TO DIAGNOSTIC. F1A10470 NOP NOP IF NUMERIC, F1A10480 STO ERASE2 SAVE DIGIT, AND F1A10490 CLA ERASE1 MULTIPLY PREVIOUS PARTIAL F1A10500 ALS 2 RESULT BY 10, F1A10510 ADD ERASE1 AND ADD IN F1A10520 ALS 1 CURRENT DIGIT, SAVING F1A10530 ADD ERASE2 NEW PARTIAL RESULT. F1A10540 STO ERASE1 THEN F1A10550 SR6DC4 TIX SR6DC2,2,1 WHEN 6 CHARS HAVE BEEN TREATED, F1A10560 CLA ERASE1 PICKUP OUTPUT, F1A10570 LXD SR6XR2,2 RESTORE THE C(XR2), AND F1A10580 TRA TRA 1,1 * EXIT TO MAIN ROUTINE. F1A10590 REM END OF PROGRAM SR6DC1. F1A10600 REM * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *F1A10610 REM F1A10620 REM TBSR00(,4)/ CALLS=DIAG. F1A10630 REM TBSR00 IS CALLED BY TSX ....IX,4 -WHERE .... IS THE NAME OF F1A10640 REM THE CORE TABLE REFERRED TO. TBSR00 MAKES ENTRIES IN THE CORE F1A10650 REM TABLES, AND ALSO SEARCHES THE CORE TABLES FOR INFORMATION. F1A10660 REM F1A10670 TBSR00 SXA TBSR18-1,1 SAVE INDEX REGISTERS. F1A10680 SXA TBSR18,2 F1A10690 SXA TBSR18+1,4 F1A10700 CLA 0,4 GET ....IX,4 F1A10710 ADD L(1) FORM ....IX+1 F1A10720 STA TBSR01 SET ADDRESS OF PARAMETER MOVING LOOP. F1A10730 SUB L(3) FORM ....IX-2 F1A10740 STA TBSR09 SET ADDRESS FOR UPDATING PARAMETER. F1A10750 AXT 4,1 PREPARE TO MOVE 4 WORD PARAMETERS. F1A10760 TBSR01 CAL **,1 MOVE PARAMETERS TO TEMPORARY WORKING AREA. F1A10770 SLW TEMP,1 X F1A10780 TIX TBSR01,1,1 X F1A10790 CAL TEMP-4 GET ARG1+L,,L F1A10800 STA TBSR07 F1A10810 STA TBSR12 F1A10820 STP TBSR02 SET SWITCH TO SKIP SEARCH ON DIM TABLES. F1A10830 PDC ,1 GET 2S COMPLIMENT. F1A10840 SXD TBSR14,1 F1A10850 CLA TEMP-3 GET TA,,N F1A10860 STA TBSR08 F1A10870 STD TBSR95 SET TEST FOR TABLE OVERFLOW. F1A10880 CLA TEMP-2 GET FA,,J F1A10890 STA TBSR13 F1A10900 LXD TEMP-3,2 GET N. F1A10910 TXL TBSR06,2,0 F1A10920 TBSR02 PZE TBSR10,,0 SKIP SEARCH ON DIM TABLES. (TXH) F1A10930 TBSR05 LXD TEMP-2,1 GET J. F1A10940 TBSR95 TIX TBSR06,1,** TEST FOR N=J, YES WHEN TABLE IS FULL. F1A10950 LXD TEMP-1,4 LOAD IR4 WITH COMPLEMENT OF TABLE NUMBER. F1A10960 TRA DIAG *GO TO DIAGNOSTIC. F1A10970 TBSR06 LXD TEMP-4,3 GET L. F1A10980 TBSR07 CLA **,1 GET ARGUMENT F1A10990 TBSR08 STO **,1 AND ENTER IN TABLE. F1A11000 TIX TBSR07,1,1 ENTER L WORDS. F1A11010 PXA ,2 GET L. F1A11020 ADD TEMP-3 FORM TA+L,,N F1A11030 ADD 2E18 FORM TA+L,,N+1 F1A11040 TBSR09 STO ** UPDATE PERMANENT PARAMETER. F1A11050 LXD TEMP-3,2 GET TAG (N) WHICH IS NUMBER OF ENTRIES F1A11060 TRA TBSR17 PRECEDING THIS ENTRY. F1A11070 TBSR10 LXD TEMP-3,4 GET N. F1A11080 AXT 0,2 SET INDEX FOR FORWARD SCAN. F1A11090 TBSR11 LXD TEMP-4,1 GET L. F1A11100 SXA TBSR19,2 SAVE CURRENT NBAR. F1A11110 TBSR12 CLA **,1 COMPARE EACH WORD ON ARGUMENT TO CORRES- F1A11120 TBSR13 CAS **,2 PONDING WORD OF TABLE ENTRY. F1A11130 TRA TBSR93 UNEQUAL. F1A11140 TXI TBSR15,2,-1 EQUAL. F1A11150 TBSR93 TNX TBSR05,4,1 UNEQUAL, WAS THIS LAST ENTRY IN TABLE... F1A11160 TBSR19 AXT ..,2 GET LAST NBAR. F1A11170 TBSR14 TXI TBSR11,2,** INCREMENT LAST NBAR BY -(L) F1A11180 TBSR15 TIX TBSR12,1,1 THESE WORDS ARE EQUAL, TRY NEXT PAIR. F1A11190 LXD TEMP-3,2 ARGUMENT EQUALS TABLE ENTRY IN ALL WORDS, F1A11200 SXD TBSR16,4 COMPUTE TAG WHICH IS N-NUMBER OF ENTRIES F1A11210 TBSR16 TIX TBSR17,2,** WHICH DID NOT AGREE-1. F1A11220 LXA L(0),2 SPECIAL CASE OF FIRST ENTRY IN TABLE. F1A11230 TBSR17 PXA ,2 TAG TO AC. F1A11240 AXT **,1 RESTORE INDEX REGISTERS. F1A11250 TBSR18 AXT **,2 F1A11260 AXT **,4 F1A11270 TRA 1,4 RETURN TO CALLER +1. F1A11280 REM END OF PROGRAM TBSR00. F1A11290 REM * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *F1A11300 REM F1A11310 REM TESTFX,1/ F1A11320 REM TESTFX TESTS FOR FIXED OR FLOATING POINT VARIABLES. F1A11330 TESTFX CAL FIRSTC COMPARE FIRST CHARACTER F1A11340 CAS L(H) WITH H. F1A11350 CAS L(O) IF GREATER THAN H, COMPARE WITH O. F1A11360 TRA 1,1 * IF NOT GREATER THAN H, LESS THAN O,F1A11370 TRA 1,1 * THEN TAKE FLOATING POINT EXIT. F1A11380 TRA 2,1 * OTHERWISE, TAKE FIXED POINT EXIT. F1A11390 REM END OF PROGRAM TESTFX. F1A11400 REM * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *F1A11410 REM F1A11420 REM TEST..,4/ CALLS=DIAG. F1A11430 REM TEST.. TESTS THE CHARACTER IN THE AC(30-35). F1A11440 TEST.. BSS 0 TEST CHARACTER IN THE AC. F1A11450 REM TEST CHARACTER IN THE AC FOR COMMA OR ENDMARK. F1A11460 TESTA0 CAS COMMA F1A11470 TRA TESTA1 F1A11480 TRA 1,4 * RETURN TO CALLER. F1A11490 TESTA1 SUB ENDMK F1A11500 TZE 1,4 * RETURN TO CALLER. F1A11510 ER0015 TSX DIAG,4 * ERROR -- GO TO DIAGNOSTIC. F1A11520 REM TEST CHARACTER IN THE AC FOR COMMA OR CLOSED PARENTHESIS. F1A11530 TESTB0 CAS COMMA F1A11540 TRA TESTB1 F1A11550 TRA 1,4 * RETURN TO CALLER. F1A11560 TESTB1 SUB CLOS F1A11570 TZE 1,4 * RETURN TO CALLER. F1A11580 ER0016 TSX DIAG,4 * ERROR -- GO TO DIAGNOSTIC. F1A11590 REM TEST CHARACTER IN THE AC FOR OPEN PARENTHESIS OR ENDMARK. F1A11600 TESTC0 CAS OPEN F1A11610 TRA TESTC1 F1A11620 TRA 1,4 * RETURN TO CALLER. F1A11630 TESTC1 SUB ENDMK F1A11640 TZE 1,4 * RETURN TO CALLER. F1A11650 ER0017 TSX DIAG,4 * ERROR -- GO TO DIAGNOSTIC. F1A11660 REM TEST CHARACTER IN THE AC FOR ENDMARK. F1A11670 TESTD0 CAS ENDMK F1A11680 TSX MRTN77,4 *CHARACTER GREATER THAN 77 OCTAL, IMPOSS. F1A11690 TRA 1,4 * RETURN TO CALLER. F1A11700 ER0019 TSX DIAG,4 *ERROR, END OF STATEMENT NOT REACHED. F1A11710 REM TEST CHARACTER IN THE AC FOR OPEN PARENTHESIS. F1A11720 TESTE0 CAS OPEN F1A11730 TRA TESTE1 F1A11740 TRA 1,4 * RETURN TO CALLER. F1A11750 ER0020 BSS 0 F1A11760 TESTE1 TSX DIAG,4 * ERROR -- GO TO DIAGNOSTIC. F1A11770 REM TEST CHARACTER IN THE AC FOR CLOSED PARENTHESIS. F1A11780 TESTF0 CAS CLOS F1A11790 TRA TESTF1 F1A11800 TRA 1,4 * RETURN TO CALLER. F1A11810 ER0021 BSS 0 F1A11820 TESTF1 TSX DIAG,4 * ERROR -- GO TO DIAGNOSTIC. F1A11830 REM TEST CHARACTER IN THE AC FOR COMMA. F1A11840 TESTG0 CAS COMMA F1A11850 TRA TESTG1 F1A11860 TRA 1,4 * RETURN TO CALLER. F1A11870 ER0022 BSS 0 F1A11880 TESTG1 TSX DIAG,4 * ERROR -- GO TO DIAGNOSTIC. F1A11890 REM TEST CHARACTER IN THE AC FOR NON-NUMERIC. F1A11900 TESTH0 CAS L(9) F1A11910 TRA 1,4 * RETURN TO CALLER. F1A11920 NOP F1A11930 ER0023 TSX DIAG,4 * ERROR -- GO TO DIAGNOSTIC. F1A11940 REM TEST CHARACTER IN THE AC FOR NUMERIC. F1A11950 TESTI0 CAS L(9) F1A11960 ER0024 TSX DIAG,4 * ERROR -- GO TO DIAGNOSTIC. F1A11970 TRA 1,4 * RETURN TO CALLER. F1A11980 TRA 1,4 * RETURN TO CALLER. F1A11990 REM END OF PROGRAM TEST... F1A12000 REM F1A12010 REM * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *F1A12020 REM F1A12030 REM ERASABLE STORAGE COMMON TO BOTH PASS 1 AND PASS 2. F1A12040 REM F1A12050 COMORG SYN * F1A12060 1C BSS 5 COMMON WORKING STORAGE. F1A12070 1G BSS 1 COMMON WORKING STORAGE. F1A12080 2G BSS 1 COMMON WORKING STORAGE FOR STATE A.F1A12090 3G BSS 1 F1A12100 1H BSS 1 F1A12110 CALLNM BSS 1 F1A12120 E BSS 14 WORKING STORAGE USED BY SS000. F1A12130 ERASE BSS 1 F1A12140 ERASE1 BSS 1 F1A12150 ERASE2 BSS 1 F1A12160 ERASE3 BSS 1 F1A12170 ERASE4 BSS 1 F1A12180 FIRSTC BSS 1 USED BY SS000,TESTFX,C3000. F1A12190 FSNAME BSS 1 NAME OF FUNCTION. F1A12200 G BSS 2 F1A12210 LEFT BSS 3 STORAGE USED BY ARITHMETIC, DIAG. F1A12220 RESIDU BSS 1 REMAINDER OF F-REGION WORD.(C0190) F1A12230 TABNUM BSS 1 F1A12240 TEMP BES 4 F1A12250 BSS 1 $F1A12251 REM F1A12260 REM * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *F1A12270 REM F1A12280 REM COMMON/6-PATCH AREA= F1A12290 CLAIFN PZE 0 STORAGE FOR CLA 2 IFN $F1A12291 COMP1 LXD CITCNT,2 LOAD CURRENT BUFFER INCREMENT $F1A12292 NZT CLAIFN WAS THIS FUNCTION OR SUBROUTINE $F1A12293 TRA CIT00+5 NO $F1A12294 CLA CLAIFN YES $F1A12295 STO CITBUF STORE IFN INSTEAD OF $F1A12296 STZ CLAIFN $$ INTO FIRST INSTRUCTION (CLA 2) $F1A12297 TRA CIT00+5 $F1A12298 REM PATCH CHECKS ON BOOLEAN ERRORS $F1A12300 BERPCH CAL MODECL CHECK INDICATOR, BOOLEAN ERROR PATCH $F1A12301 ERA L(B) IS STATEMENT BOOLEAN $F1A12302 TNZ 3,4 NO, RETURN TO CALLER $F1A12303 TRA CIT00+2 GO BACK TO CHECK FOR BOOL. ERROR $F1A12304 BSS 187 PATCH AREA $F1A12305 ENDCOM SYN * END OF COMMON . F1A12310 REM END OF COMMON PATCH AREA. F1A12320 REM F1A12330 REM * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *F1A12340 REM F1A12350 REM END OF THE COMMON PART OF SECTION ONE. F1A12360 TTL * SECTION ONE PASS ONE * RECORD 9F13 * F1A12370 REM * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *F1A12380 REM F1A12390 REM SECTION 1 / PASS1 = F1A12400 REM F1A12410 REM F1A12420 REM PASS 1/1-ASSEMBLE AND CLASSIFY ALL STATEMENTS= F1A12430 REM F1A12440 ORGP1 ORG ENDCOM F1A12450 REM F1A12460 INITIL LFTM MAKE SURE TRAP MODES ARE INACTIVE. F1A12470 LTM F1A12480 CAL L(4) SET MONITOR ERROR FLAG F1A12490 SLW (MSLN) FOR ERROR RECORDS. F1A12491 AXT TEMP-1C,4 ZERO OUT THE ERASEABLE $F1A12492 STZ TEMP,4 STORAGE FOR IBSYS. $F1A12493 TIX *-1,4,1 $F1A12494 AXT TOPTAB-ENDF10,4 F1A12500 STZ TOPTAB,4 CLEAR WORKING AREA. F1A12510 TIX *-1,4,1 F1A12520 AXT 4,1 F1A12530 INITZ SXD *+3,1 REWIND WORKING TAPES. F1A12540 TSX (TAPE),4 F1A12550 PZE REWD,,(SKDP) F1A12560 PZE ,,** F1A12570 TXL *+2,1,2 DO NOT REWIND SYSTEM TAPE. F1A12580 TIX INITZ,1,1 F1A12590 CAL L(FPT) INITIALIZE CLOSUB TABLE IN CASE F1A12600 SLW CLSBBF THIS A MAIN PROGRAM. F1A12610 CLA* (FGBX) GET MONITOR FLAGS. F1A12611 TPL *+8 *IS THIS MONITOR MODE, NO. F1A1261A AXT (RBNP),4 YES. SET READ OPERATIONS TO BINARY. F1A1261B SXD *+7,4 F1A1261C AXT (RBEP),4 F1A1261D SXD LDFTT,4 F1A1261E AXT FINPUT,4 SET CALLING SEQUENCE TO READ LABELS. F1A1261F SXA LDFTT+1,4 F1A1261G SXA *+3,4 F1A1261H TSX (TAPE),4 LOAD FT-REGION (BUFFER 1). F1A12620 PZE FTREG-1,,(RDNP) F1A12630 PZE ,,INPUTP F1A12640 CAL DIM3IX-1 INITIALIZE F1A12650 STA DMSR04 DIM3 F1A12660 ADD L(1) ADDRESS F1A12670 STA DMSR08 IN DIM3 F1A12680 ADD L(1) SEARCH F1A12690 STA DMSR06 ROUTINE. F1A12700 TSX LDFT0,4 LOAD FT-REGION (BUFFER 2). F1A12710 TRA LDFR0 GO TO PASS 1 SUBROUTINE TO LOAD F-REGION. F1A12720 REM F1A12730 L(FPT) BCI 1,(FPT) ASSUMED FIRST ENTRY IN CLOSUB. F1A12740 FINPUT BCI 1,FINPUT LABEL FOR READING INPUT TAPE. F1A12741 REM F1A12750 REM *************************************************************F1A12760 REM F1A12761 REM TERMINAL ROUTINE FOR PASS 1. F1A12770 REM F1A12780 CLOSP1 ZET *+1 HAS THERE BEEN A NO XEQ STAT. ERROR. F1A12790 TRA *+2 NOT YET. F1A12800 TRA P1DXIT YES, QUIT PROCESSING. F1A12810 LXA XEQCTR,4 ARE THERE ANY EXECUTABLE STATEMENTS. F1A12820 TXH *+3,4,0 *YES. F1A12830 STZ CLOSP1+1 NO, SET QUIT FLAG. F1A12840 NOXEQR TSX DIAG,4 GO TO DIAGNOSTIC. F1A12850 TSX (TAPE),4 WRITE A DUMMY RECORD AFTER THE F1A12860 PZE TRAILR,,(WBNP) EXECUTABLE STATEMENTS. F1A12870 PZE WTXQ5,,EXEQTP F1A12880 TSX (TAPE),4 WRITE END-OF-FILE AFTER EXECUTABLE F1A12890 PZE ,,(WEFP) STATEMENTS. F1A12900 PZE EXEQF,,EXEQTP F1A12910 TSX (TAPE),4 REWIND TAPE. F1A12920 PZE REWD,,(SKBP) F1A12930 PZE ,,EXEQTP F1A12940 ZET DGFLAG HAS THERE BEEN AN ERROR. F1A12941 TRA P1EXIT *YES, SKIP DUMP. F1A12942 LDC INTETI-3,1 COMPUTE THE ROOM IN THE TWO BUFFERS. F1A12950 TXI *+1,1,FRMTSZ-1 FORMAT, AND F1A12960 TXI *+1,1,EQITSZ*2 EQUIT. F1A12970 SXD TEST,1 F1A12980 LDC BFCNT,2 GET THE MUMBER TO MOVE F1A12990 TXI *+1,2,BFSZ F1A13000 TEST TXH DUMP,2,** TEST FOR ROOM ENOUGH F1A13010 SXD INTETK-3,2 UPDATE BUFFER P COUNT F1A13020 AXT FRMTBF+FRMTSZ-1,4 F1A13030 SXD *+1,2 SET BUFFER ORIGIN FOR 1 PRIME. F1A13040 TIX *+1,4,** F1A13050 SXA INTETK-3,4 F1A13060 LDC BFCNT,4 INITIALIZE MOVE LOOP F1A13070 TXI *+1,4,TABORG F1A13080 SXA *+1,4 F1A13090 MOVF CLA **,2 F1A13100 STO FRMTBF+FRMTSZ-1,2 F1A13110 TIX *-2,2,1 F1A13120 TSX (TAPE),4 F1A13130 PZE FRMTTP,,(CHKU) F1A13140 LXD FLBL,4 PUT DUMP COUNT WHERE 1 PRIME F1A13150 SXA INTETK+1,4 CAN FIND IT. F1A13160 TRA P1EXIT F1A13170 DUMP SXD *+1,1 GET THE NUMBER OF WORDS TO DUMP. F1A13180 TIX *+1,2,** F1A13190 PXD 0,2 F1A13200 ADD INTETK+1 F1A13210 STD INTETK+1 F1A13220 SXD FORIO+1,2 F1A13230 LXD FLBL,4 F1A13240 TXI *+1,4,1 UPDATE THE DUMP COUNT F1A13250 SXD FLBL,4 PUT IT IN THE LABEL F1A13260 TSX (TAPE),4 OUT THEY GO F1A13270 PZE FORIO,,(WBNP) CHECK LATER F1A13280 PZE INTETK+2,,FRMTTP F1A13290 STL TETFLG SET FLAG TO INDICATE DATA ON TAPE. F1A13291 LXD TEST,2 SET UP NUMBER TO BE MOVED F1A13300 TRA TEST+1 AND GO DO IT. F1A13310 P1EXIT CLS PASS1 FLIP SWITCH FOR PASS 2. F1A13320 STO PASS1 F1A13330 REM F1A13340 CALLP2 STZ DGX1 SET FLAG FOR DIAGNOSTIC CALLER. F1A13350 LXD INTETM-3,4 LOAD COUNT OF WORDS IN COMMON BUFFER. F1A13360 PXA ,4 PLACE IN AC. F1A13370 STO ERASE SAVE IN ERASABLE. F1A13380 CLA INTETM-1 GET COMMON MAXIMUM BUFFER SIZE. F1A13390 SUB ERASE SUBTRACT THE USED PORTION. F1A13400 ADD INTETN-1 ADD MAXIMUM SIZE FOR HOLARG TABLE BUFFER. F1A13410 STA INTETN-1 SET NEW BUFFER SIZE FOR HOLARG. F1A13420 CLA INTETM-3 GET COMMON BUFFER ORIGIN. F1A13430 ADD ERASE ADD COUNT OF WORDS IN COMMON BUFFER. F1A13440 STA INTETN-3 SET NEW HOLARG BUFFER ORIGIN. F1A13450 NZT DGFLAG HAS THERE BEEN A DIAGNOSTIC. F1A13460 TRA RP2I NO, GET PASS TWO. $F1A13470 TSX (TAPE),4 YES, REPOSITION SYSTEM TAPE TO BEFORE F1A13480 PZE BKSP,,(SKBP) PASS 2. F1A13490 PZE ,,SYSTAP F1A13500 TRA RP2I GET PASS TWO $F1A13510 REM F1A13520 REM *************************************************************F1A13521 REM F1A13530 REM SUBROUTINE USED TO WRITE EXECUTABLE STATEMENTS F1A13540 REM ON AN INTERMEDIATE TAPE FOR PROCESSING IN PASS2. F1A13550 REM F1A13560 REM WTXQ0 / CALLS CF000 TO PROCESS NON-EXECUTABLE STATEMENTS,F1A13570 REM OR I/O PACKAGE TO WRITE EXECUTABLE STATEMENTS. F1A13580 REM F1A13590 WTXQ0 CLA T,1 ENTRY POINT FOR STATEMENTS IN DICTIONARY. F1A13600 REM WTXQ1 IS THE ENTRY POINT FOR ARITH. STATEMENTS.F1A13610 WTXQ1 STO TLABEL SET TRANSFER LABEL. F1A13620 TMI CF000 *TRANSFER IF STATEMENT IS NON-EXECUTABLE. F1A13630 LDC DCF,1 GET TRUE ADDRESS OF CURRENT F-REGION. F1A13640 SXA WTXQ2,1 SET ADDRESS OF LOOP TO MOVE TLABEL, ETC. F1A13650 TXI *+1,1,-4 SET INDEX TO TRUE ADDRESS OF TLABEL. F1A13660 SXA WTXQ4,1 SET I/O COMMAND ADDRESS. F1A13670 AXT 4,2 MOVE TLABEL, MODECL, EFN, AND FIRST5 F1A13680 CAL FIRST5+1,2 INTO CURRENT OUTPUT BUFFER AHEAD OF F1A13690 WTXQ2 SLW **,2 CURRENT F-REGION. F1A13700 TIX *-2,2,1 F1A13710 WTXQ3 AXC **,2 GET TRUE NUMBER OF LAST WORD IN F-REGION. F1A13720 SXD *+1,1 SET TIX WITH ORIGIN OF CURRENT F-REGION F1A13730 TIX *+1,2,** (INCLUDING 4 DATA CELLS). COMPUTE LENGTH F1A13740 SXD WTXQ4,2 OF ENTIRE F-REGION AND SET I/O COMMAND. F1A13750 LXA XEQCTR,4 LOAD COUNT OF EXECUTABLE STATEMENTS F1A13760 TXI *+1,4,1 WRITTEN ON TAPE AND INCREMENT. F1A13770 SXA XEQCTR,4 F1A13780 TSX (TAPE),4 WRITE STATEMENT ON TAPE FOR PASS2. F1A13790 PZE WTXQ4,,(WBNP) F1A13800 PZE WTXQ5,,EXEQTP F1A13810 TRA PASS1 RETURN TO PASS1 SWITCH. F1A13820 REM F1A13830 WTXQ4 IORT **,,** I/O COMMAND TO WRITE EXEQUTABLE STATS. F1A13840 REM F1A13850 REM *************************************************************F1A13851 REM F1A13860 REM SUBROUTINE TO READ A RECORD FROM THE F1A13870 REM BCD INPUT TAPE INTO THE TEMPORARY F REGION. F1A13880 REM F1A13890 LDFT0 SXA LDFT4,4 SAVE LINKAGE. F1A13900 LDFT1 AXT -1,2 LOAD BUFFER SWITCH (+1 OR -1) F1A13910 TSX (TAPE),4 READ A RECORD FROM BCD INPUT TAPE. F1A13920 LDFTT PZE FTREG,2,(RDEP) F1A13930 PZE ,,INPUTP F1A13940 LAC LDFT1,2 FLIP BUFFER SWITCH. F1A13950 SXA LDFT1,2 F1A13960 CAL (SCHU)+INPUTP GET RESULT OF SCHX. F1A13970 TNZ *+3 WAS AN END-OF-FILE READ. F1A13980 SXD LDFT2,0 YES, SET EOF FLAG. F1A13990 LDFT2 TXI LDFR5,,-1 TAKE EOF EXIT. F1A14000 STA FTREG SET LAST+1 FOR TIX LOOP. F1A14010 SUB FTREG,2 COMPUTE WORD COUNT OF RECORD. F1A14020 PAX ,2 WERE LESS THAN 3 WORDS READ. F1A14030 TXL LDFT1,2,3 *YES, IGNORE IT, MOST LIKELY NOISE. F1A14040 SXA LDFT5,2 NO, SAVE WORD COUNT. F1A14050 PXD ,0 CLEAR AC. F1A14060 LDQ* FTREG GET FIRST CHARACTER OF F1A14070 LGL 6 CARD IN AC. F1A14080 LAS L(C) IS THIS A COMMENT CARD. F1A14090 TRA *+2 NOT A (C) COMMENTS CARD. F1A14100 TRA LDFT1 YES, IGNORE IT. F1A14110 ERA STAR DOES COLUMN 1 CONTAIN (*). F1A14120 TZE LDFT1 *YES, IGNORE IT, COMMENT OR MONITOR CARD. F1A14130 LDFT3 CAL* FTREG IS THIS CARD COMPLETELY BLANK. F1A14140 ERA BLANKS F1A14150 TNZ LDFT4 *NO, HAS AT LEAST A CONTINUATION PUNCH. F1A14160 TIX LDFT3,2,1 F1A14170 TRA LDFT1 *YES, IGNORE IT. F1A14180 LDFT4 AXT **,4 RESTORE LINKAGE. F1A14190 LDFT5 AXT **,2 RELOAD WORD COUNT. F1A14200 TRA 1,4 RETURN TO CALLER. F1A14210 REM F1A14220 REM *************************************************************F1A14221 REM F1A14230 REM LDFR0 / CALLS LDFT0, SR6DC1 F1A14240 REM F1A14250 REM LDFR0 ASSEMBLES A STATEMENT IN THE F-REGION. F1A14260 REM F1A14270 FROVR CAL ALL1 SET END OF STATEMENT MARKER. F1A14280 SLW -1,1 DIAGNOSTIC WILL NEED IT. F1A14290 ER1007 TSX DIAG,4 STATEMENT TOO LONG FOR F-REGION. F1A14300 REM F1A14310 LDFR0 LXA LDFT5,2 F1A14320 CAL* FTREG GET FIRST SIX CHARACTERS OF STATEMENT. F1A14330 ARS 6 ELIMINATE CONTINUATION MARK (IF ANY). F1A14340 SLW FIRST5 SAVE FIRST FIVE. F1A14350 LDQ BLANKS SHIFT EFN INTO MQ WITH TRAILING BLANKS. F1A14360 LGR 24 F1A14370 PAX ,1 LOAD COLUMN INTO INDEX. F1A14380 STZ MODECL CLEAR MODE INDICATOR. F1A14390 TXL LDFR1,1,9 IS COLUMN 1 NON-NUMERIC. F1A14400 ERA BLANK YES, IS IT A BLANK. F1A14410 TZE LDFR2 *YES. F1A14420 SXA MODECL,1 NO, SAVE IT AS A MODE INDICATOR. F1A14430 TRA LDFR2 ENTIRE EFN (IF ANY) IS IN MQ. F1A14440 LDFR1 LGR 6 SHIFT FIRST DIGIT OF EFN INTO MQ. F1A14450 LDFR2 STQ EFN SAVE EXTERNAL FORMULA NUMBER (EFN). F1A14460 LXD DCF,1 LOAD 2S COMPLEMENT OF LAST F-REGION USED. F1A14470 TXI *+1,2,-1 REDUCE FT INDEX TO SECOND WORD. F1A14480 CLA TLABEL WAS LAST STATEMENT EXECUTABLE. F1A14490 TMI LDFR3 *NO, DO NOT FLIP BUFFERS. F1A14500 TXH *+2,1,-FRGBF2-4 SWITCH BUFFERS. F1A14510 TXI *+2,1,FREGSZ+4 FLIP TO BUFFER 1. F1A14520 TXI *+1,1,-FREGSZ-4 FLIP TO BUFFER 2. F1A14530 SXD DCF,1 SET BUFFER ADDRESS. F1A14540 TXI *+1,1,-FREGSZ COMPUTE LAST ADDRESS OF BUFFER FOR F1A14550 SXD LDFR4,1 OVERFLOW TEST. F1A14560 LXD DCF,1 LOAD F-REGION ORIGIN (2S COMPLEMENT FORM).F1A14570 LDFR3 LDQ* FTREG MOVE FT-REGION TO F-REGION. F1A14580 STQ 0,1 F1A14590 TXI *+1,1,-1 UPDATE F-REGION ADDRESS. F1A14600 LDFR4 TXL FROVR,1,** *IS THE STATEMENT TOO LONG, YES. F1A14610 TIX LDFR3,2,1 NO, IS FT-REGION EXHAUSTED. F1A14620 TSX LDFT0,4 YES, RELOAD IT. F1A14630 CAL* FTREG IS THIS CARD A CONTINUATION F1A14640 ANA ENDMK OF THE STATEMENT. F1A14650 TZE LDFR5 *NO. F1A14660 ERA BLANK POSSIBLY, IS COLUMN 6 BLANK. F1A14670 TZE LDFR5 *YES. F1A14680 TXI LDFR3,2,-1 NO, THIS IS A CONTINUATION CARD. F1A14690 LDFR5 CAL BLANKS SCAN F-REGION BACKWARDS AND F1A14700 LDFR6 LAS -1,1 FIND THE LAST NON-BLANK WORD. F1A14710 TXI *+3,1,-1 NON-BLANK, SET INDEX TO ENDMARK PLUS ONE. F1A14720 TXI LDFR6,1,1 BLANK, REDUCE F-REGION INDEX AND CONTINUE.F1A14730 TXI *+1,1,-1 NON-BLANK, SET INDEX TO ENDMARK PLUS ONE. F1A14740 CAL ALL1 INSERT END-MARK (36 BINARY 1S). F1A14750 SLW -1,1 F1A14760 SXA WTXQ3,1 SAVE ADDRESS OF LAST NON-BLANK WORD. F1A14770 LDQ EFN GET EXTERNAL FORMULA NUMBER (IF ANY). F1A14780 TSX SR6DC1,1 CONVERT TO BINARY. F1A14790 SLW EFN SET TO BINARY EQUIVALENT. F1A14800 REM * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *F1A14810 REM F1A14820 REM CD000/ CALLS=C0190X,C0190,DIAG. F1A14830 REM CD000 SCANS FOR HOLLERITH AND ILLEGAL CHARACTERS. F1A14840 CLA MODECL TEST FOR ASTERICK IN CC 1 WHICH INDICATES F1A14850 SUB L(F) TEST FOR F IN CC 1 WHICH MEANS A FORTRAN 3 F1A14860 TNZ SCAN0 *FUNCTION LIST. IS NOT A LIST. F1A14870 REM NAMES FROM FUNCTION LIST ARE ENTERED IN CLOSUB TABLE. F1A14880 TSX C0190X,4 SET SCAN TO FIRST POSITION. F1A14890 FCARD0 TSX C0190,4 PLACE FIRST NON-BLANK CHARACTER OF NAME IN F1A14900 TSX C0160,2 AC AND THEN COLLECT NAME IN 1G CELL. F1A14910 TSX TESTA0,4 TEST NEXT CHARACTER FOR COMMA OR ENDMK. F1A14920 CLA 1G MOVE SUBROUTINE NAME TO INPUT CELL FOR TET F1A14930 STO G SUBROUTINE. F1A14940 TSX TET00,1 ENTER NAME IN CLOSUB TABLE. F1A14950 9 WHOSE IDENTIFICATION NUMBER IS 9. F1A14960 CLA 1H INSPECT CHARACTER FOLLOWING NAME FOR ENDMK.F1A14970 SUB ENDMK F1A14980 TNZ FCARD0 NOT ENDMK, CONITNUE COLLECTING NAMES. F1A14990 SSM SET FLAG FOR LDFR ROUTINE SO THAT F1A15000 STO TLABEL IT WILL NOT FLIP BUFFERS. F1A15010 TRA PASS1 GO TO NEXT SOURCE STATEMENT. F1A15020 REM F1A15030 REM *************************************************************F1A15040 REM F1A15041 REM SCAN0 / CALLS WTXQ0, CC000, DIAG AND (DIAG). F1A15042 REM F1A15043 REM SCANS AN ASSEMBLED STATEMENT IN ORDER TO DETERMINE IF F1A15044 REM THERE ARE ANY ILLEGAL CHARACTERS CONTIANED IN THE F1A15045 REM STATEMENT AND WHETHER THE STATEMENT IS ARITHMETIC F1A15050 REM OR NON-ARITHMETIC. F1A15051 REM F1A15052 REM AN ARITHMETIC STATEMENT IS OF THE FORM - F1A15053 REM F1A15054 REM ALPHA = BETA F1A15055 REM F1A15060 REM WHERE ALPHA IS 1) A NON-SUBSCRIPTED VARIABLE F1A15061 REM 2) A SUBSCRIPTED VARIABLE F1A15062 REM F1A15063 REM AND BETA IS 1) A CONSTANT F1A15064 REM 2) A NON-SUBSCRIPTED VARIABLE F1A15065 REM 3) A SUBSCRIPTED VARIABLE F1A15070 REM 4) AN EXPRESION OF THE FORM F1A15071 REM F1A15072 REM A+B-C*D/E**F+FUNCTION (G,H,I) F1A15073 REM F1A15074 REM WHERE A,B,C,D,E,F,G,H AND F1A15075 REM I ARE 1,2,3, AND 4 ABOVE. F1A15080 REM F1A15081 REM F1A15082 REM A HOLLERITH LITERAL MAY APPEAR IN AN ARITHMETIC F1A15083 REM STATEMENT. A HOLLERITH FIELD APPEARS IN NON-ARITHMETIC F1A15084 REM STATEMENTS. F1A15085 REM F1A15090 REM A HOLLERITH LITERAL IS DEFINED AS THE SEQUENCE - F1A15091 REM F1A15092 REM +NH.... (+NH....) F1A15093 REM -NH.... (-NH....) F1A15094 REM *NH.... (*NH....) F1A15095 REM F1A15100 REM A HOLLERITH FIELD IS DEFINED AS THE SEQUENCE - F1A15101 REM F1A15102 REM (NH.... F1A15103 REM /NH.... F1A15104 REM ,NH.... F1A15105 REM F1A15110 REM F1A15111 REM A NON-ARITHMETIC STATEMENT IS OF THE FORM - F1A15112 REM F1A15113 REM 1) X 5) X (Y=Y,Y) F1A15114 REM 2) X (Y) 6) X Y F1A15115 REM 3) X (Y,Y) 7) X Y,Y F1A15120 REM 4) X (Y),(Y) 8) X Y=Y,Y F1A15121 REM F1A15122 REM WHERE X IS A DECLARATION, DESCRIPTION, DIRECTIVE, F1A15123 REM OR QUESTION. F1A15124 REM F1A15125 REM AND Y IS THE SAME AS THE ABOVE BETA IN AN F1A15130 REM ARITHMETIC STATEMENT OR A WORD. F1A15131 REM F1A15132 REM F1A15133 SCAN0 TRA SCAN00 GO TO PATCH TO TEST FOR IF(. $F1A15140 STZ LITFG RESET HOLLERITH LITER FLAG. F1A15141 STZ HOLFG RESET HOLLERITH FIELD FLAG. F1A15142 STZ NOTAF RESET NON-ARITHMETIC FLAG. F1A15143 STZ EQSFG RESET EQUALS SIGN FLAG. F1A15144 LXD DCF,2 LOAD ORIGIN OF F-REGION. F1A15150 ZAC RESET PAREN COUNTER. F1A15151 SCAN1 LDQ 0,2 GET A WORD OF THE STATEMENT. F1A15160 AXT 6,4 INITIALIZE CHARACTER COUNT. F1A15161 SCAN2 CAQ SCANT,1,1 CHECK A CHARACTER. F1A15162 TRA CHSV1 STORE CURRENT CHARACTER $F1A15163 REM F1A15170 REM TRANSFER VECTOR. F1A15171 REM F1A15172 DUP 1,4 SPACE FOR ADDITIONAL BRANCHES. $F1A15173 PZE 23-26 $F1A15174 REM F1A15175 TRA PMS01 22 - CHARACTER IS * $F1A15179 ER0026 TSX DIAG,4 21 - CHARACTER IS $ F1A15180 ER0027 TSX DIAG,4 20 - CHARACTER IS + ZERO F1A15181 ER0028 TSX DIAG,4 17 - CHARACTER IS - ZERO F1A15182 ER0029 TSX DIAG,4 16 - CHARACTER IS RECORD MARK F1A15183 ER0030 TSX DIAG,4 15 - CHARACTER IS 8-4 PUNCH F1A15184 TSX OCTL12,4 14 - CHARACTER IS OCTAL 12. F1A15185 TRA END00 13 - CHARACTER IS ENDMARK F1A15190 TRA CHRX0 12 - CHARACTER IS X F1A15191 TRA CHRH0 11 - CHARACTER IS H F1A15192 TRA LPRN0 10 - CHARACTER IS ( $F1A15193 TRA RPRN0 07 - CHARACTER IS ) $F1A15194 TRA EQUS0 06 - CHARACTER IS = $F1A15195 TRA COMA0 05 - CHARACTER IS , $F1A15200 TRA PMS01 04 - CHARACTER IS / $F1A15201 TRA PMS01 03 - CHARACTER IS +- $F1A15202 TRA DIGT0 02 - CHARACTER IS NUMERIC $F1A15203 TRA LEGL0 01 - CHARACTER IS LEGAL $F1A15204 SCAN3 TIX SCAN2,4,1 00 - CHARACTER IS BLANK OR COUNT TEST. F1A15205 SCAN4 TXI SCAN1,2,-1 *WORD EXHAUSTED, GET ANOTHER. F1A15210 REM F1A15211 REM F1A15212 REM CHARACTER IS A NUMERIC. F1A15213 REM F1A15214 DIGT0 ZET HOLFG IS THIS POSSIBLY A HOLLERITH FIELD. F1A15220 TRA DIGT1 YES. N FOLLOWS (/ OR , F1A15221 NZT LITFG NO. IS THIS POSSIBLY A HOLLERITH LITERAL. F1A15222 TRA SCAN3 *NO. N DOES NOT FOLLOW +-* F1A15223 DIGT1 STQ C(MQ) YES. SAVE CONTENTS OF MQ. F1A15224 XCL SAVE AC IN MQ AND MOVE DIGIT TO F1A15225 ANA ENDMK LOW ORDER OF AC AND PRESERVE IT. F1A15230 SLW 2G SAVE DIGIT. F1A15231 CLA 1G GET PREVIOUS PARTIAL RESULT. F1A15232 ALS 2 MULTIPLY BY 4. F1A15233 ADD 1G ADD NEW DIGIT. F1A15234 ALS 1 MULTIPLY BY 2. F1A15235 ADD 2G ADD NEW DIGIT AGAIN. F1A15240 STO 1G SAVE PARTIAL RESULT. F1A15241 XCL RESTORE PAREN COUNT IN AC. F1A15242 LDQ C(MQ) RESTORE CHARACTERS IN MQ. F1A15243 TRA SCAN3 *RETURN TO SCAN. F1A15244 REM F1A15245 REM CHARACTER IS LEGAL AND INSIGNIFICANT. F1A15250 REM F1A15251 LEGL0 ANA 1BAR AVOID FIELD OVERFLOW, MASK DECREMENT. F1A15260 STZ HOLFG RESET HOLLERITH FIELD FLAG. F1A15261 STZ LITFG RESET HOLLERITH LITERAL FLAG. F1A15262 STZ 1G CLEAR CONVERSION CELL. F1A15263 TRA SCAN3 *RETURN TO SCAN. F1A15264 REM F1A15265 REM CHARACTER IS +-* OR = F1A15270 REM F1A15271 PMS00 STL LITFG SET POSSIBLE HOLLERITH LITERAL FLAG. F1A15272 STZ HOLFG RESET POSSIBLE HOLLERITH FIELD FLAG. F1A15273 STZ 1G CLEAR CONVERSION CELL. F1A15274 TRA SCAN3 *RETURN TO SCAN. F1A15275 REM F1A15280 REM CHARACTER IS /( OR , F1A15281 REM F1A15282 SLSH0 STL HOLFG SET POSSIBLE HOLLERITH FIELD FLAG. F1A15290 STZ LITFG RESET POSSIBLE HOLLERITH LITERAL FLAG. F1A15291 STZ 1G CLEAR CONVERSION CELL. F1A15292 TRA SCAN3 *RETURN TO SCAN. F1A15293 REM F1A15300 REM CHARACTER IS , F1A15301 REM F1A15302 COMA0 PDX ,1 LOAD PAREN COUNT. IS COMMA INSIDE PARENS. F1A15310 TXH SLSH0,1,0 *YES,IS SUBSCRIPT OR ARGUMENT SEPARATOR $F1A15311 COMA1 STL NOTAF