CHART 1 - COMMAND CYCLE ***************** ****ERROR******** * * * OF ANY KIND * * PROMPT * * * .---->* *<--------* ISSUE * : * * * ERROR * : * * * MESSAGE * : ***************** ***************** : : : : : : : : : : : : : GET V : ***************** : * * : * READ AND * : * LOOKUP *<------------------------------------------. : * COMMAND * : : * * : : ***************** : : : : : : : : : : : : : : : : : : : : SQZTAB V .*. YES : ***************** ***************** .* *. : * * * * .* *. : * DISPATCH * * ENCODE * .* ANOTHER *. : * *-------->* STORED OR *-------->*. ATTACHED .* : * * * ATTACHED * *. COMMAND .* : * * * COMMAND * *. .* : ***************** ***************** *. .* : : * NO : : : : : : : : : : : : : : : : V INSERT V : ***************** ***************** ***************** : * * * * * * : * PROCESS * * PLACE * * STORE * :<----* DIRECT * * BREAK(S) *<--------* COMMAND * : * COMMAND * * * * IN ROLL * : * * * * * * : ***************** ***************** ***************** : : : : : V '-<-------------------------------------' CHART 2.1 - COMMAND DISPATCH ENTERED FROM INITIALIZATION .*. GETSQZ POFFO ***************** .* *. ***************** ****** * * YES .* GET *. NO *CALL SQZINS TO * ****** * * * TURN OFF * .* CHAR, *. AC W * GET CMD WORD * * * * 2.1.0*-->* CONTROL O * .<----------------*. EOL OR ; .*-------->*INCREMENT CMD *<-------------* 2.1.3* * * * * : *. .* * FLAG & * * * ****** * * COMMENT: GET *. .* AC F * CLEAR CR FLAG * ****** ***************** OR : ****** AC V *. .* ***************** PROMPT : EOL : * * * : ****** : : * 2.1.2*----------->A : * * : : * * : : * 2.1.1*---------->: : ****** : : * * : : : : ****** : V : V V MAYGET .*. DOGET : .*. ***************** .* *. ***************** .* *. ASSIGNMENT *SET COMMAND * .* *. WAS CLEAR *CALL ACCEPT TO * .* CHAR *. YES ****** AC F * FLAG TO -1 * .* TEST & *. * INITIALIZE * .* IS *. * * *SET CHAR NOT 0 * .--->*. SET .*-------->* COMMAND INPUT* *. = ( : / .*------------->*25.1 * AC V * SINCE NOT EOL* A *. CR FLAG .* * * *. .* * * AC H *ZERO STOP FLAG * : *. .* * & TYPE PROMPT * *. .* ****** BIT 0***************** : AC F *. .* ***************** AC V *. .* : : BIT 17 * WAS A * NO : : : ALREADY : : : : : SET : : : : : : : : : : : : : : V : NO V V : WHERES .*. .*. .*. ***************** : .* *. .* *. .* *. *ZERO DELETE * : .* HAS *. NO .* ARE *. .* *. NO *ERROR******** AC J * LENGTH * : .* COMMAND *. .* WE AT *. .* COMMAND *. * * AC P *RESET PDP * : *. BEEN .*-------->*. END OF LINE .* *. IN .*--------->* NOT A COMMAND* *DEFAULT PROG IS* : *. READ .* *. .* *. SQZTAB .* * * GLOBAL* CURRENT PROG* : *. .* *. .* *. .* ************** ***************** : AC F *. .* AC V *. .* AC U *. .* : : >0 * YES, =0 * YES * YES : : : INSERT : : *ERROR***** : : : : : * * : : : : : * NOT VALID *<-----. : : : : : * ATTACHED * : : : : : : *********** : NO V : : WHERE V V .*. ***************** : V ***************** ***************** .* *. * * : ****** * * *GET OFFSET OFF * .* IF *. * SETUP POINTER * : * * * DISPLAY * AC W * SQZTAB OF CMD * .* CMD IS *. * TO *--->' * 2.2.1* * PROGRAM * *GET DISPATCH *-------->*. ATTACHED .* AC Y * WORKSPACE * * * * POSITION * * ADR FROM * *. CAN IT .* * * ****** * * AC T * SQZDIS * *. BE .* ***************** ***************** ***************** *. .* : * YES PROMPT : ********** : * * V * JUMP WITH* V * 2.1.1*<-------' * RETURN *<-----' * * * TO PROMPT* ****** ********** CHART 2.2 - COMMAND DISPATCH ENTERED AFTER DECODING SEMIY **************STORED CMD INSERT STOP$ ****** * * ****** ****** ****** * * * INCREMENT * * * * * * * * 2.2.0*-->* WORKSPACE * * 2.2.1* * STOP * * 2.1.3* * * * POINTER * * * * CMD * * * ****** * AS APPROPRIATE* ****** ****** ****** AC Y ***************** : : A : : : : : : : : : : : : : : : : : : : : : : : TRY : V V V AGAIN : SEMIV ***************** ***************** ***************** ***************** ****** * * *NODE LENGTH= * AC Y * * * * * * * REMOVE * * POINTER * AC H * SET STOP * *DECREMENT * * 2.2.2*-->* DISPATCH- * .--->* -BASE OF WSP * BIT 0* FLAG * * COMMAND * * * * RETURN * A *DEPOSITE LENGTH* * * * FLAG * ****** * FROM STACK * : * IN WORKSPACE * * * * * ***************** : ***************** WORD 0 ***************** ***************** : : : BITS 12-17 : A FROM ON DECODE : : : : : * * : : : : : * 2.2.3*---------->: : : : : * * : : : : : ****** V : V V : NO .*. : .*. .*. .*. GET .* *. : .* *. ***************** .* *. YES,FIRST .* *. ****** YES .* *. : .* *. IS ON *DELETE * .* *. CMD AFTER .* *. * * .* CHAR *. : .* CMD *. * INTERSECTING * .* CMD FLAG *. PROMPT .* END OF *. * 2.1.2*<--*. IS .* : *. IS .*-------->* COMMANDS * *. IS ZERO .*-------->*. LINE .* * * *. ; .* : *. ON .* * * *. .* *. .* ****** *. .* : *. .* *CHART 11 * *. .* *. .* AC V *. .* : AC J *. .* ***************** AC F *. .* ****** *. .* * NO : <0 * NOT : * NO * * * YES, : : : ON : : * 2.1.1*<----' PROMPT : : : : : * * : : : : : ****** : : : : : V : : : : .*. : INSERJ V : V .* *. : ***************** V ***************** NO .* *. YES : *LENGTH OF NODE * AC C INSERC *ATTACHED CMD SO* GO ****** .* END OF *. : * EXPANSION = * * * *SET STOP FLAG * CHECK * * .<-----*. LINE .*--->' * NODE LENGTH *------------->* 3.1 * * IN WORKSPACE *------------->* 2.2.2* : *. .* * - OLD LENGTH * RH(J) * * * * FOR * * : *. .* *SWAP HALVES J * ****** *WORD 0,BIT 0 * ANOTHER ****** : *. .* * TO GET OFFSET** ***************** ATTACHED V * OF ROLL POINTER COMMAND ERROR* LH(J)=LENGTH OLD NODE * * RH(J)=ROLL ID *SYNTAX* * * ****** CHART 3.1 - COMMAND INSERTION IN ROLL .*. INSERC .* *. ***************** ***************** ***************** ***************** ****** .* DIFF *. * * * * * * * * * * .* OF OLD & *. NO *NEW TOP OF ROLL* *AC B = CURRENT * *PUT # WORDS * *PREPARE TO * * 3.1 *-->*. NEW NODE LEN.*--. * AC A + AC C *-------->* TOP OF * .--->* MOVED IN BOTH *-------->* ADJUST ROLL * * * *. > 0 .* : *ADJUST ROOM * : * CURRENT ROLL * : * HALVES AC U * * POINTERS BY * ****** AC C *. .* V * AC U + AC C * A * * : * * * AC B = AC E * *. .* SHRINK ***************** : ***************** : ***************** ***************** * YES * * A : : : : STORED CMD DECODE : * 3.2.1* : : : : : HAS SETUP ACS X&J : * * : : : : : TO ROLL INSERTION : ****** : : : : : POINT & SIZE OF : : : : : .------------------------>: EXISTING NODE : : YES : V : : V V .*. : .*. A : .*. ***************** .* *. : .* *. : ***************** .* *. *EXPECTED ADR OF* .* *. NO : .* *. YES : *ADD AC U * NO .* *. AC D * NODES ABOVE * .* UNMET *. : .* AC B *. : * ADJUSTMENT * .* AC B *. * AFTER EXPAN= * *. INCREASE .*->' .->*. > .*----' * TO ROLL B *<--------*. = .* AC X * INSERTION PNT* *. < 0 .* : *. AC D .* * * *. AC J .* * + INCREASE * *. .* : *. .* *DECREMENT B * *. .* ***************** *. .* : *. .* ***************** *. .* : * : * * YES : A : : NO : : : : : INSET* : : : : : * * : : : : : .->--* 3.2.2* : : : : : : * * : V : : V .*. NO ****** V ***************** ***************** A ***************** .* *. ***************** * * * * : * * .* *. *ADJUST TOP ONLY* * SET CURRENT * * COMPUTE UNMET * : *DECREMENT * .* EXPAND *. * OF ROLL * AC E * ROLL EQUAL TO * * INCREASE AS * '--* AC B & AC A * *. STILL .*<--------*NEW EXPECTED * * COMMAND ROLL * *AC C = INCREASE* *MOVE WORD FROM * *. MORE .* * ADR AS * * * * - ROOM * * B TO A ADRS * *. .* * AC D = AC A * ***************** ***************** ***************** AC C *. .* ***************** : A >0 * YES : : : INSET* : : : * * ROOM FOR NEW : : : * 3.2.2*------<---. NODE : : : * * : : : V ****** : INUP V : .*. : ***************** ***************** ***************** .* *. ***************** *AC A = BOTTOM * * * * * .* AC E *. *MOVE ROLLS BELOW IN LEFT & * OF NEXT ROLL &* *AC U = ROOM * * INCREMENT * NO .* IS LAST *. YES *DOWN ADJUSTING * RIGHT * MAYBE TOP OF *-------->* BETWEEN TOP OF* * ROLL PTR *<--------*. ROLL ABOVE .*-------->*NODE INSERTION * HALVES * CURRENT ROLL * * CURRENT ROLL &* * IN AC E * *. .* *POINT, SIMILAR * * AFTER MOVEMENT* * BOTTOM OF NEXT* * * *. .* *LOGIC AS UPWARD* ***************** ***************** ***************** *. .* TOOMANY ***************** A : * * * : : : * 3.2.3*--------<--' : : * * IF NOT ENOUGH ROOM '----------------------------------------------<----' ****** FOR NEW NODE CHART 3.2 - COMMAND INSERTION IN ROLL .*. SHRINK .* *. ***************** TOOMANY ****** .* *. NO *ADJUST ROLL PTR* ****** * * .* AC C *. * * * * * 3.2.1*-->*. .*-------->*IF NODES ABOVE * * 3.2.3* * * *. = 0 .* * MOVE THEM DOWN* * * ****** *. .* * * ****** *. .* ***************** : * YES : : : : : :-----<-------------------' : : : : : : : V .*. V INSET ***************** .* *. ***************** ****** * * .* *. YES *TYPE "THERE ARE* * * * INSERT NODE * .* ON *. * TOO MANY * * 3.2.2*-->* USING ACS *-------->*. CMD .*--. * COMPLICATED * * * * X & Y * *. .* : * STORED CMDS" * ****** * * *. .* V * * ***************** *. .* ON.1** ***************** * * * : : NO *12.1 * : : * * : : ****** : : : V : .*. V ***************** .* *. ***************** * * .* *. *IF ON CMD & * * PLACE * YES .* AT *. * SOME REVOKED * * BREAK *<--------*. CMD .* * TYPE "THOUGH * * * *. .* * CMDS HAVE * * * *. .* * BEEN REVOKED * ***************** *. .* ***************** INSURE : * NO : ****** : : : * * V : : * 3.2.4*---->------------------------------->: : * * : : ****** : : V V ***************** PROMPT ***************** * * ****** *CORRECT ROLL * * TYPE * * * * PTR & CLOSE * * "STORED" *------------>* 2.1.1*<-------------* ANY HOLE USING* * * * * * ACS J,C,X&Y * * * ****** * * ***************** ***************** CHART 4.1 - BASIC INPUT SUBROUTINES ***************** ****** * * ****** ****** ****** * * * CALL WIN * * * * * * * * SKIP *-->* TO INPUT CHAR*<---. * WIN * *NUDGE * * TSKIP* * * * * A * * * * * * ****** * * : ****** ****** ****** ***************** : : : : : : : : : : : : : : : : : : : : : : : : : : : : : V : V : : .*. : .*. V V .* *. : .* *. YES, ***************** ***************** ****** .* *. YES : .* DECR *. RETURN *AC T = * *PRESERVE AC V * * * .* CHAR *. : .* CHRCNT *. 0 * DELIMITING * * WHILE CALLING * *SKIPS *-->*. IS .*--->' *. .*>. * CHAR FROM LOC * .--->* SKIP FOR NON- * * * *. BLANK .* *. =0 .* : * DELIM. * A * BLANK CHAR * ****** *. .* *. .* V * * : * INTO AC T * AC V *. .* *. .* ****** ***************** : ***************** * NO * NO * * : : : : ******* : *RETURN* : : : V * * : * * : : : '------>* RETURN* : ****** : : : * * : A : : : ******* : : V : : V : .*. : : ***************** ***************** : .* *. : : ****** *EXECUTE FIN. * *DATA. * : .* *. NO : : * * * TO FORGET * * HOLLER,AC V * : .* CR OR *. : : *ACCEPT*-->* PREVIOUS REC * *RIGHT-ADJUST *>' *. NOT BLANK .*--->' : * * *EXECUTE * * CHAR * *. .* : ****** * IN. -4,["(99G)* * * *. .* : ***************** ***************** AC T *. .* : : * YES : : : : : : : : : : : : : : : : V : : ***************** : V * * : ****** * CHRCNT= 73 * V * * *CAUSES EOL * '--------------------->*RETURN* * AFTER 72 CHARS* * * * * ****** ***************** : : ****** V * * '------->*RETURN* * * ****** CHART 4.2 - BASIC INPUT SUBROUTINES ***************** ****** * * ****** * * *CALL SKIP * * * *SQZINK*-->* TO INPUT * * STOP * * * * NON-BLANK * * * ****** * CHAR * ****** ***************** : : : : : : : : : : : : : V .*. V ***************** .* *. ***************** ****** * * .* *. NO ****** *MOVE CHAR IN * * * * AC W = 0 * .* CHAR *. * * * AC T TO AC V * *SQZIN *-->* *-------->*. ALPHAMERIC .*------------->*RETURN* * * * * * * A *. .* * * *CALL SQZIN TO * ****** * * : *. .* ****** AC W * INPUT WORD * ***************** : *. .* ***************** : * YES : : : ******* : : : * * : : : * RETURN* : : : * * : : V ******* V : .*. A .*. ***************** : .* *. ***************** : .* *. ****** * * : .* *. NO * * ****** : NO .* *. * * *CALL SQZIN * : .* AC W *. * ACCUMULATE * * * : .* WORD *. *SQZINS*-->* TO INPUT * : *. FULL OF .*-------->* CHAR INTO * *SKIPS * '<---*. PRESENT .* * * * WORD * : *. CHARS .* * AC W * * 4.1 * *. .* ****** * * : *. .* * * ****** *. .* ***************** : *. .* ***************** A AC W *. .* : : * YES : : NOT 0 * YES : : : : : : : : : : : : : : : : : : : : : : : : V : : : : V .*. : V : : .*. .* *. : ***************** : ***************** .* *. YES .* *. : * * : * * YES .* *. .* WORD *. : * CALL WIN * V * SET * .* *. .<*. PRESENT .* '<---* TO INPUT CHAR *<----------------' * STOP FLAG *<--------*. 'STOP' .* : *. .* * * * * *. .* V *. .* * * *AC H,BIT 0 * *. .* ****** *. .* ***************** ***************** *. .* * * * NO * NO *SKIPS * : *ERROR* *ERROR* : * 4.1 * V * * * * V ****** '------>* SYNTAX* * SYNTAX*<-------' * * * * ******* ******* CHART 4.3 - SUBROUTINE TO INPUT DATA .*. ***************** ***************** ***************** .* *. ***************** ****** *BUILD DATA. UUO* *SETUP * * * .* *. NO * * * * * WITH TYPE CODE* * BYTE POINTER * * CALL WIN * .* CHAR *. * INCREMENT * *INPUT *-->* FROM AC W * *& REMEMBER *-------->* TO INPUT *-------->*. IS ' .*-------->* BYTE * * * *EXECUTE * * DATA ADR * * CHAR * *. .* A * POINTER * ****** * DATA. (A) * * * * * *. .* : * * A ***************** ***************** ***************** *. .* : ***************** : : A A * YES : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : V : V : V : : .*. : .*. : ***************** ***************** : .* *. : .* *. : * * *PREPARE TO * : .* *. YES: YES .* *. : * CALL NUDGE * * INPUT TEXT * : .* CALL WIN *. : .* POINTER *. : * TO GET * *BY BLANKING * : *. CHAR IS ' .*->' .<-*. IS TO THIRD .* : * DELIMITING * * ONE OR TWO * : *. .* : *. WORD .* : * CHAR * * WORDS * : *. .* : *. .* : ***************** ***************** : *. .* : *. .* : : A : * NO : * NO : : : : : : : : : : : : : : : : : : : : : : : : : : : : : V : YES : : : V : .*. .*. : V : .*. : .* *. .* *. : ***************** : .* *. : .* *. NO .* *. : *CALL SKIPS * :YES .* TO *. : .* CHAR *. .* CHAR *. : * TO INPUT * V .* SECOND *. : *. IS " .*-------->*. IS ' .* : * NON-BLANK CHAR* .<-*. BUT TYPE NOT.* A *. .* *. .* : *AC T = * : *. DOUBLE .* : *. .* *. .* : * CHAR IN AC V * : *. .* : *. .* *. .* : ***************** : *. .* : * YES * NO : : : * NO : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : V : : : : V : ***************** V : V : ***************** : * * ****** : ****** : * * : * PUT TYPE OCTAL* * * : * * : * DEPOSIT * '<------* INTO AC W * *RETURN* : *RETURN* : * CHAR * * * * * : * * : * * * * ****** : ****** : * * ***************** : : ***************** : : : : V V '<--------------------------------------------------' CHART 5 - SYMBOL LOOKUP SUBROUTINES ***************** ****** * * ****** ****** ****** * * * AC B= * * * * * * * *IDENT0*-->* GLOBAL * *IDENT2* * LOOK * * GLOOK* * * * * * * * * * * ****** * * ****** ****** ****** ***************** : : : : : : : : : : : : : : : : : : : : : : : V : : : .*. V V V .* *. ***************** ***************** ***************** ****** YES .* *. * * * * * * * * .* *. *AC T = (V) * * SET LOCAL CODE* * AC V = * * *<--*. 'ARG:' .* .--->*AC V = (B) *-------->* * * GLOBAL * * * *. .* A * * * IN AC W * * * ****** *. .* : * * * * * * AC W *. .* : ***************** ***************** ***************** AC V * NO : A : : : : : : : : : : : : : : : : : : : : : : V : : V V IDENT1 .*. : : .*. NOT .*. .* *. : ***************** .* *. NOT FOUND .* *. .* *. NO : *CALL SKIP * .* *. FOUND .* *. .* CHAR *. : * & SQZINS * .* SEARCH *. .* SEARCH *. *. IS / .*--->' * TO GET * *. FOR SYMBOL .*--->. .<---*. FOR SYMBOL .* *. .* * VARIABLE * *. .* : : *. .* *. .* * NAME * *. .* : : *. .* *. .* ***************** AC V *. .* : : *. .* * YES A * FOUND V V * : : : ****** ****** : FOUND : : : * * * * : : : : *RETURN* *RETURN* : : : YES, : * * * * : : : DEFINED : ****** ****** : V .*. V A A V ***************** .* *. ***************** : : ***************** * * .* *. * * : : * * *CALL GLOOK * .* *. * PUT VALUE OF * : : * V = V + 4 * * TO LOOKUP *-------->*. B = V .* * SYMBOL INTO *--->' '<---* * * PROG NAME * *. < 0 .* * AC A * *V(LH)= SYMBOL- * AC V * * *. .* * * * BLOCK-LENGTH * ***************** ****** *. .* ***************** ***************** * * * NO *RETURN*<----' * * ****** CHART 6.1 - READ ARRAY ELEMENT ADR LOCAT2 * * * 6.2.1* .*. * * ***************** .* *. ****** LOCAT1 ****** * * .* *. A ****** **ERROR***** * * *CALL SQZINS * .* *. : NO * * * * *LOCATE*-->* TO INPUT * .--->*. ARRAY .*->' * 6.2.0* * PROG NOT * * * * NAME * A *. .* * * * CALLED YET * ****** * * : *. .* ****** ************ ***************** : *. .* A A : : * YES : : : : : **ERROR*** : : : : : * * : : : : : * BOUNDS * : : : : : *UNDEFINED * : : : : V ********** : : YES V : .*. A LOCAT5 : .*. ***************** : .* *. : ***************** .* *. ****** * * : .* *. YES : *INITIALIZE * NO .* GET *. * * *CALL IDENT0 * : .* AC W= *. : * MULTIPLIER BY * .* ADR INTO *. *IDENTL*-->* TO LOOKUP * : *. SCRIPT INDEX.*--->' *AC D = 1 *<--------*. AC A .* * * * NAME * : *. IS 0? .* * * *. = 0? .* ****** * * : *. .* *PRESERVE AC B * *. .* ***************** : *. .* ***************** *. .* : : * NO A * : : : : A : : : : : : : : : : : : : : : V : V : : NO .*. : .*. .*. : LOCAT4 .*. .* *. : .* *. .* *. NOT DUMMY : .* *. YES .* *. : .* *. YES .* *. ARRAY : YES .* *. .* UNDEFINED *. : .* IS *. .* AC H= *. : .* PROCESSING*. .<---*. OR LABEL .* : *. CHAR ( .*-------->*. # DIMENSIONS.*---------------->'<----------------*. ATTACHED? .* : *. .* : *. .* *. DUMMY? .* *. .* : *. .* : *. .* *. .* *. .* : *. .* : *. .* *. .* AC F *. .* V * NO : * NO * YES NOT 0 * *ERROR**** : : : : A * * : : : : : * NAME * : : : : .------------------------>: *UNDEFINED * : : : : A : ********** : : : : : NO : V : V : .*. : ***************** : ***************** : .* *. ***************** * * : * AC W = * : .* *. YES *AC W = (H) * *INITIALIZE * : * TYPE CODE * V .* VARIABLE *. * * * OFFSET FROM *--->' * * '---------------->*. BOUNDS? .*-------->* # DIMENSIONS * * BASE OF ARRAY * * AC A = 0 * *. .* * INTO AC H * AC E *TO ZERO * * * *. .* * * ***************** ***************** *. .* ***************** : * : ****** V * * '------>*RETURN* * * ****** CHART 6.2 - READ ARRAY ELEMENT ADR LOCAT1 ***************** LOCAT2 ****** *STEP AC W * **ERROR** ****** * * *AC B= * * * * * * 6.2.0*-->* LOWER BOUND * * BAD * * 6.2.1* * * *AC C= * * ELEMENT * * * ****** * UPPER BOUND * ********* ****** A ***************** A : : : : : : : : : : : : : : : : : : : : : : : : NO : : V .*. V : ***************** .* *. ***************** : *DATA. (G) * .* *. * * : * * .* SUBSCRIPT*. * PUT TYPE CODE * : *CALL NUDGE * .--->*. IN RANGE? .* .---------------->* INTO AC W * : * TO INPUT * A *. .* A * * : * DELIMITER * : *. .* : * * : ***************** : *. .* : ***************** : : : * YES : : : : : : : : : : : : : : : : : : : : : : : : : : : V : : : V : .*. : V : .*. : .* *. : ***************** ***************** .* *. : .* CHAR *. NO : *AC E = * *CALL TSKIP * .* *. NO : .* IS * *. : * D (G-B)+E * * TO GET * .* *. : *. & AC F LE 0 .*--->' *AC D = * * DELIMITER * *. DOUBLEWORD?.*--->. : *. .* * D (1+C-B) * * INTO AC T * *. .* : : *. .* * * *RESTORE AC B * *. .* : : *. .* ***************** ***************** *. .* : : * YES : A * YES : : : : : : : : : LOCAT3 : : : : : : ****** : : : : : : * * : : : : : : * 6.2.2*---->V : YES : : : : * * .*. .*. V : : V ****** .* *. .* *. ***************** : ***************** : ****** .* CHAR *. NO .* CHAR *. * * : * * : * * .* IS COMMA *. .* IS ) *. * DOUBLE AC E * V *AC A = E+A * : * 6.3 * *. & H=H-1 >0 .*-------->*. & H=1? .* * *-------->* * : * * *. .* *. .* * * * * : ****** *. .* *. .* * * * * : *. .* *. .* ***************** ***************** : * YES * NO : : V **ERROR** : ****** : '<-------------------------------------' * * V * * V * BAD *<------' *RETURN*<-------' * ELEMENT * * * ********* ****** CHART 6.3 - READ ARRAY SECTION NOTATION .*. .* *. ****** .* *. NO **ERROR** * * .* SUBSCRIPT *. * * * 6.3 *-->*. = 0 ? .*----------->* BAD * * * *. .* * ELEMENT * ****** *. .* ********* AC G *. .* * YES : : : : V .*. .* *. ***************** .* *. YES * * .* AC J *. *AC Y = (HISTOP)* *. = 0 ? .*-------->* * *. .* * * *. .* * * *. .* ***************** * NO : : : : V :<------------------------' : : V ***************** * * *AC J = D-J * * * *0(Y) = J * * MAYBE DOUBLED * ***************** : : : : : : V ***************** ***************** ***************** ***************** LOCAT3 *C = C-B-1 * *Y = Y+2 * *CALL TSKIP * * * ****** *& PUT IN BOTH * *D = D C * * TO INPUT * * FLAG SECTION * * * * HALVES *-------->*J = D *-------->* NON-BLANK CHAR*-------->* NOTATION BY *------------->* 6.2.2* *& INTO 1(Y) * * * * * * NEGATING AC F * * * * * * * * * * * ****** ***************** ***************** ***************** ***************** CHART 7.1 - INPUT POSITON ROUTINE ATLOC4 ***************** ***************** ***************** ****** * * *CALL ADDLOC * *RESTORE AC D * * * *CALL SQZINS * * TO APPLY * *AC V = CHAR * *ATLOC *-->* TO INPUT * AC V * OFFSET *-------->* * * * * WORD * *& CALL NUDGE * * RETURN * ****** * * AC T * FOR CHAR * * * ***************** ***************** ***************** : A A : **ERROR*** : : : * * : : : .----->* NAME * : : : A *UNDEFINED * : : V : ********** : : .*. ATLOC1 .*. : : .* *. ***************** .* *. ***************** : .* *. NO * * .* *. *IF OFFSET IS * : .* B=GLOBAL *. *CALL IDENT2 * .* UNDEFINED *. * FROM CODE BASE* : *. CHAR IS / .*-------->* (CHART 5) *-------->*. OR NOT LABEL.*--->. *THEN DECREMENT * : *. .* * TO LOOKUP * *. .* : * AC V * : *. .* * NAME * *. .* : * * : *. .* ***************** *. .* : ***************** : * YES A * OK V A : : : : *ERROR*** : : : : : * * : : : : : * BAD * : : : : : *POSITION * : : V : YES : ********* : : .*. .*. V ATLOC3 : : .* *. .* *. ***************** ***************** : NO .* CALL *. .* WAS *. NO * * *DATA. * : .* GLOOK *. .* WORD *. *U = COMPRESSED * * INTEGER,V * : .<---*. B=V <0 ? .* *. PRESENT .*--->. * STMT LENGTHS * *IF CHAR IS '-' * : : *. .* *. .* : * BYTE POINTER * * THEN NEGATE V * : : *. .* *. .* : * * * * : : *. .* *. .* : ***************** ***************** : V * YES * : : A : **ERROR**** : A : : : : * * : : : : : : * NAME * : : : : : : * UNDEFINED * : : : : : : *********** : : : : : YES : V : : ATLOC2 V .*. : ***************** ***************** : ***************** .* *. : *CALL SQZINK * *A = PROG BASE * : *PRESERVE AC D * .* CHAR *. NO : * & SKIPS * * * V *C= BYTE POINTER* .* *. : *TO INPUT LABEL *-------->*U = COMPRESSED * '--->*D=1ST EXEC STMT*-------->*. IS + OR - .*---------------->' * * * STMT LENGTHS * * ADR & INTO * *. .* *AC T = CHAR * * BYTE POINTER * * A TOO IF NO * *. .* ***************** ***************** *LABEL SPECIFIED* AC T *. .* * CHART 7.2 ****** APPLY OFFSET TO POSITION =0 * * .---->*RETURN* .*. * * .* *. ****** ***************** ****** .* *. *PRESERVE AC B * * * .* COMPARE *. <0 *DOUBLEWORD OF * *ADDLOC*-->*. V WITH 0 .*-------->*BYTES AT -1(C) * * * *. .* * INTO T&U * ****** *. .* * * *. .* ***************** * >0 : : : : : : : : : : : ADLOC6 V V ***************** ***************** *PICKUP STMT LEN* *B= # BYTES TO * * & ADD IT TO * AC C * RIGHT OF PNT * .->* AC A * *SHIFT AWAY * A * * * BYTES ON RIGHT* : * * *B=B-9 MAKES CNT* : ***************** ***************** : : : : : : : : : : : : : : :<--------------------------------------------------. : V V A YES : .*. .*. .*. : .* *. .* *. ***************** .* *. ***************** : .* *. YES .* *. NO *ISOLATE BYTE * .* STMT *. NO *UPDATE BYTE PNT* : .* BYTE=0? *. .* *. * & SUB FROM A * .* IS FORMAT *. * IN AC C FROM * : *. OR ADR NOT .*--->. *. AC A LE D .*-------->*SHIFT AWAY BYTE*-------->*. OR V=V+1 <0?.*-------->* AC B & * : *. IN PROG?.* : *. .* * & MAYBE GET * *. .* *RESTORE AC B * : *. .* : *. .* * ANOTHER WORD * *. .* * * : *. .* : *. .* ***************** *. .* ***************** : * NO V * YES * : : : **ERROR** : : : : * * V : : : * BAD *<-------' : : : *POSITION * : : V ********* : : .*. : A .* *. V : YES .* STMT *. NO ****** : .* IS FORMAT *. * * '<-*. OR V=V-1 >0?.*>. *RETURN* *. .* : * * *. .* V ****** *. .* ****** * * * *RETURN* *& V=T * ****** CHART 7.3 - INPUT TWO POSITIONS ***************** ******* *V = CHAR IN T * ****** ****** ******* * * *CALL SQZIN * * * * * * * *BETWEEN*->* TO MAYBE INPUT* *ADDLOC* * ATLOC* *BETWEEH* * * * WORD * * * * * * RETURN* ******* * * ****** ****** ******* ***************** A A : : : : : : : : : : : : : : : : : : : : : : : : YES : V : .*. V ***************** ***************** .* *. ***************** *DEFAULT CODE * * * .* *. NO *C= H BYTE PTR * * LIMITS INTO G&H * C = H * .* 'BETWEEN' *. * * * * * * *. & 'AND' .*>. *H= A UPPER * *& BYTE POINTER * * V = 1 * *. .* : * POSITION * * INTO C * * * *. .* V * * ***************** ***************** *. .* ERROR* ***************** : A * * * : : : A *SYNTAX* : : : : * * : : : : ****** : : : : : V : YES : V .*. .*. : .*. .* *. .* *. ***************** .* *. NO .* WAS *. .* *. NO *CALL SQZINS * .* *. NO **ERROR** .* WORD *. .* *. * SHOULD INPUT * .* *. * * .-*. PRESENT .* *. 'AT' .*-------->* 'AND' * *. G < H ? .*----------->* BAD * : *. .* *. .* * * *. .* *POSITION * V *. .* *. .* * * *. .* ********* ****** *. .* *. .* ***************** *. .* * * * YES * * YES *RETURN* : A : * * : : : ****** : : : : : : : : : V : : ***************** ***************** V *CALL SKIPS * *CALL ATLOC * ****** * TO INPUT * * TO INPUT POS * * * * NON-BLANK CHAR*-------->*G=A; C EXCH H * *RETURN* *HOLD KEYWORD W * *SET STACK FOR * * * * IN AC H * * BETWEEH RETURN* ****** ***************** ***************** CHART 8 - AT AND BEFORE RETURN DECODE *ERROR .------------------------>.-------------------------------------------------->. * * : NO A NO : *UNDEF *<----. NO .*. .*. AT$0L V * NAME * .*. .* *. .* *. ***************** ***************** ****** .* *. ****** .* CALL *. YES .* CALL *. YES * * *AC T = CHAR V * .* *. * * .* SQZINS *. .* SQZINS *. *CALL SQZINS * *CALL GLOOK * .* *. * AT$0 *-->*. 'RETURN'? .*-------->*. 'FROM'? .*-------->* TO INPUT *-------->* *-------->*. B=V <0? .* *'BEFORE' *. .* *. .* * PROG NAME * *A= EPILOGUE * *. .* ****** *. .* *. .* * * * ADR * *. .* *. .* *. .* ***************** ***************** *. .* * * * YES : V .<----------------------------------------------------------------------------' : : AT$1 V AT$3 ***************** ***************** ***************** ****** *CALL ATLOC * * * * * * * * TO INPUT * *AC G = 1 * * ADD NODE LEN * * AT$ *-->* POSITION *-------->*(DEFAULT CNT) * .<----------------* TO X * * 'AT' * * * * * : * * ****** * * * * : * * ***************** ***************** : ***************** : : A : : : : : : : : : : : : V V : NO .*. .*. .*. ***************** .* *. ***************** .* *. .* *. *DATA. * YES .* *. * * .* *. YES .* *. * INTEGER, G * .* CHAR *. *X = BOTTOM OF * .* ANOTHER *. .* SAME *. * *<--------*. IS , .* * AT ROLL *-------->*. NODE IN .*-------->*. BREAK .* *CALL NUDGE * *. .* *C = TOP * *. ROLL .* *. .* * FOR DELIM * *. .* * * *. .* *. .* ***************** AC T *. .* ***************** *. .* *. .* : * NO A * NO * YES : : : : : : : : : : : : : : : : : : : : V : : : : .*. AT$2 V : AT$4 V V .* *. ***************** ***************** ***************** ***************** NO .* *. YES *GLOBAL= B * *0(Y)= H * * * * * .* *. * * *1(Y)= COUNT IN * *LH(J) = 2 * * J = LENGTH * .<---*. G > 0? .*-------->*H= RH(A) *-------->* BOTH HALVES * * *<--------* OF NODE * : *. .* * OPPOSITE * *V= T CHAR * *Y = Y+2 * * * : *. .* * STOP FLAG * * * * * * * : *. .* ***************** ***************** ***************** ***************** V * : SEMIV **ERROR***** : ****** * * V * * *NUMBER MUST * '------->* 2.2.2* *BE POSITIVE * * * ************ ****** CHART 9 - ONCALL DECODE .*. ***************** .* *. ON$0 ****** *CALL SQZINS * .* CHAR *. YES ****** * * * TO CHECK * .* IS / *. * * * ON$ *-->*FOR 'ONCALL' *-------->*. OR WORD ISNT.*------------->* 10 * *'ON' * * * *. 'CALL' .* * * ****** * * *. .* ****** ***************** *. .* * NO : V .<------------------------' : : V ***************** ***************** ****** *CALL SQZINS * * * * * * TO INPUT * *ADD NODE LEN * * CALL$*-->* PROG NAME * .<----------------* TO X * *'ONCALL' * * : * * ****** * * : * * ***************** : ***************** : : A : : : : V : : : A : : : : : : NO V .*. .*. ***************** .* *. .* *. ***************** ***************** * * .* *. YES .* *. YES *FLAG CALL NODE * * * *X = BOTTOM * .* ANOTHER *. .* SAME *. * AS ACTIVE * *PUT PROGRAM * * OF CALL ROLL *-------->*. NODE IN .*-------->*. NAME .*-------->* *-------->*SYMBOL POINTER * *U = TOP * *. ROLL .* *. .* *0(Y)= H * * IN GLOBAL * * * *. .* *. .* * * * * ***************** *. .* *. .* ***************** ***************** * NO * : : : : : : : : : : : : V V SEMIY **ERROR**** ****** * * * * * PROG HAS * * 2.2.0* *NO SYMBOLS * * * *********** ****** CHART 10 - ON (STORE) DECODE .*. ***************** .* *. ***************** ***************** ***************** ****** * * .* *. NO *CALL BETWEEN * *PUT LIMITS IN * *SET J NEG * * * *CALL IDENTL * .* CHAR *. * TO GET CODE * * THIRD WORD * * WITH 1 IN RH * * ON$0 *-->* TO LOOKUP NAME* .--->*. IS DOT .*-------->* LIMITS *-------->* OF NODE *-------->* TO INDICATE * *WITH NAME * OR ELEMENT * A *. .* * * *PRESERVE * * ON ROLL * ****** * * : *. .* * * AC C * BYTE POINTER * * * ***************** : *. .* ***************** ***************** ***************** : : * YES A : : : : : : : : : : : : : : : : : : : : : V : : : : .*. : V : V .* *. : ***************** : MAYBE YES .* *. : *PRESERVE AC W * : ATTACHMENTS .* *. : * * : * * .<*. AC F < 0 .* : *CALL SQZINK * : * 2.2.3* : *. .* : * TO GET * : * * : *. .* : *RELATION CODE * : ****** : *. .* : ***************** : V * NO : : : **ERROR***** : : : : * * : : : : * SECTIONS * : : : : *NOT ALLOWED * : : : : ************ : : V : V : .*. : ***************** : .* *. ***************** *GLOBAL= B * : .* CHAR *. NO *DEPOSIT REL * *IF DUMMY * : .* SHOULD *. * CODE IN NODE * *THEN PUT RELATIVE : *. BE DOT .*--->. *STEP Y BY 2 OR 3 * ADR +1 * : *. .* : *CALL INPUT * * IN AC A * : *. .* : * FOR CONSTANT * ***************** : *. .* : ***************** : : * YES V A : : : *ERROR* : : : : * * : : : : *SYNTAX * : : : : * * : : : : ******* : YES V : V .*. ***************** : ***************** .* *. *H= RH(A) * : *LOOKUP * .* *. *0(Y)= H * : * RELATION * .* FOUND *. *1(Y)= V *--->' * *-------->*. & OK FOR .* * * *RESTORE W * *. COMPLEX .* *Y= Y+3 * * * *. .* ***************** ***************** *. .* * NO **ERROR** : * * V * BAD *<------' *RELATION * ********* CHART 11 - DELETE INTERSECTING ON COMMANDS AND STORE ***************** ***************** ****** *F= SYMBOL PNT * *SAVE INDICATION* * * *G&H = CODE LMTS* * OF SUCCESS OF * * 11.1 *-->*D=0 FOR KILLON * .--->*KILL ON STACK * * * *ZERO LH 2ND * A * * ****** * WORD OF NODE * : * * ***************** : ***************** : : : : : : : : : : : : : : : : : V V : .*. ***************** : .* *. NOT ***************** *RH(E)= RELATIVE* : .* *. FOUND * * ****** * SYMBOL POINTER* : .* SEARCH *. *TYPE * * * *LH(E)= RELATIVE* : *. ROLL FOR .*-------->* "TOO MANY *------------->*PROMPT* * ELEMENT ADR * : *.UNUSED ID.* * CMDS!" * * * * * : *. .* * * ****** ***************** : *. .* ***************** : : * FOUND : : : : : : : : : : : : : : : V : V ***************** : ***************** *PRESERVE * : *DEPOSIT ID * * ON ROLL PTR * : * IN NODE * *CALL KILLON *--->' *X= INSERTION PNT * (CHART 28) * *C= LEN OF NODE * * * * * ***************** ***************** : : : : : : V INSERC ****** * * * 3.1 * * * ****** CHART 12 - ON BREAK SETUP ON 1 ***************** ****** * * * * *PREPARE FOR * * 12.1 * * FIRST PASS * * * * OVER CODE * ****** * * ***************** : : : : : V ON 2 .*. ON 3 .*. .* *. .* *. INSURE .* GET *. YES .* *. YES ****** .* LENGTH *. .* DUMMY *. * * .->*.OF STMT; IS IT*---------------------------------->*. ARRAY .*------------->* 3.2.4* A *. LAST? .* *. .* * * : *. .* *. .* ****** : *. .* *. .* A : * NO * NO : : : : : : : : : : : : : : : : : : V V : : .*. ON 4 .*. : : .* *. .* *. : : YES .* STEP *. .* *. NO : A .* G TO *. .* NON-DUMMY *. : '<-*. END OF STMT;.* .--->*. ARRAY THAT .*--->. : : *. STMT WAS.* A *. OVERLAPS.* : : : *.JRST?.* : *. .* : : : *. .* : *. .* : : : * NO : * YES : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : NO : V : ON 5 V : ON 7 .*. : ***************** : ***************** : .* *. : *IF I/O CALL ONS19(13.2) : *CALL ONSET * : .* *. : *ELSE SETUP PTR TO : * FOR EACH * V .* ANOTHER *. '<-* LAST INSTR IGNORING : * COMPUTED *-------->*. VARIABLE IN .* * DO CONTINUE SUBSTMT : * REFERENCE * *. SYMBOL .* *CALL ONSET (13)* : * * *.TABLE.* ***************** : ***************** *. .* : * YES : V '<-------------------------------------' CHART 13.1 - ROUTINE TO PERHAPS PLACE STORE BREAK ****** * * * ONS13* * * ***************** ***************** ****** ****** * * ****** *CALL TOPGET * : * * *GET C ADR * * * * TO GET DISPLACED V * ONSET*-->* OF INSTR * *RETURN*<------------* INSTR WORD *<----------------. * * * INTO AC * * * * * A *****AC V * * ****** *AND PLACE BREAK* : ***************** ***************** : : A : : : : : : : : .------------------------>' : : A A : V : YES : NO : NO .*. .*. .*. .*. .* *. .* *. .* *. .* *. .* *. NO .* *. NO YES .* MUST *. YES .* *. .* INSTR *. .* DOING *. .* ELEMENT *. .* SPECIFIC *. .->*. IS LUUO? .*---------------->. *. COMPUTED .*>.<------*. MATCH BUT IT.*<--------*. ELEMENT .* A *. .* : *. REFS .* : *. DOESNT? .* *.SPECIFIED.* : *. .* : *. .* V *. .* *. .* : *. .* : AC E *. .* ****** *. .* AC E *. .* : * YES : NEGATIVE* * * * >0 * : : : A *RETURN* A A : : : : * * : : : : : : ****** : : : : : : : : : V V : YES : YES : :STORED, .*. .*. .*. .*. : :GET .* *. TRACE .* *. .* *. .* *. : :BROKEN* *. BREAK NO .* *. .* *. NO .* ADR *. : : .* WHAT *. .* INSTR *. .* INDEXED *. .* FIELD *. : '<-*. KIND OF .*------>.<*. CHANGES .* *. INSTR .*-------->*. WITHIN RANGE.* : *. LUUO .* : *. MEMORY .* *. .* *. OF LOCS .* : *. .* V *. .* *. .* *. .* : *. .* ****** *. .* *. .* *. .* ****** : * I/O * * * YES * * NO * * : : *RETURN* : A '---->*RETURN* : : * * : : A * * : : ****** : : : ****** : : : : : : V : : NO : NO : ONS18 .*. : .*. .*. : .* *. : .* *. .* *. : .* *. YES : .* *. YES .* *. YES : .* ARE WE *. V .* DUMMY *. .* INDEXED *. : *. DOING WHOLE .*---------------------------------->*. ARRAY? .*-------->*. AND SAME .*---------------->' *. I/O STMT.* A *. .* *. ARRAY? .* *. .* : *. .* *. .* AC C *. .* ****** *. .* *. .* ONS20 BIT 0 * NO * * * * ****** : * ONS11* * * V * * * 13.2 *<----------' ****** * * ****** CHART 13.2 - ROUTINE TO PLACE INPUT BREAKS ONS28 ONS24 ONS19 ***************** ***************** *********** * * AC D *SET WHOLE FLAG * * * *COMPUTE # * BIT 10 IF THIS * .<--------* FLAG DOING* * WORDS CHANGED*---------------------------------->*ARRAY OVERLAPS *->. : *WHOLE STMT * * BY ENCODE * A *SPECIFIED LOCS * : : *********** * * : * * : : ***************** : ***************** : : A : : : : : : : : : : : .------------------------>' : : : A : : : : ENCODE : : : .*. ONS23 : : V .* *. ***************** : ****** .* FIND *. NO ****** * * : * * .* STMT START*. * * *COMPUTE # * : * ONS20*-->*. INPUT OR .*------------->*RETURN* * WORDS IN * : * * *. DECODE .* * * * ARRAY * : ****** *.LUUO?.* ****** * * : *. .* A ***************** : * YES : A : : : : : : : : : : : : : : : : : V : : : .*. : : : .* *. ***************** : : NO .* *. *PLACE WHOLE * : : .* DOING *. AC D * BREAK IF * : : .<-----*. WHOLE STMT .* BIT 10 NEEDED * : : : *. .* *BY CALLING ONS13 : : : *. .* * * : : : *. .* ***************** : : V * YES A : : ****** : : : : * * : : : : * ONS11* : : : : * * : : : YES, : ****** : : YES : ARRAY : V ONS22 .*. .*. : ***************** .* *. .* *. ***************** : * * .* *. NO .* *. NO *CALL ONSET * : *PREPARE TO * .* *. .* *. * TO MAYBE * : *SCAN DOWN *-------->*. FINISHED .*-------->*. SLIST. .*-------->* PLACE BREAK ON* : * WHOLE INPUT * *. STMT? .* *. LUUO? .* *DATA. LUUO * : * STMT * *. .* *. .* * * : ***************** *. .* *. .* ***************** : * * : : A : : : V V '<-------------------------------------------------------------' CHART 14 - SUBCHECK DECODE ROUTINE SUBCHK ***************** ***************** AC X *HOLD STOP FLAG * * * G & H*DEFAULT LIMITS * *PLACE OR REMOVE* * * .<---* BREAKS USING * *E= MANSYM * : * SCRIPT REF BYTES *F= GLOBAL * : * * ***************** : ***************** : : A : : : : : : : : : : : : V : : YES .*. : SUBCH2 .*. .*. .* *. : .* *. .* *. ***************** .* *. YES : .* *. NO .* WERE *. NO *TYPE * .* NO MORE *. V .* MORE *. .* WE *. * "SETUP" * *. TO READ .*-------->*. ARRAYS IN .*-------->*. REMOVING .*-------->* OR * *. .* *. SYMBOL .* *. BREAKS .* * "NO COMPUTED * *. .* *.TABLE.* *. .* * REFS" * AC V *. .* AC E *. .* *. .* ***************** =0 * NO * * YES : : A : : : : : : : : : : : : : : : : : : SUBCH0 V : V : ***************** : ***************** V *CALL SQZINS TO * : *IF THERE ARE NO* ****** * INPUT NAME * : * BREAKS AT ALL * * * *& IF SLASH FOLLOWS : *THEN ZERO *------------->*RETURN* * INPUT AGAIN & * : * TOPFF$ & * * * AC E *CALL IDENT2 * : * @ JOBREL * ****** ***************** : ***************** : : : : : : : : : : V : .*. SUBCH1 : .* *. ***************** YES .* *. NO *CALL BETWEEN * .* ERRORS *. * TO GET PROG * .<---*. IN INPUT .*-------->* CODE LIMITS * : *. .* *F= CODE BASE * : *. .* * * : *. .* ***************** V * **ERRORS*** * * * UNDEFINED * *OR SYNTAX * *********** CHART 15 - TOPGET ROUTINE TO OBTAIN DISPLACED INSTRUCTION WORD TOPGET .*. TOPUP .* *. ***************** .* FROM *. NO *IF TOPFF$ ZERO * .* LIST?; *. AC W *THEN =JOBREL * *. @JOBREL .*-------->*IF >JOBFF * *. NOT 0 .* *THEN RETURN * *. .* * * AC U *. .* ***************** * YES : : : : : : : : : : V V .*. ***************** .* *. *W= ADR OF WORD * .* *. NO ***ERROR******* *@JOBREL= * .* GET *. * * * CONTENTS OF WORD *. K OF CORE .*-------->*TOO LITTLE CORE* * * *. .* * * * * *. .* *************** ***************** *. .* : * OK : : : : : : : : : : : V V ***************** ****** * * * * AC U *UPDATE BROKE$ * *RETURN* * TO TOP OF CORE* * * * * ****** * * A ***************** : : : : : : : : : : : V : .*. ***************** .* *. ***************** *MOVE LAST * YES .* *. NO *MOVE A K BLOCK * * PARTIAL BLOCK * .* 1 K *. * UP TO TOP * *UPDATE TOPFF$ *<--------*. OR LESS TO .*-------->* * * * *. MOVE ? .* *DECREMENT U * * * *. .* * * ***************** *. .* ***************** * : A V '<------------------------' CHART 16 - TRACE BREAK SETUP .------------------------>. A NO V TRACE4 .*. NOT .*. .*. .* *. TRANSFER.* *. .* *. YES, DO .* (E) *. .* *. 'JUMP' .* -2(E) *. CONTINUE, ****** .* INSTR *. .* WHAT *. .* PRECEDING *. NO BREAK * * .->*. IS BREAK? .* .<---*. IS INSTR? .*-------->*. IS SKIPGE .*------------->* 16.2 *<--------------------. A *. .* : *. .* *. 0, .* * * A : *. .* : *. .* *. .* ****** : : *. .* : *. .* *. .* A : : * YES : * 'JRST' * NO : : : : : : : : : : : : : : : : : : : : : : NO, NOT : : : : : : : LOG IF, : : : : V : : MAKE BREAK : : V : AROUND .*. : .*. : : ***************** : FORMAT .* *. : .* *. ***************** : *IF NOT TRACE BREAK : OR .* *. STRAIT : .* *. YES IF JRST THEN BREAK : *AND BROKEN IS JRST : RETURN WHAT *. : .* ARE WE *. * CAM AND MAKE * : * BUT NOT RETURN* :<---*. KIND OF .*->. : *. IN STMT JUST.*-------->* JRST INTO JSP* : *THEN MAKE BREAK* V *. JRST .* : : *. BEFORE .* *ELSE BREAK JUMP* : * * : *. .* : : *.LABEL.* * AND FLAG LOG IF : ***************** : *. .* : : *. .* BIT 18**************** : : : * INDEX : : * A : : :<-----------' OR : : A : : : : DEFER, : : : : : : : MAKE : : : : : : : BREAK : : : : : V : : : : : : .*. : .*. : : : : : .* *. : .* *. : : ***************** : : YES .* *. : YES .* *. : : *SEE IF WEVE LOG IF : : .* ANOTHER *. V .* PRECEDING *. V : * BY STEPPING BACK : '<-*. INSTR? .*<----<---*. IS COMPARE .*<-' : * ONE STMT FROM* : A *. .* A *. 15, .* : * LABEL ADR * : : *. .* : *. .* : * * : : *. .* : *. .* : ***************** : : * NO : * NO : A : : : : : : : : : : : : : : : : : : : : : : : : : : : : GOES TO : : V : V V : LABEL : : .*. : .*. .*. .*. : : .* *. : NO, .* *. .* *. .* *. : : YES .* *. : MAKE .* *. YES .* GOES *. NO .* *. DOES NOT : : .* ANOTHER *. : BREAK* PRECEDING *. .* BACKWARD *. .* REACHES *. REACH : '<-*. PROG? .* :<---*. IS COMPARE .*-------->*. OR FOLLOWING.*-------->*. FOLLOWING .*---------------->' *. .* A *. .* *.IS JRST OR* *. LABEL? .* *. .* : *. .* *.JUMP?.* *. .* ****** *. .* : *. .* *. .* *. .* * * * NO : * * YES, * NO LABEL OR *RETURN*<----' : : MAKE BREAK : GOES PAST, ******* * * : V V MAKE BREAK * * ****** '<--------------------------------------<-------------------------<----------------------* 16.2 * * * ******* CHART 17 - OUTPUT POSITION ROUTINE ****** * * *TYPE ?*<----. NO .*. IDPC4 *RETURN* .*. IDLOC1 .* *. ***************** ****** .* *. ***************** ****** .* *. NO * * .* *. YES, *W= PROG NAME * * * .* PC *. *HOLD PC IN GLOBAL .* *.PROG *SYMBOL PTR IN * * IDLOC*-->*. IN LIBRARY? .*-------->*CALL INTERN *-------->*. FOUND? .*-------->*AC A= A+2 * * * *. .* * TO LOOKUP LOC * *. .* * SO CAN GET * ****** *. .* * * *. .* * STATAB OFFSET * AC T *. .* ***************** *. .* ***************** * YES A * YES, : : : : LABEL : : : : : : : : : : : : : V : : : IDPC1 .*. : V V IDLOC2 .* *. : ***************** ***************** ***************** .* *. YES, : *W= PROG NAME * *IF AC J NONZERO* *W= STATAB * .* CHAIN *. USE : * FOUND BY CYCLING *THEN CALL SQZDATA * BYTE PTR * *. OF JSA 16, .*---------------->: * BACK FROM SYMBOL------->* AND OUTPUT *-------->*V= CODE ADR * *. CALLS? .* LAST : * PTR RETURNED IN * PROG NAME * *B= 0 COUNT * *. .* ADR : * AC A * * * *G= NULL NAME * *. .* : ***************** ***************** ***************** * : : : NO : : : : : : : : : : : V : V IDPC3 .*. : IDLOC4 IDLOC3 .*. .* *. : ***************** ***************** .* *. .* VALID *. NO : *IF MINUS COUNT * *GLOBAL= PLUS * YES .* STEP *. .* RETURN ADR*. : * GREATER THAN PLUS * COUNT IN AC B * .* & COUNT *. *. ON BOTTOM OF.*---------------->: *THEN SET FLAG IN B<------*B= *<--------*. THRU STMTS; .* *. STACK? .* : *ELSE B=(GLOBAL)* * COUNT UP TO * *. A LABEL .* *. .* : * PLUS COUNT * * LABEL ABOVE * *.ABOVE?* *. .* : ***************** ***************** AC V *. .* * YES, : : >GLOBAL * NO V USE IT : : : '------------------------>' : : : : : : : : IDLOC5 V : ***************** ***************** : ****** * * * * : * * *MAYBE TELL * *IF HAVE LABEL * V *RETURN*<------------* OFFSET THATS *<--------* THEN CALL SQZDATA<----------------------------------------' * * * IN AC B * *OUTPUT AC G * ****** * * * * ***************** ***************** CHART 18 - REENTER HANDLE ****** NO, * * IN MIDDLE *REESTOP<----. OF SOMETHING REETRY * +1 * .*. ***************** ***************** ****** .* *. ****** *PRESERVE AC U * *SAVE ACS T & U * ********** .* *. ****** * * *U= OLD PC * * IN ACSAVE * * * .* DRAIN *. * * * .REE *-->*IF IN OPSYS * .--->*SAVE PC IN F4PC* * MAYREE *---------->*. AND ONA .* *PROMPT* * CMD * *THEN = @UUOPC * A *LAST OPSYS RETR* * IN TINUE * *. = 0 ? .* * * ****** * * : * PC INTO AC U * ********** *. .* ****** ***************** : ***************** *. .* A : : : * YES : : : : : : : : : : : : : : : : : : : : : V : V : : .*. : .*. REEYES REETELL V : .* *. : .* *. ***************** ***************** ***************** .* *. NO : .* *. YES * * *SET USE CHANNEL* *CALL TRESET * .* IS PC *. : .* OPSYS *. *SAVE ALL ACS * * TO TTY * * TO REMOVE * *. ANYWHERE IN .*--->' *. RETURN PC .*-------->* *-------->*GIVE INTERRUPTED-------->* POSSIBLE * *. DEBUGGER.* *. ZERO? .* *PUT NO-OP IN * * MESSAGE * * RETRY EFFECTS * *. .* *. .* * INSTR * * * * * *. .* *. .* ***************** ***************** ***************** * YES * NO A : : : : : : : : : : : : : V : V REEOPL .*. : ***************** .* *. : ***************** *CHANGE REESTOP * .* IS *. YES : *SAVE PC IN * * TO 'JRST MAYREE' .* -1(U) *. : * F4PC * *EVEN THO PC * .->*. A FIN. OR .*--->. :<------------------------------------------*RESTORE INSTR * * MAY BE PAST * A *. JSP 1, .* : : * FROM GLOBAL * * REESTOP * : *. .* : : * * ***************** : *. .* : : ***************** : : * NO : : A : : : : : : : : : : : : : : : : : : : : : : : : : : V : : YES : : A .*. : REEFIN .*. : V : .* *. : .* *. ***************** : ********* : NO .* *. : .* IS *. NO *PLACE TEMPORARY* ******** * * : .* MTOP., *. V .* UUOPC AT *. * JSP U, TRAP * * * * JRSTF * '<-*. INF., OR .*-------->*. END OF I/O .*-------->*GLOBAL= INSTR *------------>* REEJSP * * @JOBOPC * STEP *. OUTF. .* END OF *. STMT? .* *RESTORE ACS * * * ********* FORWARD*. .* I/O STMT *. .* *CONTINUE I/O STMT ******** *. .* FOUND *. .* ***************** * * CHART 19 - I/O ERROR HANDLE FROM OPSYS ERROR ***************** ****** *GET OPSYS PC * AC A ************** ****** * * * FROM UUOPC * * * * * *ERRXIT*-->*MOVE ACS FROM OPSYS * FROM APRERR * *PROMPT* * * *UNLESS PC IN DEBUGGER * OR ENDXIT * * * ****** *NOTE TTY IN FLAGS AC ************** ****** ***************** BIT 3 : A : : : : : : : : : : : : : : : : : : NO V ERRXMS V .*. ***************** ***************** ***************** .* *. *SAVE OPSYS AC 16 *HOLD PTRS & CNTS * * .* ON *. *IF INSTR OUTOFLINE *STEP A BACK TO * *TELL USER OF ERROR .* OR *. *THEN A= F4PC * * BEG OF STMT *-------->* *-------->*. SUBCHECK .* *SAVE A IN F4PC * *BAD FORMAT * *TELL USER IF CAN *. HAPPENED.* *REMOVE RETRY EFFECTS * IS IN-LINE? * ZERO * RETRY * *. .* *CLEAR LOC INSTR* ***************** BITS ***************** DRAIN *. .* : A A NOT 0 * YES : : : : : : : : : : : : : : : : V : : : .*. : : V .* *. ***************** : $SUB9 YES .* *. *HOLD BYTE PTR TO : ****** .* ERROR *. * BAD CHAR * : * * .<-----*.FROM DEBUGGER.* *TERMINATE INPUT STMT : * 22.2 * : *. .* * IF NOT FROM TTY : * * : *. .* *RECORD SPANNED?* SET : ****** : *. .* ***************** BIT 2 : V * NO A : ****** : : : * * : : : *PROMPT* : : : * * : : : ****** : : YES : V .*. : ***************** .* *. : *REMOVE ANY * .* *. NO : * SUBCHECK TRAP * .* BAD *. : * ON FIN. LUUO *-------->*. CHAR ON .*---------------->' *REMOVE ANY * *. INPUT? .* * REENTER TRAP * *. .* ***************** AC M *. .* BIT 0 * CHART 20 - ONCALL BREAK HANDLE $CALL ***************** ***************** ***************** EXERCISE ****** * * *IF THERE ARE VARIABLE *RH(F)= 0 * ****** * * *FLAG GLOBAL -1 * * DIMENSION MULTIPLIER * FOR ROLL ID * * * *UUO *-->*POP PC INTO * * CALCULATIONS *-------->*G= 1 FOR LENGTH*------------->* 30 * *HANDLER * AC U * *THEN DO THEM NOW * OF NODE HEAD * * * ****** * * * * * * ****** ***************** ***************** ***************** : A : : : : : : : : V : NO .*. .*. .* *. .* *. YES .* *. .* *. YES .* RETURN?; *. .* REESTOP>0 *. .<---*. INDEX FIELD .* *. & INACTIVE .*---------------->. : *. NOT 0 .* *. .* : : *. .* *. .* : : *. .* *. .* : V * NO * : ******** : A : * * : : : * HANDLE * : : : *WITH JRA* : : : ******** : : : V : : ***************** ***************** : *SAVE ACS WITH * * * : *RETURN ADR LH(J) *ZERO GLOBAL * : *SETUP JUMP START * * : * AND F4PC * *TELL USER ABOUT* : *UPDATE CURRENT * * CALL * : *& NOTE CALLING PROG ***************** : IN JSA:LOCATION A : : : : : : : : : : : : : : : NO : $CALL1 V .*. : ***************** .* *. V AC Y *FIND NODE * .* *. YES ********* AC X * & NODE LENGTH * .* REESTOP<0 *. * * AC F * & HEAD OF NODE*-------->*. & TROUT>=0 .*----------->* CONTINUE* *RECORD CALL IN * *.& INACTIVE* *EXECUTION* * HISTORY * *. .* ********* ***************** NODE *. .* BIT 1 * CHART 21 - AT AND BEFORE RETURN BREAK HANDLE $AT AT LUUO ***************** ****** * * * * *SAVE PC * *UUO *-->* IN F4PC * *HANDLER * * ****** * * ***************** : : : : : : V $AT4 ATSUB ***************** ***************** ***************** EXERCISE ****** * * * * *RH(F)= 2 * ****** * * *SAVE ACS * * * * FOR ROLL ID * * * * 21.1 *-->*HOLD LUUO * AC F *TELL ABOUT BREAK-------->*G=2 FOR LENGTH *------------->* 30 * * * * * AC F *HOLD STOP FLAG * * OF NODE HEAD * * * ****** * * BIT 0* * * * ****** ***************** ***************** ***************** : A A : : : : : : : : : : : : : : NO : $AT0 V .*. : ATSUB ***************** .* *. : ****** *FIND NODE * AC Y .* TOLD *. YES : * * * & NODE LENGTH * AC X .* POSITION *. : * 21.2 *-->*HOLD BREAK ADR * AC A *. SINCE BAD .*---------------->' * * *HOLD THE BROKEN INSTR *.SUBSCRIPT.* ****** *IF JSA SETUP TO* *. .* * DO LATER******* *. .* : * : A : : : : : : V : .*. : NOT .* *. ***************** ZERO .* *. ZERO * * .* DECREMENT *. *RESET COUNT * .<---*. COUNT IN .*-------->* FROM LEFT HALF* : *. 1(Y) .* * OF 1(Y) * : *. .* * * : *. .* ***************** V * NONZERO BUT F FLAGGED ********* : ******* * * V * * * CONTINUE* '------>* PROMPT* *EXECUTION* * * ********* ******* CHART 22 - SUBCHECK BREAK HANDLE $SUB $SUB2 ***************** ***************** $SUB6 ****** *SETUP F4PC * * * ****** ************ ****** * * *& BROKEN IN SUBINS *PLACE TRAP ON * * * * * * * *UUO *-->*& SYMBOL PTR IN SUBSYM * FIN. & NOTE *------------->* DO * * JSP U, * * 22.2 * *HANDLER *& ELEMENT ADR IN AC T * SYMBOL IN * *I/O * *TRAP ON FIN.* * * ****** * * * WORKSPACE * ****** ************ ****** ***************** ***************** : : : A : : : : : : : : : : : : : : : : : : V : YES : : .*. $SUB1 .*. V V .* *. .* *. ***************** ***************** .* *. YES .* *. *RESTORE FIN. * DRAIN* * .* ADR *. .* DATA. *. *REMOVE ANY * *REPORT ANY * *.OUT OF BOUNDS.*-------->*. I/O ? .* * REENTER TRAP *-------->* BAD SUBSCRIPTS* *. .* *. .* *SAVE ACS & PC * * * *. .* *. .* *REMOVE RETRY EFFECTS * * *. .* *. .* ***************** ***************** * NO * NO : : : : : : : : : : : : : V V : .*. .*. V .* *. .* *. $ON7 YES .* *. .* TELL *. YES ****** .* ATSUB. *. .* ABOUT BAD *. * * .<-----*. .* *. ADR, .*--->. * 23.2 * : *. .* *. ATSUB.? .* : * * : *. .* *. .* : ****** : *. .* *. .* : V * NO * NO V ****** : : ******* * * : : * * * 21.1 * : : * 21.2 * * * : : * * ****** : : ******* : : V V ********* ****** * * * * * CONTINUE* *PROMPT* *EXECUTION* * * ********* ****** CHART 23 - ON BREAK HANDLE $ON ***************** $OUT60 $ON7 ****** *SETUP F4PC * ****** ****** * * *GET ON ID * RH(T) * * * * *UUO *-->*GET NEXT ON FROM * 31.2 * * 23.2 * *HANDLER * CHAIN OF BREAKS * * * * ****** *OR 'SETZM ONA' * ****** ****** ***************** INSTR A : : : : : : : : : : : : : : : : : : : V .*. $ON6 : V ***************** .* *. ***************** ***************** * * NO .* *. YES *TELL ABOUT BREAK *SCAN NODES AND * AC Y *FIND NODE * .* RELATION *. *SETUP Y,X,F * *TELL ABOUT FLAGGED AC J *GET SYMBOL VALUE .<---*. TRUE? .*--->. * & (P) * * ONES * * * : *. .* : *FOR EXERCISE * *BY CALLING $OUT60 * * : *. .* : * LOOP * *CLEAR FLAGS TOO* ***************** : *. .* : ***************** ***************** : V * : A : : ********* A : : : : * * : : : : : * CONTINUE* : : : : : *EXECUTION* : : : : V ********* : YES : : NO : .*. A .*. : $ON4 .*. : .* *. : .* *. : .* *. V .* HAS *. YES :NO .* *. : .* *. ****** .* DEPOSIT *. : .* ELEMENT *. V .* BREAK *. * * *. BEEN DONE? .*->. '<*. ADRS MATCH .* '--->*. ON INPUT? .* *PROMPT* *. .* : *. IF MUST?.* *. .* * * *. .* : *. .* *. .* ****** ONA *. .* : *. .* *. .* NOT 0 * NO : * * YES : : A : : : : : : : : : : : : : : : : NO : V : $ON1 .*. V ***************** : .* *. ***************** *EXECUTE DEPOSIT* : .* *. YES *PLACE TRAP ON * *SET ONA TO ADR * V .* WHOLE *. * FIN. LUUO * * AND MAYBE *-------->*. INPUT STMT? .*-------->*& FLAG NODE * BIT 0* INPUT FLAG * *. .* * SECOND WORD * * * *. .* *FLAG LH(DRAIN) * ***************** AC T *. .* ***************** BIT 10 * : ********* : * * V * CONTINUE*<------' *EXECUTION* ********* CHART 24 - DECODE OF GO COMMAND .*. .*. .* *. .* *. ***************** ****** .* *. NO .* CANT *. NO *ZERO REREAD, * ********* * * .* AN *. .* CONTINUE *. * DRAIN * * * * GO *-->*. ARGUMENT? .*---------------->.---------------->*. OR ATTACHED .*-------->*SET REESTOP *----------->* CONTINUE* * * *. .* A *. CMD? .* * TO 'TRN' * *EXECUTION* ****** *. .* : *. .* * * ********* AC V *. .* : *. .* ***************** NOT 0 * YES : * YES : : : : : : : : : : : : V : : .*. : : .* *. ***************** V NO .* CALL *. *RECORD GO IN HISTORY *ERROR** .* ATLOC, *. * OVER PREVIOUS * * * .<---*. END OF .* * IF DRAIN=-1 * * CANT GO* : *. LINE .* *SETUP 'JRST' * * * : *. .* *ZERO ONA * ******** : *. .* ***************** V * YES A **ERROR**** : : * * : : *NOTHING MAY* : : *FOLLOW GO * : : *********** V : YES .*. .*. .* *. .* *. .* *. NO .* HAS *. .* *. .* PROGRAM *. *. ATTACHED .*-------->*. BEEN CALLED .* *. .* *. YET? .* *. .* *. .* *. .* *. .* * YES * NO : : : : : : : : : : V : ***************** V * * ***ERROR**** BIT 1* FLAG AC A * * * *SAVE IN WORKSPACE *PROG HAS NOT* * * *BEEN CALLED * * * ************ ***************** : ****** : * * V *INSERT*<-------' * * ****** CHART 25 - ASSIGNMENT DECODE .*. STORE$ .* *. ***************** ****** .* CALL *. NO ERROR* *IF DOUBLEWORD * * * .* IDENTL, *. * * * SET FLAG * BIT 4 *STORE *-->*. CHAR IS .*------------->* NOT A* .--->*HOLD E IN WSP * * * *. = .* * CMD * A *INCREMENT PTR * AC Y ****** *. .* ****** : *PUT CHAR IN AC V AC T *. .* : ***************** * YES : : : : : : : : : : : : : : V : : .*. STORE2 .*. : : SECTION .* *. .* *. : : .* *. ELEMENT .* CALL *. YES : : .* WHAT *. .* INPUT, *. : : .<---*. HAVE WE GOT .*---------------->.---------------->*. ATTACHED .*--->' : : *. .* A *. CMD? .* : : *. .* : *. .* : : *. .* : *. .* : V * ATTACHED : * NO : ******* : : : : * * : : : : *CHANGE * : : : : *SECTION* : : : : ******* V : : : .*. STORE1 : : V .* *. ***************** V SEMIV .* *. NO *PUT SYMBOL PTR * ****** ****** .* *. * OPPOSITE ADR IN * * * * *. ARGUMENT? .*-------->* AC E * *PROMPT* * 2.2.2* *. .* *SET A TO INPUT * * * * * *. .* * INTO WORKSPACE* ****** ****** AC A *. .* ***************** BIT 18 * YES A : : : : : : : : V : .*. : NOT .* *. : FOUND .* CALL *. FOUND : .* INTERN *. : .<---*. FOR NAME .*---------------->' : *. .* : *. .* : *. .* V * **ERROR** * * *ARG NEVER* * USED * ********* CHART 26 - OUTPUT DECODE ***************** ****** * * * * *SWITCH USE CHAN* * TYPE *-->* TO TTY * * * * * ****** * * ***************** : : : : : : V ***************** ****** *CALL LOCATE * * * *HOLD SYMBOL PTR* LH(A) *OUTPT *-->*GET TYPE AND * AC B * * * TEXT FLAG * BIT 1 ****** *HOLD CHAR * AC V A ***************** : : : : : : : : : : : V : .*. : .* *. : .* *. YES ******* : .* *. * * : *. SECTION? .*------------>*OUTPUT * : *. .* *SECTION* : *. .* ******* : AC F *. .* : <0 * NO : : : : : : : : : V : .*. .*. : .* *. .* *. ***************** : YES, .* PUT *. NO .* *. NO *BUILD * ****** : .* A IN *. .* *. * DATA. (A) * * * '<------*. WORKSPACE, .*-------->*. ATTACHED .*-------->*LUUOS AND *------------->*PROMPT* STEP *. HAVE .* *. CMD? .* * EXECUTE OUTPUTS * * AC Y *.COMMA?* *. .* * * ****** & GET *. .* *. .* ***************** NEXT CHAR * SEMIY * YES ******* : * * V * 2.2.0 *<-------' * * ******* CHART 27 - KILLER ROUTINES .*. .* *. KILLON ****** .* *. YES ****** ****** * * .* *. * * * * *KILLER*-->*. ON ROLL? .*------------->* 28 * *KNODE * * * *. .* * * * * ****** *. .* ****** ****** AC D *. .* : -1=0 * NO : : : : : : : : : : : V V ***************** ***************** AC C *HOLD ROLL PTR * *SUB LENGTH FROM* AC V AC B *FIND NODE * * ADR OF ROLL TOP AC C * THAT MATCHES A* .--->*ADD ADR OF NODE* AC V *& ITS LENGTH * A * TO LENGTH FOR * * * : * ADR OF NODE TOP AC V ***************** : ***************** : : : : : : : : : : : : : : : V : : .*. : V .* *. ***************** : ***************** .* *. NO * * : *BLT TOP OF ROLL* .* *. *CALL KATS * : * DOWN UNLESS * *. ONCALL? .*-------->* TO REMOVE *--->' *NODE AND ROLL TOP *. .* * AT BREAK * A * ARE EQUAL * *. .* * * : *DEPOSIT ROLL PTR *. .* ***************** : * INTO ON(D)**** * YES : : : : : : : : : : : : : : : : : V : : ***************** : V *SET LH OF 1ST * : ****** * WORD TO 1 * : * * *TO INACTIVATE NODE -------------------------->' *RETURN* *INCREMENT A * * * *& DECR V * ****** ***************** CHART 28 - KILL ON ROUTINE ***************** ****** *HOLD ROLL PTR * AC C * * *FIND NODE THAT * AC B *KILLON*-->* MATCHS E,G&H * * *A *HOLD ITS LENGTH* AC V ****** : * * : ***************** : : : : : : : : : : : V : .*. : .* *. END OF : NO .* *. ROLL ****** : .* *. * * :<-*. NODE FOUND? .*------------->*RETURN* A *. .* * * : *. .* ****** ****** *. .* * * * YES * 28.2 * : * * : ****** : : : V NO, T= .*. ***************** ADR OF .* *. ***************** * * BROKEN.* *. YES * * *BUILD BREAK * INSTR* IS IT *. *REMOVE * * INSTR WITH * .<---*. OUR BREAK? .*-------->* ON BREAK * * THIS ID CODE * : *. .* * * * * : *. .* * * ***************** : *. .* ***************** : : * : : : A : : : : : : : : : : : : : : : : YES V V : .*. .*. ***************** : .* *. .* *. ***************** *MAKE AOBJN * : .* *. NO .* *. NO * * AC A * PTR TO CODE * V .* @T *. .* ANOTHER *. *CALL KNODE * *T=ADR OF *-------->*. IS BREAK? .*-------->*. INSTR? .*-------->* TO DELETE * * LOC INSTR * *. .* *. .* * NODE * * * *. .* *. .* * * ***************** *. .* *. .* ***************** * * YES : A V ****** : '<------------------------' * * V * 28.2 *<-------' * * ****** CHART 29 - GENERAL KILL .*. .* *. ****** .* *. YES ***ERROR****** * * .* *. * * *CLEAR *-->*. ATTACHED .*--------->*GENERAL KILL * * * *. CMD? .* *MUST BE DIRECT* ****** *. .* ************** *. .* * NO : : : : : V ***************** * * *CYCLE THRU * * AT ROLL * * REMOVING * * BREAKS * ***************** : : : : : .<------------------------. : V A V .*. : ***************** ***************** .* *. ***************** *CALL KILLON * * * .* *. YES * * * WITH ZERO E * *A= BOTTOM OF * .* ANOTHER *. *INACTIVATE NODE* *TO REMOVE ALL *-------->* ONCALL ROLL *-------->*. ONCALL .*-------->* AND DEPOSIT * * ON NODES * * * *. NODE? .* *WORD AT (A) * * * * * *. .* * * ***************** ***************** *. .* ***************** * NO : : : : : V ***************** * * ****** *RESET ALL * * * * ROLL PTRS *------------->*RETURN* * * * * * * ****** ***************** CHART 30 - EXERCISE ATTACHMENTS ********* * * * EXERCISE* * * ********* : : : : : : : V ***************** POFFO *GET END OF NODE* AC X ****** *HOLD START ON * * * * STACK * (P) * 2.1.0* *ADR OF FIRST * * * * ATTACHMENT * AC Y ****** ***************** A : : : : : : : : : : V : YES .*. .*. CMD DONE .* *. .* *. ****** .* *. NO .* USER *. NO ********* * * .* ANOTHER *. .* TYPED *. * * *EXER1 *-->*. ATTACHMENT? .*-------->*. LINE OR STOP.*----------->* CONTINUE* * * *. .* *. FLAG? .* *EXECUTION* ****** *. .* *. .* ********* *. .* *. .* * YES * : A: : : : : : : : : V : ***************** : *GET 1ST WORD * (Y) ****** *DISPATCH TO * * * * $OUT, $GO, * *EXER2 * * $KILL, OR * * * * $STORE * ****** ***************** CHART 31 - EXERCISE OUTPUT .*. $OUT4 .* *. ***************** ***************** ***************** ****** .* *. YES * * *SETUP TYPE & * *OUTPUT VALUE * ****** * * .* *. *START OUTPUT * * ADR FROM * *UNLESS ADR * * * * $OUT *-->*. ARGUMENT? .*-------->* WITH ARG # *-------->* CALLING PROG *-------->* IS ZERO *------------->*RETURN* * * *. .* * * * * *TERMINATE * * * ****** *. .* * * * * * RECORD * ****** *. .* ***************** ***************** ***************** * NO A : : : : : : : : : : $OUT1 V : ***************** : AC B *GET TYPE & * : AC C * SYMBOL PTR * : AC D *& SCRIPT INDEX * : *IF DUMMY ARRAY * : AC A * ADD TO GET ADR* : *SET RETURN TO EXER1 : : : : : : : : : : : : : V : ***************** ***************** ***************** ***************** ****** *IF VARIABLE- * *BUILD PARENS * * * *OUTPUT VARIABLE* * * * DIMENSIONED * * & SUBSCRIPT * *ADD FORMAT CODE* * NAME * *$OUT60*-->* DUMMY ARRAY * * FORMAT CODES *-------->* FOR NUMBER *-------->*IF ARRAY * * * *THEN SET AC D * *& EQUAL SIGN * * OR TEXT * *THEN COMPUTE & * ****** * & FLAG J BIT 0* * * * * * OUTPUT SUBSCRIPTS ***************** ***************** ***************** ***************** : A A : : : : : : : : : : : : : : YES : V .*. $OUT2 : ***************** .* *. ***************** *SETUP PTR TO * .* *. NO * * AC W * WORKSPACE * .* *. *PUT EQUAL * *FOR FORMAT BUILD-------->*. ARRAY? .*-------->* SIGN IN * *START WITH FORMAT *. .* * FORMAT * * CODE FOR NAME * *. .* * * ***************** *. .* ***************** * CHART 33 - TABLE INITIALIZATION ****** * * * CMD *<----. NO ENTERED FROM JOBREN DSUB2 RFSTAL *CYCLE * .*. ***************** ***************** ***************** ****** .* *. * BUILD * *BUILD SCRIPT * *SETUP POINTERS * .* *. * MANSYM * * ENTRIES FOR * * FROM LABEL-SYMS .* ANOTHER *. * TABLE * * NON-DUMMY *-------->*INTO STATAB *-------->*. PROG? .* * * * ARRAYS FROM * * * *. .* * (CHART 34) * *LINKED-LISTS * * * *. .* ***************** ***************** ***************** *. .* : A * YES : : : : : : : .------------------------>: : : A : PROGRAM : : : YES : NAME : RDSUB V .*. .*. : ***************** .* *. .* *. : * PREPARE TO * .* *. NO .* *. : * PROCESS * .* END *. .* *. : * ADDITIONAL * *. OF INFO? .*-------->*. ARRAY NAME? .* : * INFORMATION * *. .* *. .* : * * *. .* *. .* : ***************** *. .* *. .* : : * * YES : : A : : : : : : : : : : : : : : V : NO V : RSUB2 .*. .*. DSUB1 .*. DSUB6 : .* *. .* *. .* *. ***************** : .* GET *. NO .* *. .* *. YES *BUILD COMPLETE * : .* WORD *. .* *. .* DUMMY *. * SCRIPT ENTRY * : .--->*.STMT LENGTHS?.*-------->*. ARRAY REF .* *. ARRAY? .*-------->*WITH SCAN OF * : A *. .* *. NAME? .* *. .* * PROG FOR REFS * : : *. .* *. .* *. .* * (CHART 36) * : : *. .* *. .* *. .* ***************** : : * YES * YES * NO : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : RFSCHK V RSUB3 V V : DSUB5B V : ***************** ***************** ***************** : ***************** : * PUT STMT LENS * *DETERMINE OBJECT *BUILD HEAD OF * : * * : * BYTES WORD * * REF ADR (CHART 35) * REF LIST WITH * : *PREPARE FOR * :<---* IN STATAB * *PUT ON LINKED LIST * BOUNDS AND * : * NEXT * : * * * FOR NAMED ARRAY *PUT ON * : * PROGRAM * : * (CHART 37) * * * * ARRAY LIST * : * * : ***************** ***************** ***************** : ***************** : : : : : : V V V V '<-------------------------------------'<------------------------'<--------------------------------------------------' CHART 34 - BUILD MANSYM TABLE ENTERED FROM JOBREN SET3 ***************** ***************** ***************** *A= WHERE TO * *PUT PROG * *MOVE * * BUILD TABLE * * SYM AT A * * PROGRAMMER- * *B= SCAN FROM * *RESERVE WORDS *---------------------------------->* LABEL-SYMBOLS * * TOP OF OLD TABLE * FOR HEADER * *FROM B TO A * *C= BOTTOM * AC D *SET BLOCK PTR * * B=B-6 * ***************** ***************** ***************** : A : : : : : : : : : : : : YES, : : : F4 PROG V V SET2 .*. SET5 .*. ***************** .* *. .* *. ***************** *CLEAR PTR TO * .* -2 *. NO YES .* (B) *. *BUILD ONCALL * AC D *SYMBOL-BLOCK * .* OR-4(B) *. .* SYMBOL *. * NODE AND * * HEADER * *. IS '1M' .*--->. .<-*. IS '%TEMP.' .*<--------*PLACE PRO & * *G= WHERE TO PUT* *. SYMBOL .* : : *. .* * EPILOGUE * * ONCALL NODES * *. .* : : *. .* * BREAKS * ***************** *. .* : : *. .* ***************** : * : : * NO A : A : : : : : : : : : : : : : : : : : : : : : : V : NO : : V : SET0 .*. .*. : : .*. : .* *. .* *. : : .* *. ***************** .* *. NO .* *. : : .* B=B-2 *. NO *PROLOGUE AND * .* B=B-2 *. .* LOCAL *. : : .* SYMBOL *. * EPILOGUE DEFS * .->*. INTERNAL .*-------->*. SYMBOL .* : : *. IS 'CONST.' .*-------->*AT 5(B) & 3(B) * A *. SYMBOL .* *. .* : : *. .* AC D * INTO HEADER * : *. .* *. .* : : *. .* * * : *. .* *. .* : : *. .* ***************** : * YES * YES : : * YES, PUT [1(B)] : : : : : : TEMP DEFINITION : : RDSUB : : : : IN HEADER : : ****** : : : : : : * * : : : : : V * BUILD* : : : : : .*. *SCRIPT* V : : SET8 V : .* *. ****** ***************** : : ***************** : YES .* *. NO *PUT SYMBOL * : : *IF -2(B) * : .* MORE *. : * PAIR IN TABLE * : V * SYMBOL * '<-*. SYMBOLS .*>' AC D *IF WE ARE * : '->*IS 'TEMP.' * *. .* NOT 0* PROCESSING * : *THEN B=B-2 * *. .* * F4 PROG * : * * *. .* ***************** : ***************** * : : : A V V V '<------------------------'<--------------------------------------------------' CHART 35 - DETERMINE OBJECT REF ADR RSUB3 .*. YES, .* *. IGNORE .* DOUBLE*. WORD ****** .* REF WAS *. * * *.SEEN? RFDBL=.*------------->* RSUB2* *. RFDBL+1 .* * * *. LE 0.* ****** *. .* A * NO : : : : : : : : : : : RSUB4 V : ***************** : *LOOK FOR NEXT * : * INDEXED INSTR * : .->* IN PROG * : A * * : : * * : : ***************** : : : : : : : : : : : : : : : : : V : : .*. RSUB4R : : .* *. ***************** : YES .* *. *LINK REF ADR * : .* *. * ONTO LIST * '<-*. DUMMY .* *FOR NAMED *<----------------. *. REF? .* * ARRAY * A *. .* * * : *. .* ***************** : * NO A : : : : : : : : : : : : : : : NO : RSUB4L V .*. YES, : ***************** .* *. DOUBLE ***************** * * .* NEXT *. REF *RFDBL=-1 * *LOOKUP * .* INSTR HAS *. *IF NEXT INSTR * * ARRAY NAME *-------->*.SAME ADR FIELD*-------->* IS CAMLE OR CAMGE * IN SYMBOL * *. +1 ? .* *THEN RFDBL=-2 * * TABLE * *. .* * * ***************** *. .* ***************** * CHART 36 - BUILD SCRIPT ENTRY FOR DUMMY ARRAY DSUB6 DSUB7A ***************** ***************** AC W *LOOKUP NAME * * * *PUT OFFSET PTR * *LOOK FOR INSTR * * TO SCRIPT * .--->* WITH C * *& DMYFLG IN * A * ADR FIELD * AC C *LH(VALUE) * : * * ***************** : ***************** : : : : : : : : : : : : : : : : : V V : .*. ***************** : .* *. *MOVE BOUNDS * : YES .* *. * PAIRS TO SCRIPT : .* ARG *. AC A *COMPUTING SIZE * :<---*. INSTR .* *UNLESS VARIABLE, : *. .* * ZERO ARRFLG * : *. .* ***************** : *. .* : : * NO : : : : : : : : : : : : : : : DSUB7 V : V ***************** : ***************** ***************** ***************** ***************** *IF SIZE OF * : *IF VARIABLE SIZE *IF INSTR IS * AC V *PRESERVE REF ADR *IF NO FLAG CLEAR AC A * ARRAY IS ONE * : *THEN USE MULTIPLIER * 'MOVE' NOT * *LOOK FOR INSTR * *THEN PUT REF * *THEN * : *ADR AT 2(V) TO FIND *FOLLOWED BY *-------->* THAT USES THE A-------->* BYTE IN SCRIPT* AC F * SET FLAG * : * ADJ. CALL * * 'ADD' THEN * * AS AN INDEX AC* * * BIT 1* * : * AND SET AC A * AC F * SET NO FLAG * * * *RESTORE REF ADR* ***************** : ***************** BIT 14**************** ***************** ***************** : : : A A : : : : : : ******* : : : : : : * * : : : : : : * RSUB2 * : : : : : : * * : : : : : NO : ******* V V : DSUB8 V .*. : A .*. ***************** : ***************** .* *. ***************** : .* *. *DOUBLE SIZE * : * * .* *. YES *IF -1(V) IS NOT* : NO .* *. * IF DOUBLEWORD * : *STORE SIZE IN * .* VARIABLE *. * 'IMUL' OR IF * : .* ANOTHER *. * TYPE *--->' * SCRIPT ENTRY *-------->*. SIZE .*-------->* -2(V) IS 'MOVEI' '<---*. INSTR WITH .* AC V *GET PROG ADR * * * *. .* AC F * FOR ALL DIMENS* *. C ADR .* * * * * *. .* BIT 14 *THEN SET NO FLAG *. .* ***************** ***************** *. .* ***************** *. .* * * YES A V '<--------------------------------------------------' CHART 37 - PROCESSING OF STMT-LENGTHS-BYTES WORD .<------------------------. V A NO RFSCHK RFSK7 .*. .*. ***************** .* *. .* *. ***************** * * .* *. YES .* *. YES *MOVE WORD * * WE WANT TO * .* MORE *. .* FINISHED *. * OF BYTES * * RETURN TO * .--->*. SPECIAL CODE.*-------->*. WITH PRIOR .*-------->* DOWN *---------------->. * RSUB2 * A *. .* *. WORD .* *CLEAR SPECIAL * : * * : *. .* *. .* * FLAG * : ***************** : *. .* *. .* ***************** : : : * NO * : : : V : : : '---------------------------------------------------------------------------->: : : : : : .-------------------------------------------------->. : : : A NO : : RFSCHA V : .*. RFSK5 RFSK6P V : ***************** : .* *. ***************** ***************** V *INCREMENT * : .* *. YES *CLEAR SPECIAL * * * ****** AC V * STATAB * : .* CALL *. *SET FIRST * *SET BYTE PTR * * * *AND STORE * : *. TO ADJ. .*-------->*RESERVE WORD *-------->* TO 2ND BYTE *------------->*RETURN* AC W * BYTES WORD * : *. .* * IN STATAB * * * * * * * : *. .* * FOR ADR WORD * RFSKP* * ****** ***************** : *. .* ***************** ***************** A : : * A A : : : A : ****** : : : : : : * * : : : : : : *RFSK6P*------->' : : : : : * * A : V : : YES : YES ****** : YES : .*. : .*. RFSK2 .*. .*. RFSK3 : WAS .* *. : .* *. .* *. .* *. ***************** SET .* *. : .* *. NO .* *. NO .* *. NO *PUT 1 IN 1ST * .* TEST & *. : .* ANY *. .* JRST *. .* JRST *. * BYTE * .<-----*. SET .* : *. ARGS .*>. *. AROUND STMT .*-------->*. AROUND .*-------->*SET BYTE PTR * : *. SPECIAL .* : *. .* : *. FUNCTION.* *. FORMAT .* * TO 1ST BYTE * : *.CHECK.* : *. .* V *. .* *. .* RFSKP* * : AC F *. .* : *. .* ****** *. .* *. .* ***************** V BIT 16 * WAS : * * * * * A ****** : CLEAR : A *RFSK3 * A ****** : * * : : : * * : * * : *RETURN* : : : ****** : *RFSK3 *------->' * * : : : : * * A ****** V : : YES : YES ****** : YES .*. : .*. .*. .*. .* *. NO, : .* *. .* *. .* *. .* *. SET : .* FIRST *. NO .* *. ****** NO .* *. .* FIRST *. : .* INSTR *. .* *. * * .* ONE-INSTR *. *. SPECIAL .*--->' *. 'JSA' .*-------->*. 'JRST' .* *RFSK6P*<------------*. F4 STMT .* *. CHECK .* *. .* *. .* * * *. .* *. .* *. .* *. .* ****** *. .* AC F *. .* *. .* *. .* *. .* BIT 15 * YES, * * NO * V CLEAR A V A '------------------------>' '-------------------------------------------------->'