📄 calcmain.asl
字号:
0685 F1 00 931 lda .SFlag
0687 CB 08 932 anda #08h
0689 06 01 73 933 brz .CalcResoult
068C 02 06 07 934 br .DORnd
+ 935 ;------------------------------------------
068F 936 .DRG:
068F F3 00 937 lda #>BasenFlag
0691 FC 28 938 sta PP
0693 F1 00 939 lda BasenFlag
0695 CB 0F 940 anda #0fh
0697 07 03 C2 941 brnz .EmitKeyD
069A F5 DF 942 lda0 .ModeFlag
069C CB F0 943 anda #0f0h
069E 07 03 C2 944 brnz .EmitKeyD
06A1 20 00 00 945 call DRGdisp
06A4 F3 01 946 lda #01h
06A6 FC 28 947 sta PP
06A8 F1 00 948 lda .SetFlag
06AA DB 02 949 ora #02h
06AC FD 00 950 sta .SetFlag
06AE 02 03 C2 951 br .EmitKeyD
+ 952 ;------------------------------------------
+ 953 ;;;;;;;;;;;;;;;Calc M+ M-
06B1 954 .M_ADD:
06B1 F3 00 955 lda #>StateFlag
06B3 FC 28 956 sta PP
06B5 F1 00 957 lda StateFlag
06B7 CB 88 958 anda #88h ;comp & basen
06B9 A7 08 959 cmpe #08h
06BB 06 06 D9 960 brz .BasenMadd
06BE A7 80 961 cmpe #80h
06C0 07 03 C2 962 brnz .EmitKeyD
06C3 20 00 00 963 call .M_TO_X
06C6 20 00 00 964 call .Z_trans_Y
06C9 F3 00 965 lda #0h
06CB FC 28 966 sta PP
06CD 20 00 00 967 call Addition
+ 968 ;call .CkOPZEmpty
06D0 20 00 00 969 call .Z_trans_X
06D3 20 00 00 970 call .X_TO_M
06D6 02 03 C2 971 br .EmitKeyD
06D9 972 .BasenMadd:
06D9 20 00 00 973 call .M_TO_X
06DC 20 00 00 974 call .Buf_trans_Y
06DF F3 00 975 lda #0h
06E1 F9 00 976 sta0 SignY
06E3 F3 00 977 lda #0h
06E5 FC 28 978 sta PP
06E7 20 00 00 979 call Addition
+ 980 ;call .CkOPZEmpty
06EA 20 00 00 981 call .Z_trans_X
06ED 20 00 00 982 call .X_TO_M
+ 983 ;call .Z_trans_Buf
06F0 02 03 C2 984 br .EmitKeyD
06F3 985 .M_SUB:
06F3 F3 00 986 lda #>StateFlag
06F5 FC 28 987 sta PP
06F7 F1 00 988 lda StateFlag
06F9 CB 88 989 anda #88h ;comp & basen
06FB A7 08 990 cmpe #08h
06FD 06 07 1B 991 brz .BasenMsub
0700 A7 80 992 cmpe #80h
0702 07 03 C2 993 brnz .EmitKeyD
+ 994 ;call .CkOPZEmpty
0705 20 00 00 995 call .M_TO_X
0708 20 00 00 996 call .Z_trans_Y
070B F3 00 997 lda #0h
070D FC 28 998 sta PP
070F 20 00 00 999 call Subtration
0712 20 00 00 1000 call .Z_trans_X
0715 20 00 00 1001 call .X_TO_M
0718 02 03 C2 1002 br .EmitKeyD
071B 1003 .BasenMsub:
071B 20 00 00 1004 call .M_TO_X
071E 20 00 00 1005 call .Buf_trans_Y
0721 F3 00 1006 lda #0h
0723 F9 00 1007 sta0 SignY
0725 F3 00 1008 lda #0h
0727 FC 28 1009 sta PP
0729 20 00 00 1010 call Subtration
+ 1011 ;call .CkOPZEmpty
072C 20 00 00 1012 call .Z_trans_X
072F 20 00 00 1013 call .X_TO_M
0732 20 00 00 1014 call .Z_trans_Buf
0735 02 03 C2 1015 br .EmitKeyD
0738 1016 .CkOPZEmpty:
0738 F3 00 1017 lda #<OperandZ
073A F9 00 1018 sta0 Addr1
073C 20 00 00 1019 call CheckData
073F F5 00 1020 lda0 DpCount
0741 A7 00 1021 cmpe #0h
0743 07 07 56 1022 brnz .Store_M
0746 F3 00 1023 lda #>.SFlag
0748 FC 28 1024 sta PP
074A F1 00 1025 lda .SFlag
074C CB F7 1026 anda #~08h
074E FD 00 1027 sta .SFlag
0750 F1 00 1028 lda .SetFlag
0752 CB DF 1029 anda #~20h
0754 FD 00 1030 sta .SetFlag
0756 1031 .Store_M:
0756 24 1032 ret
+ 1033 ;------------------------------------------
0757 1034 .STOMemory:
0757 F3 01 1035 lda #01h
0759 FC 28 1036 sta PP
075B F1 00 1037 lda BasenFlag
075D CB F0 1038 anda #0f0h
075F 06 07 65 1039 brz 1$
0762 20 00 00 1040 call .I_trans_Z
+ 1041 1$:
0765 20 00 00 1042 call .STOReg
0768 02 03 BF 1043 br .DispDotMatrix
076B 1044 .RCLMemory:
076B F3 00 1045 lda #>.SFlag
076D FC 28 1046 sta PP
076F F1 00 1047 lda .SFlag
0771 CB 40 1048 anda #40h
0773 06 07 7A 1049 brz 1$
0776 F3 00 1050 lda #0h
0778 F9 D4 1051 sta0 .DataDP
+ 1052 1$:
077A 20 00 00 1053 call .RCLReg
077D F3 00 1054 lda #>.SFlag
077F FC 28 1055 sta PP
0781 F1 00 1056 lda .SFlag
0783 CB BF 1057 anda #~40h
0785 FD 00 1058 sta .SFlag
0787 F3 01 1059 lda #01h
0789 FC 28 1060 sta PP
078B F1 00 1061 lda BasenFlag
078D CB F0 1062 anda #0f0h
078F 07 03 BF 1063 brnz .DispDotMatrix
0792 20 00 00 1064 call .Z_trans_I
0795 20 00 00 1065 call .Carry
+ 1066
0798 02 03 BF 1067 br .DispDotMatrix
+ 1068 ;;;;;;;;Anyway press left or right key set EditMode
079B 1069 .CkLR:
079B F3 00 1070 lda #0h
079D F9 00 1071 sta0 .FormulaFlag
079F 20 00 00 1072 call Chkkeylr
07A2 A7 01 1073 cmpe #01h
07A4 06 03 BF 1074 brz .DispDotMatrix
07A7 A7 02 1075 cmpe #02h
07A9 06 03 C2 1076 brz .EmitKeyD
07AC 02 03 BF 1077 br .DispDotMatrix
+ 1078 ;------------------------------------------
07AF 1079 .CKIns:
07AF F3 01 1080 lda #01h
07B1 FC 28 1081 sta PP
07B3 F1 00 1082 lda Insetflag
07B5 A7 01 1083 cmpe #01h
07B7 06 03 BF 1084 brz .DispDotMatrix
07BA 02 01 73 1085 br .CalcResoult
07BD 1086 .INSck:
07BD F3 00 1087 lda #>Insetflag
07BF FC 28 1088 sta PP
07C1 F5 00 1089 lda0 .SFDP
07C3 A7 00 1090 cmpe #0h
07C5 06 07 DE 1091 brz .Ckeck1$
07C8 F1 00 1092 lda Insetflag
07CA A7 00 1093 cmpe #0
07CC 06 07 D7 1094 brz .Ckeck0$
07CF A7 01 1095 cmpe #1
07D1 06 07 DE 1096 brz .Ckeck1$
07D4 02 03 BF 1097 br .DispDotMatrix
07D7 1098 .Ckeck0$:
07D7 F3 01 1099 lda #1
07D9 FD 00 1100 sta Insetflag
07DB 02 03 C2 1101 br .EmitKeyD
07DE 1102 .Ckeck1$:
07DE F3 00 1103 lda #0
07E0 FD 00 1104 sta Insetflag
07E2 02 03 C2 1105 br .EmitKeyD
+ 1106 ;;;;Mode select Comp SD REG Deg Rad Gra Fix Sci Norm
07E5 1107 .Modeadd:
07E5 F3 00 1108 lda #>StateFlag
07E7 FC 28 1109 sta PP
07E9 F1 00 1110 lda StateFlag
07EB F3 00 1111 lda #0h
07ED FD 00 1112 sta DaltaXcnt
07EF 20 00 00 1113 call Modeselect
07F2 02 03 BF 1114 br .DispDotMatrix
07F5 1115 .Logic:
07F5 20 00 00 1116 call LogicSelect
07F8 02 03 BF 1117 br .DispDotMatrix
+ 1118 ;;;;;;;;;;;Judge Key auto add Ans
07FB 1119 .CheckRnd::
07FB F3 00 1120 lda #>.SFlag
07FD FC 28 1121 sta PP
07FF F1 00 1122 lda .SFlag
0801 CB 30 1123 anda #30h
0803 07 05 57 1124 brnz .MemoryCK
0806 F5 00 1125 lda0 .KeyPos
0808 A7 A4 1126 cmpe #0a4h ;+
080A 06 08 C5 1127 brz .DOAns
080D A7 A5 1128 cmpe #0a5h ;-
080F 06 08 C5 1129 brz .DOAns
0812 A7 A6 1130 cmpe #0a6h ;*
0814 06 08 C5 1131 brz .DOAns
0817 A7 A7 1132 cmpe #0a7h ;/
0819 06 08 C5 1133 brz .DOAns
081C A7 D3 1134 cmpe #0d3h ;x^y
081E 06 08 C5 1135 brz .DOAns
0821 A7 D7 1136 cmpe #0d7h ;xSqu
0823 06 08 C5 1137 brz .DOAns
0826 A7 C8 1138 cmpe #0c8h ;x-1
0828 06 08 C5 1139 brz .DOAns
082B A7 D4 1140 cmpe #0d4h ;x!
082D 06 08 C5 1141 brz .DOAns
0830 A7 C5 1142 cmpe #0c5h ;x^2
0832 06 08 C5 1143 brz .DOAns
0835 A7 D2 1144 cmpe #0d2h ;x^3
0837 06 08 C5 1145 brz .DOAns
083A A7 AA 1146 cmpe #0aah ;degree
083C 06 08 C5 1147 brz .DOAns
083F A7 BB 1148 cmpe #0bbh ;Rad
0841 06 08 C5 1149 brz .DOAns
0844 A7 CE 1150 cmpe #0ceh ;G%
0846 06 08 C5 1151 brz .DOAns
0849 A7 00 1152 cmpe #0h
084B 06 09 C0 1153 brz .EndAutoaddANS ;ret
084E A7 31 1154 cmpe #31h ;shift abc
0850 06 09 C0 1155 brz .EndAutoaddANS
0853 A7 42 1156 cmpe #42h ;shift abc
0855 06 09 C0 1157 brz .EndAutoaddANS
0858 A7 52 1158 cmpe #52h ;sto
085A 06 09 C0 1159 brz .EndAutoaddANS
085D A7 53 1160 cmpe #53h ;rcl
085F 06 09 C0 1161 brz .EndAutoaddANS
0862 A7 C3 1162 cmpe #0c3h ;ab/c
0864 06 09 C0 1163 brz .EndAutoaddANS
0867 A7 B7 1164 cmpe #0b7h ;degree
0869 06 09 C0 1165 brz .EndAutoaddANS
086C A7 61 1166 cmpe #61h ;ins
086E 06 09 2A 1167 brz .RndEnd
0871 A7 65 1168 cmpe #65h ;del
0873 06 09 2A 1169 brz .RndEnd
0876 A7 60 1170 cmpe #60h ;ins
0878 06 09 2A 1171 brz .RndEnd
087B A7 B5 1172 cmpe #0b5h ;m+
087D 06 09 1F 1173 brz .EndCheckRnd
0880 A7 CC 1174 cmpe #0cch ;left
0882 06 09 1F 1175 brz .EndCheckRnd
0885 A7 DD 1176 cmpe #0ddh ;right
0887 06 09 1F 1177 brz .EndCheckRnd
088A A7 77 1178 cmpe #77h ;%
088C 06 09 1F 1179 brz .EndCheckRnd
088F A7 A3 1180 cmpe #0a3h ;=
0891 06 09 1F 1181 brz .EndCheckRnd
+ 1182 ; cmpe #0dfh ;;;;;;;
+ 1183 ; brz .EndCheckRnd
+ 1184 ; cmpe #.MODE
+ 1185 ; brz .EndCheckRnd
+ 1186 ; cmpe #0b6h
+ 1187 ; brz .EndCheckRnd
+ 1188 ; cmpe #0bdh
+ 1189 ; brz .EndCheckRnd
+ 1190 ; cmpe #0beh
+ 1191 ; brz .EndCheckRnd
+ 1192 ; cmpe #0a8h
+ 1193 ; brz .EndCheckRnd
+ 1194 ; cmpe #0b0h
+ 1195 ; brz .EndCheckRnd
+ 1196 ; cmpe #0c2h ;eng
+ 1197 ; brz .EndCheckRnd
+ 1198 ; cmpe #041h ;Shift eng
+ 1199 ; brz .EndCheckRnd
0894 F5 00 1200 lda0 .KeyPos
0896 F9 00 1201 sta0 .DataBuf
0898 F9 01 1202 sta0 .DataBuf+1
089A 20 00 00 1203 call .CheckPari
089D 20 00 00 1204 call .CheckMem
08A0 F5 00 1205 lda0 .AfterPari
08A2 A7 07 1206 cmpe #07h ;Pari 7 ex:2X^2 funct
08A4 06 08 C5 1207 brz .DOAns
08A7 A7 08 1208 cmpe #08h ;Pari 8 ex:5X^Y 6funct
08A9 06 08 C5 1209 brz .DOAns
08AC 20 00 00 1210 call .ClrP2Data
08AF F3 01 1211 lda #01h
08B1 FC 28 1212 sta PP
08B3 F1 00 1213 lda .SFlag ;cancel = flag
08B5 CB F7 1214 anda #~08h
08B7 FD 00 1215 sta .SFlag
08B9 F1 00 1216 lda .SetFlag
08BB CB C0 1217 anda #~3fh
08BD FD 00 1218 sta .SetFlag
08BF 20 00 00 1219 call Rekeyindisp2 ;only clear dotmatrix
08C2 02 09 1F 1220 br .EndCheckRnd
+ 1221 ;;;;;;;;;;;;Auto add Ans to function oode
08C5 1222 .DOAns:
08C5 F3 00 1223 lda #>.SRFlag
08C7 FC 28 1224 sta PP
08C9 F3 00 1225 lda #0h
08CB FD 00 1226 sta .SRFlag
08CD F3 00 1227 lda #>.SetFlag
08CF FC 28 1228 sta PP
08D1 F1 00 1229 lda .SetFlag
08D3 CB 80 1230 anda #80h
08D5 07 08 F8 1231 brnz .PercntMul
08D8 1232 .ANS12:
08D8 20 00 00 1233 call .ClrP2Data ;CLR Input data area Ram
+ 1234 ;;;;;;Auto add Ans data to Function code
08DB 1235 .StartAns::
08DB F3 00 1236 lda #>.SFlag
08DD FC 28 1237 sta PP
08DF F1 00 1238 lda .SFlag
08E1 CB 80 1239 anda #80h
08E3 07 09 1F 1240 brnz .EndCheckRnd
08E6 F3 02 1241 lda #02h
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -