Kidsgrove Algol Compiler - Brick 40
This assembler listing has hot links for all references to P-routines.
You can click on the routine number in code such as JS16P295;
or V0P299; and jump to the routine.
When you have seen enough of it, you can use the back button to carry on where you left off.
The original source was in the form of a single PDF file for each brick.
Here is the
PDF file for brick 40.
Hot links to images of individual pages are embedded in the text.
Loaded 4951 bytes for KAB40.txt
Relocated 22
Finished
Reached end of file
=============== Second pass
===========================
3400 W0 = E1792
5500 Y0 = E2880
3400 YA0 = E1792
3500 YY0 = E1856
4500 YZ0 = E2368
0/0: 200 266 100 [ original source of the next page
ST11104; TL60; START 1600;
YA63; YY511; YZ511;
4/0: 203 266 105|203 266 105 RESTART; J1; J1;
PROGRAM;
3100/0: 320 013 124|170 036|171 022|304 053 055|056|304 013 100 Z11; =Q1; M1; SETAZ50; +; SETAY0;
3102/2: 036|301 006 116 -; =V0P889;
3103/0: 200 326 123 JSP880;
3103/3: 304 010 004|200 320 106|202 266 112|202 266 113 SETB4004; JSE70; J3; J4;
3105/3: 320 013 070|223 046 107|304 005 240|200 326 337 1; Z39; J5<Z; SET1440; JSP7;
3107/3: 304 336 010 5; SETB157010;
3110/0: 170 022|304 006 125|170 024|154 001|171 036 2; =M1; SETB3125; =I1; C0TOQ1; Q1;
3111/5: 200 320 106 JSE70;
3112/2: 304 004 020|200 266 337 3; SET1040; JP7;
3113/2: 304 336 010|170 022|304 005 025|170 024|171 036|200 260 106 4; SETB157010; =M1; SETB2425; =I1; Q1; JE70;
=== Start P889V0; at address 1615/3117
3117/0: 300 006 116|171 022|036|203 106 121 P889V0; V0; M1; -; J1≤Z;
3120/3: 303 033 100|200 360 000 =Y0M1Q; EXIT1;
3121/3: 304 005 074|200 326 337 1; SET1340; JSP7;
=== Start P880V-1; at address 1619/3123
3123/0: 200 326 153|200 326 172|200 326 125|200 360 000 P880; JSP881; JSP882; JSP886; EXIT1;
=== Start P886V-1; at address 1621/3125
3125/0: 304 000 140|170 031 P886; SET96; =RC1;
3125/5: 320 013 123|304 053 055|056|170 142 Z12; SETAZ50; +; =M6;
[ original source of the next page
[ original source of the next page
3127/2: 304 000 140|170 051|146 040 1; SET96; =RC2; I2=+2;
3130/3: 041|301 013 100 ZERO; =Y0;
3131/1: 110 046|102 046 2; M6M2N; M6M2Q;
3131/5: 171 022|170 070|166 060|204 046 137 M1; =C3; SHLDC3; J3≥Z;
3133/2: 171 042|164 121|200 326 343|205 266 151 M2; SHL+40; JSP3; J7; (was J4 FAIL); [was SHL+39 hux - with this error nothing should have worked! - see B42 same routine
3135/0: 052|320 333 055|164 111|164 251 ERASE; Z50M13; SHL+36; SHL-44;
3136/2: 300 013 100|032|301 013 100|052 Y0; MAX; =Y0; ERASE;
3137/4: 052|261 046 131 3; ERASE; J2C2NZ;
3140/2: 140 020|171 022|164 121|200 326 343|200 266 150 M+I1; M1; SHL+40; JSP3; J5; (EXIT); [ see was SHL+39 hux - terminates when it gets to a level with no LP
3142/2: 052|320 333 055|164 111|164 251 ERASE; Z50M13; SHL+36; SHL-44;
3143/4: 300 013 100|032|052 Y0; MAX; ERASE;
3144/3: 320 333 054|167 321|164 371|164 011 Z51M13; SHC-24; SHL-4; SHL+4;
3146/0: 011|167 061|321 333 054 OR; SHC+24; =Z51M13;
3147/0: 143 020 6; DC1;
3147/2: 262 026 127 J1C1NZ;
3147/5: 041 ZERO;
3150/0: 001|052|200 360 000 5; VR; ERASE; EXIT1;
3150/5: 304 020 054|200 266 337 4; SET4140; JP7; [Fail - no Level Parameters
3151/5: 052|052|200 266 147 7; ERASE; ERASE; J6; [inserted to skip LP search failure - invalid entry in Call matrix? hux
=== Start P881V-1; at address 1643/3153
3153/0: 204 326 242|200 326 325|200 326 237|200 326 322 P881; JS1P2; JS1P6; JSP2; JSP6;
3155/0: 200 326 237|042|304 000 374|054|304 000 120 1; JSP2; DUP; SETB374; AND; SETB120;
3156/5: 015|205 146 165 NEV; J3≠Z;
3157/3: 200 326 343|204 266 170 JSP3 ; J4;
3160/3: 320 333 055|167 377|205 046 165 Z50M13; SHC-1; J3≥Z;
3161/5: 200 326 322 JSP6;
3162/2: 200 326 237|042|200 326 322 2; JSP2; DUP; JSP6;
3163/3: 304 000 377|054|304 000 334|015|202 146 162 SETB377; AND; SETB334; NEV; J2≠Z;
3165/2: 200 266 155 J1;
3165/5: 304 001 337|054|304 001 234|015|200 146 155 3; SETB737; AND; SETB634; NEV; J1≠Z;
3167/4: 201 326 263|200 360 000 JS3P2; EXIT1;
3170/4: 052|304 004 330|200 266 337 4; ERASE; SET1240; JP7;
=== Start P882V-1; at address 1658/3172
3172/0: 041|170 031|157 022|204 326 242 P882; ZERO; =RC1; Q1TOQ2; JS1P2;
3173/2: 200 326 237|042|304 001 337|054|304 001 214 1; JSP2; DUP; SETB737; AND; SETB614;
3175/1: 015|221 146 224 NEV; J9=Z;
3175/5: 042|304 000 374|054|304 000 120|015 DUP; SETB374; AND; SETB120; NEV;
3177/2: 201 146 205 J3≠Z;
3177/5: 200 326 343|200 266 223|320 333 055|167 377|204 046 211 JSP3; J8; Z50M13; SHC-1; J4≥Z;
3202/1: 052 ERASE;
[ original source of the next page
[ original source of the next page
3202/2: 200 326 237|304 000 377|054|304 000 334|015 2; JSP2; SETB377; AND; SETB334; NEV;
3204/1: 202 146 202 J2≠Z;
3204/4: 202 266 173 J1;
3205/1: 042|304 000 377|054|304 000 334|015 3; DUP; SETB377; AND; SETB334; NEV;
3206/4: 223 146 213 J6=Z;
3207/1: 042|304 001 337|054|304 001 234|015 DUP; SETB737; AND; SETB634; NEV;
3210/4: 223 146 213 J6=Z;
3211/1: 203 266 212 J5;
3211/4: 171 036|303 047 000 4; Q1; =YA0M2Q;
3212/3: 200 326 117|202 266 173 5; JSP889; J1;
3213/3: 200 326 117|141 040|300 047 000|042|170 076 6; JSP889; M-I2; YA0M2; DUP; =Q3;
3215/2: 170 116 =Q4;
3215/4: 302 073 100|200 326 322|171 062|171 022|036 7; Y0M3Q; JSP6; M3; M1; -;
3217/3: 204 146 215 J7≠Z;
3220/0: 171 116|170 036 Q4; =Q1;
3220/4: 171 042|202 146 173 M2; J1≠Z;
3221/3: 201 326 263|200 326 333|200 360 000 JS3P2; JS3P6; EXIT1;
3223/0: 052|304 004 164|200 266 337 8; ERASE; SET1140; JP7;
3224/1: 052|200 326 237|204 266 211 9; ERASE; JSP2; J4;
=== Start P2V8; at address 1695/3237
V-store at 03226 = 011 100 012 077 000 000 P2V8; V0=QAYZ0/AYZ255/0; (BUFFER 1);
V-store at 03227 = 012 100 013 077 000 000 V1=QAYZ256/AYZ511/0; (BUFFER 2);
V-store at 03232 = 242 104 243 304 140 004 V4=B5044224361060004; (F/B/C);
V-store at 03233 = 000 000 000 000 340 004 V5=B160004; (TRANSFER);
V-store at 03234 = 000 000 000 000 110 004 V6=B44004; (CBN);
V-store at 03236 = 000 000 000 000 152 004 V8=B65004; (SKIP TO BLOCK N);
3237/0: 300 006 230 V2; (PETCH NEXT WORD NORMAL ENTRY);
3237/3: 170 376|240 366 252 10; =Q15; J7C15Z;
3240/2: 102 360|171 376 M0M15Q; Q15;
3241/0: 301 006 230|041|301 006 231 14; =V2; ZERO; =V3;
3242/1: 200 360 000 EXIT1; (NORMAL EXIT);
(INITIAL ENTRY FORWARD5 READ);
3242/4: 300 006 227|300 006 232|170 376|171 370 1; V1; V4; =Q15; C15;
3244/2: 300 006 226|170 376|170 362|171 376|200 320 106 6; V0; =Q15; =M15; Q15; JSE70;
3246/2: 201 266 254 J13;
3246/5: 300 006 234|200 320 106 V6; JSE70;
3247/5: 201 266 254 J13;
3250/2: 301 006 235|042|200 146 241|201 266 254 =V7; DUP; J14≠Z; J13;
3252/0: 300 006 233|200 320 106 7; V5; JSE70;
3253/0: 201 266 254 J13;
3253/3: 042|203 146 237 8; DUP; J10≠Z;
3254/1: 304 037 314|200 326 337 13; SET8140; JSP7; (FAILURE);
(INITIAL ENTRY BACKWARDS READ);
3255/1: 300 006 227|300 006 232|170 376|171 364|202 266 244 2; V1; V4; =Q15; I15; J6;
(CLOSE);
3257/2: 204 326 242|320 013 125|164 301|164 041|304 152 004|011|200 320 106|201 266 254
16; JS1; Z10; SHL-32; SHL+16; SETB65004; OR; JSE70; J13;
3262/4: 200 266 252 J7;
3263/1: 300 006 232|200 320 106 3; V4; JSE70;
3264/1: 201 266 254 J13;
3264/4: 200 360 000 EXIT1;
3265/1: 300 006 227|304 242 204|202 266 244 15; V1; SETB121204; J6;
(INITIAL ENTRY FOR PETCH PREVIOUS WORD);
3266/4: 300 006 230|170 376|171 364|027|170 364|140 360|140 360 4; V2; =Q15; I15;NEG; =I15; M+I15; M+I15;
3271/0: 202 266 272 J9;
(NORMAL ENTRY FOR FETCH PREVIOUS WORD);
3271/3: 300 006 231|170 376 5; V3; =Q15;
3272/2: 102 360|171 376|301 006 231|200 360 000 9; M0M15Q; Q15; =V3; EXIT1;
(WHAT IS CURRANT POSITION);
3274/0: 300 006 234|200 320 106 11; V6; JSE70;
3275/0: 201 266 254 J13;
3275/3: 300 006 235|036|304 000 377|042|300 006 230 V7; -; SETB377; DUP; V2;
[ original source of the next page
3277/2: 054|012|054|164 021|011 AND; PERM; AND; SHL+8; OR;
3300/2: 200 360 000 EXIT1;
(SKIP TO GIVEN BLOCK);
3300/5: 042|164 361|300 006 235|056|300 006 236 12; DUP; SHL-8; V7; +; V8;
3302/3: 170 376|170 364|171 376|200 320 106 =Q15; =I15; Q15; JSE70;
3304/0: 201 266 254 J13;
3304/3: 167 361|164 361|167 021|300 006 233|200 320 106 SHC-8; SHL-8; SHC+8; V5; JSE70;
3306/3: 201 266 254 J13;
3307/0: 170 376|042|171 362|036|027 =Q15; DUP; M15; -; NEG;
3310/1: 172 370|170 362|171 376|301 006 230|200 360 000 =+C15; =M15; Q15; =V2; EXIT1;
=== Start P6V6; at address 1746/3322
V-store at 03313 = 007 100 010 077 242 105 P6V6; V0=QAYY0/AYY255/B121105;
V-store at 03314 = 010 100 011 077 000 000 V1=QAYY256/AYY511/0;
V-store at 03315 = 000 000 000 000 000 000 V2=0;
V-store at 03316 = 000 000 000 000 340 005 V3=B160005;
V-store at 03317 = 000 000 000 000 140 105 V4=B60105;
V-store at 03320 = 000 000 175 004 072 321 V5=B17501035321;
3322/0: 300 006 315 V2;
3322/3: 170 376|103 360|243 366 327 2; =Q15;=M0M15Q; J4C15Z;
3323/4: 171 376 Q15;
3324/0: 301 006 315|200 360 000 7; =V2; EXIT1;
3325/0: 300 006 314|300 006 313 1; V1; V0;
3326/0: 200 320 106|200 266 332|200 266 324 JSE70; J6; J7;
3327/3: 300 006 316|200 320 106|200 266 332|301 006 315 4; V3; JSE70; J6; =V2;
3331/3: 200 360 000 EXIT1;
3332/0: 304 040 060|200 326 337 6; SET8240; JSP7;
3333/0: 300 006 315|170 365|300 006 317|170 362 3; V2; =RI15; V4; =M15;
3334/4: 171 376|200 320 106|200 266 332|200 360 000 Q15; JSE70; J6; EXIT1;
=== Start P7V-1; at address 1759/3337
3337/0: 170 365 P7; =RI15;
3337/2: 304 000 200|170 362 SETB200; =M15;
3340/1: 320 013 070|041|033|047|015|011|321 013 070 Z39; ZERO; NOT; STR; NEV; OR; =Z39;
3342/0: 171 376|200 260 106 Q15; JE70;
=== Start P3V-1; at address 1763/3343
P3; (SEARCH LEVEL PARAMETERS FOR A LEVEL L);
3343/0: 041|170 323|304 000 377|167 361|065 ZERO; =RM13; SETB377; SHC-8; REV;
3344/3: 320 333 055|170 336|171 324|042|170 322 1; Z50M13; =Q13; I13; DUP; =M13;
3346/1: 203 146 347 J2≠Z;
3346/4: 065|052|200 360 000 REV; ERASE; (NONE EXIST N1=L); EXIT1;
3347/3: 043|320 333 053|015|054|203 146 344 2; DUPD; Z52M13; NEV; AND; J1≠Z;
3351/0: 065|052|202 360 001 REV; ERASE; (N1=L: M13=ALP OF L); EXIT2;
=== Start P-1V-1; at address 1770/3352
Finished
FINISH;
Reached end of file