📄 calcmain.asl
字号:
0403 622 .EmitKeyD:
0403 F3 00 623 lda #0h
0405 F9 E3 624 sta0 .TurboCnt
0407 F3 01 625 lda #01h
0409 FC 28 626 sta PP
040B F1 00 627 lda .SFlag
040D CB 80 628 anda #80h
040F 06 04 20 629 brz .3$
0412 F5 00 630 lda0 .FormulaFlag
0414 A7 01 631 cmpe #01h
0416 07 04 20 632 brnz .3$
0419 F5 E0 633 lda0 .StoFlag
041B A7 00 634 cmpe #0h
041D 06 02 8D 635 brz .GetMdata
0420 636 .3$:
0420 20 0B C1 637 call .EI ;Enable INT
0423 20 00 00 638 call ModeIcom ;Disp Icom
0426 20 00 00 639 call T1chkblank
0429 F5 E1 640 lda0 .KeyCodeBuf
042B F9 00 641 sta0 .KeyPos
042D A7 14 642 cmpe #.ShiftL
042F 06 04 4D 643 brz .RelaseKey
0432 A7 15 644 cmpe #.ShiftR
0434 06 04 4D 645 brz .RelaseKey
0437 F3 00 646 lda #0h
0439 F9 E3 647 sta0 .TurboCnt
043B 648 .CheckKey0:
043B F3 32 649 lda #.RealseTime ;10ms*32=0.5sec
043D F9 E2 650 sta0 .KeyTimeCnt
043F F5 E3 651 lda0 .TurboCnt
0441 A7 08 652 cmpe #.TimeRels
0443 05 04 3B 653 brnc .CheckKey0
0446 F3 00 654 lda #0h
0448 F9 E3 655 sta0 .TurboCnt
044A 02 00 AB 656 br .CheckCode
+ 657
+ 658 ;--------------
044D 659 .RelaseKey:
+ 660 ;lda0 .SFDP
+ 661 ;cmpe #02h
+ 662 ;brnc .CheckCode
044D F3 00 663 lda #0h
044F FC 28 664 sta PP
0451 F5 E3 665 lda0 .TurboCnt
0453 A5 E2 666 cmpe .KeyTimeCnt
0455 05 04 20 667 brnc .3$
0458 F3 0A 668 lda #0ah ;100ms
045A F9 E2 669 sta0 .KeyTimeCnt
045C 02 00 FC 670 br .InputKeyHandle
+ 671
+ 672 ;-------------------------------------------
+ 673 ;;The Funtion is for Quad Mode ,Quad Estimate have X1 & X2 & Y
045F 674 .CalcEstimateXY:
045F F3 00 675 lda #>.SFlag
0461 FC 28 676 sta PP
0463 F1 00 677 lda .SFlag ;SFlag 08 is set =
0465 DB 08 678 ora #08h
0467 FD 00 679 sta .SFlag
0469 20 00 00 680 call .T_trans_X
046C F3 00 681 lda #>DaltaXcnt
046E FC 28 682 sta PP
0470 F1 00 683 lda DaltaXcnt
0472 A7 00 684 cmpe #0h
0474 07 04 7A 685 brnz .DispDaltaX2
0477 02 02 43 686 br .NoEquCalc
047A 687 .DispDaltaX2:
047A F3 00 688 lda #>font
047C FC 28 689 sta PP
047E F1 00 690 lda font ;Font=Inputkey
0480 A7 BD 691 cmpe #.DaltaX
0482 07 05 11 692 brnz .DispDaltaY
0485 F3 02 693 lda #02h
0487 FC 28 694 sta PP
0489 F3 00 695 lda #0h
048B FC 21 696 sta DP
048D F2 697 lda i
048E A7 BD 698 cmpe #.DaltaX
0490 06 04 B6 699 brz .LREstimate2
0493 700 .CkQR:
0493 20 00 00 701 call .Syntax
0496 F5 00 702 lda0 ErrorFlag
0498 A7 00 703 cmpe #0h
049A 06 02 43 704 brz .NoEquCalc
049D F3 00 705 lda #0h
049F F9 00 706 sta0 ErrorFlag
04A1 F3 00 707 lda #>DaltaXcnt
04A3 FC 28 708 sta PP
04A5 F1 00 709 lda DaltaXcnt
04A7 A7 02 710 cmpe #02h
04A9 06 05 07 711 brz .CalcQR_EstX1
04AC F3 02 712 lda #02h
04AE FD 00 713 sta DaltaXcnt
04B0 20 00 00 714 call QR_EstimateX2
04B3 02 03 7C 715 br .OnlyDisp
04B6 716 .LREstimate2:
04B6 F3 00 717 lda #>StateFlag
04B8 FC 28 718 sta PP
04BA F1 00 719 lda StateFlag
04BC CB 07 720 anda #07h
04BE A7 06 721 cmpe #06h
04C0 06 04 93 722 brz .CkQR
04C3 A7 05 723 cmpe #05h
04C5 06 04 E0 724 brz .InvEstimateX
04C8 A7 04 725 cmpe #04h
04CA 06 04 E9 726 brz .PwrEstimateX
04CD A7 03 727 cmpe #03h
04CF 06 04 F2 728 brz .ExpEstimateX
04D2 A7 02 729 cmpe #02h
04D4 06 04 FB 730 brz .LogEstimateX
04D7 731 .LinEstimateX:
04D7 20 00 00 732 call .LRX_trans_X
04DA 20 00 00 733 call LR_EstimateX
04DD 02 05 01 734 br .EstAnsCarry
04E0 735 .InvEstimateX:
04E0 20 00 00 736 call .LRX_trans_X
04E3 20 00 00 737 call LR_InvEstimateX
04E6 02 05 01 738 br .EstAnsCarry
04E9 739 .PwrEstimateX:
04E9 20 00 00 740 call .LRX_trans_X
04EC 20 00 00 741 call LR_PwrEstimateX
04EF 02 05 01 742 br .EstAnsCarry
04F2 743 .ExpEstimateX:
04F2 20 00 00 744 call .LRX_trans_X
04F5 20 00 00 745 call LR_ExpEstimateX
04F8 02 05 01 746 br .EstAnsCarry
04FB 747 .LogEstimateX:
04FB 20 00 00 748 call .LRX_trans_X
04FE 20 00 00 749 call LR_LnEstimateX
0501 750 .EstAnsCarry:
0501 20 00 00 751 call .Carry
0504 02 03 7C 752 br .OnlyDisp
+ 753 ;-------------------------------------------
+ 754
0507 755 .CalcQR_EstX1:
0507 F3 01 756 lda #01h
0509 FD 00 757 sta DaltaXcnt
050B 20 00 00 758 call QR_EstimateX1
050E 02 03 7C 759 br .OnlyDisp
0511 760 .DispDaltaY:
0511 F3 02 761 lda #02h
0513 FC 28 762 sta PP
0515 F3 00 763 lda #0h
0517 FC 21 764 sta DP
0519 F2 765 lda i
051A A7 BE 766 cmpe #.DaltaY
051C 06 05 3B 767 brz .LREstimateY2
051F 768 .CkQRY:
051F 20 00 00 769 call .Syntax
0522 F5 00 770 lda0 ErrorFlag
0524 A7 00 771 cmpe #0h
0526 06 02 43 772 brz .NoEquCalc
0529 F3 00 773 lda #0h
052B F9 00 774 sta0 ErrorFlag
052D F3 00 775 lda #>DaltaXcnt
052F FC 28 776 sta PP
0531 F3 02 777 lda #02h
0533 FD 00 778 sta DaltaXcnt
0535 20 00 00 779 call QR_EstimateY
0538 02 03 7C 780 br .OnlyDisp
053B 781 .LREstimateY2:
053B F3 00 782 lda #>StateFlag
053D FC 28 783 sta PP
053F F1 00 784 lda StateFlag
0541 CB 07 785 anda #07h
0543 A7 06 786 cmpe #06h
0545 06 05 1F 787 brz .CkQRY
0548 A7 05 788 cmpe #05h
054A 06 05 68 789 brz .InvEstimateY
054D A7 04 790 cmpe #04h
054F 06 05 74 791 brz .PwrEstimateY
0552 A7 03 792 cmpe #03h
0554 06 05 80 793 brz .ExpEstimateY
0557 A7 02 794 cmpe #02h
0559 06 05 8C 795 brz .LogEstimateY
055C 796 .LinEstimateY:
055C 20 00 00 797 call .LRY_trans_Y
055F 20 00 00 798 call .Y_trans_X
0562 20 00 00 799 call LR_EstimateY
0565 02 05 01 800 br .EstAnsCarry
0568 801 .InvEstimateY:
0568 20 00 00 802 call .LRY_trans_Y
056B 20 00 00 803 call .Y_trans_X
056E 20 00 00 804 call LR_InvEstimateY
0571 02 05 01 805 br .EstAnsCarry
0574 806 .PwrEstimateY:
0574 20 00 00 807 call .LRY_trans_Y
0577 20 00 00 808 call .Y_trans_X
057A 20 00 00 809 call LR_PwrEstimateY
057D 02 05 01 810 br .EstAnsCarry
0580 811 .ExpEstimateY:
0580 20 00 00 812 call .LRY_trans_Y
0583 20 00 00 813 call .Y_trans_X
0586 20 00 00 814 call LR_ExpEstimateY
0589 02 05 01 815 br .EstAnsCarry
058C 816 .LogEstimateY:
058C 20 00 00 817 call .LRY_trans_Y
058F 20 00 00 818 call .Y_trans_X
0592 20 00 00 819 call LR_LnEstimateY
0595 02 05 01 820 br .EstAnsCarry
+ 821 ;-------------------------------------------
0598 822 .MemoryCK:
0598 F3 01 823 lda #01h
059A FC 28 824 sta PP
059C F3 00 825 lda #^(.MemoryCheck)
059E FC 54 826 sta TPP
05A0 F3 00 827 lda #@(.MemoryCheck)
05A2 FC 02 828 sta TPH
05A4 F3 00 829 lda #<(.MemoryCheck)
05A6 FC 01 830 sta TPL
05A8 831 .SearchMem:
05A8 F8 832 ldv
05A9 F9 01 833 sta0 .DataBuf+1
05AB A7 FF 834 cmpe #0ffh
05AD 06 05 FF 835 brz .ResetStoRcl
05B0 F3 00 836 lda #0h
05B2 FC 28 837 sta PP
05B4 F5 01 838 lda0 .DataBuf+1
05B6 A7 A2 839 cmpe #0a2h ;ANS=A2
05B8 06 05 FF 840 brz .ResetStoRcl
05BB A5 00 841 cmpe .KeyPos
05BD 07 05 A8 842 brnz .SearchMem
05C0 F3 00 843 lda #>.SFlag
05C2 FC 28 844 sta PP
05C4 F1 00 845 lda .SFlag ;6 5 4 3
05C6 CB 78 846 anda #78h ;AC RCL STO EQU
05C8 A7 58 847 cmpe #58h ;AC STO EQU
05CA 06 06 0B 848 brz .ClrStoRclFlag
05CD F3 01 849 lda #01h ;STO Check
05CF FC 28 850 sta PP
+ 851 ;lda .SetFlag
05D1 F3 20 852 lda #20h ;ora #20h
05D3 FD 00 853 sta .SetFlag
05D5 F1 00 854 lda .SFlag
05D7 CB 30 855 anda #30h
05D9 A7 10 856 cmpe #10h ;SFlag 10 is Sto Mode
05DB 06 05 E3 857 brz .CheckSto ; ;.DislayMode
05DE A7 20 858 cmpe #20h ;SFlag 20 is Rcl Mode
05E0 02 07 AC 859 br .RCLMemory
05E3 860 .CheckSto:
05E3 F3 00 861 lda #>.SFlag
05E5 FC 28 862 sta PP
05E7 F1 00 863 lda .SFlag
05E9 CB 08 864 anda #08h
05EB 06 02 43 865 brz .NoEquCalc
05EE F3 01 866 lda #01h
+ 867
05F0 FC 28 868 sta PP
05F2 F1 00 869 lda StateFlag
05F4 CB 08 870 anda #08h
05F6 06 03 19 871 brz .ModeDisp
05F9 20 00 00 872 call .IsBaseNMode
05FC 02 03 19 873 br .ModeDisp
+ 874
05FF 875 .ResetStoRcl:
05FF F5 00 876 lda0 .KeyPos
0601 A7 52 877 cmpe #.StoCode ;STO
0603 06 04 03 878 brz .EmitKeyD
0606 A7 53 879 cmpe #.RclCode ;RCL
0608 06 04 03 880 brz .EmitKeyD
060B 881 .ClrStoRclFlag:
060B F3 01 882 lda #01h
060D FC 28 883 sta PP
060F F1 00 884 lda .SFlag
0611 CB CF 885 anda #~30h
0613 FD 00 886 sta .SFlag
0615 02 04 03 887 br .EmitKeyD
+ 888
+ 889 ;===========================================
0618 890 .SetRND:
0618 20 06 1E 891 call .CheckRndInp
061B 02 04 03 892 br .EmitKeyD
061E 893 .CheckRndInp:
061E F3 00 894 lda #>.SFlag
0620 FC 28 895 sta PP
0622 F1 00 896 lda .SFlag
0624 CB 08 897 anda #08h
0626 06 06 47 898 brz 2$
0629 F1 00 899 lda .SetFlag
062B CB 1C 900 anda #1ch
062D 07 06 3A 901 brnz 1$
0630 F1 00 902 lda DispFlag
0632 CB C0 903 anda #0c0h
0634 06 06 3A 904 brz 1$
0637 20 00 00 905 call .OPZ2RND
+ 906 1$:
063A 20 00 00 907 call .Z_trans_I ;I=Ans
063D F3 01 908 lda #01h
063F FC 28 909 sta PP
0641 F1 00 910 lda .SetFlag
0643 DB 01 911 ora #01h
0645 FD 00 912 sta .SetFlag
+ 913 2$:
0647 24 914 ret
+ 915 ;-------------------------------------------
0648 916 .DORnd:
0648 F5 00 917 lda0 .KeyPos
064A A7 AA 918 cmpe #0aah
064C 06 06 68 919 brz 1$
064F A7 BB 920 cmpe #0bbh
0651 06 06 68 921 brz 1$
0654 A7 CE 922 cmpe #0ceh
0656 06 06 68 923 brz 1$
0659 A7 60 924 cmpe #60H
065B 07 01 44 925 brnz .EditModeInp
065E F3 00 926 lda #0h
0660 F9 00 927 sta0 .KeyPos
0662 20 06 1E 928 call .CheckRndInp
0665 02 01 44 929 br .EditModeInp
+ 930 1$:
0668 20 08 3C 931 call .CheckRnd
066B 02 01 B4 932 br .CalcResoult
+ 933 ;------------------------------------------
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -