1 /FOCAL-8 REPLACE 2 /DEC-08-LFRRA-A-LA1 3 4 /OCTOBER 1971 RM/SM 5 6 /COPYRIGHT 1971 DIGITAL EQUIPMENT CORPORATION 7 / MAYNARD, MASSACHUSETTS 01754 8 9 /FOCAL IS A REGISTERED TRADEMARK OF 10 /DIGITAL EQUIPMENT CORPORATION 11 12 13 /ASSEMBLY INSTRUCTIONS: 14 /.R PAL8 OR .R PAL10 15 /*REPLACE,REPLACE_REPLACE 16 17 18 NOPUNCH 90 XLIST 91 ENPUNCH 92 /***************************************************************** 93 *35 94 000035 4617 BOTTOM, FEXP-1 /********* 95 /**************************************************************** 96 NOPUNCH 410 XLIST 411 ENPUNCH 412 *402 413 /******************************************************************* 414 000402 5000 ARTN /FATN -ARCTANGENT 415 000403 4620 FEXP /FEXP -E^X 416 000404 5040 FLOG /FLOG -LN(X) 417 000405 5205 FSIN /FSIN -SINE 418 000406 5200 FCOS /FCOS -COSINE 419 /**************************************************************** 420 NOPUNCH 2379 XLIST 2380 ENPUNCH 2381 /********************************************************************** 2382 /FLOATING POINT PACKAGE - EXPONENTIAL 2383 2384 GETSGN=TAD FLAC+1 2385 RETURN=JMP I EFUN3I 2386 2387 *4600+20 2388 2389 004620 1045 FEXP, GETSGN /TAKE ABSOLUTE VALUE 2390 004621 7710 SPA CLA 2391 004622 4724 JMS I NEGP 2392 004623 3033 DCA T3 /C(SIGN)=-1 IF I X2<0 2393 004624 4407 FINT 2394 004625 4313 FMUL LG2E 2395 004626 6675 FPUT I X2 2396 004627 0000 FEXT 2397 004630 4453 JMS I INTEGER /TAKE INTEGER PART 2398 004631 3325 DCA FLAG2 /SAVE LOW ORDER DATA 2399 004632 4407 FINT 2400 004633 7000 FNOR 2401 004634 6676 FPUT I XSQ2 2402 004635 0675 FGET I X2 2403 004636 2676 FSUB I XSQ2 2404 004637 6675 FPUT I X2 2405 004640 4675 FMUL I X2 2406 004641 6676 FPUT I XSQ2 2407 004642 1310 FADD DF 2408 004643 6326 FPUT TEMP 2409 004644 0305 FGET CF 2410 004645 3326 FDIV TEMP 2411 004646 2675 FSUB I X2 2412 004647 1277 FADD AF 2413 004650 6326 FPUT TEMP 2414 004651 0302 FGET BF 2415 004652 4676 FMUL I XSQ2 2416 004653 1326 FADD TEMP 2417 004654 6326 FPUT TEMP 2418 004655 0675 FGET I X2 2419 004656 3326 FDIV TEMP 2420 004657 4321 FMUL TWO 2421 004660 1316 FADD ONE 2422 004661 0000 FEXT 2423 004662 1325 TAD FLAG2 2424 004663 1044 TAD FLAC 2425 004664 3044 DCA FLAC 2426 004665 2033 ISZ T3 2427 004666 5536 RETURN 2428 004667 4407 FINT 2429 004670 6675 FPUT I X2 2430 004671 0316 FGET ONE 2431 004672 3675 FDIV I X2 2432 004673 0000 FEXT 2433 004674 5536 RETURN 2434 2435 /CONSTANTS FOR FEXP 2436 2437 004675 5322 X2, X 2438 004676 5326 XSQ2, XSQR 2439 004677 0004 AF, 0004 2440 004700 2372 2372 2441 004701 1402 1402 2442 004702 7774 BF, 7774 2443 004703 2157 2157 2444 004704 5157 5157 2445 004705 0012 CF, 0012 2446 004706 5454 5454 2447 004707 0343 0343 2448 004710 0007 DF, 0007 2449 004711 2566 2566 2450 004712 5341 5341 2451 004713 0001 LG2E, 0001 2452 004714 2705 2705 2453 004715 2435 2435 2454 004716 0001 ONE, 0001 2455 004717 2000 2000 2456 004720 0000 0000 2457 004721 0002 TWO, 0002 2458 004722 2000 2000 2459 004723 0000 0000 2460 004724 5163 NEGP, FNEG 2461 2462 004725 0000 FLAG2, 0 2463 004726 0000 TEMP, 0 2464 004727 0000 0 2465 004730 0000 0 2466 004731 0000 0 2467 2468 2469 2470 /MAIN ALGORITHM FOR ARCTANGENT 2471 2472 004732 4407 ARCALG, FINT 2473 004733 0675 FGET I X2 2474 004734 4675 FMUL I X2 2475 004735 6676 FPUT I XSQ2 2476 004736 4374 FMUL BET2 2477 004737 1371 FADD BET1 2478 004740 4676 FMUL I XSQ2 2479 004741 1366 FADD BETZ 2480 004742 6326 FPUT TEMP 2481 004743 0363 FGET ALF2 2482 004744 4676 FMUL I XSQ2 2483 004745 1360 FADD ALF1 2484 004746 4676 FMUL I XSQ2 2485 004747 1355 FADD ALFZ 2486 004750 4675 FMUL I X2 2487 004751 3326 FDIV TEMP 2488 004752 0000 FEXT 2489 004753 5754 JMP I .+1 2490 004754 5024 ARCRTN 2491 2492 2493 2494 /CONSTANTS - FLOATING ARC TANGENT 2495 004755 0000 ALFZ, 0000 2496 004756 2437 2437 2497 004757 1643 1643 2498 004760 7777 ALF1, 7777 2499 004761 3304 3304 2500 004762 4434 4434 2501 004763 7773 ALF2, 7773 2502 004764 3306 3306 2503 004765 5454 5454 2504 004766 0000 BETZ, 0000 2505 004767 2437 2437 2506 004770 1646 1646 2507 004771 0000 BET1, 0000 2508 004772 2427 2427 2509 004773 2323 2323 2510 004774 7775 BET2, 7775 2511 004775 3427 3427 2512 004776 7052 7052 2513 2514 2515 2516 /------------------------------------------------------------ 2517 /------------------------------------------------------------ 2518 /FLOATING POINT ARC TANGENT 2519 2520 *5000 2521 2522 005000 1045 ARTN, GETSGN /TAKE ABSOLUTE VALUE 2523 005001 7710 SPA CLA 2524 005002 4363 JMS FNEG 2525 005003 3033 DCA T3 2526 005004 4407 FINT 2527 005005 6635 FPUT I X1 2528 005006 2637 FSUB I CON1 2529 005007 0000 FEXT 2530 005010 1045 GETSGN 2531 005011 7710 SPA CLA 2532 005012 5221 JMP GO /LESS THAN ONE 2533 005013 4407 FINT 2534 005014 0637 FGET I CON1 2535 005015 3635 FDIV I X1 2536 005016 6635 FPUT I X1 2537 005017 0000 FEXT 2538 005020 7240 CLA CMA 2539 005021 3362 GO, DCA FLAG1 /SIGN FLAG OF RESULT 2540 005022 5623 JMP I .+1 /CALL ALGORITHM 2541 005023 4732 ARCALG 2542 005024 2362 ARCRTN, ISZ FLAG1 /RETURN HERE 2543 005025 5634 JMP I EXIT1 2544 005026 4407 FINT 2545 005027 6635 FPUT I X1 2546 005030 0636 FGET I PI2 2547 005031 2635 FSUB I X1 2548 005032 0000 FEXT 2549 005033 5634 JMP I .+1 2550 005034 5302 EXIT1, EXIT2 2551 2552 /CONSTANTS FOR ARCTANGENT 2553 005035 5322 X1, X 2554 005036 5316 PI2, PIOT 2555 005037 4716 CON1, ONE 2556 2557 2558 005040 1045 FLOG, GETSGN /FLOATING LOGARITHM 2559 005041 7450 SNA 2560 005042 4566 ERROR3 /ZERO ARGUEMENT FOR LOG 2561 005043 7710 SPA CLA 2562 005044 4566 ERROR3 /NEGATIVE ARGUMENT 2563 005045 4407 FINT 2564 005046 6756 FPUT I TEM 2565 005047 2637 FSUB I CON1 2566 005050 0000 FEXT 2567 005051 1045 GETSGN 2568 005052 7450 SNA 2569 005053 5536 RETURN 2570 005054 7700 SMA CLA 2571 005055 5264 JMP STARTL 2572 005056 4407 FINT 2573 005057 0637 FGET I CON1 2574 005060 3756 FDIV I TEM 2575 005061 6756 FPUT I TEM 2576 005062 0000 FEXT 2577 005063 7240 CLA CMA 2578 005064 3033 STARTL, DCA T3 2579 005065 1005 TAD P13 2580 005066 3044 DCA FLAC 2581 005067 7040 CMA 2582 005070 1756 TAD I TEM 2583 005071 3045 DCA FLAC+1 2584 005072 3046 DCA FLAC+2 2585 005073 3047 DCA FLAC+3 2586 005074 7001 IAC 2587 005075 3756 DCA I TEM 2588 005076 4407 FINT 2589 005077 4357 FMUL LOG2 2590 005100 6635 FPUT I X1 2591 005101 0756 FGET I TEM 2592 005102 2637 FSUB I CON1 2593 005103 6756 FPUT I TEM 2594 005104 4353 FMUL LOG8 2595 005105 1350 FADD LOG7 2596 005106 4756 FMUL I TEM 2597 005107 1345 FADD LOG6 2598 005110 4756 FMUL I TEM 2599 005111 1342 FADD LOG5 2600 005112 4756 FMUL I TEM 2601 005113 1337 FADD L4 2602 005114 4756 FMUL I TEM 2603 005115 1334 FADD L3 2604 005116 4756 FMUL I TEM 2605 005117 1331 FADD L2 2606 005120 4756 FMUL I TEM 2607 005121 1326 FADD L1 2608 005122 4756 FMUL I TEM 2609 005123 1635 FADD I X1 2610 005124 0000 FEXT 2611 005125 5634 JMP I EXIT1 2612 2613 2614 005126 0000 L1, 0000 2615 005127 3777 3777 2616 005130 7742 7742 2617 005131 7777 L2, 7777 2618 005132 4000 4000 2619 005133 4100 4100 2620 005134 7777 L3, 7777 2621 005135 2517 2517 2622 005136 0310 0310 2623 005137 7776 L4, 7776 2624 005140 4113 4113 2625 005141 7211 7211 2626 2627 /LOGARITHM CONSTANTS 2628 2629 005142 7776 LOG5, 7776 2630 005143 2535 2535 2631 005144 3301 3301 2632 005145 7775 LOG6, 7775 2633 005146 4746 4746 2634 005147 0771 0771 2635 005150 7774 LOG7, 7774 2636 005151 2236 2236 2637 005152 4304 4304 2638 005153 7771 LOG8, 7771 2639 005154 4544 4544 2640 005155 1735 1735 2641 2642 005156 4726 TEM, TEMP 2643 005157 0000 LOG2, 0 2644 005160 2613 2613 2645 005161 4414 4414 2646 005162 0000 FLAG1, 0 2647 2648 2649 2650 2651 005163 0000 FNEG, 0 2652 005164 4451 JMS I MINSKI 2653 005165 7240 CLA CMA 2654 005166 5763 JMP I FNEG 2655 2656 2657 /------------------------------------------------------------ 2658 /------------------------------------------------------------ 2659 /FLOATING POINT SINE AND COSINE 2660 2661 *5200 2662 2663 005200 4407 FCOS, FINT /COS(X)=SIN(PI/2-X) 2664 005201 6322 FPUT X 2665 005202 0316 FGET PIOT 2666 005203 2322 FSUB X 2667 005204 0000 FEXT 2668 005205 1045 FSIN, GETSGN 2669 005206 7740 SMA SZA CLA 2670 005207 5215 JMP MOD 2671 005210 1045 GETSGN 2672 005211 7700 SMA CLA 2673 005212 5536 RETURN /YES SIN(0)=0 2674 005213 4451 JMS I MINSKI 2675 005214 7040 CMA /NO:SIN(-X)=-SIN(X) 2676 005215 3033 MOD, DCA T3 2677 /REDUCE X MODULO 2 PI 2678 005216 4407 FINT 2679 005217 3306 FDIV TWOPI 2680 005220 6326 FPUT XSQR 2681 005221 0000 FEXT 2682 005222 4453 JMS I INTEGER 2683 005223 4407 FINT 2684 005224 7000 FNOR 2685 005225 6322 FPUT X 2686 005226 0326 FGET XSQR 2687 005227 2322 FSUB X 2688 005230 4306 FMUL TWOPI 2689 005231 6322 FPUT X 2690 005232 2312 FSUB PI /X