📄 calctools.asl
字号:
03F9 F9 06 595 sta0 OperandY+6
03FB F3 00 596 lda #0h
03FD F9 00 597 sta0 PointY
03FF F9 00 598 sta0 SignY
0401 20 03 59 599 call .Pow_x_invy
0404 F5 75 600 lda0 .DataBuf
0406 F9 00 601 sta0 SignZ
0408 24 602 ret
+ 603 ;-------------------------------------------
0409 604 check_Z_carry::
0409 F5 00 605 lda0 SignZ
040B F9 75 606 sta0 .DataBuf
040D F3 00 607 lda #0h
040F F9 00 608 sta0 SignZ
0411 F5 00 609 lda0 PointZ
0413 A7 03 610 cmpe #3
0415 04 04 20 611 brc 1$
0418 F5 01 612 lda0 OperandZ+1
041A CB 0F 613 anda #0fh
041C 07 04 20 614 brnz 1$
041F 24 615 ret
+ 616 1$:
0420 20 09 F0 617 call .Z_trans_X
0423 F1 05 618 lda OperandX+Length-2
0425 CB F0 619 anda #0f0h
0427 A7 50 620 cmpe #50h
0429 04 04 2D 621 brc 2$
042C 24 622 ret
+ 623 2$:
042D F3 00 624 lda #0
042F FD 06 625 sta OperandX+Length-1
0431 FD 05 626 sta OperandX+Length-2
0433 20 05 DF 627 call .ClrY
0436 F3 01 628 lda #01h ;#05h
0438 FD 04 629 sta OperandY+Length-3
043A F1 00 630 lda PointX
043C FD 00 631 sta PointY
043E 20 00 00 632 call Addition
0441 F5 75 633 lda0 .DataBuf
0443 F9 00 634 sta0 SignZ
0445 24 635 ret
+ 636 ;-----------------------( EXP X*10^Y )------------------------
0446 637 .Expp::
0446 20 08 24 638 call .X_trans_Y
0449 20 06 07 639 call .Put_1_to_OperandX
044C 640 .Expp2::
+ 641
044C F3 00 642 lda #>.M_bcdbuf
044E FC 28 643 sta PP
0450 F5 06 644 lda0 OperandY+Length-1
0452 FD 00 645 sta .M_bcdbuf
0454 20 00 00 646 call .bcdtohex
0457 F1 00 647 lda .M_bcdbuf
0459 F9 D6 648 sta0 .M_exp_Y
045B F3 00 649 lda #0h
045D FC 28 650 sta PP
045F F5 05 651 lda0 OperandY+5
0461 A7 00 652 cmpe #0h
0463 07 04 B1 653 brnz .ErrFlag
0466 F5 00 654 lda0 PointY
0468 A7 00 655 cmpe #0h
046A 07 04 B1 656 brnz .ErrFlag
046D F5 00 657 lda0 SignY
046F A7 00 658 cmpe #0
0471 07 04 7D 659 brnz .18$
0474 F5 00 660 lda0 PointX
0476 A9 D6 661 suba .M_exp_Y
0478 FD D6 662 sta .M_exp_Y
047A 02 04 83 663 br .28$
047D 664 .18$:
047D F1 00 665 lda PointX
047F 89 D6 666 adda .M_exp_Y
0481 FD D6 667 sta .M_exp_Y
0483 668 .28$:
0483 20 08 38 669 call .X_trans_Z
0486 F1 D6 670 lda .M_exp_Y
0488 FD 00 671 sta PointZ
048A 20 00 00 672 call CheckOutData
048D F3 00 673 lda #OperandZ
048F FD 00 674 sta Addr1
0491 20 00 00 675 call CheckData
0494 F1 00 676 lda DpCount
0496 3F 677 deca
0497 FD 00 678 sta Temp1
0499 05 04 B5 679 brnc .38$
049C F1 00 680 lda PointZ
049E A9 00 681 suba Temp1
04A0 A7 63 682 cmpe #99
04A2 05 04 B5 683 brnc .38$
04A5 06 04 B5 684 brz .38$
04A8 F1 00 685 lda PointZ
04AA A9 00 686 suba Temp1
04AC A7 9D 687 cmpe #(256-99)
04AE 04 04 B5 688 brc .38$
04B1 689 .ErrFlag:
04B1 F3 02 690 lda #02
04B3 FD 00 691 sta ErrorFlag
04B5 692 .38$:
04B5 24 693 ret
+ 694 ;---------------------------------------------------------
+ 695 ; ENG
+ 696 ;---------------------------------------------------------
04B6 697 .ENG::
04B6 20 09 F0 698 call .Z_trans_X
04B9 F3 00 699 lda #0h
04BB FC 28 700 sta PP
04BD F9 00 701 sta0 SignY
04BF F9 00 702 sta0 PointY
04C1 20 05 DF 703 call .ClrY
04C4 F3 10 704 lda #10h
04C6 F9 05 705 sta0 OperandY+5
04C8 20 00 00 706 call Division
04CB 24 707 ret
+ 708 ;---------------------------------------------------------
04CC 709 .OPZ2RND::
04CC F3 00 710 lda #0h
04CE FC 28 711 sta PP
04D0 F5 00 712 lda0 PointZ
04D2 F9 6A 713 sta0 .Buf2
04D4 20 07 3F 714 call .GetDpCount
04D7 F5 00 715 lda0 DpCount
04D9 F9 69 716 sta0 .Buf1
04DB F3 01 717 lda #01h
04DD FC 28 718 sta PP
04DF F1 00 719 lda pzdispbf
04E1 F9 00 720 sta0 OperandZ
04E3 F1 01 721 lda pzdispbf+1
04E5 F9 01 722 sta0 OperandZ+1
04E7 F1 02 723 lda pzdispbf+2
04E9 F9 02 724 sta0 OperandZ+2
04EB F1 03 725 lda pzdispbf+3
04ED F9 03 726 sta0 OperandZ+3
04EF F1 04 727 lda pzdispbf+4
04F1 F9 04 728 sta0 OperandZ+4
04F3 F1 05 729 lda pzdispbf+5
04F5 F9 05 730 sta0 OperandZ+5
04F7 F1 06 731 lda pzdispbf+6
04F9 F9 06 732 sta0 OperandZ+6
04FB F3 00 733 lda #0h
04FD FC 28 734 sta PP
04FF 20 07 3F 735 call .GetDpCount
0502 F5 69 736 lda0 .Buf1
0504 A9 00 737 suba DpCount
0506 F9 69 738 sta0 .Buf1
0508 F5 6A 739 lda0 .Buf2
050A A9 69 740 suba .Buf1
050C F9 00 741 sta0 PointZ
+ 742
+ 743
+ 744
+ 745
+ 746
+ 747
+ 748
+ 749
+ 750
+ 751
0000 752 .if 0
+ 753 lda #0h
+ 754 sta PP
+ 755 call .GetDpCount
+ 756 lda0 DpCount
+ 757 sta0 .Buf2
+ 758 lda #01h
+ 759 sta PP
+ 760 lda DispFlag
+ 761 anda #0fh
+ 762 sta0 .Buf1
+ 763 lda DispFlag
+ 764 anda #0f0h
+ 765 cmpe #40h ;Fix
+ 766 brnz 1$
+ 767 call .ClrX
+ 768 lda #01h
+ 769 sta0 OperandZ+6
+ 770 call .Z_trans_Y
+ 771 call Subtration
+ 772 lda0 SignZ
+ 773 cmpe #01h
+ 774 brz 1$
+ 775 lda0 .Buf1
+ 776 inca
+ 777 sta0 .Buf1
+ 778 1$:
+ 779 lda #0h
+ 780 sta PP
+ 781 call .I_trans_Z
+ 782 call .ShiftZdata
+ 783
+ 784 ret
+ 785 .ShiftZdata:
+ 786 lda0 .Buf2
+ 787 cmpe .Buf1
+ 788 brz .Endshiftz
+ 789 call ShiftToR
+ 790 lda0 PointZ
+ 791 deca
+ 792 sta0 PointZ
+ 793 lda0 .Buf2
+ 794 deca
+ 795 sta0 .Buf2
+ 796 br .ShiftZdata
+ 797 .Endshiftz:
+ 798 lda0 OperandZ+7
+ 799 anda #0f0h
+ 800 cmpe #50h
+ 801 brnc 2$
+ 802 lda #0h
+ 803 sta0 OperandZ+7
+ 804 call .ClrX
+ 805 lda #01h
+ 806 sta0 OperandX+6
+ 807 lda0 PointZ
+ 808 sta0 PointX
+ 809 lda0 SignZ
+ 810 sta0 SignX
+ 811 call .Z_trans_Y
+ 812 call Addition
+ 813 2$:
+ 814 .endif
050E 24 815 ret
+ 816 ;-------------------------------------------
050F 817 .CopyData::
+ 818
050F F3 0A 819 lda #0ah ;09 2002 3 5
0511 F9 79 820 sta0 .Counter
0513 821 .DataCopy:
0513 F5 79 822 lda0 .Counter
0515 A7 00 823 cmpe #0h
0517 06 05 42 824 brz .EndCopy
051A F5 6F 825 lda0 .PXPP
051C FC 28 826 sta PP
051E F5 77 827 lda0 .PXDP
0520 FC 21 828 sta DP
0522 F2 829 lda i
0523 F9 7A 830 sta0 .Data
0525 F5 77 831 lda0 .PXDP
0527 1F 832 inca
0528 F9 77 833 sta0 .PXDP
052A F5 65 834 lda0 .PYPP
052C FC 28 835 sta PP
052E F5 78 836 lda0 .PYDP
0530 FC 21 837 sta DP
0532 F5 7A 838 lda0 .Data
0534 FE 839 sta i
0535 F5 78 840 lda0 .PYDP
0537 1F 841 inca
0538 F9 78 842 sta0 .PYDP
053A F5 79 843 lda0 .Counter
053C 3F 844 deca
053D F9 79 845 sta0 .Counter
053F 02 05 13 846 br .DataCopy
0542 847 .EndCopy:
+ 848
0542 F3 00 849 lda #0h
0544 FC 28 850 sta PP
0546 24 851 ret
+ 852
+ 853 ;-------------------------------------------
0547 854 .ClearData::
0547 F5 6F 855 lda0 .PXPP
0549 FC 28 856 sta PP
054B F5 77 857 lda0 .PXDP
054D FC 21 858 sta DP
054F F3 0A 859 lda #0ah ;ah
0551 F9 79 860 sta0 .Counter
0553 861 .DataClr:
0553 F5 79 862 lda0 .Counter
0555 A7 00 863 cmpe #0h
0557 06 05 66 864 brz .EndClr
055A F3 00 865 lda #0h
055C FE 866 sta i
055D 18 867 incdp
055E F5 79 868 lda0 .Counter
0560 3F 869 deca
0561 F9 79 870 sta0 .Counter
0563 02 05 53 871 br .DataClr
0566 872 .EndClr:
0566 24 873 ret
+ 874 ;-------------------------------------------
0567 875 .Input2Formula::
0567 F3 02 876 lda #02h
0569 F9 6F 877 sta0 .PXPP
056B F3 01 878 lda #01h
056D F9 65 879 sta0 .PYPP
056F F3 00 880 lda #0h
0571 F9 77 881 sta0 .PXDP
0573 F3 B0 882 lda #0b0h
0575 F9 78 883 sta0 .PYDP
0577 20 05 8F 884 call .Copyformula
057A 24 885 ret
+ 886 ;-------------------------------------------
057B 887 .Formula2Input::
057B F3 01 888 lda #01h
057D F9 6F 889 sta0 .PXPP
057F F3 02 890 lda #02h
0581 F9 65 891 sta0 .PYPP
0583 F3 B0 892 lda #0b0h
0585 F9 77 893 sta0 .PXDP
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -