| 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+ | | | ; | |
|