Original KAL4 assembler
This assembler listing is from an assembler written long after the KDF9 existed.
There are hot links for all references to subroutines.
You can click on the routine name in code such as JS.pproc;
and jump to the routine.
When you have seen enough of it, you can use the back button to carry on where you left off.
The genuine listing produced by the program listed here when assembling itself is
here.
Started
Loaded 72081 bytes for EDNKAL4z.k4
Setvstore 12 -- implemented as 48 bits STR;
Setvstore 12 -- implemented as 48 bits STR;
Promoted label options was not defined in this block
Promoted label options was not defined in this block
Promoted label openinput was not defined in this block
Promoted label lookup was not defined in this block
Setvstore 12 -- implemented as 48 bits STR;
Promoted label claimptr was not defined in this block
trying to promote ptread out of the root block
trying to promote endbase out of the root block
Reached end of file
=============== Second pass
===========================
begin
/[ KAL4 assembler written by John Thomason and copy typed by David Holdsworth
/[ *Q on listing is underlined [ on flex and { in this file -- similarly *u is }
/[ This file needs to be in ISO not UTF-8, i.e. this × is a multiplication sign
/[ comments introduced by /[ have been added in the 21st century
/[ Some hypotheses
/[ Q7 addresses a stack of identifier entries growing down from the top of memory
/[ dictionary entry is 2 words with identifier in 2nd word
/[ 1st word Q syll / line no / word
/[ M7 addresses next free slot
/[ ----- page 01
gap = 0:
bjtime=300: /maximum time limits
fjtime=30: /fjtime is default time limit for all jobs
mcsize=29600: /maximum size for binaries
prog=0: /form B-block
0/0: 200 260 010|000 000 000 J.8; =H0;
4/0: 200 321 345|201 261 346 prog=4: JS.rs1; J.rs2; /restart
prog=8:
begin label failmark, endmark, zeroout, catfail, fail, ptr, failno;
10/0: 304 011 140|170 023|157 002|146 040|140 040|110 000|170 163|152 006
SET.code; SRM1; QFRQ0/2; ITWO2; M+I2; FMMN0/0; SRM7; IFRQ0/6;
12/5: 304 000 060|170 071|200 320 151|221 307 272|173 000|052|205 267 055
SET48; SRC3; JS.openoutput; JEJ.ptinput; FLINK; ERASE; J.openinput;
15/4: 041|033|042|113 041|027|164 077|300 001 240|011|301 001 240 opened: ZERO; NOT; DUP; SMMQN2/1; NEG; SHL31; F.indisc; OR; S.indisc;
20/1: 100 000|101 020|147 160|140 160|041|301 020 005|151 043|203 264 021
FMM0/0; SMM1/0; IMTWO7; M+I7; ZERO; SM1.5; MFRQ2/3; J.dumbeg;
23/0: 000 000 000 000 000 000 *failmark:=0;
24/0: 000 000 000 000 000 000 endmark:=0;
25/0: 240 020 067 067 064 067|236 046 071 236 377 377 error:= {*cError*sat*s};
27/0: 002 031 264 227 040 077 after:= P *safter*s;
30/0: 240 021 014 024 027 036 fl:= {*cFAILS};
31/0: 236 000 000 000 236 377|056 063 236 072 065 051|046 071 056 063 054 236
ptr:= {*s ××× *s*d in *s updating *s};
34/0: 000 000 000 000 000 000 cline:= 0; /basic symbol pointer at start of current line
35/0: 041|200 220 000|136 010 zeroout: ZERO; OUT; MRWDQ0; /used as default restarts
36/0: 304 013 202 fl12: SET≠5602;
36/3: 301 001 237 nfail: S.failno;
37/0: 304 377 234|301 000 023|300 000 030|301 000 025 catfail: SET-100; S.failmark; F.fl; S.error;
41/0: 220 300 042|173 000|052|205 240 041|203 300 041 fail: JEJ.prog+1; FLINK; ERASE; JNEN.prog-0s1; JNEJ.prog-1;
43/0: 300 000 026|300 000 025|203 321 150 failm: F.error+1; F.error; JS.printtwo;
44/3: 171 070|304 000 070|054|170 070|304 000 377|042|205 321 175 FC3; SET≠70; AND; SC3; SET≠377; DUP; JS.printadd+0s3;
47/0: 200 321 205|300 000 027|204 321 221|300 001 234|065|203 321 170
JS.printline; F.after; JS.print8; F.lastlab; REV; JS.printid+0s3;
51/4: 300 001 235|202 321 205|203 320 112 F.lineno; JS.printline+0s2; JS.prnl;
53/1: 300 000 023|033|027|042|301 000 023 F.failmark; NOT; NEG; DUP; S.failmark;
54/4: 042|220 041 243|164 367|300 000 024|202 140 076 DUP; JLTZ.windup; SHL-5; F.endmark; JNEZ.upderr;
56/4: 171 336|171 316|154 015|300 000 034|170 316 FQ13; FQ12; CFRQ0/13; F.cline; SQ12;
60/3: 171 316|225 020 062|204 320 360|200 320 113|203 260 060|065 pl: FQ12; JEQ.pw-0s1;JS.inbs; JS.oubs; J.pl;REV;
63/0: 171 336|225 020 066 pw: FQ13; JEQ.pr-3;
63/5: 204 320 360|304 000 240|205 020 065|203 321 156|200 320 113|200 260 063
JS.inbs; SET≠240; JNE.prog+1;JS.countl; JS.oubs; J.pw;
66/5: 300 000 031|200 321 151|265 320 071|265 300 071|304 000 240|202 260 072
F.ptr; JS.printsix; JCNZ13.pr; JCNZ12.pr; SET≠240; J.pr+0s3;
71/5: 204 320 360|042|200 320 113|304 000 240|015|205 140 071 pr: JS.inbs; DUP; JS.oubs; SET≠240; NEV; JNEZ.pr;
74/1: 170 336|170 316|203 140 102|205 322 237|200 262 016 SQ13; SQ12; JNEZ.fl3; JS.round; J.nxitem;
76/2: 300 000 033|300 000 032|203 321 150 upderr: F.ptr+2; F.ptr+1; JS.printtwo;
77/5: 110 240|042|304 000 377|203 321 170 FMMN10/0; DUP; SET≠377; JS.printid+0s3;
101/2: 203 320 112|065|223 144 061 JS.prnl; REV; JEQZ.updfail;
102/3: 304 000 003|203 260 036 fl3: SET3; J.nfail; /more than 32 errors
/options
103/3: 017|017|017|000 000 000 000 000 000 *test:= 0; / -1 bin 0 load and go
105/0: 377 377 377 377 377 377 length:= -1; / 1 C 2 8 3 L 0 8 with text -1 L with text
106/0: 000 000 000 000 000 000 tables:= 0; / -1 tables 0 w/o tables
107/0: 000 000 000 000 000 000 ptbin:=0; / 0 disc binaries, ≠0 P.T. binaries
110/0: 000 000 000 000 000 000 jq:=0; /0 foreground, 1 background, -1 paper tape
111/0: 000 000 000 000 000 000|000 000 000 timelt:=0; =H0;
112/3: 304 000 240 prnl: SET≠240; /output newline
/out basic symbol
/ptoubs comes in here
/[ ----- page 02
begin
label openoutput, bfr, oubs;
113/0: 001|042|164 365|201 140 133|200 321 213 *oubs: VR; DUP; SHL-6; JNEZ.long; JS.bstopr;
114/4: 100 340|161 015|011|101 340|221 200 127|200 360 000 char: FMM14/0; SHA6; OR; SMM14/0; JV.nwd; EXITH;
116/5: 304 000 002|204 020 114|140 340|052 ouch: SET2; JNE.char; M+I14; ERASE;
120/2: 304 377 302|101 340|156 376|241 360 123 tfr: SET≠177702; SMM14/0; CIFRQ15/14;JCZ15.out8;
122/0: 121 340|130 340|203 260 125 PARQ14; LPQ14; J.reset;
123/1: 304 000 030|301 000 147|171 356|304 000 010|200 220 000 out8: SET≠30; S.bfr; FQ14; SET8; OUT;
125/3: 304 000 020|170 351|304 000 147|170 342 reset: SET16; SRC14; SET.bfr; SM14;
127/1: 304 377 376|113 340|242 340 120|200 360 000 nwd: SET≠177776; SMMQN14/0; JCZ14.tfr; EXITH;
131/0: 052|100 340|161 015|203 200 131|101 340|201 260 127 tab: ERASE; FMM14/0; SHA6; JNV.prog-0s2; SMM14/0; J.nwd;
133/1: 304 000 256|220 020 131|304 000 377|222 020 146 long: SET≠256; JEQ.tab; SET≠377; JEQ.du;
135/1: 171 336|065|304 000 107|170 331 FQ13; REV; SET.endtable-table; SRC13;
136/3: 017|017|017|302 320 170|047|052|164 271|220 020 141|177 320 *loop: FMQ13.table; STR; ERASE; SHL-36; JEQ.found; JCNZS13;
141/0: 052|300 320 170|300 320 167|066|170 336 found: ERASE; FM13.table; FM13.table-1; CAB; SQ13;
142/4: 047|166 031|203 040 144|042|203 320 144|042 STR; SHLD+12; JGEZ.unpk; DUP; JS.unpk; DUP;
144/3: 041|166 015|205 320 116|042|203 140 144|052 unpk: ZERO; SHLD6; JS.ouch; DUP; JNEZ.unpk; ERASE;
146/2: 052|200 360 000 du: ERASE; EXITH;
Setvstore 12 -- implemented as 48 bits STR;
147/0: 000 000 000 000 000 000 000 000 000 000 000 000 *bfr:=D 0;
151/0: 304 000 147|170 365|203 260 125 openoutput: SET.bfr; SRI15; J.reset;
prog=bfr+17: /output buffer - 17 words for L.P.
/teletype output can overflow into character table
170/0: 011 340 000 000 000 000|012 000 200 000 000 000 *table:= ≠0236 000000000000; = ≠ 0240 020000000000;
172/0: 011 207 000 000 000 000|012 023 300 000 000 000|014 027 100 000 000 000
=≠0230 340000000000; =≠0241 170000000000; =≠0301 350000000000;
175/0: 010 303 142 226 172 156|011 303 145 272 100 000 =≠0214 154245475156; =≠0234 154556440000;
177/0: 015 027 200 000 000 000|013 023 100 000 000 000|011 023 144 247 140 000
=≠0321 360000000000; =≠0261 150000000000; =≠0221 154451660000;
202/0: 010 023 115 000 000 000|013 222 000 000 000 000|012 042 100 000 000 000
=≠0201 151500000000; =≠0271 100000000000; =≠0242 110000000000;
205/0: 013 122 011 000 000 000|015 043 156 224 000 000|014 043 147 320 000 000
=≠0265 101100000000; =≠0322 155645000000; =≠0302 154764000000;
210/0: 010 043 154 320 000 000|013 043 147 224 000 000|011 043 154 224 000 000
=≠0202 155464000000; =≠0262 154745000000; =≠0222 155445000000;
213/0: 012 143 200 000 000 000|010 102 200 000 000 000|011 102 300 000 000 000
=≠0246 160000000000; =≠0204 120000000000; =≠0224 130000000000;
216/0: 010 223 112 000 000 000|011 223 113 000 000 000|010 323 161 000 000 000
=≠0211 151200000000; =≠0231 151300000000; =≠0215 156100000000;
221/0: 011 323 165 000 000 000|010 343 000 000 000 000|013 343 145 264 040 000
=≠0235 156500000000; =≠0216 140000000000; =≠0276 154555020000;
224/0: 004 023 162 226 033 000|204 043 151 273 111 147|227 040 000 000 000 000
=≠0101 156245415400; =≠4102 155156644547; =≠4562 000000000000;
227/0: 010 143 146 277 040 000|015 143 144 274 000 000|013 143 163 322 134 000
=≠0206 154657620000; =≠0326 154457000000; =≠0266 156364456000;
232/0: 014 143 165 273 112 154|011 143 167 242 233 045|210 003 143 276 333 145
=≠0306 156556645154; =≠0226 156750515445; =≠4200 154357555545;
235/0: 273 100 000 000 000 000|204 063 142 276 373 045|206 340 000 000 000 000
=≠5664 000000000000; =≠4103 154257575445; =≠4156 000000000000;
240/0: 004 203 041 313 050 171|205 003 160 312 370 345|223 134 245 000 000 000
=≠0110 144162624171; =≠4120 156062574345; =≠44656245 00000000;
243/0: 011 363 166 206 315 145|007 223 154 206 051 154|205 203 163 336 235 043
=≠0237 156641546545; =≠0171 155441424554; =≠4130 156367516443;
246/0: 240 000 000 000 000 000|207 243 163 323 052 156|234 000 000 000 000 000
=≠50 00000000000000; =≠4172 156364625156; =≠47 00000000000000;
251/0: 010 363 157 236 340 000|010 123 151 230 000 000|014 343 165 226 320 200
=≠0217 155747560000; =≠0205 155146000000; =≠0316 156545550200;
254/0: 011 123 164 242 133 200|012 123 145 263 071 100|010 203 147 277 113 300
=≠0225 156450455600; =≠0245 154554634500; =≠0210 154757645700;
257/0: 011 063 141 272 100 000|012 063 157 310 000 000|013 063 151 267 000 000
=≠0223 154156440000; =≠0243 155762000000; =≠0263 155155600000;
262/0: 014 063 145 307 140 000|010 063 156 277 100 000|015 323 164 313 131 100
=≠0303 154561660000; =≠0203 155657640000; =≠0335 156462654500;
265/0: 014 323 146 206 314 345|215 003 154 246 054 241|313 220 000 000 000 000
=≠0315 154641546345; =≠4320 155451426241; =≠6271 000000000000;
270/0: 013 003 153 222 146 100|017 003 145 342 235 000|216 003 163 226 173 145
=≠0260 155344463100; =≠0360 154570516400; =≠4340 156345475545;
273/0: 273 100 000 000 000 000|014 003 141 262 173 354|011 001 300 000 000 000
=≠5664 000000000000; =≠0300 154154475754; =≠0220 070000000000;
276/0: 037 361 200 000 000 000 =≠0777 060000000000;
endtable=prog:
end
begin /basic symbol to teletype
277/0: 203 260 277 *entry: J.outt; /to overwrite oubs
277/3: 001|100 340|161 021|011|101 340|225 200 301|200 360 000 outt: VR; FMM14/0; SHA8; OR;SMM14/0; JV.word; EXITH;
301/5: 242 340 307|171 344|113 340|200 360 000 word: JCZ14.tfr; FI14; SMMQN14/0; EXITH;
303/3: 001|100 340|033|161 021|201 200 304|033 finoutt: VR; FMM14/0; NOT; SHA8; JNV.prog-0s2; NOT;
305/1: 101 340|242 340 307 SMM14/0; JCZ14.tfr;
306/0: 300 000 325|113 340|260 340 306 F.sixz; SMMQN14/0; JCNZ14.prog-0s5;
307/2: 171 376|304 000 041|200 220 000 tfr: FQ15; SET33; OUT;
310/4: 171 370|033|027|304 000 023|032|052|170 370 FC15; NOT; NEG; SET19; MAX; ERASE; SC15;
312/3: 300 000 324|170 356|204 200 316|143 360 F.qwd; SQ14; JNV.end; DC15;
314/1: 300 000 326|103 340|300 000 327|103 340|300 000 330|103 340 F.sixz+1; SMMQ14/0; F.sixz+2; SMMQ14/0; F.sixz+3; SMMQ14/0;
316/4: 171 344|101 340|200 360 000 end: FI14; SMM14/0; EXITH;
317/5: 300 000 277|301 000 113|300 000 324|042|170 356|167 041|170 376|140 360
openoutt: F.entry; S.oubs; F.qwd; DUP; SQ14; SHC+16; SQ15; M+I15;
322/5: 304 001 336|200 260 317 SET≠736; J.end+0s2;
/[ ----- page 03
323/5: 017|000 047 000 001 000 147 *qwd:= Q 39 / 1 / bfr;
325/0: 316 316 316 316 316 316|240 240 240 037 064 064|236 062 072 050 055 236|032 241 033 240 240 240
sixz:= {*6z *3c Too*smuch*sO/P*3c};
label openoutt, outt, finoutt;
end
prog=prog+gap: /allow elbow-room for slotting ptoubs
331/0: 000 000 006 340 011 137 *transfer: =Q 0 / block /block+639;
332/0: 034 055 002 171 347 236|171 347 236 171 347 236 texid:= P *n*cT*c------------; /file ident to check chaining
334/0: 165 003 320 101 046 131 jobno:= P +0/00299; /systems box in case of book /[ a Leeds Univ job no of the KDF9 era
335/0: 302 115 170 076 075 145 magic:= P PDUX /CUE; /stats code - disc or P.T.
336/0: 377 377 377 377 200 000 dlost:= -32768;
Setvstore 12 -- implemented as 48 bits STR;
337/0: 000 000 000 000 000 000 000 000 000 000 000 000 time:= D 0; / ran/el times for Adrian /[ Adrian Hock was head of user services
341/0: 177 377 377 337 120 000 eml:= ≠3777777767650000; /last line of text after SHL2; SHAD5;
begin label initial;
342/0: 300 006 355|200 321 011|300 006 340|300 006 341 initial: F.block+13; JS.discread; F.block; F.block+1;
344/0: 202 321 161|300 000 107|224 140 352 JS.chfile+1; F.ptbin; JEQZ.open;
345/3: 304 000 002|167 365|304 000 004|170 271|041|300 266 342|166 365|066|011
SET2; SHC-6; SET4; SRC11; ZERO; FM11.block+2; SHLD-6; CAB; OR;
350/3: 303 266 200|261 260 347|304 000 075|011|301 006 204 SMQ11.ablock+3; JCNZ11.prog-1s5; SET≠75; OR; S.ablock+7;
352/4: 300 001 134|204 140 015|300 007 060|301 006 340|300 007 061|042
open: F.ptfile; JNEZ.opened; F.block+80; S.block; F.block+81; DUP;
355/2: 027|170 303|202 321 160|171 316|301 000 034|304 007 061|056|170 336|204 260 015
NEG; SRM12; JS.chfile; FQ12; S.cline; SET.block+81; +; SQ13; J.opened;
label inbs, line, options, blocks;
360/4: 263 320 376|260 300 375 inbs: JCNZ13.next; JCNZ12.nword;
361/4: 171 302|204 140 367|300 001 124|203 141 107 newline: FM12; JNEZ.line; F.inlib; JNEZ.nblock;
363/3: 017|017|017|300 006 340|200 321 011|202 321 160|300 006 341 *blocks: F.block; JS.discread; JS.chfile; F.block+1;
366/0: 042|027|170 303|304 006 341|056|170 322 DUP; NEG; SRM12; SET.block+1; +; SM13;
367/4: 171 316|301 000 034|110 315|041|166 005|065|041|162 013 line: FQ12; S.cline; FMMN12/13; ZERO; SHLD2; REV; ZERO; SHAD5;
372/0: 170 310|304 000 010|170 330|065|201 141 003|300 000 341|015|221 141 001
SC12; SET8; SC13; REV; JNEZ.dummyl; F.eml; NEV; JEQZ.em;
375/0: 304 377 320|172 330 nword: SET-48; S+C13;
375/5: 140 300|143 300 first: M+I12; DC12;
376/3: 304 000 010|172 330|304 000 377|100 315|164 320|054|200 360 000
next: SET8; S+C13; SET≠377; FMM12/13; SHLC13; AND; EXITH;
401/1: 300 001 124|200 141 077|304 000 001|203 260 036 em: F.inlib; JNEZ.endlib; SET1; J.nfail;
403/1: 164 263|304 000 367|056|042|161 377|225 141 006|052 dummyl: SHL-39; SET≠367; +; DUP; SHA-1; JEQZ.ta; ERASE;
405/2: 171 310|172 302|154 014|204 260 361 dl: FC12; S+M12; CFRQ0/12; J.newline;
406/5: 301 000 106|203 320 112|041|301 001 233|202 261 005 ta: S.tables; JS.prnl; ZERO; S.refcount; J.dl;
end
label blocks, line, jq, ptbin, test, length, tables, oubs, openoutput;
label discread, transfer, openinput, inbs, libcall, chfile, reread, erex;
411/0: 042|301 001 240|300 000 331|166 041|167 341|065 discread: DUP; S.indisc; F.transfer; SHLD16; SHC-16; REV;
413/0: 164 041|304 000 040|200 220 000|200 360 000 SHL16; SET32; OUT; EXITH;
414/5: 300 001 134|202 141 014|300 001 240|042|204 321 011 reread: F.ptfile; JNEZ.prog-1; F.indisc; DUP; JS.discread+0s4;
417/0: 202 321 160|164 041|202 041 021|300 007 060|301 006 340|200 360 000
JS.chfile; SHL16; JGEZ.prog+1s3; F.block+80; S.block; EXITH;
libcall: /library insertion
begin label lib F.O.C, endlib, nblock, inlib;
421/5: 300 000 034|301 001 123|202 322 260|140 040|300 001 125|170 216
F.cline; S.oldcline; JS.input; M+I2; F.idbfr; SQ8;
424/3: 102 041|042|164 365|200 140 041|200 321 213|300 001 343|164 321
onelib: FMMQ2/1; DUP; SHL-6; JNEZ.fail; JS.bstopr; F.zer; SHL-24;
427/1: 102 041|042|304 000 012|037|202 041 033|304 000 020|011 ndig: FMMQ2/1; DUP; SET10; SIGN; JGEZ.last; SET≠20; OR;
431/3: 065|001|161 015|011|201 201 027|200 260 041 REV; VR; SHA6; OR; JNV.ndig; J.fail;
433/2: 012|041|166 061|220 140 041|065|166 365|052|103 200 last: PERM; ZERO; SHLD24; JEQZ.fail; REV; SHLD-6; ERASE; SMMQ8/0;
435/3: 304 000 230|222 021 033|304 000 246|015|200 140 041|263 201 024|200 260 041
SET≠230; JEQ.last; SET≠246; NEV; JNEZ.fail; JCNZ8.onelib; J.fail;
440/4: 052|304 377 327|172 210|304 006 241|170 202|142 200 lastlib: ERASE; SET-41; S+C8; SET.f-1; SM8; NC8;
442/5: 300 001 126|170 236|300 001 127 F.blkscan; SQ9; F.lib F.O.C;
444/1: 157 212|017|017|017|112 240|225 041 046|017|177 240|202 261 060
nblk: QFRQ8/10; * FMMQN10/0; JLTZ.prog+1s3; *JCNZS10; J.endind;
446/5: 042|222 141 060|204 321 011 DUP; JEQZ.endind; JS.discread+0s4;
450/0: 157 212|300 011 137|041 QFRQ8/10; F.block+639; ZERO;
451/0: 052|241 241 044|112 240|042|200 041 051|157 233 scan: ERASE; JCZ10.nblk; FMMQN10/0; DUP; JGEZ.scan; QFRQ9/11;
453/0: 102 260|043|015|164 335|223 141 055|052|177 260|200 261 051 *FMMQ11/0; DUPD; NEV; SHL-18; JEQZ.match; ERASE; JCNZS11; J.scan;
455/3: 102 260|042|170 136|223 041 055|170 364|171 136|101 240|200 261 051
match: FMMQ11/0; DUP; SQ5; JLTZ.match; SI15; FQ5; SMM10/0; J.scan;
460/2: 052|157 212|157 211|017|017|017|017|017|112 240|042|224 041 071|113 220
endind: ERASE; QFRQ8/10; QFRQ8/9; * FMMQN10/0; DUP; JLTZ.err; SMMQN9/0;
/[ ----- page 04
463/2: 177 240|171 230|027|172 210|171 316|301 001 121|171 336|301 001 122|244 221 067
echeck: JCNZS10; FC9; NEG; S+C8; FQ12; S.q12; FQ13; S.q13; JCZ9.prog+1s3;
466/4: 203 320 112|203 320 112|041|033|301 001 124|140 200|171 216|203 261 077
JS.prnl; JS.prnl; ZERO; NOT; S.inlib; M+I8; FQ8; J.endlib+0s3;
471/4: 300 001 132|204 321 221|164 365|304 000 056|011|204 321 221 err: F.mess; JS.print8; SHL-6; SET≠56; OR; JS.print8;
474/1: 300 001 133|204 321 221|300 000 023|033|027|301 000 023|202 261 063
F.mess+1; JS.print8; F.failmark; NOT; NEG; S.failmark; J.echeck;
477/0: 300 001 130|170 236|241 221 112|102 220|171 236|301 001 130 endlib: F.libaddrs; SQ9; JCZ9.exit; FMMQ9/0; FQ9; S.libaddrs;
501/3: 042|170 236|204 321 011|171 224 DUP; SQ9; JS.discread+0s4; FI9;
502/5: 304 006 340|056|170 336|100 320|164 075|047|301 001 131|167 045|042|027|170 303
reset: SET.block; +; SQ13; FMM13/0; SHL30; STR; S.cont; SHC18; DUP; NEG; SRM12;
506/1: 172 322|220 302 016 S+M13; JEJ.nxitem; /symbol is only wanted if JS used
507/0: 204 260 361 J.inbs+1; /newline to cure running of end of lib file(RRH)
507/3: 300 001 131|223 141 117|300 011 137|204 321 011 nblock: F.cont; JEQZ.fl8; F.block+639; JS.discread+0s4;
511/3: 041|205 261 102 ZERO; J.reset;
512/1: 204 321 114|300 001 123|301 000 034|204 300 360|200 262 016 exit: JS.restore; F.oldcline; S.cline; JNEJ.inbs; J.nxitem;
514/4: 300 001 121|170 316|300 001 122|170 336|041|301 001 124|205 261 014
restore: F.q12; SQ12; F.q13; SQ13; ZERO; S.inlib; J.reread;
517/3: 304 000 010|203 260 036 fl8: SET8; J.nfail;
520/3: 017|017|017|000 000 000 000 000 000 *q12:= 0;
522/0: 000 000 000 000 000 000 q13:= 0;
523/0: 000 000 000 000 000 000 oldcline:= 0;
524/0: 000 000 000 000 000 000 inlib:= 0;
525/0: 000 051 000 001 006 242 idbfr:= Q 41/1/f;
526/0: 002 177 377 377 011 137 blkscan:= Q 639/-1/block+639;
527/0: 000 000 000 000 000 000 lib F.O.C:= 0;
530/0: 000 000 000 000 000 000 libaddrs:= 0;
531/0: 000 000 000 000 000 000 cont:= 0;
532/0: 012 312 142 312 034 271|103 100 046 277 133 244 mess:= P *clibrary 0t *s found;
end
534/0: 000 000 000 000 000 000 *ptfile:=0; /non-zero if input is direct from paper tape
535/0: 000 241 006 236 377 377 tail:= {0/6*s};
536/0: 236|377|240|240|256|377|377|377|261 syms:= S{*s*d*c*c*t*3d:}; /symbol table for lptobs, print8
537/3: 242|204|224|216|000|245|241|000|001|002|003|004|005|006|007|010|011|377|230|271|311|013|377|014|015|016|017|020|021|022|023|024|025|026|027|030|031|032|033|034|035|036|037|040|041|042|043|044|045|077|077|077|077|377
= S {= ( ) *a × , / 0123456789 *d @ ; + - . *d
ABCDEFGHIJKLMNOPQRSTUVWXYZ *4x*d};
550/3: 200 321 151 printtwo: JS.printsix; /print two words via printsix
printsix: /outputs six symbols packed in N1
551/0: 042|033|222 141 167|041|166 021 DUP; NOT; J=Z.erex; ZERO; SHLD8;
552/2: 200 320 113|304 000 377|011|200 261 151 JS.oubs; SET≠377; OR; J.printsix;
checkz: /used for leading zero suppression
554/0: 042|223 141 155|151 013|200 360 000 begin DUP; J=Z.zero; MFRQ0/11; EXITH;
555/3: 052|171 262|200 360 000 zero: ERASE; FM11; EXITH;
end
556/3: 171 024|300 001 124|056|172 144|200 360 000 countl: FI1; F.inlib; +; S+I6; EXITH;
560/2: 300 011 134|300 011 135 chfile: F.block+636; F.block+637;
561/2: 300 000 333|015|065|300 000 332|015|011|200 140 036|200 360 000
F.texid+1; NEV; REV; F.texid; NEV; OR; JNEZ.fl12; EXITH;
space: /check store used
564/0: 171 062|300 001 236|032|171 022|056|016 FM3; F.inbfr; MAX; FM1; +; ROUND;
565/4: 171 162|036|300 000 336|032|301 000 336 space1: FM7; -; F.dlost; MAX; S.dlost;
567/2: 052|200 360 000 erex: ERASE; EXITH;
printid: /print packed identifier
570/0: 304 000 236|170 262|304 000 010|170 270|167 015 begin SET≠236; SM11; SET8; SC11; SHC6;
572/0: 167 351|041|166 015|143 260 loop: SHC-12; ZERO; SHLD6; DC11;
573/1: 200 321 154|200 320 113|260 261 172 JS.checkz; JS.oubs; JCNZ11.loop;
574/4: 052|200 360 000 end ERASE; EXITH;
printadd: /print program address from Q3
575/2: 304 000 236|042|170 262|200 320 113 begin SET≠236; DUP; SM11; JS.oubs;
576/5: 171 062|164 103|304 000 004|170 270 FM3; SHL33; SET4; SC11;
600/2: 041|166 007|200 321 154 word: ZERO; SHLD3; JS.checkz;
601/2: 200 320 113|143 260|262 261 200 JS.oubs; DC11; JCNZ11.word;
602/4: 164 367|300 001 135|011|171 070|164 053|036|200 261 151 SHL-5; F.tail; OR; FC3; SHL21; -; J.printsix;
/[ ----- page 05
end
printline: /outputs current line number
605/0: 171 144|304 000 236|200 320 113 FI6; SET≠236; JS.oubs;
606/2: 300 001 232|300 001 231|066|067|166 365 F.ssss; F.decimal; CAB; FRB; SHLD-6;
610/0: 065|164 375|065|042|204 141 207|052 REV; SHL-2; REV; DUP; JNEZ.prog-0s7; ERASE;
611/3: 304 027 013|166 341|052|200 261 151 SET≠13413; SHLD-16; ERASE; J.printsix;
bstopr: /6-bit B.S. to printer code
613/0: 304 000 014|036|042|222 041 216|304 000 032|044|304 000 041 begin SET12; -; DUP; JLTZ.num; SET26; DIVI; SET≠41;
615/3: 056|016|200 360 000 ex: +; ROUND; EXITH;
616/2: 304 000 034|065|043|161 375|203 141 215 num: SET≠34; REV; DUPD; SHA-2; JNEZ.ex;
620/0: 042|164 375|066|164 005|056|203 261 215 DUP; SHL-2; CAB; SHL2; +; J.ex;
end
621/4: 033|042|222 141 167|041|033|166 015|033 print8: NOT; DUP; JEQZ.erex; ZERO; NOT; SHLD6; NOT;
623/2: 205 321 224|200 320 113|205 261 221 JS.lptobs; JS.oubs; J.print8+0s1;
624/5: 304 000 006|044|164 007|170 270|170 262 lptobs: SET6; DIVI; SHL3; SC11; SM11;
626/3: 300 261 136|164 260|164 261|200 360 000 FM11.syms; SHLC11; SHL-40; EXITH;
label countl, space, space1, printid, printline, bstopr, print8;
label initial, fl12, texid, lib F.O.C, openoutt;
label timelt, printsix, printadd, decimal, printtwo, windup, inlib;
630/1: 017|017|017|017|017|050 242 212 050 242 212 *decimal:=≠1212121212121212;
632/0: 236 236 236 236 377 377 ssss:={*4s};
633/0: 000 000 000 000 000 000 refcount:=0;
634/0: 111 247 133 000 000 000 lastlab:=× GORP;
635/0: 000 000 000 000 000 000 lineno:=0; /line number of last label
636/0: 000 000 000 000 000 010 inbfr:=8;
637/0: 000 000 000 000 000 000 failno:=0;
640/0: 000 000 000 000 000 000 indisc:=0;
641/0: 377 377 377 377 377 377 flag:=-1;
642/0: 000 030 000 030 000 030 closestr:= Q ≠30/≠30/≠30;
label ptfile, refcount, lastlab, lineno, inbfr, indisc, flag, dlost;
windup: /end of translate
643/0: 300 000 023|224 141 245|300 001 335|300 001 237|015|301 001 334
begin F.failmark; JEQZ.ok; F.fls; F.failno; NEV; S. okw;
645/4: 300 001 333|200 321 151|300 001 334|204 321 221 ok: F.k4; JS.printsix; F.okw; JS.print8;
647/4: 300 001 336|200 321 151|304 374 054|164 015|300 001 231|304 000 003|200 220 000
F.ran; JS.printsix; SET≠176054; SHL6; F.decimal; SET3; OUT;
653/0: 300 000 337|036|304 000 012|164 057|035|067|166 365|065|167 355|065|200 321 330
F.time; -; SET10; SHL23; ×; FRB; SHLD-6; REV; SHC-10; REV; JS.prno;
656/2: 300 001 337|200 321 151|300 001 340|204 321 221|300 001 341|204 321 221
F.sex; JS.printsix; F.snw; JS.print8; F.snw+1; JS.print8;
661/2: 200 321 164|041|033|300 001 231|110 000|174 000|173 000 JS.space; ZERO; NOT; F.decimal; FMMN0/0; SLINK; FLINK;
663/4: 300 000 336|056|164 367|033|027|033|027|164 013 F.dlost; +; SHL-5; NOT; NEG; NOT; NEG; SHL5;
665/4: 067|200 321 330|300 001 342|204 321 221 FRB; JS.prno; F.snw+2; JS.print8;
667/2: 300 000 105|027|033|224 141 273|300 000 110|202 141 316 F.length; NEG; NOT; JEQZ.end; F.jq; JNEZ.typeend;
671/4: 304 000 001|301 000 105|205 320 317|204 261 245 SET1; S.length; JS.openoutt; J.ok;
673/4: 203 320 303|304 000 021|200 220 000 end: JS.finoutt; SET17; OUT;
675/1: 300 000 337|036|204 321 325|301 000 337|300 000 340|204 321 325|301 000 340
F.time; -; JS.frb; S.time; F.time+1; JS.frb; S.time+1;
700/2: 110 000|164 061|204 321 325|301 000 336|300 020 003|164 111|164 255
FMMN0/0; SHL24; JS.frb; S.dlost; FM1.3; SHL36; SHL-42;
703/1: 304 000 060|223 021 305|304 000 063|223 021 305|052|041 SET≠60; JEQ.pors; SET≠63; JEQ.pors; ERASE; ZERO;
705/3: 167 365|300 000 335|011|300 001 134|205 141 307|164 321 pors: SHC-6; F.magic; OR; F.ptfile; JNEZ.prog+0s5; SHL-24;
707/5: 164 061|301 000 335|304 000 007|170 263|304 000 331|170 264|100 260|301 000 331
SHL+24; S.magic; SET7; SRM11; SET.transfer; SI11; FMM11/0; S.transfer;
713/1: 140 260|171 276|304 000 062|200 220 000 M+I11; FQ11; SET50; OUT;
714/5: 300 000 023|201 144 110|200 360 000 F.failmark; JNEZ.stop; EXITH;
716/2: 300 000 105|167 377|224 041 320|304 000 276|200 320 113 typeend: F.length; SHC-1; JLTZ.prog+1s3; SET≠276; JS.oubs;
720/4: 300 000 104|033|300 000 023|011|221 141 274 F.test; NOT; F.failmark; OR; JEQZ.end+0s3;
/suppress O.K. flex message after on disc or punched
722/3: 300 001 334|300 000 333|300 000 332|033|164 061|033|204 326 322|201 261 274
F.okw; F.texid+1; F.texid; NOT; SHL24; NOT; JS.type; J.end+0s3;
725/4: 161 321|300 001 231|065|067|300 001 343|011|200 360 000 frb: SHA-24; F.decimal; REV; FRB; F.zer; OR; EXITH;
730/0: 166 365|065|164 375|065|042|200 141 330|052|200 261 151 prno: SHLD-6; REV; SHL-2; REV; DUP; JNEZ.prog-0s7; ERASE; J.printsix;
732/2: 017|017|017|017|240 026 014 027 004 377 *k4:= {*c KAL4 };
/[ ----- page 06
734/0: 002 367 353 174 017 377 okw:= P *s O.K. *s;
735/0: 002 150 151 260 017 320 fls:= P *s FAIL *s*d 0;
736/0: 236 035 014 031 236 377 ran:= ≠ 4741641406317377;
737/0: 236 070 052 050 070 013 sex:= {*s secs.};
740/0: 000 014 364 277 051 100|272 131 144 226 100 000|003 173 362 223 067 302
snw:= P *2s store *s needed *3s words. *c;
743/0: 101 004 020 101 004 020 zer:=P 00000000;
label prno, zer;
end
label prnl, time, prno, closestr;
label nfail, options, jobno, ssss, rs1, rs2, fl2, fl6, fl7, fl9;
744/0: 304 000 002|203 260 036 fl2: SET2; J.nfail; /dictionary meets program
745/0: 144 340|173 000|203 260 036 rs1: IONE14; FLINK; J.nfail; /even restart - terminate
746/1: 144 340|304 000 005|203 260 036 rs2: IONE14; SET5; J.nfail; /odd restart
747/3: 304 000 006|203 260 036 fl6: SET6; J.nfail; /dictionary lost during binary output
750/3: 304 000 007|203 260 036 fl7: SET7; J.nfail; /error in OUT29
751/3: 304 000 011|203 260 036 fl9: SET9; J.nfail;
end
/ Facility added in assembler by A.P.McCann June 1972
/ Input source file may be switched by stmt of type
/ !goto newfile-name where newfile-name is a full 12 char ident. Any chars in
/ amendment field are ignored in searching index. If file is not on disc
/ then a fail message is given and assembler packs up
/
begin
begin (block for goto procesing)
label goto;
/
752/3: 170 264 goto: SI11; /flag for 2 halves of ident
/
/ read 6 chars making half the ident
/
752/5: 304 000 006|170 270|041 gethalf: SET6; SC11; ZERO; /6 chars in each half
/
/ char fetch loop
/
753/5: 164 015|205 324 303|200 321 213 getchs: SHL6; JS.einbs; JS.bstopr; /get char convert to printer code
755/1: 011|143 260|265 261 353 OR; DC11; JCNZ11.getchs; /form chars into word
756/1: 171 264|041|170 264|205 141 352 FI11; ZERO; SI11; JNEZ.gethalf; /do other half of ident
757/3: 164 031|065|166 351 SHL12; REV; SHLD-12; /shift into place
760/2: 300 002 010|011|041 F.nctc; OR; ZERO; /ident completed. N1 = text index adrs
/
/ loop for searching text index which is read into input text bfr
/
761/1: 200 321 011|304 006 340|170 303 srchindex: JS.discread; SET.block; SRM12; /M12 points to 1st word of index blk
762/3: 304 000 324|102 300|164 301|036 SET212; FMMQ12/0; SHL-32; -;/get no. of entries in blk
763/5: 170 310|304 000 003|170 304|242 301 367 SC12; SET3; SI12; JCZ12.anymo; /Q12 set for scan. jmp if blk empty
765/3: 017|017|017|102 300|224 021 373 * FMMQ12/0; JEQ.maybe; /loop to match top half of ident
/
/ return to search loop if 2nd half of ident doesnt match
/
766/5: 017|177 300 *contsrch: JCNZS12; /scan all entries in blk
/
/ here when blk finished to see if more blcks
/
767/2: 300 011 137|042|201 141 361 anymo: F.block+639; DUP; JNEZ.srchindex; /get next on chain
770/3: 033|164 075|011 NOT; SHL30; OR; /mask top 3 chars of ident
771/1: 204 321 221|204 321 221 JS.print8; JS.print8; /priny ident /[typo for print (?)
772/1: 300 002 007|204 321 221|200 260 037 F.notfnd; JS.print8; J.catfail; /print not fnd,fail
/
/ half matched ident. see if other half matches
/[ ----- page 07
/
773/4: 141 300|065|042 maybe: M-I12; REV; DUP; /N1 = 2nd half
774/2: 110 300|015 FMMN12/0; NEV; /compare
774/5: 041|033|164 031|167 045|054 ZERO; NOT; SHL12; SHC18; AND; /mask amendment no
776/0: 223 141 377 JEQZ.fnd; /jmp if it matches
776/3: 065|140 300|200 261 367 REV; M+I12; J.contsrch; /keep looking
/
/ here when located
/
777/3: 052|052|300 300 002|200 321 011 fnd: ERASE; ERASE; FM12.2; JS.discread; /read alpha block
1000/5: 300 006 340|301 000 332 F.block; S.texid; /keep....
1001/5: 300 006 341|301 000 333 F.block+1; S.texid+1; /....identifier
1002/5: 300 007 060|301 006 340 F.block+80; S.block; /NOC
1003/5: 300 007 061|042 F.block+81; DUP; /word count
1004/3: 027|170 303 NEG; SRM12; /Q12 set up
1005/0: 304 007 061|056|170 336 SET.block+81; +; SQ13; /Q13 set up
1006/0: 200 262 016 J.nxitem; /continue assembling
1006/3: 017|017|017|002 353 364 002 153 244 *notfnd := P *snot*sfnd; /for fail message
1010/0: 034 055 002 000 000 000 nctc := P *n *c T *c *4s; /to complete identifier
/
end (of goto)
/
1011/0: 052|041|033 bracket: ERASE; ZERO; NOT;
1011/3: 202 323 036|304 000 204|204 022 013|065|027|033|065 JS.pbs; SET≠204; JNE.prog+1s1; REV; NEG; NOT; REV;
1013/4: 304 000 224|015|201 142 015|033|027 SET≠224; NEV; JNEZ.prog+0s5; NOT; NEG;
1015/1: 042|203 142 011|052 DUP; JNEZ.bracket+0s3; ERASE;
1016/0: 171 042|171 062|300 001 236|032|016|042|170 043|032|171 022|056|171 162|036
nxitem: FM2; FM3; F.inbfr; MAX; ROUND; DUP; SRM2; MAX; FM1; +; FM7; -;
1021/1: 200 041 344|052|001|203 241 351 JGEZ.fl2; ERASE; VR; JNEN.fl9; /check dict. meets prog, nest
/check for comment asterisk etc.
1022/3: 205 324 303 JS.einbs;
1023/0: 042|164 365|220 142 041 return: DUP; SHL-6; J=Z.load; /letter
1024/0: 304 000 242|223 022 245 SET≠242; J=.equals; /constant
1025/0: 304 000 216|225 022 057 SET≠216; J=.ast;
1026/0: 304 000 240|222 022 047 SET≠240; J=.crlf;
1027/0: 304 000 214|220 024 021 SET≠214; J=.beginblock; /begin
1030/0: 304 000 234|221 024 024 SET≠234; J=.endblock; /end
1031/0: 304 000 241|220 022 046 SET≠241; J=.slash; / / comments
1032/0: 304 000 171|223 024 271 SET≠171; J=.labelspec; / label list
1033/0: 304 000 200|221 022 051 SET≠200; J=.comment; / !comment comments
1034/0: 304 000 340|223 024 162 SET≠340; J=.segment; / segment
1035/0: 304 000 204|220 022 011 SET≠204; J=.bracket;
1036/0: 304 000 210|223 021 352 SET≠210; J=.goto; /find alternative input file
1037/0: 304 000 320|225 021 021 SET≠320; J=.libcall; / library
1040/0: 304 000 230|225 022 015 SET≠230; J=.nxitem-0s1; /extra semicolon
/
1041/0: 113 041 load: SMMQN2/1; /read rest of item to semicolon or colon
1041/2: 205 324 303|042|113 041 nxebs: JS.einbs; DUP; SMMQN2/1;
1042/2: 304 000 230|220 022 102|304 000 240|220 020 041 SET≠230; J=.instr; SET≠240; JEQ.fail;
1044/2: 304 000 271|015|202 142 041|204 263 240 SET185; NEV; J≠Z.nxebs; J.ident;
1046/0: 171 310|172 302|154 014|154 015 slash: FC12; S+M12; CFRQ0/12; CFRQ0/13;
1047/2: 171 024|300 001 124|056|172 144|205 262 015 crlf: FI1; F.inlib; +; S+I6; J.nxitem-0s1;
1051/1: 300 000 106|220 142 046|304 000 240|042|200 320 113|065 comment: F.tables; JEQZ.slash; SET≠240; DUP; JS.oubs; REV;
1053/3: 164 021|300 004 017|011|200 321 151 SHL8; F.ssssd; OR; JS.printsix;
1055/0: 204 320 360|042|200 320 113|200 022 055 ccopy: JS.inbs; DUP; JS.oubs; JNE.ccopy;
/[ ----- page 08
1056/4: 041|301 001 233|202 262 047 ZERO; S.refcount; J.crlf;
1057/5: 205 322 237|205 324 303|065|200 022 023 ast: JS.round; JS.einbs; REV; J≠.return;
1061/3: 171 062|027|033|164 367 FM3; NEG; NOT; SHL-5;
1062/3: 033|027|164 013|170 062|205 262 015 NOT; NEG; SHL5; SM3; J.nxitem-0s1;
/conversion table for signs in instructions
*spec:
1064/0: 040 000 000 377 372 301 =≠ 10000000 77775 301; / =HX+; =T-6; =S{+};
1065/0: 044 000 000 377 372 321 =≠ 11000000 77775 321;
1066/0: 142 005 337 377 350 261 =≠ 30402737 77764 261;
1067/0: 075 110 100 377 356 221 =≠ 17244100 77767 221;
1070/0: 101 300 000 377 364 242 =≠ 20340000 77772 242;
1071/0: 145 000 000 377 364 322 =≠ 31200000 77772 322;
1072/0: 135 360 000 377 364 202 =≠ 27370000 77772 202;
1073/0: 135 000 000 377 364 222 =≠ 27200000 77772 222;
1074/0: 111 360 000 377 364 302 =≠ 22370000 77772 302;
1075/0: 111 000 000 377 364 262 =≠ 22200000 77772 262;
1076/0: 000 012 000 001 002 063 speclist:= Q prog-spec / 1 / spec-1;
1077/0: 017 017 017 017 017 017 du:={*6#17}; /dummy syllables for rounding
1100/0: 000 000 000 000 000 000 qn:=0;
1101/0: 000 000 000 000 000 000 qnn:=0;
1102/0: 171 050|033|027|172 042 instr: FC2; NOT; NEG; S+M2;
1103/0: 164 371|170 050|153 004|041|033 SHL-4; SC2; IMFRQ0/4; ZERO; NOT; /C2 = 9
begin /basic parsing scan
1104/2: 102 041|304 000 230|221 022 122 nibs: FMMQ2/1; SET≠230; J=.eparse;
1105/4: 240 040 041 JCZ2.fail; /instruction pattern too long
1106/1: 042|304 000 014|037|202 042 104 DUP; SET12; SIGN; JGEZ.nibs;
1107/3: 145 100|304 000 013|221 022 122 IMONE4; SET11; J=.eparse; /type CA
1110/5: 043|052|026|167 363|204 042 112 digit: DUPD; ERASE; ABS; SHC-7; JGEZ.dig; /not sign
/ ABS caters for case of no code before digit
1112/1: 052|141 040 ERASE; M-I2; /number signed or invalid - go back to sign
1112/4: 201 324 317|301 002 100 dig: JS.assemno; S.qn;
1113/4: 144 100|304 000 230|221 022 122 IONE4; SET≠230; JEQ.eparse;
1115/0: 147 100|304 000 013|221 022 122|304 000 241|200 020 041 IMTWO4; SET≠13; JEQ.eparse; SET≠241; JNE.fail;
1117/2: 052|102 041|201 324 317 cnn: ERASE; FMMQ2/1; JS.assemno; /second Q-store number
1120/2: 301 002 101|146 100 S.qnn; ITWO4; /type two
1121/1: 304 000 230|200 020 041 SET152; JNE.fail;
/second number not terminated by semicolon
eparse: /pack instruction pattern for location
1122/1: 041|065 ZERO; REV;
1122/3: 052|065|042|033|223 142 133 l: ERASE; REV; DUP; NOT; JEQZ.endpa;
1123/4: 166 365|042|223 142 122 SHLD-6; DUP; JEQZ.l; /letter
1124/4: 166 015|167 361|300 002 076|170 276 SHLD6; SHC-8; F.speclist; SQ11; /symbol
1126/1: 017|017|017|017|017|112 260|164 121|220 022 131|177 260|200 260 041
*FMMQN11/0; SHL40; JEQ.prog+1s2; JCNZS11; J.fail;
1131/0: 052|100 260|164 361|170 270|164 260 ERASE; FMM11/0; SHL-8; SC11; SHLC11;
1132/3: 104 013|011|204 262 122 FMMH0/11; OR; J.l+0s1;
1133/3: 052 endpa: ERASE; / N1 = instruction pattern
end
1133/4: 140 100|300 106 070 begin M+I4; FM4.tc; /fetch appropriate dope word
/instruction pattern locator
1134/3: 170 276|151 264|171 270|170 262|151 012 SQ11; MFRQ11/4; FC11; SM11; MFRQ0/10;
1136/1: 151 251 high: MFRQ10/9;
1136/3: 171 262|171 222|043|056|164 377|170 242 loop: FM11; FM9; DUPD; +; SHL-1; SM10; /binary search
1140/1: 033|056|065 NOT; +; REV;
1140/4: 042|100 244|037|042|220 142 144 DUP; FMM10/4; SIGN; DUP; JEQZ.found;
1142/0: 066|220 140 041 CAB; JEQZ.fail;
1142/4: 221 102 136|151 253|203 262 136 JGTZ.high; MFRQ10/11; J.loop;
1144/0: 170 262|052|052|140 260 found: SM11; ERASE; ERASE; M+I11;
1145/0: 104 253 FMMH10/11; /N1 = blank instruction
1145/2: 171 104|223 142 163 FI4; J=Z.store;
1146/1: 171 104|042|225 042 167 FI4; DUP; J<Z.addr; /contains address
1147/1: 027|033|203 142 157 NEG; NOT; J≠Z.cnn;
1150/0: 042|164 261|304 000 304 DUP; SHL-40; SET≠304; /check for SET instruction
1151/0: 015|225 142 155|042|164 301 NEV; JEQZ.setinst; DUP; SHL-32;
/[ ----- page 09
1152/1: 304 370 377|054|304 160 001|015|203 142 161 SET≠174377; AND; SET≠70001; NEV; JNEZ.cn; /one Q number
1154/0: 300 002 100|164 123|204 202 156|200 260 041 F.qn; SHL41; JNV.prog+1s5; J.fail; /shift parameter
1155/5: 300 002 100|164 101|164 361|202 262 163 setinst: F.qn; SHL32; SHL-8; J.store-0s1;
1157/3: 300 002 101|042|164 371|200 140 041 cnn: F.qnn; DUP; SHL-4; J≠Z.fail; /negative or > 15
1161/0: 167 341|011 SHC-16; OR;
1161/3: 300 002 100|042|164 371|200 140 041 cn: F.qn; DUP; SHL-4; J≠Z.fail;
1163/0: 167 351|011 SHC-12; OR;
1163/3: 042|164 245|304 000 002|032|052|033|027|170 110 store: DUP; SHL-46; SET2; MAX; ERASE; NOT; NEG; SC4;
1165/3: 041|166 021|143 100|200 322 234|263 102 165|205 262 015 ZERO; SHLD8; DC4; JS.storesyll; JCNZ4.prog-1s2; J.nxitem-0s1;
1167/5: 065|154 004|155 066 addr: REV; CFRQ0/4; CMFRQ3/6;
/allow funnies and set update pointer for calcadd
1170/4: 042|164 003|220 042 200 DUP; SHL+1; JLTZ.mors; /use instruction to determine address type
1171/4: 042|164 021|164 261|304 000 360|032 DUP; SHL8; SHL-40; SET≠360; MAX;
1173/1: 037|033|027|042|033|036 SIGN; NOT; NEG; DUP; NOT; -;
1174/1: 170 102|200 323 333 endaddr: SM4; JS.calcadd; /M4 = address type
1175/0: 304 000 230|015|200 140 041 SET≠230; NEV; J≠Z.fail; /check terminator semicolon
1176/1: 201 322 202|065|033|223 142 163 JS.addup; REV; NOT; J=Z.store; /unmodified
1177/3: 203 262 161 J.cn; /modified
1200/0: 042|164 261|304 000 304|037|026|164 003|201 262 174 mors: DUP; SHL-40; SET≠304; SIGN; ABS; SHL+1; J.endaddr;
end
addup: /adds the syllable in N1 and word
/in N2 to the instruction in N3.
/mode of arithmetic specified by M4.
1202/1: 042|300 102 230|065|200 142 204|164 321|011 begin DUP; FM4.sw; REV; JNEZ.prog+1; SHL-24; OR;
1204/0: 174 000|202 360 000 SLINK; EXIT;
1204/5: 066|167 013|041|166 007 jumpadd: CAB; SHC5; ZERO; SHLD3;
1205/5: 066|056|304 000 006|044|066|056 CAB; +; SET6; DIVI; CAB; +;
1207/1: 167 361|012|056 SHC-8; PERM; +;
1207/5: 065|167 011|047 jumpword: REV; SHC4; STR;
1210/3: 065|167 021|065|166 031|066|056 REV; SHC8; REV; SHLD12; CAB; +;
1211/5: 166 351|065|167 363|065 SHLD-12; REV; SHC-7; REV;
1212/5: 166 377|052|167 371|200 360 000 SHLD-1; ERASE; SHC-4; EXITH;
1214/1: 065|167 005|041|166 007 msadd: REV; SHC2; ZERO; SHLD3;
1215/1: 065|167 017|065|166 031|066|056 REV; SHC7; REV; SHLD12; CAB; +;
1216/3: 166 351|065|167 363|065 SHLD-12; REV; SHC-7; REV;
1217/3: 166 373|052|167 375|200 360 000 SHLD-3; ERASE; SHC-2; EXITH;
1220/5: 164 101|065|167 021|001|161 005|220 200 041 setadd: SHL32; REV; SHC+8; VR; SHA2; JV.fail;
1222/4: 161 375|056|167 361|200 360 000 SHA-2; +; SHC-8; EXITH;
1224/0: 066|167 021|042|164 301|200 140 041|012|065|164 107 syll: CAB; SHC+8; DUP; SHL-32; JNEZ.fail; PERM; REV; SHL+35;
1226/1: 065|166 373|052|056|167 361|200 360 000 REV; SHLD-3; ERASE; +; SHC-8; EXITH;
1227/5: 017|000 242 220|000 002 224 *sw:= HA setadd; =HA syll;
1231/0: 000 242 207|000 242 204 =HA jumpword; =HA jumpadd;
1232/0: 000 042 214|000 000 041 =HA msadd; =HA fail;
1233/0: 000 242 207|000 000 041 =HA jumpword; =HA fail;
end
storesyll: /stores syllable in D40-D47 of N1: D0-D39 zero
1234/0: 304 377 370|172 070|304 000 377|166 060|033 SET-8; S+C3; SET≠377; SHLDC3; NOT;
1235/5: 100 061|054 FMM3/1; AND; /preserve other syllable
1236/2: 011|101 061|245 062 243|200 360 000 OR; SMM3/1; JCZ3.endro-0s2; EXITH;
1237/5: 304 377 320|172 070|241 062 244|142 060|100 061|300 002 077 round: SET-48; S+C3; JCZ3.endro; NC3; FMM3/1; F.du;
1242/2: 166 060|142 060|167 060|101 061|052 SHLDC3; NC3; SHCC3; SMM3/1; ERASE;
1243/5: 140 060 M+I3;
1244/1: 304 000 060|170 070|200 360 000 endro: SET48; SC3; EXITH;
/process constant
1245/3: 052|205 324 303 equals: ERASE; JS.einbs;
1246/1: 304 000 023|220 023 013 begin SET≠23; J=.hconst;
1247/1: 304 000 017|220 023 014 SET≠17; J=.dconst;
1250/1: 304 000 036|223 023 133 SET≠36; J=.sconst;
1251/1: 304 000 037|224 023 156 SET≠37; J=.tconst;
1252/1: 304 000 060|170 125 SET48; SRI5; /alignment
1253/0: 304 000 034|225 023 172 SET≠34; J=.qconst;
1254/0: 171 070|171 124|044 common: FC3; FI5; ÷I;
/[ ----- page 10
1254/5: 200 140 041|052 JNEZ.fail; ERASE; /check alignment
1255/3: 304 000 033|220 023 016|304 000 215|223 023 101 SET≠33; JEQ.pconst; SET≠215; JEQ.string;
Warning: SET instruction to non-whole word address
1257/3: 304 042 266|174 000 SET.endinput; SLINK;
1260/2: 140 040|171 042|304 000 230|066|042|103 041|304 000 271|220 020 041
input: M+I2; FM2; SET≠230; CAB; DUP; SMMQ2/1; SET≠271; JEQ.fail;
1263/1: 304 000 240|220 020 041|224 022 265|205 324 303|204 262 261 SET≠240; JEQ.fail; JEQ.prog+1s3; JS.einbs; J.input+1s2;
1265/4: 052|170 042 ERASE; SM2;
1266/1: 200 360 000|102 041 endinput: EXITH; FMMQ2/1; /usual exit is to this FMMQ
1267/0: 304 000 322|222 023 216|304 000 014|223 023 232 SET≠322; JEQ.octal; SET≠14; JEQ.aconst;
1271/0: 304 000 261|224 023 204|304 000 043|224 023 204 SET≠261; JEQ.xconst; SET≠43; JEQ.xconst;
1273/0: 304 000 021|204 022 274 SET≠21; JNE.prog+1s1; /number - check F
1274/0: 170 122|102 041 SM5; FMMQ2/1; /set floating tag
begin /assemble numeric constant
1274/4: 157 012|153 013|157 010|304 000 136|170 270 number: QFRQ0/10; IMFRQ0/11; QFRQ0/8; SET94; SC11;
1276/3: 041|041|066|171 124|027|033|042|170 225|222 102 301 ZERO; ZERO; CAB; FI5; NEG; NOT; DUP; SRI9; JGTZ.chpm;
1300/4: 171 270|170 224 FC11; SI9;
1301/2: 304 000 301|224 022 363|304 000 321|222 022 363 chpm: SET≠301; JEQ.sign+0s2; SET≠321; JEQ.sign;
1303/2: 042|304 000 012|037|201 042 305|205 322 376 chdig: DUP; SET10; SIGN; JGEZ.chdot; JS.digits;
1305/1: 304 000 013|224 022 364 chdot: SET11; JEQ.dec;
1306/1: 304 000 012|225 022 367|304 000 020|225 022 367 chten: SET10; JEQ.exp; SET≠20; JEQ.exp;
1310/1: 304 000 241|221 022 374|140 220 chsl: SET≠241; JEQ.slash; M+I9;
1311/3: 304 000 230|015|200 140 041 chsc: SET≠230; NEV; JNEZ.fail;
1312/4: 304 000 136|171 270|036|170 250|240 240 041 SET94; FC11; -; SC10; JCZ10.fail; /no digits
/number in C10 I. P. in N1/N2
1314/3: 171 242|171 262|036|304 000 014|044|170 130 FM10; FM11; -; SET12; DIVI; SC5;
1316/2: 042|026|170 270|223 042 350|241 262 323 DUP; ABS; SC11; JLTZ.divide; JCZ11.endexp;
1320/0: 300 003 012|042|012|034|051|163 243 mult: F.const; DUP; PERM; ×D; REVD; ×+-47;
1321/3: 304 000 050|172 250|143 260|260 262 320 SET40; S+C10; DC11; JCNZ11.mult;
1323/1: 244 122 327|171 024 endexp: JCZ5.endno; FI1;
1324/0: 304 000 012|034|050|143 120|177 120 * SET10; ×D; CONT; DC5; JCNZS5;
1325/3: 304 000 057|024|045|172 250 SET47; FLOAT; FIX; S+C10;
1326/4: 042|012|034|051|163 243 DUP; PERM; ×D; REVD; ×+-47;
1327/4: 042|223 142 332|042|164 003|223 042 332 endno: DUP; JEQZ.prog+2s4; DUP; SHL1; JLTZ.prog+1s4;
1331/2: 143 240|162 003|202 262 330 DC10; SHAD1; J.endno+0s4;
1332/3: 171 244|223 142 333|010 FI10; JEQZ.pos; NEGD;
1333/3: 171 122|200 142 344|171 222|027|172 250 pos: FM5; JNEZ.float; FM9; NEG; S+C10;
1335/1: 171 250|027|033|042|220 100 041 FC10; NEG; NOT; DUP; JGTZ.fail;
1336/3: 171 224|033|036|220 040 041|162 240 FI9; NOT; -; JLTZ.fail; SHADC10; /check shift O.K.
1340/0: 171 124|042|222 042 355|304 000 030|015|224 142 356|016 FI5; DUP; JLTZ.storetwo; SET24; NEV; JEQZ.hfix; ROUND;
1342/2: 220 200 041|101 061|140 060|200 262 016 store: JV.fail; SMM3/1; M+I3; J.nxitem;
1344/0: 171 250|042|161 121|220 200 041|052 float: FC10; DUP; SHA40; JV.fail; ERASE;
1345/3: 025|171 124|042|222 042 355 FLOATD; FI5; DUP; JLTZ.storetwo;
1346/4: 304 000 030|015|222 142 357|020|202 262 342 SET24; NEV; JEQZ.hfloat; ROUNDF; J.store;
1350/3: 162 377|300 003 012|042|051|066|064|012|065|060|041 divide: SHAD-1; F.const; DUP; REVD; CAB; DIVR; PERM; REV; DIV; ZERO;
1352/4: 012|047|057|304 377 331|172 250|143 260|263 262 350|201 262 323
PERM; STR; +D; SET-39; S+C10; DC11; JCNZ11.divide; J.endexp;
1355/2: 052|101 061|140 060|202 262 342 storetwo: ERASE; SMM3/1; M+I3; J.store;
1356/4: 014|203 262 357 hfix: ROUNDH; J.storeh;
1357/2: 021 hfloat: ROUNDHF;
1357/3: 220 200 041|041|166 021|200 322 234|041 storeh: JV.fail; ZERO; SHLD8; JS.storesyll; ZERO;
1361/1: 166 021|200 322 234|164 261|200 322 234|205 262 015 SHLD8; JS.storesyll; SHL-40; JS.storesyll; J.nxitem-0s1;
1363/2: 144 240|052|102 041|202 262 303 sign: IONE10; ERASE; FMMQ2/1; J.chdig;
1364/4: 052|144 260|102 041|042|304 000 012|037|200 040 041|205 322 376|201 262 306
dec: ERASE; IONE11; FMMQ2/1; DUP; SET10; SIGN; JGEZ.fail; JS.digits; J.chten;
1367/5: 052|171 270|304 000 136|015|203 142 372|041|033|162 377|172 270
exp: ERASE; FC11; SET94; NEV; JNEZ.expa; ZERO; NOT; SHAD-1; S+C11;
1372/3: 102 041|201 324 317|170 242|201 262 310 expa: FMMQ2/1; JS.assemno; SM10; J.chsl;
1374/1: 052|171 122|200 140 041|102 041|201 324 317|170 222|203 262 311
slash: ERASE; FM5; JNEZ.fail; FMMQ2/1; JS.assemno; SM9; J.chsc;
1376/5: 260 203 000|143 260|143 200 digits: JCNZ8.dig; DC11; DC8;
1400/0: 304 377 374|172 270|140 260|041|162 260|051|162 377|043 dig: SET-4; S+C11; M+I11; ZERO; SHADC11; REVD; SHAD-1; DUPD;
1402/2: 162 375|057|057|042|200 143 005|304 000 004|172 270|203 263 007
SHAD-2; +D; +D; DUP; JNEZ.shift; SET4; S+C11; J.nxdig;
1405/0: 042|164 003|223 043 007|171 024|172 270|162 003|200 263 005 shift: DUP; SHL1; JLTZ.nxdig; FI1; S+C11; SHAD1; J.shift;
1407/3: 102 041|042|304 000 012|037|220 043 000|200 360 000 nxdig: FMMQ2/1; DUP; SET10; SIGN; JLTZ.dig; EXITH;
1411/4: 017|017|164 152 122 210 000 000 *const:= 128 000 000 000 000; / 10**12 / 40
label store, storeh;
end
/[ ----- page 11
1413/0: 304 000 030|203 263 014 hconst: SET24; J.prog+1;
1414/0: 304 377 320|170 125|052|205 324 303|200 262 254 dconst: SET-48; SRI5; ERASE; JS.einbs; J.common;
1416/0: 052 pconst: ERASE;
begin
1416/1: 202 323 036|042|164 365|204 143 030 nxchar: JS.pbs; DUP; SHL-6; JNEZ.long;
1417/4: 200 321 213|201 323 021|201 263 016 JS.bstopr; JS.storechar; J.nxchar;
1421/1: 304 377 372|172 070|304 000 077|042|012|054|065|166 060 storechar: SET-6; S+C3; SET≠77; DUP; PERM; AND; REV; SHLDC3;
1423/3: 033|100 061|054|011|101 061|245 062 243|200 360 000 NOT; FMM3/1; AND; OR; SMM3/1; JCZ3.endro-0s2; EXITH;
1425/4: 041|033|164 060|033|100 061|011|101 061 query: ZERO; NOT; SHLC3; NOT; FMM3/1; OR; SMM3/1;
1427/2: 304 000 006|170 070|201 263 020 SET6; SC3; J.storechar-1;
1430/4: 304 000 216|221 023 042|304 000 230|202 023 040 long: SET≠216; JEQ.ast; SET≠230; JNE.find;
1432/4: 052|171 070|171 124|044|225 142 015 fin: ERASE; FC3; FI5; DIVI; JEQZ.nxitem-0s1;
1434/1: 304 000 077|201 323 021|204 263 032 SET≠77; JS.storechar; J.fin;
1435/4: 052|203 321 156 ERASE; JS.countl;
1436/2: 205 324 303|304 000 240|224 023 035|200 360 000 pbs: JS.einbs; SET≠240; JEQ.pbs-0s4; EXITH;
label pbs, lookup, storechar;
1440/2: 304 000 017|202 323 060 find: SET15; JS.lookup;
1441/2: 164 335|201 263 020 SHL-18; J.storechar-1;
1442/1: 052|202 323 036|304 000 034|224 023 025 ast: ERASE; JS.pbs; SET≠34; JEQ.query;
1443/5: 042|304 000 012|037|225 043 055|171 024 DUP; SET10; SIGN; JLTZ.count; FI1;
1445/3: 170 130|304 000 322|220 023 051 esym: SC5; SET≠322; JEQ.octal;
1446/5: 202 323 036|065|041|202 323 060|164 277|204 263 052 JS.pbs; REV; ZERO; JS.lookup; SHL-33; J.store;
1451/0: 204 323 142|065|042|164 365|200 140 041 octal: JS.num; REV; DUP; SHL-6; JNEZ.fail;
1452/4: 042|201 323 021|143 120|264 123 052|052 store: DUP; JS.storechar; DC5; JCNZ5.store; ERASE;
1454/2: 201 324 305|205 323 036|204 263 016 JS.einbs+1s2; JS.pbs+0s3; J.nxchar+0s3;
1455/5: 204 323 142|065|042|027|033|164 341|200 140 041|203 263 045 count: JS.num; REV; DUP; NEG; NOT; SHL-16; JNEZ.fail; J.esym;
end
1460/2: 170 250|304 000 013|170 271 lookup: SC10; SET11; SRC11;
1461/3: 017|017|017|302 263 066|164 240|164 263|223 023 064|177 260 *begin FMQ11.symtab; SHLC10; SHL-39; JEQ.found; JCNZS11;
1464/0: 200 260 041 J.fail;
1464/3: 052|300 263 065|200 360 000 found: ERASE; FM11.symtab-1; EXITH;
/tables of specials in P and { constants
1465/4: 017|017 *symtab: /P formal/char/P spec/char/BS formal/BS
1466/0: 017 000 301 164 074 236 =≠ 36 00 301 35 036 236;
1467/0: 007 004 321 170 034 240 =≠ 16 02 321 36 016 240;
1470/0: 017 210 241 074 076 256 =≠ 37 04 241 17 037 256;
1471/0: 014 216 246 070 070 215 =≠ 31 07 246 16 034 215;
1472/0: 006 030 271 040 100 235 =≠ 14 14 271 10 040 235;
1473/0: 007 376 214 050 030 216 =≠ 17 77 214 12 014 216;
1474/0: 010 172 224 054 036 377 =≠ 20 75 224 13 017 377;
1475/0: 015 206 242 044 040 276 =≠ 33 03 242 11 020 276;
1476/0: 021 214 261 064 112 316 =≠ 43 06 261 15 045 316;
1477/0: 020 064 220 150 056 220 =≠ 40 32 220 32 027 220;
1500/0: 013 264 000 000 106 376 =≠ 27 32 000 00 043 376;
end
1501/0: 203 321 156 JS.countl;
1501/3: 052 string: ERASE;
1501/4: 204 320 360|304 000 377|223 023 101|304 000 240|220 023 101 nxsbs: JS.inbs; SET≠377; JEQ.string; SET≠240; JEQ.string-0s3;
1504/1: 304 000 236|223 023 101|304 000 256|223 023 101 begin SET≠236; JEQ.string; SET≠256; JEQ.string;
1506/1: 304 000 216|225 023 115|304 000 235|221 023 111 SET≠216; JEQ.ast; SET≠235; JEQ.end;
1510/1: 200 322 234|204 263 101 JS.storesyll; J.nxsbs;
1511/1: 205 324 303|304 000 230|015|200 140 041 end: JS.einbs; SET≠230; NEV; JNEZ.fail;
1512/5: 052|171 070|171 124|044|225 142 015 fin: ERASE; FC3; FI5; DIVI; JEQZ.nxitem-0s1;
1514/2: 304 000 377|200 322 234|205 263 112 SET≠377; JS.storesyll; J.fin;
1515/5: 052|202 323 036|042|304 000 012|037|220 043 131|171 024|170 130
ast: ERASE; JS.pbs; DUP; SET10; SIGN; JLTZ.count; FI1; SC5;
1520/3: 304 000 322|221 023 124|304 000 036|202 323 060 esym: SET≠322; JEQ.octal; SET30; JS.lookup;
1522/3: 304 000 377|054|205 323 126|204 263 101 SET≠377; AND; JS.store; J.nxsbs;
1524/1: 204 323 142|065|042|164 361|200 140 041 octal: JS.num; REV; DUP; SHL-8; JNEZ.fail;
1525/5: 205 323 126|201 263 102 JS.store; J.nxsbs+0s3;
1526/5: 042|200 322 234|143 120|265 123 126 store: DUP; JS.storesyll; DC5; JCNZ5.store;
1530/2: 052|200 360 000 ERASE; EXITH;
1531/0: 204 323 142|065|042|027|033|164 341|200 140 041|201 263 120 count: JS.num; REV; DUP; NEG; NOT; SHL-16; JNEZ.fail; J.esym-0s2;
/[ ----- page 12
end
1533/3: 052|304 000 010|170 125|205 324 303|304 000 215|223 023 101|202 322 260
sconst: ERASE; SET8; SRI5; JS.einbs; SET≠215; JEQ.string; JS.input;
1536/3: 102 041|201 324 317|065|304 000 230|015|200 140 041 FMMQ2/1; JS.assemno; REV; SET≠230; NEV; JNEZ.fail;
1540/4: 161 117|047|052|164 263|205 203 164|200 260 041 SHA39; STR; ERASE; SHL-39; JNV.lastsy; J.fail;
label num;
1542/4: 042|304 000 012|037|154 013 num: DUP; SET10; SIGN; CFRQ0/11;
1543/5: 224 043 153|304 000 322|015|200 140 041 begin JLTZ.nosign; SET≠322; NEV; JNEZ.fail;
1545/3: 041|202 323 036|042|164 373|200 140 041 ZERO; JS.pbs; DUP; SHL-3; JNEZ.fail;
1547/1: 011|161 007|204 320 360|042|164 373|221 143 147 octnum: OR; SHA3; JS.inbs; DUP; SHL-3; JEQZ.octnum;
1551/1: 065|164 373|065|304 000 377|203 023 321 REV; SHL-3; REV; SET≠377; JNE.exith;
1552/5: 052|041|201 263 147 ERASE; ZERO; J.octnum;
1553/4: 202 323 036|304 000 012|043|037|202 041 167 nosign: JS.pbs; SET10; DUPD; SIGN; JGEZ.erex;
1555/3: 066|034|050|056|204 263 153 CAB; MULTD; CONT; +; J.nosign;
end
1556/4: 202 322 260|140 040|041|304 000 230 tconst: JS.input; M+I2; ZERO; SET≠230;
1560/1: 171 062|171 070|304 000 060|044|304 000 010|056|012|036|170 142|155 004
FM3; FC3; SET48; DIVI; SET8; +; PERM; -; SM6; CMFRQ0/4;
1563/1: 205 323 165|166 361|200 322 234|164 261 JS.part; SHLD-8; JS.storesyll; SHL-40;
1564/5: 200 322 234|200 262 016 lastsy: JS.storesyll; J.nxitem;
1565/5: 170 150|200 323 333|012|051|015|200 140 041 part: SC6; JS.calcadd; PERM; REVD; NEV; JNEZ.fail;
1567/4: 164 033|042|223 143 171|065|304 037 377|054 SHL13; DUP; JEQZ.prog+1s2; REV; SET≠17777; AND;
1571/3: 011|174 000|173 000|200 360 000 OR; SLINK; FLINK; EXITH;
1572/5: 171 070|171 124|015|200 140 041|155 004 qconst: FC3; FI5; NEV; JNEZ.fail; CMFRQ0/4;
1574/3: 171 062|027|033|170 142|202 322 260|140 040 FM3; NEG; NOT; SM6; JS.input; M+I2;
1576/2: 304 000 241|304 000 010|205 323 165|164 101|151 066 SET≠241; SET8; JS.part; SHL32; MFRQ3/6;
1600/3: 304 000 241|304 000 050|205 323 165|164 041|011 SET≠241; SET40; JS.part; SHL16; OR;
1602/3: 304 000 230|304 000 030|205 323 165|011|202 262 342 oneadd: SET≠230; SET24; JS.part; OR; J.store;
xconst: /instruction pattern constant
1604/4: 052 begin ERASE;
1604/5: 102 041|042|164 365|204 143 210|201 323 021|205 263 204 xloop: FMMQ2/1; DUP; SHL-6; JNEZ.endx; JS.storechar; J.xloop;
1607/1: 164 371|304 000 011|054|201 263 206 spec: SHL-4; SET≠11; AND; J.xloop+1s2;
1610/4: 304 000 301|221 023 207|304 000 321|221 023 207 endx: SET≠301; JEQ.spec; SET≠321; JEQ.spec;
1612/4: 304 000 230|200 020 041 SET≠230; JNE.fail;
1613/4: 052|171 070|171 124|044|225 142 015 align: ERASE; FC3; FI5; DIVI; JEQZ.nxitem-0s1;
1615/1: 041|201 323 021|204 263 213 ZERO; JS.storechar; J.align;
end
1616/2: 171 124|042|220 040 041|027|033|170 122|201 324 317 octal: FI5; DUP; JLTZ.fail; NEG; NOT; SM5; JS.assemno;
1620/3: 065|304 000 241|200 023 223|052|102 041 begin REV; SET≠241; JNE.end; ERASE; FMMQ2/1;
1622/1: 201 324 317|170 122 JS.assemno; SM5;
1623/0: 304 000 230|015|200 140 041|304 000 057 end: SET≠230; NEV; JNEZ.fail; SET47;
1624/4: 171 122|042|220 040 041|036|170 130 FM5; DUP; JLTZ.fail; -; SC5;
1626/1: 042|164 120|065|167 120|200 020 041 DUP; SHLC5; REV; SHCC5; JNE.fail; /bits lost
1627/4: 171 124|164 367|202 142 342 FI5; SHL-5; JNEZ.store;
1630/5: 042|042|164 061|223 142 357|200 260 041 DUP; DUP; SHL24; JEQZ.storeh; J.fail;
end
aconst:
1632/3: 052|171 124|042|220 040 041 begin ERASE; FI5; DUP; JLTZ.fail;
1633/4: 155 066|155 004|304 000 060|015 CMFRQ3/6; CMFRQ0/4; SET48; NEV;
1635/0: 042|223 143 202|200 323 333 DUP; JEQZ.oneadd; JS.calcadd;
1636/1: 304 000 230|015|200 140 041 SET≠230; NEV; JNEZ.fail;
1637/2: 041|012|201 322 202|203 262 357 ZERO; PERM; JS.addup; J.storeh;
end
label storechar, lookup, pbs, input;
end
/process label declaration
ident:
1640/4: 171 050|033|027|172 042|200 323 322 begin FC2; NOT; NEG; S+M2; JS.packid;
1642/1: 155 004 CMFRQ0/4; /only check repetion in this block
1642/3: 200 323 312|202 263 302 JS.dsearch; J.boob;
1643/3: 102 041|304 000 271|220 023 263 FMMQ2/1; SET≠271; J=.implicit; /colon
1644/5: 304 000 242|015|200 140 041 SET≠242; NEV; J≠Z.fail; /check =
1646/0: 143 100|300 003 332|221 023 273|111 160 DC4; F.progid; JEQ.patch; SMMN7/0;
1647/4: 041|200 323 333|304 000 271|015|200 140 041 ZERO; JS.calcadd; SET≠271; NEV; JNEZ.fail;
/[ ----- page 13
/check terminator colon - address value in N1
1651/3: 170 270|170 262|152 153 store: SC11; SM11; IFRQ6/11;
1652/3: 171 276|103 160 FQ11; SMMQ7/0; /complete dictionary entry
1653/1: 220 142 016 JEQZ.nxitem; /jump if ref. table entry not reqd
1653/4: 300 001 232|200 321 151|300 001 234|200 321 170 F.ssss; JS.printsix; F.lastlab; JS.printid;
1655/4: 202 321 175|200 321 205 JS.printadd; JS.printline;
1656/4: 300 001 233|042|027|033|301 001 233 F.refcount; DUP; NEG; NOT; S.refcount;
1660/1: 300 000 105|056|220 102 016 F.length; +; JGTZ.nxitem;
1661/2: 041|301 001 233|203 320 112|200 262 016 ZERO; S.refcount; JS.prnl; J.nxitem;
1663/0: 052|300 003 332|220 020 041 implicit: ERASE; F.progid; J=.fail; /attempt to declare prog
1664/1: 042|111 160|171 144|301 001 235 DUP; SMMN7/0; FI6; S.lineno;
1665/3: 171 062|304 000 006|171 070|164 373|036|042|222 143 271 FM3; SET6; FC3; SHL-3; -; DUP; JEQZ.prog+2;
1667/5: 043|052|001|161 105|220 200 041|052 DUPD; ERASE; VR; SHA34; JV.fail; ERASE;
1671/2: 066|301 001 234|300 000 106|012|203 263 251 CAB; S.lastlab; F.tables; PERM; J.store;
1673/1: 052|200 323 333|304 000 271|015|200 140 041 patch: ERASE; JS.calcadd; SET≠271; NEV; J≠Z.fail;
1675/0: 043|052|220 040 041 DUPD; ERASE; JLTZ.fail; /prog would go negative
1675/5: 171 062|012|304 000 006|065|036|164 007|170 070 FM3; PERM; SET6; REV; -; SHL3; SC3; /syllable
1677/5: 042|170 062|032|300 001 236|032|301 001 236|052|205 262 015 DUP; SM3; MAX; F.inbfr; MAX; S.inbfr; ERASE; J.nxitem-0s1;
1702/2: 202 323 303|200 260 041 boob: JS.because; J.fail;
1703/2: 300 003 311|300 003 310|203 321 150|304 000 377|203 321 170 because: F.bdotodot+1; F.bdotodot; JS.printtwo; SET≠377; JS.printid+0s3;
1705/5: 100 240|164 041|164 301|202 261 205 FMM10/0; SHL16; SHL-32; J.printline+0s2;
1707/2: 017|017|017|017|240 047 052 050 046 072|070 052 236 064 053 236
*bdotodot:= {*cbecause*sof*s};
label because;
end
/search dictionary for the work in N1
/C4 = 0 if search to stop at begin marker (zero entry)
1712/0: 155 172 dsearch: CMFRQ7/10; /use current dictionary pointer
sdsearch: /entry with old dictionary pointer in Q10
1712/2: 240 243 317|142 240|146 240|140 240 begin JCZ10.a+0s3; NC10; ITWO10; M+I10;
1713/5: 017|112 240|042|222 143 316|223 023 317 *loop: FMMQN10/0; DUP; J=Z.b; J=.match;
1715/3: 177 240|202 360 001 loopa: JCNZS10; EXIT.1; /end of dictionary
1716/2: 052 b: ERASE;
1716/3: 263 103 315 a: JCNZ4.loopa; /pass begins
1717/0: 202 360 001 EXIT.1; /unallocated
1717/3: 141 240|100 240|203 043 321|140 240|203 263 315 match: M-I10; FMM10/0; JGEZ.exith; M+I10; J.loopa;
1721/3: 200 360 000 exith: EXITH;
label exith;
end
packid: /packs identifier (backwards and left justified)
1722/0: 304 000 007|170 050|041|100 041 begin SET7; SC2; ZERO; FMM2/1;
1723/2: 042|304 000 014|037|220 040 041 DUP; SET12; SIGN; J<Z.fail;
1724/4: 166 365|200 140 041 SHLD-6; J≠Z.fail;
1725/3: 017|017|017|112 041|166 365|201 143 331|177 040 *pack: FMMQN2/1; SHLD-6; J≠Z.termin; JCNZS2;
1727/3: 112 041|164 365|223 143 327|200 360 000 skip: FMMQN2/1; SHL-6; J=Z.skip; EXITH;
1731/1: 164 015|200 360 000 termin: SHL6; EXITH;
end
1732/0: 111 247 133 000 000 000 *progid:= × GORP; /prog in packid format
calcadd:
1733/0: 155 010|102 041|304 000 321|225 023 350 begin CMFRQ0/8; FMMQ2/1; SET209; J=.setsign;
1734/4: 304 000 301|225 023 350 SET193; J=.setsign;
1735/4: 154 011|141 040|201 263 352 CFRQ0/9; M-I2; J.item+0s2;
1736/5: 171 156|164 011|171 230|027|050 funny: FQ6; SHL4; FC9; NEG; CONT;
1740/1: 171 102|033|166 371|052|101 160|113 160 FM4; NOT; SHLD-4; ERASE; SMM7/0; SMMQN7/0;
1741/5: 102 041|304 000 321|225 023 350 next: FMMQ2/1; SET209; JEQ.setsign;
1743/1: 304 000 301|225 023 350 SET193; J=.setsign;
1744/1: 171 210|304 000 006|044|065|171 202|056|065|042|221 143 350 FC8; SET6; DIVI; REV; FM8; +; REV; DUP; JEQZ.exit;
1746/4: 043|052|001|161 105|220 200 041|052 DUPD; ERASE; VR; SHA34; JV.fail; ERASE;
1750/1: 066|200 360 000 exit: CAB; EXITH; /terminator left in N1
1750/5: 304 000 301|015|170 230 setsign: SET193; NEV; SC9;
1751/5: 100 041|042|304 000 012|037|222 043 367 item: FMM2/1; DUP; SET10; SIGN; J<Z.absolute;
/[ ----- page 14
1753/3: 304 000 322|222 023 367|304 000 215|015|222 143 374 SET210; J=.absolute; SET≠215; NEV; JEQZ.str;
1755/4: 200 323 322|300 003 332|220 023 365 JS.packid; F.progid; JEQ.curadd;
1757/1: 200 323 312|201 263 361|245 103 336|200 260 041 JS.dsearch; J.prog+1s3; JCZ4.funny; J.fail;
1761/1: 052|100 240|170 256|171 242|171 250 ERASE; FMM10/0; SQ10; FM10; FC10;
1762/4: 245 223 363 enditem: JCZ9.addin;
1763/1: 027|065|027|065 NEG; REV; NEG; REV; /negate word/syllable if item -ve
1763/5: 172 210|172 202|205 263 341 addin: S+C8; S+M8; J.next;
1765/0: 052|171 062|304 000 006|171 070|164 373|036|204 263 362 curadd: ERASE; FM3; SET6; FC3; SHL-3; -; J.enditem;
1767/2: 140 040|201 324 317 absolute: M+I2; JS.assemno; /word address
1770/1: 065|304 000 036|015|223 143 372 REV; SET30; NEV; J=Z.syll;
1771/3: 141 040|041|204 263 362 M-I2; ZERO; J.enditem; /no syllable number
1772/3: 102 041|201 324 317|016|141 040|204 263 362 syll: FMMQ2/1; JS.assemno; ROUND; M-I2; J.enditem;
1774/2: 140 040|203 324 001|200 260 041|203 324 001|205 264 000 str: M+I2; JS.onesym; J.fail; JS.onesym; J.estr;
1776/4: 065|164 021|011|102 041|304 000 235|015|200 140 041 REV; SHL8; OR; FMMQ2/1; SET≠235; NEV; JNEZ.fail;
2000/5: 041|204 263 362 estr: ZERO; J.enditem;
2001/3: 102 041|304 000 216|222 024 006|304 000 230|220 020 041 onesym: FMMQ2/1; SET≠216; JEQ.formal; SET≠230; JEQ.fail;
2003/5: 304 000 271|220 020 041|304 000 235|222 021 167|202 360 001 SET≠271; JEQ.fail; SET≠235; JEQ.erex; EXIT.1;
2006/2: 052|102 041|304 000 036|202 323 060|304 000 377|054|202 360 001
formal: ERASE; FMMQ2/1; SET30; JS.lookup; SET≠377; AND; EXIT.1;
end
2011/0: 300 000 106|222 141 167 prbs: F.tables; JEQZ.erex;
2012/0: 164 021|300 004 017|011|300 001 233|222 144 015 SHL8; F.ssssd; OR; F.refcount; JEQZ.prog+1s5;
2014/0: 304 000 240|166 361|301 001 233 SET≠240; SHLD-8; S.refcount;
2015/2: 200 321 151|200 321 205|203 260 112 JS.printsix; JS.printline; J.prnl;
2016/5: 017|236 236 236 236 000 377 *ssssd:= ≠ 4751723647400377;
2020/0: 000 000 000 000 000 000 lastbegin:=0;
2021/0: 200 324 011 beginblock: JS.prbs;
2021/3: 300 004 020|101 160|171 176|301 004 020 dumbeg: F.lastbegin; SMM7/0; FQ7; S.lastbegin;
2023/1: 041|113 160|200 262 016 ZERO; SMMQN7/0; J.nxitem;
2024/1: 157 172|146 240|146 220|171 224|170 202 endblock: QFRQ7/10; ITWO10; ITWO9; FI9; SM8;
2025/5: 200 324 011|041|033|301 000 024|200 321 164 JS.prbs; ZERO; NOT; S.endmark; JS.space;
/increments 2 for backward scan from current
/dictionary position. M8 = 2 to ease back-tracking
2027/4: 157 065|152 150 begin QFRQ3/5; IFRQ6/8; /preserve line count and prog
/ address: both disturbed by update
2030/2: 142 240|300 004 020|164 301|172 250|143 240 NC10; F.lastbegin; SHL-32; S+C10; DC10;
/set up scan of dictionary for this block only
2032/1: 244 244 062|152 004 nxentry: JCZ10.tidyup; IFRQ0/4;
2033/0: 102 250|205 044 034|017|177 240 *findloc: FMMQ10/8; JGEZ.locitem; *JCNZS10;
2034/2: 204 264 062 J.tidyup; /scans for each located entry
locitem: /for each located entry,
/process corresponding unlocated entries;
/M10 now points to the located entry.
2034/5: 155 171|142 220|110 240|041 CMFRQ7/9; NC9; FMMN10/0; ZERO;
2036/0: 052 erscan: ERASE;
2036/1: 017|017|017|017|017|112 230|042|220 144 041|222 024 043|177 220|041
*scan: FMMQN9/8; DUP; JEQZ.lastref; JEQ.process; JCNZS9; ZERO;
2041/0: 052|052|171 104|221 044 032 lastref: ERASE; ERASE; FI4; JLTZ.nxentry;
2042/1: 041|033|111 240|201 264 032 ZERO; NOT; SMMN10/0; J.nxentry;
/delete located entry unless there is
/a corresponding label entry
2043/2: 100 220|042|200 044 036 process: FMM9/0; DUP; JGEZ.erscan;
2044/2: 042|033|164 301|203 144 046|052 DUP; NOT; SHL-32; JNEZ.notlab; ERASE;
2045/4: 145 100|203 264 061 IMONE4; J.delete; /label entry: delete but remember in I4
notlab: /unlocated entry to be updated
2046/3: 047|162 007|033|170 102 STR; SHAD3; NOT; SM4; /address type
2047/3: 164 003|047|170 110 SHL1; STR; SC4; /+/- marker
2050/2: 164 371|170 156 SHL-4; SQ6; /Q6 set up for update
2051/0: 155 143 CMFRQ6/3; /to give correct fail address
2051/2: 142 140|110 141|042|100 141|166 140 update: NC6; FMMN6/1; DUP; FMM6/1; SHLDC6;
2052/5: 142 140|065 NC6; REV; /sylls to be updated at top of N1
2053/2: 100 240|170 276|171 262|242 104 055 FMM10/0; SQ11; FM11; JCZ4.pos; /address value
2054/5: 142 260|027 NC11; NEG; /negate address if -
/[ ----- page 15
2055/2: 171 270|201 322 202 pos: FC11; JS.addup; /update
2056/1: 065|166 140|101 141 REV; SHLDC6; SMM6/1;
2057/0: 041|033|164 061|164 140|042|066|054 ZERO; NOT; SHL+24; SHLC6; DUP; CAB; AND;
2060/3: 012|033|054|011|111 141 PERM; NOT; AND; OR; SMMN6/1;
2061/3: 041|033|111 220|200 264 037 delete: ZERO; NOT; SMMN9/0; J.scan;
label stop, updfail; updfail=delete: /[ a bit sneaky hiding this label definition
2062/4: 300 004 020|042|170 276|102 260 tidyup: F.lastbegin; DUP; SQ11; FMMQ11/0;
2064/0: 301 004 020 S.lastbegin; /last begin is removed from dictionary
2064/3: 171 170|027|172 270|170 176|202 264 070 FC7; NEG; S+C11; SQ7; J.endtidy;
/set up for removing unwanted entries from dictionary
2066/1: 017|017|017|017|017|112 260|042|033|205 144 157 *tidy: FMMQN11/0; DUP; NOT; JNEZ.keep;
2070/1: 052 erase: ERASE;
2070/2: 177 260 endtidy: JCNZS11;
2070/4: 157 123|152 206 QFRQ5/3; IFRQ8/6; /restore prog address and line no.
2071/2: 041|301 000 024|300 000 106|223 144 073|203 320 112 ZERO; S.endmark; F.tables; JEQZ.prog+1; JS.prnl;
2073/3: 300 004 020|200 142 016|245 164 077|142 160|146 160 F.lastbegin; JNEZ.nxitem; JCZ7.enter; NC7; ITWO7;
2075/4: 017|017|102 170|042|220 044 152|052 *checkunloc: FMMQ7/8; DUP; JLTZ.unloc; ERASE;
2077/1: 177 160|152 206 endcheck: JCNZS7; IFRQ8/6;
2077/5: 300 000 023|200 140 037 enter: F.failmark; JNEZ.catfail;
2100/5: 300 001 241|224 144 107|300 000 104|225 144 125 F.flag; JEQZ.endbin; F.test; JEQZ.landg;
2102/5: 300 020 007|033|204 144 106 FM1.7; NOT; JNEZ.endbin-1;
2104/0: 171 062|300 001 236|032|304 000 010|164 041|011 FM3; F.inbfr; MAX; SET8; SHL16; OR;
2106/0: 301 020 007|052 SM1.7; ERASE; /default filler word
2106/4: 200 326 073|201 324 226 JS.bintod; JS.prod;
2107/4: 200 321 243 endbin: JS.windup;
2110/1: 300 000 110|200 040 035|300 001 237|164 377|304 000 002|015|220 140 035
stop: F.jq; JGEZ.zeroout; F.failno; SHL-1; SET2; NEV; JEQZ.zeroout;
2113/1: 300 001 134|224 144 114|202 332 153|224 304 115|173 000|052 F.ptfile; JEQZ.prog+1; JS.closeptr; JEJ.prog+1; FLINK; ERASE;
2115/4: 203 244 115|201 304 115|300 000 105|167 377|202 044 122 JNEN.prog-0s1; JNEJ.prog-1; F.length; SHC-1; JGEZ.close;
2120/0: 242 364 122|171 370|304 000 006|200 220 000|205 264 123 JCZ15.close; FC15; SET6; OUT; J.batch; /direct printer
2122/2: 300 001 242|304 000 010|200 220 000 close: F.closestr; SET8; OUT;
2123/5: 300 004 151|300 000 002|304 000 001|200 220 000 batch: F.iden; F.2; SET1; OUT; /re-enter
2125/5: 304 013 203|114 001|110 001|015|114 000|110 000 landg: SET≠5603; FMMHN0/1; FMMN0/1; NEV; FMMHN0/0; FMMN0/0;
2127/5: 015|037|223 100 036|052|200 321 243 NEV; SIGN; JGTZ.nfail; ERASE; JS.windup;
2131/2: 300 004 147|042|301 000 005|301 020 005 F.loopa; DUP; S.5; SM1.5;
2133/0: 300 004 150|042|301 000 006|301 020 006 F.loopb; DUP; S.6; SM1.6;
2134/4: 300 000 334|304 000 063|200 220 000 F.jobno; SET51; OUT;
2136/1: 171 062|300 001 236|032|033|027|170 271|052 FM3; F.inbfr; MAX; NOT; NEG; SRC11; ERASE;
2140/0: 300 000 111|164 061|114 001|042|220 144 142|032|052 F.timelt; SHL24; FMMHN0/1; DUP; JEQZ.prog+0s4; MAX; ERASE;
2142/1: 304 000 003|200 220 000|056|171 270|164 023|056|014|114 000|115 001|304 000 002|200 260 005
SET3; OUT; +; FC11; SHL9; +; ROUNDH; FMMHN0/0; SMMHN0/1; SET2; J.5;
/add trans time + allowance for code copying to give TL
2146/0: 072 063 061 064 050 236 *unlocstr:={unloc*s};
2147/0: 100 261|017|103 260 *loopa: FMM11/1; DUMMY; SMMQ11/0; /move code
2147/5: 017|177 260|200 220 000 *loopb: JCNZS11; OUT; /and enter
2150/5: 017|206 305 036 171 347 236 *iden:= P AL4-----;
2152/0: 033|164 301|221 144 077 unloc: NOT; SHL-32; JEQZ.endcheck; /label
2153/0: 300 004 146|200 321 151|110 160|200 321 170 F.unlocstr; JS.printsix; FMMN7/0; JS.printid;
2154/5: 100 160|170 156|200 321 205 FMM7/0; SQ6; JS.printline;
2156/0: 203 320 112|171 164|301 000 023 JS.prnl; FI7; S.failmark;
2157/2: 201 264 077 J.endcheck;
2157/5: 111 160|100 270|042|033|164 301 keep: SMMN7/0; FMM11/8; DUP; NOT; SHL-32;
2161/1: 221 144 070 JEQZ.erase; /ignore remaining label entries
2161/4: 103 160|202 264 070 SMMQ7/0; J.endtidy;
end
2162/3: 202 322 260|140 040|304 000 014|170 270 segment: JS.input; M+I2; SET12; SC11;
2164/1: 041|301 001 241|171 076 begin ZERO; S.flag; FQ3;
2165/1: 304 000 030|170 071|140 060|140 060 SET24; SRC3; M+I3; M+I3;
2166/4: 102 041|304 000 321|224 024 175|304 000 241|225 024 200|042|164 365|200 140 041
loop: FMMQ2/1; SET≠321; JEQ.skip; SET≠241; JEQ.end; DUP; SHL-6; JNEZ.fail;
2172/0: 200 321 213|201 323 021 JS.bstopr; JS.storechar;
2173/0: 143 260|264 264 166 eloop: DC11; JCNZ11.loop;
2173/5: 102 041|304 000 241|225 024 200|200 260 041 FMMQ2/1; SET≠241; JEQ.end; J.fail;
2175/4: 052|304 377 372|172 070|260 064 173|304 000 060|170 070|140 060|200 264 173
skip: ERASE; SET-6; S+C3; JCNZ3.eloop; SET48; SC3; M+I3; J.eloop;
2200/5: 170 111|140 100|170 076 end: SRC4; M+I4; SQ3;
/[ ----- page 16
2201/5: 200 323 333|304 000 024|015|200 140 041 JS.calcadd; SET≠24; NEV; JNEZ.fail;
2203/3: 104 000|104 001|042|301 004 270|015|201 144 207 FMMH0/0; FMMH0/1; DUP; S.oldij; NEV; JNEZ.filler; /initial jump preserved
2205/3: 043|300 004 271|012|201 322 202|105 001 DUPD; F.jump; PERM; JS.addup; SMMH0/1; /initial jump
2207/1: 052|200 323 333|304 000 230|015|200 140 041|052 filler: ERASE; JS.calcadd; SET≠230; NEV; JNEZ.fail; ERASE;
2211/1: 043|037|220 100 041|042|171 022|056|200 321 164 DUPD; SIGN; JGTZ.fail; DUP; FM1; +; JS.space;
2213/1: 065|164 041|011|042|301 020 007 REV; SHL16; OR; DUP; SM1.7; /filler word
2214/3: 170 036|041|033|172 264 chunloc: SQ1; ZERO; NOT; S+I11;
2215/3: 157 172|146 240|142 240|017|017|017|302 240 002|223 044 244 QFRQ7/10; ITWO10; NC10; *FMQ10.2; JLTZ.check;
2220/0: 177 240 ok: JCNZS10;
2220/2: 300 000 023|300 000 104|033|011|200 142 016 F.failmark; F.test; NOT; OR; JNEZ.nxitem;
2222/1: 171 144|200 326 073|170 144|201 324 226|300 004 270|105 001 FI6; JS.bintod; SI6; JS.prod; F.oldij; SMMH0/1;
2224/4: 300 000 336|203 041 347|200 262 016 F.dlost; JGEZ.fl6; J.nxitem;
2226/1: 300 020 003|300 020 002|166 045|204 321 221|304 017 377|011|204 321 221
prod: FM1.3; FM1.2; SHLD18; JS.print8; SET≠7777; OR; JS.print8;
2231/1: 300 004 264|204 321 221|300 004 265|204 321 221|300 004 267|202 324 241
F.ond; JS.print8; F.size; JS.print8; F.hiadd; JS.pr32;
2234/1: 110 001|170 270|243 264 237|143 260|300 004 266|200 321 151|171 270|202 324 241
FMMN0/1; SC11; JCZ11.prog+2s4; DC11; F.st; JS.printsix; FC11; JS.pr32;
2237/3: 203 320 112|300 004 264|164 365|200 266 321 JS.prnl; F.ond; SHL-6; J.idtype;
2241/2: 304 377 013|164 361|300 001 231|066|164 367|033|027|164 013 pr32: SET≠177413; SHL-8; F.decimal; CAB; SHL-5; NOT; NEG; SHL5;
2243/5: 067|200 261 330 FRB; J.prno;
2244/3: 100 240|033|164 301|220 144 220 check: FMM10/0; NOT; SHL-32; JEQZ.ok;
2245/5: 100 240|170 236|171 222|171 262|037|220 104 220 FMM10/0; SQ9; FM9; FM11; SIGN; JGTZ.ok;
2247/5: 171 222|171 264|037|042|224 144 254|220 044 220 FM9; FI11; SIGN; DUP; JEQZ.recheck; JLTZ.ok;
2251/5: 304 000 004|170 251|302 244 260|200 321 151 error: SET.ond-err; SRC10; FMQ10.err; JS.printsix;
2253/4: 264 244 252|200 260 041 JCNZ10.prog-1; J.fail;
2254/4: 052|171 230|304 000 070|054|304 000 030|037|200 044 220|205 264 251
recheck: ERASE; FC9; SET≠70; AND; SET24; SIGN; JGEZ.ok; J.error;
2257/3: 017|017|017|240 070 052 054 062 052|063 071 236 063 052 052|051 070 236 072 065 051|046 071 056 063 054 377
*err:={*c segment *s needs *s updating};
2264/0: 276 340 044 247 070 337 *ond:= P on*sdisc.;
2265/0: 000 014 351 352 120 077 size:= P *2ssize*s;
2266/0: 003 070 070 071 236 377 st:= {&3s st *s};
2267/0: 000 000 000 000 000 000 hiadd:=0;
2270/0: 000 000 000 000 000 000 oldij:=0;
2271/0: 200 260 000 jump: J.0;
label prod, hiadd, ond;
end
2271/3: 202 322 260|140 040|304 000 230|041 labelspec: JS.input; M+I2; SET≠230; ZERO;
/set up for search in containing block
2273/0: 300 004 020|170 236|154 004 begin F.lastbegin; SQ9; CFRQ0/4;
2274/1: 052|200 323 322|157 232 nxlab: ERASE; JS.packid; QFRQ9/10;
2275/1: 202 323 312|201 264 302 JS.sdsearch; J.boob; /already in outer block
2276/1: 111 160|041|033|170 150 SMMN7/0; ZERO; NOT; SC6;
2277/1: 171 156|103 160 FQ6; SMMQ7/0;
2277/5: 102 041|304 000 246|221 024 274 next: FMMQ2/1; SET≠246; JEQ.nxlab;
2301/1: 225 022 015|200 260 041 JEQ.nxitem-0s1; J.fail;
2302/1: 065|052|042|202 323 303|033|205 264 277 boob: REV; ERASE; DUP; JS.because; NOT; J.next; /cause fail at end of list
end
einbs:
2303/5: 265 024 315|041 begin JCNZ1.ceq; ZERO; /check if middle of :=
2304/3: 052 b: ERASE;
2304/4: 204 320 360 a: JS.inbs;
2305/1: 042|164 365|203 144 310|042|304 000 045|065|037 DUP; SHL-6; JNEZ.long; DUP; SET≠45; REV; SIGN;
2307/1: 304 000 032|054|036|200 360 000 SET26; AND; -; EXITH;
2310/3: 304 000 236|223 024 304|304 000 256|223 024 304 long: SET≠236; JEQ.b; SET≠256; JEQ.b;
2312/3: 304 000 377|223 024 304|304 000 265|200 024 310 SET≠377; JEQ.b; SET≠265; JNE.long-0s3;
2314/3: 170 030|304 000 271|200 360 000 coleq: SC1; SET≠271; EXITH;
2315/5: 154 001|304 000 242|200 360 000 ceq: CFRQ0/1; SET162; EXITH;
end
assemno: /assemble signed integer
2317/1: 001|154 005|042|304 000 012|037|223 044 334 begin VR; CFRQ0/5; DUP; SET10; SIGN; JLTZ.input;
2321/0: 102 041|065|304 000 321|224 024 332|304 000 301|220 024 333 FMMQ2/1; REV; SET≠321; JEQ.neg; SET≠301; JEQ.neg+0s2;
2323/3: 304 000 322|015|065|042|164 373|066|011|200 140 041 SET≠322; NEV; REV; DUP; SHL-3; CAB; OR; JNEZ.fail;
2325/4: 102 041|042|164 373|205 144 330 octal: FMMQ2/1; DUP; SHL-3; JNEZ.exit+0s1;
2327/0: 065|047|162 007|027|050|011|204 264 325 REV; STR; SHAD3; NEG; CONT; OR; J.octal;
2330/4: 052|065|244 124 331|027|220 200 041|200 360 000 exit: ERASE; REV; JCZ5.prog+0s4; NEG; JV.fail; EXITH;
/[ ----- page 17
2332/4: 143 120|052|042|304 000 012|037|200 040 041 neg: DC5; ERASE; DUP; SET10; SIGN; JGEZ.fail;
2334/3: 102 041|304 000 012|043|037|204 044 330 input: FMMQ2/1; SET10; DUPD; SIGN; JGEZ.exit;
2336/1: 066|034|050|056|203 264 334 CAB; ×D; CONT; +; J.input;
end
/lists of instruction blanks,
/listed according to parser types
2337/2: 017|017|017|017 *cblanks:
2340/0: 001|056|056|041|056|056|056|056|056|057|056|056|023|056|056 VR;+;+; ZERO;+;+; +;+;+; +D;+;+; +DF;+;+;
2342/3: 074|056|056|036|056|056|053|056|056|022|056|056|075|056|056 +F;+;+; -;+;+; -D;+;+; -DF;+;+; -F;+;+;
2345/0: 026|056|056|030|056|056|054|056|056|003|056|056|066|056|056 ABS;+;+; ABSF;+;+; AND;+;+; BITS;+;+; CAB;+;+;
2347/3: 050|056|056|060|056|056|061|056|056|063|056|056|062|056|056 CONT;+;+; DIV;+;+; DIVD;+;+; DIVDF;+;+; DIVF;+;+;
2352/0: 044|056|056|064|056|056|017|056|056|042|056|056|043|056|056 DIVI;+;+; DIVR;+;+; DUMMY;+;+; DUP;+;+; DUPD;+;+;
2354/3: 052|056|056|202 360 000|222 360 000|200 360 000|045|056|056 ERASE;+;+; EXIT; EXITD; EXITH; FIX;+;+;
2357/0: 173 000|056|024|056|056|025|056|056|176 000|056|176 000|056 FLINK;+; FLOAT;+;+; FLOATD;+;+; FNSC;+; FPHU;+;
2361/3: 067|056|056|176 000|056|032|056|056|072|056|056|035|056|056 FRB;+;+; FRFIS;+; MAX;+;+; MAXF;+;+; MULT;+;+;
2364/0: 163 137|056|007|056|056|034|056|056|005|056|056|004|056|056 MULT+;+; MULT+F;+;+; MULTD;+;+; MULTDF;+;+; MULTF;+;+;
2366/3: 027|056|056|010|056|056|071|056|056|031|056|056|015|056|056 NEG;+;+; NEGD;+;+; NEGDF;+;+; NEGF;+;+; NEV;+;+;
2371/0: 033|056|056|011|056|056|200 220 000|012|056|056|065|056|056 NOT;+;+; OR;+;+; OUT; PERM;+;+; REV;+;+;
2373/3: 051|056|056|016|056|056|020|056|056|014|056|056|021|056|056 REVD;+;+; ROUND;+;+; ROUNDF;+;+; ROUNDH;+;+; ROUNDHF;+;+;
2376/0: 175 000|056|175|200|056|175 000|056|002|056|056|037|056|056 SBANOL;+; =S≠175;=S≠200;+; SCPDAR;+; SETTR;+;+; SIGN;+;+;
2400/3: 077|056|056|174 000|056|175 000|056|070|056|056|047|056|056 SIGNF;+;+; SLINK;+; SNSC;+; STAND;+;+; STR;+;+;
2403/0: 013|056|056 TOB;+;+;
2403/3: 017|017|017 *cnblanks:
2404/0: 120 002|056|124 002|056|120 000|056|143 000|056|171 010|056|171 004|056
BUSYQ0;+; CLOQ0;+; CTQ0;+; DC0;+; FC0;+; FI0;+;
2407/0: 171 002|056|171 016|056|145 000|056|147 000|056|134 002|056|144 000|056
FM0;+; FQ0;+; IMONE0;+; IMTWO0;+; INTQ0;+; IONE0;+;
2412/0: 146 000|056|177 000|056|131 000|056|130 000|056|140 000|056 ITWO0;+; JCNZS0;+; LPEQ0;+; LPQ0;+; M+I0;+;
2414/3: 141 000|056|120 001|056|127 000|056|126 000|056|136 000|056 M-I0;+; MANUALQ0;+; MBREQ0;+; MBRQ0;+; MBSKQ0;+;
2417/0: 120 010|056|122 000|056|125 000|056|124 000|056|134 000|056|130 014|056
MBTQ0;+; METQ0;+; PREQ0;+; MFRQ0;+; MFSKQ0;+; MGAPQ0;+;
2422/0: 120 004|056|131 010|056|130 010|056|136 010|056|163 001|056 MLBQ0;+; MLWEQ0;+; MLWQ0;+; MRWDQ0;+; MULT++0;+;
2424/3: 163 000|056|131 000|056|130 004|056|130 000|056|142 000|056 MULT+C0;+; MWEQ0;+; MWIPEQ0;+; MWQ0;+; NC0;+;
2427/0: 121 000|056|130 014|056|124 000|056|125 000|056|124 010|056 PARQ0;+; PGAPQ0;+; PIAQ0;+; PIBQ0;+; PICQ0;+;
2431/3: 125 010|056|126 000|056|127 000|056|126 010|056|127 010|056 PIDQ0;+; PIEQ0;+; PIFQ0;+; PIGQ0;+; PIHQ0;+;
2434/0: 134 000|056|120 010|056|120 004|056|136 010|056|136 000|056 PMAQ0;+; PMBQ0;+; PMCQ0;+; PMDQ0;+; PMEQ0;+;
2436/3: 122 000|056|122 004|056|130 002|056|134 004|056|136 004|056 PMFQ0;+; PMGQ0;+; PMHQ0;+; PMKQ0;+; PMLQ0;+;
2441/0: 130 000|056|131 000|056|130 010|056|131 010|056|130 014|056 POAQ0;+; POBQ0;+; POCQ0;+; PODQ0;+; POEQ0;+;
2443/3: 130 004|056|132 000|056|133 000|056|133 010|056|132 010|056 POFQ0;+; POGQ0;+; POHQ0;+; POKQ0;+; POLQ0;+;
2446/0: 125 010|056|124 010|056|125 000|056|124 000|056|131 010|056 PRCEQ0;+; PRCQ0;+; PREQ0;+; PRQ0;+; PWCEQ0;+;
2450/3: 130 010|056|131 000|056|130 000|056|172 010|056|172 004|056 PWCQ0;+; PWEQ0;+; PWQ0;+; S+C0;+; S+I0;+;
2453/0: 172 002|056|172 016|056|170 010|056|304 000 000|161 001|056 S+M0;+; S+Q0;+; SC0;+; SET0; SHA0;+;
2455/3: 161 000|056|162 001|056|162 000|056|167 001|056|167 000|056 SHAC0;+; SHAD0;+; SHADC0;+; SHC0;+; SHCC0;+;
2460/0: 164 001|056|164 000|056|166 001|056|166 000|056|170 004|056 SHL0;+; SHLC0;+; SHLD0;+; SHLDC0;+; SI0;+;
2462/3: 170 002|056|170 016|056|170 011|056|170 005|056|170 003|056 SM0;+; SQ0;+; SRC0;+; SRI0;+; SRM0;+;
2465/0: 124 004|056|125 000|056|124 000|056|131 000|056|130 000|056 TLOQ0;+; TREQ0;+; TRQ0;+; TWEQ0;+; TWQ0;+;
2467/3: 017|017|017 *cnnblanks:
2470/0: 154 000|056|156 000|056|155 000|056|100 000|056|104 000|056 CFRQ0/0;+; CIFRQ0/0;+; CMFRQ0/0;+; FMM0/0;+; FMMH0/0;+;
2472/3: 114 000|056|110 000|056|102 000|056|106 000|056|116 000|056 FMMHN0/0;+; FMMN0/0;+; FMMQ0/0;+; FMMQH0/0;+; FMMQHN0/0;+;
2475/0: 112 000|056|152 000|056|153 000|056|151 000|056|157 000|056 FMMQN0/0;+; IFRQ0/0;+; IMFRQ0/0;+; MFRQ0/0;+; QFRQ0/0;+;
2477/3: 101 000|056|105 000|056|115 000|056|111 000|056|103 000|056 SMM0/0;+; SMMH0/0;+; SMMHN0/0;+; SMMN0/0;+; SMMQ0/0;+;
2502/0: 107 000|056|117 000|056|113 000|056 SMMQH0/0;+; SMMQHN0/0;+; SMMQN0/0;+;
2503/3: 017|017|017 *cablanks:
2504/0: 202 360 000|200 360 000|300 000 000|200 260 000|220 300 000 EXIT.0; EXITH.0; F.0; J.0; JEJ.0;
2506/3: 220 240 000|220 020 000|220 140 000|200 040 000|220 100 000 JEN.0; JEQ.0; JEQZ.0; JGEZ.0; JGTZ.0;
2511/0: 200 100 000|220 040 000|200 020 000|200 300 000|200 240 000 JLEZ.0; JLTZ.0; JNE.0; JNEJ.0; JNEN.0;
2513/3: 200 140 000|200 340 000|200 200 000|200 320 000|220 340 000 JNEZ.0; JNTR.0; JNV.0; JS.0; JTR.0;
2516/0: 220 200 000|301 000 000|304 000 000|304 000 000 JV.0; S.0; SET.0; SET.0;
*cnablanks:
2520/0: 300 000 000|302 000 000|260 000 000|240 000 000 FM0.0; FMQ0.0; JCNZ0.0; JCZ0.0;
/[ ----- page 18
2522/0: 301 000 000|303 000 000 SM0.0; SMQ0.0;
/tables of packed instructions for locator
*ctable:
2523/0: 205 320 000 000 000 000|225 007 132 000 000 000|040 000 000 000 000 000|040 360 000 000 000 000|040 364 100 000 000 000
=× VR; =× ZERO; =× +; =× +D; =× +DF;
2530/0: 041 020 000 000 000 000|044 000 000 000 000 000|044 360 000 000 000 000|044 364 100 000 000 000|045 020 000 000 000 000
=× +F; =× -; =× -D; =× -DF; =× -F;
2535/0: 060 327 200 000 000 000|060 327 221 000 000 000|061 223 300 000 000 000|065 107 336 000 000 000|070 303 100 000 000 000
=× ABS; =× ABSF; =× AND; =× BITS; =× CAB;
2542/0: 071 246 137 000 000 000|075 110 100 000 000 000|075 110 117 000 000 000|075 110 117 104 000 000|075 110 121 000 000 000
=× CONT; =× DIV; =× DIVD; =× DIVDF; =× DIVF;
2547/0: 075 110 124 000 000 000|075 110 135 000 000 000|076 006 030 220 000 000|076 006 300 000 000 000|076 006 317 000 000 000
=× DIVI; =× DIVR; =× DUMMY; =× DUP; =× DUPD;
2554/0: 101 323 036 100 000 000|102 065 037 000 000 000|102 065 037 074 000 000|102 065 037 114 000 000|105 110 300 000 000 000
=× ERASE; =× EXIT; =× EXITD; =× EXITH; =× FIX;
2561/0: 105 165 031 130 000 000|105 166 214 174 000 000|105 166 214 174 360 000|105 227 216 000 000 000|105 264 340 000 000 000
=× FLINK; =× FLOAT; =× FLOATD; =× FNSC; =× FPHU;
2566/0: 105 323 100 000 000 000|105 324 124 170 000 000|140 310 300 000 000 000|140 310 321 000 000 000|142 005 337 000 000 000
=× FRB; =× FRFIS; =× MAX; =× MAXF; =× MULT;
2573/0: 142 005 337 040 000 000|142 005 337 041 020 000|142 005 337 074 000 000|142 005 337 075 020 000|142 005 337 104 000 000
=× MULT+; =× MULT+F; =× MULTD; =× MULTDF; =× MULTF;
2600/0: 145 004 200 000 000 000|145 004 217 000 000 000|145 004 217 104 000 000|145 004 221 000 000 000|145 010 100 000 000 000
=× NEG; =× NEGD; =× NEGDF; =× NEGF; =× NEV;
2605/0: 145 247 300 000 000 000|151 320 000 000 000 000|152 007 300 000 000 000|155 007 130 000 000 000|165 010 100 000 000 000
=× NOT; =× OR; =× OUT; =× PERM; =× REV;
2612/0: 165 010 117 000 000 000|165 250 031 074 000 000|165 250 031 075 020 000|165 250 031 075 060 000|165 250 031 075 064 100
=× REVD; =× ROUND; =× ROUNDF; =× ROUNDH; =× ROUNDHF;
2617/0: 170 323 031 151 160 000|170 330 045 224 000 000|170 346 317 061 320 000|171 007 337 164 000 000|171 104 231 000 000 000
=× SBANOL; =× SBUZZ; =× SCPDAR; =× SETTR; =× SIGN;
2624/0: 171 104 231 104 000 000|171 165 031 130 000 000|171 227 216 000 000 000|171 363 031 074 000 000|171 367 100 000 000 000
=× SIGNF; =× SLINK; =× SNSC; =× STAND; =× STR;
2631/0: 175 243 100 000 000 000 =× TOB;
cntable:
2632/0: 066 007 244 160 000 000|071 166 234 000 000 000|071 367 000 000 000 000|074 340 000 000 000 000|104 340 000 000 000 000|105 100 000 000 000 000
=× BUSYQ; =× CLOQ; =× CTQ; =× DC; =× FC; =× FI;
2640/0: 105 200 000 000 000 000|105 300 000 000 000 000|121 206 231 100 000 000|121 207 342 150 000 000|121 227 334 000 000 000|121 246 120 000 000 000
=× FM; =× FQ; =× IMONE; =× IMTWO; =× INTQ; =× IONE;
2646/0: 121 370 232 000 000 000|124 346 145 170 000 000|135 264 034 000 000 000|135 267 000 000 000 000|140 205 000 000 000 000
=× ITWO; =× JCNZS; =× LPEQ; =× LPQ; =× M+I;
2653/0: 140 225 000 000 000 000|140 306 140 061 167 000|140 327 120 160 000 000|140 327 134 000 000 000|140 327 226 160 000 000
=× M-I0; =× MANUALQ; =× MBREQ; =× MBRQ; =× MBSKQ;
2660/0: 140 327 334 000 000 000|141 007 334 000 000 000|141 027 120 160 000 000|141 027 134 000 000 000|141 027 226 160 000 000|141 043 033 160 000 000
=× MBTQ; =× METQ; =× MFREQ; =× MFRQ; =× MFSKQ; =× MGAPQ;
2666/0: 141 163 134 000 000 000|141 170 220 160 000 000|141 170 234 000 000 000|141 330 217 160 000 000|142 005 337 040 000 000
=× MLBQ; =× MLWEQ; =× MLWQ; =× MRWDQ; =× MULT+;
2673/0: 142 005 337 040 340 000|142 044 034 000 000 000|142 045 033 101 300 000|142 047 000 000 000 000|144 340 000 000 000 000
=× MULT+C; =× MWEQ; =× MWIPEQ; =× MWQ; =× NC;
2700/0: 154 307 134 000 000 000|155 043 033 160 000 000|155 103 034 000 000 000|155 103 134 000 000 000|155 103 234 000 000 000
=× PARQ; =× PGAPQ; =× PIAQ; =× PIBQ; =× PICQ;
2705/0: 155 103 334 000 000 000|155 104 034 000 000 000|155 104 134 000 000 000|155 104 234 000 000 000|155 104 334 000 000 000
=× PIDQ; =× PIEQ; =× PIFQ; =× PIGQ; =× PIHQ;
2712/0: 155 203 034 000 000 000|155 203 134 000 000 000|155 203 234 000 000 000|155 203 334 000 000 000|155 204 034 000 000 000
=× PMAQ; =× PMBQ; =× PMCQ; =× PMDQ; =× PMEQ;
2717/0: 155 204 134 000 000 000|155 204 234 000 000 000|155 204 334 000 000 000|155 205 234 000 000 000|155 205 334 000 000 000
=× PMFQ; =× PMGQ; =× PMHQ; =× PMKQ; =× PMLQ;
2724/0: 155 243 034 000 000 000|155 243 134 000 000 000|155 243 234 000 000 000|155 243 334 000 000 000|155 244 034 000 000 000
=× POAQ; =× POBQ; =× POCQ; =× PODQ; =× POEQ;
2731/0: 155 244 134 000 000 000|155 244 234 000 000 000|155 244 334 000 000 000|155 245 234 000 000 000|155 245 334 000 000 000
=× POFQ; =× POGQ; =× POHQ; =× POKQ; =× POLQ;
2736/0: 155 323 220 160 000 000|155 323 234 000 000 000|155 324 034 000 000 000|155 327 000 000 000 000|156 043 220 160 000 000
=× PRCEQ; =× PRCQ; =× PREQ; =× PRQ; =× PWCEQ;
2743/0: 156 043 234 000 000 000|156 044 034 000 000 000|156 047 000 000 000 000|170 203 200 000 000 000|170 205 000 000 000 000
=× PWCQ; =× PWEQ; =× PWQ; =× S+C; =× S+I;
2750/0: 170 206 000 000 000 000|170 207 000 000 000 000|170 340 000 000 000 000|171 007 300 000 000 000|171 063 000 000 000 000
=× S+M; =× S+Q; =× SC; =× SET; =× SHA;
2755/0: 171 063 016 000 000 000|171 063 017 000 000 000|171 063 017 070 000 000|171 063 200 000 000 000|171 063 216 000 000 000
=× SHAC; =× SHAD; =× SHADC; =× SHC; =× SHCC;
2762/0: 171 065 300 000 000 000|171 065 316 000 000 000|171 065 317 000 000 000|171 065 317 070 000 000|171 100 000 000 000 000
=× SHL; =× SHLC; =× SHLD; =× SHLDC; =× SI;
2767/0: 171 200 000 000 000 000|171 300 000 000 000 000|171 323 200 000 000 000|171 325 000 000 000 000|171 326 000 000 000 000
=× SM; =× SQ; =× SRC; =× SRI; =× SRM;
2774/0: 175 166 234 000 000 000|175 324 034 000 000 000|175 327 000 000 000 000|176 044 034 000 000 000|176 047 000 000 000 000
=× TLOQ; =× TREQ; =× TRQ; =× TWEQ; =× TWQ;
cnntable:
3001/0: 071 027 134 000 000 000|071 104 135 160 000 000|071 204 135 160 000 000|105 206 000 000 000 000|105 206 023 000 000 000
=× CFRQ; =× CIFRQ; =× CMFRQ; =× FMM; =× FMMH;
3006/0: 105 206 023 144 000 000|105 206 031 000 000 000|105 206 034 000 000 000|105 206 034 114 000 000|105 206 034 115 220 000
=× FMMHN; =× FMMN; =× FMMQ; =× FMMQH; =× FMMQHN;
3013/0: 105 206 034 144 000 000|121 027 134 000 000 000|121 204 135 160 000 000|141 027 134 000 000 000|161 027 134 000 000 000
=× FMMQN; =× IFRQ; =× IMFRQ; =× MFRQ; =× QFRQ;
3020/0: 171 206 000 000 000 000|171 206 023 000 000 000|171 206 023 144 000 000|171 206 031 000 000 000|171 206 034 000 000 000
=× SMM; =× SMMH; =× SMMHN; =× SMMN; =× SMMQ;
3025/0: 171 206 034 114 000 000|171 206 034 115 220 000|171 206 034 144 000 000
=× SMMQH; =× SMMQHN; =× SMMQN;
catable:
3030/0: 102 065 037 000 000 000|102 065 037 114 000 000|104 000 000 000 000 000|124 000 000 000 000 000|125 005 100 000 000 000
=× EXIT; =× EXITH; =× F; =× J; =× JEJ;
3035/0: 125 006 100 000 000 000|125 007 000 000 000 000|125 007 045 000 000 000|125 044 045 000 000 000|125 047 345 000 000 000
=× JEN; =× JEQ; =× JEQZ; =× JGEZ; =× JGTZ;
3042/0: 125 164 045 000 000 000|125 167 345 000 000 000|125 224 000 000 000 000|125 224 025 000 000 000|125 224 031 000 000 000
=× JLEZ; =× JLTZ; =× JNE; =× JNEJ; =× JNEN;
3047/0: 125 224 045 000 000 000|125 227 335 000 000 000|125 230 100 000 000 000|125 340 000 000 000 000|125 367 100 000 000 000
=× JNEZ; =× JNTR; =× JNV; =× JS; =× JTR;
3054/0: 126 020 000 000 000 000|170 000 000 000 000 000|171 007 300 000 000 000|171 007 314 000 000 000
=× JV; =× S; =× SET; =× SETA;
cnatable:
3060/0: 105 200 000 000 000 000|105 207 000 000 000 000|124 346 145 000 000 000|124 351 100 000 000 000
=× FM; =× FMQ; =× JCNZ; =× JCZ;
3064/0: 171 200 000 000 000 000|171 207 000 000 000 000 =× SM; =× SMQ;
/dope words for recogniser
3066/0: 000 006 005 120 006 060 tcna:=Q tcna-cnatable/cnablanks/cnatable; /code : number . address
/[ ----- page 19
3067/0: 000 030 005 104 006 030 tca:=Q cnatable-catable/cablanks/catable; /code . address
3070/0: 000 107 004 340 005 123 tc:=Q cntable-ctable/cblanks/ctable; /code only type
3071/0: 000 147 005 004 005 232 tcn:=Q cnntable-cntable/cnblanks/cntable; /code: number
3072/0: 000 027 005 070 006 001 tcnn:=Q catable-cnntable/cnnblanks/cnntable; /code: number / number
bintod: /write binary program to disc
3073/0: 304 013 203|304 163 240|110 020|166 061|037|203 100 036 begin SET≠5603; SET.mcsize; FMMN1/0; SHLD24; SIGN; JLEZ.nfail;
3075/2: 100 001|011|101 001 FMM0/1; OR; SMM0/1;
3076/1: 304 000 001|170 243|304 002 052|301 006 315 SET1; SRM10; SET554; S.size;
3100/0: 300 020 007|170 276|171 262|171 264|043 FM1.7; SQ11; FM11; FI11; DUPD; /split filler word
3101/4: 043|170 263|042|301 004 267|171 022|056|171 162|036 DUPD; SRM11; DUP; S.hiadd; FM1; +; FM7; -;
3103/5: 042|201 321 166|223 101 347 DUP; JS.space1+0s3; JGTZ.fl6;
3105/0: 301 006 313|301 006 314|036|033|027|042|200 100 041|170 270|041
S.lo; S.hi; -; NOT; NEG; DUP; JLEZ.fail; SC11; ZERO;
3107/4: 017|017|102 261|017|017|017|056|177 260|301 006 316 *FMMQ11/1; DUMMY; DUMMY; DUMMY; +; JCNZS11; S.sum;
3111/5: 300 000 107|225 146 137 F.ptbin; JEQZ.disc; /jump if disc binary
3112/5: 300 020 002|164 045|304 160 260|011|164 015|304 000 003|011|167 061|042
FM1.2; SHL18; SET≠070260; OR; SHL6; SET3; OR; SHC+24; DUP;
3115/5: 301 006 175|301 020 002|300 020 003|301 006 175|300 006 316|101 261
S.ablock; SM1.2; FM1.3; S.ablock; F.sum; SMM11/1;
3120/4: 300 000 334|164 015|304 002 135|166 365|304 000 005|200 220 000
F.jobno; SHL6; SET≠1135; SHLD-6; SET5; OUT;
3123/2: 170 151|301 006 177|304 000 036|170 144|140 140 SRC6; S.ablock+2; SET30; SI6; M+I6;
3125/2: 130 144|154 150|304 006 175|170 204|304 006 204|170 202|131 200
POFQ6; CFRQ6/8; SET.ablock; SI8; SET.ablock+7; SM8; POBQ8;
3130/0: 141 200|171 022|170 204|140 200|100 200|164 041|164 341|033|027|042|101 200
M-I8; FM1; SI8; M+I8; FMM8/0; SHL+16; SHL-16; NOT; NEG; DUP; SMM8/0;
3133/1: 130 200|170 236|171 022|042|172 224|172 222|154 151|130 220|130 144
POAQ8; SQ9; FM1; DUP; S+I9; S+M9; CFRQ6/9; POAQ9; POFQ6;
3136/0: 171 150|304 000 006|200 220 000|200 360 000 FC6; SET6; OUT; EXITH;
3137/5: 304 024 345|200 220 000|052 disc: SET≠12345; OUT; ERASE;
3141/0: 300 006 314|300 006 313|036|300 006 315|037|200 106 151 fill: F.hi; F.lo; -; F.size; SIGN; JLEZ.last;
3143/2: 171 024|170 270|300 006 313|042|170 264|300 006 315|056|042|170 262
FI1; SC11; F.lo; DUP; SI11; F.size; +; DUP; SM11;
3146/1: 171 276|303 246 241|301 006 313|304 002 172|301 006 315|200 266 141
FQ11; SMQ10.f-1; S.lo; SET634; S.size; J.fill;
3151/0: 154 013|300 006 313|170 264|300 006 314|033|027|170 262 last: CFRQ0/11; F.lo; SI11; F.hi; NOT; NEG; SM11;
3153/2: 171 276|301 246 241|300 006 316|301 246 242 FQ11; SM10.f-1; F.sum; SM10.f;
3155/1: 300 020 002|164 061|300 006 320|166 321|301 006 317 FM1.2; SHL24; F.ncdc; SHLD-24; S.poc;
3157/2: 301 020 002|171 242|301 006 316 SM1.2; FM10; S.sum;
3160/4: 204 326 201 JS.writebs;
3161/1: 300 006 317|300 006 316|164 041|011|300 020 003|300 020 002|304 000 033|200 220 000
F.poc; F.sum; SHL16; OR; FM1.3; FM1.2; SET27; OUT;
3164/4: 042|201 106 173 DUP; JLEZ.exit;
3165/2: 204 321 011|300 020 002|300 011 134|015 JS.discread+0s4; FM1.2; F.block+636; NEV;
3167/0: 300 020 003|300 011 135|015|167 335|164 351|011|203 141 350 FM1.3; F.block+637; NEV; SHC-18; SHL-12; OR; JNEZ.fl7;
3171/3: 300 006 241|304 000 035|200 220 000|041 F.asl; SET29; OUT; ZERO;
3173/1: 052|205 261 014 exit: ERASE; J.reread;
doasl: / Q6 = no. of NOCs / 1 / address of first NOC
3173/5: 304 000 110|170 211 SET72; SRC8; /overwritten by A-block if P.T. binary
3174/4: 017|017|041|303 206 350|017|017|177 200 *ablock: ZERO; SMQ8.block+8; *JCNZS8;
3176/2: 102 140|304 007 054|171 142|056 rpt: FMMQ6/0; SET.block+block-f+14; FM6; +;
3177/4: 170 202|167 341|105 200|262 146 176|200 360 000 SM8; SHC-16; SMMH8/0; JCNZ6.rpt; EXITH;
3201/4: 304 006 340|170 123|300 246 241|170 276|171 262|171 264 writebs: SET.block; SRM5; FM10.f-1; SQ11; FM11; FI11;
3204/0: 042|170 263|036|170 270|300 006 317|103 120|300 246 242 DUP; SRM11; -; SC11; F.poc; SMMQ5/0; FM10.f;
3206/2: 304 000 032|200 220 000|042|223 141 350|042|301 006 317 SET26; OUT; DUP; JEQZ.fl7; DUP; S.poc;
3210/4: 301 246 242 SM10.f; /filler word left in nest
3211/1: 141 240|171 242|200 146 223 M-I10; FM10; JNEZ.notfir;
3212/2: 300 006 316|170 151|304 006 243|170 142|205 326 173 first: F.sum; SRC6; SET.f+1; SM6; JS.doasl;
3214/3: 300 006 242|301 006 347|304 000 007|170 151|300 006 340|301 007 060
F.f; S.block+7; SET7; SRC6; F.block; S.block+80;
3217/2: 017|017|017|017|100 141|303 146 340|017|177 140 *FMM6/1; SMQ6.block; *JCNZS6;
3221/2: 304 000 120|172 122 SET80; S+M5;
3222/1: 017|017|017|017|017|102 261|103 120|017|017|177 260 *notfir: FMMQ11/1; SMMQ5/0; *JCNZS11;
3224/2: 101 120 SMM5/0; /copy block and filler
3224/4: 300 020 002|301 011 134|300 020 003|301 011 135 FM1.2; S.block+636; FM1.3; S.block+637;
3226/4: 304 002 176|170 271|041|041 output: SET638; SRC11; ZERO; ZERO;
3227/5: 017|302 266 340|017|047|057|177 260 *FMQ11.block; DUMMY; STR; +D; JCNZS11;
3231/2: 164 041|164 341|301 011 136|301 011 137 SHL+16; SHL-16; S.block+638; S.block+639;
3233/0: 300 006 317|300 000 331|166 041|167 341|065|164 041 F.poc; F.transfer; SHLD+16; SHC-16; REV; SHL+16;
3235/1: 304 000 027|200 220 000|304 000 025|200 220 000 SET23; OUT; SET21; OUT;
/[ ----- page 20
3237/1: 171 242|204 146 201|200 360 000 FM10; JNEZ.writebs; EXITH;
3240/3: 017|017|017|000 000 006 350 007 050 *asl:= Q 0 / block+8 / block+72;
f: prog=f+41:
3313/0: 000 000 000 000 000 000|000 000 000 000 000 000|000 000 000 000 000 000|000 000 000 000 000 000|000 000 000 000 000 000
lo:=0; hi:=0; size:=0; sum:=0; poc:=0;
3320/0: 000 000 000 034 051 002 ncdc:= ≠ 07024402;
label f, ablock;
end
label code, input, updfail, nxitem, round, assemno, block, f;
label options, openinput, case, du, ptbfr, loctfr, stop;
label dumbeg, openptout, ptinput, block, code, ablock, idtype, type;
begin label ptbfr, loctfr, block, code, ptinput, openptout, idtype;
label options, openinput, type, case;
3321/0: 300 020 003|300 020 002|033|164 061|033 idtype: FM1.3; FM1.2; NOT; SHL24; NOT;
3322/4: 301 006 332|301 006 333|301 006 334|300 000 110|222 146 327 type: S.flex+2; S.flex+3; S.flex+4; F.jq; JEQZ.x;
3325/1: 041|301 006 331|300 006 330|304 000 010|200 220 000 ZERO; S.flex+1; F.flex; SET8; OUT;
3327/2: 200 360 000 x: EXITH;
3327/5: 017|000 000 006 331 006 334|000 000 000 000 000 000|000 000 000 000 000 000|000 000 000 000 000 000|000 000 000 000 000 000
*flex: =Q 0/prog+1/prog+4; =P*32s;
3335/0: 000 000 000 000 000 000 case:= 0;
3336/0: 017|017|017|017|017|017|017|017|017|017|017|017|000 000 000 000 000 000
**block:=0; code=block+640:
prog=prog+40:
3411/0: 171 310|300 001 134|202 147 365|304 000 006|200 220 000 findfile: FC12; F.ptfile; JNEZ.loadptread; SET6; OUT;
3413/2: 042|041|166 015|304 000 010|170 310 DUP; ZERO; SHLD6; SET8; SC12;
3414/5: 017|304 000 036|015|027|065|166 255|143 300|177 300 * SET≠36; NEV; NEG; REV; SHLD-42; DC12; JCNZS12;
3417/0: 052|170 336|065|041|200 327 045 ERASE; SQ13; REV; ZERO; JS.read;
3420/2: 300 011 376|301 006 360|202 267 022 F.ptbfr+638; S.block+16; J.prog+1;
3421/5: 200 327 045|304 000 324|300 007 200|164 301|036|170 311 r: JS.read; SET212; F.ptbfr; SHL-32; -; SRC12;
3424/1: 304 000 003|170 304|200 267 027 SET3; SI12; J.l+1;
3425/3: 017|017|017|302 307 201|220 027 046|177 300 *l: FMQ12.ptbfr+1; JEQ.c; JCNZS12;
3427/2: 300 011 377|042|205 147 021 F.ptbfr+639; DUP; JNEZ.r;
3430/3: 052|043|301 020 002|301 020 003 notfound: ERASE; DUPD; SM1.2; SM1.3;
3431/5: 166 061|065|304 013 257|011 SHLD24; REV; SET≠5657; OR;
3433/0: 065|300 007 035|012|204 326 322|201 264 110 REV; F.tfound; PERM; JS.type; J.stop;
3434/5: 017|320 011 257 326 351 077 *tfound:= P T*sfound;
3436/0: 000 000 000 000 000 000 mask:=0;
3437/0: 171 347 236 171 347 236 minuses:= P --------;
3440/0: 000 000 000 034 055 002 nctc:= P *4s*n*c T *c;
3441/0: 000 000 007 200 011 377 loctfr:= Q 0 / ptbfr / ptbfr+639;
3442/0: 027 000 000 000 000 003 pres:= ≠0560 0000 0000 0003; /presumed options
3443/0: 303 133 243 242 131 037 ont:= P punched.;
3444/0: 236 216 216 216 236 377 aaa:= {*s*3a*s};
3445/0: 300 007 041|201 261 012 read: F.loctfr; J.discread+1s1;
3446/0: 043|052|300 307 177|015|171 336|054|200 147 027 c: DUPD; ERASE; FM12.ptbfr-1; NEV; FQ13; AND; JNEZ.l+1;
3450/0: 300 307 200|164 041|164 247|027|033|220 107 027 FM12.ptbfr; SHL16; SHL-45; NEG; NOT; JGTZ.l+1;
3452/0: 300 307 176|301 006 353|300 307 177|301 006 354 FM12.ptbfr-2; S.block+11; FM12.ptbfr-1; S.block+12;
3454/0: 052|052|300 307 200|301 006 355|204 267 070 ERASE; ERASE; FM12.ptbfr; S.block+13; J.options;
openinput: /for entry via job queue
3455/5: 300 000 331|304 002 130|036|304 000 042|200 220 000 begin F.transfer; SET600; -; SET34; OUT;
/the previous line sets the buffer area as follows:
/block+17 - TL/ST block+11/12 - input file ident
/block+13 - input file F.O.C. block+15 - as Z38 in PROMPT
/block+16 - F.O.C library index block+4 - job number
/block+6 - global disc communication word
/initialise input and decode options
3460/0: 300 006 344|301 000 334 F.block+4; S.jobno;
3461/0: 304 000 036|300 006 346|164 061|164 317|204 147 066|052 SET.fjtime; F.block+6; SHL24; SHL-25; JNEZ.settl; ERASE;
/foreground - max TL = default TL; default ST = 0
3463/2: 041|033|027|301 000 110|300 006 357 ZERO; NOT; NEG; S.jq; F.block+15;
3464/5: 167 375|221 047 066|201 330 122 SHC-2; JLTZ.prog+1; JS.openptout; /O/P8 allowed in B.J.Q.
3466/1: 304 001 054 SET.bjtime;
/[ ----- page 21
3466/4: 300 006 361|164 321|032|052|164 061|301 006 361 settl: F.block+17; SHL-24; MAX; ERASE; SHL+24; S.block+17;
3470/4: 300 006 353|042|301 000 332|101 041 options: F.block+11; DUP; S.texid; SMM2/1;
3472/1: 300 006 354|042|301 000 333|164 335|164 031 F.block+12; DUP; S.texid+1; SHL-18; SHL12;
3474/0: 304 015 160|011|300 006 357|047|164 245|066|011|164 015 SET≠6560; OR; F.block+15; STR; SHL-46; CAB; OR; SHL+6;
3476/2: 304 000 065|011|111 041|164 005|047|301 000 106|164 011|047|301 000 104
SET≠65; OR; SMMN2/1; SHL2; STR; S.tables; SHL4; STR; S.test;
3501/2: 164 121|003|042|200 147 103|205 320 317 SHL40; BITS; DUP; JNEZ.prog+1; JS.openoutt;
3503/0: 300 000 105|036|301 000 105|300 006 360|301 001 127 F.length; -; S.length; F.block+16; S.lib F.O.C;
3505/1: 300 000 334|110 041|102 041|166 045|204 321 221|164 335 F.jobno; FMMN2/1; FMMQ2/1; SHLD18; JS.print8; SHL-18;
3507/3: 166 045|204 321 221|300 007 140|011|204 321 221 SHLD18; JS.print8; F.sttt; OR; JS.print8;
3511/3: 300 000 035|103 041|110 040|042|101 041|204 321 221 F.zeroout; SMMQ2/1; FMMN2/0; DUP; SMM2/1; JS.print8;
3513/4: 304 000 256|200 320 113|300 007 141|304 000 011|200 220 000|304 000 036|044
SET≠256; JS.oubs; F.tradix; SET9; OUT; SET30; DIVI;
3516/5: 052|161 317|067|300 007 142|011|204 321 221 ERASE; SHA-25; FRB; F.tradix+1; OR; JS.print8; /time
3520/4: 300 006 361|042|111 020|164 321|042|202 147 123 F.block+17; DUP; SMMN1/0; SHL-24; DUP; JNEZ.prog+1s1;
3522/4: 052|304 000 036|042|301 000 111 ERASE; SET.fjtime; DUP; S.timelt;
3524/0: 304 000 074|044|043|052|203 147 126|304 000 063|204 267 131 SET60; DIVI; DUPD; ERASE; JNEZ.mins; SET≠63; J.endj;
3526/3: 065|304 000 144|044|065|042|041|037|056 mins: REV; SET100; DIVI; REV; DUP; ZERO; SIGN; +;
3530/1: 304 000 003|032|052|304 000 017|056 SET3; MAX; ERASE; SET≠17; +;
3531/4: 066|052|300 001 231|066|067|304 004 020|011 endj: CAB; ERASE; F.decimal; CAB; FRB; SET≠2020; OR;
3533/3: 065|164 031|011|300 000 334|164 335|164 045|011|301 000 334 REV; SHL12; OR; F.jobno; SHL-18; SHL+18; OR; S.jobno;
3536/0: 300 001 134|220 140 342|203 260 344 F.ptfile; JEQZ.initial; J.initial+2s3;
label options;
3537/3: 017|017|017|000 017 377 374 101 004 *sttt:= P *2s*3d*3t;
3541/0: 174 240 106 050 020 101|101 007 320 100 040 202 tradix:= ≠ 37120106 12010101; =P 00.00*3c;
end
3543/0: 017|017|017|017|017|017|017|017|017|017|017|017|017|017|017|017|017|017|017|017|017|017|017|017|017|017|017|017|017|017|017|017|017|017|017|017|017|017|017|017|017|017|017|017|017|017|017|017|017|017|017|017|017|017|017|017|017|017|017|017|017|017|017|017|017|017|017|017|017|017|017|017|017|017|017|017|017|017|017|017|017|017|017|017|017|017|017|017|017|017|017|017|017|017|017|017|017|017|017|017|017|017|017|017|017|017|017|017|017|017|017|017|017|017|017|017|017|017|017|017|017|017|017|017|017|017|017|017|017|017|017|017|017|017|017|017|017|017|017|017|017|017|017|017|017|017|017|017|017|017|017|017|017|017|017|017|017|017|017|017|017|017|017|017|017|017|017|017|017|017|017|017|017|017
**ptbfr:
prog=prog+32:
3640/0: 000 000 000 000 000 000 onoff:=0;
3641/0: 246 355 241 262 231 000|266 134 363 206 171 175|212 376 000 272 367 375|246 111 156 323 337 377|277 015 051 276 357 177
inv:= P Invalid*s message*e box*sno.*e ident*e*2d option*e;
3646/0: 260 327 250|304 000 040|170 331|121 300|125 300 char: JCNZ13.unpk; SET32; SRC13; PARQ12; PREQ12;
3650/0: 041|033|300 327 200|043|015|222 147 264 unpk: ZERO; NOT; FM13.ptbfr; DUPD; NEV; JEQZ.nwd;
3651/4: 166 255|065|301 327 200 SHLD-42; REV; SM13.ptbfr;
3652/4: 304 000 075|203 027 254|154 015|200 360 000 SET≠75; JNE.ched; CFRQ0/13; EXITH;
3654/3: 042|164 373|220 147 257|304 000 077|220 027 261|200 360 000 ched: DUP; SHL-3; JEQZ.prog+2; SET≠77; JEQ.prog+3; EXITH;
3657/0: 304 000 006|224 027 262|304 000 007|224 027 262 SET6; JEQ.cchar; SET7; JEQ.cchar;
3661/0: 052|171 062|220 147 246|041|200 360 000 ERASE; FM3; JEQZ.char; ZERO; EXITH;
3662/4: 304 000 007|036|301 006 335|200 267 246 cchar: SET7; -; S.case; J.char;
3664/2: 052|052|140 320|143 320|200 267 246 nwd: ERASE; ERASE; M+I13; DC13; J.char;
3665/5: 200 327 246|304 000 032|225 027 267|200 360 000 echar: JS.char; SET≠32; JEQ.ul; EXITH;
3667/5: 200 327 246|065|225 027 267|304 000 200|011|200 360 000 ul: JS.char; REV; JEQ.ul; SET≠200; OR; EXITH;
begin label ptinput, openptout, loadptread;
3672/1: 304 000 021|200 220 000|301 000 337|301 000 340 ptinput: SET17; OUT; S.time; S.time+1;
3674/1: 041|033|301 000 110|304 007 200|170 304|304 000 037|170 302 ZERO; NOT; S.jq; SET.ptbfr; SI12; SET31; SM12;
3676/4: 140 300|304 000 002|304 000 005|200 220 000|170 310|154 015|304 000 036|164 061|301 006 361
M+I12; SET2; SET5; OUT; SC12; CFRQ0/13; SET30; SHL24; S.block+17;
3702/3: 300 007 042|301 006 357 F.pres; S.superm;
3703/3: 304 000 275|205 327 265|304 000 060|222 027 363|304 000 075|220 020 035
SET≠275; JS.echar; SET≠60; JEQ.pt; SET≠75; JEQ.zeroout;
3706/3: 065|202 027 310|205 327 265|065|221 027 307 REV; JNE.prog+1s4; JS.echar; REV; JEQ.prog-0s4;
/N1 = first non-uem
3710/2: 304 010 033|202 330 011|304 000 004|170 270|300 007 040 SET.tab1; JS.decode; SET4; SC11; F.nctc;
3712/4: 164 015|200 327 246|304 000 037|224 030 001|304 000 034|224 030 001
id1: SHL6; JS.char; SET≠37; JEQ.invid; SET≠34; JEQ.invid;
3715/3: 300 006 335|204 150 001|011|143 260|264 267 312 F.case; JNEZ.invid; OR; DC11; JCNZ11.id1;
3717/3: 042|301 000 332|304 000 010|170 270|300 007 037 DUP; S.texid; SET8; SC11; F.minuses;
3721/3: 200 327 246|300 006 335|204 150 001|304 000 037|220 027 327|304 000 034
id2: JS.char; F.case; JNEZ.invid; SET≠37; JEQ.dot; SET≠34;
3724/3: 224 030 001|143 260|065|164 015|011|263 267 321|202 267 330 JEQ.invid; DC11; REV; SHL6; OR; JCNZ11.id2; J.jobnum;
3727/0: 052|167 015|143 260|261 267 327 dot: ERASE; SHC6; DC11; JCNZ11.prog-0s4;
3730/2: 042|301 000 333|200 327 246|042|161 377|304 000 017|015 jobnum: DUP; S.texid+1; JS.char; DUP; SHA-1; SET≠17; NEV;
3732/4: 300 006 335|011|204 150 002|164 015|200 327 246 F.case; OR; JNEZ.xjno; SHL6; JS.char;
3734/4: 304 000 034|224 030 002|300 006 335|204 150 002|011 SET≠34; JEQ.xjno; F.case; JNEZ.xjno; OR;
3736/5: 164 015|200 327 246|042|304 000 017|015|300 006 335|011|204 150 002|011
SHL6; JS.char; DUP; SET≠17; NEV; F.case; OR; JNEZ.xjno; OR;
3741/5: 164 015|200 327 246|204 327 370|204 270 002 SHL6; JS.char; JS.chdig; J.xjno;
3743/4: 011|164 015|200 327 246|204 327 370|204 270 002|011|164 045|304 146 232
OR; SHL6; JS.char; JS.chdig; J.xjno; OR; SHL18; SET≠63232;
3746/4: 164 007|011|301 000 334|300 001 134|221 150 010 SHL3; OR; S.jobno; F.ptfile; JEQZ.dc2;
/[ ----- page 22
3750/4: 200 327 246|304 000 075|015|222 147 375 JS.char; SET≠75; NEV; JEQZ.invmess;
3752/2: 304 000 006|170 271|041|303 266 342|261 267 353 SET6; SRC11; ZERO; SMQ11.block+2; JCNZ11.prog-0s4;
3754/2: 171 076|200 327 246|304 374 006|170 063|304 000 060|170 070|202 267 360
FQ3; JS.char; SET.block+2-endptread; SRM3; SET48; SC3; J.prog+1s3;
3757/2: 201 323 021|200 327 246|304 000 075|225 027 374 title: JS.storechar; JS.char; SET≠75; JEQ.invtitle;
3761/2: 304 000 034|202 027 357|052|170 076|201 270 010 SET≠34; JNE.title; ERASE; SQ3; J.dc2;
3763/2: 301 001 134|052|304 012 334|170 022|202 267 311 pt: S.ptfile; ERASE; SET.endptread; SM1; J.id1-1s2;
3765/2: 100 000|300 000 003|304 000 004|167 351|056|300 000 002|304 000 001|200 220 000
loadptread: FMM0/0; F.3; SET4; SHC-12; +; F.2; SET1; OUT;
3770/4: 300 006 335|202 146 327|042|304 000 020|037|222 046 327 chdig: F.case; JNEZ.x; DUP; SET≠20; SIGN; JLTZ.x;
3773/0: 042|304 000 031|037|222 106 327|202 360 001 DUP; SET≠31; SIGN; JGTZ.x; EXIT.1;
3774/5: 052|170 076 invtitle: ERASE; SQ3;
3775/2: 041|301 001 134|300 007 242 invmess: ZERO; S.ptfile; F.inv+1;
3776/3: 041|065|300 007 241|204 326 322|171 310|304 000 006|200 220 000|201 264 110
typeinv: ZERO; REV; F.inv; JS.type; FC12; SET6; OUT; J.stop;
4001/4: 300 007 244|203 267 376 invid: F.inv+3; J.typeinv;
4002/4: 300 007 243|203 267 376 xjno: F.inv+2; J.typeinv;
4003/4: 170 250|300 006 357|167 240|065|300 007 240|015 setbit: SC10; F.superm; SHCC10; REV; F.onoff; NEV;
4005/4: 033|050|142 240|167 240|301 006 357|200 360 000 NOT; CONT; NC10; SHCC10; S.superm; EXITH;
4007/4: 204 330 003 setdc: JS.setbit;
4010/1: 304 010 044 dc2: SET.tab2;
4010/4: 200 327 246|065 rdecode: JS.char; REV;
4011/2: 170 262|041|170 243|202 270 013 decode: SM11; ZERO; SRM10; J.prog+1s1;
begin /entered with address of table in N1
4012/4: 052 skip: ERASE;
label loop;
4012/5: 200 327 246|164 125|042|220 050 021|300 006 335|220 150 021 loop: JS.char; SHL42; DUP; JLTZ.seek; F.case; JEQZ.seek;
4015/2: 167 015|304 000 037|204 030 017|042|033|036|204 270 020 SHC+6; SET≠37; JNE.prog+1s3; DUP; NOT; -; J.seek-0s2;
4017/4: 304 000 034|200 030 021|167 365 SET≠34; JNE.seek; SHC-6; /, to 77, pass ;, reject other c/s
4021/0: 104 253|042|167 041|012|164 045|225 030 030 seek: FMMH10/11; DUP; SHC+16; PERM; SHL18; JEQ.found;
4022/5: 065|042|164 003|221 050 026|047|222 150 025 REV; DUP; SHL+1; JLTZ.fail; STR; JEQZ.prog+1s1;
4024/4: 052|304 000 001|172 242|200 270 021 ERASE; SET1; S+M10; J.seek;
4026/1: 065|052|047|200 050 032|140 240|052|104 253|167 041|200 270 032
fail: REV; ERASE; STR; JGEZ.end; M+I10; ERASE; FMMH10/11; SHC16; J.end;
4030/5: 052|140 240|047|224 150 012 found: ERASE; M+I10; STR; JEQZ.skip;
4032/0: 174 000|202 360 000 end: SLINK; EXIT;
end
4032/5: 017 *tab1: /decode program and segment
4033/0: 000 010|060|000 006|062|000 005|057|000 004|047|000 003|062 =T8;=S≠60; =T6;=S≠62; =T5;=S≠57; =T4;=S≠47; =T3;=S≠62;
4035/3: 000 002|041|110 136|255|110 136|337 =T2;=S≠41; =Tprogram;=S≠255; =Tprogram;=S≠337;
4037/0: 107 375|163|000 006|045|000 005|047|000 004|055|000 003|045 =Tfail1;=S≠163; =T6;=S≠45; =T5;=S≠47; =T4;=S≠55; =T3;=S≠45;
4041/3: 000 002|056|150 135|264|150 135|337 =T2;=S≠56; =Tsegment;=S≠264; =Tsegment;=S≠337;
4043/0: 107 375 =Tfail1;
4043/2: 017|017|017|017 *tab2: /options
4044/0: 000 030|064|000 010|045 =T24;=S≠64; =T8;=S≠45; / T E
4045/0: 000 003|063|210 167|264|210 167|337 =T3;=S≠63; =Ttest;=S≠264; =Ttest;=S≠337;
4046/3: 110 111|170|110 165|264|110 165|337|110 111|000 =Tfail2;=S≠170; =Ttext;=S≠264; =Ttext;=S≠337; =Tfail2;=S0;
4050/3: 000 007|041|000 004|042|000 003|054|000 002|045 =T7;=S≠41; =T4;=S≠42; =T3;=S≠54; =T2;=S≠45;
4052/3: 150 166|263|150 166|337|110 111|000 =Ttables;=S≠263; =Ttables;=S≠337; =Tfail2;=S0;
4054/0: 000 006|062|000 003|041|000 002|043|050 164|245 =T6;=S≠62; =T3;=S≠41; =T2;=S≠43; =Ttrace;=S≠245;
4056/0: 050 164|377|110 111|000 =Ttrace;=S≠377; =Tfail2;=S0;
4057/0: 050 146|354|110 111|000 =Ttl;=S≠354; =Tfail2;=S0;
4060/0: 000 006|067|110 111|151|000 002|064|250 136|250 =T6;=S≠67; =Tfail2;=S≠151; =T2;=S≠64; =Twith;=S≠250;
4062/0: 250 136|337|110 111|000 =Twith;=S≠337; =Tfail2;=S0; / W I T H
4063/0: 000 024|057|000 004|065|010 140|264|010 140|337|110 111|000 =T20;=S≠57; =T4;=S≠65; =Tout;=S≠264; =Tout;=S≠337; =Tfail2;=S0;
4065/3: 000 011|060|000 007|100|000 006|063|000 005|055|000 004|051 =T9;=S≠60; =T7;=S64;=T6;=S51; =T5;=S≠55; =T4;=S≠51;
4070/0: 000 003|063|000 002|045|250 162|262|250 162|337 =T3;=S≠63; =T2;=S≠45; =Topt;=S≠262; =Topt;=S≠337;
4072/0: 110 111|117|110 111|160|110 153|254 =Tfail2;=S≠117; =Tfail2;=S≠160; =Topl;=S≠254;
4073/3: 150 155|260|210 150|330|110 111|000 =Topp;=S≠260; =Top8;=S≠330; =Tfail2;=S0;
4075/0: 000 004|063|250 142|264|250 142|337|110 111|000 =T4;=S≠63; =Tst;=S≠264; =Tst;=S≠337; =Tfail2;=S0;
/[ ----- page 23
4077/0: 000 006|053|110 111|141|000 002|054|050 010|224 =T6;=S≠53; =Tfail2;=S≠141; =T2;=S≠54; =Tkal;=S≠224;
4101/0: 050 010|337|110 111|000 =Tkal;=S≠337; =Tfail2;=S0;
4102/0: 000 013|060|000 001|017|000 007|064|000 006|042|000 005|051 =T11;=S≠60; =T1;=S≠17; =T7;=S≠64; =T6;=S≠42; =T5;=S≠51;
4104/3: 000 004|056|000 003|041|000 002|062|250 140|271 =T4;=S≠56; =T3;=S≠41; =T2;=S≠62; =Tbin;=S≠271;
4106/3: 250 140|337|110 111|000 =Tbin;=S≠337; =Tfail2;=S0;
4107/3: 250 136|234|050 010|277|010 113|375|110 111 =Twith;=S≠234; =Tdc2;=S≠277; =Tem;=S≠375; =Tfail2;
superm=block+15:
fail1=invmess:
4111/2: 041|300 007 245|300 007 241|204 326 322 fail2: ZERO; F.inv+4; F.inv; JS.type; /invalid option - continue
4113/0: 304 011 377|171 022|032|171 162|036|042|201 321 166|220 101 344
em: SET.ptbfr+639; FM1; MAX; FM7; -; DUP; JS.space1+0s3; JGTZ.fl2;
4115/4: 052|300 000 107|225 150 117|300 007 043|301 004 264 ERASE; F.ptbin; JEQZ.prog+1s3; F.ont; S.ond;
4117/5: 300 006 357|167 375|220 047 011 F.superm; SHC-2; JLTZ.findfile;
4121/1: 201 330 122|200 267 011 JS.openptout; J.findfile;
/initialise P.T. output
4122/1: 304 000 160|170 271 openptout: SET.ptobfr-ptoubs+2; SRC11;
4123/0: 300 270 200|303 260 113|177 260 *FM11.ptoubs; SMQ11.oubs; JCNZS11;
4124/2: 300 001 232|033|164 041|033|301 001 232|300 007 044|301 000 031
F.ssss; NOT; SHL16; NOT; S.ssss; F.aaa; S.ptr;
4127/0: 300 004 017|033|164 041|164 341|033|301 004 017 F.ssssd; NOT; SHL16; SHL-16; NOT; S.ssssd;
4131/0: 300 001 242|042|164 377|054|301 001 242 F.closestr; DUP; SHL-1; AND; S.closestr;
4132/4: 304 000 271|170 343|304 000 037|170 350 SET.ptobfr-sh; SRM14; SET31; SC14;
4134/2: 041|033|170 365|200 360 000 ZERO; NOT; SRI15; EXITH;
4135/3: 041|041|204 270 003 segment: ZERO; ZERO; J.setbit;
4136/2: 200 360 000 program: EXITH;
4136/5: 041|301 007 240|201 270 010 with: ZERO; S.onoff; J.dc2;
4140/0: 041|033|200 270 137 out: ZERO; NOT; J.with+0s1;
4140/5: 041|033|300 007 240|015|301 000 107|201 270 010 bin: ZERO; NOT; F.onoff; NEV; S.ptbin; J.dc2;
4142/5: 200 330 171|300 006 361|164 321|164 061 st: JS.numb; F.block+17; SHL-24; SHL+24;
4144/3: 011|301 006 361|304 010 044|202 270 011 tlst: OR; S.block+17; SET.tab2; J.decode;
4146/1: 200 330 171|164 061|300 006 361|164 061|164 321|203 270 144 tl: JS.numb; SHL24; F.block+17; SHL24; SHL-24; J.tlst;
4150/4: 300 006 357|164 375|042|056|042|033|036|301 006 357|201 270 010
op8: F.superm; SHL-2; DUP; +; DUP; NOT; -; S.superm; J.dc2;
4153/2: 300 006 357|304 000 003|011|301 006 357|201 270 010 opl: F.superm; SET3; OR; S.superm; J.dc2;
4155/3: 261 370 010|304 000 003|042|304 000 005|200 220 000|170 370|121 360
opp: JCNZ15.dc2; SET3; DUP; SET5; OUT; SC15; PARQ15;
4160/2: 140 360|101 360|130 360|121 360|171 344|172 364|201 270 010 M+I15; SMM15/0; LPQ15; PARQ15; FI14; S+I15; J.dc2;
4162/5: 041|033|304 000 005|204 270 007 opt: ZERO; NOT; SET5; J.setdc;
4164/1: 041|304 000 001|204 270 007 trace: ZERO; SET1; J.setdc;
4165/2: 041|304 000 004|204 270 007 text: ZERO; SET4; J.setdc;
4166/3: 041|304 000 002|204 270 007 tables: ZERO; SET2; J.setdc;
kal=dc2:
4167/4: 041|033|304 000 006|204 270 007 test: ZERO; NOT; SET6; J.setdc;
4171/0: 200 327 246|204 327 370|202 270 111|304 000 017|054 numb: JS.char; JS.chdig; J.fail2; SET≠17; AND;
4173/1: 200 327 246|204 327 370|200 270 177 JS.char; JS.chdig; J.endnum;
4174/4: 304 000 017|054|065|304 000 012|034|050|056|201 270 173 SET≠17; AND; REV; SET10; ×D; CONT; +; J.numb+2s1;
4177/0: 065|200 360 000 endnum: REV; EXITH;
end
end
begin label ptoubs, sh;
4177/4: 017|017 *ptoubs:
sh=ptoubs-oubs:
4200/0: 171 216|065|205 320 114|170 216|200 360 000 FQ8; REV; JS.prog+1s2-sh; SQ8; EXITH;
4201/5: 042|164 365|154 017|200 140 145 DUP; SHL-6; CFRQ0/15; JNEZ.long;
4203/1: 304 000 014|036|042|222 040 141 SET12; -; DUP; JLTZ.num;
4204/3: 304 000 032|044|304 000 041|056 SET26; DIVI; SET≠41; +;
4205/5: 167 363|065|171 364|200 020 157 op=prog-sh: SHC-7; REV; FI15; JNE.xcase;
4207/1: 052|001|110 340 caseok=prog-sh: ERASE; VR; FMMN14/0;
4207/5: 171 370|205 100 124|065|171 370|162 365|052|065 chars=prog-sh: FC15; JLEZ.notul; REV; FC15; SHAD-6; ERASE; REV;
4211/5: 142 360|162 015|201 200 127|113 340|244 340 134|171 344 notul=prog-sh: NC15; SHAD6; JNV.ok; SMMQN14/0; JCZ14.tfr; FI14;
4214/1: 043|052|205 140 122|111 340|052|200 360 000 ok=prog-sh: DUPD; ERASE; JNEZ.chars; SMMN14/0; ERASE; EXITH;
more=ok-0s2:
4216/0: 167 363|304 000 075|164 075 em=prog-sh: SHC-7; SET≠75; SHL30; / N2 < 0 if uem
4217/1: 065|050|200 320 154|110 340 REV; CONT; JS.found+0s4; FMMN14/0;
/[ ----- page 24
4220/2: 161 015|202 200 133|113 340|041 SHA6; JNV.prog-0s2-sh; SMMQN14/0; ZERO;
4221/4: 304 000 271|042 tfr=prog-sh: SET.ptbfr; DUP;
4222/2: 170 344|171 356|304 000 010|042|300 000 271|200 220 000 SI14; FQ14; SET8; DUP; F.ptbfr; OUT;
4224/4: 170 343|304 000 003|170 350|205 260 126 SRM14; SET3; SC14; J.ok-0s2;
4226/2: 041|065|042|161 375|224 140 143 num=prog-sh: ZERO; REV; DUP; SHA-2; JEQZ.tendot;
4227/4: 304 000 034|204 260 120 SET.12+#20; J.op-0s1;
4230/4: 164 005|304 000 043|204 260 120 tendot=prog-sh: SHL2; SET≠43; J.op-0s1;
4232/0: 304 000 104|170 211 long=prog-sh: SET.ptbfr-table; SRC8;
4232/5: 017|302 200 165|164 007|164 263|222 020 153|177 200 *FMQ8.table; SHL3; SHL-39; JEQ.found; JCNZS8;
4235/0: 304 000 377|221 020 164|304 000 276|220 020 131|304 000 316|220 020 131|140 200
SET≠377; JEQ.dummy; SET≠276; JEQ.em; SET≠316; JEQ.em; M+I8;
4240/2: 052|300 200 164|047|203 140 161 found=prog-sh: ERASE; FM8.table-1; STR; JNEZ.ulword;
4241/4: 041|162 027|164 357|042|221 140 122 setup=prog-sh: ZERO; SHAD11; SHL-9; DUP; JEQZ.caseok;
4243/1: 027|033|202 260 121 NEG; NOT; J.op+0s3;
4244/0: 042|170 364|304 000 007|015|162 365|052|110 340|201 260 125 xcase=prog-sh: DUP; SI15; SET7; NEV; SHAD-6; ERASE; FMMN14/0; J.notul+0s2;
4246/3: 304 000 032|170 370|204 320 154 ulword=prog-sh: SET≠32; SC15; JS.setup; /O/P first six
4247/5: 300 200 165|161 027|202 200 122 FM8.table; SHA11; JNV.caseok+0s1; /continuaton word
4251/1: 052|200 360 000 dummy=prog-sh: ERASE; EXITH;
4251/5: 017 *table=prog-sh:
4252/0: 011 340 000 000 000 000|012 000 200 000 000 000|012 341 000 000 000 000
=≠ 0236 000000000000; =≠ 0240 020000000000; =≠ 0256 040000000000;
4255/0: 011 207 000 000 000 000|052 023 300 000 000 000|054 027 100 000 000 000
=≠ 0230 340000000000; =≠ 1241 170000000000; =≠ 1301 350000000000;
4260/0: 055 027 200 000 000 000|113 025 200 000 000 000|111 025 300 000 000 000
=≠ 1321 360000000000; =≠ 2261 260000000000; =≠ 2221 270000000000;
4263/0: 110 024 000 000 000 000|113 223 300 000 000 000|112 045 100 000 000 000
=≠ 2201 200000000000; =≠ 2271 170000000000; =≠ 2242 250000000000;
4266/0: 113 123 325 000 000 000|115 047 100 000 000 000|114 045 000 000 000 000
=≠ 2265 172500000000; =≠ 2322 350000000000; =≠ 2302 240000000000;
4271/0: 110 044 300 000 000 000|113 046 224 000 000 000|111 046 223 000 000 000
=≠ 2202 230000000000; =≠ 2262 322400000000; =≠ 2222 322300000000;
4274/0: 112 147 300 000 000 000|110 106 000 000 000 000|111 106 100 000 000 000
=≠ 2246 370000000000; =≠ 2204 300000000000; =≠ 2224 310000000000;
4277/0: 110 224 100 000 000 000|111 224 200 000 000 000|110 326 221 000 000 000
=≠ 2211 210000000000; =≠ 2231 220000000000; =≠ 2215 322100000000;
4302/0: 111 326 222 000 000 000|110 347 200 000 000 000 =≠ 2235 322200000000; =≠ 2216 360000000000;
4304/0: 310 310 245 236 233 200|111 306 245 152 346 244 =≠ 6214 424547515600; =≠ 2234 324532563244;
4306/0: 304 034 245 206 300 000|304 052 156 322 131 345|000 014 200 000 000 000
=≠ 6101 624541540000; =≠ 6102 515664454745; =≠ 0000 620000000000;
4311/0: 110 146 246 152 366 262|115 146 244 152 360 000|313 154 364 227 000 000
=≠ 2206 324632573262; =≠ 2326 324432570000; =≠ 6266 636445600000;
4314/0: 314 155 156 322 233 000|311 155 350 246 311 100|310 010 357 266 331 156
=≠ 6306 655664515400; =≠ 6226 675051544500; =≠ 6200 435755554556;
4317/0: 000 015 000 000 000 000|304 070 257 276 311 141|000 015 100 000 000 000
=≠ 0000 640000000000; =≠ 6103 425757544541; =≠ 0000 650000000000;
4322/0: 304 210 162 312 036 100|305 014 062 276 071 144|000 015 162 224 000 000
=≠ 6110 416262417100; =≠ 6120 606257434544; =≠ 0000 656245000000;
4325/0: 311 375 241 263 131 100|307 233 041 212 133 000|305 214 367 247 110 350
=≠ 6237 664154654500; =≠ 6171 544142455400; =≠ 6130 636751644350;
4330/0: 307 254 364 312 233 247|110 366 257 153 166 256|110 126 251 152 140 000
=≠ 6172 636462515647; =≠ 2217 325732673256; =≠ 2205 325132460000;
4333/0: 311 135 050 226 340 000|316 131 154 316 120 000|310 211 357 322 360 000
=≠ 6225 645045560000; =≠ 6345 455463450000; =≠ 6210 475764570000;
4336/0: 111 066 241 152 346 244|112 066 257 153 040 000|113 066 251 152 326 260
=≠ 2223 324132563244; =≠ 2243 325732620000; =≠ 2263 325132553260;
4341/0: 114 066 245 153 026 266|110 066 256 152 366 264|315 335 062 326 120 000
=≠ 2303 324532613266; =≠ 2203 325632573264; =≠ 6335 646265450000;
4344/0: 314 331 241 263 071 100|315 013 051 213 050 162|000 016 100 000 000 000
=≠ 6315 464154634500; =≠ 6320 545142624162; =≠ 0000 710000000000;
4347/0: 253 012 344 231 220 000|257 011 170 247 100 000|316 014 345 236 331 156
=≠ 5260 534446310000; =≠ 5360 457051640000; =≠ 6340 634547554556;
4352/0: 000 015 000 000 000 000|254 010 154 236 373 000|011 006 200 000 000 000
=≠ 0000 640000000000; =≠ 5300 415447575400; =≠ 0220 320000000000;
4355/0: 100 007 236 171 347 236 =≠ 2000 363636363636;
ptbfr=prog-sh:
end
Setvstore 12 -- implemented as 48 bits STR;
4356/0: 000 000 000 000 000 000 000 000 000 000 000 001 ptobfr:=D1;
prog=transfer+sh-ptobfr-32: /induce fail if relocation would boob
gap:
prog=ptobfr+2:
end
label endbase, ptread;
endbase:
prog=block+640:
ptinbfr:
prog=prog+48:
linebfr:
prog=prog+40:
prog=ptbfr+640-prog: prog=ptbfr+640:
ptread: /entered here by OUT 1
5000/0: 300 006 335|304 000 100|054|301 006 335 F.case; SET≠100; AND; S.case;
5001/4: 101 000|203 332 150|065|301 006 353|042|301 006 354|167 363 SMM0/0; JS.ptindv; REV; S.block+11; DUP; S.block+12; SHC-7;
5004/1: 300 006 357|065|050|042|301 006 357|164 011|220 052 016 F.block+15; REV; CONT; DUP; S.block+15; SHL4; JLTZ.withtext;
5006/3: 300 012 030|164 101|300 002 077|166 301|052|301 012 030|304 000 377|170 362
F.next; SHL32; F.du; SHLD-32; ERASE; S.next; SET≠377; SM15;
5011/4: 041|300 012 021|205 321 007|300 011 376 r: ZERO; F.ltfr; JS.discread-1s1; F.ptbfr+638;
/[ ----- page 25
5013/2: 301 006 360|300 012 022|301 000 364|157 014|157 015|204 267 070
S.block+16; F.jump; S.blocks; QFRQ0/12; QFRQ0/13; J.options;
5016/0: 304 000 256|170 362|304 000 003|301 000 105|204 272 011 withtext: SET≠256; SM15; SET+3; S.length; J.r;
5020/2: 017|017|017|017|000 000 007 200 011 377 *ltfr:= Q 0/ptbfr/ptbfr+639;
5022/0: 204 272 022|017 *jump: J.ptline; DUMMY; /to align {next} on whole word
5022/4: 171 116|171 136|171 256|171 276|171 362|200 320 113 ptline: FQ4; FQ5; FQ10; FQ11; FM15; JS.oubs;
5024/5: 304 000 005|170 270|304 011 217|170 243|154 265|041 SET5; SC11; SET.linebfr-1; SRM10; CFRQ11/5; ZERO;
5027/0: 033|113 240|200 332 073 NOT; SMMQN10/0; JS.ptinbs;
5030/0: 042|200 320 113|042|100 240|164 021|011|101 240|143 260 next: DUP; JS.oubs; DUP; FMM10/0; SHL8; OR; SMM10/0; DC11;
5032/2: 304 000 236|224 032 037|304 000 256|224 032 037|304 000 240|221 032 045
SET≠236; JEQ.ed; SET≠256; JEQ.ed; SET≠240; JEQ.nl;
5035/2: 154 005|304 000 276|224 032 041|304 000 316|224 032 041 CFRQ0/5; SET≠276; JEQ.em; SET≠316; JEQ.em;
5037/4: 052|263 272 027|304 000 006|170 270|200 272 011 ed: ERASE; JCNZ11.next-0s3; SET6; SC11; J.next-15;
5041/4: 100 240|164 361|164 021|304 000 240|011|103 240 em: FMM10/0; SHL-8; SHL8; SET≠240; OR; SMMQ10/0;
5043/4: 304 276 240|164 017|164 363|101 240 SET≠137240; SHL7; SHL-7; SMM10/0;
5045/1: 304 000 240|037|151 255|171 250|042|170 303|056|027 nl: SET≠240; SIGN; MFRQ10/13; FC10; DUP; SRM12; +; NEG;
5047/2: 110 315|164 021|065|166 365|052|171 130|166 375|052 FMMN12/13; SHL8; REV; SHLD-6; ERASE; FC5; SHLD-2; ERASE;
5051/3: 111 315|170 276|170 256|170 136|204 260 367 SMMN12/13; SQ11; SQ10; SQ5; J.line;
begin label ptinbs, ptindv, claimptr, closeptr; /[ claimptr does not appear anywhere else
5053/2: 304 011 200|170 122|300 012 070|042|170 103 char=prog: SET.ptinbfr+32; SM5; F.fromwell; DUP; SRM4;
5055/1: 300 012 071|015|202 152 065|202 332 124|300 006 335|011 F.endwell; NEV; JNEZ.unwell; JS.ptchar; F.case; OR;
5057/3: 304 000 006|044|164 007|170 330|170 322|300 332 162|164 320|164 261|042
SET6; DIVI; SHL3; SC13; SM13; FM13.atable; SHLC13; SHL-40; DUP;
5062/3: 164 061|107 105|171 102|304 000 037|054|042|301 012 071|200 272 067
SHL24; SMMQH4/5; FM4; SET≠37; AND; DUP; S.endwell; J.prog+2s1;
5065/2: 106 105|164 321|171 102|304 000 037|054|301 012 070|200 360 000
unwell=prog: FMMQH4/5; SHL-24; FM4; SET≠37; AND; S.fromwell; EXITH;
5070/0: 000 000 000 000 000 000|000 000 000 000 000 000|000 000 000 000 000 000
*fromwell=prog:=0; endwell=prog:=0; pres=prog:=0;
5073/0: 300 012 070|301 012 072|202 332 053 ptinbs: F.fromwell; S.pres; JS.char;
5074/3: 304 000 220|220 032 077|304 000 271|220 032 077|200 360 000 SET≠220; JEQ.ulw; SET≠271; JEQ.ulw; EXITH;
5077/0: 203 332 101|200 360 000 ulw=prog: JS.decode; EXITH;
5100/0: 300 012 072|301 012 070|202 272 053 nabs=prog: F.pres; S.fromwell; J.char;
5101/3: 152 005|205 272 102 decode=prog: IFRQ0/5; J.prog+1;
5102/2: 202 332 053 loop=prog: JS.char;
5102/5: 041|171 124|162 375|170 102|304 000 060|035|170 110 seek=prog: ZERO; FI5; SHAD-2; SM4; SET48; ×; SC4;
5105/0: 300 112 210|164 100|042|164 011|164 261|066|065|222 032 117 FM4.btable; SHLC4; DUP; SHL4; SHL-40; CAB; REV; JEQ.match;
5107/3: 065|164 247|042|167 377|225 052 111|052|052|202 360 001 REV; SHL-45; DUP; SHC-1; JLTZ.prog+1s2; ERASE; ERASE; EXIT.1; /NABS
5111/5: 164 377|220 152 114|304 000 002|172 124|205 272 102 SHL-1; JEQZ.alt; SET2; S+I5; J.seek;
5114/0: 300 112 211|300 112 210|166 100|164 031|016 alt=prog: FM4.btable+1; FM4.btable; SHLDC4; SHL12; ROUND;
5115/5: 164 271|033|027|172 124|205 272 102 SHL-36; NOT; NEG; S+I5; J.seek;
5117/2: 052|164 247|167 377|047|027|033|027|172 124|222 032 102 match=prog: ERASE; SHL-45; SHC-1; STR; NEG; NOT; NEG; S+I5; JEQ.loop;
5121/4: 300 112 211|300 112 210|166 100|164 041|016|164 261|200 360 000
abs=prog: FM4.btable+1; FM4.btable; SHLDC4; SHL16; ROUND; SHL-40; EXITH;
5124/2: 300 012 160|170 316|265 312 130|300 012 161|170 316 ptchar=prog: F.q12; SQ12; JCNZ12.unpk; F.qwd; SQ12;
5126/3: 041|002|125 300|121 300|224 352 155 ZERO; SETTR; PREQ12; PARQ12; JTR.par;
5130/0: 304 000 040|170 311 SET32; SRC12;
5130/5: 041|033|300 311 140|043|015|223 152 142 unpk=prog: ZERO; NOT; FM12.ptinbfr; DUPD; NEV; JEQZ.nwd;
5132/3: 166 255|065|301 311 140 SHLD-42; REV; SM12.ptinbfr;
5133/3: 304 000 075|224 032 145|304 000 077|220 032 145 SET≠75; JEQ.em; SET≠77; JEQ.du;
5135/3: 304 000 006|223 032 146|304 000 007|223 032 146 SET6; JEQ.cch; SET7; JEQ.cch;
5137/3: 300 012 157|220 032 144|042|301 012 157 F.last; JEQ.chul; DUP; S.last;
5141/1: 171 316|301 012 160|200 360 000 exb=prog: FQ12; S.q12; EXITH;
5142/3: 052|052|140 300|143 300|201 272 125 nwd=prog: ERASE; ERASE; M+I12; DC12; J.ptchar+0s5;
5144/0: 304 000 032|201 032 141 chul=prog: SET≠32; JNE.exb;
5145/0: 052|201 272 125 du=prog: ERASE; J.ptchar+0s5;
5145/4: 154 014|205 272 141 em=prog: CFRQ0/12; J.exb+0s4;
5146/3: 304 000 007|015|164 015|301 006 335|201 272 125 cch=prog: SET7; NEV; SHL6; S.case; J.ptchar+0s5;
5150/3: 164 101|300 012 161|011|042|301 012 161 ptindv: SHL32; F.qwd; OR; DUP; S.qwd;
5152/1: 170 316|121 300|200 360 000 SQ12; PARQ12; EXITH;
5153/2: 300 012 161|164 301|304 000 006|200 220 000|200 360 000 closeptr: F.qwd; SHL-32; SET6; OUT; EXITH;
5155/4: 304 013 204|203 260 036 par=prog: SET≠5604; J.nfail;
5156/4: 017|017|000 000 000 000 000 000|000 000 000 000 000 000|000 000 011 140 011 177
*last:= 0; q12=prog:= 0; qwd=prog:= Q 0/ptinbfr/ptinbfr+31;
5162/0: 236 376 240 376 256 376|376 376 376 376 376 376|376 376 376 241 000 001|002 003 004 005 006 007|010 011 220 012 230 301
*atable=prog:={*s*#376*c*#376*t*10#376/0123456789*l*#012;+-.*#376
5167/0: 321 013 376 014 015 016|017 020 021 022 023 024|025 026 027 030 031 032|033 034 035 036 037 040|041 042 043 044 045 376|376 276 376 376 236 376
ABCDEFGHIJKLMNOPQRSTUVWXYZ*2#376*e*2#376
5175/0: 240 376 256 376 376 376|376 376 376 376 376 376|376 271 201 211 231 202|302 242 261 221 204 224|220 376 230 322 216 246|376 046 047 050 051 052
*s*#376*c*#376*t*10#376:^[]<>=×÷()*l*#376;#*a,*#376
5203/0: 053 054 055 056 057 060|061 062 063 064 065 066|067 070 071 072 073 074|075 076 077 376 376 276|376 376 377 377 377 377
abcdefghijklmnopqrstuvwxyz*2#376*e*2#376};
*btable=prog:
/[ ----- page 26
5210/0: 053 220 003 112 040 265|011 006 211 010 326 231|011 326 202 011 046 302
=≠ 1271 0003 2242 0265; =≠ 0220 3211 0215 3231; =≠ 0235 3202 0222 3302;
5213/0: 013 046 276 014 342 046|000 360 220 043 060 004|011 004 051 011 060 067
=≠ 0262 3276 0316 1046; =≠ 0017 0220 1063 0004; =≠ 0220 2051 0223 0067;
5216/0: 011 000 067 011 000 046|011 004 076 004 202 047|000 260 220 042 240 013
=≠ 0220 0067 0220 0046; =≠ 0220 2076 0110 1047; =≠ 0013 0220 1052 0013;
5221/0: 011 000 054 011 000 056|011 004 063 010 302 015|000 340 220 003 100 220
=≠ 0220 0054 0220 0056; =≠ 0220 2063 0214 1015; =≠ 0016 0220 0064 0220;
5224/0: 003 100 220 003 020 220|002 240 220 002 140 220|103 060 103 042 200 016
=≠ 0064 0220 0061 0220; =≠ 0052 0220 0046 0220; =≠ 2063 0103 1050 0016;
5227/0: 011 000 064 011 000 062|011 000 062 011 000 052|011 000 063 011 004 071
=≠ 0220 0064 0220 0062; =≠ 0220 0062 0220 0052; =≠ 0220 0063 0220 2071;
5232/0: 010 002 051 000 100 220|103 100 326 042 240 022|011 002 063 000 100 220
=≠ 0200 1051 0004 0220; =≠ 2064 0326 1052 0022; =≠ 0220 1063 0004 0220;
5235/0: 102 220 234 043 140 004|011 004 073 014 060 061|011 000 070 011 004 052
=≠ 2051 0234 1066 0004; =≠ 0220 2073 0303 0061; =≠ 0220 0070 0220 2052;
5240/0: 012 122 053 000 360 220|043 100 004 011 004 067|010 140 046 011 000 061
=≠ 0245 1053 0017 0220; =≠ 1064 0004 0220 2067; =≠ 0206 0046 0220 0061;
5243/0: 011 000 070 011 004 051|014 322 054 000 300 220|003 102 220 000 022 236
=≠ 0220 0070 0220 2051; =≠ 0315 1054 0014 0220; =≠ 0064 1220 0001 1236;
5246/0: 000 040 220 003 220 220|103 100 210 042 340 025|011 006 053 010 122 062
=≠ 0002 0220 0071 0220; =≠ 2064 0210 1056 0025; =≠ 0220 3053 0205 1062;
5251/0: 000 100 220 103 120 263|003 060 220 003 220 220|002 240 220 002 300 220
=≠ 0004 0220 2065 0263; =≠ 0063 0220 0071 0220; =≠ 0052 0220 0054 0220;
5254/0: 002 240 220 103 160 102|043 020 027 011 002 046|000 200 220 002 160 220
=≠ 0052 0220 2067 0102; =≠ 1061 0027 0220 1046; =≠ 0010 0220 0047 0220;
5257/0: 002 240 220 103 020 171|002 340 220 002 160 220|003 160 220 002 140 220
=≠ 0052 0220 2061 0171; =≠ 0056 0220 0047 0220; =≠ 0067 0220 0046 0220;
5262/0: 003 160 220 103 340 320|043 060 006 011 000 064|011 004 071 010 062 064
=≠ 0067 0220 2076 0320; =≠ 1063 0006 0220 0064; =≠ 0220 2071 0203 1064;
5265/0: 000 200 220 143 160 243|003 300 220 103 060 217|103 120 022 011 000 067
=≠ 0010 0220 3067 0243; =≠ 0074 0220 2063 0217; =≠ 2065 0022 0220 0067;
5270/0: 011 000 064 011 000 050|011 000 052 011 000 051|011 000 072 011 000 067
=≠ 0220 0064 0220 0050; =≠ 0220 0052 0220 0051; =≠ 0220 0072 0220 0067;
5273/0: 011 004 052 005 002 067|000 200 220 002 240 220|002 140 220 103 020 101
=≠ 0220 2052 0120 1067; =≠ 0010 0220 0052 0220; =≠ 0046 0220 2061 0101;
5276/0: 043 200 051 011 002 071|000 360 220 042 240 004|011 004 065 013 140 067
=≠ 1070 0051 0220 1071; =≠ 0017 0220 1052 0004; =≠ 0220 2065 0266 0067;
5301/0: 011 000 056 011 000 063|011 004 054 007 242 074|000 240 220 002 340 220
=≠ 0220 0056 0220 0063; =≠ 0220 2054 0172 1074; =≠ 0012 0220 0056 0220;
5304/0: 003 220 220 002 220 220|102 320 130 002 240 220|002 300 220 003 040 220
=≠ 0071 0220 0051 0220; =≠ 2055 0130 0052 0220; =≠ 0054 0220 0062 0220;
5307/0: 002 240 220 003 060 220|103 220 340 043 220 017|011 002 055 000 140 220
=≠ 0052 0220 0063 0220; =≠ 2071 0340 1071 0017; =≠ 0220 1055 0006 0220;
5312/0: 002 240 220 103 060 225|003 160 220 003 240 220|102 240 335 043 240 012
=≠ 0052 0220 2063 0225; =≠ 0067 0220 0072 0220; =≠ 2052 0335 1072 0012;
5315/0: 011 000 063 011 000 071|011 000 056 011 004 061|014 142 073 000 240 220
=≠ 0220 0063 0220 0071; =≠ 0220 0056 0220 2061; =≠ 0306 1073 0012 0220;
5320/0: 002 140 220 003 020 220|003 240 220 102 240 237|043 300 012 011 000 055
=≠ 0046 0220 0061 0220; =≠ 0072 0220 2052 0237; =≠ 1074 0012 0220 0055;
5323/0: 011 000 056 011 000 061|011 004 052 011 142 014|000 240 220 001 160 220
=≠ 0220 0056 0220 0061; =≠ 0220 2052 0226 1014; =≠ 0012 0220 0027 0220;
5326/0: 001 040 220 001 240 220|101 160 300 041 000 010|011 000 043 011 000 024
=≠ 0022 0220 0032 0220; =≠ 2027 0300 1020 0010; =≠ 0220 0043 0220 0024;
5331/0: 011 004 037 017 000 026|011 000 017 011 000 021|011 004 011 013 000 000
=≠ 0220 2037 0360 0026; =≠ 0220 0017 0220 0021; =≠ 0220 2011 0260 0000;
end
*endptread:
Reached end of file
end
No of ID table entries = 785 (26%)