| Line | Address | Object Code | Label | F1 | N1 | B | F2 | N2 | Comments | Check | 
|---|
| 1 | 0 |  | ; tape1.d/string.t2 |  | 
| 2 | 0 |  | ;------------------ |  | 
| 3 | 0 |  | ; |  | 
| 4 | 0 |  | ; PackStrChar, add 6-bit character to packed string |  | 
| 5 | 0 |  | ;  character supplied in Acc, current word in W3231, |  | 
| 6 | 0 |  | ;   character in word count in W3234 |  | 
| 7 | 0 |  | ; |  | 
| 8 | 0 |  | =3564 |  |  | 
| 9 | 3564 |  | PkStrChar:: | ; |  |  | 
| 10 | 3564 |  | ; |  | 
| 11 | 3564 |  | .ent: | ; |  |  | 
| 12 | 3564 | 0206237 |  | exa | W3231 |  |  |  | ;swap with current word | @3564 | 
| 13 | 3564+ | 1320006 |  | sll | 6 |  |  |  | ;shift word left |  | 
| 14 | 3565 | 0506237 |  | ads | W3231 |  |  |  | ;and add to character |  | 
| 15 | 3565+ | 0646242 |  | lis | W3234 |  |  |  | ;check count |  | 
| 16 | 3566 | 1026763 |  | jn | .3571 |  |  |  | ; | @3566 | 
| 17 | 3566+ | 0446241 |  | inc | W3233 |  |  |  | ;increment word count |  | 
| 18 | 3567 | 0601443 |  | lod | K5a |  |  |  | ;=5 |  | 
| 19 | 3567+ | 0426242 |  | stn | W3234 |  |  |  | ;set char count back to -5 |  | 
| 20 | 3568 | 0746237 |  | lzs | W3231 |  |  |  | ;load and clear current word | @3568 | 
| 21 | 3568+ | 0206240 |  | exa | Pinfo |  |  |  | ;swap with previous word |  | 
| 22 | 3569 | 1046763 |  | jz | .3571 |  |  |  | ;prev word zero, only 1 word |  | 
| 23 | 3569+ |  |  | nop |  |  |  |  | ; |  | 
| 23+1 | 3569+ | 1006762 |  | jmp | .1 |  |  |  |  |  | 
| 23+2 | 3570 |  | .1: | ; |  |  | 
| 24 | 3570 |  |  | call |  |  |  |  | ;write full word to O-code | @3570 | 
| 24+1 | 3570 | 7306371101532 |  | lnk | putFwd.lnk | : | jmp | putFwd.ent |  |  | 
| 25 | 3571 |  | .3571: | ; |  |  | 
| 26 | 3571 |  |  | ret |  |  |  |  | ; |  | 
| 26+1 | 3571 | 0031223000001 |  | o00 | PkStrChar.lnk | / | jmp | 1 |  |  | 
| 27 | 3572 |  | ;-------------------------------------------------------------------- |  | 
| 28 | 3572 |  | ; compile code to load a string address |  | 
| 29 | 3572 |  | ; |  | 
| 30 | 3572 |  | CompStrPtr:: | ; |  |  | 
| 31 | 3572 |  | ; |  | 
| 32 | 3572 |  | .ent: | ; |  |  | 
| 33 | 3572 | 0000000 |  | o00 | 0 |  |  |  | ; | @3572 | 
| 34 | 3572+ | 0042220 |  | o02 | W1168 |  |  |  | ; |  | 
| 35 | 3573 |  |  | call |  |  |  |  | ; |  | 
| 35+1 | 3573 | 7307175001640 |  | lnk | GenInst.lnk | : | jmp | GenInst.ent |  |  | 
| 36 | 3574 | 0546243 |  | cls | W3235 |  |  |  | ; | @3574 | 
| 37 | 3574+ | 0546241 |  | cls | W3233 |  |  |  | ;clear word count |  | 
| 38 | 3575 | 0546240 |  | cls | Pinfo |  |  |  | ;clear previous word |  | 
| 39 | 3575+ | 0546237 |  | cls | W3231 |  |  |  | ;clear current packed word |  | 
| 40 | 3576 | 0601443 |  | lod | K5a |  |  |  | ;=5 | @3576 | 
| 41 | 3576+ | 0426242 |  | stn | W3234 |  |  |  | ;set char in word count = -5 |  | 
| 42 | 3577 |  | W3577: | ; |  |  | 
| 43 | 3577 |  | .3577: | call |  |  |  |  | ; $ special (within string) |  | 
| 43+1 | 3577 | 7303015000604 |  | lnk | getchar.lnk | : | jmp | getchar.ent |  |  | 
| 44 | 3578 | 1006775 |  | jmp | .3581 |  |  |  | ; | @3578 | 
| 45 | 3578+ | 1106777 |  | jmp | .3583P |  |  |  | ;check for end of string |  | 
| 46 | 3579 | 1006775 |  | jmp | .3581 |  |  |  | ; |  | 
| 47 | 3579+ | 1006775 |  | jmp | .3581 |  |  |  | ; |  | 
| 48 | 3580 | 1107004 |  | jmp | .3588P |  |  |  | ;check for nested string | @3580 | 
| 49 | 3580+ | 1006775 |  | jmp | .3581 |  |  |  | ; |  | 
| 50 | 3581 |  | ; |  | 
| 51 | 3581 | 0600575 | .3581: | lod | ipshift |  |  |  | ;normal char, convert to 6-bit |  | 
| 52 | 3581+ | 0100574 |  | add | currchar |  |  |  | ; |  | 
| 53 | 3582 |  | .3582: | ; |  |  | 
| 54 | 3582 |  |  | call |  |  |  |  | ;add to string constant |  | 
| 54+1 | 3582 | 7331221006754 |  | lnk | PkStrChar.lnk | : | jmp | PkStrChar.ent |  |  | 
| 55 | 3583 | 1006771 |  | jmp | W3577 |  |  |  | ;and loop back for more |  | 
| 56 | 3583+ |  | ; |  | 
| 57 | 3583+ | 0600574 | .3583P: | lod | currchar |  |  |  | ;punctuation, check for pound/query |  | 
| 58 | 3584 | 0100575 |  | add | ipshift |  |  |  | ; | @3584 | 
| 59 | 3584+ | 0124312 |  | sub | K20 |  |  |  | ;=20 '?' |  | 
| 60 | 3585 | 1047002 |  | jz | .3586 |  |  |  | ;yes, maybe end of string |  | 
| 61 | 3585+ | 1006775 |  | jmp | .3581 |  |  |  | ;no, treat as ordinary chars |  | 
| 62 | 3586 |  | ; |  | 
| 63 | 3586 |  | ; close quote (?) found, check if nested |  | 
| 64 | 3586 |  | ; |  | 
| 65 | 3586 | 0040000 | .3586: | o02 | 0 |  |  |  | ;=1, test for nesting | @3586 | 
| 66 | 3586+ | 0766243 |  | o37 | W3235 |  |  |  | ;decrement count |  | 
| 67 | 3587 | 1147010 |  | jz | .3592P |  |  |  | ;zero, end of string |  | 
| 68 | 3587+ | 0042227 |  | o02 | K26 |  |  |  | ;=26, +1=>27 |  | 
| 69 | 3588 | 1006776 |  | jmp | .3582 |  |  |  | ;add to string | @3588 | 
| 70 | 3588+ |  | ; |  | 
| 71 | 3588+ |  | ; punct2 character, includes pound sign |  | 
| 72 | 3588+ |  | ; |  | 
| 73 | 3588+ | 0600574 | .3588P: | lod | currchar |  |  |  | ;other punct, check for pound |  | 
| 74 | 3589 | 0100575 |  | add | ipshift |  |  |  | ;convert to 6-bit |  | 
| 75 | 3589+ | 0122227 |  | sub | K26 |  |  |  | ;=26 'pound-sign' |  | 
| 76 | 3590 | 1047007 |  | jz | .3591 |  |  |  | ;yes, nested chars | @3590 | 
| 77 | 3590+ | 1006775 |  | jmp | .3581 |  |  |  | ;no, treat as ordinary |  | 
| 78 | 3591 |  | ; |  | 
| 79 | 3591 |  | ; nested open quote (pound) found |  | 
| 80 | 3591 | 0646243 | .3591: | lis | W3235 |  |  |  | ;increment nest count |  | 
| 81 | 3591+ | 1050565 |  | jz | .4469 |  |  |  | ;yes, goto patch |  | 
| 82 | 3592 | 1104621 |  | jmp | _err54 |  |  |  | ;pound not allowed in nested string | @3592 | 
| 83 | 3592+ |  | ; |  | 
| 84 | 3592+ |  | =4469 |  |  | 
| 85 | 4469 |  | .4469: | ; patch moved in-line |  |  | 
| 86 | 4469 | 0601460 |  | lod | K63 |  |  |  | ;=63, special marker for nesting |  | 
| 87 | 4469+ | 1006776 |  | jmp | .3582 |  |  |  | ;store shift marker |  | 
| 88 | 4470 |  | ; |  | 
| 89 | 4470 |  | ; end of string, |  | 
| 90 | 4470 |  | =3592+ |  |  | 
| 91 | 3592+ | 0540574 | .3592P: | cls | currchar |  |  |  | ;discard closing quote |  | 
| 92 | 3593 | 0606242 |  | lod | W3234 |  |  |  | ;char count |  | 
| 93 | 3593+ | 0101443 |  | add | K5a |  |  |  | ;=5 |  | 
| 94 | 3594 | 1147020 |  | jz | .3600P |  |  |  | ;-> no chars in current word | @3594 | 
| 95 | 3594+ | 0606240 |  | lod | Pinfo |  |  |  | ;previous word |  | 
| 96 | 3595 | 1047015 |  | jz | .3597 |  |  |  | ;only one word |  | 
| 97 | 3595+ |  |  | nop |  |  |  |  | ; |  | 
| 97+1 | 3595+ | 1007014 |  | jmp | .1 |  |  |  |  |  | 
| 97+2 | 3596 |  | .1: | ; |  |  | 
| 98 | 3596 |  |  | call |  |  |  |  | ;output final word | @3596 | 
| 98+1 | 3596 | 7306371101532 |  | lnk | putFwd.lnk | : | jmp | putFwd.ent |  |  | 
| 99 | 3597 | 0040000 | .3597: | o02 | 0 |  |  |  | ;=1 |  | 
| 100 | 3597+ | 0126242 |  | sub | W3234 |  |  |  | ;get number of chars to pad |  | 
| 101 | 3598 | 1242226 |  | mul | K6 |  |  |  | ;=6 get number of bits | @3598 | 
| 102 | 3598+ | 1360000 |  | ara | 0 |  |  |  | ; |  | 
| 103 | 3599 | 1031177320000 |  | exa | W3231 | / | sll | 0 | ;shift current word to pad |  | 
| 104 | 3600 | 1007022 |  | jmp | .3602 |  |  |  | ; | @3600 | 
| 105 | 3600+ |  | ; |  | 
| 106 | 3600+ | 0606240 | .3600P: | lod | Pinfo |  |  |  | ;any previous word? |  | 
| 107 | 3601 | 1047022 |  | jz | .3602 |  |  |  | ;no, null string |  | 
| 108 | 3601+ | 1107022 |  | jmp | .3602P |  |  |  | ;yes, write that instead |  | 
| 109 | 3602 |  | ; |  | 
| 110 | 3602 |  | .3602: | ; |  |  | 
| 111 | 3602 | 0446241 |  | inc | W3233 |  |  |  | ;bump word count | @3602 | 
| 112 | 3602+ |  | .3602P: | ; |  |  | 
| 113 | 3602+ | 0102175 |  | add | bit39 |  |  |  | ;add terminating flag |  | 
| 114 | 3603 |  |  | call |  |  |  |  | ;output final word |  | 
| 114+1 | 3603 | 7306371101532 |  | lnk | putFwd.lnk | : | jmp | putFwd.ent |  |  | 
| 115 | 3604 | 0606241 |  | lod | W3233 |  |  |  | ;get word count | @3604 | 
| 116 | 3604+ | 0401414 |  | sto | PCdata |  |  |  | ;save word count |  | 
| 117 | 3605 | 0602200 |  | lod | K8a |  |  |  | ;=8, number of bits |  | 
| 118 | 3605+ |  |  | nop |  |  |  |  | ; |  | 
| 118+1 | 3605+ | 1007026 |  | jmp | .1 |  |  |  |  |  | 
| 118+2 | 3606 |  | .1: | ; |  |  | 
| 119 | 3606 |  |  | call |  |  |  |  | ;put word count | @3606 | 
| 119+1 | 3606 | 7306371001477 |  | lnk | putcode.lnk | : | jmp | putcode.ent |  |  | 
| 120 | 3607 | 0602231 |  | lod | K11 |  |  |  | ;=11, block data o-code key |  | 
| 121 | 3607+ |  |  | nop |  |  |  |  | ; |  | 
| 121+1 | 3607+ | 1007030 |  | jmp | .1 |  |  |  |  |  | 
| 121+2 | 3608 |  | .1: | ; |  |  | 
| 122 | 3608 |  |  | call |  |  |  |  | ;write o-code key | @3608 | 
| 122+1 | 3608 | 7306371001526 |  | lnk | putOpcd.lnk | : | jmp | putOpcd.ent |  |  | 
| 123 | 3609 |  |  | ret |  |  |  |  | ; |  | 
| 123+1 | 3609 | 0031157000001 |  | o00 | CompStrPtr.lnk | / | jmp | 1 |  |  | 
| 124 | 3610 |  | ;-------------------------------------------------------------------- |  |