|
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: 15557 (0x3cc5) Description: Bits:30000734 GIER ALGOL III PASS 5 Types: 8-hole paper tape Notes: Gier Text
[Pass 5. 4.2.65, Page 1]b k=e15 + e70, i = 205e13, a30, b20, c50, d12 ; _d e17 = i ; _d d10 = 265 [output base] , d=146 [lit base] ; _d d1 = 108 [max interest], d4 = 640 [value allowed] ; _d d5 = 768 [take value], d6 = 3d10 [local blind, output] ; _d d7 = 20 [proc call and assign constant] ; _d d8 = 188 [undeclared, output], d11=9d10 [value integer]; _c44:hs c40 , ga b15 ; start pass 5: min identifier:= takebyte; sc b8 ITA ; maxp:= basestack - min identifier;pa b8 t 512 NTA ; if maxp < -512 then maxp:= - 512; __ ____hs c40 , ga b11 ; own address:= take byte;hs c40 , hs e3 ; output(take byte); comment stackreference for blo _______ck 0 pm r1 , ud 5e4 ; relative to display;bs s ; for i:= ,lastavailable, step -1 until ___ ____ _____gm 40e25 V -1 MC ; laststandardidentifier do __grn (r-1) t -1 M ; storewithmarks(,blob,, 3, decltable[i]);it (b15) , bs (r-2) ; for i:= i - 1 step -1 until minidentifier do ___ ____ _____ __ps s-1 , hv r-4 ; storewithmarks(0,0, decltable[i]); pp 0 , hv c41 ; ds:= ,firstavailable, - 1; blocknumber := 0;; go_to from sstart; __ __b4: qq ; decl b5: qq ; number byte b13:qq 1.32-1.34 ; b16:qq d8.34 ; undeclared b18:qqf d7.9 ; constant for proc value b19:qq 1.2-11.34 ; constant for take valuec40:pm (e1) Xt 1 ; integer procedure take byte; _______ _________hs e2 LA ; takebyte:= input; hh s ; c0: ; a2: qq (e4) t 1 ; CARRET: CRcounter:= CRcounter + 1; c22: ; a9: pmn(e1) X 1 ; next 1: byte:= input;hs e2 LA ; byteread: if byte _ 512 then go_to outputdescription __ > ____ __ __;a5: ga r2 ; if byte > ,ofinterest, then __ ____hv a1 LT ; b17:bs t d1 ;a8: ps a2 , hv e3 ; next: begin output(byte); go_to next 1 end; _____ __ __ ___ck -2 , ga r1 ;pmn[byte_4]Xtd2 IRC ; R:= table[byte_4]; marks:= marksoftable[byte_4]; : : :ga b1 , gt b2 ; output:= part 1(R); actionnumber:= part 2(R);hv a3 NC ; if marks | ,notdecl, then __ = ____tk 20 , ar (e1) ; begin decl:= (part 3(R) + byte)⨯2∧5 + part 4(R)⨯2 _____ |∧35; |ck 15 ; if marks | ,noblock, then setpart 1(decl) __ = ____; to: (blocknumber);b3: ar[block no] D LRB ; if marks = ,number, then __ ____gr b4 ; begin numberbyte:= take byte; _____hv a4 LRA ; decl:= decl + numberbyte⨯2∧14 |hs c40 , ga b5 ; end; ___ck -16 , ac b4 ; [Pass 5 page 2] a4: hs c40 , ga b6 ; next identifier: R:= byte 1:= take byte;hv a22 LZ ; if R = 0 then go_to CARRET 2; __ ____ __ __hv a5 NT ; if byte < 512 then go_to byteread; __ ____ __ __hs c40 , ga b7 ; declCR:= takebyte; b6: pmn[byte1]X IRC ; R:= decltable[byte 1]; hh b2 LT ; marks R:= marksof(decltable[byte 1]);hv b1 LZ ; if part1(R)_512 then go_to action[actionnumber]; __ > ____ __ __ca (b3) NB ; if R | 0 then __ = ____hv c31 NB ; begin if part 1(R) = blocknumber then _____ __ ____pp p1 , ck -5 ; begin if marksR|,standard, then go_to error1 end; _____ __ = ____ __ __ ___b8: bs pd3 , hv c32 ; ds:=ds+1; if ds>minidentifier then go_to error 2; __ ____ __ __ar (b6) D ; storewithmarks(bits(5,34,R)⨯2∧(-5) + |; byte⨯2∧30,marksR,stack[ds]); |gr pd3 MRC ; information 1:= information 1 + 1; qq (3e4) t 1 ; storewithmarks(0, notfirst, decltable[byte 1]);grn(b6) MA ; end stack previous declaration for same ___a3: ; identifierb1: pmn[outbyte] DX ; end prepare declaration of one identifier; ___hs e3 NZ ; a3: if outbyte | 0 then output(outbyte); __ = ____b2h:pan b1 ,hv[action] ; go_to action[actionnumber]; __ __a22:qq (e4) t 1 ; CARRET 2 : CRcounter:= CRcounter + 1; pm 5d10 XD ; output(CARRET);ps a4-1 , hv e3 ; go_to next identifier; __ __c4: qq (b3) t 1 ; begin: blocknumber:= blocknumber + 1; pm b9 , pp p2 ; ds:= ds + 2; stack[ds]:= local address; gm pd9 , pa b9 ; localaddress:= 0; c41:hs c40 , hs e3 ; fromstart: output(takebyte);; comment base for working storage; _______hs c40 , ga b10 ; variableaddress:= takebyte; formaladdress:= 2; pa b12 t 2 IQB ; bs (b8) , hv c32 ; ds:= ds + 1;grn pd3 , hv a9 ; if ds > minidentifier then go_to error 2; __ ____ __ __; declstack[ds]:= 0; intypeproc:= false; _____c26: ; go_to next 1; __ __b15:ps[min ident], ps s1 ; end: i:= minidentifier; pm s X ; cleartable: i:= i + 1;hv a10 LB ; if marksof(decltable[i]) | ,standard, then __ = ____nc (b3) NA ; begin if part 1[R] = blocknumber then _____ __ ____hh c26 ; decltable[i]:= 0; go_to cleartable __ __grn s , hh c26 ; end; ___a10:qq (b3) t -1 ; blocknumber:= blocknumber - 1; arn pd3 , pp p-1 ; unstack: R:= declstack[ds]; ; marks R:= marksof(declstack[ds]);hv a20 LZ ; ds:= ds - 1; if R = 0 then go_to a20; __ ____ __ _ga r2 , tk 10 ; storewithmarks(bits(10,39,R)⨯2∧5, marksR, |ck -5 IRC ; decltable[bits(0,9,R]); go_to unstack; __ __gr MRC ; hv r-5 ; a20:pm pd3 , gm b9 ; a20: local address:= stack[ds];pp p-1 , hv a9 ; ds:= ds - 1; go_to next 1; __ __c25:hs c40 , mt r-1 ; bounds: output(localaddress - takebyte);ar (b9) D ; begcall: output(takebyte); go_to next 1; __ __hs e3 ; c23:hs c40 , hv a8 ; [Pass 5 page 3]c24:arn d6 D LQB ; beg local: if intypeproc then output(localblind); __ ____hs e3 LQB ;can(b14) , hv a9 ; if counter = 0 then go_to next 1; __ ____ __ __it (b15) , pa b6 ; for i:= min identifier + 1 step 1 until topid do ___ ____ _____ __a13:arn(b6) t 1 ; if store[i] < 0 then error 7; __ ____hv c37 LT ; counter:= 0;a15:bs (b6) t 38 e25 ; go_to next 1; __ __pa b14 , hv a9 ; hv a13 ; c1: pm (b17) DX d ; literal: output(byte + litbase);hs e3 ; for i:= 1 step 1 until 4 do output(takebyte); ___ ____ _____ __hs c40 , hs e3 ; go_to next 1; __ __hs c40 , hs e3 ; hs c40 , hs e3 ; hs c40 , hs e3 ; only CDCd i=i+e69-1 ; CDC: 5 bytes _hs c40 , hv a8 ; c8: nt (b5) , qq (b9) ; switch: localaddress:= localaddress - numberbyte; c10:arn b5 , hs e3 ; procedure: output(numberbyte); c12: ; b9: ps[local address]t -1 ; local: s:= localaddress:0 localaddress - 1; a6: pm b4 , gm (b6) ; storedecl: decltable[byte 1]:= decl; a11:it s , pt (b6) ; setrelative: setpart 2(decltable[byte 2]) to: (s);hv a4 ; go_to nextidentifier; __ __c9: pt b2 t c11 ; array: variableaddress:= variableaddress - (numberby te+1); nt (b5) t 2 ; actionnumber:= actionnumber + 1; c11: ; b10:ps[var adr.] Vt -1 ; variable: s:= variableaddress:= variableaddress - 1;; go_to storedecl; __ __c13: ;b11:ps[own adr.] t -1 ; own: s:= ownaddress:= ownaddress - 1; go_to storedec __ __l; hv a6 ; c6: arn pd3 , tk 10 ; proc value: local address:= local address - 1;ck 20 , ud c12 ; intypeproc:= true; decltable[byte 1]:= ____ca d8 , sr b18 ; ((if bits(31,39,declstack[ds]) = undeclared then __ ____0ar b18 IQB ; else proc call and assign const) + ____ck 15 ; bits(10,39,declstack[ds]))⨯2∧5; go_to next 1; | __ __gr (b6) , hv a9 ;c20:nc d4 , hv c36 ; value: if part 1(R) | ,allowed, then go_to error 6; __ = ____ __ __ar b19 , gr (b6) ; decltable[byte]:= R + ,constantforvalue,;hv a4 ; go_to nextidentifier; __ __c14:hv c33 LT ; specify: if part 1(R) _ 512 then go_to error 3; __ > ____ __ __b14:qqn[counter] t -1 ; counter:= counter + 1; decltable[byte 1]:= decl;pm b4 , gm (b6) ; go_to nextidentifier; __ __hv a4 ; [Pass 5 page 4]c21:hv c34 NT ; formal: if part 1(R) < 512 then go_to error 4; __ ____ __ __qq (b14) t 1 ; counter:= counter + 1; b12:ps[formal adr] t 1 ; s:= formaladdress:= formaladdress + 1;nc d5 , hv a12 ; if part 1(R) = ,takevalue, then __ ____tk -5 , tk 30 ; begin _____ar d11-165 D ; output(bits(25, 34, R) - 165 + value integer; hs e3 ; output(formaladdress - 2);arn s-2 D ; end; ___hs e3 ; setformal: setpart 1(decltable[byte 1]) to: (blocknu mber); a12:it s ; set part 2(decltable[byte 1], formal address);pt (b6) , ps (b3) ; go_to next identifier; __ __gs (b6) , hv a4 ; a1: pm (b17) ; outputdescription: R:= decltable[byte]; hv a8 LC ; marks R:= marksof(decltable[byte]);cln -14 ; if marks R = standard then go_to next; __ ____ __ __hv c35 LZ ; if R = 0 then go_to error 5; __ ____ __ __ck -1 , hs e3 ; information 2:= information 2 + 1; cln -6 , ck -4 ; output(bits(27,34,R)); hs e3 ; output(bits(3 ,25,R);; cln -10 , hs e3 ; output(part 2(R)); qq (2e4) t 1 ; output(part 1(R));cln -10 , hv a8 ; go_to next 1; __ __c31:hs c43 , qq s+e45 ; error 1: m:= |<+declar.|; go_to c43; < > __ __c32:ps c35 , hv e5 ; error 2: message(|<stack|); go_to initialize transl; < > __ __c33:hs c42 , qq s+e46 ; error 3: m:= |<+specific|; goto c42; < > ____c34:hs c42 , qq s+e48 ; error 4: m:= |<-specific.|; go_to c42; < > __ __c35:pm b16 , gm (b17) ; error 5: byte:= undeclared;hs e5 , qq e38 ; message(|<-declar|); < >hv a1 , qq s+e47 ; go_to output description; __ __c36:hs c42 , qq s+e49 ; error 6: m:= |<value|; go_to c42; < > __ __c37:hs c42 , qq s+e50 ; error 7: m:= |<-formal|; < >c42:bs (b14) , hv a14 ; c42:pa b14 t 500 ; if counter _ 0 then __ < ____c43:arn s , gt b20 ; begin counter := 500; _____it (e4) , pt b ; c43: b:= CR counter;b7: it __ , pa e4 ; CRcounter:= declCR; -1hs e5 ; message(m); b20:qq , qqs ;b: pa e4 ; CRcounter:= b; end; ___a14:pm b16 , gm (b6) ; byte 1:= undeclared;can s-c37 , hv a15 ; if error 7 then go_to a15; __ ____ __ __hv a4 ; go_to next identifier; __ __d c7=e92 ; define end pass _[Pass 5 page 5, control table] d2: [0] qq 5d10.9 + c0.19 ; CARRET [1] qq c1.19 ; constant [2] qq ; [3] qq ; [4] qq 6d10.9 + c4.19 ; begin block [5] qq 7d10.9 + c4.19 ; begin procedure [6] qqf c6.19 + 157.29, ; proc value [7] qq 4d10.9 + c7.19 ; end pass [8] qqf d10.9 + c8.19 + 125.29 ; decl switch [9] qqf c9.19 + 121.29 ; decl array [10] qqf 1d10.9 + c10.19 + 121.29 ; decl procedure [11] qqf c11.19 + 120.29, ; decl simple [12] qqf 2d10.9 + c12.19 + 120.29, ; decl label [13] qqf c13.19 + 101.29, ; decl own [14] qq c14.19 + 124.29 + 4.37, ; specify switch [15] qq c14.19 + 108.29 + 4.37, ; specify array [16] qq c14.19 + 108.29 + 4.37, ; specify procedure [17] qq c14.19 + 107.29 + 5.37, ; specify simple [18] qq c14.19 + 107.29 + 4.37, ; specify label [19] qq c14.19 + 105.29 + 4.37, ; specify string [20] qq c20.19, ; value [21] qqf c21.19, ; formal [22] qq c22.19 ; switch list [23] qq 12d10.9 + c23.19 ; begin call [24] qq 15d10.9 + c24.19 ; begin local [25] qq 14d10.9 + c25.19 ; bounds [26] qq 13d10.9 + c26.19 ; end block [27] qq 8d10.9 + c26.19 ; end procedure d3: qq ;d d9=d3-1 [stack start - 1] ; _d e18=c44 [start pass] ; information _d i=39i, e16=k-e70 ; for pass word _e ; _d i=3e21, e22=e16-e15-1 ; Load pass word _qq e15.9-e24.9+e18.19+e22.36+e22.34+205e13.39,;d e15=e16 ; set first free track _s _