📄 caldisp.asl
字号:
0858 02 08 66 1234 br 127$ ;br T1chkblankend
085B F3 10 1235 1$: lda #BLANKDISP
085D FD FA 1236 sta t1dispbf
085F 02 08 66 1237 br 127$ ;br T1chkblankend
0862 F3 11 1238 2$: lda #INSETDISP
0864 FD FA 1239 sta t1dispbf
+ 1240 ;br 127$
+ 1241 127$:
0866 F3 02 1242 lda #C_TWO
0868 FC 28 1243 sta PP
086A F5 00 1244 lda0 .SFDP
086C 3F 1245 deca
086D FC 21 1246 sta DP
086F F2 1247 lda I
0870 F9 00 1248 sta0 .DataBuf
0872 1249 PP2One()
0876 F5 00 1250 lda0 .DataBuf
0878 FD 00 1251 sta font
087A 20 02 92 1252 call ChangeKeychk
087D F1 00 1253 lda font
087F FD FB 1254 sta t1fontbf
0881 02 08 F5 1255 br T1chkblankend
+ 1256
0884 1257 dispword:
+ 1258 ;lda #^firstword
+ 1259 ;sta tab_ptr+2
0884 F3 30 1260 lda #>firstword
0886 FD 01 1261 sta tab_ptr+1
0888 F3 3C 1262 lda #<firstword
088A 89 FB 1263 adda t1fontbf ;font
088C FD 00 1264 sta tab_ptr
088E 20 02 7E 1265 call GetLdv
0891 FD FA 1266 sta t1dispbf
0893 02 08 F5 1267 br T1chkblankend
0896 1268 Display_t1:
0896 F1 FA 1269 lda t1dispbf
0898 FD 00 1270 sta font
089A F1 02 1271 lda blankCount
089C FD 00 1272 sta dig_num
089E 20 00 00 1273 call Display_5X7_1
08A1 02 08 F5 1274 br T1chkblankend
08A4 1275 Display_t1_1:
08A4 F1 FA 1276 lda t1dispbf
08A6 FD 00 1277 sta font
08A8 F1 02 1278 lda blankCount
08AA FD 00 1279 sta dig_num
08AC 20 00 00 1280 call Display_5X7_blk1
08AF 02 08 F5 1281 br T1chkblankend
08B2 1282 Display_t1_2:
08B2 F1 FA 1283 lda t1dispbf
08B4 FD 00 1284 sta font
08B6 F1 02 1285 lda blankCount
08B8 FD 00 1286 sta dig_num
08BA 20 00 00 1287 call Display_5X7_blk2
08BD 02 08 F5 1288 br T1chkblankend
08C0 1289 Display_t1_3:
08C0 F1 FA 1290 lda t1dispbf
08C2 FD 00 1291 sta font
08C4 F1 02 1292 lda blankCount
08C6 FD 00 1293 sta dig_num
08C8 20 00 00 1294 call Display_5X7_blk3
08CB 02 08 F5 1295 br T1chkblankend
08CE 1296 Display_t1_4:
08CE F1 FA 1297 lda t1dispbf
08D0 FD 00 1298 sta font
08D2 F1 02 1299 lda blankCount
08D4 FD 00 1300 sta dig_num
08D6 20 00 00 1301 call Display_5X7_blk4
08D9 02 08 F5 1302 br T1chkblankend
08DC 1303 Display_t1_5:
08DC F1 FA 1304 lda t1dispbf
08DE FD 00 1305 sta font
08E0 F1 02 1306 lda blankCount
08E2 FD 00 1307 sta dig_num
08E4 20 00 00 1308 call Display_5X7_blk5
08E7 02 08 F5 1309 br T1chkblankend
08EA 1310 Display_t1_6:
08EA F1 FA 1311 lda t1dispbf
08EC FD 00 1312 sta font
08EE F1 02 1313 lda blankCount
08F0 FD 00 1314 sta dig_num
08F2 20 00 00 1315 call Display_5X7_blk6
+ 1316 ;br T1chkblankend
08F5 1317 T1chkblankend:
08F5 F1 03 1318 lda t1count
08F7 1F 1319 inca
08F8 A7 0E 1320 cmpe #C_14
08FA 05 08 FF 1321 brnc 1$
08FD F3 00 1322 lda #C_ZERO
08FF FD 03 1323 1$: sta t1count
0901 1324 T1chkblankend2:
0901 F1 0B 1325 lda T1Flag
0903 CB 7F 1326 anda #~TIMEGO
0905 FD 0B 1327 sta T1Flag
0907 1328 T1chkblankend1:
0907 24 1329 ret
+ 1330 ;------------------------------------------------------------------------
+ 1331 ;------------------------------------------------------------------------
0908 1332 Moveopz2bf::
+ 1333
0908 F3 00 1334 lda #C_ZERO
090A F9 00 1335 sta0 .DataBuf
090C F9 01 1336 sta0 .DataBuf+1
+ 1337
090E 1338 moveopzloop:
090E 1339 PP2Zero()
0912 F3 00 1340 lda #OperandZ
0914 89 00 1341 adda .DataBuf
0916 FC 21 1342 sta DP
0918 F2 1343 lda I
0919 FD 01 1344 sta .DataBuf+1
091B 1345 PP2One()
091F F5 00 1346 lda0 .DataBuf
0921 8B 0C 1347 adda #pzdispbf
0923 FC 21 1348 sta DP
0925 F5 01 1349 lda0 .DataBuf+1
0927 FE 1350 sta I
0928 F5 00 1351 lda0 .DataBuf
092A 1F 1352 inca
092B F9 00 1353 sta0 .DataBuf
092D A7 07 1354 cmpe #Length
092F 04 09 35 1355 brc Moveopz2bfend
0932 02 09 0E 1356 br moveopzloop
+ 1357
0935 1358 Moveopz2bfend:
0935 24 1359 ret
+ 1360
+ 1361 ;------------------------------------------------------------------------
+ 1362 ;------------------------------------------------------------------------
0936 1363 Chkopzbf1:
0936 1364 PP2One()
093A F3 0E 1365 lda #C_14
093C F9 01 1366 sta0 .DataBuf+1
093E F3 12 1367 lda #pzdispbf+Length-1
0940 FC 21 1368 sta DP
0942 F2 1369 lda I
0943 CB 0F 1370 anda #MASKHI
0945 07 09 5D 1371 brnz Chkopzbfend1
0948 F1 08 1372 lda pointbf
094A 3F 1373 deca
094B FD 08 1374 sta pointbf
094D 20 09 8B 1375 call Shiftrnibble
0950 F5 01 1376 lda0 .DataBuf+1
0952 3F 1377 deca
0953 F9 01 1378 sta0 .DataBuf+1
0955 A7 00 1379 cmpe #C_ZERO
0957 06 09 5D 1380 brz Chkopzbfend1
095A 02 09 36 1381 br Chkopzbf1
095D 1382 Chkopzbfend1:
095D 24 1383 ret
+ 1384 ;------------------------------------------------------------------------
+ 1385 ;------------------------------------------------------------------------
095E 1386 Chkopzbf2:
095E 1387 PP2One()
0962 F3 0E 1388 lda #C_14
0964 F9 01 1389 sta0 .DataBuf+1
0966 F3 12 1390 lda #pzdispbf+Length-1
0968 FC 21 1391 sta DP
096A F2 1392 lda I
096B CB 0F 1393 anda #MASKHI
096D 07 09 8A 1394 brnz Chkopzbfend2
0970 F1 08 1395 lda pointbf
0972 3F 1396 deca
0973 FD 08 1397 sta pointbf
0975 F1 09 1398 lda dispcount
0977 3F 1399 deca
0978 FD 09 1400 sta dispcount
097A 20 09 8B 1401 call Shiftrnibble
097D F5 01 1402 lda0 .DataBuf+1
097F 3F 1403 deca
0980 F9 01 1404 sta0 .DataBuf+1
0982 A7 00 1405 cmpe #C_ZERO
0984 06 09 8A 1406 brz Chkopzbfend2
0987 02 09 5E 1407 br Chkopzbf2
098A 1408 Chkopzbfend2:
098A 24 1409 ret
+ 1410 ;------------------------------------------------------------------------
+ 1411 ;------------------------------------------------------------------------
098B 1412 Shiftrnibble:
098B F3 06 1413 lda #Length-1
098D F9 00 1414 sta0 .DataBuf
+ 1415
098F 1416 PP2One()
0993 F3 00 1417 lda #C_ZERO
0995 FD 05 1418 sta cmpDP
0997 F3 0C 1419 lda #pzdispbf
0999 FC 21 1420 sta DP
+ 1421 1$:
099B F2 1422 lda i
099C FD 04 1423 sta cmpFlag
099E 7F 1424 rorc
099F 7F 1425 rorc
09A0 7F 1426 rorc
09A1 7F 1427 rorc
09A2 CB 0F 1428 anda #MASKHI
09A4 D9 05 1429 ora cmpDP
09A6 FE 1430 sta I
+ 1431
09A7 F1 04 1432 lda cmpFlag
09A9 7E 1433 rolc
09AA 7E 1434 rolc
09AB 7E 1435 rolc
09AC 7E 1436 rolc
09AD CB F0 1437 anda #MASKLO
09AF FD 05 1438 sta cmpDP
09B1 18 1439 incdp
09B2 F5 00 1440 lda0 .DataBuf
09B4 3F 1441 deca
09B5 F9 00 1442 sta0 .DataBuf
09B7 04 09 9B 1443 brc 1$
+ 1444
+ 1445
09BA 24 1446 ret
+ 1447
+ 1448
+ 1449 ;------------------------------------------------------------------------
+ 1450 ;------------------------------------------------------------------------
+ 1451
09BB 1452 Shiftlnibble::
09BB F3 06 1453 lda #Length-1
09BD F9 00 1454 sta0 .DataBuf
+ 1455
+ 1456
09BF 1457 PP2One()
+ 1458
09C3 F3 00 1459 lda #C_ZERO
09C5 FD 05 1460 sta cmpDP
+ 1461
09C7 F5 00 1462 lda0 .DataBuf
09C9 8B 0C 1463 adda #pzdispbf
09CB FC 21 1464 sta DP
+ 1465
+ 1466 1$:
09CD F2 1467 lda i
09CE FD 04 1468 sta cmpFlag
09D0 7E 1469 rolc
09D1 7E 1470 rolc
09D2 7E 1471 rolc
09D3 7E 1472 rolc
09D4 CB F0 1473 anda #MASKLO
09D6 D9 05 1474 ora cmpDP
09D8 FE 1475 sta I
+ 1476
09D9 F1 04 1477 lda cmpFlag
09DB 7F 1478 rorc
09DC 7F 1479 rorc
09DD 7F 1480 rorc
09DE 7F 1481 rorc
09DF CB 0F 1482 anda #MASKHI
09E1 FD 05 1483 sta cmpDP
09E3 38 1484 decdp
09E4 F5 00 1485 lda0 .DataBuf
09E6 3F 1486 deca
09E7 F9 00 1487 sta0 .DataBuf
09E9 04 09 CD 1488 brc 1$
+ 1489
09EC 24 1490 ret
+ 1491 ;------------------------------------------------------------------------
+ 1492 ;------------------------------------------------------------------------
09ED 1493 ChkDispAns::
+ 1494
09ED 20 1C 70 1495 call Clrfullmatrix
09F0 20 04 DD 1496 call Rightchk
+ 1497
09F3 1498 PP2One()
09F7 F1 00 1499 lda .SetFlag
09F9 CB 20 1500 anda #BLANKCHK
09FB 06 0A 18 1501 brz 0$
09FE F3 00 1502 lda #>.SRFlag
0A00 FC 28 1503 sta PP
0A02 F1 00 1504 lda .SRFlag
0A04 CB 01 1505 anda #C_ONE
0A06 06 0A 18 1506 brz 0$
0A09 1507 PP2One()
0A0D F3 3D 1508 lda #EQUDISP
0A0F FD 00 1509 sta font
0A11 F3 0A 1510 lda #C_TEN
0A13 FD 00 1511 sta dig_num
0A15 20 00 00 1512 call Display_5X7_1
+ 1513
+ 1514 0$:
0A18 1515 PP2One()
0A1C F1 14 1516 lda StateFlag
0A1E CB 08 1517 anda #BASENSTATE
0A20 07 0A 2E 1518 brnz Set2Move
0A23 1519 PP2Zero()
0A27 F3 00 1520 lda #C_ZERO
0A29 FD 07 1521 sta OperandZ+Length
0A2B 20 00 00 1522 call CheckOutData
0A2E 1523 Set2Move:
0A2E 1524 PP2One()
0A32 20 09 08 1525 call Moveopz2bf
0A35 20 0A D4 1526 call AnsZerochk
0A38 1527 getpointbf:
0A38 1528 PP2One()
0A3C F1 05 1529 lda cmpDP
0A3E FD 08 1530 sta pointbf
0A40 F3 00 1531 lda #C_ZERO
0A42 A9 08 1532 suba pointbf
0A44 FD 09 1533 sta dispcount
+ 1534
0A46 F5 00 1535 lda0 PointZ
0A48 89 09 1536 adda dispcount
0A4A A7 80 1537 cmpe #HALFMAX
0A4C 04 0A 5E 1538 brc 2$
0A4F A7 64 1539 cmpe #MINUS100 ;璽100
0A51 05 0A 6E 1540 brnc ChkDispAnsend
0A54 F3 00 1541 lda #C_ZERO
0A56 FD 09 1542 sta di
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -