📄 sat.asl
字号:
050E 803 LR_CalcYSum::
050E 20 01 14 804 call YSum_Trans_Y
0511 20 00 00 805 call .Y_trans_Z
0514 24 806 ret
+ 807 ;Compute Sum of XY
+ 808 ;Input:No
+ 809 ;Output:OperandZ
0515 810 QR_CalcXYSum::
0515 811 LR_CalcXYSum::
0515 20 01 B4 812 call XYSum_Trans_Y
0518 20 00 00 813 call .Y_trans_Z
051B 24 814 ret
+ 815 ;Compute sum of X^3
+ 816 ;input:No
+ 817 ;Output:OperandZ
051C 818 QR_CalcXCubeSum::
051C 20 00 EC 819 call XCubeSum_Trans_X
051F 20 00 00 820 call .X_trans_Z
0522 24 821 ret
+ 822 ;Compute sum of X^4
+ 823 ;Input:No
+ 824 ;Output:OperandZ
0523 825 QR_CalcXFourSum::
0523 20 01 8C 826 call XFourSum_Trans_X
0526 20 00 00 827 call .X_trans_Z
0529 24 828 ret
+ 829
+ 830 ;Compute sum of [(X^2)*Y]
+ 831 ;Input:No
+ 832 ;Output:OperandZ
052A 833 QR_CalcXSquYSum::
052A 20 02 04 834 call XSquYSum_Trans_X
052D 20 00 00 835 call .X_trans_Z
0530 24 836 ret
+ 837
+ 838
+ 839 ;Input,Output:No
+ 840 ;Clear statistic memory for computing LR
0531 841 QR_Scl::
0531 F3 00 842 lda #>QRBuf
0533 F9 00 843 sta0 Param+0 ;; PP
0535 F3 00 844 lda #<QRBuf
0537 F9 01 845 sta0 Param+1 ;; DP
0539 F3 51 846 lda #81
053B F9 02 847 sta0 Param+2 ;; Length
053D 20 00 00 848 call ClearBuf
0540 F3 00 849 lda #0h
0542 FC 28 850 sta PP
0544 24 851 ret
+ 852
+ 853
+ 854
+ 855 ;Calling the function to prepare QR operation after data input
+ 856 ;Input:OperandX,OperandY
+ 857 ;Output:No
0545 858 QR_Prepare::
+ 859
0545 20 00 00 860 call .X_trans_B ;x
0548 20 00 00 861 call .Y_trans_R ;y
054B 20 00 00 862 call Multiplation
054E 20 00 00 863 call .Z_trans_X
0551 20 01 B4 864 call XYSum_Trans_Y
0554 20 00 00 865 call Addition
0557 20 01 C8 866 call Z_Trans_XYSum
055A 20 00 00 867 call .B_trans_X
055D 20 02 40 868 call QR_PrepareX
0560 20 00 00 869 call .B_trans_X
0563 20 00 00 870 call .XSqu ;X^2
0566 20 00 00 871 call .Z_trans_Buf ;Buf=X^2
0569 20 00 00 872 call .Z_trans_X
056C 20 00 00 873 call .B_trans_Y ;X
056F 20 00 00 874 call Multiplation ;X*X^2=X^3
0572 20 00 00 875 call .Z_trans_Y
0575 20 00 EC 876 call XCubeSum_Trans_X ;XcubeSum+=num^3
0578 20 00 00 877 call Addition
057B 20 00 C4 878 call Z_Trans_XCubeSum
057E 20 00 00 879 call .Buf_trans_X ;X^2
0581 20 00 00 880 call .XSqu ;X^4
0584 20 00 00 881 call .Z_trans_Y
0587 20 01 8C 882 call XFourSum_Trans_X
058A 20 00 00 883 call Addition ;XFourSum+=X^4
058D 20 01 64 884 call Z_Trans_XFourSum
0590 20 00 00 885 call .Buf_trans_X ;Buf=X^2
0593 20 00 00 886 call .R_trans_Y ;Y
0596 20 00 00 887 call Multiplation ;(X^2)*Y
0599 20 00 00 888 call .Z_trans_Y
059C 20 02 04 889 call XSquYSum_Trans_X
059F 20 00 00 890 call Addition
05A2 20 01 DC 891 call Z_Trans_XSquYSum ;XSquYSum+=(X^2*Y)
05A5 20 00 00 892 call .R_trans_X ;y
05A8 20 02 DF 893 call QR_PrePareY
+ 894 ;;;
+ 895 ;;XSum*YSum
05AB 20 01 14 896 call YSum_Trans_Y
05AE 20 00 00 897 call .Y_trans_X
05B1 20 00 74 898 call XSum_Trans_Y
05B4 20 00 00 899 call Multiplation
05B7 20 00 00 900 call .Z_trans_Buf
+ 901 ;;XYSum*XCnt
05BA 20 00 60 902 call XCnt_Trans_Y
05BD 20 00 00 903 call .Y_trans_X
05C0 20 01 B4 904 call XYSum_Trans_Y
05C3 20 00 00 905 call Multiplation
+ 906 ;;XYSum*XCnt-XSum*YSum
05C6 20 00 00 907 call .Z_trans_X
05C9 20 00 00 908 call .Buf_trans_Y
05CC 20 00 00 909 call Subtration
05CF 20 01 F0 910 call Z_Trans_XYMulDiff ;XYMulDiff=XYSum*XCnt-XSum*YSum
05D2 24 911 ret
+ 912 ;Private functions for calc Q.R coefficients (A,B,C)
+ 913 ;Input:No
+ 914 ;Output:OperandZ
+ 915 ;Output=XSum*YSum-n*XYSum
05D3 916 QR_CalcXYDiff:
05D3 20 00 74 917 call XSum_trans_Y
05D6 20 00 00 918 call .Y_trans_X
05D9 20 01 14 919 call YSum_trans_Y
05DC 20 00 00 920 call Multiplation ;XSum*YSum
05DF 20 00 00 921 call .Z_trans_Buf ;Buf=XSum*YSum
05E2 20 00 60 922 call XCnt_Trans_Y
05E5 20 00 00 923 call .Y_trans_X
05E8 20 01 B4 924 call XYSum_Trans_Y ;n*XYSum
05EB 20 00 00 925 call Multiplation
05EE 20 00 00 926 call .Z_trans_Y
05F1 20 00 00 927 call .Buf_trans_X
05F4 20 00 00 928 call Subtration ;XSum*YSum-n*XYSum
05F7 24 929 ret
+ 930 ;Input:No
+ 931 ;Output:OperandZ
+ 932 ;output=XSquSum*XSum-n*XCubeSum
05F8 933 QR_CalcXCubeDiff:
05F8 20 00 74 934 call XSum_trans_Y
05FB 20 00 9C 935 call XSquSum_Trans_X
05FE 20 00 00 936 call Multiplation ;XSquSum*XSum
0601 20 00 00 937 call .Z_trans_Buf ;Buf=XSquSum*XSum
0604 20 00 EC 938 call XCubeSum_Trans_X
0607 20 00 60 939 call XCnt_Trans_Y
060A 20 00 00 940 call Multiplation ;n*XCubeSum
060D 20 00 00 941 call .Z_trans_Y
0610 20 00 00 942 call .Buf_trans_X
0613 20 00 00 943 call Subtration ;XSquSum*XSum-n*XCubeSum
0616 24 944 ret
+ 945 ;Input:No
+ 946 ;Output:OperandZ
+ 947 ;Output:XSum^2-n*XsquSum
0617 948 QR_CalcXSquDiff:
0617 20 00 74 949 call XSum_trans_Y
061A 20 00 00 950 call .Y_trans_X
061D 20 00 00 951 call Multiplation
0620 20 00 00 952 call .Z_trans_Buf ;Buf=XSum^2
0623 20 00 9C 953 call XSquSum_Trans_X ;XSum^2
0626 20 00 60 954 call XCnt_Trans_Y
0629 20 00 00 955 call Multiplation ;n*XSquSum
062C 20 00 00 956 call .Z_trans_Y
062F 20 00 00 957 call .Buf_trans_X
0632 20 00 00 958 call Subtration ;XSum^2-n*XsquSum
0635 24 959 ret
+ 960 ;Input:No
+ 961 ;Output:OperandZ
+ 962 ;Output:YSum*XSquSum-n*XSquYSum
0636 963 QR_CalcXSquYDiff:
0636 20 01 14 964 call YSum_Trans_Y
0639 20 00 9C 965 call XSquSum_Trans_X
063C 20 00 00 966 call Multiplation ;YSum*XSquSum
063F 20 00 00 967 call .Z_trans_Buf
0642 20 02 04 968 call XSquYSum_Trans_X
0645 20 00 60 969 call XCnt_Trans_Y
0648 20 00 00 970 call Multiplation ;n*XSquYSum
064B 20 00 00 971 call .Z_trans_Y
064E 20 00 00 972 call .Buf_trans_X
0651 20 00 00 973 call Subtration ;YSum*XSquSum-n*XSquYSum
0654 24 974 ret
+ 975 ;Input:No
+ 976 ;Output:OperandZ
+ 977 ;Output:[XSquSum^2-n*XFourSum]
+ 978
0655 979 QR_CalcXFourDiff:
0655 20 00 9C 980 call XSquSum_Trans_X
0658 20 00 00 981 call .XSqu
065B 20 00 00 982 call .Z_trans_Buf ;Buf=XSquSum^2
065E 20 00 60 983 call XCnt_Trans_Y
0661 20 01 8C 984 call XFourSum_Trans_X
0664 20 00 00 985 call Multiplation ;n*XFourSum
0667 20 00 00 986 call .Z_trans_Y
066A 20 00 00 987 call .Buf_trans_X
066D 20 00 00 988 call Subtration ;XSquSum^2-n*XFourSum
0670 24 989 ret
+ 990 ;X=4
0671 991 Put_4_to_OperandX:
0671 20 00 00 992 call .ClrX
0674 F3 04 993 lda #04h
0676 F9 06 994 sta0 OperandX+6
0678 F3 00 995 lda #0h
067A F9 00 996 sta0 PointX
067C F9 00 997 sta0 SignX
067E 24 998 ret
+ 999 ;X=2
067F 1000 Put_2_to_OperandX:
067F 20 00 00 1001 call .ClrX
0682 F3 02 1002 lda #02h
0684 F9 06 1
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -