DataMuseum.dk

Presents historical artifacts from the history of:

RegneCentralen GIER Computer

This is an automatic "excavation" of a thematic subset of
artifacts from Datamuseum.dk's BitArchive.

See our Wiki for more about RegneCentralen GIER Computer

Excavated with: AutoArchaeologist - Free & Open Source Software.


top - download

⟦11c1caef7⟧ Bits:30000734 GIER ALGOL III PASS 5, 8-hole paper tape

    Length: 15557 (0x3cc5)
    Description: Bits:30000734 GIER ALGOL III PASS 5
    Types: 8-hole paper tape
    Notes: Gier Text

GIER Text (HTML)

[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 value
c40: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: ; identifier
b1: 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 CDC
d 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 __ ____
0
ar 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; -1
hs 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 _