📄 postfix.asl
字号:
0756 06 09 E0 972 brz .StoInPosfix
0759 F5 00 973 lda0 Temp2
075B F9 00 974 sta0 .Buf1
075D F3 01 975 lda #01h
075F F9 00 976 sta0 .BeforePari
0761 02 00 0A 977 br .IN2PS
0764 978 .CKFuncOrdms:
0764 F5 00 979 lda0 .DmsCount
0766 A7 00 980 cmpe #0h
0768 06 09 EA 981 brz .MemAddMulCls
076B 02 09 E0 982 br .StoInPosfix
076E 983 .FuncCheck:
076E F3 01 984 lda #01h
0770 FC 28 985 sta PP
0772 F3 01 986 lda #01h
0774 FD 00 987 sta .FunctFlag
0776 F3 00 988 lda #0h
0778 F9 00 989 sta0 .PointFlag
077A F9 00 990 sta0 .DmsCount
077C F5 00 991 lda0 .DataBuf
077E F9 00 992 sta0 Temp2
0780 F5 00 993 lda0 .Buf1
0782 F9 00 994 sta0 .DataBuf
0784 F9 01 995 sta0 .DataBuf+1
0786 20 0A 64 996 call .CheckPari
0789 20 0E F1 997 call .CheckMem
078C F5 00 998 lda0 Temp2
078E F9 00 999 sta0 .DataBuf
0790 F5 00 1000 lda0 .AfterPari
0792 F9 00 1001 sta0 .BeforePari
0794 F5 00 1002 lda0 .DataBuf
0796 F9 01 1003 sta0 .DataBuf+1
0798 20 0A 64 1004 call .CheckPari
079B 20 0E F1 1005 call .CheckMem
079E F5 00 1006 lda0 .AfterPari
07A0 A7 05 1007 cmpe #05h
07A2 06 08 C6 1008 brz .CheckPari9
07A5 A7 06 1009 cmpe #06h ;05
07A7 06 07 C1 1010 brz .CheckPari5
07AA A7 09 1011 cmpe #09h
07AC 06 08 C6 1012 brz .CheckPari9
07AF A7 0A 1013 cmpe #0ah
07B1 06 08 7E 1014 brz .CheckParia
07B4 A7 0B 1015 cmpe #0bh
07B6 06 08 FE 1016 brz .CheckParib
07B9 A7 0C 1017 cmpe #0ch
07BB 06 08 FE 1018 brz .CheckParib
07BE 02 00 0A 1019 br .IN2PS
07C1 1020 .CheckPari5:
07C1 F5 00 1021 lda0 .FormulaFlag
07C3 A7 01 1022 cmpe #01h
07C5 07 07 D2 1023 brnz .DOPari5
07C8 F5 00 1024 lda0 .INDP
07CA A7 03 1025 cmpe #03h
07CC 07 07 D2 1026 brnz .DOPari5
07CF 02 0A 35 1027 br .PushTOStack
07D2 1028 .DOPari5:
07D2 F5 00 1029 lda0 .INDP
07D4 A7 01 1030 cmpe #01h
07D6 06 0A 35 1031 brz .PushTOStack
07D9 F5 00 1032 lda0 .Buf1
07DB A7 A8 1033 cmpe #.Negative
07DD 06 08 4D 1034 brz .Chkckdecflag ;.PushStack
07E0 A7 B2 1035 cmpe #.LC
07E2 06 0D 94 1036 brz .LC2Stack ; .PushStack
07E5 A7 B4 1037 cmpe #.Comma
07E7 06 0C 20 1038 brz .PushStack
07EA A7 AE 1039 cmpe #0aeh ;add
07EC 06 09 91 1040 brz .AddMulCls
07EF A7 B0 1041 cmpe #0b0h
07F1 06 0C 20 1042 brz .PushStack
07F4 A7 AB 1043 cmpe #.Degree
07F6 06 09 76 1044 brz .ClrDmsaddmul
07F9 A7 AC 1045 cmpe #.Minute
07FB 06 09 76 1046 brz .ClrDmsaddmul
07FE A7 AD 1047 cmpe #.Second
0800 06 09 76 1048 brz .ClrDmsaddmul
0803 F5 00 1049 lda0 .BeforePari
0805 A7 00 1050 cmpe #0h
0807 06 09 9B 1051 brz .AddMul
080A A7 01 1052 cmpe #01h
080C 06 09 91 1053 brz .AddMulCls
080F A7 02 1054 cmpe #02h
0811 06 09 91 1055 brz .AddMulCls
0814 A7 03 1056 cmpe #03h
0816 06 08 4D 1057 brz .Chkckdecflag
0819 A7 04 1058 cmpe #04h
081B 06 08 4D 1059 brz .Chkckdecflag
081E A7 06 1060 cmpe #06h ;05h
0820 06 0A 35 1061 brz .PushTOStack
0823 A7 07 1062 cmpe #07h ;06
0825 06 0C 20 1063 brz .PushStack ;.AddMulCls
0828 A7 08 1064 cmpe #08h ;06
082A 06 0C 20 1065 brz .PushStack ;.AddMulCls
082D A7 0A 1066 cmpe #0ah
082F 06 09 91 1067 brz .AddMulCls
0832 A7 09 1068 cmpe #09h
0834 06 0D 94 1069 brz .LC2Stack;.PushStack
0837 A7 0C 1070 cmpe #0ch
0839 06 0C 20 1071 brz .PushStack
083C A7 0B 1072 cmpe #0bh
083E 06 0A 35 1073 brz .PushTOStack;.PushStack
0841 A7 00 1074 cmpe #0h
0843 06 0C 20 1075 brz .PushStack
0846 F5 00 1076 lda0 .DataBuf
0848 F9 00 1077 sta0 .Buf1
084A 02 00 0A 1078 br .IN2PS
084D 1079 .Chkckdecflag:
084D F5 00 1080 lda0 .DecFlag
084F CB 01 1081 anda #01h
0851 06 0C 20 1082 brz .PushStack
0854 F3 00 1083 lda #0h
0856 F9 00 1084 sta0 .DecFlag
0858 F5 00 1085 lda0 .DataBuf
085A F9 00 1086 sta0 Temp3
085C F3 A8 1087 lda #.Negative
085E F9 00 1088 sta0 .DataBuf
0860 20 0D 6B 1089 call .StoStack ;.PushData
0863 F5 00 1090 lda0 Temp3
0865 F9 00 1091 sta0 .DataBuf
0867 02 0A 35 1092 br .PushTOStack
086A 1093 .CKdms5:
086A F5 00 1094 lda0 .DmsCount
086C A7 00 1095 cmpe #0h
086E 07 03 5C 1096 brnz .SynErr
0871 02 09 91 1097 br .AddMulCls
0874 1098 .CKdms9:
0874 F5 00 1099 lda0 .DmsCount
0876 A7 00 1100 cmpe #0h
0878 07 03 5C 1101 brnz .SynErr
087B 02 0C 1D 1102 br .PushStackCLS
087E 1103 .CheckParia:
087E F5 00 1104 lda0 .Buf1
0880 A7 AB 1105 cmpe #.Degree
0882 06 09 6F 1106 brz .ClrDmsPushStack ;.ClrDmsaddmul
0885 A7 AC 1107 cmpe #.Minute
0887 06 09 6F 1108 brz .ClrDmsPushStack ;.ClrDmsaddmul
088A A7 AD 1109 cmpe #.Second
088C 06 09 6F 1110 brz .ClrDmsPushStack ;.ClrDmsaddmul
088F F5 00 1111 lda0 .BeforePari
0891 A7 00 1112 cmpe #0h
0893 06 0C 20 1113 brz .PushStack
0896 A7 01 1114 cmpe #01h
0898 06 0C 20 1115 brz .PushStack
089B A7 02 1116 cmpe #02h
089D 06 0C 20 1117 brz .PushStack
08A0 A7 06 1118 cmpe #06h ;06h
08A2 06 0C 20 1119 brz .PushStack
08A5 A7 09 1120 cmpe #09h ;06h
08A7 06 08 C0 1121 brz .DmsPopAE ;.PushStack
08AA A7 0A 1122 cmpe #0ah
08AC 06 0C 1D 1123 brz .PushStackCls
08AF A7 0B 1124 cmpe #0bh
08B1 06 09 7D 1125 brz .ClrDmsaddmulcls
08B4 A7 0C 1126 cmpe #0ch
08B6 06 09 7D 1127 brz .ClrDmsaddmulcls
08B9 F5 00 1128 lda0 .DataBuf
08BB F9 00 1129 sta0 .Buf1
08BD 02 00 0A 1130 br .IN2PS
08C0 1131 .DmsPopAE:
08C0 20 0C 85 1132 call .PopData
08C3 02 00 0A 1133 br .IN2PS
08C6 1134 .CheckPari9:
+ 1135
08C6 F5 00 1136 lda0 .Buf1
08C8 A7 AB 1137 cmpe #.Degree
08CA 06 0C 20 1138 brz .PushStack ;.SynErr
08CD A7 AC 1139 cmpe #.Minute
08CF 06 0C 20 1140 brz .PushStack ;.SynErr
08D2 A7 AD 1141 cmpe #.Second
08D4 06 0C 20 1142 brz .PushStack ;.SynErr
08D7 F5 00 1143 lda0 .BeforePari
08D9 A7 00 1144 cmpe #0h
08DB 06 0C 20 1145 brz .PushStack
08DE A7 01 1146 cmpe #01h
08E0 06 08 74 1147 brz .CKdms9
08E3 A7 02 1148 cmpe #02h
08E5 06 08 74 1149 brz .CKdms9
08E8 A7 07 1150 cmpe #07h ;06
08EA 06 0C 1D 1151 brz .PushStackCls
08ED A7 09 1152 cmpe #09h
08EF 06 0C 1D 1153 brz .PushStackCls
08F2 A7 0A 1154 cmpe #0ah
08F4 06 0C 1D 1155 brz .PushStackCls
08F7 F5 00 1156 lda0 .DataBuf
08F9 F9 00 1157 sta0 .Buf1
08FB 02 00 0A 1158 br .IN2PS
08FE 1159 .CheckParib:
08FE F5 00 1160 lda0 .INDP
0900 A7 01 1161 cmpe #01h
0902 06 0C 20 1162 brz .PushStack
0905 F5 00 1163 lda0 .Buf1
0907 A7 AB 1164 cmpe #.Degree
0909 06 0C 20 1165 brz .PushStack ;.SynErr
090C A7 AC 1166 cmpe #.Minute
090E 06 0C 20 1167 brz .PushStack ;.SynErr
0911 A7 AD 1168 cmpe #.Second
0913 06 0C 20 1169 brz .PushStack ;.SynErr
0916 F5 00 1170 lda0 .BeforePari
0918 A7 00 1171 cmpe #0h
091A 06 0C 20 1172 brz .PushStack
091D A7 01 1173 cmpe #01h
091F 06 08 74 1174 brz .CKdms9
0922 A7 02 1175 cmpe #02h
0924 06 08 74 1176 brz .CKdms9
0927 A7 03 1177 cmpe #03h
0929 06 09 5B 1178 brz .Add1PushStack
092C A7 04 1179 cmpe #04h
092E 06 09 5B 1180 brz .Add1PushStack
0931 A7 05 1181 cmpe #05h
0933 06 09 5B 1182 brz .Add1PushStack
0936 A7 06 1183 cmpe #06h ;05h
0938 06 09 5B 1184 brz .Add1PushStack
093B A7 07 1185 cmpe #07h ;06
093D 06 0C 1D 1186 brz .PushStackCls
0940 A7 09 1187 cmpe #09h
0942 06 09 5B 1188 brz .Add1PushStack
0945 A7 0A 1189 cmpe #0ah
0947 06 03 5C 1190 brz .SynErr
094A A7 0B 1191 cmpe #0bh
094C 06 03 5C 1192 brz .SynErr
094F A7 0C 1193 cmpe #0ch
0951 06 03 5C 1194 brz .SynErr
0954 F5 00 1195 lda0 .DataBuf
0956 F9 00 1196 sta0 .Buf1
0958 02 00 0A 1197 br .IN2PS
095B 1198 .Add1PushStack:
+ 1199
095B F3 01 1200 lda #01h
095D F9 00 1201 sta0 .DataBuf
095F 20 0F BF 1202 call .ClosEndPS
0962 20 0D D8 1203 call .StoPosfix
0965 20 0F BF 1204 call .ClosEndPS
0968 F3 A1 1205 lda #0a1h
096A F9 00 1206 sta0 .DataBuf
096C 02 0C 20 1207 br .PushStack
096F 1208 .ClrDmsPushStack:
096F F3 00 1209 lda #0h
0971 F9 00 1210 sta0 .DmsCount
0973 06 0C 20 1211 brz .PushStack
0976 1212 .ClrDmsaddmul:
0976 F3 00 1213 lda #0h
0978 F9 00 1214 sta0 .DmsCount
097A 02 09 9B 1215 br .AddMul
097D 1216 .ClrDmsaddmulcls:
097D 20 0F BF 1217 call .ClosEndPS
0980 F3 00 1218 lda #0h
0982 F9 00 1219 sta0 .DmsCount
0984 02 09 9B 1220 br .AddMul
0987 1221 .PolRec:
0987 20 0C 20 1222 call .PushStack
098A F5 00 1223 lda0 .DataBuf
098C F9 00 1224 sta0 .Buf1
098E 02 00 0A 1225 br .IN2PS
+ 1226 ;-------------------------------------------
0991 1227 .AddMulCls:
0991 F5 00 1228 lda0 .DmsCount
0993 A7 00 1229 cmpe #0h
0995 07 09 9B 1230 brnz .AddMul
0998 20 0F BF 1231 call .ClosEndPS
099B 1232 .AddMul:
099B F5 00 1233 lda0 .FractCount
099D A7 01 1234 cmpe #01h
099F 06 09 C5 1235 brz .AdjustFract
09A2 1236 .FractAddMul:
09A2 F5 00 1237 lda0 .DataBuf
09A4 F9 00 1238 sta0 .Buf1
09A6 F3 A6 1239 lda #.MUL
09A8 F9 00 1240 sta0 .DataBuf
09AA F9 01 1241 sta0 .DataBuf+1
09AC 20 0A 64 1242 call .CheckPari
09AF 20 0C 2A 1243 call .PushData
09B2 F5 00 1244 lda0 .Buf1
09B4 F9 00 1245 sta0 .DataBuf
09B6 F9 01 1246 sta0 .DataBuf+1
09B8 20 0A 64 1247 call .CheckPari
09BB 20 0C 2A 1248 call .PushData
09BE F3 00 1249 lda #0h
09C0 F9 00 1250 sta0 .BeforePari
09C2 02 00 0A 1251 br .IN2PS
09C5 1252 .AdjustFract:
+ 1253
09C5 F3 03 1254 lda #.STPP
09C7 FC 28 1255 sta PP
09C9 F5 00 1256 lda0 .STDP
09CB FC 21 1257 sta DP
09CD F2 1258 lda i
09CE A7 B2 1259 cmpe #.LC
09D0 06 09 A2 1260 brz .FractAddMul
09D3 F3 DE 1261 lda #0deh
09D5 FE 1262 sta i
09D6 F3 00 1263 lda #0h
09D8 F9 00 1264 sta0 .FractCount
09DA 02 09 A2 1265 br .FractAddMul
+ 1266
+ 1267
+ 1268
+ 1269
+ 1270 ;-------------------------------------------
09DD 1271 .StoInPosfixCls:
09DD 20 0F BF 1272 call .ClosEndPS
09E0 1273 .StoInPosfix:
09E0 20 0D D8 1274 call .StoPosfix
09E3 F5 00 1275 lda0 .DataBuf
09E5 F9 00 1276 sta0 .Buf1
09E7 02 00 0A 1277 br .IN2PS
+ 1278 ;-------------------------------------------
09EA 1279 .MemAddMulCls:
09EA 20 0F BF 1280 call .ClosEndPS
09ED 1281 .MemAddMul:
09ED F5 00 1282 lda0 .DataBuf
09EF F9 00 1283 sta0 .Buf2
09F1 F3 CD 1284 lda #0cdh
09F3 F9 00 1285 sta0 .DataBuf
09F5 F9 01 1286 sta0 .DataBuf+1
09F7 20 0A 64 1287 call .CheckPari
09FA 20 0C 2A 1288 call .PushData
09FD F5 00 1289 lda0 .Buf2
09FF F9 00 1290 sta0 .DataBuf
0A01 20 0E 8B 1291 call .StoFuncPS
0A04 F5 00 1292 lda0 .DataBuf
0A06 F9 00 1293 sta0 .Buf1
0A08 02 00 0A 1294 br .IN2PS
+ 1295 ;-------------------------------------------
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -