Trailing-Edge
-
PDP-10 Archives
-
decuslib10-03
-
43,50312/charts.doc
There are no other files named charts.doc in the archive.
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
'------------------------>' '-------------------------------------------------->'