📄 postfixvalume.asl
字号:
051F F3 00 665 lda #0h
0521 FC 28 666 sta PP
0523 20 00 00 667 call .NPR ;NPR
0526 02 07 82 668 br .MarkDP2
0529 669 .NCRD:
0529 F3 00 670 lda #0h
052B FC 28 671 sta PP
052D 20 00 00 672 call .NCR ;NCR
0530 02 07 82 673 br .MarkDP2
0533 674 .REGD:
0533 20 00 00 675 call .X_trans_LRX
0536 20 00 00 676 call .Y_trans_LRY
0539 20 16 36 677 call .ChkOverExp50
053C F5 00 678 lda0 ErrorFlag
053E A7 00 679 cmpe #0h
0540 07 07 82 680 brnz .MarkDP2
0543 20 00 00 681 call .LRY_trans_Y
0546 20 00 00 682 call .Y_trans_X
0549 20 16 36 683 call .ChkOverExp50
054C F5 00 684 lda0 ErrorFlag
054E A7 00 685 cmpe #0h
0550 07 07 82 686 brnz .MarkDP2
0553 20 00 00 687 call .LRX_trans_X
0556 20 00 00 688 call .LRY_trans_Y
0559 F3 01 689 lda #01h
055B FC 28 690 sta PP
055D F1 00 691 lda StateFlag
055F CB 07 692 anda #07h
0561 A7 01 693 cmpe #01h
0563 06 05 F6 694 brz .DoLin
0566 A7 02 695 cmpe #02h
0568 06 06 0C 696 brz .DoLog
056B A7 03 697 cmpe #03h
056D 06 06 32 698 brz .DoExp
0570 A7 04 699 cmpe #04h
0572 06 06 58 700 brz .DoPwr
0575 A7 05 701 cmpe #05h
0577 06 06 87 702 brz .DoInv
057A A7 06 703 cmpe #06h
057C 06 06 AD 704 brz .DoQuad
057F 02 07 82 705 br .MarkDP2
+ 706 ;;;;----------------------------------------
0582 707 .LRCnterInp:
0582 F3 00 708 lda #>StateFlag
0584 FC 28 709 sta PP
0586 F1 00 710 lda StateFlag
0588 CB 40 711 anda #40h
058A A7 40 712 cmpe #40h
058C 06 05 BB 713 brz .SDCnterInp
058F F3 03 714 lda #03h
0591 FC 28 715 sta PP
0593 F3 00 716 lda #0h
0595 FC 21 717 sta DP
0597 718 .SimeCK:
0597 F2 719 lda i
0598 A7 00 720 cmpe #0h
059A 06 05 A1 721 brz .D0lrSimeCnt
059D 18 722 incdp
059E 02 05 97 723 br .SimeCK
05A1 724 .D0lrSimeCnt:
05A1 38 725 decdp
05A2 F2 726 lda i
05A3 FC 21 727 sta DP
05A5 F3 02 728 lda #02h
05A7 FC 28 729 sta PP
05A9 F2 730 lda i
05AA A7 B0 731 cmpe #0b0h
05AC 07 05 EF 732 brnz .SimeERROR
05AF 20 00 00 733 call .Y_trans_X
05B2 20 15 53 734 call .SimeCounter
05B5 20 00 00 735 call .I_trans_Z
05B8 02 07 82 736 br .MarkDP2
05BB 737 .SDCnterInp:
05BB 20 00 00 738 call .X_trans_I
05BE 20 00 00 739 call .X_trans_LRX
05C1 20 00 00 740 call .Y_trans_LRY
05C4 20 00 00 741 call .LRY_trans_Y
05C7 20 00 00 742 call .Y_trans_X
05CA 20 00 00 743 call .ClrY
05CD F5 00 744 lda0 SignX
05CF F9 00 745 sta0 SignY
05D1 F3 01 746 lda #01h
05D3 F9 06 747 sta0 OperandY+6
05D5 F5 00 748 lda0 SignX
05D7 A7 01 749 cmpe #01h
05D9 07 05 E0 750 brnz .6$
05DC F3 00 751 lda #0h
05DE F9 00 752 sta0 SignY
05E0 753 .6$:
05E0 20 00 00 754 call Addition
05E3 20 00 00 755 call .Z_trans_X
05E6 20 15 53 756 call .SimeCounter
05E9 20 00 00 757 call .I_trans_Z
05EC 02 07 82 758 br .MarkDP2
05EF 759 .SimeERROR:
05EF F3 02 760 lda #02h
05F1 F9 00 761 sta0 ErrorFlag
05F3 02 07 82 762 br .MarkDP2
+ 763 ;-------------------------------------------
+ 764 ; Input Regdata
+ 765 ;-------------------------------------------
+ 766
05F6 767 .DoLin:
05F6 20 00 00 768 call .X_trans_I
05F9 F5 00 769 lda0 .KeyPos
05FB A7 DF 770 cmpe #0dfh
05FD 07 06 03 771 brnz .LinInp
0600 02 06 C3 772 br .DoLRCLmode
0603 773 .LinInp:
0603 20 00 00 774 call LR_Prepare
0606 20 00 00 775 call .I_trans_Z
0609 02 07 82 776 br .MarkDP2
+ 777
060C 778 .DoLog:
060C F3 00 779 lda #0h
060E FC 28 780 sta PP
0610 20 00 00 781 call .X_trans_I
0613 20 00 00 782 call .Y_trans_B
0616 20 00 00 783 call Ln
0619 20 00 00 784 call .Z_trans_X
061C 20 00 00 785 call .B_trans_Y
061F F5 00 786 lda0 .KeyPos
0621 A7 DF 787 cmpe #0dfh
0623 07 06 29 788 brnz .LogInp
0626 02 06 C3 789 br .DoLRCLmode
0629 790 .LogInp:
0629 20 00 00 791 call LR_Prepare
062C 20 00 00 792 call .I_trans_Z
062F 02 07 82 793 br .MarkDP2
0632 794 .DoExp:
0632 F3 00 795 lda #0h
0634 FC 28 796 sta PP
0636 20 00 00 797 call .X_trans_I
0639 20 00 00 798 call .Y_trans_X
063C 20 00 00 799 call Ln
063F 20 00 00 800 call .Z_trans_Y
0642 20 00 00 801 call .I_trans_X
0645 F5 00 802 lda0 .KeyPos
0647 A7 DF 803 cmpe #0dfh
0649 07 06 4F 804 brnz .ExpInp
064C 02 06 C3 805 br .DoLRCLmode
064F 806 .ExpInp:
064F 20 00 00 807 call LR_Prepare
0652 20 00 00 808 call .I_trans_Z
0655 02 07 82 809 br .MarkDP2
0658 810 .DoPwr:
0658 F3 00 811 lda #0h
065A FC 28 812 sta PP
065C 20 00 00 813 call .X_trans_I
065F 20 00 00 814 call .Y_trans_B
0662 20 00 00 815 call Ln
0665 20 00 00 816 call .Z_trans_S
0668 20 00 00 817 call .B_trans_X
066B 20 00 00 818 call Ln
066E 20 00 00 819 call .Z_trans_Y
0671 20 00 00 820 call .S_trans_X
0674 F5 00 821 lda0 .KeyPos
0676 A7 DF 822 cmpe #0dfh
0678 07 06 7E 823 brnz .PwrInp
067B 02 06 C3 824 br .DoLRCLmode
067E 825 .PwrInp:
067E 20 00 00 826 call LR_Prepare
0681 20 00 00 827 call .I_trans_Z
0684 02 07 82 828 br .MarkDP2
0687 829 .DoInv:
0687 F3 00 830 lda #0h
0689 FC 28 831 sta PP
068B 20 00 00 832 call .X_trans_I
068E 20 00 00 833 call .Y_trans_B
0691 20 00 00 834 call .ReciX
0694 20 00 00 835 call .Z_trans_X
0697 20 00 00 836 call .B_trans_Y
069A F5 00 837 lda0 .KeyPos
069C A7 DF 838 cmpe #0dfh
069E 07 06 A4 839 brnz .InvInpt
06A1 02 06 C3 840 br .DoLRCLmode
06A4 841 .InvInpt:
06A4 20 00 00 842 call LR_Prepare
06A7 20 00 00 843 call .I_trans_Z
06AA 02 07 82 844 br .MarkDP2
06AD 845 .DoQuad:
06AD 20 00 00 846 call .X_trans_I
06B0 F5 00 847 lda0 .KeyPos
06B2 A7 DF 848 cmpe #0dfh
06B4 07 06 BA 849 brnz .QuadInp
06B7 02 06 C3 850 br .DoLRCLmode
06BA 851 .QuadInp:
06BA 20 00 00 852 call QR_Prepare
06BD 20 00 00 853 call .I_trans_Z
06C0 02 07 82 854 br .MarkDP2
06C3 855 .DoLRCLmode:
06C3 20 00 00 856 call .ClrX
06C6 F3 02 857 lda #02h
06C8 F9 06 858 sta0 OperandX+6
06CA 20 15 53 859 call .SimeCounter
06CD 02 07 82 860 br .MarkDP2
+ 861 ;-------------------------------------------
06D0 862 .PercentEqu:
06D0 38 863 decdp
06D1 F2 864 lda i
06D2 FC 21 865 sta DP
06D4 F3 02 866 lda #02h
06D6 FC 28 867 sta PP
06D8 F2 868 lda i
06D9 A7 A4 869 cmpe #0a4h
06DB 06 06 F0 870 brz .Pecadd
06DE A7 A5 871 cmpe #0a5h
06E0 06 06 FA 872 brz .Pecdec
06E3 A7 A6 873 cmpe #0a6h
06E5 06 07 04 874 brz .Pecmul
06E8 A7 A7 875 cmpe #0a7h
06EA 06 07 20 876 brz .Pecdiv
06ED 02 03 E2 877 br .IsEqu ;.EndPercentEqu
06F0 878 .Pecadd:
06F0 F3 00 879 lda #0h
06F2 FC 28 880 sta PP
06F4 20 00 00 881 call .Percent_Add
06F7 02 07 2A 882 br .EndPercentEqu
06FA 883 .Pecdec:
06FA F3 00 884 lda #0h
06FC FC 28 885 sta PP
06FE 20 00 00 886 call .Percent_Dec
0701 02 07 2A 887 br .EndPercentEqu
0704 888 .Pecmul:
0704 F3 00 889 lda #0h
0706 FC 28 890 sta PP
0708 20 00 00 891 call .X_trans_B
070B 20 00 00 892 call .Percent_Mul
070E 20 00 00 893 call .B_trans_X
0711 F3 00 894 lda #>.SetFlag
0713 FC 28 895 sta PP
0715 F1 00 896 lda .SetFlag
0717 CB 7F 897 anda #~80h
0719 DB 80 898 ora #80h
071B FD 00 899 sta .SetFlag
071D 02 07 2A 900 br .EndPercentEqu
0720 901 .Pecdiv:
0720 F3 00 902 lda #0h
0722 FC 28 903 sta PP
+ 904
0724 20 00 00 905 call .Percent_Div
0727 02 07 2A 906 br .EndPercentEqu
072A 907 .EndPercentEqu:
072A 02 07 82 908 br .MarkDP2
+ 909 ;-------------------------------------------
072D 910 .ClearrMem::
072D F3 01 911 lda #01h
072F FC 28 912 sta PP
0731 F1 00 913 lda StateFlag
0733 CB 88 914 anda #88h ;;COMP && basen
0735 07 07 3F 915 brnz .CompClr
0738 F1 00 916 lda StateFlag
073A CB 47 917 anda #47h
073C 06 07 48 918 brz .EndClearMem
+ 919 ;call QR_Scl
+ 920 ;call .MCL
+ 921 ;br .EndClearMem
073F 922 .CompClr:
+ 923
073F 20 00 00 924 call .MCL
0742 20 00 00 925 call .ClrZ
0745 20 00 00 926 call .Z_trans_I
+ 927 ;call QR_Scl
0748 928 .EndClearMem:
0748 24 929 ret
+ 930 ;-------------------------------------------
0749 931 .MarkDP1:
0749 F3 00 932 lda #0h
074B F9 00 933 sta0 .ErrorCnt
074D F5 00 934 lda0 ErrorFlag
074F A7 00 935 cmpe #0h
0751 07 07 BA 936 brnz .EndCalcVal
0754 F3 02 937 lda #02h
0756 FC 28 938 sta PP
0758 F5 7E 939 lda0 .P2DP
075A FC 21 940 sta DP
075C F5 7D 941 lda0 .P3DP
075E FE 942 sta i
075F 20 08 0D 943 call .StoResult
0762 F5 7C 944 lda0 .IndexDP
0764 FC 21 945 sta DP
0766 F3 03 946 lda #03h
0768 FC 28 947 sta PP
076A F3 FF 948 lda #0ffh
076C FE 949 sta i
076D 18 950 incdp
076E F5 7E 951 lda0 .P2DP
0770 FE 952 sta i
0771 38 953 decdp
0772 F0 21 954 lda DP
0774 F9 7C 955 sta0 .IndexDP
0776 F5 7E 956 lda0 .P2DP
0778 1F 957 inca
0779 F9 7E 958 sta0 .P2DP
077B F3 01 959 lda #01h
077D F9 00 960 sta0 .FinFlag
077F 02 07 BA 961 br .EndCalcVal
0782 962 .MarkDP2:
0782 F3 00 963 lda #0h
0784 F9 00 964 sta0 .ErrorCnt
0786 F5 00 965 lda0 ErrorFlag
0788 A7 00 966 cmpe #0h
078A 07 07 BA 967 brnz .EndCalcVal
078D F3 02 968 lda #02h
078F FC 28 969 sta PP
0791 F5 7E 970 lda0 .P2DP
0793 FC 21 971 sta DP
0795 F5 7D 972 lda0 .P3DP
0797 FE 973 sta i
0798 20 08 0D 974 call .StoResult
079B F5 7C 975 lda0 .IndexDP
079D FC 21 976 sta DP
079F F3 03 977 lda #03h
07A1 FC 28 978 sta PP
07A3 F3 FF 979 lda #0ffh
07A5 FE 980 sta i
07A6 18 981 incdp
07A7 F3 FF 982 lda #0ffh
07A9 FE 983 sta i
07AA 18 984 incdp
07AB F5 7E 985 lda0 .P2DP
07AD FE 986 sta i
07AE F5 7E 987 lda0 .P2DP
07B0 1F 988 inca
07B1 F9 7E 989 sta0 .P2DP
07B3 F3 01 990 lda #01h
07B5 F9 00 991 sta0 .FinFlag
07B7 02 07 BA 992 br .EndCalcVal
07BA 993 .EndCalcVal:
+ 994
+ 995
07BA 24 996 ret
+ 997 ;-------------------------------------------
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -