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. Not all the pages have yet been converted.

Loaded 4955 bytes for DavidHu/KAB40.txt
Relocated 17
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
 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;

                                                                       [ diagnostic routine
=== Start P310V-1; at address 1770/3352
                                                                       P310; (print call matrix stores);
 3352/0: 171 376|304 000 070|164 041                                         Q15; SETB70; (X); SHL+16; (start of print at H0);
 3353/1: 304 052 075|164 041|304 054 000|011|164 041|304 000 106|200 220 000|170 376
                                                                             SETB25075; SHL+16; SETb26000; OR; SHL+16; SET70; OUT; =Q15;
 3356/2: 200 360 000                                                      EXIT1;

=== Start P-1V-1; at address 1775/3357
Finished
                                                                       FINISH;

















Reached end of file