1 FIXMRI FADD=1000 2 FIXMRI FSUB=2000 3 FIXMRI FMPY=3000 4 FIXMRI FDIV=4000 5 FIXMRI FGET=5000 6 FIXMRI FPUT=6000 7 FEXT=0000 8 FSQR=0001 9 FSQT=0002 10 FSIN=0003 11 FCOS=0004 12 FATN=0005 13 FINP=0011 14 FOUT=0012 15 FIXTAB 16 17 *0007 18 00007 5600 P00007, D05600 / Pointer to Floating Point Package 19 P00010=0010 20 21 *0055 22 00055 0000 0 23 24 *0065 25 00065 0000 OCHAR, 0 26 00066 6041 TSF 27 00067 5066 JMP .-1 28 00070 6046 TLS 29 00071 7300 CLA CLL 30 00072 5465 JMP I OCHAR 31 00073 0000 ICHAR, 0 32 00074 6031 KSF 33 00075 5074 JMP .-1 34 00076 6036 KRB 35 00077 6046 TLS 36 00100 5473 JMP I ICHAR 37 00101 0000 OCRLF, 0 38 00102 1107 TAD D00107 39 00103 4065 JMS OCHAR 40 00104 1110 TAD D00110 41 00105 4065 JMS OCHAR 42 00106 5501 JMP I OCRLF 43 00107 0215 D00107, 0215 44 00110 0212 D00110, 0212 45 00111 1115 L00111, TAD QMARK / Output a "? 46 00112 4065 JMS OCHAR 47 00113 5514 JMP I PRSTRT / ...and restart 48 00114 0201 PRSTRT, RSTART 49 00115 0277 QMARK, 0277 50 00116 0000 L00116, 0 51 00117 0000 0 52 00120 0000 0 53 00121 0000 D00121, 0 54 00122 0000 0 55 00123 0000 0 56 00124 0000 L00124, 0 57 00125 0000 0 58 00126 0000 0 59 00127 0000 L00127, 0 60 00130 0000 0 61 00131 0000 0 62 00132 0000 L00132, 0 63 00133 0000 0 64 00134 0000 0 65 00135 0000 L00135, 0 66 00136 0000 D00136, 0 67 00137 0000 0 68 00140 0000 P00140, 0 69 00141 0000 0 70 00142 0000 0 71 00143 0000 P00143, 0 72 00144 0000 0 73 00145 0000 0 74 00146 0000 L00146, 0 75 00147 0000 D00147, 0 76 00150 0000 0 77 00151 0000 P00151, 0 78 00152 0000 0 79 00153 0000 0 80 00154 0000 P00154, 0 81 00155 0000 0 82 00156 0000 0 83 00157 0000 P00157, 0 84 00160 0000 0 85 00161 0000 0 86 00162 0000 P00162, 0 87 00163 0000 0 88 00164 0000 0 89 00165 0000 P00165, 0 90 00166 0000 D00166, 0 91 00167 0000 0 92 00170 0002 L00170, 0002 93 00171 2000 2000 94 00172 0000 0 95 00173 0000 L00173, 0 96 00174 0000 0 97 00175 0000 0 98 99 *0200 100 00200 6046 TLS 101 00201 6032 RSTART, KCC 102 00202 4101 JMS OCRLF 103 00203 1114 TAD PRSTRT 104 00204 3336 DCA P00336 105 00205 1325 TAD D00325 106 00206 3326 DCA D00326 107 00207 4073 L00207, JMS ICHAR 108 00210 3327 DCA D00327 109 00211 1327 TAD D00327 110 00212 1330 TAD D00330 111 00213 7650 SNA CLA 112 00214 5767 JMP I P00367 113 00215 1327 TAD D00327 114 00216 1331 TAD D00331 115 00217 7650 SNA CLA 116 00220 5240 JMP L00240 117 00221 2326 ISZ D00326 118 00222 7410 SKP 119 00223 5111 JMP L00111 120 00224 1327 TAD D00327 121 00225 1335 TAD D00335 122 00226 7650 SNA CLA 123 00227 5235 JMP L00235 124 00230 1327 TAD D00327 125 00231 1333 TAD D00333 126 00232 7650 SNA CLA 127 00233 5235 JMP L00235 128 00234 5111 JMP L00111 129 00235 1327 L00235, TAD D00327 130 00236 3336 DCA P00336 131 00237 5207 JMP L00207 132 00240 1332 L00240, TAD D00332 133 00241 4065 JMS OCHAR 134 00242 5736 JMP I P00336 135 00243 4407 L00243, JMS I P00007 136 00244 0011 FINP 137 00245 6116 FPUT L00116 138 00246 0011 FINP 139 00247 6121 FPUT D00121 140 00250 0011 FINP 141 00251 6124 FPUT L00124 142 00252 0011 FINP 143 00253 6127 FPUT L00127 144 00254 0011 FINP 145 00255 6132 FPUT L00132 146 00256 0011 FINP 147 00257 6135 FPUT L00135 148 00260 0000 FEXT 149 00261 1136 TAD D00136 150 00262 7650 SNA CLA 151 00263 5201 JMP RSTART 152 00264 4407 JMS I P00007 153 00265 0011 FINP 154 00266 6140 FPUT P00140 155 00267 0000 FEXT 156 00270 5201 JMP RSTART 157 00271 1334 L00271, TAD D00334 158 00272 4065 JMS OCHAR 159 00273 5674 JMP I P00274 160 00274 0647 P00274, L00647 161 162 *0304 163 00304 5243 JMP L00243 164 00305 7000 NOP 165 00306 4407 JMS I P00007 166 00307 0011 FINP 167 00310 6143 FPUT P00143 168 00311 6173 FPUT L00173 169 00312 0011 FINP 170 00313 6146 FPUT L00146 171 00314 0000 FEXT 172 00315 1147 TAD D00147 173 00316 7650 SNA CLA 174 00317 5201 JMP RSTART 175 00320 4407 JMS I P00007 176 00321 0011 FINP 177 00322 6151 FPUT P00151 178 00323 0000 FEXT 179 00324 5201 JMP RSTART 180 00325 7776 D00325, 7776 181 00326 0000 D00326, 0 182 00327 0000 D00327, 0 183 00330 7537 D00330, 7537 184 00331 7506 D00331, 7506 185 00332 0240 D00332, 0240 186 00333 7472 D00333, 7472 187 00334 0305 D00334, 0305 188 00335 7474 D00335, 7474 189 00336 0000 P00336, 0 190 00337 7200 L00337, CLA 191 00340 4407 JMS I P00007 192 00341 5170 FGET L00170 193 00342 3121 FMPY D00121 194 00343 3132 FMPY L00132 195 00344 6154 FPUT P00154 196 00345 5116 FGET L00116 197 00346 1121 FADD D00121 198 00347 6157 FPUT P00157 199 00350 5157 FGET P00157 200 00351 0001 FSQR 201 00352 6162 FPUT P00162 202 00353 5124 FGET L00124 203 00354 1127 FADD L00127 204 00355 0001 FSQR 205 00356 2162 FSUB P00162 206 00357 2154 FSUB P00154 207 00360 6165 FPUT P00165 208 00361 0000 FEXT 209 00362 1166 TAD D00166 210 00363 7700 SMA CLA 211 00364 5271 JMP L00271 212 00365 5766 JMP I P00366 213 00366 0400 P00366, P00400 214 00367 1000 P00367, L01000 215 216 *0400 217 00400 4407 P00400, JMS I P00007 218 00401 5154 FGET P00154 219 00402 1162 FADD P00162 220 00403 0002 FSQT 221 00404 6346 FPUT L00546 222 00405 5132 FGET L00132 223 00406 1157 FADD P00157 224 00407 6157 FPUT P00157 225 00410 5132 FGET L00132 226 00411 0001 FSQR 227 00412 6165 FPUT P00165 228 00413 5170 FGET L00170 229 00414 3116 FMPY L00116 230 00415 3132 FMPY L00132 231 00416 1165 FADD P00165 232 00417 0002 FSQT 233 00420 4157 FDIV P00157 234 00421 6351 FPUT L00551 235 00422 5157 FGET P00157 236 00423 4346 FDIV L00546 237 00424 6354 FPUT D00554 238 00425 5346 FGET L00546 239 00426 0001 FSQR 240 00427 6154 FPUT P00154 241 00430 5124 FGET L00124 242 00431 0001 FSQR 243 00432 6162 FPUT P00162 244 00433 5127 FGET L00127 245 00434 0001 FSQR 246 00435 6165 FPUT P00165 247 00436 5154 FGET P00154 248 00437 1162 FADD P00162 249 00440 2165 FSUB P00165 250 00441 4170 FDIV L00170 251 00442 4346 FDIV L00546 252 00443 6357 FPUT L00557 253 00444 5154 FGET P00154 254 00445 1165 FADD P00165 255 00446 2162 FSUB P00162 256 00447 4170 FDIV L00170 257 00450 4346 FDIV L00546 258 00451 6362 FPUT D00562 259 00452 5357 FGET L00557 260 00453 0001 FSQR 261 00454 2162 FSUB P00162 262 00455 0002 FSQT 263 00456 6365 FPUT L00565 264 00457 5365 FGET L00565 265 00460 4357 FDIV L00557 266 00461 6154 FPUT P00154 267 00462 5365 FGET L00565 268 00463 4362 FDIV D00562 269 00464 6157 FPUT P00157 270 00465 0000 FEXT 271 00466 4101 L00466, JMS OCRLF 272 00467 4407 JMS I P00007 273 00470 5143 FGET P00143 274 00471 0012 FOUT 275 00472 0000 FEXT 276 00473 4745 JMS I PSPACE / Output a space 277 00474 4407 JMS I P00007 278 00475 5143 FGET P00143 279 00476 4370 FDIV D00570 280 00477 3373 FMPY D00573 281 00500 6162 FPUT P00162 282 00501 0004 FCOS 283 00502 3154 FMPY P00154 284 00503 1351 FADD L00551 285 00504 3354 FMPY D00554 286 00505 6165 FPUT P00165 287 00506 5162 FGET P00162 288 00507 0003 FSIN 289 00510 3154 FMPY P00154 290 00511 4165 FDIV P00165 291 00512 0005 FATN 292 00513 3370 FMPY D00570 293 00514 4373 FDIV D00573 294 00515 0012 FOUT 295 00516 0000 FEXT 296 00517 4745 JMS I PSPACE / Output a space 297 00520 4407 JMS I P00007 298 00521 5162 FGET P00162 299 00522 0004 FCOS 300 00523 3157 FMPY P00157 301 00524 6346 FPUT L00546 302 00525 5351 FGET L00551 303 00526 2346 FSUB L00546 304 00527 3354 FMPY D00554 305 00530 6165 FPUT P00165 306 00531 5162 FGET P00162 307 00532 0003 FSIN 308 00533 3157 FMPY P00157 309 00534 4165 FDIV P00165 310 00535 0005 FATN 311 00536 3370 FMPY D00570 312 00537 4373 FDIV D00573 313 00540 0012 FOUT 314 00541 0000 FEXT 315 00542 4745 JMS I PSPACE / Output a space 316 00543 5744 JMP I P00544 317 00544 0600 P00544, L00600 318 00545 0701 PSPACE, OSPACE 319 00546 0000 L00546, 0 320 00547 0000 0 321 00550 0000 0 322 00551 0000 L00551, 0 323 00552 0000 0 324 00553 0000 0 325 00554 0000 D00554, 0 326 00555 0000 0 327 00556 0000 0 328 00557 0000 L00557, 0 329 00560 0000 0 330 00561 0000 0 331 00562 0000 D00562, 0 332 00563 0000 0 333 00564 0000 0 334 00565 0000 L00565, 0 335 00566 0000 0 336 00567 0000 0 337 00570 0010 D00570, 0010 338 00571 2640 2640 339 00572 0000 0 340 00573 0002 D00573, 0002 341 00574 3110 3110 342 00575 3755 3755 343 344 *0600 345 00600 4407 L00600, JMS I P00007 346 00601 5162 FGET P00162 347 00602 0004 FCOS 348 00603 3673 FMPY I P00673 349 00604 3674 FMPY I P00674 350 00605 3675 FMPY I P00675 351 00606 6162 FPUT P00162 352 00607 5671 FGET I P00671 353 00610 3673 FMPY I P00673 354 00611 2124 FSUB L00124 355 00612 1162 FADD P00162 356 00613 6306 FPUT D00706 357 00614 0012 FOUT 358 00615 0000 FEXT 359 00616 4301 JMS OSPACE 360 00617 4407 JMS I P00007 361 00620 5132 FGET L00132 362 00621 1116 FADD L00116 363 00622 1121 FADD D00121 364 00623 2124 FSUB L00124 365 00624 2127 FSUB L00127 366 00625 2306 FSUB D00706 367 00626 0012 FOUT 368 00627 0000 FEXT 369 00630 1147 TAD D00147 370 00631 7650 SNA CLA 371 00632 5247 JMP L00647 372 00633 4407 JMS I P00007 373 00634 5146 FGET L00146 374 00635 1143 FADD P00143 375 00636 6143 FPUT P00143 376 00637 5151 FGET P00151 377 00640 2143 FSUB P00143 378 00641 6165 FPUT P00165 379 00642 0000 FEXT 380 00643 1166 TAD D00166 381 00644 7710 SPA CLA 382 00645 5247 JMP L00647 383 00646 5676 JMP I P00676 384 00647 4101 L00647, JMS OCRLF 385 00650 1136 TAD D00136 386 00651 7650 SNA CLA 387 00652 5677 JMP I PSTART 388 00653 4407 JMS I P00007 389 00654 5173 FGET L00173 390 00655 6143 FPUT P00143 391 00656 5135 FGET L00135 392 00657 1132 FADD L00132 393 00660 6132 FPUT L00132 394 00661 5140 FGET P00140 395 00662 2132 FSUB L00132 396 00663 6165 FPUT P00165 397 00664 0000 FEXT 398 00665 1166 TAD D00166 399 00666 7710 SPA CLA 400 00667 5677 JMP I PSTART 401 00670 5700 JMP I P00700 402 00671 0557 P00671, L00557 403 00672 0562 D00562 404 00673 0554 P00673, D00554 405 00674 0551 P00674, L00551 406 00675 0565 P00675, L00565 407 00676 0466 P00676, L00466 408 00677 0201 PSTART, RSTART 409 00700 0337 P00700, L00337 410 00701 0000 OSPACE, 0 411 00702 1305 TAD D00705 / Get a space 412 00703 4065 JMS OCHAR / Output 413 00704 5701 JMP I OSPACE / Return 414 00705 0240 D00705, 0240 415 00706 0000 D00706, 0 416 00707 0000 0 417 00710 0000 0 418 00711 0001 0001 419 00712 2000 2000 420 00713 0000 0 421 422 *1000 423 01000 4246 L01000, JMS OMESG 424 01001 0356 TEXT /C.M.ANGLE THETA 1 THETA 2 K.E.1 K.E.2%#/ 01002 1556 01003 0116 01004 0714 01005 0540 01006 4040 01007 4040 01010 4024 01011 1005 01012 2401 01013 4061 01014 4040 01015 4040 01016 4040 01017 4040 01020 4024 01021 1005 01022 2401 01023 4062 01024 4040 01025 4040 01026 4040 01027 4040 01030 1356 01031 0556 01032 6140 01033 4040 01034 4040 01035 4040 01036 4040 01037 4013 01040 5605 01041 5662 01042 4543 01043 0000 425 01044 5645 JMP I .+1 426 01045 0337 L00337 427 01046 0000 OMESG, 0 428 01047 7200 CLA 429 01050 1246 TAD OMESG / Get pointer for return 430 01051 3010 DCA P00010 / Set up AutoIndex 431 01052 1646 TAD I OMESG / Get first 2 characters 432 01053 3264 L01053, DCA D01064 / Store them 433 01054 1264 TAD D01064 / Get them 434 01055 7012 RTR / Get first letter 435 01056 7012 RTR 436 01057 7012 RTR 437 01060 3262 DCA P01062 / Store it 438 01061 4267 JMS S01067 / Print first, return to caller if 0 439 01062 0000 P01062, 0 440 01063 4267 JMS S01067 / Print second, return to caller if 0 441 01064 0000 D01064, 0 442 01065 1410 TAD I P00010 / Get next 2 characters 443 01066 5253 JMP L01053 / go process them. 444 01067 0000 S01067, 0 445 01070 1667 TAD I S01067 / Get argument 446 01071 0322 AND D01122 / Mask with 0077 447 01072 7450 SNA / Time to return? 448 01073 5410 JMP I P00010 / Yes, to caller's caller 449 01074 1327 TAD D01127 / No, is it >= 40? 450 01075 7500 SMA 451 01076 5301 JMP L01101 / Yes, go ?? 452 01077 1326 TAD D01126 / No, add 300 (+40 subtracted) 453 01100 5314 JMP P01114 / Go print it 454 01101 1325 L01101, TAD D01125 / == 43? 455 01102 7440 SZA 456 01103 5306 JMP L01106 / No, keep going 457 01104 1323 TAD D01123 / Yes, get LF 458 01105 5314 JMP P01114 / Go print it 459 01106 1330 L01106, TAD D01130 / == 45? 460 01107 7440 SZA 461 01110 5313 JMP L01113 / No, keep going 462 01111 1324 TAD D01124 / Yes, get CR 463 01112 5314 JMP P01114 / Go print it 464 01113 1331 L01113, TAD D01131 / Restore punctuation character, 465 01114 6046 P01114, TLS / Print the character 466 01115 6041 TSF / Wait for ready 467 01116 5315 JMP .-1 468 01117 2267 ISZ S01067 / Bump return pointer 469 01120 7200 CLA 470 01121 5667 JMP I S01067 / Return to caller 471 01122 0077 D01122, 0077 472 01123 0212 D01123, 0212 473 01124 0215 D01124, 0215 474 01125 7775 D01125, 7775 475 01126 0340 D01126, 0340 476 01127 7740 D01127, 7740 477 01130 7776 D01130, 7776 478 01131 0245 D01131, 0245 479 480 D05600=5600 481 482 *6555 483 06555 7400 7400 484 06556 7200 CLA 485 $ D00107 0107 D00110 0110 D00121 0121 D00136 0136 D00147 0147 D00166 0166 D00325 0325 D00326 0326 D00327 0327 D00330 0330 D00331 0331 D00332 0332 D00333 0333 D00334 0334 D00335 0335 D00554 0554 D00562 0562 D00570 0570 D00573 0573 D00705 0705 D00706 0706 D01064 1064 D01122 1122 D01123 1123 D01124 1124 D01125 1125 D01126 1126 D01127 1127 D01130 1130 D01131 1131 D05600 5600 FADD 11000 FATN 0005 FCOS 0004 FDIV 14000 FEXT 0000 FGET 15000 FINP 0011 FMPY 13000 FOUT 0012 FPUT 16000 FSIN 0003 FSQR 0001 FSQT 0002 FSUB 12000 ICHAR 0073 L00111 0111 L00116 0116 L00124 0124 L00127 0127 L00132 0132 L00135 0135 L00146 0146 L00170 0170 L00173 0173 L00207 0207 L00235 0235 L00240 0240 L00243 0243 L00271 0271 L00337 0337 L00466 0466 L00546 0546 L00551 0551 L00557 0557 L00565 0565 L00600 0600 L00647 0647 L01000 1000 L01053 1053 L01101 1101 L01106 1106 L01113 1113 OCHAR 0065 OCRLF 0101 OMESG 1046 OSPACE 0701 P00007 0007 P00010 0010 P00140 0140 P00143 0143 P00151 0151 P00154 0154 P00157 0157 P00162 0162 P00165 0165 P00274 0274 P00336 0336 P00366 0366 P00367 0367 P00400 0400 P00544 0544 P00671 0671 P00673 0673 P00674 0674 P00675 0675 P00676 0676 P00700 0700 P01062 1062 P01114 1114 PRSTRT 0114 PSPACE 0545 PSTART 0677 QMARK 0115 RSTART 0201 S01067 1067