| Line | Address | Object Code
| Label | F1 | N1 | B | F2 | N2 | Comments | Check
|
|---|
| 1 | 0 | | ; tape1.d/advance.t2 |
|
| 2 | 0 | | ;------------------- |
|
| 3 | 0 | | ; |
|
| 4 | 0 | | advance:: | ; | |
|
| 5 | 0 | | ; |
|
| 6 | 0 | | ; process identifer, constant for expressions etc. |
|
| 7 | 0 | | ; advance2, is alternate entry bypassing initial gettoken call |
|
| 8 | 0 | | ; for identifier - lookup in dic and report non-declaration |
|
| 9 | 0 | | ; for FP constants - convert constituents into FP num and store |
|
| 10 | 0 | | ; in constant list |
|
| 11 | 0 | | ; also handles %1 construct, location refs |
|
| 12 | 0 | | ; |
|
| 13 | 0 | | =2371 | |
|
| 14 | 2371 | | .ent: | ; | |
|
| 15 | 2371 | | | call | | | | | ; | @2371
|
| 15+1 | 2371 | 7305105001222 | | lnk | gettoken.lnk | : | jmp | gettoken.ent | |
|
| 16 | 2372 | | advance2.ent: | ; | |
|
| 17 | 2372 | 0600600 | | lod | token | | | | ;token (symbol identity) | @2372
|
| 18 | 2372+ | 1124513 | | jn | .const | | | | ;constant |
|
| 19 | 2373 | 1044512 | | jz | .ident | | | | ;identifier |
|
| 20 | 2373+ | 0124312 | | sub | K20 | | | | ;=20 |
|
| 21 | 2374 | 1044541 | | jz | .true | | | | ; symbol=TRUE | @2374
|
| 22 | 2374+ | 0124313 | | sub | K1b | | | | ;=1 |
|
| 23 | 2375 | 1144541 | | jz | .false | | | | ; symbol=FALSE |
|
| 24 | 2375+ | 0124314 | | sub | K32a | | | | ;=32 |
|
| 25 | 2376 | 1044544 | | jz | .location | | | | ; symbol=LOCATION | @2376
|
| 26 | 2376+ | | ; |
|
| 27 | 2376+ | | ; identifiers come here after calling lookupid |
|
| 28 | 2376+ | | _err20: | ; | |
|
| 29 | 2376+ | 1661044 | | lnk | errlnk | | | | ;error 20: identifier not declared |
|
| 30 | 2377 | 1044772 | | jz | error2 | | | | ;error, id not found in dict |
|
| 31 | 2377+ | 1104615 | | jmp | .idOK | | | | ; -->>OK, identifier declared |
|
| 32 | 2378 | | ; |
|
| 33 | 2378 | | =2445+ | |
|
| 34 | 2445+ | | .idOK: | ; | |
|
| 35 | 2445+ | 0124313 | | sub | K1b | | | | ;=1 |
|
| 36 | 2446 | | | jnz | | | | | ; |
|
| 36+1 | 2446 | 1044617 | | jz | .1 | | | | |
|
| 36+2 | 2446+ | 1004540 | | jmp | advance.ret | | | | |
|
| 36+3 | 2447 | | .1: | ; | |
|
| 37 | 2447 | | | call | | | | | ; | @2447
|
| 37+1 | 2447 | 7305105001222 | | lnk | gettoken.lnk | : | jmp | gettoken.ent | |
|
| 38 | 2448 | 0040000 | | o02 | 0 | | | | ; | @2448
|
| 39 | 2448+ | 0120576 | | sub | ident | | | | ; |
|
| 40 | 2449 | 1044623 | | jz | .doPC | | | | ;process %1 construct |
|
| 41 | 2449+ | | _err54: | ; | |
|
| 42 | 2449+ | 1661044 | | lnk | errlnk | | | | ;error 54 % not followed by 1 or |
|
| 43 | 2450 | | | ;occurrence of # within inner string | |
|
| 44 | 2450 | 1001070 | | jmp | Error | | | | ;call error routine | @2450
|
| 45 | 2450+ | | | pad | | | | | ; |
|
| 45+1 | 2450+ | 0000000 | | 00 | 0 | | | | |
|
| 46 | 2451 | | =2378 | |
|
| 47 | 2378 | | .ident: | ; | |
|
| 48 | 2378 | | | call | | | | | ;lookup identifier | @2378
|
| 48+1 | 2378 | 7316111003423 | | lnk | lookupid.lnk | : | jmp | lookupid.ent | |
|
| 49 | 2379 | 1104510 | | jmp | _err20 | | | | ;not declared |
|
| 50 | 2379+ | | ; |
|
| 51 | 2379+ | 0040600 | .const: | o02 | token | | | | ;token+1 |
|
| 52 | 2380 | 1124624 | | jn | .icon | | | | ;integer/boolean | @2380
|
| 53 | 2380+ | | | pad | | | | | ; |
|
| 53+1 | 2380+ | 0000000 | | 00 | 0 | | | | |
|
| 54 | 2381 | 0604315 | | lod | procbit1 | | | | ; |
|
| 55 | 2381+ | 0200576 | | exa | ident | | | | ;get packed value |
|
| 56 | 2382 | 1540000 | | flt | 4096 | | | | ;convert to floating point | @2382
|
| 57 | 2382+ | 0200577 | | exa | decscale | | | | ;exchange with decscale |
|
| 58 | 2383 | 0424305 | | stn | W2245 | | | | ;store decimal scale |
|
| 59 | 2383+ | 1124520 | | jn | .conneg | | | | ; |
|
| 60 | 2384 | 0020000 | | neg | 0 | | | | ; | @2384
|
| 61 | 2384+ | | .conneg: | ; | |
|
| 62 | 2384+ | 1010534 | | jmp | .con1 | | | | ; |
|
| 63 | 2385 | | ; |
|
| 64 | 2385 | | =4444 | |
|
| 65 | 4444 | | .con1: | ; | |
|
| 66 | 4444 | 0110554 | | add | K76 | | | | ;=76 | @4444
|
| 67 | 4444+ | 1130536 | | jn | .con2 | | | | ;scale > 76 |
|
| 68 | 4445 | 0130554 | | sub | K76 | | | | ;=76 |
|
| 69 | 4445+ | 0124313 | | sub | K1b | | | | ;=1 |
|
| 70 | 4446 | 1004521 | | jmp | .con5 | | | | ; | @4446
|
| 71 | 4446+ | | ; |
|
| 72 | 4446+ | | .con2: | ; | |
|
| 73 | 4446+ | 0204305 | | exa | W2245 | | | | ; |
|
| 74 | 4447 | 1030542 | | jn | .con2a | | | | ; |
|
| 75 | 4447+ | 0610557 | | lod | K1EN78 | | | | ; |
|
| 76 | 4448 | 1460577 | | fmu | decscale | | | | ; | @4448
|
| 77 | 4448+ | 0400577 | | sto | decscale | | | | ; |
|
| 78 | 4449 | 0624305 | | lcs | W2245 | | | | ; |
|
| 79 | 4449+ | 1010534 | | jmp | .con1 | | | | ; |
|
| 80 | 4450 | | ; |
|
| 81 | 4450 | | .con2a: | ; | |
|
| 82 | 4450 | 0602177 | | lod | MaxInt | | | | ;also = MaxReal | @4450
|
| 83 | 4450+ | 1004532 | | jmp | .storeconst | | | | ; |
|
| 84 | 4451 | | ; |
|
| 85 | 4451 | | .con3: | ; | |
|
| 86 | 4451 | 0604306 | | lod | W2246 | | | | ; |
|
| 87 | 4451+ | 0070555 | | and | W4461 | | | | ; |
|
| 88 | 4452 | 0340004 | | stc | 4 | | | | ; | @4452
|
| 89 | 4452+ | 0600577 | | lod | decscale | | | | ; |
|
| 90 | 4453 | 0070555 | | and | W4461 | | | | ; |
|
| 91 | 4453+ | 0100004 | | add | 4 | | | | ; |
|
| 92 | 4454 | 0170556 | | bus | W4462 | | | | ; | @4454
|
| 93 | 4454+ | | .con4: | ; | |
|
| 94 | 4454+ | 1030542 | | jn | .con2a | | | | ; |
|
| 95 | 4455 | | | jnz | | | | | ; |
|
| 95+1 | 4455 | 1050550 | | jz | .1 | | | | |
|
| 95+2 | 4455+ | 1004536 | | jmp | advance.con8 | | | | |
|
| 95+3 | 4456 | | .1: | ; | |
|
| 96 | 4456 | 0604306 | | lod | W2246 | | | | ; | @4456
|
| 97 | 4456+ | 0520004 | | sbs | 4 | | | | ; |
|
| 98 | 4457 | 0600577 | | lod | decscale | | | | ; |
|
| 99 | 4457+ | 0070555 | | and | W4461 | | | | ; |
|
| 100 | 4458 | 0160577 | | bus | decscale | | | | ; | @4458
|
| 101 | 4458+ | 1260004 | | mur | 4 | | | | ; |
|
| 102 | 4459 | 1320001 | | sll | 1 | | | | ; |
|
| 103 | 4459+ | 1110546 | | jmp | .con4 | | | | ; |
|
| 104 | 4460 | | =2385 | |
|
| 105 | 2385 | | ; |
|
| 106 | 2385 | | .con5: | ; | |
|
| 107 | 2385 | 1320040 | | sll | 32 | | | | ; | @2385
|
| 108 | 2385+ | 0344307 | | stc | W2247 | | | | ; |
|
| 109 | 2386 | 0604316 | | lod | K1.0 | | | | ;=1.0 | @2386
|
| 110 | 2386+ | 0344306 | | stc | W2246 | | | | ; |
|
| 111 | 2387 | 0124364 | | sub | K7b | | | | ;=7 |
|
| 112 | 2387+ | | .con6: | ; | |
|
| 113 | 2387+ | 0204307 | | exa | W2247 | | | | ; |
|
| 114 | 2388 | 1124526 | | jn | .con7 | | | | ; | @2388
|
| 115 | 2388+ | 0204306 | | exa | W2246 | | | | ; |
|
| 116 | 2389 | 0021437464402 | | o00 | W2247 | / | fmu | W2299+7 | ; |
|
| 117 | 2390 | 0204306 | | exa | W2246 | | | | ; | @2390
|
| 118 | 2390+ | | .con7: | ; | |
|
| 119 | 2390+ | 1320001 | | sll | 1 | | | | ; |
|
| 120 | 2391 | 0244307 | | exc | W2247 | | | | ; |
|
| 121 | 2391+ | 1124523 | | jn | .con6 | | | | ; |
|
| 122 | 2392 | 0604305 | | lod | W2245 | | | | ; | @2392
|
| 123 | 2392+ | 1030543 | | jn | .con3 | | | | ; |
|
| 124 | 2393 | 0600577 | | lod | decscale | | | | ; |
|
| 125 | 2393+ | 1504306 | | fdv | W2246 | | | | ; |
|
| 126 | 2394 | | .storeconst: | ; | |
|
| 127 | 2394 | 0021422340000 | | o00 | constptr | / | stc | 0 | ;store constant in list | @2394
|
| 128 | 2395 | 0040000 | | o02 | 0 | | | | ;=1 |
|
| 129 | 2395+ | 0764304 | | o37 | constptr | | | | ;decrement pointer, original in Acc |
|
| 130 | 2396 | 0100576 | | add | ident | | | | ;add type info, saved in ident | @2396
|
| 131 | 2396+ | 0343427 | | stc | idptr | | | | ;store info for reference |
|
| 132 | 2397 | 0104502 | | add | advance.lnk | | | | ;load return address |
|
| 133 | 2397+ | 1105013 | | jmp | StkCheck | | | | ;and check we haven't wrapped |
|
| 134 | 2398 | | ; |
|
| 135 | 2398 | | .con8: | ; | |
|
| 136 | 2398 | 0600577 | | lod | decscale | | | | ; | @2398
|
| 137 | 2398+ | 1464306 | | fmu | W2246 | | | | ; |
|
| 138 | 2399 | 1004532 | | jmp | .storeconst | | | | ; |
|
| 139 | 2399+ | | ; |
|
| 140 | 2399+ | | | pad | | | | | ; |
|
| 140+1 | 2399+ | 0000000 | | 00 | 0 | | | | |
|
| 141 | 2400 | | ; |
|
| 142 | 2400 | | .ret: | ; | |
|
| 143 | 2400 | | | ret | | | | | ; | @2400
|
| 143+1 | 2400 | 0022413000001 | | o00 | advance.lnk | / | jmp | 1 | |
|
| 144 | 2401 | | ; |
|
| 145 | 2401 | | ; TRUE/FALSE comes here |
|
| 146 | 2401 | | ; |
|
| 147 | 2401 | | .true: | ; true | |
|
| 148 | 2401 | 0604321 | | lod | False | | | | ;=04000000000000 (true) |
|
| 149 | 2401+ | | .false: | ; false (acc was 0) | |
|
| 150 | 2401+ | 0400576 | | sto | ident | | | | ;store value |
|
| 151 | 2402 | 0604322 | | lod | TBool | | | | ;=00100000000000 (boolean) | @2402
|
| 152 | 2402+ | 1004625 | | jmp | .bcon | | | | ; |
|
| 153 | 2403 | | ; |
|
| 154 | 2403 | 0000000000000 | | +0 | ;unreferenced | @2403
|
| 155 | 2404 | | ; |
|
| 156 | 2404 | | .location: | ; | |
|
| 157 | 2404 | | | call | | | | | ; |
|
| 157+1 | 2404 | 7305105001222 | | lnk | gettoken.lnk | : | jmp | gettoken.ent | |
|
| 158 | 2405 | 0600600 | | lod | token | | | | ; |
|
| 159 | 2405+ | 0124323 | | sub | K47 | | | | ;=47 [(] |
|
| 160 | 2406 | 1044550 | | jz | .loc1 | | | | ; | @2406
|
| 161 | 2406+ | | .locerr: | ; | |
|
| 162 | 2406+ | 0604340 | | lod | K2b | | | | ;=2 |
|
| 163 | 2407 | 1661044 | _err21: | lnk | errlnk | | | | ;error 21: location not followed by integer id |
|
| 164 | 2407+ | 1001070 | | jmp | Error | | | | ;call error rtne |
|
| 165 | 2408 | | ; |
|
| 166 | 2408 | | .loc1: | ; | |
|
| 167 | 2408 | | | call | | | | | ;get identifier | @2408
|
| 167+1 | 2408 | 7305105001222 | | lnk | gettoken.lnk | : | jmp | gettoken.ent | |
|
| 168 | 2409 | 0600600 | | lod | token | | | | ;check token |
|
| 169 | 2409+ | 1044553 | | jz | .loc2 | | | | ;is identifer, OK |
|
| 170 | 2410 | 0604340 | | lod | K2b | | | | ;=2 | @2410
|
| 171 | 2410+ | 1004547 | | jmp | _err21 | | | | ;report error |
|
| 172 | 2411 | | ; |
|
| 173 | 2411 | | .loc2: | ; | |
|
| 174 | 2411 | | | call | | | | | ;lookup identifier |
|
| 174+1 | 2411 | 7316111003423 | | lnk | lookupid.lnk | : | jmp | lookupid.ent | |
|
| 175 | 2412 | 1144510 | | jz | _err20 | | | | ;not declared | @2412
|
| 176 | 2412+ | 0603427 | | lod | idptr | | | | ; |
|
| 177 | 2413 | 0064324 | | and | T_Mask | | | | ;=00700000000000 |
|
| 178 | 2413+ | 0124320 | | sub | IntBit | | | | ;=00200000000000 type=integer |
|
| 179 | 2414 | | | jnz | | | | | ; |
|
| 179+1 | 2414 | 1044557 | | jz | .1 | | | | |
|
| 179+2 | 2414+ | 1104546 | | jmp | advance.locerr | | | | |
|
| 179+3 | 2415 | | .1: | ; | |
|
| 180 | 2415 | 0603427 | | lod | idptr | | | | ; |
|
| 181 | 2415+ | 0064325 | | and | W2261 | | | | ;=00001776017777 |
|
| 182 | 2416 | 0104326 | | add | W2262 | | | | ;=04300001000000 | @2416
|
| 183 | 2416+ | 0403427 | | sto | idptr | | | | ; |
|
| 184 | 2417 | | | call | | | | | ;get closing paren |
|
| 184+1 | 2417 | 7305105001222 | | lnk | gettoken.lnk | : | jmp | gettoken.ent | |
|
| 185 | 2418 | 0740600 | | lzs | token | | | | ;make sure it is | @2418
|
| 186 | 2418+ | 0124327 | | sub | K48 | | | | ;=48 [)] |
|
| 187 | 2419 | 1044540 | | jz | .ret | | | | ;OK |
|
| 188 | 2419+ | 1104546 | | jmp | .locerr | | | | ;shout if not |
|
| 189 | 2420 | | ; |
|
| 190 | 2420 | | =2451 | |
|
| 191 | 2451 | | ; |
|
| 192 | 2451 | | .doPC: | ; | |
|
| 193 | 2451 | | | call | | | | | ; |
|
| 193+1 | 2451 | 7312031002420 | | lnk | skipcomment.lnk | : | jmp | skipcomment.ent | |
|
| 194 | 2452 | 1004503 | | jmp | advance.ent | | | | ;and try again | @2452
|
| 195 | 2452+ | | ; |
|
| 196 | 2452+ | | .icon: | ; | |
|
| 197 | 2452+ | 0604320 | | lod | IntBit | | | | ;=00200000000000 (int type bits) |
|
| 198 | 2453 | | .bcon: | ; | |
|
| 199 | 2453 | 0200576 | | exa | ident | | | | ;get const value, save type |
|
| 200 | 2453+ | 1004532 | | jmp | .storeconst | | | | ; |
|