📄 postfix.asl
字号:
04C3 A7 AB 648 cmpe #.Degree
04C5 06 04 DF 649 brz .ClrDmsCntM
04C8 A7 AC 650 cmpe #.Minute
04CA 06 04 DF 651 brz .ClrDmsCntM
04CD A7 AD 652 cmpe #.Second
04CF 06 04 DF 653 brz .ClrDmsCntM
04D2 A7 AE 654 cmpe #0aeh
04D4 06 04 DF 655 brz .ClrDmsCntM
04D7 A7 B3 656 cmpe #.RC
04D9 06 04 E3 657 brz .MulNoDms
04DC 02 03 5C 658 br .SynErr
04DF 659 .ClrDmsCntM:
04DF F3 00 660 lda #0h
04E1 F9 00 661 sta0 .DmsCount
04E3 662 .MulNoDms:
04E3 F3 00 663 lda #0h
04E5 F9 00 664 sta0 .PointFlag
04E7 F5 00 665 lda0 .FractCount
04E9 A7 01 666 cmpe #01h
04EB 06 05 11 667 brz .AdjustOptmuldiv ;.AdjustOpt
04EE A7 02 668 cmpe #02h
04F0 06 04 AC 669 brz .ClrFractCntMul
04F3 F5 00 670 lda0 .DmsCount
04F5 A7 00 671 cmpe #0h
04F7 07 04 B3 672 brnz .ClrDmsCnt
04FA 02 0C 1D 673 br .PushStackCls; .PushStack
04FD 674 .AdjustOpt:
+ 675
04FD F3 03 676 lda #.STPP
04FF FC 28 677 sta PP
0501 F5 00 678 lda0 .STDP
0503 FC 21 679 sta DP
0505 F2 680 lda i
0506 A7 B2 681 cmpe #.LC
0508 06 0C 1D 682 brz .PushStackCls
050B F3 DE 683 lda #0deh
050D FE 684 sta i
050E 02 0A 22 685 br .Sign
0511 686 .AdjustOptmuldiv:
0511 F5 00 687 lda0 .FractTrsCnt
0513 A7 00 688 cmpe #0h
0515 07 0C 1D 689 brnz .PushStackCls
0518 F3 03 690 lda #.STPP
051A FC 28 691 sta PP
051C F5 00 692 lda0 .STDP
051E FC 21 693 sta DP
0520 694 .ChangDFMul:
0520 F2 695 lda i
0521 A7 B2 696 cmpe #.LC
0523 06 05 30 697 brz .SearchFract
0526 F3 DE 698 lda #0deh
0528 FE 699 sta i
0529 F3 00 700 lda #0h
052B F9 00 701 sta0 .FractCount
052D 02 0C 1D 702 br .PushStackCls
0530 703 .SearchFract:
0530 38 704 decdp
0531 02 05 20 705 br .ChangDFMul
+ 706 ;-------------------------------------------
0534 707 .SetSignDec:
0534 F5 00 708 lda0 .Buf1
0536 A7 DF 709 cmpe #0dfh
0538 06 05 40 710 brz .CheckFractCNT1
053B A7 DE 711 cmpe #0deh
053D 07 05 4C 712 brnz .CKNormalsigndec
0540 713 .CheckFractCNT1:
0540 F5 00 714 lda0 .FractCount
0542 A7 01 715 cmpe #01h
0544 06 04 FD 716 brz .AdjustOpt
0547 A7 02 717 cmpe #02h
0549 06 04 A5 718 brz .ClrFractCnt
054C 719 .CKNormalsigndec:
054C F5 00 720 lda0 .DataBuf
054E F9 00 721 sta0 Temp2 ;.Buf2
0550 F5 00 722 lda0 .INDP
0552 A7 01 723 cmpe #01h
0554 06 0A 22 724 brz .Sign
0557 F5 00 725 lda0 .Buf1
0559 A7 A4 726 cmpe #.ADD
055B 06 0A 22 727 brz .Sign
055E A7 A5 728 cmpe #.DEC
0560 06 0A 22 729 brz .Sign
0563 A7 A6 730 cmpe #.Mul
0565 06 0A 22 731 brz .Sign
0568 A7 A7 732 cmpe #.Div
056A 06 0A 22 733 brz .Sign
056D A7 B2 734 cmpe #.LC
056F 06 0A 22 735 brz .Sign
0572 A7 A8 736 cmpe #.Negative
0574 06 0A 22 737 brz .Sign
0577 A7 B4 738 cmpe #.Comma
0579 06 0A 22 739 brz .Sign
057C A7 B0 740 cmpe #0b0h ;----5
057E 06 0A 22 741 brz .Sign
0581 F5 00 742 lda0 .Buf1
0583 F9 00 743 sta0 .DataBuf
0585 F9 01 744 sta0 .DataBuf+1
0587 20 0A 64 745 call .CheckPari
058A 20 0E F1 746 call .CheckMem
058D F5 00 747 lda0 Temp2
058F F9 00 748 sta0 .DataBuf
0591 F5 00 749 lda0 .AfterPari
0593 A7 01 750 cmpe #01h
0595 06 03 5C 751 brz .SynErr
0598 A7 02 752 cmpe #02h
059A 06 03 5C 753 brz .SynErr
059D A7 05 754 cmpe #05h ;CNR
059F 06 0A 22 755 brz .Sign
05A2 A7 06 756 cmpe #06h ;05h
05A4 06 0A 22 757 brz .Sign
05A7 A7 09 758 cmpe #09h
05A9 06 0A 22 759 brz .Sign
05AC A7 0A 760 cmpe #0ah
05AE 06 0C 20 761 brz .PushStack ;.SynErr; .Sign
05B1 A7 0B 762 cmpe #0bh
05B3 06 0A 22 763 brz .Sign
05B6 A7 0C 764 cmpe #0ch
05B8 06 0A 22 765 brz .Sign
05BB 02 00 0A 766 br .IN2PS
+ 767 ;-------------------------------------------
05BE 768 .LeftC:
05BE F5 00 769 lda0 .FormulaFlag
05C0 A7 01 770 cmpe #01h
05C2 07 05 CF 771 brnz .DoLCmode
05C5 F5 00 772 lda0 .INDP
05C7 A7 03 773 cmpe #03h
05C9 07 05 CF 774 brnz .DoLCmode
05CC 02 0D 94 775 br .LC2Stack
05CF 776 .DoLCmode:
05CF F5 00 777 lda0 .FractTrsCnt
05D1 1F 778 inca
05D2 F9 00 779 sta0 .FractTrsCnt
05D4 F5 00 780 lda0 .DmsCount
05D6 A7 00 781 cmpe #0h
05D8 06 05 F4 782 brz .LCNoDms
05DB F5 00 783 lda0 .Buf1
05DD A7 AB 784 cmpe #.Degree
05DF 06 05 F4 785 brz .LCNoDms
05E2 A7 AC 786 cmpe #.Minute
05E4 06 05 F4 787 brz .LCNoDms
05E7 A7 AD 788 cmpe #.Second
05E9 06 05 F4 789 brz .LCNoDms
05EC A7 AE 790 cmpe #0aeh
05EE 06 05 F4 791 brz .LCNoDms
05F1 02 03 5C 792 br .SynErr
05F4 793 .LCNoDms:
05F4 F3 00 794 lda #0h
05F6 F9 00 795 sta0 .PointFlag
05F8 F9 00 796 sta0 .DmsCount
+ 797 ;sta0 .FractCount
05FA F5 00 798 lda0 .INDP
05FC A7 01 799 cmpe #01h
05FE 06 0D 94 800 brz .LC2Stack
0601 F5 00 801 lda0 .Buf1
0603 A7 A8 802 cmpe #.Negative
0605 06 06 8C 803 brz .PushNegative
0608 A7 A5 804 cmpe #.Dec
060A 06 06 8C 805 brz .PushNegative ;.PushDec
060D A7 DF 806 cmpe #0dfh ;fract add
060F 06 0D 94 807 brz .LC2Stack
0612 A7 DE 808 cmpe #0deh ;fract div
0614 06 0D 94 809 brz .LC2Stack ;.PushStack
0617 A7 AE 810 cmpe #0aeh ;.dmsADD
0619 06 06 AE 811 brz .LCDms
061C A7 A8 812 cmpe #.Negative
061E 06 0D 94 813 brz .LC2Stack
0621 A7 B2 814 cmpe #.LC
0623 06 0D 94 815 brz .LC2Stack
0626 A7 B3 816 cmpe #.RC
0628 06 0D A1 817 brz .LCAddMul
062B A7 B4 818 cmpe #.Comma
062D 06 0D 94 819 brz .LC2Stack
0630 A7 B0 820 cmpe #0b0h ;-----
0632 06 0D 94 821 brz .LC2Stack
0635 A7 A0 822 cmpe #.Point ;.
0637 06 0D 9E 823 brz .LCAddMulCls
063A F5 00 824 lda0 .DataBuf
063C F9 00 825 sta0 Temp2
063E F5 00 826 lda0 .Buf1
0640 F9 01 827 sta0 .DataBuf+1
0642 F9 00 828 sta0 .DataBuf
0644 20 0A 64 829 call .CheckPari
0647 F5 00 830 lda0 Temp2
0649 F9 00 831 sta0 .DataBuf
064B F5 00 832 lda0 .AfterPari
064D A7 00 833 cmpe #0h
064F 06 0D 94 834 brz .LC2Stack
0652 A7 01 835 cmpe #01h
0654 06 0D 9E 836 brz .LCAddMulCls
0657 A7 02 837 cmpe #02h
0659 06 0D 9E 838 brz .LCAddMulCls
065C A7 03 839 cmpe #03h
065E 06 0D 94 840 brz .LC2Stack
0661 A7 04 841 cmpe #04h
0663 06 0D 94 842 brz .LC2Stack
0666 A7 05 843 cmpe #05h ;CNR
0668 06 0D 94 844 brz .LC2Stack
066B A7 06 845 cmpe #06h ;05h
066D 06 0D 94 846 brz .LC2Stack
0670 A7 07 847 cmpe #07h ;06h
0672 06 0D 9E 848 brz .LCAddMulCls
0675 A7 0A 849 cmpe #0ah
0677 06 0D 9E 850 brz .LCAddMulCls
067A A7 09 851 cmpe #09h
067C 06 0D 94 852 brz .LC2Stack
067F A7 0B 853 cmpe #0bh
0681 06 0D 94 854 brz .LC2Stack
0684 A7 0C 855 cmpe #0ch
0686 06 0D 94 856 brz .LC2Stack
0689 02 09 91 857 br .AddMulCls
+ 858 ;.PushDec:
+ 859 ; lda0 .DecFlag
+ 860 ; anda #01h
+ 861 ; cmpe #0h
+ 862 ; brz .LC2Stack
068C 863 .PushNegative:
068C F5 00 864 lda0 .DecFlag
068E CB 01 865 anda #01h
0690 A7 00 866 cmpe #0h
0692 06 0D 94 867 brz .LC2Stack
0695 F3 00 868 lda #0h
0697 F9 00 869 sta0 .DecFlag ;0304
0699 F3 A8 870 lda #.Negative
069B F9 00 871 sta0 .DataBuf
069D 20 0D 6B 872 call .StoStack ;.PushData
06A0 F3 B2 873 lda #.LC
06A2 F9 00 874 sta0 .DataBuf
06A4 20 0D 6B 875 call .StoStack
06A7 F3 B2 876 lda #.LC
06A9 F9 00 877 sta0 .Buf1
06AB 02 00 0A 878 br .IN2PS
+ 879 ;lda #0h
+ 880 ;sta0 .DecFlag ;0304
+ 881 ;call .StoStack
+ 882 ;lda0 .DataBuf
+ 883 ;sta0 .Buf1
+ 884 ;lda #.Negative
+ 885 ;sta0 .DataBuf
+ 886 ;call .PushData
+ 887 ;lda #.LC
+ 888 ;sta0 .DataBuf
+ 889 ;br .IN2PS
06AE 890 .LCDms:
06AE F3 00 891 lda #0h
06B0 F9 00 892 sta0 .DmsCount
06B2 02 0D A1 893 br .LCAddMul
+ 894 ;-------------------------------------------
06B5 895 .RightC:
06B5 F5 00 896 lda0 .FractTrsCnt
06B7 3F 897 deca
06B8 F9 00 898 sta0 .FractTrsCnt
06BA F3 00 899 lda #0h
06BC F9 00 900 sta0 .CommaFlag
06BE F9 00 901 sta0 .PointFlag
+ 902 ;sta0 .FractCount
06C0 F9 00 903 sta0 .DmsCount
06C2 F5 00 904 lda0 .DataBuf
06C4 F9 00 905 sta0 Temp2
06C6 20 0F BF 906 call .ClosEndPS
06C9 20 0D 16 907 call .CkRightC
06CC F5 00 908 lda0 .AfterPari
06CE F9 00 909 sta0 .BeforePari
06D0 F5 00 910 lda0 Temp2
06D2 F9 00 911 sta0 .Buf1
06D4 02 00 0A 912 br .IN2PS
+ 913
+ 914
+ 915
+ 916 ;-------------------------------------------
06D7 917 .MemoryData:
06D7 F5 00 918 lda0 .FormulaFlag
06D9 A7 01 919 cmpe #01h
06DB 07 06 E5 920 brnz .NormalMem
06DE F5 00 921 lda0 .INDP
06E0 A7 03 922 cmpe #03h
06E2 06 09 E0 923 brz .StoInPosfix
06E5 924 .NormalMem:
06E5 F5 00 925 lda0 .INDP
06E7 A7 01 926 cmpe #01h
06E9 06 09 E0 927 brz .StoInPosfix
06EC F5 00 928 lda0 .Buf1
06EE F9 01 929 sta0 .DataBuf+1
06F0 A7 B3 930 cmpe #.RC
06F2 06 09 EA 931 brz .MemAddMulCls
06F5 A7 A8 932 cmpe #.Negative
06F7 06 09 E0 933 brz .StoInPosfix
06FA A7 B4 934 cmpe #.Comma
06FC 06 09 E0 935 brz .StoInPosfix
06FF A7 B0 936 cmpe #0b0h ;----
0701 06 09 E0 937 brz .StoInPosfix
0704 F5 00 938 lda0 .DataBuf
0706 F9 00 939 sta0 Temp2
0708 F5 01 940 lda0 .DataBuf+1
070A F9 00 941 sta0 .DataBuf
070C 20 0A 64 942 call .CheckPari
070F 20 0E F1 943 call .CheckMem
0712 F5 00 944 lda0 Temp2
0714 F9 00 945 sta0 .DataBuf
0716 F5 00 946 lda0 .AfterPari
0718 A7 01 947 cmpe #01h
071A 06 09 EA 948 brz .MemAddMulCls
071D A7 02 949 cmpe #02h
071F 06 09 EA 950 brz .MemAddMulCls
0722 A7 03 951 cmpe #03h
0724 06 09 E0 952 brz .StoInPosfix
0727 A7 04 953 cmpe #04h
0729 06 09 E0 954 brz .StoInPosfix
072C A7 05 955 cmpe #05h
072E 06 09 E0 956 brz .StoInPosfix
0731 A7 06 957 cmpe #06h ;05h
0733 06 09 E0 958 brz .StoInPosfix
0736 A7 07 959 cmpe #07h ;06
0738 06 09 E0 960 brz .StoInPosfix ;.MemAddMulCls
073B A7 08 961 cmpe #08h
073D 06 09 E0 962 brz .StoInPosfix
0740 A7 09 963 cmpe #09h
0742 06 09 E0 964 brz .StoInPosfix
0745 A7 0B 965 cmpe #0bh
0747 06 09 E0 966 brz .StoInPosfix
074A A7 0C 967 cmpe #0ch
074C 06 09 E0 968 brz .StoInPosfix
074F A7 0A 969 cmpe #0ah
0751 06 07 64 970 brz .CKFuncOrdms ;.MemAddMulCls ;.StoInPosfix
0754 A7 00 971 cmpe #0h
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -