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

⟦8f4d31dca⟧ Bits:30000740 GIER ALGOL III TLA, 8-hole paper tape

    Length: 19281 (0x4b51)
    Description: Bits:30000740 GIER ALGOL III TLA
    Types: 8-hole paper tape
    Notes: Gier Text

GIER Text (HTML)

[26.2.65]
[Translator Loading Administration. Page 1]
d e84=e16 ; First free track after translator proper _
d e19=e84+e86 ; Reserve e86 tracks between translator and output _
d e87=e84-c61 ; Number of tracks used for translator _
[Universal Translatorparameters. Rest of track 3e14]
d i=e4 ; _
e4: qq e__ ; CR counter, from start: first track of pass 1 _15
[1] qq _ , pp c61 ; used tracks , first track of RS 0
[2] qq _ , pp e0 ; inf 1 , - - - std. procs. 0
; HP entry: f mark _ true, -, f mark _ false; = ____ = _____
[3] qq _ , pp e24 ; inf 2 , - - - passes 0
[4] qq e__ , pp e__ ; last track , - - - std. tables _20 _81
[5] qq e___e__, ps e71 ; available tracks , number of std. identifiers _20-_19
[6] qq e__ , pp e20 ; input track , last track for output _19
[7] qq e__-1 , qq __ ; output track , string no _19 -1
[8] it _______, vy 1.5+1.9; normal by , typewr by 1.4+1.5
[9] qq _ , vy ___ ; pass no , error by 1 1.5
[10]qq e19-1 , bs 0 ; first track-1 , pass inf: _ 0 _ false < = _____
; 0 _ true 4 ____
[The following sections, up to but not including initialize translator, are only used immediately after a SLIP-loading and are not output on the compressed translator tape] [Program for placing and moving translator]
d i=e89 ; first free after identifierlist _
e27:vk 1e14+e70 , sk e13-39 ; forward pass vk 2e14+e70 , sk 1e13 ; backward pass
bs e96 ; if HP entry then __ ____
acn 2e4 MC ; set f mark on 2e4; vk 3e14+e70 , sk 165e13 ; printing and new line vk 4e14+e70 , sk 124e13 ; endpass vk c64+e70+1 , sk c67 ; running system 6
d i=i-e69 ; _
vk c66+e70 , sk c67-40 ; running system 7 vk c64+e70+3 , sk c67-80 ; running system 8
d i=i-e69 ; _
vk e70 , hh r7 ; move translator e70 tracks, e70>0 bs 1e70 , hv r9 ; e70=0 ps r5 , pp e84+e70-1; e70<0 vk p , lk e25 ; vk p-e70 , sk e25 ; pp p-1 , hv s-1 ; bs p-c70+1 , hv r-3 ; hv r3 , pp c70-2 ; e70>0 bsp-e84-e70+3, hv r2 ; pp p2 , hs r-6 ;
can e96 , hv r5 ; if HP entry then __ ____
vk 24c61 , lk e25 ; begin set on track 25 (std.procs. _____
vk 24c61 , it e84-31c61-1; entry to algol from HP): pa e25 , it e14 ; number of tracks to be summed,
pa 1e25 , sk e25 ; init. transl. track end ___
d i=i-e69-e69-e69-e69-e69 ; _
vk ; wait for drum [TLA. Page 2] [Generation of standard identifier tables]
b a15, b18, c2, d8 ; _
[This code builds up the tables as described in pass 2 from the list stored in core from 205e13. This list holds for each identifier two or more words loaded during loa- ding of the standard procedures. The format of the words (running index i list) is: ilist: Pass 6 word for std identifier. All 42 bits.
+1: Name of identifier in slip t representation, as _
--- many words as necessary. It is assumed that none of the tables will take up more than 2 tracks. The tables are formed totally in core before they are transferred to drum] [Definitions of table area and initial values for indices]
d d1=165e13;idecl for decl[80] ; decl[0:79]; _
d d2= 1e13; base for buf long ; buf long[0:79]; _
d d3= 40e25; i buf short for buf short[80] ; buf short[0:79]; _
d d4=d3-137; base for letter; ; letter[0:56] _
d d5=e91+14; e91= address of chain start list[0] from pass 2 _
; d5 = initial i long;
d d6=d3 ; i short, initial value; _
d d7=204e13; i list for list[-1]; list[0:e89-1]; _
d d8=14d2 ; i buf long for buf long[14]; _
[Other initial values: ident count=e71, short tracks=e29, long tracks=e88, first table track =e81] [TLA. Page 3] c: pp 57 , pp p-1 ; initialize letter table:
grn pd4 M ; for p:= 56 step -1 until 1 do ___ ____ _____ __
it pd4 , pt pd4 ; pack(letter[p], 0, 9, 0, bs p-1 , hh c ; 10, 19, p+baseletter, 20, 39, 0);
ps d5 , hv a10 ; s:= initial i long; go_to count ident; __ __
b18:qq 0 t e0 ; first track of std procs with unit in pos 19
d i = i - e69 ; skip for CDC _
c1: ;
b1: pmn d_ X 1 IQC ; start ident: i list:= ilist + 1 ; idecl:= idecl + 1 _7
; sr b18 NA ;
d i=i-e69 ; CDC: skip previous _
b2: gr d_ t -1 MQC ; pack(decl[idecl], 0, 41, list[ilist] - b18); _1
pa b5 , gm b6 ; case:= work:= 0; a1: pmn(b1) X 1 ; next char word: cl 36 ; i list:= i list + 1; R:= 0; ar 32 D LA ; M:= bits(0, 35, list[i list]); ar 16 D LB ; pack(R, 0, 5, bits(36, 41, list[i list]);
pa b3 , hv a2 ; count:= 6; go_to first char; __ __
c2: gr b6 , it -80 ; get char: work:= R;
b3: bt __ , hv a1 ; space: count:= count - 1; -1
; if count < 0 then go_to next char word; __ ____ __ __
pmn b7 , cl -6 ; M:= bits(0, 33, charword); R:= 0; ; pack(R, 0, 5, bits(34, 39, charword)); a2: ck -4 , ga b4 ; first char: Raddr:= p:= bits(0, 5. R);
b4: pp __ , gm b7 ; charword:= M; if Raddr = 0 then go_to space; -1 __ ____ __ __
hh c2 LZ ; if Raddr = <end text> then __ ____
ca 10 , hvn a15 ; begin R:= 0; return end; _____ ___
ca 58[LC], hh a3 ; if Raddr = <LC> then go_to LC; __ ____ __ __
ca 60[UC], hv a3 ; if Raddr = <UC> then go_to UC; __ ____ __ __
ca 16[0] , pp 0 ; if Raddr = <0> then p:= 0; __ ____
ca 43[ø] , pp 27 ; if Raddr = <ø> then p:= 27; __ ____
ca 48[æ] , pp 26 ; if Raddr = <æ> then p:= 26; __ ____
bs p-48 , pp p-105 ; if p > 48 then p:= p - 105; __ ____
bs p-32 , pp p-80 ; if p > 32 then p:= p - 80; __ ____
bs p-17 , pp p-56 ; if p > 17 then p:= p - 56; __ ____
b5: pp p__ , pp p57 ; p:= p + case + 57; -1
pm p DX ; R:= 0; Raddr:= p; M:= work
a15:pm b6 , hr s1 ; finis:= LA:= true; exit; ____
a3: it 60 , pa b5 ; UC: case:= 28; go_to space; __ __
hh c2 ; LC: case:= 0; go_to space; __ __
; comment variables and constants: _______
b6: qq ; work. no .mark used for finis:= true; ____
b7: qq ; char word
b8: qq 67.39, ; 67. ,mark used for finis:= false; _____
b9: qq e88.19-1.19+e29.29+d6.39-e71.39-513.39 ; std ident. inf.wor d [long track -1.19+ short tracks.29+first free ishort-512.39]; [TLA. Page 4] a6: hsn c1 IZC ; next identifier: arn pd4 , ck 10 ; ZC:= 3; short:= t; call(start ident); ga b11 , arn(b11) ; i short := i short - 1; i buf short:= i buf shor t -
b10:ar d_ D -1 IPA ; pack(store[part 2(letter[p]), _6
b11:gr __ MPA ; 0, 9, i short, 41, 41, 0); R:= 0; -1
b12:it d_ t -1 ; pack(letter[p], 10, 19, i buf short); _3
ptn pd4 ; ; next char: call(Heet ahar);
a7: hs c2 ; if Raddr = 0 then __ ____
hv a9 X LZ ; begin R:= RM; go_to end ident end; _____ __ __ ___
ck 10 , ml b8 ; RM:= RM⨯67 + Raddr; finis:= f;
hv a7 X LZ ; if RM < 2∧39 then word not full: __ | ____
; begin R:= RM; go_to next char end; _____ __ __ ___
b13:gm d_ V 1 NZA ; if -, short then storelong: _8 __ ____
; begin i buf long:= i buf long + 1; _____
a8: cl 19 XV IZA ; buf long[i buf long]:= remain(RM, 2∧39); |
; R:= RM_2∧39; s:= s + 1; go_to next char : | __ __
ps s1 , hv a7 ; end; ___
; store first long: a8: ZC:= ZC - 2; short:= f; ck -19 ; pack(buf short[i buf short], 0, 9, 0, 10, 19, s,
gr (b12) X MZC ; 20, 39, remain(RM_2∧39), 40, 41, ZC); : |
it s , pt (b12) ; R:= RM_2∧20; if -,finis then go_to next char; : | __ ____ __ __
hv a7 LA ; a9: nc 0 XV LZA ; end ident:
; if short then try store short; __ ____
ar 512 DV ; begin RM:= R; if Raddr | 0 then _____ __ = ____
; begin R:= 0; go_to store first long end; _____ __ __ ___
hvn a8 ; pack(bufshort[i buf short], 0, 39, RM; ; 40, 41, ZC)
gr (b13) V 1 NZA ; end ___
; else store last of long: ____
gm (b12) V MZC ; begin i buf long:= i buf long + 1; s:= s + 1 _____
;
; buf long[i buf long]:= R ++2∧39 |
ps s1 ; end; ___
a10: b14:bt e71 t -1 ; count ident: ident count:= ident count - 1;
hv a6 ; if ident count _ 0 then go_to next identifier; __ > ____ __ __
[TLA. Page 5] a11:pm b9 , gm d2 ; pack letter table in long buf: gs d2 , pp 0 ; pack(long buf[0], 0, 9, s, ; 10, 19, long tracks - 1, a12:psn -1 , pp p1 ; 20, 29, short tracks, ar (pd4) D ; 30, 39, i short - 512); ck 10 , ps s10 ; p:= 0;
bs s480 , hh a12 ; for i:= 1 step 1 until 14 do ___ ____ _____ __
b15:gr d_ t 1 M ; for s:= 9 step 10 until 39 do _2 ___ ____ _____ __
bs p456 , hv a12 ; begin p:= p + 1; pack(long buf[i], _____
gr (b15) MA ; s-9, s, bits(0, 9, lettertable[p]) end; ___
a13: ; tables to drum:
b16:vk e____ t 1 ; track:= track no of first table track - 1; _81-1
b17:sk d____ t 40 ; i:= -40; _2-40
bt e88-1 t -1 ; for j:= 1 step 1 until long tracks do ___ ____ _____ __
hv a13 ; begin track:= track + 1; i:= i + 40; _____
it (b17) t 39 ; to drum(track, long buf[i]) end; ___
bs (b13) , hs e5 ; if i + 39 < i long buf then __ ____
hv r1 , qq (e30) ; alarm(|<program too big|, 4 + 0); < >
; i:= 0;
a14:vk (b16) t 1 ; for j:= 1 step 1 until short tracks do ___ ____ _____ __
sk d_ t -40 ; begin track:= track + 1; i:= i - 40; _3 _____
is (b16) , vk se29 ; to drum(track, short buf(top short - i));
sk d_ t -40 ; to drum(track + short tracks, _1
bt e____ t -1 ; decl[top decl - 40]) _29-1
hv a14 ; end ___
e ; end initialize tables. _
b k=36, i=0 ; h algol to hjælp _ _
d i=11 ; _
h algol/e95.29+c66 ; _
e ; _
[TLA page 6] [Initialize translator. Track e14]
b k=e14+e70, a5, b7 ; _
a: grn 1023 , vk 3e14 ; initialize core: out of hjælp; lk 165e13 , pm rb7 ; to core(print track, place for print track); a1: ; store[1]:= jump to initialize translator;
b1: grn ___e__t -1 M ; 165_13
bs (rb1) t 1e13 ; clear marks on input output buffers; gm 1 , hv ra1 ;
a2: grne_____ t 82 MA ; set marks on bufferlimits; _13-41
a3: grn e__ t 82 MC ; _13
vk 1e14 , ud ra2 ; to core(forward, in out place); lk e13-39 , ud ra3 ; ps (e4) , pp e22 ; pass 1 to core: track:= first pass 1 track -1;
a4: vk s__ t 1 ; core:= pass place - 40; -1
lk ___e__ t 40 ; for p:= pass 1 tracks step -1 until 1 do 165_13 ___ ____ _____ __
pp p-1 , bs p ; begin track:= track+1; core:= core+40; _____
pa e4 , hv ra4 ; to core(track, core); CR counter:= 0 end; ___
; ready: to core (mess track, place for mess); vk 5e14 , lk 124e13 ; tk:= first text track;
vk 6e14 , grn 133e13; set no new line; message(if NKC then |< __ ____ <
pt rb3 t e62 NKA ; algol
pt rb3 t e59 NKB ; | else if NKA then |< > ____ __ ____ <
pt rb3 t e58 NKC ; algol KB.
b2: qq __ , hs 126e13 ; | else if NKB then |< -1 > ____ __ ____ <
b3: hv r1 ,qqe63+10.29; algol KA.
; | else |< > ____ <
; algol KC.
; |, 8+2); >
; operational choice: LZ:= false; _____
[initial values: i=a=p=w=t=o=l=n=false] _____
a5: arn rb2 , ud 8e4 ; by:= typewr by; char:= read a char;
ly rb2 , ca 57[i] ; if char=<i> then pass inf:= LZ:= true; __ ____ ____
ptn 10e4 t 1 ;
ca 49[a] , hv e93 ; if char=<a> then go to init transl; __ ____ __ __
ca 39[p] , pan rb4 ; if char=<p> then p:= LZ:= true; __ ____ ____
ca 22[w] , ptn rb4 ; if char=<w> then w:= LZ:= true; __ ____ ____
ca 19[t] , pan rb5 ; if char=<t> then t:= LZ:= true; __ ____ ____
ca 38[o] , ptn rb5 ; if char=<o> then o:= LZ:= true; __ ____ ____
ca 35[l] , pan rb6 ; if char=<l> then l:= LZ:= true; __ ____ ____
ca 37[n] , ptn 9e4 ; if char=<n> then n:= LZ:= true; __ ____ ____
hv ra5 LZ ; if LZ then go to operational choice; __ ____ __ __
; set the choices: normal by:= normal by -
b4: nt 1.4 t 1.5 ; (if-,p then bit4 else 0)-(if-,w then bit5 else0); __ ____ ____ __ ____ ____
arn(8e4) D ; error by:= if n then normal by else __ ____ ____
ck -10 , ab 9e4 ; combined(normal by, typewr by); gt 9e4 , pp1.0+1.2+1.4+1.5; set initial indicator for pass 1;
b5: pp p____ , pp p____ ; line print:= l; ignore POFF:= o; +1.9 +1.3
b6: pi p____ , vy (8e4) ; type input := t; by:= normal by; -1.2
hv e18 ; go to start pass 1; __ __
b7: hv e93 ; jump to init transl;
e ; end initialize translator; _
[TLA. Page 7] [Formation of checksums]
b a5, b2, d3 ; _
d d1=e25, d2=d1-40 ; Define buffer 1 and buffer 2 _
d d3=e80-c67+d1+160 ; - address of drumplace when track c61 in d1 _
hv a ; go to summations __ __
b: qq 688.9+e95.19+812.29; h algol word; _
a1: lk (b1) , pp 40 ; procedure sum; comment from track given by _________ _______
vk (s) t 1 ; vk instruction in cell[s]. number of tracks -1 it (b1) , pt b2 ; given as address in cell[s+1].
b1: nt d_ , lk d1+d2 ; Track 38 is skipped during summation: _1
is (s) , it s473 ; bs -511 , hv a3 ;
b2: pp p-1 , ar p__ ; -1
bs p , hv r-1 ; a3: bt (s1) t -1 ; hh a1 ; hh s1 ; exit; a: vk c66 , hsn a1 ; sum (track c66);
qq _ ; 0
vk c66 , lk d1 ; modify sum with h algol word and set in cell 39 _
vk c66 , ar b ; on track c66; sc 39d1 , sk d1 ; vk 0 , hsn a1 ; sum (track 0);
qq _ ; 0
vk c__ , hs a1 ; add sum (first 31 tracks of compiler); _61
qq __ , vk c61 ; 30
lk d1 , vk c61 ; set sum in drumplace sc d3 IOA ;
pa d3-e80+c46t512LOA ; if overflow then set bit 0 in last used and __ ____
pa d3-e80+c19t512LOA ; start of program to correct for overflow; sk d1 ; vk c61 , hsn a1 ; sum (up to first track after std procs ); qq e98-c61-1, vke98-1; lk d1 , vk e98-1 ; set sum in last cell of last track sc 39 d1 , sk d1 ; of std procs; vk e81 , hsn a1 ; sum(from first std table track to last pass track); qq e84-e81-1, vk 7e14 ;
d a5=e69+e69, a5=a5+a5+e69; a5:= 5⨯e69 _
d i=i-a5-a5-a5 ; skip previous 15⨯e69 instructions _
vk c61 , hsn a1 ; CDC summation qq e87-1 , vk 7e14 ;
d i=i+e69+e69-2 ; _
lk d1 , vk 7e14 ; set sum in last word of last text track; sc 39d1 , sk d1 ;
a4: hv e93 ; end sums: go to initialize translator; __ __
b k=c61+e70, i=0 ; Information about _
d i=a5+a5+a5+a5+a5 ; _
qq e97.9+e20.19+e84.29-1.29+e98.39-1.39 ; translator storing qq c89.9+c29.19+c19.29+c55.39 ; to track c61 qq e14.9 ;
e _
e _
b k=5e0+e70+e96, i=0 ; word to to drum _
d i=23 _
pm e98 DX ;
e ; Stop for possible reading of Kompud of passes _
s ; or Kompud of pass 2 through 8 _
e e27 ; END TRANSLATOR, goto e27 _ ____
s ; _