📄 calcmain.asl
字号:
066E 934 .SetDRG:
066E F5 00 935 lda0 .KeyPos
0670 A7 01 936 cmpe #01h
0672 06 06 82 937 brz .SetD
0675 A7 02 938 cmpe #02h
0677 06 06 89 939 brz .SetR
067A A7 03 940 cmpe #03h
067C 06 06 90 941 brz .SetG
067F 02 04 03 942 br .EmitKeyD
0682 943 .SetD:
0682 F3 AA 944 lda #0aah
0684 F9 00 945 sta0 .KeyPos
0686 02 06 94 946 br .ClrScreen
0689 947 .SetR:
0689 F3 BB 948 lda #0bbh
068B F9 00 949 sta0 .KeyPos
068D 02 06 94 950 br .ClrScreen
0690 951 .SetG:
0690 F3 CE 952 lda #0ceh
0692 F9 00 953 sta0 .KeyPos
0694 954 .ClrScreen:
0694 F3 02 955 lda #02h
0696 FC 28 956 sta PP
0698 F3 00 957 lda #0h
069A FC 21 958 sta DP
069C F2 959 lda i
069D A7 A2 960 cmpe #0a2h
069F 07 06 A5 961 brnz .DispScreen
06A2 20 00 00 962 call .ClrP2Data
06A5 963 .DispScreen:
06A5 F3 00 964 lda #>.SRFlag
06A7 FC 28 965 sta PP
06A9 F3 00 966 lda #0h
06AB FD 00 967 sta .SRFlag
06AD 20 00 00 968 call Clrfullmatrix
06B0 20 00 00 969 call Clrfullseg
06B3 20 00 00 970 call Rightchk
06B6 20 00 00 971 call ChkDispAns
06B9 20 00 00 972 call ShowAnschk
06BC F3 01 973 lda #01h
06BE FC 28 974 sta PP
06C0 F1 00 975 lda .SetFlag
06C2 CB FD 976 anda #~02h
06C4 FD 00 977 sta .SetFlag
06C6 F1 00 978 lda .SFlag
06C8 CB 08 979 anda #08h
06CA 06 01 B4 980 brz .CalcResoult
06CD 02 06 48 981 br .DORnd
+ 982 ;------------------------------------------
06D0 983 .DRG:
06D0 F3 00 984 lda #>BasenFlag
06D2 FC 28 985 sta PP
06D4 F1 00 986 lda BasenFlag
06D6 CB 0F 987 anda #0fh
06D8 07 04 03 988 brnz .EmitKeyD
06DB F5 DF 989 lda0 .ModeFlag
06DD CB F0 990 anda #0f0h
06DF 07 04 03 991 brnz .EmitKeyD
06E2 20 00 00 992 call DRGdisp
06E5 F3 01 993 lda #01h
06E7 FC 28 994 sta PP
06E9 F1 00 995 lda .SetFlag
06EB DB 02 996 ora #02h
06ED FD 00 997 sta .SetFlag
06EF 02 04 03 998 br .EmitKeyD
+ 999 ;------------------------------------------
+ 1000 ;;;;;;;;;;;;;;;Calc M+ M-
06F2 1001 .M_ADD:
06F2 F3 00 1002 lda #>StateFlag
06F4 FC 28 1003 sta PP
06F6 F1 00 1004 lda StateFlag
06F8 CB 88 1005 anda #88h ;comp & basen
06FA A7 08 1006 cmpe #08h
06FC 06 07 1A 1007 brz .BasenMadd
06FF A7 80 1008 cmpe #80h
0701 07 04 03 1009 brnz .EmitKeyD
0704 20 00 00 1010 call .M_TO_X
0707 20 00 00 1011 call .Z_trans_Y
070A F3 00 1012 lda #0h
070C FC 28 1013 sta PP
070E 20 00 00 1014 call Addition
+ 1015 ;call .CkOPZEmpty
0711 20 00 00 1016 call .Z_trans_X
0714 20 00 00 1017 call .X_TO_M
0717 02 04 03 1018 br .EmitKeyD
071A 1019 .BasenMadd:
071A 20 00 00 1020 call .M_TO_X
071D 20 00 00 1021 call .Buf_trans_Y
0720 F3 00 1022 lda #0h
0722 F9 00 1023 sta0 SignY
0724 F3 00 1024 lda #0h
0726 FC 28 1025 sta PP
0728 20 00 00 1026 call Addition
+ 1027 ;call .CkOPZEmpty
072B 20 00 00 1028 call .Z_trans_X
072E 20 00 00 1029 call .X_TO_M
+ 1030 ;call .Z_trans_Buf
0731 02 04 03 1031 br .EmitKeyD
0734 1032 .M_SUB:
0734 F3 00 1033 lda #>StateFlag
0736 FC 28 1034 sta PP
0738 F1 00 1035 lda StateFlag
073A CB 88 1036 anda #88h ;comp & basen
073C A7 08 1037 cmpe #08h
073E 06 07 5C 1038 brz .BasenMsub
0741 A7 80 1039 cmpe #80h
0743 07 04 03 1040 brnz .EmitKeyD
+ 1041 ;call .CkOPZEmpty
0746 20 00 00 1042 call .M_TO_X
0749 20 00 00 1043 call .Z_trans_Y
074C F3 00 1044 lda #0h
074E FC 28 1045 sta PP
0750 20 00 00 1046 call Subtration
0753 20 00 00 1047 call .Z_trans_X
0756 20 00 00 1048 call .X_TO_M
0759 02 04 03 1049 br .EmitKeyD
075C 1050 .BasenMsub:
075C 20 00 00 1051 call .M_TO_X
075F 20 00 00 1052 call .Buf_trans_Y
0762 F3 00 1053 lda #0h
0764 F9 00 1054 sta0 SignY
0766 F3 00 1055 lda #0h
0768 FC 28 1056 sta PP
076A 20 00 00 1057 call Subtration
+ 1058 ;call .CkOPZEmpty
076D 20 00 00 1059 call .Z_trans_X
0770 20 00 00 1060 call .X_TO_M
0773 20 00 00 1061 call .Z_trans_Buf
0776 02 04 03 1062 br .EmitKeyD
0779 1063 .CkOPZEmpty:
0779 F3 00 1064 lda #<OperandZ
077B F9 00 1065 sta0 Addr1
077D 20 00 00 1066 call CheckData
0780 F5 00 1067 lda0 DpCount
0782 A7 00 1068 cmpe #0h
0784 07 07 97 1069 brnz .Store_M
0787 F3 00 1070 lda #>.SFlag
0789 FC 28 1071 sta PP
078B F1 00 1072 lda .SFlag
078D CB F7 1073 anda #~08h
078F FD 00 1074 sta .SFlag
0791 F1 00 1075 lda .SetFlag
0793 CB DF 1076 anda #~20h
0795 FD 00 1077 sta .SetFlag
0797 1078 .Store_M:
0797 24 1079 ret
+ 1080 ;------------------------------------------
0798 1081 .STOMemory:
0798 F3 01 1082 lda #01h
079A FC 28 1083 sta PP
079C F1 00 1084 lda BasenFlag
079E CB F0 1085 anda #0f0h
07A0 06 07 A6 1086 brz 1$
07A3 20 00 00 1087 call .I_trans_Z
+ 1088 1$:
07A6 20 00 00 1089 call .STOReg
07A9 02 04 00 1090 br .DispDotMatrix
07AC 1091 .RCLMemory:
07AC F3 00 1092 lda #>.SFlag
07AE FC 28 1093 sta PP
07B0 F1 00 1094 lda .SFlag
07B2 CB 40 1095 anda #40h
07B4 06 07 BB 1096 brz 1$
07B7 F3 00 1097 lda #0h
07B9 F9 D4 1098 sta0 .DataDP
+ 1099 1$:
07BB 20 00 00 1100 call .RCLReg
07BE F3 00 1101 lda #>.SFlag
07C0 FC 28 1102 sta PP
07C2 F1 00 1103 lda .SFlag
07C4 CB BF 1104 anda #~40h
07C6 FD 00 1105 sta .SFlag
07C8 F3 01 1106 lda #01h
07CA FC 28 1107 sta PP
07CC F1 00 1108 lda BasenFlag
07CE CB F0 1109 anda #0f0h
07D0 07 04 00 1110 brnz .DispDotMatrix
07D3 20 00 00 1111 call .Z_trans_I
07D6 20 00 00 1112 call .Carry
+ 1113
07D9 02 04 00 1114 br .DispDotMatrix
+ 1115 ;;;;;;;;Anyway press left or right key set EditMode
07DC 1116 .CkLR:
07DC F3 00 1117 lda #0h
07DE F9 00 1118 sta0 .FormulaFlag
07E0 20 00 00 1119 call Chkkeylr
07E3 A7 01 1120 cmpe #01h
07E5 06 04 00 1121 brz .DispDotMatrix
07E8 A7 02 1122 cmpe #02h
07EA 06 04 03 1123 brz .EmitKeyD
07ED 02 04 00 1124 br .DispDotMatrix
+ 1125 ;------------------------------------------
07F0 1126 .CKIns:
07F0 F3 01 1127 lda #01h
07F2 FC 28 1128 sta PP
07F4 F1 00 1129 lda Insetflag
07F6 A7 01 1130 cmpe #01h
07F8 06 04 00 1131 brz .DispDotMatrix
07FB 02 01 B4 1132 br .CalcResoult
07FE 1133 .INSck:
07FE F3 00 1134 lda #>Insetflag
0800 FC 28 1135 sta PP
0802 F5 00 1136 lda0 .SFDP
0804 A7 00 1137 cmpe #0h
0806 06 08 1F 1138 brz .Ckeck1$
0809 F1 00 1139 lda Insetflag
080B A7 00 1140 cmpe #0
080D 06 08 18 1141 brz .Ckeck0$
0810 A7 01 1142 cmpe #1
0812 06 08 1F 1143 brz .Ckeck1$
0815 02 04 00 1144 br .DispDotMatrix
0818 1145 .Ckeck0$:
0818 F3 01 1146 lda #1
081A FD 00 1147 sta Insetflag
081C 02 04 03 1148 br .EmitKeyD
081F 1149 .Ckeck1$:
081F F3 00 1150 lda #0
0821 FD 00 1151 sta Insetflag
0823 02 04 03 1152 br .EmitKeyD
+ 1153 ;;;;Mode select Comp SD REG Deg Rad Gra Fix Sci Norm
0826 1154 .Modeadd:
0826 F3 00 1155 lda #>StateFlag
0828 FC 28 1156 sta PP
082A F1 00 1157 lda StateFlag
082C F3 00 1158 lda #0h
082E FD 00 1159 sta DaltaXcnt
0830 20 00 00 1160 call Modeselect
0833 02 04 00 1161 br .DispDotMatrix
0836 1162 .Logic:
0836 20 00 00 1163 call LogicSelect
0839 02 04 00 1164 br .DispDotMatrix
+ 1165 ;;;;;;;;;;;Judge Key auto add Ans
083C 1166 .CheckRnd::
083C F3 00 1167 lda #>.SFlag
083E FC 28 1168 sta PP
0840 F1 00 1169 lda .SFlag
0842 CB 30 1170 anda #30h
0844 07 05 98 1171 brnz .MemoryCK
0847 F5 00 1172 lda0 .KeyPos
0849 A7 A4 1173 cmpe #0a4h ;+
084B 06 09 06 1174 brz .DOAns
084E A7 A5 1175 cmpe #0a5h ;-
0850 06 09 06 1176 brz .DOAns
0853 A7 A6 1177 cmpe #0a6h ;*
0855 06 09 06 1178 brz .DOAns
0858 A7 A7 1179 cmpe #0a7h ;/
085A 06 09 06 1180 brz .DOAns
085D A7 D3 1181 cmpe #0d3h ;x^y
085F 06 09 06 1182 brz .DOAns
0862 A7 D7 1183 cmpe #0d7h ;xSqu
0864 06 09 06 1184 brz .DOAns
0867 A7 C8 1185 cmpe #0c8h ;x-1
0869 06 09 06 1186 brz .DOAns
086C A7 D4 1187 cmpe #0d4h ;x!
086E 06 09 06 1188 brz .DOAns
0871 A7 C5 1189 cmpe #0c5h ;x^2
0873 06 09 06 1190 brz .DOAns
0876 A7 D2 1191 cmpe #0d2h ;x^3
0878 06 09 06 1192 brz .DOAns
087B A7 AA 1193 cmpe #0aah ;degree
087D 06 09 06 1194 brz .DOAns
0880 A7 BB 1195 cmpe #0bbh ;Rad
0882 06 09 06 1196 brz .DOAns
0885 A7 CE 1197 cmpe #0ceh ;G%
0887 06 09 06 1198 brz .DOAns
088A A7 00 1199 cmpe #0h
088C 06 0A 01 1200 brz .EndAutoaddANS ;ret
088F A7 31 1201 cmpe #31h ;shift abc
0891 06 0A 01 1202 brz .EndAutoaddANS
0894 A7 42 1203 cmpe #42h ;shift abc
0896 06 0A 01 1204 brz .EndAutoaddANS
0899 A7 52 1205 cmpe #52h ;sto
089B 06 0A 01 1206 brz .EndAutoaddANS
089E A7 53 1207 cmpe #53h ;rcl
08A0 06 0A 01 1208 brz .EndAutoaddANS
08A3 A7 C3 1209 cmpe #0c3h ;ab/c
08A5 06 0A 01 1210 brz .EndAutoaddANS
08A8 A7 B7 1211 cmpe #0b7h ;degree
08AA 06 0A 01 1212 brz .EndAutoaddANS
08AD A7 61 1213 cmpe #61h ;ins
08AF 06 09 6B 1214 brz .RndEnd
08B2 A7 65 1215 cmpe #65h ;del
08B4 06 09 6B 1216 brz .RndEnd
08B7 A7 60 1217 cmpe #60h ;ins
08B9 06 09 6B 1218 brz .RndEnd
08BC A7 B5 1219 cmpe #0b5h ;m+
08BE 06 09 60 1220 brz .EndCheckRnd
08C1 A7 CC 1221 cmpe #0cch ;left
08C3 06 09 60 1222 brz .EndCheckRnd
08C6 A7 DD 1223 cmpe #0ddh ;right
08C8 06 09 60 1224 brz .EndCheckRnd
08CB A7 77 1225 cmpe #77h ;%
08CD 06 09 60 1226 brz .EndCheckRnd
08D0 A7 A3 1227 cmpe #0a3h ;=
08D2 06 09 60 1228 brz .EndCheckRnd
+ 1229 ; cmpe #0dfh ;;;;;;;
+ 1230 ; brz .EndCheckRnd
+ 1231 ; cmpe #.MODE
+ 1232 ; brz .EndCheckRnd
+ 1233 ; cmpe #0b6h
+ 1234 ; brz .EndCheckRnd
+ 1235 ; cmpe #0bdh
+ 1236 ; brz .EndCheckRnd
+ 1237 ; cmpe #0beh
+ 1238 ; brz .EndCheckRnd
+ 1239 ; cmpe #0a8h
+ 1240 ; brz .EndCheckRnd
+ 1241 ; cmpe #0b0h
+ 1242 ; brz .EndCheckRnd
+ 1243 ; cmpe #0c2h ;eng
+ 1244 ; brz .EndCheckRnd
+ 1245 ; cmpe #041h ;Shift eng
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -