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

⟦9d09bd9ae⟧ Bits:30000603 A 252 g MB test, 8-hole paper tape

    Length: 12012 (0x2eec)
    Description: Bits:30000603 A 252 g  MB test
    Types: 8-hole paper tape
    Notes: Gier Text

GIER Text (HTML)

; slip<
; A202g test simultaneously on 1-4 tapestations
; with sumcheck                    1.7.75  PEH
; last version                     1.7.75   -
; a global names
; b procedures
; c variables
; d local names
; e constants
;         use of indicator:
;           OA   writing allowed
;           OB   simultaneous drumtransfers
;           TA   EOT sensed
;           QB, RA, RB = unit no. when errorstop
;     core layout:
;            l0-409   data in block
;               410   checksum in block
;               411   unit.9
;               412   parameterword (bufferaddress)
;               413   computed sum, 1. try
;               414   sumdiff. 1. try
;               415   sumdiff. 3.try
;               416   computed sum, 2. try
;               417   sumdiff. 2. try
;               418   computed sum, 3. try
;           512-800   program
; lastblock:=3000; (set during translation)
b a50, b50, c50, e50 _
i=512 hs b1 ,qq ; get stations; hs b2 ,qq ; rewind all units; hs b3 ,qq ; ask(write ); a2: hv a10 NOA ; if -,write then goto read; hs b4 ,qq ;write: type(a202g write); arne6 ,gr 410 ; checksum:=checksum of first block; grnc2 ,grn c5 ; dataaddress:=block:=0; grn c7 ; last dataword:=0; a3: arn c5 ,ar e1 ; for block:=1 step 1 until 3000 do gr c5 ; begin hs b5 ,qq ; generate testdata(dataaddress);
arn c5 ,sr e1 ; if block | 1 then =
qq V LZ hs b6 ,qq ; check(outputaddress); hv a9 LKA ; if KA or EOT then goto read; hv a9 LTA arn c5 ,gr c1 ; lastblock:=block; arn c2 ,gr c3 ; outputaddress:=dataaddress; hs b7 ,qq ; write(outputaddress); arn c2 ; dataaddress:= hs b26 ; dataaddress+blocksize⨯units; qq (c6) ; gr c2 arn c5 ,sr e8 hv a3 LT ; end; hs b6 ,qq ; check(outputaddress); a9: hs b2 ,qq ; rewind all units; a10: hs b8 ,qq ;read: type(a202g read); grn c4 ,grn c5 ; inputaddress:=0; pi 0 t 895 ; EOT:=false; a11: pp ,pp p+1 ; for p:=1 step 1 until units do arn c4 ,hs b9 ; read(inputaddress); it p ,bs(c6) ; hh a11 a12: arn e1 ,ac c5 ; for block:= 1 step 1 until lastblock do a13: pp ,pp p+1 ; begin arn c4 ,hs b10 ; for p:=1 step 1 until units do it p ,bs (c6); checkblock(inputaddress,p); hh a13 arn c4 ,gr c2 ; dataaddress:=inputaddress; hs b26 ; inputaddress:= qq (c6) ; inputaddress+blocksize⨯units; gr c4 ,pp arn c5 ,sr c1 ; if block<lastblock then hv a17 NT ; begin a15: pp p+1 ,arn c4 ; for p:=1 step 1 until units hs b9 ; do read(inputaddress,p); it p ,bs (c6); hv a15 ; end; a17: pp ,pp p+1 ; for p:=1 step 1 until units do arn c2 ; checkdata(dataaddress,p); hs b11 ,qq it p ,bs(c6) ; hh a17 arn c5 ,sr c1 hv a12 LT ; end; hs b2 ,qq ; rewind all units; hv a2 ; goto read or write; b1: ; procedure get stations; hs b20 sy 37 sy 38 ,sy 59 ; write(no. of stations = ); sy ,sy 38 sy 54 , sy sy 18 ,sy 19 sy 49 ,sy 19 sy 57 ,sy 38 sy 37 ,sy 18 sy ,sy 60 sy 4 ,sy 58 sy ,lyn c6 ca ,hv b1 sr 5 D hv b1 NT hh s b2: ; procedure rewind all units; pp ,pp p+1 us p64 ,it p bs (c6),hh r-2 hh s b3: ; procedure ask(write); hs b20 hs b21 lyn D nc 24 ,hv r3 ; if y then write(es); sy 53 ,sy 18 pi 768 ,hh s ; write:=drumtransfers:=true; nc 37 ,hv b3 ; EOT:=false; sy 38 ,pi 256 ; type(o); write:=EOT:=false hh s ; drumtransfers:=true; b4: ; procedure write(a202g write); hs b20 hs b22 hs b21 hh s b5: ; procedure generatetestdata(dataaddress);
b d20 _
pp arn c2 ,gr d15 ; bufaddr:=dataaddress; d3: pp p+1 ,gp d10 hk b24 LOB ; startdrum(sk); arn c7 ,pp -6 pa r1 t -24 d4: bt -24 t1 ; for a:=0 step 1 until 24 do hv d7 ; for p:=0 step 1 until 15 do hk b24 LOB ; begin startdrum(sk); pp p+16 gr p ,ar e10 ; word(a⨯16+p+10):=lasttestdata; gr p1 ,ar e10 ; lasttestdata:= gr p2 ,ar e10 ; lasttestdata+testdataincrement; gr p3 ,ar e10 ; end; gr p4 ,ar e10 gr p5 ,ar e10 gr p6 ,ar e10 gr p7 ,ar e10 gr p8 ,ar e10 gr p9 ,ar e10 gr p10 ,ar e10 gr p11 ,ar e10 gr p12 ,ar e10 gr p13 ,ar e10 gr p14 ,ar e10 gr p15 , ar e10 hv d4 d7: ar e10 ,gr c7 arn d15,ar e2 ar e3 hk b24 LOB ; startdrum(sk); us ; move testdata to buffer; ar e9 ,mb e4 gr d15 ; bufaddr:=(bufaddr+blocksize) mod 4096; arn e7 ,ac 410 ; checksum:=checksum+checksumincrement;
d10: it _ ,bs (c6) 0
pp (r-1),hv d3 hh s d15: 0 ; bufaddr;
e _
b6: ; procedure check(outputaddress);
b d10 _
pp ,pp p+1 ; grn d6 d1: arn c3,sr e1 mb e4 ,ar e11 ar d5 D il p224,il ; get status; pi (d5) t 959 ; TB:=EOT; if TB then pi 128 t831 LTB; TA:=true; TB:=false; arn d5 hv d4 LT it p ,bs(c6) ; if parity then hh b6 hh s d4: hs b20 ; begin write(pw,unit); sy 39 ,sy 22 sy ,sy p arn c3 ; repeat writeop; hs b26 qq p-1 ar e3 ,il p32 us p32 arn d6 ,ar e1 gr d6 ,sr e12 ; if persistent error hv d1 LT ; then type(give up); hs b27 ; and terminate; hsf 2 d5: 0 ; status; d6: 0 ; tries;
e _
b7: ; procedure write(outputaddress); pp ,arn c3 pp p+1 ,ar e3 ; write on all units; us p ,ar e9 us p80 LKB ; if KB then wait; mb e4 ,it p bs (c6),hv r-4 hh s b8: ; procedure type(a202g read); hs b20 hs b22 hs b23 hh s b9: ; procedure readblock(baseaddress,unit); hs b26 qq p-1 ar e3 ,il p us p80 LKB hr s+1 b10: ; procedure checkblock(baseaddress,unit);
b d10 _
gr d6 ,grn d7 d1: arn d6 ,sr e1 mb e4 ,ar e11 ar d5 D il p224, il arn d5 hr s+1 NT d4: hs b20 ; if parity then sy 39 ,sy 41 ; begin sy ,sy p ; write(pr,unit); il p32 ,arn d6 ; backspace block; hs b9 ; read again; arn d7 ,ar e1 gr d7 ,sr e12 ; if persistent error hv d1 LT ; then terminate; hs b27 hsf 2 ; end; d5: 0 ; status; d6: 0 ; baseaddress; d7: 0 ; tries; 0 ; BASEADDRESS;
e _
b11: ; procedure checkdata(baseaddress,p);
b d20 _
gr d10 hs b12 ; checksum; gr 413 ,gp 411 ; 413:=compsum1; 411:=unitno.9; sr 410 ,ck ; if computed sum=read sum hh s LZ ; then return; gr 414 ; 414:=sumdiff1; pip t 504 ; ind(7:9):=unitno.; pa d5 t281 ; dump bad block on drum; pa d6 t-30
d5: vk ___ t1 281
d6: sk ___ t 40 -30
it (d5),bs 292 hv d5 zq ; stop1; arn d10 hs b12 ; check buffer again; gr 416 ,sr 410 ; 416:=computedsum2; ck ,gr 417 ; 417:=sumdiff2; zq ; stop2; sr 414 ,zq ; R:=sumdiff2-sumdiff1; us p80 ,il p32 ; repeat reading of bad block; us p80 ,il p32 ; arn d10 ; readblock(baseaddress,p); hs b9 arn d10 hs b10 ; checkblock(dataaddress,p); arn d10 hs b12 ; check buffer again; gr 418 ,sr 410 ; 418:=compsum3; ck ,gr 415 ; 415:=sumdiff3; zq ,arn c4 hs b9 ; readblock(inputaddress,p); hh s d10: 0 ; baseaddress;
e _
b12: ; procedure checksum(baseaddress,p);
b d20 _
gr d10 ,gp d5 arn d10 hs b26 ; get blockaddress(base,p); qq p-1 ar e2 ,ar e3 gr 412 hk b25 LOB ; startdrum(lk); il ,pp -6 hk b25 LOB pan r1 t-24
d4: bt ___ t 1 ; compute sum; -24
d5: pp _ ,hr s1 0
hk b25 LOB pp p+16,ar p ar p1 ,ar p2 ar p3 ,ar p4 ar p5 ,ar p6 ar p7 ,ar p8 ar p9 ,ar p10 ar p11 ,ar p12 ar p13 ,ar p14 ar p15 ,hv d4 d10: 0 ; baseaddress;
e _
b20: ; procedure init tw; vy 17 ,sy 58 sy 64 ,hr s+1 b21: ; procedure write(write); sy 22 ,sy 41 sy 57 ,sy 19 sy 53 ,sy hr s1 b22: ; procedure write(a202g ); sy 60 ,sy 49 sy 58 ,sy 2 sy 16 ,sy 2 sy 55 ,sy hr s1 b23: ; procedure write(read); sy 41 ,sy 53 sy 49 ,sy 52 hr s1 b24: ; procedure startdrum(sk) vk 281 ,sk 10 hr s1 b25: ; procedure startdrum(lk); vk 281 ,lk 900 hr s1 b26: ; procedure get blockstart(startaddress,n); it (s1),pa r1 ; for t:=1 step 1 until n do
bt _ t-1 0
ar e9 ,hv r-1 ; R:=(R + 401) mod 4096; mb e4 ,hr s2 ; return; b27: ; procedure type(give up); hs b20 sy 55 ,sy 57 sy 21 ,sy 53 sy ,sy 20 sy 39 ,hr s1 ; variables: c1: 3000 ; lastblock; c2: 0 ; dataaddress; c3: 0 ; outputaddress; c4: 0 ; inputaddress; c5: 0 ; block; c6: 0 ; number of stations; c7: 0 ; last testdataword; ; constants: e1: 1 ; e2: qq 10 ; blockstart in corestore; e3: qq 401.19 ; blocklength; e4: 4095 ; mask; e5: qq 401.19+401.39 e6: qq 79800.19+79800.39 ; checksum of first block; e7: qq 160400.19+160400.39 ; checksumincrement; e8: 3000 ; maxblock (during write); e9: 401 ; blocklength; e10: qq 1.19+1.39 ; testdataincrement; e11: qq 1.19 ; statuswordblock; e12: 100 ; max tries; i=1022 vyn 3 t 1016 i=1021 hs 2
e1021 _
; x,clear,error< ; x,clear,g< ; x,clear,a202g< ; x,clear,dump< ; compress<
; x,set,0,12,281,i,dump< _
; x,res,1,a202g< ; x,res,1,error< ; x,move,image,free,21< ; x,res,g<
; x,edit,ig,oerror,l16,e< _ _ _ _ _ .
; l,print,b704.282,m 20.20,w 5,g0.0.10.0 _ _ _ _
; m 10.10.20,w1,g10.1.10.2 _ _ _
; m 20.20,w1,g 10.3.10.4< _ _ _
; l,print,m 20.20,w 5,g10..410 _ _ _
; m 10.10.20,w1,g 411..412 _ _ _
; m 20.20,w1,g 413..418< _ _ _
; exit< __[stop] [STOPCODE] ..
; x,edit,ig,oa202g,l16,e< _ _ _ _ _ .
; move,g,image,21<
; exit,512< __[stop] [STOPCODE] ..
; exit, 512<
e512 _
[stop]