|
DataMuseum.dkPresents historical artifacts from the history of: RegneCentralen GIER Computer |
This is an automatic "excavation" of a thematic subset of
See our Wiki for more about RegneCentralen GIER Computer Excavated with: AutoArchaeologist - Free & Open Source Software. |
top - download
Length: 49717 (0xc235) Description: Bits:30000732 GIER ALGOL III PASS 3 Types: 8-hole paper tape Notes: Gier Text, Has10
[5.1.66] [Pass 3, page 1]b k=e15+e70, i=205e13, a30, b3, c70, d50 ; _d e17=i ; _d d4=1022 [max stack] ; _[Input byte values]d d13=229[∧], d17=151[;], d18=165[(] ; _ |d d7=221 [trouble] ; _[Output byte values]d d50=200 [output base], d5=28[beg func] ; _d d9=8d50[end else exp], d10=2d50[proc,], d11=6[literal] ; _d d12=5[lit integer], d14=0 [CARRET], d15=124[do] ; _d d16=1016[dummy identifier] ; _[Stack representations]d d3=19[beg block], d6=32[func], d8=10[else exp] ; _d d19=21[beg proc] _b: qq 1.3-1.39 ; mask. c10.[1b] qq t 256 ; 1.0 floating, true. 1c60, c36, c40 ____[2b] qq 3 t 320 ; 10 floating. c38, c39, c41, c56d i=i-e69-e69 ; CDC _[1b] qq ; true ____[2b] qq 256.39 ; 256d i=i+e69+e69-2 ; _m _[3b] qq 10.39 ; c56, in CDC: 4c39 [4b] qq 57 ; 57.c39, in CDC: 1c36, c38, 7c39, c51, 1a16 [5b] qq 1020.9+409.19+614.29+410.39 ; 0.1 floating. c43, in CDC: c38, 7c39, c40d i=i-e69 ; CDC: _[5b] qq 1.39 ; 1d i=i+e69-1 ; _[6b] hs c7 ; instruction, c7.[7b] qq 1023.9+512.19 ; -1.0 floating, false, 1c60. _____d i=i-e69 ; CDC _[7b] qq 1.39 ; false _____[8b] qq 1023.39 ; 1023, 4e9d i=i+e69+e69-2 ; _b1: qq ; decl.c13, c15, c16, c17, c20 [1b1]qq ; N. c60, c36, c39, c40, c48, a19, a9, c67, c59 ; c56, in CDC: c36, 1c39.., 1a16 [2b1]qq ; factor. c36, c38, c48 in CDC: c36, 2c39... ; 1c52, 1c53, c41, c48, a16 [3b1]qq ; ⨯. c39, in CDC: c39, c40, 1c48d d40=1 ; If redefined, d40=0: output of _s ; state, KA, KB=10, or stack = 00 _[16.11.65] [Pass 3. Page 2]c2: pi 0 V -5 LQB ; AFTER TROUBLE: if first after trouble then __ ____pi 0 t -9 ; first after trouble:= false else _____ ____hv c3 ; introuble:= false; go_to NEXT 1; _____ __ __c66:hs e3 , ps i ; OUT: output(par M); c1: pa [operand] DV NQA ; NEXT: operand:= 0;pa c1 , hv c2 ; ifintrouble then go_to AFTER TROUBLE; __ ____ __ __c3: pmn (e1) X 1 ; NEXT 1: byte:= input;hs e2 LA ; if byte < 512 then go_to NOT OPERAND; __ ____ __ __hv c5 NT ; if -, introuble then __ ____a6: hs e3[or a5] NQA ; begin if stack identifier then _____ __ ____[if stack identifier then a5 else e3] ; stck id else output(byte) end; __ ____ ____ ____ ___pa c1 t 1 NQA ; if -, introuble then operand := 1; __ ____c6: pmn (e1) X 1 ; AFTER OPERAND: byte:= input;hs e2 LA ; if byte _ 512 then alarm(51); __ > ____c5: ga a1 V NT ; NOT OPERAND: R:= table[byte]; hs c7 , qq s+e51 ; marks:= marksof(table[byte]); hv i+5 LKB ; skip output for KB = 1 hs e9 LKA ; Special state output: delimiter sy 27 LKA ; comma sy (c1) LKA ; operand sy (i+3) LKA ; stated i=i-d40-d40-d40-d40-d40 ; remove special output unless d40=0 _a1: pmn [byte] Xt d2 ; if marks > 1 then go_to SPECIAL; __ ____ __ __hv c9 LA ; OA:= bit(state, R); if marks = 0 then __ ____a2: ck 27 [state] IOA ; begin byte:= byte - 1; _____hv a3 LB ; R:= table[byte]; marks:= marksof(table[byt e]); pmn (a1) X -1 ; OB:= bit(state, R);ck (a2) IOB ; if marks = 0 then __ ____hv a4 LB ; begin byte:= byte - 1; _____pmn (a1) X -1 ; R:= table[byte];ck (a2) ; if OB then byte := byte - 4 __ ____qq (a1) t -4 LOB ; end; ___a4: qq (a1) t -2 LOA ; if OA then byte:= byte - 2 __ ____a3: pmn (a1) XV -1 LO ; end; ___pmn (a1) X ; if bit(state, R) then byte:= byte - 1; __ ____ck (c1) V NC ; R:= table[byte]; marks:= marksof(table[byt e]);hv c8 ; if marks > 0 then go_to SEARCH; __ ____ __ __hv c10 LQA ; if -, bit(operand, allowed operand part(R) __)pmn (a1) XV LO ; ∧ -, introuble then alarm (52); ____hs c7 , qq s+e52 ; c10:mb b , ga a2 ; NORMALACTION: state:= newstatepart(R);c9: hv c35 LC ; SPECIAL: if marks = 3 then go_to INITIALIZE N __ ____ __ __UMBER; gt a , cl -9 ; parM:= outpart(R); parR:= stackpart(R);a: ck -11, hv [switching part]; go_to instruction[switchingpart(R)]; __ __a5: ck -10 , gt p1 ; procedure stckid; _________pa a6 t e3 ; begin special stack[ds+1]:= byte; _____ck 10 ; stack identifier:= false; _____hs e3 ; output(byte),arn d19 D ; par R:= beg_proc; ___ ____pm b1 , hv c18 ; par M:= decl; ENTOUT end; ___[5.1.66] [Pass 3. Page 3] c63:pi 0 t -13 ; START PASS 3: introuble:= first after trouble :=pm a20 V ; stackidentifier:= false _____a20:hv c51 , hv c51 ; store[0]:= jump to error 2;gm 0 MA ; for i:= upper stack limit step -1 until 0 ___ ____ _____do __a21:grn 40e25 t -1 M ; store with marks(stack[i], 0, 0); bs (a21) t d1 ; ds:= 0; state:= 27;hv a21 ; go_to NEXT; __ __pp d1 , hh c66 ;c62:pm (e1) X 1 ; END PASS 3: output(input); comment final valu _______e hs e2 LA ; of short from pass 2; ps e92-1 , hv e3 ; transfer from drum (endpass track) ; to:(place for endpass);; go_to PLACE FOR ENDPASS; __ __c7: arn s , ps c66 ; ALARM: procedure alarm(n); value n; integer n _________ _____ _______;hv c6 LQA ; begin if introuble then go_to AFTER OPERAN _____ __ ____ __ __D; sr 6b , ac a10 ; errormessage(n); hs e5 ; byteword:= byteword - 1; a10:qq d7 , qq ; byte:= trouble;pa c1 , grn a10 ; introuble:= first after trouble:= true; ____pa a10 t d7 ; operand:= 0; go_to NOT OPERAND __ __qq (e1) t -1 ; end; ___pi 12 t -13 ; comment errormessages: 38: stack, 51: -del _______imi- arn a10 , hv c5 ; ter, 52: operand, 53: delimiter, 54: -oper and, ; 55: number, 56: termination; c8: sy 64 NKC ; Special output, stack: CARRET arn (a1) D NKC ; hs e9 NKC ; byte sy 27 NKC ; comma sy (c1) NKC ; operand pmn (a1) X ; reset A and Md i=i-d40-d40-d40-d40-d40-d40 ; remove special output _ga a11 V LA ; SEARCH: if marks = 1 then alarm(53); __ ____hs c7 , qq s+e53 ; comment delimiter; base:= part 1(R); _______pm (c1) DX ; if marks = 3 then go_to a12; __ ____ __ __hv a12 LC ; if operand = 0 then alarm(54); __ ____pm d8 DVX NZ ; comment - operand; _______a14:hs c7 , qq s+e54 ; if stack[ds] | elseex then go_to a13; __ = ____ __ __nc (p) , hv a13 ; sy (p) NKC ; Special output: top of stackd i = i - d40 ; remove special output unless d40 = 0 _pm d9 DV ; R:= end_else_expr; ___ ____ ____c55:cl -9 ; c55: hs e3 X ; output(R); c54:pp p-1 ; c54: ds:= ds - 1; a13:sy (p) NKC ; Special output: top of stackd i = i - d40 ; remove special output unless d40 = 0 _pmn (a1) X ; a13: if -,bit(stack[ds], __; allowed stackpart(table[byte])ck (p) , is (p) ; then alarm(56); comment terminator; ____ _______a11:pmn s[base] XV LO ; R:= table[stack[ds] + base]; hs c7 , qq s+e56 ; marks:= marks of table[stack[ds] + base];hv c10 NC ; if marks = 0 then go_to NORMAL ACTION; __ ____ __ __hv c55 LA ; if marks = 1 then begin R:= part 4(R); __ ____ _____hv c54 ; go_to c55 end; go_to c54; __ __ ___ __ __[5.1.66] [Pass 3. Page 4]a12:hv a13 LZ ; a12: if operand = 0 then go_to a13; __ ____ __ __nc 1 ; if operand | 1 then __ = ____hs c7 , qq s+e52 ; alarm(52); pm d10 DX ;hs e3 ; output(proc;); ____hv a13 ; go_to a13; __ __c11:pa a6 t a5 ; SET BLOCK PROC: stack identifier:= true; ____c12:ca (p) ; SET BLOCK: if stack[ds] = parR then __ ____pa p t d3 ; stack[ds]:= ,begblock,;c13:gm b1 , hv c1 ; SET DECL: decl:= parM; go_to NEXT; __ __c14:pa a6 t a5 ; ADD DECL PROC: stackidentifier:= true; ____c15:xr , sc b1 ; ADD DECL: decl:= decl + parM; go_to NEXT; __ __hv c1 ; c17:pm b1 ; DECL ENT: parM:= decl; c18:pp p1 , bs p-d4 ; ENT OUT: ds:= ds + 1;hs c7 , qq e38 ; if ds > maxds then alarm(38); comment stac __ ____ _______k;c19:ga p VX ; CH OUT: stack[ds] := parR; go_to OUT; __ __c20:pm b1 X ; DECL: parM:= decl; go_to OUT; __ __hv e3 ;c21:pp p1 , bs p-d4 ; ENT: ds:= ds + 1; if ds > maxds then __ ____hs c7 , qq e38 ; alarm(38); comment stack; _______c70:ga p , hv c1 ; CH: stack[ds]:= parR; go to NEXT; __ __c65:qq (e1) t -1 ; ENDPROCTR: byteaddress:= byteaddress - 1; c22:arn p , tk 10 ; PROC END: output(special stack[ds]); hs e3 ; c61:qq (2e4) t 1 ; BLOCK COUNT: information 1:= information 1 + 1;c23:pp p-1 ; AN OUT: ds:= ds - 1; go_to OUT; __ __c4: hv e3 X ;c24:pp p-1 , hv c1 ; AN: ds:= ds - 1; go_to NEXT; __ __c64:hs e3 X ; DO: output(par M); arn d15 D ; parM:= ,do,;hv c19 X ; go_to CH OUT; __ __c26:bs (c1) ; LEFT PARENT: if operand > 0 then __ ____pmn d5 D ; begin parR:= ,func,; parM,begcall, end _____ ___;arn d6 D LZ ; go_to ENT OUT; __ __hv c18 ; c68:hs e3 X ; RIGHT CALL: arn 7d50 DX ; c25:pp p-1 , ga c1 ; RIGHT: ds:= ds - 1; operand:= parR;hsn e3 X ; output(parM); go_to AFTER OPERAND; __ __hv c6 ; [5.1.66] [Pass 3. Page 5] c69:xr , ar b1 ; BOUNDS: par M:= par M + decl;hv c25 X ; go_to RIGHT; __ __c27:bs (c1) ; PLUS: if operand = 0 then parM:= parR; __ ____pm 18d50 D ; go_to OUT; __ __hv e3 X ;c28:bs (c1) ; MINUS: if operand > 0 then go_to OUT; __ ____ __ __hv e3 X ; sign:= parR; go_to NEGATE; __ __ga a9 , hv c36 ;c29:bs (c1) ; BINARY: if operand = 0 ∨ state > 7 ∨ introubl __ebs (a2) t 7 NQA ; then alarm(53); ____hs c7 , qq s+e53 ; comment delimiter; _______ga a2 X ; state:= parR; go_to OUT; __ __hv e3 ;c30:pi 8 t -9 ; AN TROUBLE: introuble := true; ds:= ds - 1; ____pp p-1 , hv c6 ; go_to AFTER OPERAND; __ __c31:nsn (a6) , nc sa5 ; DECL PROC TR: if stack identifier __hv c1 ; then begin output(trouble); ____ _____hs e3 X ; byte:= par M; stckid end; ___arn b3 , hv a5 ; goto NEXT; ____b3: qq d16 ; dummy identifier c32:qq (e4) t 1 ; CR: CRcounter:= CRcounter + 1; hs e3 X ; output(parM);bs (c1) NQA ; go_to if operand = 0 then NEXT 1 __ __ __ ____hv c6 ; else AFTER OPERAND; ____hv c1 ;c35:bs (c1) ; INITIALIZE NUMBERS: if operand | 0 then alarm __ = ____(51);hs c7 , qq s+e51 ; comment - delimiter; _______qq (e1) Vt -1 NQA ; if introuble then go_to AFTER OPERAND; __ ____ __ __hv c6 ; byteaddress:= byteaddress - 1;pa a9 , hv c36 ; sign is negative:= false; go_to NEGATE; _____ __ __c57:qq (e4) t 1 ; CR 1a: CRcounter:= CRcounter + 1; pmn d14 DX ; output(,CARRET,); ps i , hv e3 ; c37:pmn (e1) X 1 ; NEXT OF NUMBER: s:= input(byte);hs e2 LA ; s:= if 56 < s ∧ s < 67 then 57 __ ____ga r1 ; else if 66 < s ∧ s < 78 then s - 9 ____ __ ____ps ; else 56; ____bs s445 t 501 ; go_to instruction[numbers + __ __ps 57 , hh r3 ; bits(numberstate, numberstate + 4, bs s434 t 500 ; numberstatetable[s])]; ps s-9 , hh r1 ; ps 56 , arn sd2 ; a15:ck [numberstate], tk -5 ; ga r1 ; hv [switchingpart]t c38 ;s ; Stop for choice _s ; between GIER and CDC _s ; _s ; _[Pass 3. Page 6, GIER version] c60:ga r1 X ; LOGIC VALUE: N:= store[parR];pm , gm 1b1 ; if -, introuble ∧ operand | 0 then alarm(1 __ = ____);bs (c1) NQA ; comment -delimiter; operand:= 3; _______hs c7 , qq s+e51 ; kind:= parM;pa c1 t 3 ; go_to OUTPUT VALUE; __ __hv c67 ;c33:pa a7 X 3 ; LITERAL: for i:= 1 step 1 until 4 do ___ ____ _____ __a8: pm (e1) X 1 ; begin input(byte); _____hs e2 LA ; if -, introuble then output(byte) __ ____hs e3 NQA ; end; ___a7: bt Xt -1 ; hv a8 ; hs e3 NQA ;pm (c1) DX 3 NQA ; if -, introuble then R:= operand:= operand __ ____+ 3;ca 3 , hv c6 ; if R = 3 then go_to AFTER OPERAND; __ ____ __ __qq (e1) t 1 NQA ; if -, introuble then byteaddress:=byteaddr __ ____ess+1; hs c7 , qq s+e51 ; alarm(51); c36:grn 1b1 , pm 1b ; NEGATE: N:= 0; facor:= 1; gm 2b1 , pa a15 ; numberstate:= 0; pa c1 t 3 ; exp 10:= 0; operand:= 3;pa a16 , hv c37 ; go_to NEXT OF NUMBER; __ __c38:arnf 2b1 , mkf 2b ; 0 DIGIT 2: factor:= 10⨯factor;grf 2b1 , it 15 ; 1 numberstate:= 1; go_to DIGIT; __ __c39:pa a15 t 5 ; 2 DIGIT 1: numberstate:= 5; arn (e1) , sr 4b ; 3 DIGIT: N:= N⨯10 + (byte - 57); nkf 9 , grf 3b1 ; 4 arnf 1b1 , mkf 2b ; 5 arf 3b1 , grf 1b1 ; 6hv c37 ; 7 BLIND: go_to NEXT OF NUMBER; __ __c52:hv c56 ; 8 DIGIT 3: go_to DIGIT 3a; __ __c40:pm 1b , gm 1b1 ; 9 TEN 1: N:= 1;c41:pa a19 t 2b ;10 TEN 2: pos exp:= true; ____it 20 ;11 numberstate:= 20; go_to NEXT OF NUMBER; __ __c42:pa a15 Vt 10 ;12 POINT: numberstate:= 10; go_to NEXT OF NUMB __ __ER; c53:pa a15 t 35 ;13 ERROR 1: numberstate:= 35;hv c37 ;14 go_to NEXT OF NUMBER; __ __c43:pa a19 t 5b ;15 EXP MINUS: pos exp:= false; _____c44:pa a15 t 25 ;16 EXP PLUS: numberstate:= 25;hv c37 ;17 go_to NEXT OF NUMBER; __ __c45:hv c57 ;18 CR 1: go_to CR 1a; __ __c50:hv c58 ;19 OUT 1: go_to OUT 1a; __ __c51:hv c59 ;20 ERROR 2: go_to ERROR 2a; __ __pa c48 V d12 ;21 FINISH 1: kind:= ,lit integer,; go_to COMMO __ __N FINISH; c48:pa [kind] Dt d11 ;22 FINISH 2: FINISH 3: kind:= ,lit real,; arnf 1b1 , dkf 2b1 ;23 COMMON FINISH: R:= N/factor;a16:bt [exp 10] t -1 ;24 for exp 10:= exp 10 - 1 while exp 10 > 0 ___ _____do __a19:mkf[10 or. 1] , hv a16 ;25 R:= R⨯(if pos exp then 10 else 0.1); __ ____ ____grf 1b1 ;26 N:= R; a9: pm [sign] XD ;27 [Pass 3. Page 7, GIER version] hv c49 LZ ; SIGN TREATMENT:pm (e1) X ; if sign is negative ∧ next symbol | ,∧, th __ = | __en __ca d13 X ; begin if byte = ∧ then output(sign) _____ __ | ____ps r1 , hv e3 ; else N:= -N ____srnf 1b1 , grf 1b1 ; end; ___c49:qq (e1) t -1 ; OUTPUT VALUE:pm (c48) DX ; for i:= 0 step 10 until 30 do ___ ____ _____ __c67:ck -1 , pa a17 ; output(bit(i, i+9, N)); pm 1b1 X ; operand:= 3; a18:cl 10 X ; output(kind); ck -10 , hs e3 ; byteaddress:= byteaddress - 1;a17:btn t -120 ; go_to AFTER OPERAND; __ __ps c66 , hv c6 ; hv a18 X ; c58:qq (e1) t -1 ; OUT 1a: byteaddress:= byteaddress - 1;pmn (a9) DX ; output(sign); go_to NEXT; __ __ps c66 , hv e3 ; c59:grn 1b1 , hs e5 ; ERROR 2a: errormessage(10);hv c48 , qq s+e55 ; N:= 0; go_to FINISH 1; __ __c56:pa a15 t 30 ; DIGIT 3a: numberstate:= 30;arn (e1) , it 35 ; if exp 10 < 35 then __ ____bs (a16) , hv r5 ; begin exp 10:= exp 10⨯10 + byte - 57; _____sr 57 D ; go_to NEXT OF NUMBER; __ __pm (a16) D ; end; ___ml 3b X ; exp 10:= 0; N:= 0;ga a16 , hv c37 ; if pos exp then go_to ERROR 1; __ ____ __ __pa a16 , grn 1b1 ; go_to NEXT OF NUMBER; __ __arn a19 , ca 2b ; hv c53 ; hv c37 ;s ; End _s ; of _s ; GIER _s ; version _[Pass 3, page 10, stack words 1] [New state.9+switching part.19+stack part.29+output part.39] [stack: switching part, stack part, output] [; 4 and ;7]d d20=i-12 _[12] qqf ; trouble: -, -, - [13] qq 10d50.39,; thenst: -, -, end thenst [14] qq 11d50.39,; goto: -, -, end goto [15] qq 160.39,; assign: -, -, end assign [16] qq 15d50.39,; do: -, -, end do [17] qq 9d50.39,; elsest: -, -, end elsest [18] qq 27.9+ c4.19 + 120.39 ; begclean: OUT, -, ; [19] qq 27.9+ c4.19 + 120.39 ; beg block: OUT, -, ; [20] qq 27.9+ c4.19 + 120.39 ; beg body: OUT, -, ; [21] qq 28.9+c22.19 + 104.39 ; beg proc: PROC END, -, end proc [22] qq 28.9+c23.19 + 88.39 ; := switch: AN OUT, -, switch list [end 1 and end 2]d d21=i-12 _[12] qqf ; trouble: -, -, - [13] qq 10d50.39,; thenst: -, -, end thenst [14] qq 11d50.39,; goto: -, -, end goto [15] qq 160.39,; assign: -, -, end assign [16] qq 15d50.39,; do: -, -, end do [17] qq 9d50.39,; elsest: -, -, end elsest [18] qq 20.9+c23.19 + 96.39 ; beg clean: AN OUT, -, end clean [19] qq 20.9+c61.19 + 100.39 ; beg block: BLOCK COUNT, -, end block [20] qq 10.9+c24.19 ; beg body: AN, -, - [else 1 and else 2]d d22=i-11 _[11] qq 3.9+c19.19+ 10.29+ 6d50.39 ; thenex: CH OUT, else ex, else ex [12] qq 34.9+c30.19 ; trouble: AN TROUBLE, -, -, [13] qq 9.9+c19.19+ 17.29+ 132.39 ; thenst: CH OUT, else st, else st [14] qq 11d50.39,; goto: -, -, end goto [15] qq 160.39,; assign: -, -, end assign [.7 and parameter delimiter 1]d d23=i-22 _[22] qq 2.9+ c4.19 + 16.39 ; := switch: OUT, -, switchparam [23] qq 2.9+c19.19+ 37.29+ d50.39 ; [arr: CHOUT, [arr,, bound comma [24] qq 2.9+ c4.19 + 1d50.39 ; [left: OUT, -, [, [25] qq 2.9+ c4.19 + 1d50.39 ; [for: OUT, -, [, [26] qq 2.9+ c4.19 + 1d50.39 ; [subscr: OUT, -, [, [27] qq 2.9+ c4.19 + 1d50.39 ; [left or subs: OUT, -, [, [28] qq 2.9+ c4.19 + 144.39 ; := for: OUT, -, simple for [29] qq 2.9+c19.19+ 28.29+ 148.39 ; until: CHOUT, := for, step elem [30] qq 2.9+c19.19+ 28.29+ 152.39 ; while: CHOUT, := for, while elem [31] qq 2.9+ c4.19 + 20.39 ; (call: OUT, -, call param [32] qq 2.9+ c4.19 + 20.39 ; (func: OUT, -, call param [Pass 3, page 11,stack words 2] [right bracket 1]d d24=i-23 _[23] qq 13.9+c69.19 + 72.39 ; [arr: BOUNDS, NEW OPERAND, bound base [24] qq 27.9+c25.19+ 2.29+36d50.39 ; [left: RIGHT, NEW OPERAND, ] [25] qq 22.9+c25.19+ 2.29+36d50.39 ; [for: RIGHT, NEW OPERAND, ] [26] qq 1.9+c25.19+ 2.29+36d50.39 ; [subscr: RIGHT, NEW OPERAND, ] [27] qq 4.9+c25.19+ 2.29+36d50.39 ; [left or subs: RIGHT NEW OPERAND, ] [do 1]d d25=i-28 _[28] qq 27.9+c64.19+ 16.29+39d50.39 ; := for: DO, do, simple for [29] qq 27.9+c64.19+ 16.29+40d50.39 ; until: DO, do, step elem [30] qq 27.9+c64.19+ 16.29+41d50.39 ; while: DO, do, while elem [right parenthesis 2]d d26=i-31 _[31] qq 20.9+c68.19 + 92.39 ; (call: RIGHT CALL, NEW OPERAND, end call [32] qq 1.9+c25.19+ 3.29+ 92.39 ; (func: RIGHT, NEW OPERAND, end call [33] qq 1.9+c25.19+ 3.29+37d50.39 ; (subex: RIGHT, NEW OPERAND, ) [then 1]d d27=i-34 _[34] qq 5.9+c19.19+ 11.29+ 5d50.39 ; ifex: CH OUT, thenex, thenex [35] qq 8.9+c19.19+ 13.29+ 128.39 ; ifst: CH OUT, thenst, thenst [step 1]d d28=i-28 _[28] qq 2.9+c19.19+ 36.29+13d50.39 ; := for: CH OUT, step, step [until 1]d d29=i-36 _[36] qq 2.9+c19.19+ 29.29+14d50.39 ; step: CH OUT , until, until [while 1]d d30=i-28 _[28] qq 2.9+c19.19+ 30.29+ 156.39 ; := for: CH OUT, while, while [:3]d d31=i-37 _[37] qq 2.9+c19.19+ 23.29+ 112.39 ; [arr,: CH OUT, [arr: , boundop 1 [Pass 3, page 12, stack words 3] [trouble 1]d d32=i-10 _[10] qqf ; else ex: -, -, - [11] qqf ; then ex: -, -, - [12] qq ; trouble: -, -, - [13] qq 34.9+c18.19+ 12.29+ 136.39 ; then st: ENT OUT, trouble, trouble [14] qq 34.9+c19.19+ 12.29+ 136.39 ; goto: CH OUT, trouble, trouble [15] qq 34.9+c19.19+ 12.29+ 136.39 ; assign: CH OUT , trouble, trouble [16] qq 34.9+c18.19+ 12.29+ 136.39 ; do: ENT OUT, trouble, trouble [17] qq 34.9+c18.19+ 12.29+ 136.39 ; elsest: ENT OUT, trouble, trouble [18] qq 34.9+c18.19+ 12.29+ 136.39 ; beg clean: ENT OUT, trouble, trouble [19] qq 34.9+c18.19+ 12.29+ 136.39 ; beg block: ENT OUT, trouble, trouble [20] qq 34.9+c18.19+ 12.29+ 136.39 ; beg body: ENT OUT, trouble, trouble [21] qq 32.9+ c4.19 + 136.39 ; beg proc: OUT, -, trouble [22] qq 32.9+c23.19 + 136.39 ; := switch: AN OUT, -, trouble [23] qq 32.9+c23.19 + 136.39 ; [arr: AN OUT, -, trouble [24] qqf ; [left: -, -, -, [25] qqf ; [for: -, -, - [26] qqf ; [subscr: -, -, -, [27] qqf ; [left or subs: -, -, - [28] qqf ; := for: -, -, - [29] qqf ; until: -, -, - [30] qqf ; while: -, -, - [31] qqf ; (call: -, -, - [32] qqf ; (func: -, -, - [33] qqf ; (subex: -, -, - [34] qqf ; if ex: -, -, - [35] qqf ; if st: -, -, - [36] qqf ; step: -, -, - [37] qq 32.9+c23.19 + 136.39 ; [arr,: AN OUT, -, trouble [Pass 3 page 13, control table for numbers] [Input byte values from 56 to 68 have their control words c-marked (i.e. f and comma marked) and call for a special logic for analyzing numbers. While this logic is operating the input byte values are converted so as to give the appropriate entry of the following table. This is an action table having the current numberstate as the other argument. The action is given in the table as the machine address of the code relative to DIGIT 2 = c38. The number states are: Number state Position 0 4 Before number 5 9 Following digit before point 10 14 Following point 15 19 Following digit after point 20 24 Following ten 25 29 Following exponent sign 30 34 Following digit after ten 35 39 In erroneous number When an error has been detected the remaining part of the number is skipped. The error message is given on the following terminator.] [Entry to table: direct converted]d d2=i-56 [GIER] _[56] qqf 19.4+21.9+20.14+22.19+20.24+20.29+22.34+20.39, ; <terminator> [57] qqf 2.4+ 2.9 + 8.24+ 8.29+ 8.34+ 7.39, ; 0 <digit> [58] qqf 12.4+12.9+13.14+13.19+13.24+13.29+13.34+ 7.39, ; 1 . [59] qqf 9.4+10.9+13.14+10.19+13.24+13.29+13.34+ 7.39, ; 210 [60] qqf, ; 3 [61] qqf, ; 4 [62] qqf, ; 5 [63] qqf 19.4+21.9+20.14+22.19+16.24+20.29+22.34+20.39, ; 6 + [64] qqf, ; 7 [65] qqf, ; 8 [66] qqf, ; 9 [67] qqf 19.4+21.9+20.14+22.19+15.24+20.29+22.34+20.39, ; . - [68] qqf 18.4+18.9+18.14+18.19+18.24+18.29+18.34+18.39, ; - CAR RETd a24=e69+e69+e69, a24=a24+a24 ; _d a24=a24+a24+e69 ; a24:= if CDC then 13 else 0 _ __ ____ ____d i=i-a24 ; _[CDC] [56] qqf 22.4+31.9+25.14+26.19+25.24+25.29+27.34+25.39,; <terminator> [57] qqf 2.4+ 2.9+ 0.14+ 0.19+11.24+11.29+11.34+10.39,; 0 <digit> [58] qqf 17.4+17.9+13.14+13.19+13.24+13.29+13.34+10.39,; 1 . [59] qqf 15.4+16.9+13.14+16.19+13.24+13.29+13.34+10.39,; 210 [60] qqf, ; 3 [61] qqf, ; 4 [62] qqf, ; 5 [63] qqf 22.4+31.9+25.14+26.19+19.24+25.29+27.34+25.39,; 6 + [64] qqf, ; 7 [65] qqf, ; 8 [66] qqf, ; 9 [67] qqf 22.4+31.9+25.14+26.19+18.24+25.29+27.34+25.39,; . - [68] qqf 21.4+21.9+21.14+21.19+21.24+21.29+21.34+21.39,;10 CARRETd i=i+a24-13 ; _[5.1.66] [Pass 3 page 14, main control table] [Each input byte gives access to a word in the following table. If this word is NOT COMMA-MARKED the table contains NORMAL action words arranged as follows: Delimiter action word p - - - p-1 ...... - - - 1 Delimiter meaning word q - - - q-1 byte value: - - - 1 Delimiter meaning comment. The delimiter meaning words in their bit no. w contain the number of the action word appropriate to the state w, in binary form, thus: Multiplier q=1, p=1 Delimiter meaning word 1: 1 q=2, p=2 or 3 - - - 2: 1 - - - 1: 2 q=3, p=4 to 7 - - - 3: 1 - - - 2: 4 - - - 1: 2 The action word number corresponding to the various states is also given in the delimiter meaning comment. Delimiter meaning word q is f-marked. Delimiter action words come in two formats: No marks, simple action words: qq allowed operand.3+new state.9+switching part.19+stack part.29+output.39 When the program indicated in the switching part is entered we haveR: qq stack part.9+(output_512).10+new state.29+switching part.39 :M: qq (output rem 512).9 ___Comma-mark, search in stack action words: qq(f) base address.9+allowed stack delimiter bits Not f-marked words perform TEST FOR ELSE EXPRESSION. f-marked words perform TEST FOR PROCEDURE CALL. The base address points to the table of stack wors. If the word indicated by the input byte value is COMMA-MARKED we have a SPECIAL ACTION: Not-f marked words supply: qq switching part.19+parameter.29+output.39, f-marked words enter the number reading program, controlled by the control table for numbers.] [5.1.66] [Pass 3 page 15, main control table] qq 7.3+ 6.9+ c4.19 +18d50.39 ; +2: OUT, -, + qq 15.3+ 6.9+c27.19+16d50.29+16d50.39 ; +1: PLUS, pos, + qqf 31.5+ 1.7 ; 1 qq 1.6 ; 2: 72[01111 12100 _ 00000 00000 _ 00000 00000 _ 00000 00000] 1 2 3qq 7.3+ 6.9+ c4.19 +19d50.39 ; -2: OUT, -, - qq 15.3+ 6.9+c28.19+17d50.29+19d50.39 ; -1: MINUS, neg, - qqf 31.5+1.7 ; 1 qq 1.6 ; 2: 76[01111 12100 _ 00000 00000 _ 00000 00000 _ 00000 00000] 1 2 3qq c32.19 + 0.39, ; CARRET: CR, -, CR qq c33.19 + 4.39, ; short string: LITERAL , -, lit string qq c33.19+ 512.29+ 4.39, ; long string: LITERAL, -, lit string qq c33.19 + 4.39, ; layout: LITERAL , -, lit string qq ; not used qq ; not used qq ; not used qq 8.3+ 7.9+ c4.19 +38d50.39 ; -,1: OUT, -, -, qqf 31.5+ ; 1: 85[01111 10000 _ 00000 00000 _ 00000 00000 _ 00000 00000] 1 2 3qq 8.3+ 2.9+ c21.19+ 14.29 ; goto 1: ENT, goto, - ____qqf 12.11+3.28+3.31 ; 1: 87[00000 00011 _ 00000 00000 _ 00000 00110 _ 11000 00000] 1 2 3qq 8.3+28.9+ c21.19+ 20.29 ; begin 2: ENT, beg body, - _____qq 8.3+28.9+ c18.19+ 18.29+ 116.39 ; begin 1: ENT OUT, beg clean, begin _____qqf 12.11+3.28+5.34 ; 1 qq 3.31+5.35 ; 2: 91[00000 00011 _ 00000 00000 _ 00000 00110 _ 22121 20000] 1 2 3qq 8.3+22.9+ c4.19 +12d50.39 ; for 1: OUT, -, for ___qqf 12.11+3.28+3.31 ; 1: 93[00000 00011 _ 00000 00000 _ 00000 00110 _ 11000 00000] 1 2 3qq 8.3+ 2.9+ c70.19+ 34.29 ; if 4: CH, ifex, - __qq 8.3+ 2.9+ c18.19+ 34.29+ 3d50.39 ; if 3: ENT OUT, ifex, ifex __qq 8.3+ 2.9+ c70.19+ 35.29 ; if 2: CH, ifst, - __qq 8.3+ 2.9+ c18.19+ 35.29+ 4d50.39 ; if 1: ENT OUT, ifst, ifst __qqf 5.4+27.31 ; 1 qq 1.3 ; 4 qq 5.4+1.9 ; 2: 100[00343 00002 _ 00000 00000 _ 00000 00110 _ 11000 00000] 1 2 3qq 8.3+25.9+ c12.19+ 18.29+ 52.39 ; own 1: SET BLOCK, beg clean, own ___qqf 17.32 ; 1: 102[00000 00000 _ 00000 00000 _ 00000 00010 _ 00100 00000] 1 2 3qq 8.3+15.9+ c13.19 + 69.39 ; integer 3: SET DECL, -, spec int _______qq 8.3+17.9+ c13.19 + 53.39 ; integer 2: SET DECL, -, own integ _______qq 8.3+19.9+ c12.19+ 18.29+ 45.39 ; integer 1: SET BLOCK, beg clean, decl i _______nteg qqf 1.28+15.33 ; 1 qq 1.25+13.33 ; 2: 107[00000 00000 _ 00000 00000 _ 00000 20010 _ 33130 00000] 1 2 3qq 8.3+15.9+ c13.19 + 70.39 ; real 3: SET DECL, -, spec real ____qq 8.3+17.9+ c13.19 + 54.39 ; real 2: SET DECL, -, own real ____qq 8.3+19.9+ c12.19+ 18.29+ 46.39 ; real 1: SET BLOCK, beg clean, decl real ____qqf 1.28+15.33 ; 1 qq 1.25+13.33 ; 2: 112[00000 00000 _ 00000 00000 _ 00000 20010 _ 33130 00000] 1 2 3[5.1.66] [Pass 3 page 16, main control table]qq 8.3+15.9+c13.19 + 71.39 ; _oolean 3: SET DECL, -, spec bool B______qq 8.3+17.9+c13.19 + 55.39 ; _oolean 2: SET DECL, -, own bool B______qq 8.3+19.9+c12.19+18.29+ 47.39 ; _oolean 1: SET BLOCK, beg clean, decl bool B______qqf 1.28+15.33 ; 1 qq 1.25+13.33 ; 2: 117[00000 00000 _ 00000 00000 _ 00000 20010 _ 33130 00000] 1 2 3qq 8.3+14.9+c15.19 + 4.39 ; procedure 4: ADD DECL, -, type proc _________qq 8.3+14.9+c13.19 + 64.39 ; procedure 3: SET DECL, -, spec proc _________qq 8.3+16.9+c14.19 + 4.39 ; procedure 2: ADD DECL PROC, -, type proc _________qq 8.3+16.9+c11.19+18.29+ 40.39 ; procedure 1: SET BLOCK PROC, beg clean, pr _________oc qqf 1.28+15.33 ; 1 qq 1.15 ; 4 qq 1.19+13.33 ; 2: 124[00000 00000 _ 00000 40002 _ 00000 00010 _ 33130 00000] 1 2 3qq 8.3+14.9+c15.19 + 8.39 ; array 4: ADD DECL. -.-arrah _____qq 8.3+14.9+c13.19 + 62.39 ; array 3: SET DECL, -.-spec array _____qq 8.3+24.9+c15.19 + 8.39 ; array 2: ADD DECL, -, array _____qq 8.3+24.9+c12.19+18.29+ 38.39 ; array 1: SET BLOCK, beg clean, real array _____qqf 1.28+15.33 ; 1 qq 1.15 ; 4 qq 1.19+13.33 ; 2: 131[00000 00000 _ 00000 40002 _ 00000 00010 _ 33130 00000] 1 2 3qq 8.3+14.9+c13.19 + 56.39 ; switch 2: SET DECL, -, spec switch ______qq 8.3+23.9+c12.19+18.29+ 32.39 ; switch 1: SET BLOCK, beg clean, switch ______qqf 1.28+1.32 ; 1 qq 13.33 ; 2: 135[00000 00000 _ 00000 00000 _ 00000 00010 _ 22120 00000] 1 2 3qq 8.3+14.9+c13.19 + 76.39 ; string 1: SET DECL, -, string ______qqf 13.33 ; 1: 137[00000 00000 _ 00000 00000 _ 00000 00000 _ 11010 00000] 1 2 3qq 8.3+14.9+c13.19 + 72.39 ; label 1: SET DECL, -, spec label _____qqf 13.33 ; 1: 139[00000 00000 _ 00000 00000 _ 00000 00000 _ 11010 00000] 1 2 3qq 8.3+12.9+c13.19 + 80.39 ; value 1: SET DECL, -, value _____qqf 9.33 ; 1: 141[00000 00000 _ 00000 00000 _ 00000 00000 _ 10010 00000] 1 2 3qqf d20.9+1.11-1.22, ; ;7: SEARCH STATEMENT qq 4.3+31.9+c20.19 ; ;6: DECL, -, - qq 8.3+28.9+ c1.19 ; ;5: NEXT, -, - qq d20.9+1.11-1.22, ; ;4: SEARCH IN EXPRESSION qq 8.3+30.9+ c1.19 ; ;3: NEXT, -, - qq 4.3+31.9+c13.19 + 84.39 ; ;2: SET DECL, -, formal qq 4.3+28.9+c20.19 ; ;1: DECL, -, - qqf 3.9+9.13+15.20+7.29-1.35 ; 1 qq 15.4+31.10+15.15+1.20+3.28+7.32+1.34 ; 4 qq 7.10+5.14+13.18+1.20+3.28+3.31+7.35 ; 2: 151[04444 04477 _ 70656 62131 _ 70000 00770 _ 77537 30000] 1 2 3[5.1.66] [Pass 3 page 17, main control table]qq 8.3+28.9+c65.19 + 104.39 ; end 3: ENDPROCTR, -, end proc ___qq d21.9+1.11-1.20, ; end 2: SEARCH IN EXPRESSION ___qqf d21.9+1.11-1.20, ; end 1: SEARCH STATEMENT ___qqf 3.9+1.20+3.28+15.35 ; 1 qq 15.4+3.7+5.35 ; 2: 156[02222 02211 _ 00000 00000 _ 10000 00110 _ 00131 30000] 1 2 3qq d22.9+1.10-1.15, ; else 2: SEARCH IN EXPRESSION ____qqf d22.9+1.10-1.15, ; else 1: SEARCH STATEMENT ____qqf 1.8+1.20 ; 1 qq 15.4+7.7 ; 2: 160[02222 22210 _ 00000 00000 _ 10000 00000 _ 00000 00000] 1 2 3qq 12.3+ 2.9+c26.19+33.29+34d50.39 ; (3: LEFT PARENT, subex, ( qq 4.3+ 2.9+c18.19+31.29+ 24.39 ; (2: ENT OUT, (call, beg call qq 4.3+21.9+c13.19 + 84.39 ; (1: SET DECL, -, formal qqf 31.5+3.7+1.16 ; 1 qq 1.0-1.9+3.28+3.31 ; 2: 165[03333 33322 _ 00000 01000 _ 00000 00220 _ 22000 00000] 1 2 3qq d27.9+3.35, ; then 1: SEARCH IN EXPRESSION ____qqf 7.3+3.7 ; 1: 167[01110 01100 _ 00000 00000 _ 00000 00000 _ 00000 00000] 1 2 3qq 4.3+ 9.9+ c4.19 + 48.39 ; :4: OUT, -, decl label qq d31.9+ 1.37, ; :3: SEARCH IN EXPRESSION qq 4.3+ 8.9+ c4.19 + 48.39 ; :2: OUT, -, decl label qq 4.3+27.9+ c4.19 + 48.39 ; :1: OUT, -, decl label qqf 7.3+1.6+3.28+3.31 ; 1 qq + 1.9 ; 4 qq 7.3+5.8 ; 2: 174[03330 03024 _ 00000 00000 _ 00000 00110 _ 11000 00000] 1 2 3qq d28.9+1.28, ; step 1: SEARCH IN EXPRESSION ____qqf 7.3+1.6 ; 1: 176[01110 01000 _ 00000 00000 _ 00000 00000 _ 00000 00000] 1 2 3qq d29.9+1.36, ; until 1: SEARCH IN EXPRESSION _____qqf 7.3+1.6 ; 1: 178[01110 01000 _ 00000 00000 _ 00000 00000 _ 00000 00000] 1 2 3qq d30.9+1.28, ; while: SEARCH IN EXPRESSION _____qqf 7.3+1.6 ; 1: 180[01110 01000 _ 00000 00000 _ 00000 00000 _ 00000 00000] 1 2 3qq d24.9+1.22-1.27, ; ] 1: SEARCH IN EXPRESSION qqf 7.3+1.6 ; 1: 182[ 01110 01000 _ 00000 00000 _ 00000 00000 _ 00000 00000] 1 2 3qq 4.3+ 2.9+c18.19+25.29+35d50.39 ; [5: ENT OUT, [for, [ qq 4.3+ 2.9+c18.19+26.29+35d50.39 ; [4: ENT OUT, [subscr, [ qq 4.3+ 2.9+c18.19+27.29+35d50.39 ; [3: ENT OUT, [left or subs, [ qq 4.3+ 2.9+c18.19+24.29+35d50.39 ; [2: ENT OUT, [left, [ qq 4.3+ 2.9+c17.19+37.29 ; [1: DECL ENT, [arr, - qqf 1.4+5.24 ; 1 qq 7.3+7.7+1.22 ; 4 qq 1.4+3.9+3.28+3.31 ; 2: 190[04443 44422 _ 00000 00000 _ 00501 00220 _ 22000 00000] 1 2 3[5.1.66] [Pass 3 page 18, main control table] qq d23.9+1.21-1.32, ; ,7: SEARCH IN EXPRESSION qq 8.3+24.9+ c1.19 ; ,6: NEXT, -, -, qq 4.3+14.9+ c1.19 ; ,5: NEXT, -, -, qq 4.3+24.9+ c1.19 ; ,4: NEXT, -, -, qq 4.3+21.9+ c1.19 ; ,3: NEXT, -, -, qq 4.3+12.9+ c1.19 ; ,2: NEXT, -, -, qq 4.3+17.9+ c1.19 ; ,1: NEXT, -, -, qqf 7.3+3.7+3.15+21.21+1.33 ; 1 qq 7.3+3.7+7.15+1.24+1.33 ; 4 qq 7.3+3.7+3.13+1.21 ; 2: 200[07770 07700 _ 00265 50101 _ 03004 00000 _ 00050 00000] 1 2 3qq 6.3+ 2.9+c18.19+28.29+ 140.39 ; := 4: ENT OUT, ... qq 6.3+ 4.9+ c4.19 + 164.39 ; := 3: OUT, -, := qq 6.3+ 4.9+c18.19+15.29+ 168.39 ; := 2: ENT OUT , assign, first:= qq 4.3+ 2.9+c17.19+22.29 ; := 1: DECL ENT, := switch, - qqf 1.4+1.23 ; 1 qq 1.22 ; 4 qq 1.4+3.9+3.28+3.32 ; 2: 207[00003 00022 _ 00000 00000 _ 00410 00220 _ 22000 00000] 1 2 3qq d26.9+7.33, ; )2: SEARCH IN EXPRESSION qq 1.1+18.9+c20.19 ; )1: DECL, -, - qqf 1.21 ; 1 qq 7.3+3.7 ; 2: 211[02220 02200 _ 00000 00000 _ 01000 00000 _ 00000 00000] 1 2 3qq 8.3+32.9+c22.19 + 104.39 ; trouble 7: PROC END, - , end proc qq 8.3+35.9+c31.19 + 136.39 ; trouble 6: DECL PROC TR, -, trouble qq 8.3+33.9+c20.19 ; trouble 5: DECL, -, - qq 8.3+32.9+c20.19 ; trouble 4: DECL, -, - qq 8.3+33.9+ c4.19 + 136.39 ; trouble 3: OUT, -, trouble qq 8.3+32.9+ c4.19 + 136.39 ; trouble 2: OUT, -, trouble qqf d32.9+1.9-1.37, ; trouble 1: SEARCH STATEMENT qqf 31.5+31.10+11.15+1.18+7.22+19.31; 1 qq 5.12+15.17+5.21+1.24 ; 4 qq 9.13+5.18+5.25+11.31 ; 2: 221[01111 11111 _ 70525 56434 _ 15124 20120 _ 33000 00000] 1 2 3qq ; not used qq d25.9+7.30, ; do 1: SEARCH IN EXPRESSION qqf 7.3+3.7 ; 1: 224[01110 01100 _ 00000 00000 _ 00000 00000 _ 00000 00000] 1 2 3[5.1.66] [Pass 3 page 19, main control table]qq c60.19+1b.29+ 7.39, ; true: Logic value, -, true ____ ____qq c60.19+7b.29+ 7.39, ; false: Logic value, -, - _____qq c29.19+ 6.29+20d50.39, ; ⨯ : BINARY, -, ⨯ qq c29.19+ 6.29+21d50.39, ; / : BINARY, -, /qq c29.19+ 6.29+23d50.39, ; ∧ : BINARY, -, ∧ | |qq c29.19+ 6.29+22d50.39, ; _ : BINARY -, _ : :qq c29.19+ 1.29+24d50.39, ; < : BINARY, -, <qq c29.19+ 1.29+25d50.39, ; _ : BINARY, -, _ < <qq c29.19+ 1.29+26d50.39, ; = : BINARY, -, =qq c29.19+ 1.29+27d50.39, ; _ : BINARY, -, _ > >qq c29.19+ 1.29+28d50.39, ; > : BINARY, -, >qq c29.19+ 1.29+29d50.39, ; | : BINARY, -, | = =qq c29.19+ 1.29+30d50.39, ; ∧ : BINARY, -, ∧ qq c29.19+ 1.29+31d50.39, ; ∨ : BINARY, -, ∨qq c29.19+ 1.29+33d50.39, ; _ : BINARY, -, _ = =qq c29.19+ 1.29+32d50.39, ; => : BINARY, -, => qq c62.19, ; endpass: ENDPASS, -, - qq 4.3+21.9+ c1.19 ; param delim 2: NEXT, -, - qq d23.9+3.32, ; param delim 1: SEARCH IN EXPRESSION qqf 7.3+3.7 ; 1 qq 1.21 ; 2: 245[01110 01100 _ 00000 00000 _ 02000 00000 _ 00000 00000] 1 2 3d d1=i ; _d e18=c63 ; start pass 3 _d i=39i ; _d e16=k-e70 ; e16:= first free track _e _d i=e21+1, e22=e16-e15-1 ; e22:= number of tracks - 1 _qqe15.9-e24.9+e18.19+e22.36+e22.34+205e13.39; pass 3 word to GPd e15=e16 ; _s _