Started Loaded 73181 bytes for EDNKAL4.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 Reached end of file =============== Second pass =========================== !begin [ my grammar is wrong in requiring a begin at the start (DH) [ 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 !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 [ In order to work with DH's yacc-based cross-assembler, on pages 22 and 23 [ the =Tprogaddr has been replaced by =TAprogaddr [ There are no other occurrences of =TA so that the correct source can [ be obtained by a simple multiple edit replaceing =TA by =T [ There are also commented mods to the lineprinter symbol conversion tables 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 J.8; 4/0: 200 321 343|201 261 344 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 016 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|204 321 150 failm: F.error+1; F.error; JS.printtwo; 44/3: 171 070|304 000 070|054|170 070|304 000 377|042|200 321 176 FC3; SET#70; AND; SC3; SET#377; DUP; JS.printadd+0s3; 47/0: 201 321 205|300 000 027|205 321 221|300 001 234|065|204 321 170 JS.printline; F.after; JS.print8; F.lastlab; REV; JS.printid+0s3; 51/4: 300 001 235|203 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|204 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|201 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 236|200 262 014 SQ13; SQ12; JNEZ.fl3; JS.round; J.nxitem; 76/2: 300 000 033|300 000 032|204 321 150 upderr: F.ptr+2; F.ptr+1; JS.printtwo; 77/5: 110 240|042|304 000 377|204 321 170 FMMN10/0; DUP; SET#377; JS.printid+0s3; 101/2: 203 320 112|065|223 144 056 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|201 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|102 340|161 021|011|101 340|225 200 301|200 360 000 outt: VR; FMMQ14/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 325|103 340|300 000 327|103 340|300 000 330|103 340 F.sixz; 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: 203 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 026 165|261 260 347|304 000 075|011|301 006 171 SMQ1.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|203 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|203 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: 203 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; replaced by !begin !label libFOC, endlib, nblock, inlib; 421/5: 300 000 034|301 001 123|202 322 257|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|201 321 213|300 001 341|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 226|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.libFOC; 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|205 321 221|164 365|304 000 056|011|205 321 221 err: F.mess; JS.print8; SHL-6; SET#56; OR; JS.print8; 474/1: 300 001 133|205 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 014 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 014 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 227 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 libFOC:= 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}; [syms:= {*s*d*c*c*t*3d:}; [ DH's assembler has difficulty here - temporary rewrite below [ = S {= ( ) *a � , / 0123456789 *d @ ; + - *d [ the problem relates to word boundaries ??? and char codes [ ABCDEFGHIJKLMNOPQRSTUVWXYZ *4x*d}; 536/0: 236|377|240|240|256|377|377|377|261|242|204|224 syms:= S {*s*d*c*c*t*3d:=()}; 540/0: 216|261|246|241|000|001 = S#216; =S#261; =S#246; =S#241; =S#000; =S#001; 541/0: 002|003|004|005|006|007 = S{234567}; 542/0: 010|011|377|012|230|301 = S#010; =S#011; =S#377; =S#012; =S#230; =S#301; 543/0: 321|013|377 = S#321; =S#013; =S#377; 543/3: 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 {ABCDEFGHIJKLMNOPQRSTUVWXYZ *4x*d}; 550/4: 201 321 151 printtwo: JS.printsix; /print two words via printsix printsix: /outputs six symbols packed in N1 551/1: 042|033|223 141 167|041|166 021 DUP; NOT; J=Z.erex; ZERO; SHLD8; 552/3: 200 320 113|304 000 377|011|201 261 151 JS.oubs; SET#377; OR; J.printsix; checkz: /used for leading zero suppression 554/1: 042|224 141 155|151 013|200 360 000 !begin DUP; J=Z.zero; MFRQ0/11; EXITH; 555/4: 052|171 262|200 360 000 zero: ERASE; FM11; EXITH; !end 556/4: 171 024|300 001 124|056|172 144|200 360 000 countl: FI1; F.inlib; +; S+I6; EXITH; 560/3: 300 011 134|300 011 135 chfile: F.block+636; F.block+637; 561/3: 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/1: 171 062|300 001 236|032|171 022|056|016 FM3; F.inbfr; MAX; FM1; +; ROUND; 565/5: 171 162|036|300 000 336|032|301 000 336 space1: FM7; -; F.dlost; MAX; S.dlost; 567/3: 052|200 360 000 erex: ERASE; EXITH; printid: /print packed identifier 570/1: 304 000 236|170 262|304 000 010|170 270|167 015 !begin SET#236; SM11; SET8; SC11; SHC6; 572/1: 167 351|041|166 015|143 260 loop: SHC-12; ZERO; SHLD6; DC11; 573/2: 201 321 154|200 320 113|261 261 172 JS.checkz; JS.oubs; JCNZ11.loop; 574/5: 052|200 360 000 !end ERASE; EXITH; printadd: /print program address from Q3 575/3: 304 000 236|042|170 262|200 320 113 !begin SET#236; DUP; SM11; JS.oubs; 577/0: 171 062|164 103|304 000 004|170 270 FM3; SHL33; SET4; SC11; 600/3: 041|166 007|201 321 154 word: ZERO; SHLD3; JS.checkz; 601/3: 200 320 113|143 260|263 261 200 JS.oubs; DC11; JCNZ11.word; 602/5: 164 367|300 001 135|011|171 070|164 053|036|201 261 151 SHL-5; F.tail; OR; FC3; SHL21; -; J.printsix; [ ----- page 05 !end printline: /outputs current line number 605/1: 171 144|304 000 236|200 320 113 FI6; SET#236; JS.oubs; 606/3: 300 001 232|300 001 231|066|067|166 365 F.ssss; F.decimal; CAB; FRB; SHLD-6; 610/1: 065|164 375|065|042|205 141 207|052 REV; SHL-2; REV; DUP; JNEZ.prog-1s1; ERASE; [ original had JNEZ.prog-0s7; -- should we allow this 611/4: 304 027 013|166 341|052|201 261 151 SET#13413; SHLD-16; ERASE; J.printsix; bstopr: /6-bit B.S. to printer code 613/1: 304 000 014|036|042|223 041 216|304 000 032|044|304 000 041 !begin SET12; -; DUP; JLTZ.num; SET26; DIVI; SET#41; 615/4: 056|016|200 360 000 ex: +; ROUND; EXITH; 616/3: 304 000 034|065|043|161 375|204 141 215 num: SET#34; REV; DUPD; SHA-2; JNEZ.ex; 620/1: 042|164 375|066|164 005|056|204 261 215 DUP; SHL-2; CAB; SHL2; +; J.ex; !end 621/5: 033|042|223 141 167|041|033|166 015|033 print8: NOT; DUP; JEQZ.erex; ZERO; NOT; SHLD6; NOT; 623/3: 200 321 225|200 320 113|200 261 222 JS.lptobs; JS.oubs; J.print8+0s1; 625/0: 304 000 006|044|164 007|170 270|170 262 lptobs: SET6; DIVI; SHL3; SC11; SM11; 626/4: 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, libFOC, openoutt; !label timelt, printsix, printadd, decimal, printtwo, windup, inlib; 630/2: 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 333|300 001 237|065|301 001 332 !begin F.failmark; JEQZ.ok; F.fls; F.failno; REV; S. okw; 645/4: 300 001 331|201 321 151|304 374 054|164 015|300 001 231|304 000 003|200 220 000 ok: F.k4; JS.printsix; SET#176054; SHL6; F.decimal; SET3; OUT; 651/0: 300 000 337|036|304 000 012|164 057|035|067|166 365|065|167 355|065|200 321 326 F.time; -; SET10; SHL23; �; FRB; SHLD-6; REV; SHC-10; REV; JS.prno; 654/2: 300 001 335|201 321 151|300 001 336|205 321 221|300 001 337|205 321 221 F.sex; JS.printsix; F.snw; JS.print8; F.snw+1; JS.print8; 657/2: 201 321 164|041|033|300 001 231|110 000|174 000|173 000 JS.space; ZERO; NOT; F.decimal; FMMN0/0; SLINK; FLINK; 661/4: 300 000 336|056|164 367|033|027|033|027|164 013 F.dlost; +; SHL-5; NOT; NEG; NOT; NEG; SHL5; 663/4: 067|200 321 326|300 001 340|205 321 221 FRB; JS.prno; F.snw+2; JS.print8; 665/2: 300 000 105|027|033|224 141 271|300 000 110|202 141 314 F.length; NEG; NOT; JEQZ.end; F.jq; JNEZ.typeend; 667/4: 304 000 001|301 000 105|205 320 317|204 261 245 SET1; S.length; JS.openoutt; J.ok; 671/4: 203 320 303|304 000 021|200 220 000 end: JS.finoutt; SET17; OUT; 673/1: 300 000 337|036|204 321 323|301 000 337|300 000 340|204 321 323|301 000 340 F.time; -; JS.frb; S.time; F.time+1; JS.frb; S.time+1; 676/2: 110 000|164 061|204 321 323|301 000 336|300 020 003|164 111|164 255 FMMN0/0; SHL24; JS.frb; S.dlost; FM1.3; SHL36; SHL-42; 701/1: 304 000 060|223 021 303|304 000 063|223 021 303|052|041 SET#60; JEQ.pors; SET#63; JEQ.pors; ERASE; ZERO; 703/3: 167 365|300 000 335|011|300 001 134|205 141 305|164 321 pors: SHC-6; F.magic; OR; F.ptfile; JNEZ.prog+0s5; SHL-24; 705/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; 711/1: 140 260|171 276|304 000 062|200 220 000 M+I11; FQ11; SET50; OUT; 712/5: 300 000 023|201 144 105|200 360 000 F.failmark; JNEZ.stop; EXITH; 714/2: 300 000 105|167 377|224 041 316|304 000 276|200 320 113 typeend: F.length; SHC-1; JLTZ.prog+1s3; SET#276; JS.oubs; 716/4: 300 000 104|033|300 000 023|011|221 141 272 F.test; NOT; F.failmark; OR; JEQZ.end+0s3; /suppress O.K. flex message after on disc or punched 720/3: 300 001 332|300 000 333|300 000 332|033|164 061|033|204 326 307|201 261 272 F.okw; F.texid+1; F.texid; NOT; SHL24; NOT; JS.type; J.end+0s3; 723/4: 161 321|300 001 231|065|067|300 001 341|011|200 360 000 frb: SHA-24; F.decimal; REV; FRB; F.zer; OR; EXITH; 726/0: 166 365|065|164 375|065|042|200 141 326|052|201 261 151 prno: SHLD-6; REV; SHL-2; REV; DUP; JNEZ.prog-1s1; ERASE; J.printsix; [ original had JNEZ.prog-0s7; 730/2: 017|017|017|017|240 026 014 027 004 377 *k4:= {*c KAL4 }; [ ----- page 06 732/0: 002 367 353 174 017 377 okw:= P *s O.K. *s; 733/0: 002 150 151 260 017 320 fls:= P *s FAIL *s*d 0; 734/0: 236 035 014 031 236 377 ran:= # 4741641406317377; 735/0: 236 070 052 050 070 013 sex:= {*s secs.}; 736/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; 741/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; 742/0: 304 000 002|203 260 036 fl2: SET2; J.nfail; /dictionary meets program 743/0: 144 340|173 000|203 260 036 rs1: IONE14; FLINK; J.nfail; /even restart - terminate 744/1: 144 340|304 000 005|203 260 036 rs2: IONE14; SET5; J.nfail; /odd restart 745/3: 304 000 006|203 260 036 fl6: SET6; J.nfail; /dictionary lost during binary output 746/3: 304 000 007|203 260 036 fl7: SET7; J.nfail; /error in OUT29 747/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) [original had bracketted comment !label goto; / 750/3: 170 264 goto: SI11; /flag for 2 halves of ident / / read 6 chard making half the ident / 750/5: 304 000 006|170 270|041 gethalf: SET6; SC11; ZERO; /6 chars in each half / / char fetch loop / 751/5: 164 015|205 324 300|201 321 213 getchs: SHL6; JS.einbs; JS.bstopr; /get char convert to printer code 753/1: 011|143 260|265 261 351 OR; DC11; JCNZ11.getchs; /form chars into word 754/1: 171 264|041|170 264|205 141 350 FI11; ZERO; SI11; JNEZ.gethalf; /do other half of ident 755/3: 164 031|065|166 351 SHL12; REV; SHLD-12; /shift into place 756/2: 300 002 006|011|041 F.nctc; OR; ZERO; /ident completed. N1 = text index adrs / / loop for searching text index which is read into input text bfr / 757/1: 200 321 011|304 006 340|170 303 srchindex: JS.discread; SET.block; SRM12; /M12 points to 1st word of index blk 760/3: 304 000 324|102 300|164 301|036 SET212; FMMQ12/0; SHL-32; -;/get no. of entries in blk 761/5: 170 310|304 000 003|170 304|242 301 365 SC12; SET3; SI12; JCZ12.anymo; /Q12 set for scan. jmp if blk empty 763/3: 017|017|017|102 300|224 021 371 * FMMQ12/0; JEQ.maybe; /loop to match top half of ident / / return to search loop if 2nd half of ident doesnt match / 764/5: 017|177 300 *contsrch: JCNZS12; /scan all entries in blk / / here when blk finished to see if more blcks / 765/2: 300 011 137|042|201 141 357 anymo: F.block+639; DUP; JNEZ.srchindex; /get next on chain 766/3: 033|164 075|011 NOT; SHL30; OR; /mask top 3 chars of ident 767/1: 205 321 221|205 321 221 JS.print8; JS.print8; /priny ident [type for print (?) 770/1: 300 002 005|205 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 / 771/4: 141 300|065|042 maybe: M-I12; REV; DUP; /N1 = 2nd half 772/2: 110 300|015 FMMN12/0; NEV; /compare 772/5: 041|033|164 031|167 045|054 ZERO; NOT; SHL12; SHC18; AND; /mask amendment no 774/0: 223 141 375 JEQZ.fnd; /jmp if it matches 774/3: 065|140 300|200 261 365 REV; M+I12; J.contsrch; /keep looking / / here when located / 775/3: 052|052|300 300 002|200 321 011 fnd: ERASE; ERASE; FM12.2; JS.discread; /read alpha block 776/5: 300 006 340|301 000 332 F.block; S.texid; /keep.... 777/5: 300 006 341|301 000 333 F.block+1; S.texid+1; /....identifier 1000/5: 300 007 060|301 006 340 F.block+80; S.block; /NOC 1001/5: 300 007 061|042 F.block+81; DUP; /word count 1002/3: 027|170 303 NEG; SRM12; /Q12 set up 1003/0: 304 007 061|056|170 336 SET.block+81; +; SQ13; /Q13 set up 1004/0: 200 262 014 J.nxitem; /continue assembling 1004/3: 017|017|017|002 353 364 002 153 244 *notfnd := P *snot*sfnd; /for fail message 1006/0: 034 055 002 000 000 000 nctc := P *n *c T *c *4s; /to complete identifier / !end [ (of goto) [ [ inserted / 1007/0: 052|041|033 bracket: ERASE; ZERO; NOT; 1007/3: 202 323 033|304 000 204|204 022 011|065|027|033|065 JS.pbs; SET#204; JNE.prog+1s1; REV; NEG; NOT; REV; 1011/4: 304 000 244|015|201 142 013|033|027 SET#244; NEV; JNEZ.prog+0s5; NOT; NEG; 1013/1: 042|203 142 007|052 DUP; JNEZ.bracket+0s3; ERASE; 1014/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; -; 1017/1: 200 041 342|052|001|203 241 347 JGEZ.fl2; ERASE; VR; JNEN.fl9; /check dict. meets prog, nest /check for comment asterisk etc. 1020/3: 205 324 300 JS.einbs; 1021/0: 042|164 365|220 142 040 return: DUP; SHL-6; J=Z.load; /letter 1022/0: 304 000 242|223 022 244 SET#242; J=.equals; /constant 1023/0: 304 000 216|225 022 056 SET#216; J=.ast; 1024/0: 304 000 240|222 022 046 SET#240; J=.crlf; 1025/0: 304 000 214|220 024 016 SET#214; J=.beginblock; /!begin 1026/0: 304 000 234|221 024 021 SET#234; J=.endblock; /!end 1027/0: 304 000 241|220 022 045 SET#241; J=.slash; / / comments 1030/0: 304 000 211|220 022 045 SET#211; J=.slash; / [ comments -- temporary bootstrap mod 1031/0: 304 000 171|223 024 266 SET#171; J=.labelspec; / !label list 1032/0: 304 000 200|221 022 050 SET#200; J=.comment; / !comment comments 1033/0: 304 000 340|223 024 157 SET#340; J=.segment; / !segment 1034/0: 304 000 204|220 022 007 SET#204; J=.bracket; 1035/0: 304 000 210|223 021 350 SET#210; J=.goto; /find alternative input file 1036/0: 304 000 320|225 021 021 SET#320; J=.libcall; / !library 1037/0: 304 000 230|225 022 013 SET#230; J=.nxitem-0s1; /extra semicolon / 1040/0: 113 041 load: SMMQN2/1; /read rest of item to semicolon or colon 1040/2: 205 324 300|042|113 041 nxebs: JS.einbs; DUP; SMMQN2/1; 1041/2: 304 000 230|220 022 101|304 000 240|220 020 041 SET#230; J=.instr; SET#240; JEQ.fail; 1043/2: 304 000 271|015|202 142 040|204 263 235 SET185; NEV; J#Z.nxebs; J.ident; 1045/0: 171 310|172 302|154 014|154 015 slash: FC12; S+M12; CFRQ0/12; CFRQ0/13; 1046/2: 171 024|300 001 124|056|172 144|205 262 013 crlf: FI1; F.inlib; +; S+I6; J.nxitem-0s1; 1050/1: 300 000 106|220 142 045|304 000 240|042|200 320 113|065 comment: F.tables; JEQZ.slash; SET#240; DUP; JS.oubs; REV; 1052/3: 164 021|300 004 014|011|201 321 151 SHL8; F.ssssd; OR; JS.printsix; 1054/0: 204 320 360|042|200 320 113|200 022 054 ccopy: JS.inbs; DUP; JS.oubs; JNE.ccopy; [ ----- page 08 1055/4: 041|301 001 233|202 262 046 ZERO; S.refcount; J.crlf; 1056/5: 205 322 236|205 324 300|065|200 022 021 ast: JS.round; JS.einbs; REV; J#.return; 1060/3: 171 062|027|033|164 367 FM3; NEG; NOT; SHL-5; 1061/3: 033|027|164 013|170 062|205 262 013 NOT; NEG; SHL5; SM3; J.nxitem-0s1; /conversion table for signs in instructions *spec: 1063/0: 040 000 000 377 372 301 =# 10000000 77775 301; / =HX+; =T-6; =S{+}; 1064/0: 044 000 000 377 372 321 =# 11000000 77775 321; 1065/0: 142 005 337 377 350 261 =# 30402737 77764 261; 1066/0: 075 110 100 377 356 221 =# 17244100 77767 221; 1067/0: 101 300 000 377 364 242 =# 20340000 77772 242; 1070/0: 145 000 000 377 364 322 =# 31200000 77772 322; 1071/0: 135 360 000 377 364 202 =# 27370000 77772 202; 1072/0: 135 000 000 377 364 222 =# 27200000 77772 222; 1073/0: 111 360 000 377 364 302 =# 22370000 77772 302; 1074/0: 111 000 000 377 364 262 =# 22200000 77772 262; 1075/0: 000 012 000 001 002 062 speclist:= Q prog-spec / 1 / spec-1; 1076/0: 017|017|017|017|017|017 du: DUMMY; DUMMY; DUMMY; DUMMY; DUMMY; DUMMY; [ replaces the next line [ du:={*6#17}; /dummy syllables for rounding 1077/0: 000 000 000 000 000 000 qn:=0; 1100/0: 000 000 000 000 000 000 qnn:=0; 1101/0: 171 050|033|027|172 042 instr: FC2; NOT; NEG; S+M2; 1102/0: 164 371|170 050|153 004|041|033 SHL-4; SC2; IMFRQ0/4; ZERO; NOT; /C2 = 9 !begin /basic parsing scan 1103/2: 102 041|304 000 230|221 022 121 nibs: FMMQ2/1; SET#230; J=.eparse; 1104/4: 240 040 041 JCZ2.fail; /instruction pattern too long 1105/1: 042|304 000 014|037|202 042 103 DUP; SET12; SIGN; JGEZ.nibs; 1106/3: 145 100|304 000 013|221 022 121 IMONE4; SET11; J=.eparse; /type CA 1107/5: 043|052|026|167 363|204 042 111 digit: DUPD; ERASE; ABS; SHC-7; JGEZ.dig; /not sign / ABS caters for case of no code before digit 1111/1: 052|141 040 ERASE; M-I2; /number signed or invalid - go back to sign 1111/4: 201 324 314|301 002 077 dig: JS.assemno; S.qn; 1112/4: 144 100|304 000 230|221 022 121 IONE4; SET#230; JEQ.eparse; 1114/0: 147 100|304 000 013|221 022 121|304 000 241|200 020 041 IMTWO4; SET#13; JEQ.eparse; SET#241; JNE.fail; 1116/2: 052|102 041|201 324 314 cnn: ERASE; FMMQ2/1; JS.assemno; /second Q-store number 1117/2: 301 002 100|146 100 S.qnn; ITWO4; /type two 1120/1: 304 000 230|200 020 041 SET152; JNE.fail; /second number not terminated by semicolon eparse: /pack instruction pattern for location 1121/1: 041|065 ZERO; REV; 1121/3: 052|065|042|033|223 142 132 l: ERASE; REV; DUP; NOT; JEQZ.endpa; 1122/4: 166 365|042|223 142 121 SHLD-6; DUP; JEQZ.l; /letter 1123/4: 166 015|167 361|300 002 075|170 276 SHLD6; SHC-8; F.speclist; SQ11; /symbol 1125/1: 017|017|017|017|017|112 260|164 121|220 022 130|177 260|200 260 041 *FMMQN11/0; SHL40; JEQ.prog+1s2; JCNZS11; J.fail; 1130/0: 052|100 260|164 361|170 270|164 260 ERASE; FMM11/0; SHL-8; SC11; SHLC11; 1131/3: 104 013|011|204 262 121 FMMH0/11; OR; J.l+0s1; 1132/3: 052 endpa: ERASE; / N1 = instruction pattern !end 1132/4: 140 100|300 106 055 !begin M+I4; FM4.tc; /fetch appropriate dope word /instruction pattern locator 1133/3: 170 276|151 264|171 270|170 262|151 012 SQ11; MFRQ11/4; FC11; SM11; MFRQ0/10; 1135/1: 151 251 high: MFRQ10/9; 1135/3: 171 262|171 222|043|056|164 377|170 242 loop: FM11; FM9; DUPD; +; SHL-1; SM10; /binary search 1137/1: 033|056|065 NOT; +; REV; 1137/4: 042|100 244|037|042|220 142 143 DUP; FMM10/4; SIGN; DUP; JEQZ.found; 1141/0: 066|220 140 041 CAB; JEQZ.fail; 1141/4: 221 102 135|151 253|203 262 135 JGTZ.high; MFRQ10/11; J.loop; 1143/0: 170 262|052|052|140 260 found: SM11; ERASE; ERASE; M+I11; 1144/0: 104 253 FMMH10/11; /N1 = blank instruction 1144/2: 171 104|223 142 162 FI4; J=Z.store; 1145/1: 171 104|042|225 042 166 FI4; DUP; J 15 1160/0: 167 341|011 SHC-16; OR; 1160/3: 300 002 077|042|164 371|200 140 041 cn: F.qn; DUP; SHL-4; J#Z.fail; 1162/0: 167 351|011 SHC-12; OR; 1162/3: 042|164 245|304 000 002|032|052|033|027|170 110 store: DUP; SHL-46; SET2; MAX; ERASE; NOT; NEG; SC4; 1164/3: 041|166 021|143 100|200 322 233|263 102 164|205 262 013 ZERO; SHLD8; DC4; JS.storesyll; JCNZ4.prog-1s2; J.nxitem-0s1; 1166/5: 065|154 004|155 066 addr: REV; CFRQ0/4; CMFRQ3/6; /allow funnies and set update pointer for calcadd 1167/4: 042|164 003|220 042 177 DUP; SHL+1; JLTZ.mors; /use instruction to determine address type 1170/4: 042|164 021|164 261|304 000 360|032 DUP; SHL8; SHL-40; SET#360; MAX; 1172/1: 037|033|027|042|033|036 SIGN; NOT; NEG; DUP; NOT; -; 1173/1: 170 102|200 323 330 endaddr: SM4; JS.calcadd; /M4 = address type 1174/0: 304 000 230|015|200 140 041 SET#230; NEV; J#Z.fail; /check terminator semicolon 1175/1: 201 322 201|065|033|223 142 162 JS.addup; REV; NOT; J=Z.store; /unmodified 1176/3: 203 262 160 J.cn; /modified 1177/0: 042|164 261|304 000 304|037|026|164 003|201 262 173 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. 1201/1: 042|300 102 227|065|200 142 203|164 321|011 !begin DUP; FM4.sw; REV; JNEZ.prog+1; SHL-24; OR; 1203/0: 174 000|202 360 000 SLINK; EXIT; 1203/5: 066|167 013|041|166 007 jumpadd: CAB; SHC5; ZERO; SHLD3; 1204/5: 066|056|304 000 006|044|066|056 CAB; +; SET6; DIVI; CAB; +; 1206/1: 167 361|012|056 SHC-8; PERM; +; 1206/5: 065|167 011|047 jumpword: REV; SHC4; STR; 1207/3: 065|167 021|065|166 031|066|056 REV; SHC8; REV; SHLD12; CAB; +; 1210/5: 166 351|065|167 363|065 SHLD-12; REV; SHC-7; REV; 1211/5: 166 377|052|167 371|200 360 000 SHLD-1; ERASE; SHC-4; EXITH; 1213/1: 065|167 005|041|166 007 msadd: REV; SHC2; ZERO; SHLD3; 1214/1: 065|167 017|065|166 031|066|056 REV; SHC7; REV; SHLD12; CAB; +; 1215/3: 166 351|065|167 363|065 SHLD-12; REV; SHC-7; REV; 1216/3: 166 373|052|167 375|200 360 000 SHLD-3; ERASE; SHC-2; EXITH; 1217/5: 164 101|065|167 021|001|161 005|220 200 041 setadd: SHL32; REV; SHC+8; VR; SHA2; JV.fail; 1221/4: 161 375|056|167 361|200 360 000 SHA-2; +; SHC-8; EXITH; 1223/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; 1225/1: 065|166 373|052|056|167 361|200 360 000 REV; SHLD-3; ERASE; +; SHC-8; EXITH; 1226/5: 017|000 242 217|000 002 223 *sw:= HA setadd; =HA syll; 1230/0: 000 242 206|000 242 203 =HA jumpword; =HA jumpadd; 1231/0: 000 042 213|000 000 041 =HA msadd; =HA fail; 1232/0: 000 242 206|000 000 041 =HA jumpword; =HA fail; !end storesyll: /stores syllable in D40-D47 of N1: D0-D39 zero 1233/0: 304 377 370|172 070|304 000 377|166 060|033 SET-8; S+C3; SET#377; SHLDC3; NOT; 1234/5: 100 061|054 FMM3/1; AND; /preserve other syllable 1235/2: 011|101 061|245 062 242|200 360 000 OR; SMM3/1; JCZ3.endro-0s2; EXITH; 1236/5: 304 377 320|172 070|241 062 243|142 060|100 061|300 002 076 round: SET-48; S+C3; JCZ3.endro; NC3; FMM3/1; F.du; 1241/2: 166 060|142 060|167 060|101 061|052 SHLDC3; NC3; SHCC3; SMM3/1; ERASE; 1242/5: 140 060 M+I3; 1243/1: 304 000 060|170 070|200 360 000 endro: SET48; SC3; EXITH; /process constant 1244/3: 052|205 324 300 equals: ERASE; JS.einbs; 1245/1: 304 000 023|220 023 010 !begin SET#23; J=.hconst; 1246/1: 304 000 017|220 023 011 SET#17; J=.dconst; 1247/1: 304 000 036|223 023 130 SET#36; J=.sconst; 1250/1: 304 000 037|224 023 153 SET#37; J=.tconst; 1251/1: 304 000 060|170 125 SET48; SRI5; /alignment 1252/0: 304 000 034|225 023 167 SET#34; J=.qconst; 1253/0: 171 070|171 124|044 common: FC3; FI5; �I; [ ----- page 10 1253/5: 200 140 041|052 JNEZ.fail; ERASE; /check alignment 1254/3: 304 000 033|220 023 013|304 000 215|223 023 076 SET#33; JEQ.pconst; SET#215; JEQ.string; Warning: SET instruction to non-whole word address 1256/3: 304 042 265|174 000 SET.endinput; SLINK; 1257/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; 1262/1: 304 000 240|220 020 041|224 022 264|205 324 300|204 262 260 SET#240; JEQ.fail; JEQ.prog+1s3; JS.einbs; J.input+1s2; 1264/4: 052|170 042 ERASE; SM2; 1265/1: 200 360 000|102 041 endinput: EXITH; FMMQ2/1; /usual exit is to this FMMQ 1266/0: 304 000 322|222 023 213|304 000 014|223 023 227 SET#322; JEQ.octal; SET#14; JEQ.aconst; 1270/0: 304 000 261|224 023 201|304 000 043|224 023 201 SET#261; JEQ.xconst; SET#43; JEQ.xconst; 1272/0: 304 000 021|204 022 273 SET#21; JNE.prog+1s1; /number - check F 1273/0: 170 122|102 041 SM5; FMMQ2/1; /set floating tag !begin /assemble numeric constant 1273/4: 157 012|153 013|157 010|304 000 136|170 270 number: QFRQ0/10; IMFRQ0/11; QFRQ0/8; SET94; SC11; 1275/3: 041|041|066|171 124|027|033|042|170 225|222 102 300 ZERO; ZERO; CAB; FI5; NEG; NOT; DUP; SRI9; JGTZ.chpm; 1277/4: 171 270|170 224 FC11; SI9; 1300/2: 304 000 301|221 022 360|304 000 321|225 022 357 chpm: SET#301; JEQ.sign+0s2; SET#321; JEQ.sign; 1302/2: 042|304 000 012|037|201 042 304|202 322 373 chdig: DUP; SET10; SIGN; JGEZ.chdot; JS.digits; 1304/1: 304 000 013|221 022 361 chdot: SET11; JEQ.dec; 1305/1: 304 000 012|222 022 364|304 000 020|222 022 364 chten: SET10; JEQ.exp; SET#20; JEQ.exp; 1307/1: 304 000 241|224 022 370|140 220 chsl: SET#241; JEQ.slash; M+I9; 1310/3: 304 000 230|015|200 140 041 chsc: SET#230; NEV; JNEZ.fail; 1311/4: 304 000 136|171 270|036|170 250|240 240 041 SET94; FC11; -; SC10; JCZ10.fail; /number in C10 I. P. in N1/N2 1313/3: 171 242|171 262|036|304 000 014|044|170 130 FM10; FM11; -; SET12; DIVI; SC5; 1315/2: 042|026|170 270|220 042 345|241 262 322 DUP; ABS; SC11; JLTZ.divide; JCZ11.endexp; 1317/0: 300 003 007|042|012|034|051|163 243 mult: F.const; DUP; PERM; �D; REVD; �+-47; 1320/3: 304 000 050|172 250|143 260|260 262 317 SET40; S+C10; DC11; JCNZ11.mult; 1322/1: 241 122 324|171 024 endexp: JCZ5.endno; FI1; 1323/0: 304 000 012|034|051|163 243 * SET10; �D; REVD; �+-47; 1324/1: 042|220 142 327|042|164 003|220 042 327 endno: DUP; JEQZ.prog+2s4; DUP; SHL1; JLTZ.prog+1s4; 1325/5: 143 240|162 003|205 262 324 DC10; SHAD1; J.endno+0s4; 1327/0: 171 244|220 142 330|010 FI10; JEQZ.pos; NEGD; 1330/0: 171 122|203 142 340|171 222|027|172 250 pos: FM5; JNEZ.float; FM9; NEG; S+C10; 1331/4: 171 250|027|033|042|220 100 041 FC10; NEG; NOT; DUP; JGTZ.fail; 1333/0: 171 224|033|036|220 040 041|162 240 FI9; NOT; -; JLTZ.fail; SHADC10; /check shift O.K. 1334/3: 171 124|042|225 042 351|304 000 030|015|221 142 353|016 FI5; DUP; JLTZ.storetwo; SET24; NEV; JEQZ.hfix; ROUND; 1336/5: 220 200 041|101 061|140 060|200 262 014 store: JV.fail; SMM3/1; M+I3; J.nxitem; 1340/3: 171 250|042|161 121|220 200 041|052 float: FC10; DUP; SHA40; JV.fail; ERASE; 1342/0: 025|171 124|042|225 042 351 FLOATD; FI5; DUP; JLTZ.storetwo; 1343/1: 304 000 030|015|225 142 353|020|205 262 336 SET24; NEV; JEQZ.hfloat; ROUNDF; J.store; 1345/0: 162 377|300 003 007|042|051|066|064|012|065|060|041 divide: SHAD-1; F.const; DUP; REVD; CAB; DIVR; PERM; REV; DIV; ZERO; 1347/1: 012|047|057|304 377 331|172 250|143 260|260 262 345|201 262 322 PERM; STR; +D; SET-39; S+C10; DC11; JCNZ11.divide; J.endexp; 1351/5: 052|101 061|140 060|205 262 336 storetwo: ERASE; SMM3/1; M+I3; J.store; 1353/1: 014|200 262 354 hfix: ROUNDH; J.storeh; 1353/5: 021 hfloat: ROUNDHF; 1354/0: 220 200 041|041|166 021|200 322 233|041 storeh: JV.fail; ZERO; SHLD8; JS.storesyll; ZERO; 1355/4: 166 021|200 322 233|164 261|200 322 233|205 262 013 SHLD8; JS.storesyll; SHL-40; JS.storesyll; J.nxitem-0s1; 1357/5: 144 240|052|102 041|202 262 302 sign: IONE10; ERASE; FMMQ2/1; J.chdig; 1361/1: 052|144 260|102 041|042|304 000 012|037|200 040 041|202 322 373|201 262 305 dec: ERASE; IONE11; FMMQ2/1; DUP; SET10; SIGN; JGEZ.fail; JS.digits; J.chten; 1364/2: 052|171 270|304 000 136|015|200 142 367|041|033|162 377|172 030 exp: ERASE; FC11; SET94; NEV; JNEZ.expa; ZERO; NOT; SHAD-1; S+C1; 1367/0: 102 041|201 324 314|170 242|201 262 307 expa: FMMQ2/1; JS.assemno; SM10; J.chsl; 1370/4: 052|171 122|200 140 041|102 041|201 324 314|170 222|203 262 310 slash: ERASE; FM5; JNEZ.fail; FMMQ2/1; JS.assemno; SM9; J.chsc; 1373/2: 263 202 374|143 260|143 200 digits: JCNZ8.dig; DC11; DC8; 1374/3: 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; 1376/5: 162 375|057|057|042|203 143 001|304 000 004|172 270|200 263 004 SHAD-2; +D; +D; DUP; JNEZ.shift; SET4; S+C11; J.nxdig; 1401/3: 042|164 003|220 043 004|171 024|172 270|162 003|203 263 001 shift: DUP; SHL1; JLTZ.nxdig; FI1; S+C11; SHAD1; J.shift; 1404/0: 102 041|042|304 000 012|037|223 042 374|200 360 000 nxdig: FMMQ2/1; DUP; SET10; SIGN; JLTZ.dig; EXITH; 1406/1: 017|017|017|017|017|164 152 122 210 000 000 *const:= 128 000 000 000 000; / 10**12 / 40 !label store, storeh; !end [ ----- page 11 1410/0: 304 000 030|203 263 011 hconst: SET24; J.prog+1; 1411/0: 304 377 320|170 125|052|205 324 300|200 262 253 dconst: SET-48; SRI5; ERASE; JS.einbs; J.common; 1413/0: 052 pconst: ERASE; !begin 1413/1: 202 323 033|042|164 365|204 143 025 nxchar: JS.pbs; DUP; SHL-6; JNEZ.long; 1414/4: 201 321 213|201 323 016|201 263 013 JS.bstopr; JS.storechar; J.nxchar; 1416/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; 1420/3: 033|100 061|054|011|101 061|245 062 242|200 360 000 NOT; FMM3/1; AND; OR; SMM3/1; JCZ3.endro-0s2; EXITH; 1422/4: 041|033|164 060|033|100 061|011|101 061 query: ZERO; NOT; SHLC3; NOT; FMM3/1; OR; SMM3/1; 1424/2: 304 000 006|170 070|201 263 015 SET6; SC3; J.storechar-1; 1425/4: 304 000 216|221 023 037|304 000 230|202 023 035 long: SET#216; JEQ.ast; SET#230; JNE.find; 1427/4: 052|171 070|171 124|044|225 142 013 fin: ERASE; FC3; FI5; DIVI; JEQZ.nxitem-0s1; 1431/1: 304 000 077|201 323 016|204 263 027 SET#77; JS.storechar; J.fin; 1432/4: 052|204 321 156 ERASE; JS.countl; 1433/2: 205 324 300|304 000 240|224 023 032|200 360 000 pbs: JS.einbs; SET#240; JEQ.pbs-0s4; EXITH; !label pbs, lookup, storechar; 1435/2: 304 000 017|202 323 055 find: SET15; JS.lookup; 1436/2: 164 335|201 263 015 SHL-18; J.storechar-1; 1437/1: 052|202 323 033|304 000 034|224 023 022 ast: ERASE; JS.pbs; SET#34; JEQ.query; 1440/5: 042|304 000 012|037|225 043 052|171 024 DUP; SET10; SIGN; JLTZ.count; FI1; 1442/3: 170 130|304 000 322|220 023 046 esym: SC5; SET#322; JEQ.octal; 1443/5: 202 323 033|065|041|202 323 055|164 277|204 263 047 JS.pbs; REV; ZERO; JS.lookup; SHL-33; J.store; 1446/0: 204 323 137|065|042|164 365|200 140 041 octal: JS.num; REV; DUP; SHL-6; JNEZ.fail; 1447/4: 042|201 323 016|143 120|264 123 047|052 store: DUP; JS.storechar; DC5; JCNZ5.store; ERASE; 1451/2: 201 324 302|205 323 033|204 263 013 JS.einbs+1s2; JS.pbs+0s3; J.nxchar+0s3; 1452/5: 204 323 137|065|042|027|033|164 341|200 140 041|203 263 042 count: JS.num; REV; DUP; NEG; NOT; SHL-16; JNEZ.fail; J.esym; !end 1455/2: 170 250|304 000 013|170 271 lookup: SC10; SET11; SRC11; 1456/3: 017|017|017|302 263 063|164 240|164 263|223 023 061|177 260 *!begin FMQ11.symtab; SHLC10; SHL-39; JEQ.found; JCNZS11; 1461/0: 200 260 041 J.fail; 1461/3: 052|300 263 062|200 360 000 found: ERASE; FM11.symtab-1; EXITH; /tables of specials in P and { constants 1462/4: 017|017 *symtab: /P formal/char/P spec/char/BS formal/BS 1463/0: 017 000 301 164 074 236 =# 36 00 301 35 036 236; 1464/0: 007 004 321 170 034 240 =# 16 02 321 36 016 240; 1465/0: 017 210 241 074 076 256 =# 37 04 241 17 037 256; 1466/0: 014 216 246 070 070 215 =# 31 07 246 16 034 215; 1467/0: 006 030 271 040 100 235 =# 14 14 271 10 040 235; 1470/0: 007 376 214 050 030 216 =# 17 77 214 12 014 216; 1471/0: 010 172 224 054 036 377 =# 20 75 224 13 017 377; 1472/0: 015 206 242 044 040 276 =# 33 03 242 11 020 276; 1473/0: 021 214 261 064 112 316 =# 43 06 261 15 045 316; 1474/0: 020 064 220 150 056 220 =# 40 32 220 32 027 220; 1475/0: 013 264 000 000 106 376 =# 27 32 000 00 043 376; !end 1476/0: 204 321 156 JS.countl; 1476/3: 052 string: ERASE; 1476/4: 204 320 360|304 000 377|223 023 076|304 000 240|220 023 076 nxsbs: JS.inbs; SET#377; JEQ.string; SET#240; JEQ.string-0s3; 1501/1: 304 000 236|223 023 076|304 000 256|223 023 076 !begin SET#236; JEQ.string; SET#256; JEQ.string; 1503/1: 304 000 216|225 023 112|304 000 235|221 023 106 SET#216; JEQ.ast; SET#235; JEQ.end; 1505/1: 200 322 233|204 263 076 JS.storesyll; J.nxsbs; 1506/1: 205 324 300|304 000 230|015|200 140 041 end: JS.einbs; SET#230; NEV; JNEZ.fail; 1507/5: 052|171 070|171 124|044|225 142 013 fin: ERASE; FC3; FI5; DIVI; JEQZ.nxitem-0s1; 1511/2: 304 000 377|200 322 233|205 263 107 SET#377; JS.storesyll; J.fin; 1512/5: 052|202 323 033|042|304 000 012|037|220 043 126|171 024|170 130 ast: ERASE; JS.pbs; DUP; SET10; SIGN; JLTZ.count; FI1; SC5; 1515/3: 304 000 322|221 023 121|304 000 036|202 323 055 esym: SET#322; JEQ.octal; SET30; JS.lookup; 1517/3: 304 000 377|054|205 323 123|204 263 076 SET#377; AND; JS.store; J.nxsbs; 1521/1: 204 323 137|065|042|164 361|200 140 041 octal: JS.num; REV; DUP; SHL-8; JNEZ.fail; 1522/5: 205 323 123|201 263 077 JS.store; J.nxsbs+0s3; 1523/5: 042|200 322 233|143 120|265 123 123 store: DUP; JS.storesyll; DC5; JCNZ5.store; 1525/2: 052|200 360 000 ERASE; EXITH; 1526/0: 204 323 137|065|042|027|033|164 341|200 140 041|201 263 115 count: JS.num; REV; DUP; NEG; NOT; SHL-16; JNEZ.fail; J.esym-0s2; [ ----- page 12 !end 1530/3: 052|304 000 010|170 125|205 324 300|304 000 215|223 023 076|202 322 257 sconst: ERASE; SET8; SRI5; JS.einbs; SET#215; JEQ.string; JS.input; 1533/3: 102 041|201 324 314|065|304 000 230|015|200 140 041 FMMQ2/1; JS.assemno; REV; SET#230; NEV; JNEZ.fail; 1535/4: 161 117|047|052|164 263|205 203 161|200 260 041 SHA39; STR; ERASE; SHL-39; JNV.lastsy; J.fail; !label num; 1537/4: 042|304 000 012|037|154 013 num: DUP; SET10; SIGN; CFRQ0/11; 1540/5: 224 043 150|304 000 322|015|200 140 041 !begin JLTZ.nosign; SET#322; NEV; JNEZ.fail; 1542/3: 041|202 323 033|042|164 373|200 140 041 ZERO; JS.pbs; DUP; SHL-3; JNEZ.fail; 1544/1: 011|161 007|204 320 360|042|164 373|221 143 144 octnum: OR; SHA3; JS.inbs; DUP; SHL-3; JEQZ.octnum; 1546/1: 065|164 373|065|304 000 377|203 023 316 REV; SHL-3; REV; SET#377; JNE.exith; 1547/5: 052|041|201 263 144 ERASE; ZERO; J.octnum; 1550/4: 202 323 033|304 000 012|043|037|203 041 167 nosign: JS.pbs; SET10; DUPD; SIGN; JGEZ.erex; 1552/3: 066|034|050|056|204 263 150 CAB; MULTD; CONT; +; J.nosign; !end 1553/4: 202 322 257|140 040|041|304 000 230 tconst: JS.input; M+I2; ZERO; SET#230; 1555/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; 1560/1: 205 323 162|166 361|200 322 233|164 261 JS.part; SHLD-8; JS.storesyll; SHL-40; 1561/5: 200 322 233|200 262 014 lastsy: JS.storesyll; J.nxitem; 1562/5: 170 150|200 323 330|012|051|015|200 140 041 part: SC6; JS.calcadd; PERM; REVD; NEV; JNEZ.fail; 1564/4: 164 033|042|223 143 166|065|304 037 377|054 SHL13; DUP; JEQZ.prog+1s2; REV; SET#17777; AND; 1566/3: 011|174 000|173 000|200 360 000 OR; SLINK; FLINK; EXITH; 1567/5: 171 070|171 124|015|200 140 041|155 004 qconst: FC3; FI5; NEV; JNEZ.fail; CMFRQ0/4; 1571/3: 171 062|027|033|170 142|202 322 257|140 040 FM3; NEG; NOT; SM6; JS.input; M+I2; 1573/2: 304 000 241|304 000 010|205 323 162|164 101|151 066 SET#241; SET8; JS.part; SHL32; MFRQ3/6; 1575/3: 304 000 241|304 000 050|205 323 162|164 041|011 SET#241; SET40; JS.part; SHL16; OR; 1577/3: 304 000 230|304 000 030|205 323 162|011|205 262 336 oneadd: SET#230; SET24; JS.part; OR; J.store; xconst: /instruction pattern constant 1601/4: 052 !begin ERASE; 1601/5: 102 041|042|164 365|204 143 205|201 323 016|205 263 201 xloop: FMMQ2/1; DUP; SHL-6; JNEZ.endx; JS.storechar; J.xloop; 1604/1: 164 371|304 000 011|054|201 263 203 spec: SHL-4; SET#11; AND; J.xloop+1s2; 1605/4: 304 000 301|221 023 204|304 000 321|221 023 204 endx: SET#301; JEQ.spec; SET#321; JEQ.spec; 1607/4: 304 000 230|200 020 041 SET#230; JNE.fail; 1610/4: 052|171 070|171 124|044|225 142 013 align: ERASE; FC3; FI5; DIVI; JEQZ.nxitem-0s1; 1612/1: 041|201 323 016|204 263 210 ZERO; JS.storechar; J.align; !end 1613/2: 171 124|042|220 040 041|027|033|170 122|201 324 314 octal: FI5; DUP; JLTZ.fail; NEG; NOT; SM5; JS.assemno; 1615/3: 065|304 000 241|200 023 220|052|102 041 !begin REV; SET#241; JNE.end; ERASE; FMMQ2/1; 1617/1: 201 324 314|170 122 JS.assemno; SM5; 1620/0: 304 000 230|015|200 140 041|304 000 057 end: SET#230; NEV; JNEZ.fail; SET47; 1621/4: 171 122|042|220 040 041|036|170 130 FM5; DUP; JLTZ.fail; -; SC5; 1623/1: 042|164 120|065|167 120|200 020 041 DUP; SHLC5; REV; SHCC5; JNE.fail; /bits lost 1624/4: 171 124|164 367|205 142 336 FI5; SHL-5; JNEZ.store; 1625/5: 042|042|164 061|220 142 354|200 260 041 DUP; DUP; SHL24; JEQZ.storeh; J.fail; !end aconst: 1627/3: 052|171 124|042|220 040 041 !begin ERASE; FI5; DUP; JLTZ.fail; 1630/4: 155 066|155 004|304 000 060|015 CMFRQ3/6; CMFRQ0/4; SET48; NEV; 1632/0: 042|223 143 177|200 323 330 DUP; JEQZ.oneadd; JS.calcadd; 1633/1: 304 000 230|015|200 140 041 SET#230; NEV; JNEZ.fail; 1634/2: 041|012|201 322 201|200 262 354 ZERO; PERM; JS.addup; J.storeh; !end !label storechar, lookup, pbs, input; !end /process label declaration ident: 1635/4: 171 050|033|027|172 042|200 323 317 !begin FC2; NOT; NEG; S+M2; JS.packid; 1637/1: 155 004 CMFRQ0/4; /only check repetion in this block 1637/3: 200 323 307|202 263 277 JS.dsearch; J.boob; 1640/3: 102 041|304 000 271|220 023 260 FMMQ2/1; SET#271; J=.implicit; /colon 1641/5: 304 000 242|015|200 140 041 SET#242; NEV; J#Z.fail; /check = 1643/0: 143 100|300 003 327|221 023 270|111 160 DC4; F.progid; JEQ.patch; SMMN7/0; 1644/4: 041|200 323 330|304 000 271|015|200 140 041 ZERO; JS.calcadd; SET#271; NEV; JNEZ.fail; [ ----- page13 /check terminator colon - address value in N1 1646/3: 170 270|170 262|152 153 store: SC11; SM11; IFRQ6/11; 1647/3: 171 276|103 160 FQ11; SMMQ7/0; /complete dictionary entry 1650/1: 220 142 014 JEQZ.nxitem; /jump if ref. table entry not reqd 1650/4: 300 001 232|201 321 151|300 001 234|201 321 170 F.ssss; JS.printsix; F.lastlab; JS.printid; 1652/4: 203 321 175|201 321 205 JS.printadd; JS.printline; 1653/4: 300 001 233|042|027|033|301 001 233 F.refcount; DUP; NEG; NOT; S.refcount; 1655/1: 300 000 105|056|220 102 014 F.length; +; JGTZ.nxitem; 1656/2: 041|301 001 233|203 320 112|200 262 014 ZERO; S.refcount; JS.prnl; J.nxitem; 1660/0: 052|300 003 327|220 020 041 implicit: ERASE; F.progid; J=.fail; /attempt to declare prog 1661/1: 042|111 160|171 144|301 001 235 DUP; SMMN7/0; FI6; S.lineno; 1662/3: 171 062|304 000 006|171 070|164 373|036|042|222 143 266 FM3; SET6; FC3; SHL-3; -; DUP; JEQZ.prog+2; 1664/5: 043|052|001|161 105|220 200 041|052 DUPD; ERASE; VR; SHA34; JV.fail; ERASE; 1666/2: 066|301 001 234|300 000 106|012|203 263 246 CAB; S.lastlab; F.tables; PERM; J.store; 1670/1: 052|200 323 330|304 000 271|015|200 140 041 patch: ERASE; JS.calcadd; SET#271; NEV; J#Z.fail; 1672/0: 043|052|220 040 041 DUPD; ERASE; JLTZ.fail; /prog would go negative 1672/5: 171 062|012|304 000 006|065|036|164 007|170 070 FM3; PERM; SET6; REV; -; SHL3; SC3; /syllable 1674/5: 042|170 062|032|300 001 236|032|301 001 236|052|205 262 013 DUP; SM3; MAX; F.inbfr; MAX; S.inbfr; ERASE; J.nxitem-0s1; 1677/2: 202 323 300|200 260 041 boob: JS.because; J.fail; 1700/2: 300 003 306|300 003 305|204 321 150|304 000 377|204 321 170 because: F.bdotodot+1; F.bdotodot; JS.printtwo; SET#377; JS.printid+0s3; 1702/5: 100 240|164 041|164 301|203 261 205 FMM10/0; SHL16; SHL-32; J.printline+0s2; 1704/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) 1707/0: 155 172 dsearch: CMFRQ7/10; /use current dictionary pointer sdsearch: /entry with old dictionary pointer in Q10 1707/2: 240 243 314|142 240|146 240|140 240 !begin JCZ10.a+0s3; NC10; ITWO10; M+I10; 1710/5: 017|112 240|042|222 143 313|223 023 314 *loop: FMMQN10/0; DUP; J=Z.b; J=.match; 1712/3: 177 240|202 360 001 loopa: JCNZS10; EXIT.1; /end of dictionary 1713/2: 052 b: ERASE; 1713/3: 263 103 312 a: JCNZ4.loopa; /pass begins 1714/0: 202 360 001 EXIT.1; /unallocated 1714/3: 141 240|100 240|203 043 316|140 240|203 263 312 match: M-I10; FMM10/0; JGEZ.exith; M+I10; J.loopa; 1716/3: 200 360 000 exith: EXITH; !label exith; !end packid: /packs identifier (backwards and left justified) 1717/0: 304 000 007|170 050|041|100 041 !begin SET7; SC2; ZERO; FMM2/1; 1720/2: 042|304 000 014|037|220 040 041 DUP; SET12; SIGN; J<Z.fail; 1721/4: 166 365|200 140 041 SHLD-6; J#Z.fail; 1722/3: 017|017|017|112 041|166 365|201 143 326|177 040 *pack: FMMQN2/1; SHLD-6; J#Z.termin; JCNZS2; 1724/3: 112 041|164 365|223 143 324|200 360 000 skip: FMMQN2/1; SHL-6; J=Z.skip; EXITH; 1726/1: 164 015|200 360 000 termin: SHL6; EXITH; !end 1727/0: 111 247 133 000 000 000 *progid:= � GORP; /prog in packid format calcadd: 1730/0: 155 010|102 041|304 000 321|225 023 345 !begin CMFRQ0/8; FMMQ2/1; SET209; J=.setsign; 1731/4: 304 000 301|225 023 345 SET193; J=.setsign; 1732/4: 154 011|141 040|201 263 347 CFRQ0/9; M-I2; J.item+0s2; 1733/5: 171 156|164 011|171 230|027|050 funny: FQ6; SHL4; FC9; NEG; CONT; 1735/1: 171 102|033|166 371|052|101 160|113 160 FM4; NOT; SHLD-4; ERASE; SMM7/0; SMMQN7/0; 1736/5: 102 041|304 000 321|225 023 345 next: FMMQ2/1; SET209; JEQ.setsign; 1740/1: 304 000 301|225 023 345 SET193; J=.setsign; 1741/1: 171 210|304 000 006|044|065|171 202|056|065|042|221 143 345 FC8; SET6; DIVI; REV; FM8; +; REV; DUP; JEQZ.exit; 1743/4: 043|052|001|161 105|220 200 041|052 DUPD; ERASE; VR; SHA34; JV.fail; ERASE; 1745/1: 066|200 360 000 exit: CAB; EXITH; /terminator left in N1 1745/5: 304 000 301|015|170 230 setsign: SET193; NEV; SC9; 1746/5: 100 041|042|304 000 012|037|222 043 364 item: FMM2/1; DUP; SET10; SIGN; J<Z.absolute; [ ----- page 14 1750/3: 304 000 322|222 023 364|304 000 215|015|222 143 371 SET210; J=.absolute; SET#215; NEV; JEQZ.str; 1752/4: 200 323 317|300 003 327|220 023 362 JS.packid; F.progid; JEQ.curadd; 1754/1: 200 323 307|201 263 356|245 103 333|200 260 041 JS.dsearch; J.prog+1s3; JCZ4.funny; J.fail; 1756/1: 052|100 240|170 256|171 242|171 250 ERASE; FMM10/0; SQ10; FM10; FC10; 1757/4: 245 223 360 enditem: JCZ9.addin; 1760/1: 027|065|027|065 NEG; REV; NEG; REV; /negate word/syllable if item -ve 1760/5: 172 210|172 202|205 263 336 addin: S+C8; S+M8; J.next; 1762/0: 052|171 062|304 000 006|171 070|164 373|036|204 263 357 curadd: ERASE; FM3; SET6; FC3; SHL-3; -; J.enditem; 1764/2: 140 040|201 324 314 absolute: M+I2; JS.assemno; /word address 1765/1: 065|304 000 036|015|223 143 367 REV; SET30; NEV; J=Z.syll; 1766/3: 141 040|041|204 263 357 M-I2; ZERO; J.enditem; /no syllable number 1767/3: 102 041|201 324 314|016|141 040|204 263 357 syll: FMMQ2/1; JS.assemno; ROUND; M-I2; J.enditem; 1771/2: 140 040|203 323 376|200 260 041|203 323 376|205 263 375 str: M+I2; JS.onesym; J.fail; JS.onesym; J.estr; 1773/4: 065|164 021|011|102 041|304 000 235|015|200 140 041 REV; SHL8; OR; FMMQ2/1; SET#235; NEV; JNEZ.fail; 1775/5: 041|204 263 357 estr: ZERO; J.enditem; 1776/3: 102 041|304 000 216|222 024 003|304 000 230|220 020 041 onesym: FMMQ2/1; SET#216; JEQ.formal; SET#230; JEQ.fail; 2000/5: 304 000 271|220 020 041|304 000 235|223 021 167|202 360 001 SET#271; JEQ.fail; SET#235; JEQ.erex; EXIT.1; 2003/2: 052|102 041|304 000 036|202 323 055|304 000 377|054|202 360 001 formal: ERASE; FMMQ2/1; SET30; JS.lookup; SET#377; AND; EXIT.1; !end 2006/0: 300 000 106|223 141 167 prbs: F.tables; JEQZ.erex; 2007/0: 164 021|300 004 014|011|300 001 233|222 144 012 SHL8; F.ssssd; OR; F.refcount; JEQZ.prog+1s5; 2011/0: 304 000 240|166 361|301 001 233 SET#240; SHLD-8; S.refcount; 2012/2: 201 321 151|201 321 205|203 260 112 JS.printsix; JS.printline; J.prnl; 2013/5: 017|236 236 236 236 000 377 *ssssd:= # 4751723647400377; 2015/0: 000 000 000 000 000 000 lastbegin:=0; 2016/0: 200 324 006 beginblock: JS.prbs; 2016/3: 300 004 015|101 160|171 176|301 004 015 dumbeg: F.lastbegin; SMM7/0; FQ7; S.lastbegin; 2020/1: 041|113 160|200 262 014 ZERO; SMMQN7/0; J.nxitem; 2021/1: 157 172|146 240|146 220|171 224|170 202 endblock: QFRQ7/10; ITWO10; ITWO9; FI9; SM8; 2022/5: 200 324 006|041|033|301 000 024|201 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 2024/4: 157 065|152 150 !begin QFRQ3/5; IFRQ6/8; /preserve line count and prog / address: both disturbed by update 2025/2: 142 240|300 004 015|164 301|172 250|143 240 NC10; F.lastbegin; SHL-32; S+C10; DC10; /set up scan of dictionary for this block only 2027/1: 244 244 057|152 004 nxentry: JCZ10.tidyup; IFRQ0/4; 2030/0: 102 250|205 044 031|017|177 240 *findloc: FMMQ10/8; JGEZ.locitem; *JCNZS10; 2031/2: 204 264 057 J.tidyup; /scans for each located entry locitem: /for each located entry, /process corresponding unlocated entries; /M10 now points to the located entry. 2031/5: 155 171|142 220|110 240|041 CMFRQ7/9; NC9; FMMN10/0; ZERO; 2033/0: 052 erscan: ERASE; 2033/1: 017|017|017|017|017|112 230|042|220 144 036|222 024 040|177 220|041 *scan: FMMQN9/8; DUP; JEQZ.lastref; JEQ.process; JCNZS9; ZERO; 2036/0: 052|052|171 104|221 044 027 lastref: ERASE; ERASE; FI4; JLTZ.nxentry; 2037/1: 041|033|111 240|201 264 027 ZERO; NOT; SMMN10/0; J.nxentry; /delete located entry unless there is /a corresponding !label entry 2040/2: 100 220|042|200 044 033 process: FMM9/0; DUP; JGEZ.erscan; 2041/2: 042|033|164 301|203 144 043|052 DUP; NOT; SHL-32; JNEZ.notlab; ERASE; 2042/4: 145 100|203 264 056 IMONE4; J.delete; /!label entry: delete but remember in I4 notlab: /unlocated entry to be updated 2043/3: 047|162 007|033|170 102 STR; SHAD3; NOT; SM4; /address type 2044/3: 164 003|047|170 110 SHL1; STR; SC4; /+/- marker 2045/2: 164 371|170 156 SHL-4; SQ6; /Q6 set up for update 2046/0: 155 143 CMFRQ6/3; /to give correct fail address 2046/2: 142 140|110 141|042|100 141|166 140 update: NC6; FMMN6/1; DUP; FMM6/1; SHLDC6; 2047/5: 142 140|065 NC6; REV; /sylls to be updated at top of N1 2050/2: 100 240|170 276|171 262|242 104 052 FMM10/0; SQ11; FM11; JCZ4.pos; /address value 2051/5: 142 260|027 NC11; NEG; /negate address if - [ ----- page 15 2052/2: 171 270|201 322 201 pos: FC11; JS.addup; /update 2053/1: 065|166 140|101 141 REV; SHLDC6; SMM6/1; 2054/0: 041|033|164 061|164 140|042|066|054 ZERO; NOT; SHL+24; SHLC6; DUP; CAB; AND; 2055/3: 012|033|054|011|111 141 PERM; NOT; AND; OR; SMMN6/1; 2056/3: 041|033|111 220|200 264 034 delete: ZERO; NOT; SMMN9/0; J.scan; !label stop, updfail; updfail=delete: [ a bit sneaky hiding this label definition 2057/4: 300 004 015|042|170 276|102 260 tidyup: F.lastbegin; DUP; SQ11; FMMQ11/0; 2061/0: 301 004 015 S.lastbegin; /last !begin is removed from dictionary 2061/3: 171 170|027|172 270|170 176|202 264 065 FC7; NEG; S+C11; SQ7; J.endtidy; /set up for removing unwanted entries from dictionary 2063/1: 017|017|017|017|017|112 260|042|033|205 144 154 *tidy: FMMQN11/0; DUP; NOT; JNEZ.keep; 2065/1: 052 erase: ERASE; 2065/2: 177 260 endtidy: JCNZS11; 2065/4: 157 123|152 206 QFRQ5/3; IFRQ8/6; /restore prog address and line no. 2066/2: 041|301 000 024|300 000 106|223 144 070|203 320 112 ZERO; S.endmark; F.tables; JEQZ.prog+1; JS.prnl; 2070/3: 300 004 015|200 142 014|245 164 074|142 160|146 160 F.lastbegin; JNEZ.nxitem; JCZ7.enter; NC7; ITWO7; 2072/4: 017|017|102 170|042|220 044 147|052 *checkunloc: FMMQ7/8; DUP; JLTZ.unloc; ERASE; 2074/1: 177 160|152 206 endcheck: JCNZS7; IFRQ8/6; 2074/5: 300 000 023|200 140 037 enter: F.failmark; JNEZ.catfail; 2075/5: 300 001 241|224 144 104|300 000 104|225 144 122 F.flag; JEQZ.endbin; F.test; JEQZ.landg; 2077/5: 300 020 007|033|204 144 103 FM1.7; NOT; JNEZ.endbin-1; 2101/0: 171 062|300 001 236|032|304 000 010|164 041|011 FM3; F.inbfr; MAX; SET8; SHL16; OR; 2103/0: 301 020 007|052 SM1.7; ERASE; /default filler word 2103/4: 200 326 060|201 324 223 JS.bintod; JS.prod; 2104/4: 200 321 243 endbin: JS.windup; 2105/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; 2110/1: 300 001 134|224 144 111|202 332 153|224 304 112|173 000|052 F.ptfile; JEQZ.prog+1; JS.closeptr; JEJ.prog+1; FLINK; ERASE; 2112/4: 203 244 112|201 304 112|300 000 105|167 377|202 044 117 JNEN.prog-0s1; JNEJ.prog-1; F.length; SHC-1; JGEZ.close; 2115/0: 242 364 117|171 370|304 000 006|200 220 000|205 264 120 JCZ15.close; FC15; SET6; OUT; J.batch; /direct printer 2117/2: 300 001 242|304 000 010|200 220 000 close: F.closestr; SET8; OUT; 2120/5: 300 004 146|300 000 002|304 000 001|200 220 000 batch: F.iden; F.2; SET1; OUT; /re-enter 2122/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; 2124/5: 015|037|223 100 036|052|200 321 243 NEV; SIGN; JGTZ.nfail; ERASE; JS.windup; 2126/2: 300 004 144|042|301 000 005|301 020 005 F.loopa; DUP; S.5; SM1.5; 2130/0: 300 004 145|042|301 000 006|301 020 006 F.loopb; DUP; S.6; SM1.6; 2131/4: 300 000 334|304 000 063|200 220 000 F.jobno; SET51; OUT; 2133/1: 171 062|300 001 236|032|033|027|170 271|052 FM3; F.inbfr; MAX; NOT; NEG; SRC11; ERASE; 2135/0: 300 000 111|164 061|114 001|042|220 144 137|032|052 F.timelt; SHL24; FMMHN0/1; DUP; JEQZ.prog+0s4; MAX; ERASE; 2137/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 2143/0: 072 063 061 064 050 236 *unlocstr:={unloc*s}; 2144/0: 100 261|017|103 260 *loopa: FMM11/1; DUMMY; SMMQ11/0; /move code 2144/5: 017|177 260|200 220 000 *loopb: JCNZS11; OUT; /and enter 2145/5: 017|206 305 036 171 347 236 *iden:= P AL4-----; 2147/0: 033|164 301|221 144 074 unloc: NOT; SHL-32; JEQZ.endcheck; /!label 2150/0: 300 004 143|201 321 151|110 160|201 321 170 F.unlocstr; JS.printsix; FMMN7/0; JS.printid; 2151/5: 100 160|170 156|201 321 205 FMM7/0; SQ6; JS.printline; 2153/0: 203 320 112|171 164|301 000 023 JS.prnl; FI7; S.failmark; 2154/2: 201 264 074 J.endcheck; 2154/5: 111 160|100 270|042|033|164 301 keep: SMMN7/0; FMM11/8; DUP; NOT; SHL-32; 2156/1: 221 144 065 JEQZ.erase; /ignore remaining !label entries 2156/4: 103 160|202 264 065 SMMQ7/0; J.endtidy; !end 2157/3: 202 322 257|140 040|304 000 014|170 270 segment: JS.input; M+I2; SET12; SC11; 2161/1: 041|301 001 241|171 076 !begin ZERO; S.flag; FQ3; 2162/1: 304 000 030|170 071|140 060|140 060 SET24; SRC3; M+I3; M+I3; 2163/4: 102 041|304 000 321|224 024 172|304 000 241|225 024 175|042|164 365|200 140 041 loop: FMMQ2/1; SET#321; JEQ.skip; SET#241; JEQ.end; DUP; SHL-6; JNEZ.fail; 2167/0: 201 321 213|201 323 016 JS.bstopr; JS.storechar; 2170/0: 143 260|264 264 163 eloop: DC11; JCNZ11.loop; 2170/5: 102 041|304 000 241|225 024 175|200 260 041 FMMQ2/1; SET#241; JEQ.end; J.fail; 2172/4: 052|304 377 372|172 070|260 064 170|304 000 060|170 070|140 060|200 264 170 skip: ERASE; SET-6; S+C3; JCNZ3.eloop; SET48; SC3; M+I3; J.eloop; 2175/5: 170 111|140 100|170 076 end: SRC4; M+I4; SQ3; [ ----- page 16 2176/5: 200 323 330|304 000 024|015|200 140 041 JS.calcadd; SET#24; NEV; JNEZ.fail; 2200/3: 104 000|104 001|042|301 004 265|015|201 144 204 FMMH0/0; FMMH0/1; DUP; S.oldij; NEV; JNEZ.filler; /initial jump preserved 2202/3: 043|300 004 266|012|201 322 201|105 001 DUPD; F.jump; PERM; JS.addup; SMMH0/1; /initial jump 2204/1: 052|200 323 330|304 000 230|015|200 140 041|052 filler: ERASE; JS.calcadd; SET#230; NEV; JNEZ.fail; ERASE; 2206/1: 043|037|220 100 041|042|171 022|056|201 321 164 DUPD; SIGN; JGTZ.fail; DUP; FM1; +; JS.space; 2210/1: 065|164 041|011|042|301 020 007 REV; SHL16; OR; DUP; SM1.7; /filler word 2211/3: 170 036|041|033|172 264 chunloc: SQ1; ZERO; NOT; S+I11; 2212/3: 157 172|146 240|142 240|017|017|017|302 240 002|223 044 241 QFRQ7/10; ITWO10; NC10; *FMQ10.2; JLTZ.check; 2215/0: 177 240 ok: JCNZS10; 2215/2: 300 000 023|300 000 104|033|011|200 142 014 F.failmark; F.test; NOT; OR; JNEZ.nxitem; 2217/1: 171 144|200 326 060|170 144|201 324 223|300 004 265|105 001 FI6; JS.bintod; SI6; JS.prod; F.oldij; SMMH0/1; 2221/4: 300 000 336|203 041 345|200 262 014 F.dlost; JGEZ.fl6; J.nxitem; 2223/1: 300 020 003|300 020 002|166 045|205 321 221|304 017 377|011|205 321 221 prod: FM1.3; FM1.2; SHLD18; JS.print8; SET#7777; OR; JS.print8; 2226/1: 300 004 261|205 321 221|300 004 262|205 321 221|300 004 264|202 324 236 F.ond; JS.print8; F.size; JS.print8; F.hiadd; JS.pr32; 2231/1: 110 001|170 270|243 264 234|143 260|300 004 263|201 321 151|171 270|202 324 236 FMMN0/1; SC11; JCZ11.prog+2s4; DC11; F.st; JS.printsix; FC11; JS.pr32; 2234/3: 203 320 112|300 004 261|164 365|200 266 306 JS.prnl; F.ond; SHL-6; J.idtype; 2236/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; 2240/5: 067|200 261 326 FRB; J.prno; 2241/3: 100 240|033|164 301|220 144 215 check: FMM10/0; NOT; SHL-32; JEQZ.ok; 2242/5: 100 240|170 236|171 222|171 262|037|220 104 215 FMM10/0; SQ9; FM9; FM11; SIGN; JGTZ.ok; 2244/5: 171 222|171 264|037|042|224 144 251|220 044 215 FM9; FI11; SIGN; DUP; JEQZ.recheck; JLTZ.ok; 2246/5: 304 000 004|170 251|302 244 255|201 321 151 error: SET.ond-err; SRC10; FMQ10.err; JS.printsix; 2250/4: 264 244 247|200 260 041 JCNZ10.prog-1; J.fail; 2251/4: 052|171 230|304 000 070|054|304 000 030|037|200 044 215|205 264 246 recheck: ERASE; FC9; SET#70; AND; SET24; SIGN; JGEZ.ok; J.error; 2254/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}; 2261/0: 276 340 044 247 070 337 *ond:= P on*sdisc.; 2262/0: 000 014 351 352 120 077 size:= P *2ssize*s; 2263/0: 003 070 070 071 236 377 st:= {&3s st *s}; 2264/0: 000 000 000 000 000 000 hiadd:=0; 2265/0: 000 000 000 000 000 000 oldij:=0; 2266/0: 200 260 000 jump: J.0; !label prod, hiadd, ond; !end 2266/3: 202 322 257|140 040|304 000 230|041 labelspec: JS.input; M+I2; SET#230; ZERO; /set up for search in containing block 2270/0: 300 004 015|170 236|154 004 !begin F.lastbegin; SQ9; CFRQ0/4; 2271/1: 052|200 323 317|157 232 nxlab: ERASE; JS.packid; QFRQ9/10; 2272/1: 202 323 307|201 264 277 JS.sdsearch; J.boob; /already in outer block 2273/1: 111 160|041|033|170 150 SMMN7/0; ZERO; NOT; SC6; 2274/1: 171 156|103 160 FQ6; SMMQ7/0; 2274/5: 102 041|304 000 246|221 024 271 next: FMMQ2/1; SET#246; JEQ.nxlab; 2276/1: 225 022 013|200 260 041 JEQ.nxitem-0s1; J.fail; 2277/1: 065|052|042|202 323 300|033|205 264 274 boob: REV; ERASE; DUP; JS.because; NOT; J.next; /cause fail at end of list !end einbs: 2300/5: 265 024 312|041 !begin JCNZ1.ceq; ZERO; /check if middle of := 2301/3: 052 b: ERASE; 2301/4: 204 320 360 a: JS.inbs; 2302/1: 042|164 365|203 144 305|042|304 000 045|065|037 DUP; SHL-6; JNEZ.long; DUP; SET#45; REV; SIGN; 2304/1: 304 000 032|054|036|200 360 000 SET26; AND; -; EXITH; 2305/3: 304 000 236|223 024 301|304 000 256|223 024 301 long: SET#236; JEQ.b; SET#256; JEQ.b; 2307/3: 304 000 377|223 024 301|304 000 265|200 024 305 SET#377; JEQ.b; SET#265; JNE.long-0s3; 2311/3: 170 030|304 000 271|200 360 000 coleq: SC1; SET#271; EXITH; 2312/5: 154 001|304 000 242|200 360 000 ceq: CFRQ0/1; SET162; EXITH; !end assemno: /assemble signed integer 2314/1: 001|154 005|042|304 000 012|037|223 044 331 !begin VR; CFRQ0/5; DUP; SET10; SIGN; JLTZ.input; 2316/0: 102 041|065|304 000 321|224 024 327|304 000 301|220 024 330 FMMQ2/1; REV; SET#321; JEQ.neg; SET#301; JEQ.neg+0s2; 2320/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; 2322/4: 102 041|042|164 373|205 144 325 octal: FMMQ2/1; DUP; SHL-3; JNEZ.exit+0s1; 2324/0: 065|047|162 007|027|050|011|204 264 322 REV; STR; SHAD3; NEG; CONT; OR; J.octal; 2325/4: 052|065|244 124 326|027|220 200 041|200 360 000 exit: ERASE; REV; JCZ5.prog+0s4; NEG; JV.fail; EXITH; [ ----- page 17 2327/4: 143 120|052|042|304 000 012|037|200 040 041 neg: DC5; ERASE; DUP; SET10; SIGN; JGEZ.fail; 2331/3: 102 041|304 000 012|043|037|204 044 325 input: FMMQ2/1; SET10; DUPD; SIGN; JGEZ.exit; 2333/1: 066|034|050|056|203 264 331 CAB; �D; CONT; +; J.input; !end /lists of instruction blanks, /listed according to parser types 2334/2: 017|017|017|017 *cblanks: 2335/0: 001|056|056|041|056|056|056|056|056|057|056|056|023|056|056 VR;+;+; ZERO;+;+; +;+;+; +D;+;+; +DF;+;+; 2337/3: 074|056|056|036|056|056|053|056|056|022|056|056|075|056|056 +F;+;+; -;+;+; -D;+;+; -DF;+;+; -F;+;+; 2342/0: 026|056|056|030|056|056|054|056|056|003|056|056|066|056|056 ABS;+;+; ABSF;+;+; AND;+;+; BITS;+;+; CAB;+;+; 2344/3: 050|056|056|060|056|056|061|056|056|063|056|056|062|056|056 CONT;+;+; DIV;+;+; DIVD;+;+; DIVDF;+;+; DIVF;+;+; 2347/0: 044|056|056|064|056|056|017|056|056|042|056|056|043|056|056 DIVI;+;+; DIVR;+;+; DUMMY;+;+; DUP;+;+; DUPD;+;+; 2351/3: 052|056|056|202 360 000|222 360 000|200 360 000|045|056|056 ERASE;+;+; EXIT; EXITD; EXITH; FIX;+;+; 2354/0: 173 000|056|024|056|056|025|056|056|176 000|056|176 000|056 FLINK;+; FLOAT;+;+; FLOATD;+;+; FNSC;+; FPHU;+; 2356/3: 067|056|056|176 000|056|032|056|056|072|056|056|035|056|056 FRB;+;+; FRFIS;+; MAX;+;+; MAXF;+;+; MULT;+;+; [MULT+;+; MULT+F;+;+; MULTD;+;+; MULTDF;+;+; MULTF;+;+; 2361/0: 163 137|056|007|056|056|034|056|056|005|056|056|004|056|056 �+;+; �+F;+;+; MULTD;+;+; MULTDF;+;+; MULTF;+;+; 2363/3: 027|056|056|010|056|056|071|056|056|031|056|056|015|056|056 NEG;+;+; NEGD;+;+; NEGDF;+;+; NEGF;+;+; NEV;+;+; 2366/0: 033|056|056|011|056|056|200 220 000|012|056|056|065|056|056 NOT;+;+; OR;+;+; OUT; PERM;+;+; REV;+;+; 2370/3: 051|056|056|016|056|056|020|056|056|014|056|056|021|056|056 REVD;+;+; ROUND;+;+; ROUNDF;+;+; ROUNDH;+;+; ROUNDHF;+;+; 2373/0: 175 000|056|175|200|056|175 000|056|002|056|056|037|056|056 SBANOL;+; =S#175;=S#200;+; SCPDAR;+; SETTR;+;+; SIGN;+;+; 2375/3: 077|056|056|174 000|056|175 000|056|070|056|056|047|056|056 SIGNF;+;+; SLINK;+; SNSC;+; STAND;+;+; STR;+;+; 2400/0: 013|056|056 TOB;+;+; 2400/3: 017|017|017 *cnblanks: 2401/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;+; 2404/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;+; 2407/0: 146 000|056|177 000|056|131 000|056|130 000|056|140 000|056 ITWO0;+; JCNZS0;+; LPEQ0;+; LPQ0;+; M+I0;+; 2411/3: 141 000|056|120 001|056|127 000|056|126 000|056|136 000|056|130 014|056 M-I0;+; MANUALQ0;+; MBREQ0;+; MBRQ0;+; MBSKQ0;+; MGAPQ0;+; [MLBQ0;+; MLWEQ0;+; MLWQ0;+; MRWDQ0;+; MULT+0;+; [ last entry was originally MULT++0 [MULT+C0;+; MWEQ0;+; MWIPEQ0;+; MWQ0;+; NC0;+; replaced to sort out MULT+ etc 2414/3: 120 004|056|131 010|056|130 010|056|136 010|056|163 001|056 MLBQ0;+; MLWEQ0;+; MLWQ0;+; MRWDQ0;+; �+0;+; [ last entry was originally �++0 2417/0: 163 000|056|131 000|056|130 004|056|130 000|056|142 000|056 �+C0;+; MWEQ0;+; MWIPEQ0;+; MWQ0;+; NC0;+; 2421/3: 121 000|056|130 014|056|124 000|056|125 000|056|124 010|056 PARQ0;+; PGAPQ0;+; PIAQ0;+; PIBQ0;+; PICQ0;+; 2424/0: 125 010|056|126 000|056|127 000|056|126 010|056|127 010|056 PIDQ0;+; PIEQ0;+; PIFQ0;+; PIGQ0;+; PIHQ0;+; 2426/3: 134 000|056|120 010|056|120 004|056|136 010|056|136 000|056 PMAQ0;+; PMBQ0;+; PMCQ0;+; PMDQ0;+; PMEQ0;+; 2431/0: 122 000|056|134 010|056|134 004|056|135 000|056|137 000|056 PMFQ0;+; PMGQ0;+; PMHQ0;+; PMKQ0;+; PMLQ0;+; 2433/3: 130 000|056|131 000|056|130 010|056|131 010|056|130 014|056 POAQ0;+; POBQ0;+; POCQ0;+; PODQ0;+; POEQ0;+; 2436/0: 130 004|056|132 000|056|133 000|056|133 010|056|132 010|056 POFQ0;+; POGQ0;+; POHQ0;+; POKQ0;+; POLQ0;+; 2440/3: 125 010|056|124 010|056|125 000|056|124 000|056|131 010|056 PRCEQ0;+; PRCQ0;+; PREQ0;+; PRQ0;+; PWCEQ0;+; 2443/0: 130 010|056|131 000|056|130 000|056|172 010|056|172 004|056 PWCQ0;+; PWEQ0;+; PWQ0;+; S+C0;+; S+I0;+; 2445/3: 172 002|056|172 016|056|170 010|056|304 000 000|161 001|056 S+M0;+; S+Q0;+; SC0;+; SET0; SHA0;+; 2450/0: 161 000|056|162 001|056|162 000|056|167 001|056|167 000|056 SHAC0;+; SHAD0;+; SHADC0;+; SHC0;+; SHCC0;+; 2452/3: 164 001|056|164 000|056|166 001|056|166 000|056|170 004|056 SHL0;+; SHLC0;+; SHLD0;+; SHLDC0;+; SI0;+; 2455/0: 170 002|056|170 016|056|170 011|056|170 005|056|170 003|056 SM0;+; SQ0;+; SRC0;+; SRI0;+; SRM0;+; 2457/3: 124 004|056|125 000|056|124 000|056|131 000|056|130 000|056 TLOQ0;+; TREQ0;+; TRQ0;+; TWEQ0;+; TWQ0;+; *cnnblanks: 2462/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;+; 2464/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;+; 2467/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;+; 2471/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;+; 2474/0: 107 000|056|117 000|056|113 000|056 SMMQH0/0;+; SMMQHN0/0;+; SMMQN0/0;+; 2475/3: 017|017|017 *cablanks: 2476/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; 2500/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; 2503/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; 2505/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; 2510/0: 220 200 000|301 000 000|304 000 000|304 000 000 JV.0; S.0; SET.0; SET.0; *cnablanks: 2512/0: 300 000 000|302 000 000|260 000 000|240 000 000 FM0.0; FMQ0.0; JCNZ0.0; JCZ0.0; [ ----- page 18 2514/0: 301 000 000|303 000 000 SM0.0; SMQ0.0; /tables of packed instructions for locator *ctable: 2515/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; 2522/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; 2527/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; 2534/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; 2541/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; 2546/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; 2553/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; 2560/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; 2565/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; 2572/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; 2577/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; 2604/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; 2611/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; 2616/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; 2623/0: 175 243 100 000 000 000 =� TOB; cntable: 2624/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; 2632/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; 2640/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; 2645/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|141 043 033 160 000 000 =� M-I; =� MANUALQ; =� MBREQ; =� MBRQ; =� MBSKQ; =� MGAPQ; 2653/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+; 2660/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; 2665/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; 2672/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; 2677/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; 2704/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; 2711/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; 2716/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; 2723/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; 2730/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; 2735/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; 2742/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; 2747/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; 2754/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; 2761/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: 2766/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; 2773/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; 3000/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; 3005/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; 3012/0: 171 206 034 114 000 000|171 206 034 115 220 000|171 206 034 144 000 000 =� SMMQH; =� SMMQHN; =� SMMQN; catable: 3015/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; 3022/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; 3027/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; 3034/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; 3041/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: 3045/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; 3051/0: 171 200 000 000 000 000|171 207 000 000 000 000 =� SM; =� SMQ; /dope words for recogniser 3053/0: 000 006 005 112 006 045 tcna:=Q tcna-cnatable/cnablanks/cnatable; /code : number . address [ ----- page 19 3054/0: 000 030 005 076 006 015 tca:=Q cnatable-catable/cablanks/catable; /code . address 3055/0: 000 107 004 335 005 115 tc:=Q cntable-ctable/cblanks/ctable; /code only type 3056/0: 000 142 005 001 005 224 tcn:=Q cnntable-cntable/cnblanks/cntable; /code: number 3057/0: 000 027 005 062 005 366 tcnn:=Q catable-cnntable/cnnblanks/cnntable; /code: number / number bintod: /write binary program to disc 3060/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; 3062/2: 100 001|011|101 001 FMM0/1; OR; SMM0/1; 3063/1: 304 000 001|170 243|304 002 052|301 006 302 SET1; SRM10; SET554; S.size; 3065/0: 300 020 007|170 276|171 262|171 264|043 FM1.7; SQ11; FM11; FI11; DUPD; /split filler word 3066/4: 043|170 263|042|301 004 264|171 022|056|171 162|036 DUPD; SRM11; DUP; S.hiadd; FM1; +; FM7; -; 3070/5: 042|202 321 166|223 101 345 DUP; JS.space1+0s3; JGTZ.fl6; 3072/0: 301 006 300|301 006 301|036|033|027|042|200 100 041|170 270|041 S.lo; S.hi; -; NOT; NEG; DUP; JLEZ.fail; SC11; ZERO; 3074/4: 017|017|102 261|017|017|017|056|177 260|301 006 303 *FMMQ11/1; DUMMY; DUMMY; DUMMY; +; JCNZS11; S.sum; 3076/5: 300 000 107|225 146 124 F.ptbin; JEQZ.disc; /jump if disc binary 3077/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; 3102/5: 301 006 162|301 020 002|300 020 003|301 006 162|300 006 303|101 261 S.ablock; SM1.2; FM1.3; S.ablock; F.sum; SMM11/1; 3105/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; 3110/2: 170 151|301 006 164|304 000 036|170 144|140 140 SRC6; S.ablock+2; SET30; SI6; M+I6; 3112/2: 130 144|154 150|304 006 162|170 204|304 006 171|170 222|131 200 POFQ6; CFRQ6/8; SET.ablock; SI8; SET.ablock+7; SM9; POBQ8; 3115/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; 3120/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; 3123/0: 171 150|304 000 006|200 220 000|200 360 000 FC6; SET6; OUT; EXITH; 3124/5: 304 024 345|200 220 000|052 disc: SET#12345; OUT; ERASE; 3126/0: 300 006 301|300 006 300|036|300 006 302|037|200 106 136 fill: F.hi; F.lo; -; F.size; SIGN; JLEZ.last; 3130/2: 171 024|170 270|300 006 300|042|170 264|300 006 302|056|042|170 262 FI1; SC11; F.lo; DUP; SI11; F.size; +; DUP; SM11; 3133/1: 171 276|303 246 226|301 006 300|304 002 172|301 006 302|200 266 126 FQ11; SMQ10.f-1; S.lo; SET634; S.size; J.fill; 3136/0: 154 013|300 006 300|170 264|300 006 301|033|027|170 262 last: CFRQ0/11; F.lo; SI11; F.hi; NOT; NEG; SM11; 3140/2: 171 276|301 246 226|300 006 303|301 246 227 FQ11; SM10.f-1; F.sum; SM10.f; 3142/1: 300 020 002|164 061|300 006 305|166 321|301 006 304 FM1.2; SHL24; F.ncdc; SHLD-24; S.poc; 3144/2: 301 020 002|171 242|301 006 303 SM1.2; FM10; S.sum; 3145/4: 204 326 166 JS.writebs; 3146/1: 300 006 304|300 006 303|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; 3151/4: 042|201 106 160 DUP; JLEZ.exit; 3152/2: 204 321 011|300 020 002|300 011 134|015 JS.discread+0s4; FM1.2; F.block+636; NEV; 3154/0: 300 020 003|300 011 135|015|167 335|164 351|011|203 141 346 FM1.3; F.block+637; NEV; SHC-18; SHL-12; OR; JNEZ.fl7; 3156/3: 300 006 226|304 000 035|200 220 000|041 F.asl; SET29; OUT; ZERO; 3160/1: 052|205 261 014 exit: ERASE; J.reread; doasl: / Q6 = no. of NOCs / 1 / address of first NOC 3160/5: 304 000 110|170 211 SET72; SRC8; /overwritten by A-block if P.T. binary 3161/4: 017|017|041|303 206 350|017|017|177 200 *ablock: ZERO; SMQ8.block+8; *JCNZS8; 3163/2: 102 140|304 007 067|171 142|056 rpt: FMMQ6/0; SET.block+block-f+14; FM6; +; 3164/4: 170 202|167 341|105 200|262 146 163|200 360 000 SM8; SHC-16; SMMH8/0; JCNZ6.rpt; EXITH; 3166/4: 304 006 340|170 123|300 246 226|170 276|171 262|171 264 writebs: SET.block; SRM5; FM10.f-1; SQ11; FM11; FI11; 3171/0: 042|170 263|036|170 270|300 006 304|103 120|300 246 227 DUP; SRM11; -; SC11; F.poc; SMMQ5/0; FM10.f; 3173/2: 304 000 032|200 220 000|042|223 141 346|042|301 006 304 SET26; OUT; DUP; JEQZ.fl7; DUP; S.poc; 3175/4: 301 246 227 SM10.f; /filler word left in nest 3176/1: 141 240|171 242|200 146 210 M-I10; FM10; JNEZ.notfir; 3177/2: 300 006 303|170 151|304 006 230|170 142|205 326 160 first: F.sum; SRC6; SET.f+1; SM6; JS.doasl; 3201/3: 300 006 227|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; 3204/2: 017|017|017|017|100 141|303 146 340|017|177 140 *FMM6/1; SMQ6.block; *JCNZS6; 3206/2: 304 000 120|172 122 SET80; S+M5; 3207/1: 017|017|017|017|017|102 261|103 120|017|017|177 260 *notfir: FMMQ11/1; SMMQ5/0; *JCNZS11; 3211/2: 101 120 SMM5/0; /copy block and filler 3211/4: 300 020 002|301 011 134|300 020 003|301 011 135 FM1.2; S.block+636; FM1.3; S.block+637; 3213/4: 304 002 176|170 271|041|041 output: SET638; SRC11; ZERO; ZERO; 3214/5: 017|302 266 340|017|047|057|177 260 *FMQ11.block; DUMMY; STR; +D; JCNZS11; 3216/2: 164 041|164 341|301 011 136|301 011 137 SHL+16; SHL-16; S.block+638; S.block+639; 3220/0: 300 006 304|300 000 331|166 041|167 341|065|164 041 F.poc; F.transfer; SHLD+16; SHC-16; REV; SHL+16; 3222/1: 304 000 027|200 220 000|304 000 025|200 220 000 SET23; OUT; SET21; OUT; [ ----- page 20 3224/1: 171 242|204 146 166|200 360 000 FM10; JNEZ.writebs; EXITH; 3225/3: 017|017|017|000 000 006 350 007 050 *asl:= Q 0 / block+8 / block+72; f: prog=f+41: 3300/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; 3305/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; 3306/0: 300 020 003|300 020 002|033|164 061|033 idtype: FM1.3; FM1.2; NOT; SHL24; NOT; 3307/4: 301 006 317|301 006 320|301 006 321|300 000 110|222 146 314 type: S.flex+2; S.flex+3; S.flex+4; F.jq; JEQZ.x; 3312/1: 041|301 006 316|300 006 315|304 000 010|200 220 000 ZERO; S.flex+1; F.flex; SET8; OUT; 3314/2: 200 360 000 x: EXITH; 3314/5: 017|000 000 006 316 006 321|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; 3322/0: 000 000 000 000 000 000 case:= 0; 3323/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|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 307|201 264 105 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.libFOC; 3505/1: 300 000 334|110 041|102 041|166 045|205 321 221|164 335 F.jobno; FMMN2/1; FMMQ2/1; SHLD18; JS.print8; SHL-18; 3507/3: 166 045|205 321 221|300 007 140|011|205 321 221 SHLD18; JS.print8; F.sttt; OR; JS.print8; 3511/3: 300 000 035|103 041|110 040|042|101 041|205 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|205 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 322|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 322|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 322|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 322|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 322|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 322|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 032|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 016|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 310|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 322|202 146 314|042|304 000 020|037|222 046 314 chdig: F.case; JNEZ.x; DUP; SET#20; SIGN; JLTZ.x; 3773/0: 042|304 000 031|037|222 106 314|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 307|171 310|304 000 006|200 220 000|201 264 105 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 322|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; =TAprogram;=S#255; =TAprogram;=S#337; [ =TA introduced here 4037/0: 107 375|163|000 006|045|000 005|047|000 004|055|000 003|045 =TAfail1;=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; =TAsegment;=S#264; =TAsegment;=S#337; 4043/0: 107 375 =TAfail1; 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; =TAtest;=S#264; =TAtest;=S#337; 4046/3: 110 111|170|110 165|264|110 165|337|110 111|000 =TAfail2;=S#170; =TAtext;=S#264; =TAtext;=S#337; =TAfail2;=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 =TAtables;=S#263; =TAtables;=S#337; =TAfail2;=S0; 4054/0: 000 006|062|000 003|041|000 002|043|050 164|245 =T6;=S#62; =T3;=S#41; =T2;=S#43; =TAtrace;=S#245; 4056/0: 050 164|377|110 111|000 =TAtrace;=S#377; =TAfail2;=S0; 4057/0: 050 146|354|110 111|000 =TAtl;=S#354; =TAfail2;=S0; 4060/0: 000 006|067|110 111|151|000 002|064|250 136|250 =T6;=S#67; =TAfail2;=S#151; =T2;=S#64; =TAwith;=S#250; 4062/0: 250 136|337|110 111|000 =TAwith;=S#337; =TAfail2;=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; =TAout;=S#264; =TAout;=S#337; =TAfail2;=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|006|250 162|337 =T3;=S#63; =T2;=S#45; =TAopt;=S262; =TAopt;=S#337; 4072/0: 110 111|117|110 111|160|110 153|254 =TAfail2;=S#117; =TAfail2;=S#160; =TAopl;=S#254; 4073/3: 150 155|260|210 150|330|110 111|000 =TAopp;=S#260; =TAop8;=S#330; =TAfail2;=S0; 4075/0: 000 004|063|250 142|264|250 142|337|110 111|000 =T4;=S#63; =TAst;=S#264; =TAst;=S#337; =TAfail2;=S0; [ ----- page 23 4077/0: 000 006|053|110 111|141|000 002|054|050 010|224 =T6;=S#53; =TAfail2;=S#141; =T2;=S#54; =TAkal;=S#224; 4101/0: 050 010|337|110 111|000 =TAkal;=S#337; =TAfail2;=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; =TAbin;=S#271; 4106/3: 250 140|337|110 111|000 =TAbin;=S#337; =TAfail2;=S0; 4107/3: 250 136|234|050 010|277|010 113|375|110 111 =TAwith;=S#234; =TAdc2;=S#277; =TAem;=S#375; =TAfail2; superm=block+15: fail1=invmess: 4111/2: 041|300 007 245|300 007 241|204 326 307 fail2: ZERO; F.inv+4; F.inv; JS.type; /invalid option - continue 4113/0: 304 011 377|171 022|032|171 162|036|042|202 321 166|220 101 342 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 261 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 014|033|164 041|164 341|033|301 004 014 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; [ original said 1s7 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+16; J.op-0s1; [ original was 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; [ original was J.notup+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 322|304 000 100|054|301 006 322 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 076|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 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 322|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 164|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 165|300 112 164|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 165|300 112 164|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 322|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: 071 052 062 065 060 061|072 051 054 052 377 377 *atable=prog:={temp kludge}; [ *s*#376*c*#376*t*10#376/0123456789*l@;+-.*#376 [ ABCDEFGHIJKLMNOPQRSTUVWXYZ*2#376*e*2#376 [ *S*#376*C*#376*T*10#376:^[]<>=��()*l*#376;#*A,*#376 [ abcdefghijklmnopqrstuvwxyz*2#376*e*2#376}; *btable=prog: [ ----- page 26 5164/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; 5167/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; 5172/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; 5175/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; 5200/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; 5203/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; 5206/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; 5211/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; 5214/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; 5217/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; 5222/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; 5225/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; 5230/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; 5233/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; 5236/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; 5241/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; 5244/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; 5247/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; 5252/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; 5255/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; 5260/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; 5263/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; 5266/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; 5271/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; 5274/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; 5277/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; 5302/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; 5305/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: !end / !segment /8/endbase-1; [ do this later / !segment -----P /ptread/prog-1; [ do this later Reached end of file No of ID table entries = 786 (26%)