📄 calcmain.asl
字号:
+ 1246 ; brz .EndCheckRnd
08D5 F5 00 1247 lda0 .KeyPos
08D7 F9 00 1248 sta0 .DataBuf
08D9 F9 01 1249 sta0 .DataBuf+1
08DB 20 00 00 1250 call .CheckPari
08DE 20 00 00 1251 call .CheckMem
08E1 F5 00 1252 lda0 .AfterPari
08E3 A7 07 1253 cmpe #07h ;Pari 7 ex:2X^2 funct
08E5 06 09 06 1254 brz .DOAns
08E8 A7 08 1255 cmpe #08h ;Pari 8 ex:5X^Y 6funct
08EA 06 09 06 1256 brz .DOAns
08ED 20 00 00 1257 call .ClrP2Data
08F0 F3 01 1258 lda #01h
08F2 FC 28 1259 sta PP
08F4 F1 00 1260 lda .SFlag ;cancel = flag
08F6 CB F7 1261 anda #~08h
08F8 FD 00 1262 sta .SFlag
08FA F1 00 1263 lda .SetFlag
08FC CB C0 1264 anda #~3fh
08FE FD 00 1265 sta .SetFlag
0900 20 00 00 1266 call Rekeyindisp2 ;only clear dotmatrix
0903 02 09 60 1267 br .EndCheckRnd
+ 1268 ;;;;;;;;;;;;Auto add Ans to function oode
0906 1269 .DOAns:
0906 F3 00 1270 lda #>.SRFlag
0908 FC 28 1271 sta PP
090A F3 00 1272 lda #0h
090C FD 00 1273 sta .SRFlag
090E F3 00 1274 lda #>.SetFlag
0910 FC 28 1275 sta PP
0912 F1 00 1276 lda .SetFlag
0914 CB 80 1277 anda #80h
0916 07 09 39 1278 brnz .PercntMul
0919 1279 .ANS12:
0919 20 00 00 1280 call .ClrP2Data ;CLR Input data area Ram
+ 1281 ;;;;;;Auto add Ans data to Function code
091C 1282 .StartAns::
091C F3 00 1283 lda #>.SFlag
091E FC 28 1284 sta PP
0920 F1 00 1285 lda .SFlag
0922 CB 80 1286 anda #80h
0924 07 09 60 1287 brnz .EndCheckRnd
0927 F3 02 1288 lda #02h
0929 FC 28 1289 sta PP
092B F3 00 1290 lda #0h
092D FC 21 1291 sta DP
092F F3 A2 1292 lda #.ANS
0931 FE 1293 sta i
0932 F3 01 1294 lda #01h
0934 F9 D4 1295 sta0 .DataDP ;Set auto add Ans key
0936 02 09 60 1296 br .EndCheckRnd
0939 1297 .PercntMul:
0939 F5 00 1298 lda0 .KeyPos
093B A7 A4 1299 cmpe #0a4h
093D 06 09 48 1300 brz .DOXAddZ
0940 A7 A5 1301 cmpe #0a5h
0942 06 09 54 1302 brz .DOXDecZ
0945 02 09 19 1303 br .ANS12
0948 1304 .DOXAddZ:
0948 20 00 00 1305 call .B_trans_X
094B 20 00 00 1306 call .Z_trans_Y
094E 20 00 00 1307 call Addition
0951 02 09 60 1308 br .EndCheckRnd
0954 1309 .DOXDecZ:
0954 20 00 00 1310 call .B_trans_X
0957 20 00 00 1311 call .Z_trans_Y
095A 20 00 00 1312 call Subtration
095D 02 09 60 1313 br .EndCheckRnd
+ 1314
+ 1315 ;;;;;;;;;;;;disable display mode and rnd mode
0960 1316 .EndCheckRnd:
0960 F3 01 1317 lda #01h
0962 FC 28 1318 sta PP
0964 F1 00 1319 lda .SetFlag
0966 CB DE 1320 anda #~21h
0968 FD 00 1321 sta .SetFlag
096A 24 1322 ret
096B 1323 .RndEnd:
096B F3 00 1324 lda #0h
096D F9 00 1325 sta0 .KeyPos
096F 24 1326 ret
+ 1327 ;===========================================
0970 1328 .AutoaddANS::
+ 1329
0970 F5 D4 1330 lda0 .DataDP
0972 A7 01 1331 cmpe #01h
0974 07 0A 01 1332 brnz .EndAutoaddANS
0977 F3 02 1333 lda #02h
0979 FC 28 1334 sta PP
097B F3 00 1335 lda #0
097D FC 21 1336 sta DP
097F F2 1337 lda i
0980 F9 00 1338 sta0 .DataBuf
0982 F9 01 1339 sta0 .DataBuf+1
0984 20 00 00 1340 call .CheckPari
0987 20 00 00 1341 call .CheckMem
098A F5 00 1342 lda0 .AfterPari
098C A7 06 1343 cmpe #06h
098E 06 09 EB 1344 brz .DOAns5
0991 02 0A 01 1345 br .EndAutoaddANS
0994 1346 .BasenModeAns::
0994 F3 00 1347 lda #>.SFlag
0996 FC 28 1348 sta PP
0998 F1 00 1349 lda .SFlag
099A CB 08 1350 anda #08h
099C 06 0A 01 1351 brz .EndAutoaddANS
099F F5 00 1352 lda0 .KeyPos
09A1 F9 00 1353 sta0 .DataBuf
09A3 20 00 00 1354 call .Paricmp
09A6 F5 00 1355 lda0 .AfterPari
09A8 A7 07 1356 cmpe #07h
09AA 06 09 BA 1357 brz .BaseAns
09AD A7 09 1358 cmpe #09h
09AF 06 09 BA 1359 brz .BaseAns
09B2 A7 0F 1360 cmpe #0fh
09B4 06 09 CF 1361 brz .Clrp2Inp
09B7 02 0A 01 1362 br .EndAutoaddANS
09BA 1363 .BaseAns:
09BA 20 00 00 1364 call .ClrP2Edit
09BD F3 02 1365 lda #02h
09BF FC 28 1366 sta PP
09C1 F3 00 1367 lda #0h
09C3 FC 21 1368 sta DP
09C5 F3 A2 1369 lda #.ANS
09C7 FE 1370 sta i
09C8 F3 01 1371 lda #01h
09CA F9 D4 1372 sta0 .DataDP
09CC 02 09 D6 1373 br .ClrAnsFlag
09CF 1374 .Clrp2Inp:
09CF 20 00 00 1375 call .ClrP2Edit
09D2 F3 00 1376 lda #0h
09D4 F9 D4 1377 sta0 .DataDP
+ 1378
+ 1379
09D6 1380 .ClrAnsFlag:
09D6 F3 00 1381 lda #>.SFlag
09D8 FC 28 1382 sta PP
09DA F1 00 1383 lda .SFlag
09DC CB F7 1384 anda #~08h
09DE FD 00 1385 sta .SFlag
09E0 F3 00 1386 lda #>.SRFlag
09E2 FC 28 1387 sta PP
09E4 F3 00 1388 lda #0h
09E6 FD 00 1389 sta .SRFlag
+ 1390
09E8 02 0A 01 1391 br .EndAutoaddANS
+ 1392 ;;;;;;;;;;;;Auto add Ans to function mode
09EB 1393 .DOAns5:
09EB F5 00 1394 lda0 .KeyPos
09ED A7 A8 1395 cmpe #0a8h
09EF 06 0A 01 1396 brz .EndAutoaddANS
09F2 F3 02 1397 lda #02h
09F4 FC 28 1398 sta PP
09F6 F5 00 1399 lda0 .DataBuf
09F8 FE 1400 sta i
09F9 18 1401 incdp
09FA F3 A2 1402 lda #.ANS
09FC FE 1403 sta i
09FD F3 02 1404 lda #02h
09FF F9 D4 1405 sta0 .DataDP ;Set auto add Ans key
+ 1406
+ 1407 ;;;;;;;;;;;;disable display mode and rnd mode
0A01 1408 .EndAutoaddANS:
+ 1409
+ 1410
0A01 24 1411 ret
+ 1412
+ 1413
+ 1414
+ 1415 ;-------------------------------------------
0A02 1416 .BaseN:
+ 1417
0A02 F3 00 1418 lda #>.SetFlag
0A04 FC 28 1419 sta PP
0A06 F1 00 1420 lda .SetFlag
0A08 CB 20 1421 anda #20h
0A0A 06 0A 6C 1422 brz .EditMode
0A0D 20 00 00 1423 call .Buf_trans_X
0A10 F5 00 1424 lda0 .KeyPos
0A12 A7 7C 1425 cmpe #.DecM
0A14 06 0A 29 1426 brz .TransDec
0A17 A7 7D 1427 cmpe #.HexM
0A19 06 0A 35 1428 brz .TransHex
0A1C A7 7E 1429 cmpe #.BinM
0A1E 06 0A 41 1430 brz .TransBin
0A21 A7 7F 1431 cmpe #.OctM
0A23 06 0A 4D 1432 brz .TransOct
0A26 02 0A 6C 1433 br .EditMode
0A29 1434 .TransDec:
0A29 20 00 00 1435 call .Buf_trans_Z
0A2C 20 00 00 1436 call .Z_trans_X
0A2F 20 00 00 1437 call CheckDecLimit
0A32 02 0A 59 1438 br .DispBaseN
0A35 1439 .TransHex:
0A35 20 00 00 1440 call Base_Dec2Hex
0A38 20 00 00 1441 call .Z_trans_X
0A3B 20 00 00 1442 call CheckHexLimit
0A3E 02 0A 59 1443 br .DispBaseN
0A41 1444 .TransBin:
0A41 20 00 00 1445 call Base_Dec2Bin
0A44 20 00 00 1446 call .Z_trans_X
0A47 20 00 00 1447 call CheckBinLimit
0A4A 02 0A 59 1448 br .DispBaseN
0A4D 1449 .TransOct:
0A4D 20 00 00 1450 call Base_Dec2Oct
0A50 20 00 00 1451 call .Z_trans_X
0A53 20 00 00 1452 call CheckOctLimit
0A56 02 0A 59 1453 br .DispBaseN
0A59 1454 .DispBaseN:
0A59 F5 00 1455 lda0 ErrorFlag
0A5B A7 00 1456 cmpe #0h
0A5D 07 04 00 1457 brnz .DispDotMatrix
0A60 20 00 00 1458 call ChkDispAns
0A63 20 00 00 1459 call ShowAnschk
0A66 20 00 00 1460 call .I_trans_Z
0A69 02 04 03 1461 br .EmitKeyD
0A6C 1462 .EditMode:
0A6C F5 00 1463 lda0 .KeyPos
0A6E A7 6A 1464 cmpe #6ah
0A70 06 08 36 1465 brz .Logic
0A73 F3 00 1466 lda #>BasenFlag
0A75 FC 28 1467 sta PP
0A77 F1 00 1468 lda BasenFlag
0A79 CB 0F 1469 anda #0fh
0A7B 06 01 36 1470 brz .NotBaseN
0A7E 20 00 00 1471 call LogicKeyChk
0A81 F5 00 1472 lda0 .KeyPos
0A83 A7 00 1473 cmpe #0h
0A85 06 04 03 1474 brz .EmitKeyD
0A88 20 09 94 1475 call .BasenModeAns
0A8B 02 03 DF 1476 br .Normalinput
+ 1477 ;===========================================
0A8E 1478 .InterruptT1:
+ 1479
0A8E F9 D0 1480 sta0 .TempA
0A90 F0 28 1481 lda PP
0A92 F9 D1 1482 sta0 .PPTemp
0A94 F0 22 1483 lda OP1
0A96 F9 D2 1484 sta0 .OP1Temp
0A98 F5 00 1485 lda0 .RandCnt
0A9A 1F 1486 inca
0A9B F9 00 1487 sta0 .RandCnt
0A9D F3 01 1488 lda #01h
0A9F FC 28 1489 sta PP
0AA1 F1 00 1490 lda T1Flag
0AA3 DB 80 1491 ora #80h
0AA5 FD 00 1492 sta T1Flag
+ 1493
0AA7 F5 00 1494 lda0 .RandCnt
0AA9 CB 0F 1495 anda #0fh
0AAB A7 0F 1496 cmpe #0fh
0AAD 07 0A B5 1497 brnz .CKkeyCnt
0AB0 F5 D3 1498 lda0 .Sec
0AB2 1F 1499 inca
0AB3 F9 D3 1500 sta0 .Sec
+ 1501
0AB5 1502 .CKkeyCnt:
+ 1503 ; lda0 .KeyCnt
+ 1504 ; ora #10h
+ 1505 ; sta0 .KeyCnt
0AB5 F5 D2 1506 lda0 .OP1Temp
0AB7 FC 22 1507 sta OP1
0AB9 F5 D1 1508 lda0 .PPTemp
0ABB FC 28 1509 sta PP
0ABD F5 D0 1510 lda0 .TempA
0ABF 25 1511 reti
+ 1512 ;===========================================
0AC0 1513 .InterruptT2:
+ 1514
0AC0 F9 D0 1515 sta0 .TempA
0AC2 F0 28 1516 lda PP
0AC4 F9 D1 1517 sta0 .PPTemp
0AC6 F0 22 1518 lda OP1
0AC8 F9 D2 1519 sta0 .OP1Temp
0ACA 20 00 00 1520 call .KeyScan
0ACD F5 E3 1521 lda0 .TurboCnt
0ACF 1F 1522 inca
0AD0 F9 E3 1523 sta0 .TurboCnt
0AD2 F5 D2 1524 lda0 .OP1Temp
0AD4 FC 22 1525 sta OP1
0AD6 F5 D1 1526 lda0 .PPTemp
0AD8 FC 28 1527 sta PP
0ADA F5 D0 1528 lda0 .TempA
0ADC 25 1529 reti
+ 1530
+ 1531
+ 1532 ;-------------------------------------------
+ 1533 ; .Initial:
+ 1534 ;-------------------------------------------
0ADD 1535 .Initial::
0ADD 28 1536 CLRINT
0ADE F3 00 1537 lda #0h
0AE0 FC 38 1538 sta LCDC
0AE2 F3 FF 1539 lda #0ffh
0AE4 FC 32 1540 sta PRTD
0AE6 FC 58 1541 sta PRT17
0AE8 F3 00 1542 lda #0h
0AEA FC 34 1543 sta PWMC
0AEC FC 48 1544 sta VOC
+ 1545 ;-------------------------------------------
+ 1546 ; Clear Lcd
+ 1547 ;-------------------------------------------
0AEE 1548 .ClearLCD::
0AEE F3 00 1549 lda #0h
0AF0 FC 28 1550 sta PP
0AF2 F3 00 1551 lda #0h
0AF4 FC 21 1552 sta DP
0AF6 1553 .Clrlcd:
0AF6 F3 00 1554 lda #0h
0AF8 FE 1555 sta i
0AF9 18 1556
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -