📄 calcmain.asl
字号:
08E8 FC 28 1242 sta PP
08EA F3 00 1243 lda #0h
08EC FC 21 1244 sta DP
08EE F3 A2 1245 lda #.ANS
08F0 FE 1246 sta i
08F1 F3 01 1247 lda #01h
08F3 F9 D4 1248 sta0 .DataDP ;Set auto add Ans key
08F5 02 09 1F 1249 br .EndCheckRnd
08F8 1250 .PercntMul:
08F8 F5 00 1251 lda0 .KeyPos
08FA A7 A4 1252 cmpe #0a4h
08FC 06 09 07 1253 brz .DOXAddZ
08FF A7 A5 1254 cmpe #0a5h
0901 06 09 13 1255 brz .DOXDecZ
0904 02 08 D8 1256 br .ANS12
0907 1257 .DOXAddZ:
0907 20 00 00 1258 call .B_trans_X
090A 20 00 00 1259 call .Z_trans_Y
090D 20 00 00 1260 call Addition
0910 02 09 1F 1261 br .EndCheckRnd
0913 1262 .DOXDecZ:
0913 20 00 00 1263 call .B_trans_X
0916 20 00 00 1264 call .Z_trans_Y
0919 20 00 00 1265 call Subtration
091C 02 09 1F 1266 br .EndCheckRnd
+ 1267
+ 1268 ;;;;;;;;;;;;disable display mode and rnd mode
091F 1269 .EndCheckRnd:
091F F3 01 1270 lda #01h
0921 FC 28 1271 sta PP
0923 F1 00 1272 lda .SetFlag
0925 CB DE 1273 anda #~21h
0927 FD 00 1274 sta .SetFlag
0929 24 1275 ret
092A 1276 .RndEnd:
092A F3 00 1277 lda #0h
092C F9 00 1278 sta0 .KeyPos
092E 24 1279 ret
+ 1280 ;===========================================
092F 1281 .AutoaddANS::
+ 1282
092F F5 D4 1283 lda0 .DataDP
0931 A7 01 1284 cmpe #01h
0933 07 09 C0 1285 brnz .EndAutoaddANS
0936 F3 02 1286 lda #02h
0938 FC 28 1287 sta PP
093A F3 00 1288 lda #0
093C FC 21 1289 sta DP
093E F2 1290 lda i
093F F9 00 1291 sta0 .DataBuf
0941 F9 01 1292 sta0 .DataBuf+1
0943 20 00 00 1293 call .CheckPari
0946 20 00 00 1294 call .CheckMem
0949 F5 00 1295 lda0 .AfterPari
094B A7 06 1296 cmpe #06h
094D 06 09 AA 1297 brz .DOAns5
0950 02 09 C0 1298 br .EndAutoaddANS
0953 1299 .BasenModeAns::
0953 F3 00 1300 lda #>.SFlag
0955 FC 28 1301 sta PP
0957 F1 00 1302 lda .SFlag
0959 CB 08 1303 anda #08h
095B 06 09 C0 1304 brz .EndAutoaddANS
095E F5 00 1305 lda0 .KeyPos
0960 F9 00 1306 sta0 .DataBuf
0962 20 00 00 1307 call .Paricmp
0965 F5 00 1308 lda0 .AfterPari
0967 A7 07 1309 cmpe #07h
0969 06 09 79 1310 brz .BaseAns
096C A7 09 1311 cmpe #09h
096E 06 09 79 1312 brz .BaseAns
0971 A7 0F 1313 cmpe #0fh
0973 06 09 8E 1314 brz .Clrp2Inp
0976 02 09 C0 1315 br .EndAutoaddANS
0979 1316 .BaseAns:
0979 20 00 00 1317 call .ClrP2Edit
097C F3 02 1318 lda #02h
097E FC 28 1319 sta PP
0980 F3 00 1320 lda #0h
0982 FC 21 1321 sta DP
0984 F3 A2 1322 lda #.ANS
0986 FE 1323 sta i
0987 F3 01 1324 lda #01h
0989 F9 D4 1325 sta0 .DataDP
098B 02 09 95 1326 br .ClrAnsFlag
098E 1327 .Clrp2Inp:
098E 20 00 00 1328 call .ClrP2Edit
0991 F3 00 1329 lda #0h
0993 F9 D4 1330 sta0 .DataDP
+ 1331
+ 1332
0995 1333 .ClrAnsFlag:
0995 F3 00 1334 lda #>.SFlag
0997 FC 28 1335 sta PP
0999 F1 00 1336 lda .SFlag
099B CB F7 1337 anda #~08h
099D FD 00 1338 sta .SFlag
099F F3 00 1339 lda #>.SRFlag
09A1 FC 28 1340 sta PP
09A3 F3 00 1341 lda #0h
09A5 FD 00 1342 sta .SRFlag
+ 1343
09A7 02 09 C0 1344 br .EndAutoaddANS
+ 1345 ;;;;;;;;;;;;Auto add Ans to function mode
09AA 1346 .DOAns5:
09AA F5 00 1347 lda0 .KeyPos
09AC A7 A8 1348 cmpe #0a8h
09AE 06 09 C0 1349 brz .EndAutoaddANS
09B1 F3 02 1350 lda #02h
09B3 FC 28 1351 sta PP
09B5 F5 00 1352 lda0 .DataBuf
09B7 FE 1353 sta i
09B8 18 1354 incdp
09B9 F3 A2 1355 lda #.ANS
09BB FE 1356 sta i
09BC F3 02 1357 lda #02h
09BE F9 D4 1358 sta0 .DataDP ;Set auto add Ans key
+ 1359
+ 1360 ;;;;;;;;;;;;disable display mode and rnd mode
09C0 1361 .EndAutoaddANS:
+ 1362
+ 1363
09C0 24 1364 ret
+ 1365
+ 1366
+ 1367
+ 1368 ;-------------------------------------------
09C1 1369 .BaseN:
+ 1370
09C1 F3 00 1371 lda #>.SetFlag
09C3 FC 28 1372 sta PP
09C5 F1 00 1373 lda .SetFlag
09C7 CB 20 1374 anda #20h
09C9 06 0A 2B 1375 brz .EditMode
09CC 20 00 00 1376 call .Buf_trans_X
09CF F5 00 1377 lda0 .KeyPos
09D1 A7 7C 1378 cmpe #.DecM
09D3 06 09 E8 1379 brz .TransDec
09D6 A7 7D 1380 cmpe #.HexM
09D8 06 09 F4 1381 brz .TransHex
09DB A7 7E 1382 cmpe #.BinM
09DD 06 0A 00 1383 brz .TransBin
09E0 A7 7F 1384 cmpe #.OctM
09E2 06 0A 0C 1385 brz .TransOct
09E5 02 0A 2B 1386 br .EditMode
09E8 1387 .TransDec:
09E8 20 00 00 1388 call .Buf_trans_Z
09EB 20 00 00 1389 call .Z_trans_X
09EE 20 00 00 1390 call CheckDecLimit
09F1 02 0A 18 1391 br .DispBaseN
09F4 1392 .TransHex:
09F4 20 00 00 1393 call Base_Dec2Hex
09F7 20 00 00 1394 call .Z_trans_X
09FA 20 00 00 1395 call CheckHexLimit
09FD 02 0A 18 1396 br .DispBaseN
0A00 1397 .TransBin:
0A00 20 00 00 1398 call Base_Dec2Bin
0A03 20 00 00 1399 call .Z_trans_X
0A06 20 00 00 1400 call CheckBinLimit
0A09 02 0A 18 1401 br .DispBaseN
0A0C 1402 .TransOct:
0A0C 20 00 00 1403 call Base_Dec2Oct
0A0F 20 00 00 1404 call .Z_trans_X
0A12 20 00 00 1405 call CheckOctLimit
0A15 02 0A 18 1406 br .DispBaseN
0A18 1407 .DispBaseN:
0A18 F5 00 1408 lda0 ErrorFlag
0A1A A7 00 1409 cmpe #0h
0A1C 07 03 BF 1410 brnz .DispDotMatrix
0A1F 20 00 00 1411 call ChkDispAns
0A22 20 00 00 1412 call ShowAnschk
0A25 20 00 00 1413 call .I_trans_Z
0A28 02 03 C2 1414 br .EmitKeyD
0A2B 1415 .EditMode:
0A2B F5 00 1416 lda0 .KeyPos
0A2D A7 6A 1417 cmpe #6ah
0A2F 06 07 F5 1418 brz .Logic
0A32 F3 00 1419 lda #>BasenFlag
0A34 FC 28 1420 sta PP
0A36 F1 00 1421 lda BasenFlag
0A38 CB 0F 1422 anda #0fh
0A3A 06 00 F5 1423 brz .NotBaseN
0A3D 20 00 00 1424 call LogicKeyChk
0A40 F5 00 1425 lda0 .KeyPos
0A42 A7 00 1426 cmpe #0h
0A44 06 03 C2 1427 brz .EmitKeyD
0A47 20 09 53 1428 call .BasenModeAns
0A4A 02 03 9E 1429 br .Normalinput
+ 1430 ;===========================================
0A4D 1431 .InterruptT1:
+ 1432
0A4D F9 D0 1433 sta0 .TempA
0A4F F0 28 1434 lda PP
0A51 F9 D1 1435 sta0 .PPTemp
0A53 F0 22 1436 lda OP1
0A55 F9 D2 1437 sta0 .OP1Temp
0A57 F5 00 1438 lda0 .RandCnt
0A59 1F 1439 inca
0A5A F9 00 1440 sta0 .RandCnt
0A5C F3 01 1441 lda #01h
0A5E FC 28 1442 sta PP
0A60 F1 00 1443 lda T1Flag
0A62 DB 80 1444 ora #80h
0A64 FD 00 1445 sta T1Flag
+ 1446
0A66 F5 00 1447 lda0 .RandCnt
0A68 CB 0F 1448 anda #0fh
0A6A A7 0F 1449 cmpe #0fh
0A6C 07 0A 74 1450 brnz .CKkeyCnt
0A6F F5 D3 1451 lda0 .Sec
0A71 1F 1452 inca
0A72 F9 D3 1453 sta0 .Sec
+ 1454
0A74 1455 .CKkeyCnt:
+ 1456 ; lda0 .KeyCnt
+ 1457 ; ora #10h
+ 1458 ; sta0 .KeyCnt
0A74 F5 D2 1459 lda0 .OP1Temp
0A76 FC 22 1460 sta OP1
0A78 F5 D1 1461 lda0 .PPTemp
0A7A FC 28 1462 sta PP
0A7C F5 D0 1463 lda0 .TempA
0A7E 25 1464 reti
+ 1465 ;===========================================
0A7F 1466 .InterruptT2:
+ 1467
0A7F F9 D0 1468 sta0 .TempA
0A81 F0 28 1469 lda PP
0A83 F9 D1 1470 sta0 .PPTemp
0A85 F0 22 1471 lda OP1
0A87 F9 D2 1472 sta0 .OP1Temp
0A89 20 00 00 1473 call .KeyScan
0A8C F5 E3 1474 lda0 .TurboCnt
0A8E 1F 1475 inca
0A8F F9 E3 1476 sta0 .TurboCnt
0A91 F5 D2 1477 lda0 .OP1Temp
0A93 FC 22 1478 sta OP1
0A95 F5 D1 1479 lda0 .PPTemp
0A97 FC 28 1480 sta PP
0A99 F5 D0 1481 lda0 .TempA
0A9B 25 1482 reti
+ 1483
+ 1484
+ 1485 ;-------------------------------------------
+ 1486 ; .Initial:
+ 1487 ;-------------------------------------------
0A9C 1488 .Initial::
0A9C 28 1489 CLRINT
0A9D F3 00 1490 lda #0h
0A9F FC 38 1491 sta LCDC
0AA1 F3 FF 1492 lda #0ffh
0AA3 FC 32 1493 sta PRTD
0AA5 FC 58 1494 sta PRT17
0AA7 F3 00 1495 lda #0h
0AA9 FC 34 1496 sta PWMC
0AAB FC 48 1497 sta VOC
+ 1498 ;-------------------------------------------
+ 1499 ; Clear Lcd
+ 1500 ;-------------------------------------------
0AAD 1501 .ClearLCD::
0AAD F3 00 1502 lda #0h
0AAF FC 28 1503 sta PP
0AB1 F3 00 1504 lda #0h
0AB3 FC 21 1505 sta DP
0AB5 1506 .Clrlcd:
0AB5 F3 00 1507 lda #0h
0AB7 FE 1508 sta i
0AB8 18 1509 incdp
0AB9 F0 21 1510 lda DP
0ABB A7 F0 1511 cmpe #0f0h
0ABD 06 0A C3 1512 brz .EndInitiallcd
0AC0 02 0A B5 1513 br .Clrlcd
0AC3 1514 .EndInitiallcd:
+ 1515
0AC3 20 00 00 1516 call .ClrallP
0AC6 20 00 00 1517 call .DispInitial
0AC9 20 0A D0 1518 call .ClrData
0ACC 20 0B 28 1519 call .SetTimeClk
+ 1520
0ACF 24 1521 ret
+ 1522 ;-------------------------------------------
+ 1523 ; ClrData
+ 1524 ;-------------------------------------------
0AD0 1525 .ClrData::
0AD0 20 00 00 1526 call .ClrP2Edit
0AD3 F3 00 1527 lda #0h
0AD5 FC 28 1528 sta PP
0AD7 FD 00 1529 sta ErrorFlag
0AD9 FD 00 1530 sta Temp1
0ADB FD 00 1531 sta Temp2
0ADD FD D3 1532 sta .Sec
0ADF FD 00 1533 sta .KeyC
0AE1 FD 00 1534 sta .KeyD
0AE3 FD 00 1535 sta .Buf1
0AE5 FD 00 1536 sta .Buf2
0AE7 FD 00 1537 sta .CntIndex
0AE9 FD 00 1538 sta .FormulaFlag
0AEB FD 00 1539 sta .DmsCount
0AED FD D4 1540 sta .DataDP
0AEF FD 00 1541 sta .SFDP
0AF1 FD 00 1542 sta .TFlag
0AF3 FD 00 1543 sta .KeyPos ;save Key Posit
0AF5 FD 00 1544 sta .KeyCnt
0AF7 FD DE 1545 sta .KeyBuf
0AF9 FD E1 1546 sta .KeyCodeBuf
0AFB FD D4 1547 sta .DataDP
0AFD FD E3 1548 sta .TurboCnt
0AFF F3 32 1549 lda #.RealseTime
0B01 F9 E2 1550 sta0 .KeyTimeCnt
+ 1551 ;===============initial PP=1===============
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -