fc TAPE 1343 m500 HELWIG-FEY
OCTAL	pa2=480
pa1=2004
pa3=2002
pa4=2003
pa5=2000
pb1=40
pb2=42
pb3=44
40|spb1		|Start of read tape routine
41|spb2		|Start of read deck routine
42|spd13		|obtain char. entry for cf1
b1,cac7+20
cf610
cac7+5		|9
tsc7		|BCD card no. reset
tsc7+1
tsc7+2
tsc7+3
cac7+16		|9999
tsc7+13		|binary card no. reset
ca0
tsc7+17		|punch sd sum
tsa2+1		|m ctr
|read title
si211		|select petr
ca0		|reset for run no. conversion and 256 test
tsg4+4
tsg4+10
|read run number
g7,spg1		|get next char.
spg5
spg8		|go if comma
spe14		|go if carr ret, error
0.00001
sppb2
cag4+4		|conversion mod 32768
mhg4+1
slh17
sag4+3
tsg4+4
ca0		|clear sum
spg7
g8,ca0		|reset for word conversion
tsg4+2
csg4+5
tsg4+6
g8+4,spg1		|get next char
spg5
spg11		|go if comma
spg12		|go if carr ret
cag4+3
ck0
spg10		|go if 0
ck1
spg9		|go if 1
spe14	|illegal
0.00003
sppb2
g5,tag6		|test for comma and carr ret
cag4+3
ckh1+31
spg6		|go if comma
aog6
cag4+3
ckh1+51
spg6		|go if carr ret
aog6
g6,sp		|exit
g9,cag4+2		|form binary word sent
clh1
sd1
g9+3,tsg4+2
aog4+6
cpg8+4		|go if fewer than 17 digits
spe14	|illegal
0.00003
sppb2
g10,cag4+2		|form binary word sent
clh1
spg9+3
g11,cag4+6		|comma terminated
ckg4+7
sph2		|go if exactly 16 digits
spe14	|illegal
0.00004
sppb2
g12,cag4+6		|carr ret. terminated
ckg4+7
sph6+2		|go if exactly 16 digits
spe14
0.00004
sppb2
g1,tag2		|get next character
g1+1,rd
adg4
tdg1+4
g1+4,ca		|pick up character code
cpg3		|go if illegal
tsg4+3		|save character code
clh1
cpg1+1		|go if ignorable
g2,sp		|exit
g3,spe14
0.00000
sppb2
g4,sih1		|flexo table key
g4+1,+10		|constant
g4+2,+0		|word sent
g4+3,+0		|char code
g4+4,+0		|run number
g4+5,+16		|constant
g4+6,+0		|binary digit counter
g4+7,-0		|constant
g4+10,+0		|256 ind.
g4+11,ts0		|constant
g4+12,1.37777
h1,ts		|ts = ignored
ca		|ca = illegal
ts		|e
+8		|8
ca
ts		|slash
ts		|a
+3		|3
h1+10,ts		|space
ts
ts		|s
+4		|4
ts		|i
ts		|+
ts		|u
h1+17,+2		|2
h1+20,ts		|color
ts		|.
ts		|d
h1+23,+5		|5
ts		|r
+1		|1
ts		|j
+7		|7
h1+30,ts		|n
h1+31,0.00031		|,
ts		|f
h1+33,+6		|6
ts		|c
ts		|-
ts		|k
ca
h1+40,ts		|t
ca
ts		|z
ts		|back space
+1		|l
ts		|tab
ts		|w
ca
h1+50,ts		|h
h1+51,0.00051		|carr ret
ts		|y
ca
ts		|p
ca
ts		|q
ca
h1+60,ts		|o
ts		|stop
ts		|b
ca
ts		|g
ca
+9		|9
ca
h1+70,ts		|m
ts		|upper
ts		|x
ca
ts		|v
ts		|lower
+0		|0
ts		|nullify
h2,spg1	|get next char
spg5
sph2
sph7
cag4+3
ckh1+17
sph3		|go if 2
spe14	|illegal
0.00005
sppb2
h3,spg1		|get next char
cag4+3
ckh1+23
sph4		|go if 5
spe14	|illegal
0.00005
sppb2
h4,spg1		|get next char
cag4+3
ckh1+33
sph5		|go if 6
spg3		|illegal
h5,spg1		|get next char
cag4+3
ckh1+51
sph6		|go if carr ret
spg3		|illegal
h6,aog4+10		|set 256 ind
aog4+10
h7,si630		|deselect petr
si17		|clear card image
cac2+6		|60
bic4
cag4+11		|special card punch
tsc4
ca1		|col bin punch
tsc4+4
cag4+2		|word sent to card image
clh20
adg4+10		|256 ind to card image
clh16
tsc4+5
ex0
clh20
tsc4+6
cag4+4		|run number to card image
clh40-2		|crh 5
sdc4
tsc4
ex0
clh20
tsc4+1
spc12
cac4		|wipe out special bit
mdg4+12
tsc4
a1,spp1		|get next char.
cpe1		|jump if error code
ckk1
spa6		|stop code
cka2
spa3		|m code only
clh1
cpa4		|m is punched
a5,clh2
mdc2+7		|land g bits
clh40-10		|crh8
sda2+1
mda2+3
tsa2+1		|m counter
spa7		|enter  card image
spa1
a2,0.40000		|constant
a2+1,+0		|n counter
a2+2,+59		|constant
a2+3,0.00777
a2+4,ca0
a7,taa12		|enter card image
spa11+4
a11,taa12		|index n ctr.
aoa2+1
sua2+2		|59
cpa12		|exit if less than 60
a11+4,cac7+5		|store code in card image
tst1+3
caa2+1
tst1+2
spm1
ca0		|reset m counter
tsa2+1
a12,sp		|exit
a3,spa11		|index m counter
spa1
a4,tsc7+10
spa11		|index m counter
cac7+10
spa5
a6,caa2+1
ck0
spa6+4		|m count is zero
spa7		|insert m count
a6+4,cat1
ckc7+7		|5
spa8		|8 row
a9,spc12		|punch card
a10,si17		|clear card image
cac2+6		|60
bic4
caa2+4		|term card
tsc4
cs0
tsc7+17
spc12		|punch term card
ca0
tsc4
spc12		|punch blank cards
spc12
spc12
spc12
z3,
b2,si246		|read card
cac2+6
bic4
cac4		|check for title card
clh1
cpr6
z5,
r3,si246		|read card
cac2+6
bic4
cac4
cpz7		|go if end card
r6,spr1		|form sd sum
ca0
ckc1		|check sd sum
spr4
z6,
r4,ckc1+1
spr5
spz6
r5,ckc1+2
spr3
spz6
z7,
e1,clh1
tse4+12		|save m bit
caa2+1
ck0
spe3		|m ctr is zero
spa7		|punch m count
e3,cae4+12
clh40-13		|crh11
mde4		|store control bits in e4+1
ade4+11		|0.00020
tse4+1
spp1		|store word in e4+2
tse4+2
spp1
clh40-6		|crh6
sde4+2
tse4+2
spp1
clh40-14		|crh12
sde4+2
tse4+2
spp1		|store sync in e4+3
tse4+3
spp1
clh40-6		|crh6
sde4+3
tse4+3
spp1
clh40-14		|crh12
sde4+3
clh40-3		|crh3
tse4+3
ex0		|store e in e4+4
clh5
tse4+4
cat1+1		|move to beginning of quarter - row
cke4+5
spe5		|9
cke4+6
spe5		|27
cke4+7
spe5		|45
cke4+10
spe6		|63
e8,cat1		|insure space for error words
ckk2+5
spe10		|jump if 12 row
e13,cae4+1		|enter control word into card image
tst1+2
cak2+4		|5
tst1+3
spm1		|enter image
cae4+3		|enter sync into card image
tst1+2
cae9+5		|13
tst1+3
spm1		|enter image
cae4+4		|36
ck0
spf1		|jump if e = 0
cae9+2
cpf2		|jump if no e field
ao1
spf5		|enter e control bits into card image
cat1		|save row and col nos.
tse9+6
cat1+1
tse9+7
cae9		|row and col nos for e field
tst1
cae9+1
tst1+1
adk2+4		|new col no for e field
tse9+1
cae9+2
ck1
spf9		|jump if e field to be exhausted
su1		|count e field entries
f10,tse9+2
spf7		|enter e into card image
cae9+6		|restore row and col nos.
tst1
cae9+7
tst1+1
spf3		|enter word into card image
spa1
e4,0.00017		|constant
e4+1,+0		|control word
e4+2,+0		|error word
e4+3,+0		|sync
e4+4,+0		|e
e4+5,+9		|constants
e4+6,+27		|
e4+7,+45		|
e4+10,+63		|
e4+11,0.00020		|
e4+12,+0		|temp
e5,ade4+5		|9
tst1+1		|set to quater row
spe8
e6,ca0		|col 0
tst1+1
cat1
ckk2+5		|55
spe7		|go if full card
adk2+4		|5
tst1		|next row
spe8
e7,spc12		|punch card
spe8
e10,cae4+4		|e
ck0
spe11		|e=0
cse9+2
cpe11		|jump if e field exists
cat1+1		|col. no.
sue9+3		|18
e12,cpe13		|jump if space available
spc12		|punch card
spe13
e11,cat1+1		|col. no.
sue9+4		|36
spe12
e9,+0		|e field row
e9+1,+0		|e field col.
e9+2,-0		|neg means no e field, otherwise 2 or 1
e9+3,+18		|constants
e9+4,+36		|
e9+5,+13		|
e9+6,+0		|temp
e9+7,+0		|temp
e9+10,+3		|constants
e9+11,+72		|
f1,ca0		|enter e control bits into card image
spf5
spf3		|enter error word into card image
spa1
f2,ao1
spf5		|enter e control bits into card image
spf3		|enter error word into card image
cat1+1		|col no
ade9+3		|18
cke9+11		|72
spf11		|e will fill row
tse9+7		|save col no
cat1		|save row no
spf12
f3,taf4		|enter error word into card image
cae4+2
tst1+2
cak2+1		|16
tst1+3
spm1		|enter word
f4,sp
f5,taf6		|enter e control bits into card image
clh17		|enter m bit
exe4+12
clh17
ex0
clh2
tst1+2		|store control bits
ao1		|2
tst1+3
spm1		|enter word
f6,sp
f7,taf8		|enter e into card image
cae4+4		|e
tst1+2
cak2+4		|5
tst1+3
spm1		|enter word
f8,sp
f11,ca0		|new col no is 0
tse9+7
cat1
ckk2+5		|55
spf15		|e fills card
adk2+4		|5
f12,tse9+6		|new col no.
spf13		|enter e into e field
ao1
tse9+2		|set e field indicated
cat1		|e field row no.
tse9
cat1+1		|e field col no
tse9+1
cae9+6		|row no
tst1
cae9+7		|col no
tst1+1
spa1
f15,spf13		|enter e into e field
spc12		|punch card
spa1
f13,taf14		|enter first e into e field
cat1+1		|col no
ade9+10		|3
tst1+1
spf7		|enter e
f14,sp		|exit
p1,tap3		|next char is char table to ac
cap2
cf610
clc20
p3,sp
p2,pb2
|Recovery
d13,ca2r
cf610
2d13,pb3
m1,tam7		|enter item into card image, update row and col locs.
cat1+1		|c = col. ctr. r = row ctr.
srh4		|c/16
adt1		|r+c/16
adc2+2		|loc of image
tdm3		|addresses of registers involved in card image
aom3
tam2+2
tam2+3
tdm5
ex0		|first unfilled digit position in register involved.
slh4
tst1+5
adt1+3		|first available digit pos. after word is inserted.
suk2+1		|16
cpm4		|jump if only one register involved
tst1+4		|no. of digits to go in second register = i
cak2+2
sut1+4
tdm2+1		|crh i = clh 32-i
cat1+2
spm2		|enter first register
clh20		|enter second register
m3,sd
m5,ts
spm6
m2,tam2+4		|enter first reg
m2+1,clc		|split between ac and br
m2+2,sd		|enter first reg
m2+3,ts
m2+4,sp		|exit
m4,cak2+1
sut1+5		|number of unfilled bits in register
sut1+3
adk2+3
tdm2+1		|number of left shifts required
cat1+2		|enter first register
spm2
m6,cat1+1		|update col. no.
adt1+3
tst1+1
suk2
cpm7		|jump if row not full
ca0		|reset col. no.
tst1+1
cat1		|update row no.
adk2+4
tst1
suk2+5
cpm7		|jump if card not full
spc12		|punch card
m7,sp
t1,+5		|0(5)55  current row
t1+1,+0		|0(1)71  current unfilled col.
t1+2,+0		|word to be inserted, zeros on left
t1+3,+0		|no. dig. in word 1,...,16
t1+4,+0		|temp
t1+5,+0		|
k2,+71		|constants
k2+1,+16		|
k2+2,+512+32		|
k2+3,+512		|
k2+4,+5		|
k2+5,+55		|
c12,tac11		|punch card
cac7+4		|set to index bcd card number
tdc8
tdc8+2
tdc8+6
c8,ca		|index bcd card number
ad1		|index digit by 1
c8+2,ts
suc7+5
cpc14		|jump if no carrg
ca0
c8+6,ts		|digit = 0
aoc8
aoc8+2
aoc8+6
suc7+6
cpc8		|up to 4 carries
c14,cac7+4		|enter bcd card no. into card image
tdc9		|initialize
cac2+5
tdc10
c9,ca		|digit = d
mhc7+7		|5d
slh17
tsc7+10
cac7+11		|compute register in card image in which
suc7+10		|digit belongs
tdc10+1
tdc10+2
ca1		|enter digit
c10,slr
c10+1,sd
c10+2,ts
aoc10
aoc9
suc7+12
cpc9		|4 digits
cac7+17		|go if no sd sum wanted
cpm8
aoc7+13		|store binary card number in card image
suc7+16
cpc17
ca0
tsc7+13
c16,clh40-4
tsc7+10
clh20
tsc4+2
cac4+1
mdc7+15
sdc7+10
tsc4+1
spr1
cac1		|check sum to card
clh40-4		|crh 4
sdc4+2
tsc4+2
ex0
clh40-14		|crh 12
adc1+1
clh40-4		|crh 4
tsc4+3
ex0
clh10
adc1+2
clh10
sdc4+4
tsc4+4
m8,si247		|punch card
cac2+6
boc4
cac4+1		|clear card image except run no.
mdc2+7
tsc4+1
si17
cac2+10
bic4+2
ca1		|9 row, col. 80 contains a punch
tsc4+4
cac7+7		|row 8
tst1
ca0		|col 1
tst1+1
cs0		|set to no e fields on card.
tse9+2
c11,sp		|exit
c17,cac7+13
spc16
c7,+9
c7+1,+9
c7+2,+9
c7+3,+9
c7+4,sic7		|constants
c7+5,+9		|
c7+6,tsc7+3		|
c7+7,+5		|
c7+10,+0		|temp
c7+11,sic6-12		|constants
c7+12,cac7+3		|
c7+13,+9999
c7+14,+0		|temp
c7+15,1.70000		|constant
c7+16,+9999
c7+17,+0
c7+20,p61
c1,+0		|sd temp
c1+1,+0		|
c1+2,+0		|
c1+3,+0		|
c1+4,+0		|
c2,sic1		|constants
c2+1,tsc1+4		|
c2+2,sic4		|
c2+3,cac6		|
c2+4,+36		|
c2+5,+4
c2+6,+60		|
c2+7,1.40000		|
c2+10,+58		|
c2+11,0.00017		|
c4,+0		|9 row
+0
+0
+0
c4+4,+1
0r,+0
DITTO
62r|+0		|12 row
+0
+0
+0
c6,+0
a8,cat1+1		|col no
ck0
spa10		|null card
spa9
f9,cs0
spf10
r1,tar2
cac2		|reset registers which contain 16 bit sd sums
tdc3+1
c3,ca0
c3+1,ts
aoc3+1
suc2+1
cpc3
cac2+2		|form 16 digit sd sums
tdc5		|in c1+i i=0,...,4
c13,cac2
tdc5+1
tdc5+2
c5,ca
c5+1,sd
c5+2,ts
aoc5
aoc5+1
aoc5+2
suc2+1
cpc5
cac5
suc2+3
cpc13
cac1+3		|form 36 digit sd sum
clh20
adc1+2
clh4
sdc1
tsc1
clh40-4		|crh 4
ex0
adc1+4
clh20+4
sdc1+1
tsc1+1
clh20
sdc1+2
clh40-14		|crh 12
mdc2+11
tsc1+2
r2,sp
|Error Routine in A Field
e16,tae19		|address of error number
ts3e18		|number of incorrect card
ca5e18
ts11e14		|e16 initialization
sp1e15
e15,tae19		|address of error number
ca6e18
ts10e14		|e15 initialization
sp1e14
e14,tae19		|address of error number
cf1000		|test B field
md4e18		|mask 0.00007
tse18		|original B field
cf103		|bring in error remark field
cae19
td2e18
ao2e18		|return after RESTART
10e14,clh0		|e15 initialization
11e14,clh0		|e16 initialization
e19,ca+
ts1e18		|error number
sppa1		|error print out
cae20		|return from print out
ade18		|original B field
tse20
e20,cf100		|restore original B field
ca2e18		|return after RESTART
tde21
e21,sp+		|return to program after error
e22,ta5e22
ca3e18
tspa3		|number of incorrect card
ca10e18
tspa4		|set e16 error indicator
sp+
e23,ta3e23
ca7e18
tspa5		|disable halt
sp+		|EXIT
e18,0		|original B field
1e18,0		|error number
2e18,0		|return after RESTART
3e18,0		|number of incorrect card
4e18,0.00007		|mask
5e18,spe22		|e16 initialization
6e18,spe23		|e15 initialization
7e18,clh0		|do nothing
10e18,1.00000		|e16 indicator
1777|z2,
2000|z1,
START AT 32
