| Line | Address | Object Code | Label | F1 | N1 | B | F2 | N2 | Comments | Check | 
|---|
| 1 | 0 |  | ; tape2/print.t2 |  | 
| 2 | 0 |  | ;--------------- |  | 
| 3 | 0 |  | ; |  | 
| 4 | 0 |  | Print:: | ; |  |  | 
| 5 | 0 |  | ; |  | 
| 6 | 0 |  | ; local variables: overlay on Scratch area. This space is used |  | 
| 7 | 0 |  | ;  by other routines in independent ways |  | 
| 8 | 0 |  | ; |  | 
| 9 | 0 |  | =7241 |  |  | 
| 10 | 7241 |  | .digits1: | ; |  |  | 
| 11 | 7241 | 0000000000000 |  | +0 | ; | @7241 | 
| 12 | 7242 |  | .digits2: | ; |  |  | 
| 13 | 7242 | 0000000000000 |  | +0 | ; | @7242 | 
| 14 | 7243 | 0000000000000 | .wk1: | +0 | ; | @7243 | 
| 15 | 7244 | 0000000000000 | .wk2: | +0 | ; | @7244 | 
| 16 | 7245 | 0000000000000 | .wk3: | +0 | ; | @7245 | 
| 17 | 7246 | 0000000000000 | .wk4: | +0 | ; | @7246 | 
| 18 | 7247 | 0000000000000 | .wk5: | +0 | ; | @7247 | 
| 19 | 7248 | 0000000000000 | .wk6: | +0 | ; | @7248 | 
| 20 | 7249 |  | .powlnk: | ; |  |  | 
| 21 | 7249 | 0000000000000 |  | +0 | ; | @7249 | 
| 22 | 7250 | 0000000000000 |  | +0 | ; | @7250 | 
| 23 | 7251 | 0000000000000 | .wk7: | +0 | ; | @7251 | 
| 24 | 7252 | 0000000000000 | .wk8: | +0 | ; | @7252 | 
| 25 | 7253 | 0000000000000 |  | +0 | ; | @7253 | 
| 26 | 7254 | 0000000000000 |  | +0 | ; | @7254 | 
| 27 | 7255 | 0000000000000 | .wk9: | +0 | ; | @7255 | 
| 28 | 7256 | 0000000000000 | .Pbuff: | +0 | ; | @7256 | 
| 29 | 7257 | 0000000000000 |  | +0 | ; | @7257 | 
| 30 | 7258 | 0000000000000 |  | +0 | ; | @7258 | 
| 31 | 7259 | 0000000000000 |  | +0 | ; | @7259 | 
| 32 | 7260 | 0000000000000 |  | +0 | ; | @7260 | 
| 33 | 7261 | 0000000000000 |  | +0 | ; | @7261 | 
| 34 | 7262 | 0000000000000 |  | +0 | ; | @7262 | 
| 35 | 7263 | 0000000000000 |  | +0 | ; | @7263 | 
| 36 | 7264 | 0000000000000 |  | +0 | ; | @7264 | 
| 37 | 7265 | 0000000000000 |  | +0 | ; | @7265 | 
| 38 | 7266 | 0000000000000 |  | +0 | ; | @7266 | 
| 39 | 7267 | 0000000000000 |  | +0 | ; | @7267 | 
| 40 | 7268 | 0000000000000 |  | +0 | ; | @7268 | 
| 41 | 7269 | 0000000000000 |  | +0 | ; | @7269 | 
| 42 | 7270 | 0000000000000 |  | +0 | ; | @7270 | 
| 43 | 7271 |  | ;-------------------------------------------------------------------- |  | 
| 44 | 7271 |  | ; print a real number (in Acc) |  | 
| 45 | 7271 |  | ; |  | 
| 46 | 7271 |  | =7853 |  |  | 
| 47 | 7853 |  | .real: | ; |  |  | 
| 48 | 7853 | 0556114 |  | cls | .wk2 |  |  |  | ;indicate real | @7853 | 
| 49 | 7853+ | 1117274 |  | jmp | .r0 |  |  |  | ; |  | 
| 50 | 7854 |  | =7868+ |  |  | 
| 51 | 7868+ |  | .r0: | ; |  |  | 
| 52 | 7868+ | 0556124 |  | cls | .wk8 |  |  |  | ; |  | 
| 53 | 7869 | 1157301 |  | jz | .r1 |  |  |  | ;value == 0? | @7869 | 
| 54 | 7869+ | 1117264 |  | jmp | .r3 |  |  |  | ; |  | 
| 55 | 7870 |  | =7873+ |  |  | 
| 56 | 7873+ |  | .r1: | ; |  |  | 
| 57 | 7873+ | 0600074 |  | lod | Rfmt |  |  |  | ; |  | 
| 58 | 7874 | 0076545 |  | and | W7525 |  |  |  | ;=01000000000000 | @7874 | 
| 59 | 7874+ | 1157264 |  | jz | .r3 |  |  |  | ; |  | 
| 60 | 7875 | 0615132 |  | lod | FP0.5 |  |  |  | ; | @7875 | 
| 61 | 7875+ | 0135150 |  | sub | K32a |  |  |  | ;=32 |  | 
| 62 | 7876 | 1117264 |  | jmp | .r3 |  |  |  | ;--> | @7876 | 
| 63 | 7876+ |  | ; |  | 
| 64 | 7876+ |  |  | pad |  |  |  |  | ; |  | 
| 64+1 | 7876+ | 0000000 |  | 00 | 0 |  |  |  |  |  | 
| 65 | 7877 |  | =7860+ |  |  | 
| 66 | 7860+ |  | .r3: | ; |  |  | 
| 67 | 7860+ | 0556115 |  | cls | .wk3 |  |  |  | ; |  | 
| 68 | 7861 | 0556130 |  | cls | .Pbuff |  |  |  | ; | @7861 | 
| 69 | 7861+ | 1137267 |  | jn | .r4 |  |  |  | ; |  | 
| 70 | 7862 | 0456130 |  | inc | .Pbuff |  |  |  | ; | @7862 | 
| 71 | 7862+ | 0456130 |  | inc | .Pbuff |  |  |  | ;indicate '-' sign not needed |  | 
| 72 | 7863 | 1017270 |  | jmp | .r5 |  |  |  | ; | @7863 | 
| 73 | 7863+ |  | ; |  | 
| 74 | 7863+ |  | .r4: | ; |  |  | 
| 75 | 7863+ | 1440000 |  | fna | 0 |  |  |  | ;make number positive |  | 
| 76 | 7864 |  | .r5: | ; |  |  | 
| 77 | 7864 | 0416116 |  | sto | .wk4 |  |  |  | ;save actual number | @7864 | 
| 78 | 7864+ | 0600074 |  | lod | Rfmt |  |  |  | ;get real format info |  | 
| 79 | 7865 | 0416113 |  | sto | .wk1 |  |  |  | ;save it | @7865 | 
| 80 | 7865+ | 1200024 |  | sra | 20 |  |  |  | ;get total digits |  | 
| 81 | 7866 | 0076202 |  | and | K8191 |  |  |  | ;=N1 bits, mask off top bits | @7866 | 
| 82 | 7866+ | 0356111 |  | stc | .digits1 |  |  |  | ;save it |  | 
| 83 | 7867 | 1300024 |  | sla | 20 |  |  |  | ;get digits after | @7867 | 
| 84 | 7867+ | 0356112 |  | stc | .digits2 |  |  |  | ;save that too |  | 
| 85 | 7868 | 1014661 |  | jmp | .r6 |  |  |  | ;-->> | @7868 | 
| 86 | 7868+ |  | =6577 |  |  | 
| 87 | 6577 |  | .r6: | ; |  |  | 
| 88 | 6577 | 0616113 |  | lod | .wk1 |  |  |  | ;reload format info | @6577 | 
| 89 | 6577+ | 0116113 |  | add | .wk1 |  |  |  | ;double it |  | 
| 90 | 6578 | 1134663 |  | jn | .r8 |  |  |  | ;test bit 38 - aligned | @6578 | 
| 91 | 6578+ |  | .r7: | ; |  |  | 
| 92 | 6578+ | 0140000 |  | cla | 0 |  |  |  | ; |  | 
| 93 | 6579 | 1017305 |  | jmp | .c1 |  |  |  | ;join with printint | @6579 | 
| 94 | 6579+ |  | ; |  | 
| 95 | 6579+ |  | ; set up for aligned output |  | 
| 96 | 6579+ |  | ; |  | 
| 97 | 6579+ |  | .r8: | ; |  |  | 
| 98 | 6579+ | 0616111 |  | lod | .digits1 |  |  |  | ;digits before point |  | 
| 99 | 6580 | 0136112 |  | sub | .digits2 |  |  |  | ;total digits | @6580 | 
| 100 | 6580+ |  |  | nop |  |  |  |  | ; |  | 
| 100+1 | 6580+ | 1014665 |  | jmp | .1 |  |  |  |  |  | 
| 100+2 | 6581 |  | .1: | ; |  |  | 
| 101 | 6581 |  |  | calln | , |  |  |  | ;get 10**(-digits after point) | @6581 | 
| 101+1 | 6581 | 7370505017177 |  | lnk | Print.powlnk | : | jmp | Pow10 |  |  | 
| 102 | 6582 | 0116210 |  | add | N1 |  |  |  | ;=-1 crafty / 2.0 | @6582 | 
| 103 | 6582+ | 1456116 |  | fna | .wk4 |  |  |  | ;subtract from num |  | 
| 104 | 6583 | 1034670 |  | jn | .r9 |  |  |  | ;num less than epsilon | @6583 | 
| 105 | 6583+ | 1114662 |  | jmp | .r7 |  |  |  | ;ok |  | 
| 106 | 6584 |  | ; number less than minimum representable, use zero instead |  | 
| 107 | 6584 |  | ; |  | 
| 108 | 6584 |  | .r9: | ; |  |  | 
| 109 | 6584 | 0556116 |  | cls | .wk4 |  |  |  | ;set num = 0 | @6584 | 
| 110 | 6584+ | 1114662 |  | jmp | .r7 |  |  |  | ;and join with other formats |  | 
| 111 | 6585 |  | ;-------------------------------------------------------------------- |  | 
| 112 | 6585 |  | ; |  | 
| 113 | 6585 |  | ; print integer value |  | 
| 114 | 6585 |  | ; value in Acc |  | 
| 115 | 6585 |  | ; |  | 
| 116 | 6585 |  | =7854 |  |  | 
| 117 | 7854 |  | ; |  | 
| 118 | 7854 |  | .int: | ; |  |  | 
| 119 | 7854 | 1015756 |  | jmp | .i1 |  |  |  | ; | @7854 | 
| 120 | 7854+ |  | =7150 |  |  | 
| 121 | 7150 |  | .i1: | ; |  |  | 
| 122 | 7150 | 0556114 |  | cls | .wk2 |  |  |  | ; | @7150 | 
| 123 | 7150+ | 0556130 |  | cls | .Pbuff |  |  |  | ;sign=0 (-) |  | 
| 124 | 7151 | 1137256 |  | jn | .i2 |  |  |  | ;-> | @7151 | 
| 125 | 7151+ | 0456130 |  | inc | .Pbuff |  |  |  | ;value is positive |  | 
| 126 | 7152 | 0456130 |  | inc | .Pbuff |  |  |  | ;sign=2 (+) | @7152 | 
| 127 | 7152+ | 1117256 |  | jmp | .i2 |  |  |  | ;-->> |  | 
| 128 | 7153 |  | =7854+ |  |  | 
| 129 | 7854+ |  | .i2: | ; |  |  | 
| 130 | 7854+ | 0456114 |  | inc | .wk2 |  |  |  | ;indicate integer |  | 
| 131 | 7855 | 0416115 |  | sto | .wk3 |  |  |  | ;store number | @7855 | 
| 132 | 7855+ | 0556117 |  | cls | .wk5 |  |  |  | ; |  | 
| 133 | 7856 | 0600075 |  | lod | Ndigits |  |  |  | ;number of digits to print | @7856 | 
| 134 | 7856+ | 0076220 |  | and | K15a |  |  |  | ;=15 |  | 
| 135 | 7857 | 0416111 |  | sto | .digits1 |  |  |  | ; | @7857 | 
| 136 | 7857+ | 0416112 |  | sto | .digits2 |  |  |  | ; |  | 
| 137 | 7858 | 0116213 |  | add | N8 |  |  |  | ;=-8 | @7858 | 
| 138 | 7858+ | 0136223 |  | sub | K4 |  |  |  | ;=4 |  | 
| 139 | 7859 | 0356120 |  | stc | .wk6 |  |  |  | ; | @7859 | 
| 140 | 7859+ | 0556113 |  | cls | .wk1 |  |  |  | ; |  | 
| 141 | 7860 | 1017305 |  | jmp | .c1 |  |  |  | ; | @7860 | 
| 142 | 7860+ |  | ; |  | 
| 143 | 7860+ |  | ; in common with printreal, Acc always 0 at this point?? |  | 
| 144 | 7860+ |  | ; |  | 
| 145 | 7860+ |  | =7877 |  |  | 
| 146 | 7877 |  | .c1: | ; |  |  | 
| 147 | 7877 | 0136130 |  | sub | .Pbuff |  |  |  | ;0/-2 | @7877 | 
| 148 | 7877+ | 1137312 |  | jn | .c3 |  |  |  | ;'+' |  | 
| 149 | 7878 | 0600076 |  | lod | prtfmt |  |  |  | ;load format info | @7878 | 
| 150 | 7878+ | 1137307 |  | jn | .c2 |  |  |  | ;special(1)? -> |  | 
| 151 | 7879 | 1117312 |  | jmp | .c3 |  |  |  | ;not special(1) | @7879 | 
| 152 | 7879+ |  | ; |  | 
| 153 | 7879+ |  | ; setup for special(1) - suppress leading blank |  | 
| 154 | 7879+ |  | ; |  | 
| 155 | 7879+ |  | .c2: | ; |  |  | 
| 156 | 7879+ | 0616210 |  | lod | N1 |  |  |  | ;=-1 |  | 
| 157 | 7880 | 0516112 |  | ads | .digits2 |  |  |  | ;decrement total digit | @7880 | 
| 158 | 7880+ | 0616111 |  | lod | .digits1 |  |  |  | ;see if digits before |  | 
| 159 | 7881 | 1157312 |  | jz | .c3 |  |  |  | ; is = 0 -> | @7881 | 
| 160 | 7881+ | 0616210 |  | lod | N1 |  |  |  | ;=-1 no, decrement digits before |  | 
| 161 | 7882 | 0516111 |  | ads | .digits1 |  |  |  | ; | @7882 | 
| 162 | 7882+ |  | .c3: | ; |  |  | 
| 163 | 7882+ | 0236114 |  | o11 | .wk2 |  |  |  | ;load real/integer flag, wk2 = -2 |  | 
| 164 | 7883 |  |  | ; if sign = '-', -1 if digits before >0, |  |  | 
| 165 | 7883 |  |  | ; or 0 if digits before was zero ??? |  |  | 
| 166 | 7883 | 1037400 |  | jn | .g2 |  |  |  | ;->integer | @7883 | 
| 167 | 7883+ |  | .c4: | ; |  |  | 
| 168 | 7883+ | 0556117 |  | cls | .wk5 |  |  |  | ; |  | 
| 169 | 7884 | 0616116 |  | lod | .wk4 |  |  |  | ;get number to be printed | @7884 | 
| 170 | 7884+ | 1157366 |  | jz | .f4 |  |  |  | ;easy case-> |  | 
| 171 | 7885 | 0076203 |  | and | K511 |  |  |  | ;extract exponent | @7885 | 
| 172 | 7885+ | 0556124 |  | cls | .wk8 |  |  |  | ; |  | 
| 173 | 7886 | 1017317 |  | jmp | .c5 |  |  |  | ;-->> | @7886 | 
| 174 | 7886+ |  |  | pad |  |  |  |  | ; |  | 
| 174+1 | 7886+ | 0000000 |  | 00 | 0 |  |  |  |  |  | 
| 175 | 7887 |  | ;-------------------------------------------------------------------- |  | 
| 176 | 7887 |  | .c5: | ; |  |  | 
| 177 | 7887 | 0136204 |  | sub | K256 |  |  |  | ;=256 convert to signed form | @7887 | 
| 178 | 7887+ | 1256205 |  | mul | W7301 |  |  |  | ;=0.3 (fixed pt frac) |  | 
| 179 | 7888 | 0416120 |  | sto | .wk6 |  |  |  | ;approx decimal exponent | @7888 | 
| 180 | 7888+ | 1137321 |  | jn | .c6 |  |  |  | ;skip if < 0 |  | 
| 181 | 7889 | 0020000 |  | neg | 0 |  |  |  | ;negate value | @7889 | 
| 182 | 7889+ |  | .c6: | ; |  |  | 
| 183 | 7889+ | 0136217 |  | sub | N76 |  |  |  | ;=-76 limit |  | 
| 184 | 7890 | 1037356 |  | jn | .c9 |  |  |  | ;too big/small | @7890 | 
| 185 | 7890+ |  | .c7: | ; |  |  | 
| 186 | 7890+ | 0236120 |  | o11 | .wk6 |  |  |  | ;exchange&negate |  | 
| 187 | 7891 |  | .c8: | ; |  |  | 
| 188 | 7891 | 0576115 |  | o27 | .wk3 |  |  |  | ;subtract from wk3 (real:0/int:num) | @7891 | 
| 189 | 7891+ | 1017352 |  | jmp | .d1 |  |  |  | ;re-scale number to 0.1-1.0 |  | 
| 190 | 7892 |  | =7918 |  |  | 
| 191 | 7918 |  | ; |  | 
| 192 | 7918 |  | .c9: | ; |  |  | 
| 193 | 7918 | 0616217 |  | lod | N76 |  |  |  | ;=-76 | @7918 | 
| 194 | 7918+ | 0216120 |  | exa | .wk6 |  |  |  | ;use -76/reload scaled exponent |  | 
| 195 | 7919 | 1137322 |  | jn | .c7 |  |  |  | ; | @7919 | 
| 196 | 7919+ | 0616217 |  | lod | N76 |  |  |  | ;=-76 use -76 as exponentn |  | 
| 197 | 7920 | 1017323 |  | jmp | .c8 |  |  |  | ; | @7920 | 
| 198 | 7920+ |  |  | pad |  |  |  |  | ; |  | 
| 198+1 | 7920+ | 0000000 |  | 00 | 0 |  |  |  |  |  | 
| 199 | 7921 |  | ; rescale number to range 0.1-1.0, try approx exponent first, then |  | 
| 200 | 7921 |  | ;  adjust by +/- 1 until it's right |  | 
| 201 | 7921 |  | ; |  | 
| 202 | 7921 |  | =7914 |  |  | 
| 203 | 7914 |  | .d1: | ; |  |  | 
| 204 | 7914 |  |  | calln | , |  |  |  | ;convert to power of 10 | @7914 | 
| 204+1 | 7914 | 7370505017177 |  | lnk | Print.powlnk | : | jmp | Pow10 |  |  | 
| 205 | 7915 | 1476116 |  | fmu | .wk4 |  |  |  | ;scale argument | @7915 | 
| 206 | 7915+ | 0416116 |  | sto | .wk4 |  |  |  | ;and save it |  | 
| 207 | 7916 | 1456207 |  | fna | Point1 |  |  |  | ;=0.1 | @7916 | 
| 208 | 7916+ | 1036022 |  | jn | .d2 |  |  |  | ;>=0.1, OK so far |  | 
| 209 | 7917 | 0040000 |  | o02 | 0 |  |  |  | ;<0.1, scale up by 10 | @7917 | 
| 210 | 7917+ | 1017323 |  | jmp | .c8 |  |  |  | ;back to try again |  | 
| 211 | 7918 |  | ; |  | 
| 212 | 7918 |  | =7186 |  |  | 
| 213 | 7186 |  | .d2: | ; |  |  | 
| 214 | 7186 | 0616116 |  | lod | .wk4 |  |  |  | ;load argument | @7186 | 
| 215 | 7186+ | 1436206 |  | fsb | FP1 |  |  |  | ;=1.0 |  | 
| 216 | 7187 | 1037324 |  | jn | .d3 |  |  |  | ;<1.0 in range | @7187 | 
| 217 | 7187+ | 1117342 |  | jmp | .d9 |  |  |  | ;scale down by 10 |  | 
| 218 | 7188 |  | ;.d9: lod N1   ;=-1 copy of code below |  | 
| 219 | 7188 |  | ; jmp .c9   ;loop back |  | 
| 220 | 7188 |  | ; |  | 
| 221 | 7188 |  | =7892 |  |  | 
| 222 | 7892 |  | ; gets to here with argument (.wk4) in range 0.1 - 1.0 |  | 
| 223 | 7892 |  | ; check to see if there are sufficient spaces before point for |  | 
| 224 | 7892 |  | ;  digits needed. |  | 
| 225 | 7892 |  | .d3: | ; |  |  | 
| 226 | 7892 | 0616113 |  | lod | .wk1 |  |  |  | ;load format info | @7892 | 
| 227 | 7892+ | 1037336 |  | jn | .d8 |  |  |  | ;scaled format-> |  | 
| 228 | 7893 | 0616111 |  | lod | .digits1 |  |  |  | ;freepoint/aligned, space before | @7893 | 
| 229 | 7893+ | 0136115 |  | sub | .wk3 |  |  |  | ;less actual digits before point |  | 
| 230 | 7894 | 1037406 |  | jn | .h4 |  |  |  | ;won't fit, change fmt | @7894 | 
| 231 | 7894+ | 0040000 |  | o02 | 0 |  |  |  | ;=1 |  | 
| 232 | 7895 | 0776117 |  | o37 | .wk5 |  |  |  | ;load .wk5, sub 1 from .wk5 | @7895 | 
| 233 | 7895+ | 1137343 |  | jn | .e1 |  |  |  | ;prev value < 0 |  | 
| 234 | 7896 | 0616113 |  | lod | .wk1 |  |  |  | ;reload fmt info | @7896 | 
| 235 | 7896+ | 0116113 |  | add | .wk1 |  |  |  | ;double to test Bit38 |  | 
| 236 | 7897 | 1037333 |  | jn | .d4 |  |  |  | ;->aligned format | @7897 | 
| 237 | 7897+ | 0616115 |  | lod | .wk3 |  |  |  | ;actual digits before point |  | 
| 238 | 7898 | 1037334 |  | jn | .d7 |  |  |  | ;<0 pure fraction | @7898 | 
| 239 | 7898+ | 1017336 |  | jmp | .d8 |  |  |  | ;-> |  | 
| 240 | 7899 |  | ; |  | 
| 241 | 7899 |  | .d4: | ; |  |  | 
| 242 | 7899 | 0616115 |  | lod | .wk3 |  |  |  | ;actual digits before point | @7899 | 
| 243 | 7899+ | 1016012 |  | jmp | .d5 |  |  |  | ;-->> |  | 
| 244 | 7900 |  | ; |  | 
| 245 | 7900 |  | =7178 |  |  | 
| 246 | 7178 |  | .d5: | ; |  |  | 
| 247 | 7178 | 0136111 |  | sub | .digits1 |  |  |  | ;space before point | @7178 | 
| 248 | 7178+ | 0400004 |  | sto | 4 |  |  |  | ;number of leading zeros |  | 
| 249 | 7179 |  |  | nop |  |  |  |  | ; | @7179 | 
| 249+1 | 7179 | 1116013 |  | jmp | .1 |  |  |  |  |  | 
| 249+2 | 7179+ |  | .1: | ; |  |  | 
| 250 | 7179+ |  | .d6: | ; |  |  | 
| 251 | 7179+ | 0640004 |  | lis | 4 |  |  |  | ;count zeros |  | 
| 252 | 7180 | 1057336 |  | jz | .d8 |  |  |  | ;done | @7180 | 
| 253 | 7180+ | 0056220 |  | o02 | K15a |  |  |  | ;=15+1=>16 [0] |  | 
| 254 | 7181 | 2270522416130 |  | inc | .wk8 | / | sto | .Pbuff | ;store zero in print buffer | @7181 | 
| 255 | 7182 | 1116013 |  | jmp | .d6 |  |  |  | ;and repeat | @7182 | 
| 256 | 7182+ |  | ; |  | 
| 257 | 7182+ |  | =7900 |  |  | 
| 258 | 7900 |  | .d7: | ; |  |  | 
| 259 | 7900 |  |  | calln | , |  |  |  | ; | @7900 | 
| 259+1 | 7900 | 7370505017177 |  | lnk | Print.powlnk | : | jmp | Pow10 |  |  | 
| 260 | 7901 | 1476116 |  | fmu | .wk4 |  |  |  | ; | @7901 | 
| 261 | 7901+ | 0416116 |  | sto | .wk4 |  |  |  | ; |  | 
| 262 | 7902 |  | .d8: | ; |  |  | 
| 263 | 7902 | 0616112 |  | lod | .digits2 |  |  |  | ;total digits space | @7902 | 
| 264 | 7902+ | 0176124 |  | bus | .wk8 |  |  |  | ;less spaces filled with zeros |  | 
| 265 | 7903 |  |  | calln | , |  |  |  | ;get least sig digit | @7903 | 
| 265+1 | 7903 | 7370505017177 |  | lnk | Print.powlnk | : | jmp | Pow10 |  |  | 
| 266 | 7904 | 0116210 |  | add | N1 |  |  |  | ;=-1 halve it | @7904 | 
| 267 | 7904+ | 1416116 |  | fad | .wk4 |  |  |  | ;add to number (rounding) |  | 
| 268 | 7905 | 0416116 |  | sto | .wk4 |  |  |  | ;store rounded number | @7905 | 
| 269 | 7905+ | 1436206 |  | fsb | FP1 |  |  |  | ;=1.0 |  | 
| 270 | 7906 | 1137343 |  | jn | .e1 |  |  |  | ;not rounded up over limit | @7906 | 
| 271 | 7906+ |  | .d9: | ; |  |  | 
| 272 | 7906+ | 0616210 |  | lod | N1 |  |  |  | ;=-1 scale down by another 10.0 |  | 
| 273 | 7907 | 1017323 |  | jmp | .c8 |  |  |  | ;and do it all again | @7907 | 
| 274 | 7907+ |  | ; |  | 
| 275 | 7907+ |  | .e1: | ; |  |  | 
| 276 | 7907+ | 0616113 |  | lod | .wk1 |  |  |  | ;reload format info |  | 
| 277 | 7908 | 1137350 |  | jn | .e4 |  |  |  | ;->scaled | @7908 | 
| 278 | 7908+ | 0116113 |  | add | .wk1 |  |  |  | ;double to check bit38 |  | 
| 279 | 7909 | 1036020 |  | jn | .e2 |  |  |  | ;->aligned | @7909 | 
| 280 | 7909+ | 0616115 |  | lod | .wk3 |  |  |  | ;load scale factor (freepoint) |  | 
| 281 | 7910 | 1137347 |  | jn | .e3 |  |  |  | ; | @7910 | 
| 282 | 7910+ | 0416111 |  | sto | .digits1 |  |  |  | ; |  | 
| 283 | 7911 | 1017361 |  | jmp | .f1 |  |  |  | ; | @7911 | 
| 284 | 7911+ |  | ; |  | 
| 285 | 7911+ |  | =7184 |  |  | 
| 286 | 7184 |  | .e2: | ; |  |  | 
| 287 | 7184 | 0616115 |  | lod | .wk3 |  |  |  | ; | @7184 | 
| 288 | 7184+ | 0176111 |  | bus | .digits1 |  |  |  | ; |  | 
| 289 | 7185 | 0416124 |  | sto | .wk8 |  |  |  | ; | @7185 | 
| 290 | 7185+ | 1017361 |  | jmp | .f1 |  |  |  | ; |  | 
| 291 | 7186 |  | ; |  | 
| 292 | 7186 |  | =7911+ |  |  | 
| 293 | 7911+ |  | .e3: | ; |  |  | 
| 294 | 7911+ | 0556111 |  | cls | .digits1 |  |  |  | ; |  | 
| 295 | 7912 | 1017361 |  | jmp | .f1 |  |  |  | ; | @7912 | 
| 296 | 7912+ |  | ; |  | 
| 297 | 7912+ |  | .e4: | ; |  |  | 
| 298 | 7912+ | 0616111 |  | lod | .digits1 |  |  |  | ; |  | 
| 299 | 7913 | 0576115 |  | o27 | .wk3 |  |  |  | ; | @7913 | 
| 300 | 7913+ | 1017361 |  | jmp | .f1 |  |  |  | ; |  | 
| 301 | 7914 |  | ; |  | 
| 302 | 7914 |  | =7921 |  |  | 
| 303 | 7921 |  | ;-------------------------------------------------------------------- |  | 
| 304 | 7921 |  | .f1: | ; |  |  | 
| 305 | 7921 | 0616116 |  | lod | .wk4 |  |  |  | ;load number | @7921 | 
| 306 | 7921+ | 0076203 |  | and | K511 |  |  |  | ;=0777 mask exponent |  | 
| 307 | 7922 | 0136204 |  | sub | K256 |  |  |  | ;=256 convert to zero-base | @7922 | 
| 308 | 7922+ | 0116212 |  | add | K63 |  |  |  | ;=63 |  | 
| 309 | 7923 | 1137365 |  | jn | .f2 |  |  |  | ;insignificant | @7923 | 
| 310 | 7923+ | 0020000 |  | neg | 0 |  |  |  | ;make shift factor negative |  | 
| 311 | 7924 | 1070473200077 |  | exa | .wk4 | / | sra | 63 | ;shift mantissa into AR | @7924 | 
| 312 | 7925 | 1017366 |  | jmp | .f3 |  |  |  | ; | @7925 | 
| 313 | 7925+ |  | ; |  | 
| 314 | 7925+ |  | .f2: | ; |  |  | 
| 315 | 7925+ | 0140000 |  | cla | 0 |  |  |  | ; |  | 
| 316 | 7926 |  | .f3: | ; |  |  | 
| 317 | 7926 | 0356116 |  | stc | .wk4 |  |  |  | ;store what's left | @7926 | 
| 318 | 7926+ |  | .f4: | ; |  |  | 
| 319 | 7926+ | 0616124 |  | lod | .wk8 |  |  |  | ; |  | 
| 320 | 7927 | 0416117 |  | sto | .wk5 |  |  |  | ; | @7927 | 
| 321 | 7927+ | 1116016 |  | jmp | .f5 |  |  |  | ;-->> |  | 
| 322 | 7928 |  | ; |  | 
| 323 | 7928 |  | =7182+ |  |  | 
| 324 | 7182+ |  | .f5: | ; |  |  | 
| 325 | 7182+ | 0136112 |  | sub | .digits2 |  |  |  | ;number of digits needed |  | 
| 326 | 7183 | 0216116 |  | exa | .wk4 |  |  |  | ;swap with number | @7183 | 
| 327 | 7183+ | 1017370 |  | jmp | .f6 |  |  |  | ;-->> |  | 
| 328 | 7184 |  | ; |  | 
| 329 | 7184 |  | =7928 |  |  | 
| 330 | 7928 |  | .f6: | ; |  |  | 
| 331 | 7928 | 1200046 |  | sra | 38 |  |  |  | ;shift bits into AR | @7928 | 
| 332 | 7928+ | 1017374 |  | jmp | .f8 |  |  |  | ;jump into loop |  | 
| 333 | 7929 |  | ; |  | 
| 334 | 7929 |  | ; loop, extracting digits |  | 
| 335 | 7929 |  | ; |  | 
| 336 | 7929 |  | .f7: | ; |  |  | 
| 337 | 7929 | 1360000 |  | ara | 0 |  |  |  | ;get bits from AR | @7929 | 
| 338 | 7929+ | 1256211 |  | mul | K10a |  |  |  | ;=10 multiply by 10 |  | 
| 339 | 7930 | 2070516617550 |  | sto | .wk7 | / | lod | digits | ;convert 0..9 to digit char | @7930 | 
| 340 | 7931 | 2270476416130 |  | inc | .wk5 | / | sto | .Pbuff | ;bump index, store char | @7931 | 
| 341 | 7932 |  | .f8: | ; |  |  | 
| 342 | 7932 | 0656116 |  | lis | .wk4 |  |  |  | ;load&increment digit count | @7932 | 
| 343 | 7932+ | 1037371 |  | jn | .f7 |  |  |  | ;still negative, do more digits |  | 
| 344 | 7933 | 0616113 |  | lod | .wk1 |  |  |  | ;reload format info | @7933 | 
| 345 | 7933+ | 1137376 |  | jn | .g1 |  |  |  | ;scaled format-> |  | 
| 346 | 7934 | 1017454 |  | jmp | .l1 |  |  |  | ;others-> | @7934 | 
| 347 | 7934+ |  | ; |  | 
| 348 | 7934+ |  | ; scaled format |  | 
| 349 | 7934+ |  | ; |  | 
| 350 | 7934+ |  | .g1: | ; |  |  | 
| 351 | 7934+ | 0456117 |  | inc | .wk5 |  |  |  | ; |  | 
| 352 | 7935 | 0616211 |  | lod | K10a |  |  |  | ;=10 | @7935 | 
| 353 | 7935+ | 0436120 |  | stn | .wk6 |  |  |  | ; |  | 
| 354 | 7936 |  | .g2: | ; |  |  | 
| 355 | 7936 | 0617464 |  | lod | .W7988 |  |  |  | ;=.p6 | @7936 | 
| 356 | 7936+ | 0416121 |  | sto | .powlnk |  |  |  | ; |  | 
| 357 | 7937 | 0616115 |  | lod | .wk3 |  |  |  | ;get value | @7937 | 
| 358 | 7937+ | 1017421 |  | jmp | .g3 |  |  |  | ; |  | 
| 359 | 7938 |  | ;-------------------------------------------------------------------- |  | 
| 360 | 7938 |  | =7953 |  |  | 
| 361 | 7953 |  | .g3: | ; |  |  | 
| 362 | 7953 | 2270476556127 |  | inc | .wk5 | / | cls | .wk9 | ; | @7953 | 
| 363 | 7954 | 1037425 |  | jn | .g4 |  |  |  | ; | @7954 | 
| 364 | 7954+ | 0020000 |  | neg | 0 |  |  |  | ; |  | 
| 365 | 7955 | 0070476456127 |  | o00 | .wk5 | / | inc | .wk9 | ; | @7955 | 
| 366 | 7956 | 0070476456127 |  | o00 | .wk5 | / | inc | .wk9 | ; | @7956 | 
| 367 | 7957 |  | .g4: | ; |  |  | 
| 368 | 7957 | 1256216 |  | mul | W7310 |  |  |  | ; | @7957 | 
| 369 | 7957+ | 1200044 |  | sra | 36 |  |  |  | ; |  | 
| 370 | 7958 | 0416116 |  | sto | .wk4 |  |  |  | ; | @7958 | 
| 371 | 7958+ | 0056211 |  | o02 | K10a |  |  |  | ;=10+1=>11 |  | 
| 372 | 7959 | 0020000 |  | neg | 0 |  |  |  | ; | @7959 | 
| 373 | 7959+ | 0216116 |  | exa | .wk4 |  |  |  | ; |  | 
| 374 | 7960 | 1017432 |  | jmp | .g6 |  |  |  | ;jump into loop | @7960 | 
| 375 | 7960+ |  | ; |  | 
| 376 | 7960+ |  | .g5: | ; |  |  | 
| 377 | 7960+ | 1360000 |  | ara | 0 |  |  |  | ; |  | 
| 378 | 7961 | 0136210 |  | sub | N1 |  |  |  | ;=-1 | @7961 | 
| 379 | 7961+ | 1256211 |  | mul | K10a |  |  |  | ;=10 |  | 
| 380 | 7962 |  | .g6: | ; |  |  | 
| 381 | 7962 | 2070516617550 |  | sto | .wk7 | / | lod | digits | ;convert to printable form | @7962 | 
| 382 | 7963 | 0070476416130 |  | o00 | .wk5 | / | sto | .Pbuff | ;store in buffer | @7963 | 
| 383 | 7964 | 0076220 |  | and | K15a |  |  |  | ;=15 | @7964 | 
| 384 | 7964+ | 1057436 |  | jz | .g7 |  |  |  | ;zero? |  | 
| 385 | 7965 | 0616120 |  | lod | .wk6 |  |  |  | ; | @7965 | 
| 386 | 7965+ | 1037402 |  | jn | .h1 |  |  |  | ;out of room |  | 
| 387 | 7966 |  | .g7: | ; |  |  | 
| 388 | 7966 | 0656120 |  | lis | .wk6 |  |  |  | ; | @7966 | 
| 389 | 7966+ | 1137437 |  | jn | .g8 |  |  |  | ; |  | 
| 390 | 7967 | 0456117 |  | inc | .wk5 |  |  |  | ; | @7967 | 
| 391 | 7967+ |  | .g8: | ; |  |  | 
| 392 | 7967+ | 0656116 |  | lis | .wk4 |  |  |  | ; |  | 
| 393 | 7968 | 1137430 |  | jn | .g5 |  |  |  | ; | @7968 | 
| 394 | 7968+ | 0456117 |  | inc | .wk5 |  |  |  | ; |  | 
| 395 | 7969 | 0070507000001 |  | o00 | .powlnk | / | jmp | 1 | ; | @7969 | 
| 396 | 7970 |  | ;-------------------------------------------------------------------- |  | 
| 397 | 7970 |  | =7938 |  |  | 
| 398 | 7938 |  | ; recovery when insufficient space to print number |  | 
| 399 | 7938 |  | ; |  | 
| 400 | 7938 |  | .h1: | ; |  |  | 
| 401 | 7938 | 0040000 |  | o02 | 0 |  |  |  | ;decrement digits2 | @7938 | 
| 402 | 7938+ | 0576112 |  | o27 | .digits2 |  |  |  | ; |  | 
| 403 | 7939 | 0756115 |  | lzs | .wk3 |  |  |  | ;reload value | @7939 | 
| 404 | 7939+ | 1540000 |  | flt | 4096 |  |  |  | ;convert to float |  | 
| 405 | 7940 | 1037405 |  | jn | .h2 |  |  |  | ;check sign, negative-> | @7940 | 
| 406 | 7940+ | 1117405 |  | jmp | .h3 |  |  |  | ;positive-> |  | 
| 407 | 7941 |  | ; |  | 
| 408 | 7941 |  | .h2: | ; |  |  | 
| 409 | 7941 | 1440000 |  | fna | 0 |  |  |  | ;make it positive | @7941 | 
| 410 | 7941+ |  | .h3: | ; |  |  | 
| 411 | 7941+ | 0416116 |  | sto | .wk4 |  |  |  | ;save value |  | 
| 412 | 7942 |  | .h4: | ; |  |  | 
| 413 | 7942 | 0056223 |  | o02 | K4 |  |  |  | ;=4+1=>5 space needed for exp | @7942 | 
| 414 | 7942+ | 0176112 |  | bus | .digits2 |  |  |  | ;deduct from digits2 |  | 
| 415 | 7943 | 1037413 |  | jn | .h5 |  |  |  | ;<0, isn't room even for scaled | @7943 | 
| 416 | 7943+ | 0416112 |  | sto | .digits2 |  |  |  | ;store reduced digits |  | 
| 417 | 7944 | 0616213 |  | lod | N8 |  |  |  | ;=-8 | @7944 | 
| 418 | 7944+ | 0416113 |  | sto | .wk1 |  |  |  | ;reset count to -8 |  | 
| 419 | 7945 | 0556111 |  | cls | .digits1 |  |  |  | ;clear digits1 for scaled | @7945 | 
| 420 | 7945+ | 0456112 |  | inc | .digits2 |  |  |  | ;add one to digits2 |  | 
| 421 | 7946 | 0456111 |  | inc | .digits1 |  |  |  | ;and also to digits1 | @7946 | 
| 422 | 7946+ | 1117313 |  | jmp | .c4 |  |  |  | ;restart conversion using scaled format |  | 
| 423 | 7947 |  | ; |  | 
| 424 | 7947 |  | ; number won't fit in space allowed, print '  $' error indicator |  | 
| 425 | 7947 |  | .h5: | ; |  |  | 
| 426 | 7947 | 0556113 |  | cls | .wk1 |  |  |  | ; | @7947 | 
| 427 | 7947+ | 0056215 |  | o02 | K27 |  |  |  | ;=27 |  | 
| 428 | 7948 | 0416131 |  | sto | .Pbuff+1 |  |  |  | ; | @7948 | 
| 429 | 7948+ | 0416132 |  | sto | .Pbuff+2 |  |  |  | ; |  | 
| 430 | 7949 | 0416133 |  | sto | .Pbuff+3 |  |  |  | ; | @7949 | 
| 431 | 7949+ | 0416134 |  | sto | .Pbuff+4 |  |  |  | ; |  | 
| 432 | 7950 | 0056227 |  | o02 | Signbit |  |  |  | ;=04000000000001 | @7950 | 
| 433 | 7950+ | 0116223 |  | add | K4 |  |  |  | ;=4=>04000000000005  '$' |  | 
| 434 | 7951 | 0070452416131 |  | o00 | .digits2 | / | sto | .Pbuff+1 | ; | @7951 | 
| 435 | 7952 | 0556112 |  | cls | .digits2 |  |  |  | ; | @7952 | 
| 436 | 7952+ | 1017454 |  | jmp | .l1 |  |  |  | ;-->> |  | 
| 437 | 7953 |  | ;-------------------------------------------------------------------- |  | 
| 438 | 7953 |  | ; basic digits assembled, apply formatting |  | 
| 439 | 7953 |  | ;  first sort out prefix string |  | 
| 440 | 7953 |  | ; |  | 
| 441 | 7953 |  | =7980 |  |  | 
| 442 | 7980 |  | .l1: | ; |  |  | 
| 443 | 7980 | 0600001 |  | lod | T2Link |  |  |  | ; | @7980 | 
| 444 | 7980+ | 0416120 |  | sto | .wk6 |  |  |  | ;save return address |  | 
| 445 | 7981 | 0600076 |  | lod | prtfmt |  |  |  | ;get format info | @7981 | 
| 446 | 7981+ | 0416114 |  | sto | .wk2 |  |  |  | ;save it |  | 
| 447 | 7982 | 1220024 |  | srl | 20 |  |  |  | ;shift N1 down | @7982 | 
| 448 | 7982+ | 0076202 |  | and | K8191 |  |  |  | ;mask N1 bits |  | 
| 449 | 7983 | 1057460 |  | jz | .l2 |  |  |  | ;no prefix, use CRLF | @7983 | 
| 450 | 7983+ | 1117460 |  | jmp | .l3 |  |  |  | ;use specified string |  | 
| 451 | 7984 |  | ; |  | 
| 452 | 7984 |  | .l2: | ; |  |  | 
| 453 | 7984 | 0617472 |  | lod | .PCRLF |  |  |  | ;=SCRLF | @7984 | 
| 454 | 7984+ |  | .l3: | ; |  |  | 
| 455 | 7984+ |  |  | clo |  |  |  |  | ;make sure overflow clear |  | 
| 455+1 | 7984+ | 1077461 |  | jo | .1 |  |  |  |  |  | 
| 455+2 | 7985 |  | .1: | ; |  |  | 
| 456 | 7985 |  |  | calln | , |  |  |  | ;output prefix string | @7985 | 
| 456+1 | 7985 | 7300005100012 |  | lnk | T2Link | : | jmp | OutStr |  |  | 
| 457 | 7986 | 0616120 |  | lod | .wk6 |  |  |  | ; | @7986 | 
| 458 | 7986+ | 0400001 |  | sto | T2Link |  |  |  | ;restore return address |  | 
| 459 | 7987 |  | ; |  | 
| 460 | 7987 | 0616113 |  | lod | .wk1 |  |  |  | ;reload format info | @7987 | 
| 461 | 7987+ | 1137466 |  | jn | .l4 |  |  |  | ;scaled format-> |  | 
| 462 | 7988 | 0616227 | .W7988: | lod | Signbit |  |  |  | ;=04000000000000 | @7988 | 
| 463 | 7988+ | 0017453 |  | o00 | .p6 |  |  |  | ; |  | 
| 464 | 7989 | 0070452516130 |  | o00 | .digits2 | / | ads | .Pbuff | ; | @7989 | 
| 465 | 7990 | 1017474 |  | jmp | .l5 |  |  |  | ; | @7990 | 
| 466 | 7990+ |  | ; |  | 
| 467 | 7990+ |  | .l4: | ; |  |  | 
| 468 | 7990+ | 0616214 |  | lod | K13 |  |  |  | ;=13 '-' |  | 
| 469 | 7991 | 0070452136131 |  | o00 | .digits2 | / | sub | .Pbuff+1 | ; | @7991 | 
| 470 | 7992 | 1320006 |  | sll | 6 |  |  |  | ; | @7992 | 
| 471 | 7992+ | 0116224 |  | add | K24 |  |  |  | ;=24 '@' |  | 
| 472 | 7993 | 0070452416131 |  | o00 | .digits2 | / | sto | .Pbuff+1 | ; | @7993 | 
| 473 | 7994 | 0616227 | .PCRLF: | lod | Signbit |  |  |  | ;=04000000000000 | @7994 | 
| 474 | 7994+ | 0000116 |  | o00 | SCRLF |  |  |  | ;in-line constant |  | 
| 475 | 7995 | 0070452516133 |  | o00 | .digits2 | / | ads | .Pbuff+3 | ; | @7995 | 
| 476 | 7996 |  | .l5: | ; |  |  | 
| 477 | 7996 | 0616130 |  | lod | .Pbuff |  |  |  | ;sign marker | @7996 | 
| 478 | 7996+ | 1057500 |  | jz | .l6 |  |  |  | ;negative sign needed |  | 
| 479 | 7997 | 0616114 |  | lod | .wk2 |  |  |  | ; | @7997 | 
| 480 | 7997+ | 1137501 |  | jn | .l7 |  |  |  | ; |  | 
| 481 | 7998 | 0116114 |  | add | .wk2 |  |  |  | ; | @7998 | 
| 482 | 7998+ | 1037500 |  | jn | .l6 |  |  |  | ; |  | 
| 483 | 7999 | 0056215 |  | o02 | K27 |  |  |  | ;=27+1=>28 [SP] | @7999 | 
| 484 | 7999+ | 1017502 |  | jmp | .l8 |  |  |  | ;sign=' ' |  | 
| 485 | 8000 |  | ; |  | 
| 486 | 8000 |  | .l6: | ; |  |  | 
| 487 | 8000 | 0616214 |  | lod | K13 |  |  |  | ;=13 [-] | @8000 | 
| 488 | 8000+ | 0536130 |  | sbs | .Pbuff |  |  |  | ; |  | 
| 489 | 8001 | 1017503 |  | jmp | .l9 |  |  |  | ; | @8001 | 
| 490 | 8001+ |  | ; |  | 
| 491 | 8001+ |  | .l7: | ; |  |  | 
| 492 | 8001+ | 0140000 |  | cla | 0 |  |  |  | ; |  | 
| 493 | 8002 |  | .l8: | ; |  |  | 
| 494 | 8002 | 0416130 |  | sto | .Pbuff |  |  |  | ;store sign here | @8002 | 
| 495 | 8002+ | 0000000 |  | o00 | 0 |  |  |  | ; |  | 
| 496 | 8003 |  | .l9: | ; |  |  | 
| 497 | 8003 | 0616113 |  | lod | .wk1 |  |  |  | ;reload format info | @8003 | 
| 498 | 8003+ | 1057513 |  | jz | .m4 |  |  |  | ;->no format? |  | 
| 499 | 8004 | 0616111 |  | lod | .digits1 |  |  |  | ; | @8004 | 
| 500 | 8004+ | 0136112 |  | sub | .digits2 |  |  |  | ;less frac digits |  | 
| 501 | 8005 | 1057510 |  | jz | .m1 |  |  |  | ;no int digits | @8005 | 
| 502 | 8005+ | 0616114 |  | lod | .wk2 |  |  |  | ; |  | 
| 503 | 8006 | 1320003 |  | sll | 3 |  |  |  | ;*8 | @8006 | 
| 504 | 8006+ | 1037511 |  | jn | .m2 |  |  |  | ;test bit 36-> |  | 
| 505 | 8007 | 0056214 |  | o02 | K13 |  |  |  | ;=13+1=14 [.] | @8007 | 
| 506 | 8007+ | 1117511 |  | jmp | .m3 |  |  |  | ;-> |  | 
| 507 | 8008 |  | .m1: | ; |  |  | 
| 508 | 8008 | 0056215 |  | o02 | K27 |  |  |  | ;=27+1=>28 [SP] | @8008 | 
| 509 | 8008+ | 1117511 |  | jmp | .m3 |  |  |  | ;-> |  | 
| 510 | 8009 |  | ; |  | 
| 511 | 8009 |  | .m2: | ; |  |  | 
| 512 | 8009 | 0616211 |  | lod | K10a |  |  |  | ;=10 | @8009 | 
| 513 | 8009+ |  | .m3: | ; |  |  | 
| 514 | 8009+ | 1320006 |  | sll | 6 |  |  |  | ;shift decimal pt (or space) |  | 
| 515 | 8010 | 0070446516130 |  | o00 | .digits1 | / | ads | .Pbuff | ;add to last int digit | @8010 | 
| 516 | 8011 |  | .m4: | ; |  |  | 
| 517 | 8011 | 0616114 |  | lod | .wk2 |  |  |  | ;load format info | @8011 | 
| 518 | 8011+ | 0076212 |  | and | K63 |  |  |  | ;=077, mask out leadzero char |  | 
| 519 | 8012 | 1115763 |  | jmp | .m5 |  |  |  | ;-->> | @8012 | 
| 520 | 8012+ |  | =7155+ |  |  | 
| 521 | 7155+ |  | .m5: | ; |  |  | 
| 522 | 7155+ | 0556121 |  | cls | .powlnk |  |  |  | ; |  | 
| 523 | 7156 | 1157523 |  | jz | .n5 |  |  |  | ;leadzero char=null, use space | @7156 | 
| 524 | 7156+ | 0416115 |  | sto | .wk3 |  |  |  | ;save leadzero char |  | 
| 525 | 7157 | 0076225 |  | and | K32 |  |  |  | ;=32, letter shift mask | @7157 | 
| 526 | 7157+ | 0456121 |  | inc | .powlnk |  |  |  | ;bump flag |  | 
| 527 | 7158 | 1057515 |  | jz | .n2 |  |  |  | ;not letters | @7158 | 
| 528 | 7158+ | 0436121 |  | stn | .powlnk |  |  |  | ;set flag=-32 |  | 
| 529 | 7159 | 0176115 |  | bus | .wk3 |  |  |  | ;subtract from char | @7159 | 
| 530 | 7159+ | 1320006 |  | sll | 6 |  |  |  | ;shift left |  | 
| 531 | 7160 | 0115771 |  | add | W7161 |  |  |  | ;and add letter shift | @7160 | 
| 532 | 7160+ | 1117514 |  | jmp | .n1 |  |  |  | ;join loop |  | 
| 533 | 7161 |  | ; |  | 
| 534 | 7161 | 0000000000037 | W7161: | +31 | ; | @7161 | 
| 535 | 7162 |  | ; |  | 
| 536 | 7162 |  | =8012+ |  |  | 
| 537 | 8012+ |  | ; |  | 
| 538 | 8012+ |  | .n1: | ; |  |  | 
| 539 | 8012+ | 0416115 |  | sto | .wk3 |  |  |  | ;save leadzero character |  | 
| 540 | 8013 |  | .n2: | ; |  |  | 
| 541 | 8013 | 0556116 |  | cls | .wk4 |  |  |  | ;set index=0 | @8013 | 
| 542 | 8013+ |  | .n3: | ; |  |  | 
| 543 | 8013+ | 0616220 |  | lod | K15a |  |  |  | ;=15, digit mask |  | 
| 544 | 8014 | 2270472076130 |  | inc | .wk4 | / | and | .Pbuff | ;get next digit | @8014 | 
| 545 | 8015 | 1057520 |  | jz | .n4 |  |  |  | ;leading zero? -> | @8015 | 
| 546 | 8015+ | 1117524 |  | jmp | .n6 |  |  |  | ;non-zero-> |  | 
| 547 | 8016 |  | ; |  | 
| 548 | 8016 |  | .n4: | ; |  |  | 
| 549 | 8016 | 0056116 |  | o02 | .wk4 |  |  |  | ; | @8016 | 
| 550 | 8016+ | 0176111 |  | bus | .digits1 |  |  |  | ; |  | 
| 551 | 8017 | 1137524 |  | jn | .n6 |  |  |  | ; | @8017 | 
| 552 | 8017+ | 0616115 |  | lod | .wk3 |  |  |  | ;replacement character |  | 
| 553 | 8018 | 0070472416130 |  | o00 | .wk4 | / | sto | .Pbuff | ;store over zero | @8018 | 
| 554 | 8019 | 1117515 |  | jmp | .n3 |  |  |  | ;and repeat for next | @8019 | 
| 555 | 8019+ |  | ; |  | 
| 556 | 8019+ |  | .n5: | ; |  |  | 
| 557 | 8019+ | 0056215 |  | o02 | K27 |  |  |  | ;=FS+1=>SP, default leadzero char |  | 
| 558 | 8020 | 1117514 |  | jmp | .n1 |  |  |  | ;back to remove leading zero | @8020 | 
| 559 | 8020+ |  | ; |  | 
| 560 | 8020+ |  | .n6: | ; |  |  | 
| 561 | 8020+ | 1015772 |  | jmp | .n7 |  |  |  | ;-->> |  | 
| 562 | 8021 |  | =7162 |  |  | 
| 563 | 7162 |  | .n7: | ; |  |  | 
| 564 | 7162 | 0236121 |  | o11 | .powlnk |  |  |  | ;check flag | @7162 | 
| 565 | 7162+ | 1155775 |  | jz | .n8 |  |  |  | ; |  | 
| 566 | 7163 | 1037530 |  | jn | .o2 |  |  |  | ; | @7163 | 
| 567 | 7163+ | 0615163 |  | lod | W6771 |  |  |  | ;=02000000000000 |  | 
| 568 | 7164 | 0070472516127 |  | o00 | .wk4 | / | ads | .wk9 | ;set marker for FS needed | @7164 | 
| 569 | 7165 | 1017442 |  | jmp | .p1 |  |  |  | ;output digits etc. | @7165 | 
| 570 | 7165+ |  | ; |  | 
| 571 | 7165+ |  | .n8: | ; |  |  | 
| 572 | 7165+ | 0616114 |  | lod | .wk2 |  |  |  | ; |  | 
| 573 | 7166 | 1017525 |  | jmp | .o1 |  |  |  | ;-->> | @7166 | 
| 574 | 7166+ |  | ; |  | 
| 575 | 7166+ |  | =8021 |  |  | 
| 576 | 8021 |  | .o1: | ; |  |  | 
| 577 | 8021 | 1320002 |  | sll | 2 |  |  |  | ; | @8021 | 
| 578 | 8021+ | 1037530 |  | jn | .o2 |  |  |  | ;-> |  | 
| 579 | 8022 | 0616115 |  | lod | .wk3 |  |  |  | ;leadzero char | @8022 | 
| 580 | 8022+ | 0216130 |  | exa | .Pbuff |  |  |  | ;swap with sign |  | 
| 581 | 8023 | 0070472416127 |  | o00 | .wk4 | / | sto | .wk9 | ;put sign into place | @8023 | 
| 582 | 8024 |  | .o2: | ; |  |  | 
| 583 | 8024 | 0616114 |  | lod | .wk2 |  |  |  | ; | @8024 | 
| 584 | 8024+ | 1220015 |  | srl | 13 |  |  |  | ; |  | 
| 585 | 8025 | 0076212 |  | and | K63 |  |  |  | ;=077 | @8025 | 
| 586 | 8025+ | 1057442 |  | jz | .p1 |  |  |  | ;output digits etc. |  | 
| 587 | 8026 | 0416114 |  | sto | .wk2 |  |  |  | ; | @8026 | 
| 588 | 8026+ | 0176111 |  | bus | .digits1 |  |  |  | ; |  | 
| 589 | 8027 |  | .o3: | ; |  |  | 
| 590 | 8027 | 0416115 |  | sto | .wk3 |  |  |  | ; | @8027 | 
| 591 | 8027+ | 0116210 |  | add | N1 |  |  |  | ;=-1 |  | 
| 592 | 8028 | 1137537 |  | jn | .o4 |  |  |  | ; | @8028 | 
| 593 | 8028+ | 0616226 |  | lod | SP.00 |  |  |  | ;=03400 |  | 
| 594 | 8029 | 0070466516130 |  | o00 | .wk3 | / | ads | .Pbuff | ; | @8029 | 
| 595 | 8030 | 0616115 |  | lod | .wk3 |  |  |  | ; | @8030 | 
| 596 | 8030+ | 0136114 |  | sub | .wk2 |  |  |  | ; |  | 
| 597 | 8031 | 1017533 |  | jmp | .o3 |  |  |  | ; | @8031 | 
| 598 | 8031+ |  | ; |  | 
| 599 | 8031+ |  | .o4: | ; |  |  | 
| 600 | 8031+ | 0616111 |  | lod | .digits1 |  |  |  | ; |  | 
| 601 | 8032 |  | .o5: | ; |  |  | 
| 602 | 8032 | 0116114 |  | add | .wk2 |  |  |  | ; | @8032 | 
| 603 | 8032+ | 0416115 |  | sto | .wk3 |  |  |  | ; |  | 
| 604 | 8033 | 0176112 |  | bus | .digits2 |  |  |  | ; | @8033 | 
| 605 | 8033+ | 1037442 |  | jn | .p1 |  |  |  | ;output digits etc. |  | 
| 606 | 8034 | 1057442 |  | jz | .p1 |  |  |  | ;ditto. | @8034 | 
| 607 | 8034+ | 0616226 |  | lod | SP.00 |  |  |  | ;=03400 |  | 
| 608 | 8035 | 0070466516130 |  | o00 | .wk3 | / | ads | .Pbuff | ; | @8035 | 
| 609 | 8036 | 0616115 |  | lod | .wk3 |  |  |  | ; | @8036 | 
| 610 | 8036+ | 1017540 |  | jmp | .o5 |  |  |  | ; |  | 
| 611 | 8037 |  | ;-------------------------------------------------------------------- |  | 
| 612 | 8037 |  | ; |  | 
| 613 | 8037 |  | ; output the formatted sign,digits,exponent, etc. |  | 
| 614 | 8037 |  | ; |  | 
| 615 | 8037 |  | =7970 |  |  | 
| 616 | 7970 |  | .p1: | ; |  |  | 
| 617 | 7970 | 0600377700033 |  | cla | outdev | / | otp | FS | ;clear acc, o/p fig shift | @7970 | 
| 618 | 7971 |  | .p2: | ; |  |  | 
| 619 | 7971 | 2070476616130 |  | sto | .wk5 | / | lod | .Pbuff | ; | @7971 | 
| 620 | 7972 | 0416116 |  | sto | .wk4 |  |  |  | ; | @7972 | 
| 621 | 7972+ | 0100077 |  | add | outdev |  |  |  | ; |  | 
| 622 | 7973 | 1070473700000 |  | exa | .wk4 | / | otp | 0 | ; | @7973 | 
| 623 | 7974 | 1200006 |  | sra | 6 |  |  |  | ; | @7974 | 
| 624 | 7974+ | 0076212 |  | and | K63 |  |  |  | ;=077 |  | 
| 625 | 7975 | 1057451 |  | jz | .p3 |  |  |  | ; | @7975 | 
| 626 | 7975+ | 0100077 |  | add | outdev |  |  |  | ; |  | 
| 627 | 7976 | 2070473700000 |  | sto | .wk4 | / | otp | 0 | ; | @7976 | 
| 628 | 7977 |  | .p3: | ; |  |  | 
| 629 | 7977 | 2270476616127 |  | inc | .wk5 | / | lod | .wk9 | ; | @7977 | 
| 630 | 7978 | 0400004 |  | sto | 4 |  |  |  | ; | @7978 | 
| 631 | 7978+ | 1115776 |  | jmp | .p4 |  |  |  | ;-->> |  | 
| 632 | 7979 |  | ; |  | 
| 633 | 7979 |  | =7166+ |  |  | 
| 634 | 7166+ |  | .p4: | ; |  |  | 
| 635 | 7166+ | 0075163 |  | and | W6771 |  |  |  | ;=02000000000000 |  | 
| 636 | 7167 | 1056001 |  | jz | .p5 |  |  |  | ;not set, skip FS | @7167 | 
| 637 | 7167+ |  |  | nop |  |  |  |  |  |  | 
| 637+1 | 7167+ | 1016000 |  | jmp | .1 |  |  |  |  |  | 
| 637+2 | 7168 |  | .1: | ; |  |  | 
| 638 | 7168 | 0000377700033 |  | o00 | outdev | / | otp | FS | ;output figure shift | @7168 | 
| 639 | 7169 |  | .p5: | ; |  |  | 
| 640 | 7169 | 0600004 |  | lod | 4 |  |  |  | ; | @7169 | 
| 641 | 7169+ | 1020000 |  | jn | Return |  |  |  | ; |  | 
| 642 | 7170 | 1017453 |  | jmp | .p6 |  |  |  | ;-->> | @7170 | 
| 643 | 7170+ |  | ; |  | 
| 644 | 7170+ |  | =7979 |  |  | 
| 645 | 7979 |  | ; |  | 
| 646 | 7979 |  | .p6: | ; |  |  | 
| 647 | 7979 | 0616117 |  | lod | .wk5 |  |  |  | ; | @7979 | 
| 648 | 7979+ | 1017443 |  | jmp | .p2 |  |  |  | ; repeat until add done |  | 
| 649 | 7980 |  | ;-------------------------------------------------------------------- |  | 
| 650 | 7980 |  | =8037 |  |  | 
| 651 | 8037 |  | .nr3: | ; |  |  | 
| 652 | 8037 | 0600001 |  | lod | T2Link |  |  |  | ; | @8037 | 
| 653 | 8037+ | 0400015 |  | sto | Link1 |  |  |  | ; |  | 
| 654 | 8038 | 0616576 |  | lod | Msg17 |  |  |  | ;'PRINT ERROR' | @8038 | 
| 655 | 8038+ | 1016165 |  | jmp | outerror0 |  |  |  | ; |  | 
| 656 | 8039 |  | ; no refs |  | 
| 657 | 8039 |  | .nr4: | ; |  |  | 
| 658 | 8039 | 1000000 |  | jmp | Return |  |  |  | ; | @8039 | 
| 659 | 8039+ |  | ; |  | 
| 660 | 8039+ | 0000000 |  | o00 | 0 |  |  |  | ; |  | 
| 661 | 8040 |  | digits: | ; |  |  | 
| 662 | 8040 | 0000000000004 |  | '0','1','2','3','4' | ;digits reverse lookup | @8040 | 
| 663 | 8045 | 0000000000031 |  | '5','6','7','8','9' |  |  | 
| 664 | 8050 | 0400001000010 | W8050: | +00400001000010 | ; | @8050 | 
| 665 | 8051 |  | ; |  | 
| 666 | 8051 |  | =7870 |  |  | 
| 667 | 7870 |  | ; |  | 
| 668 | 7870 |  | ; no refs |  | 
| 669 | 7870 |  | .nr1: | ; |  |  | 
| 670 | 7870 |  |  | clo |  |  |  |  | ; | @7870 | 
| 670+1 | 7870 | 1177276 |  | jo | .1 |  |  |  |  |  | 
| 670+2 | 7870+ |  | .1: | ; |  |  | 
| 671 | 7870+ | 1320001 |  | sll | 1 |  |  |  | ; |  | 
| 672 | 7871 | 1077300 |  | jo | .nr2 |  |  |  | ; | @7871 | 
| 673 | 7871+ | 1017545 |  | jmp | .nr3 |  |  |  | ; |  | 
| 674 | 7872 |  | ; |  | 
| 675 | 7872 |  | .nr2: | ; |  |  | 
| 676 | 7872 | 0600004 |  | lod | 4 |  |  |  | ; | @7872 | 
| 677 | 7872+ | 1117264 |  | jmp | .r3 |  |  |  | ; |  | 
| 678 | 7873 |  | ; no refs |  | 
| 679 | 7873 | 1117264 |  | jmp | .r3 |  |  |  | ; | @7873 | 
| 680 | 7873+ |  | ; |  | 
| 681 | 7873+ |  |  | ; |  |  |