📄 caldisp.asl
字号:
01B7 F1 00 307 lda GetCount
01B9 A7 FF 308 cmpe #MAX
01BB 06 01 C1 309 brz RightGetCountend
01BE 3F 310 deca
01BF FD 00 311 sta GetCount
01C1 312 RightGetCountend:
01C1 24 313 ret
+ 314 ;------------------------------------------------------------------------
+ 315 ;------------------------------------------------------------------------
01C2 316 Addplace::
01C2 317 PP2One()
01C6 F1 05 318 lda cmpDP
01C8 FC 21 319 sta DP
01CA F1 06 320 lda cmpPP
01CC FC 28 321 sta PP
01CE F2 322 lda i
01CF F9 00 323 sta0 .DataBuf
01D1 324 PP2One()
01D5 F1 05 325 lda cmpDP
01D7 1F 326 inca
01D8 FD 05 327 sta cmpDP
01DA F5 00 328 lda0 .DataBuf
01DC FD 00 329 sta font
01DE 330 Addplaceend:
01DE 24 331 ret
+ 332 ;------------------------------------------------------------------------
+ 333 ;------------------------------------------------------------------------
01DF 334 Decplace::
01DF 335 PP2One()
01E3 F1 05 336 lda cmpDP
01E5 3F 337 deca
01E6 FD 05 338 sta cmpDP
01E8 FC 21 339 sta DP
01EA F1 06 340 lda cmpPP
01EC FC 28 341 sta PP
01EE F2 342 lda i
01EF F9 00 343 sta0 .DataBuf
01F1 344 PP2One()
01F5 F5 00 345 lda0 .DataBuf
01F7 FD 00 346 sta font
+ 347
01F9 24 348 ret
+ 349 ;------------------------------------------------------------------------
+ 350 ;------------------------------------------------------------------------
01FA 351 Font2disp:
01FA 352 PP2One()
01FE F1 00 353 lda font
0200 CB F0 354 anda #MASKLO
0202 06 02 08 355 brz Numberdisp
0205 02 02 29 356 br Otherkeychk
+ 357 ;------------------------------------------------------------------------
0208 358 Numberdisp:
0208 F1 00 359 lda font
020A A7 0A 360 cmpe #C_TEN
020C 04 02 16 361 brc SetA2F
020F 8B 30 362 adda #30h
0211 FD 00 363 sta font
0213 02 02 1E 364 br DispZERO2F
0216 365 SetA2F:
0216 F1 00 366 lda font
0218 AB 0A 367 suba #C_TEN
021A 8B 80 368 adda #HALFMAX
021C FD 00 369 sta font
021E 370 DispZERO2F:
021E F1 00 371 lda GetCount
0220 FD 00 372 sta dig_num
0222 20 00 00 373 call Display_5X7
0225 20 01 B3 374 call RightGetCount
0228 24 375 ret
+ 376 ;------------------------------------------------------------------------
0229 377 Otherkeychk:
0229 20 02 92 378 call ChangeKeychk
022C 20 02 F8 379 call Getstart
022F 380 PP2One()
0233 F1 09 381 lda startbf
0235 A7 FF 382 cmpe #MAX
0237 06 02 7D 383 brz chkkeyend
023A 20 03 0C 384 call Chklength
023D F1 08 385 lda displength
023F A7 00 386 cmpe #C_ZERO
0241 06 02 7D 387 brz chkkeyend
0244 FD 07 388 sta chklengthbf
0246 389 dispwordloop:
0246 390 PP2One()
+ 391 ;lda #^Dispwordtable
+ 392 ;sta tab_ptr+2
024A F3 2E 393 lda #>Dispwordtable
024C FD 01 394 sta tab_ptr+1
024E F3 88 395 lda #<Dispwordtable
0250 FD 00 396 sta tab_ptr
+ 397
0252 F1 09 398 lda startbf
0254 89 00 399 adda tab_ptr
0256 FD 00 400 sta tab_ptr
+ 401
0258 20 02 7E 402 call GetLdv
025B FD 00 403 sta font
+ 404
025D F1 00 405 lda GetCount
025F FD 00 406 sta dig_num
0261 20 00 00 407 call Display_5X7
0264 408 PP2One()
0268 20 01 B3 409 call RightGetCount
026B F1 09 410 lda startbf
026D 1F 411 inca
026E FD 09 412 sta startbf
0270 F1 07 413 lda chklengthbf
0272 A7 01 414 cmpe #C_ONE
0274 06 02 7D 415 brz chkkeyend
0277 3F 416 deca
0278 FD 07 417 sta chklengthbf
027A 02 02 46 418 br dispwordloop
027D 419 chkkeyend:
027D 24 420 ret
+ 421 ;------------------------------------------------------------------------
+ 422 ;------------------------------------------------------------------------
027E 423 GetLdv:
027E F1 01 424 lda tab_ptr+1
0280 9B 00 425 addc #C_ZERO
0282 FD 01 426 sta tab_ptr+1
+ 427 ;lda tab_ptr+2
+ 428 ;addc #C_ZERO
+ 429 ;sta tab_ptr+2
+ 430
+ 431 ;lda tab_ptr+2
0284 F3 00 432 lda #C_ZERO
0286 FC 54 433 sta TPP
0288 F1 01 434 lda tab_ptr+1
028A FC 02 435 sta TPH
028C F1 00 436 lda tab_ptr
028E FC 01 437 sta TPL
0290 F8 438 ldv
0291 24 439 ret
+ 440 ;------------------------------------------------------------------------
+ 441 ;------------------------------------------------------------------------
0292 442 ChangeKeychk:
0292 443 PP2One()
0296 F1 14 444 lda StateFlag
0298 CB CF 445 anda #MP2MASK
029A A7 80 446 cmpe #COMPSTATE
029C 06 02 BC 447 brz 2$
029F A7 08 448 cmpe #BASENSTATE
02A1 06 02 BC 449 brz 2$
02A4 A7 40 450 cmpe #SDSTATE
02A6 06 02 AE 451 brz 1$
02A9 A7 00 452 cmpe #C_ZERO
02AB 06 02 BC 453 brz 2$
+ 454 1$:
02AE F1 00 455 lda font
02B0 A7 B6 456 cmpe #MCLCHK
02B2 07 02 BC 457 brnz 2$
02B5 F3 BF 458 lda #SCLDISP
02B7 FD 00 459 sta font
02B9 02 02 F7 460 br ChangeKeychkend
+ 461 2$:
02BC F1 14 462 lda StateFlag
02BE CB CF 463 anda #MP2MASK
02C0 A7 06 464 cmpe #REGSTATE6
02C2 07 02 F7 465 brnz ChangeKeychkend
02C5 F1 00 466 lda font
02C7 A7 BD 467 cmpe #ESTIMATEXCHK
02C9 07 02 F7 468 brnz ChangeKeychkend
02CC F3 00 469 lda #>DaltaXcnt
02CE FC 28 470 sta PP
02D0 F1 00 471 lda DaltaXcnt
02D2 A7 00 472 cmpe #C_ZERO
02D4 06 02 E4 473 brz SetX1
02D7 A7 01 474 cmpe #C_ONE
02D9 06 02 E4 475 brz SetX1
02DC A7 02 476 cmpe #C_TWO
02DE 06 02 EF 477 brz SetX2
02E1 02 02 F7 478 br ChangeKeychkend
+ 479
02E4 480 SetX1:
02E4 481 PP2One()
02E8 F3 EA 482 lda #EX1DISP
02EA FD 00 483 sta font
02EC 02 02 F7 484 br ChangeKeychkend
02EF 485 SetX2:
02EF 486 PP2One()
02F3 F3 EB 487 lda #EX2DISP
02F5 FD 00 488 sta font
+ 489
02F7 490 ChangeKeychkend:
02F7 24 491 ret
+ 492 ;------------------------------------------------------------------------
+ 493 ;------------------------------------------------------------------------
02F8 494 Getstart:
02F8 495 PP2One()
+ 496 ;lda #^Getrealtable
+ 497 ;sta tab_ptr+2
02FC F3 2D 498 lda #>Getrealtable
02FE FD 01 499 sta tab_ptr+1
0300 F3 88 500 lda #<Getrealtable
0302 89 00 501 adda font
0304 FD 00 502 sta tab_ptr
0306 20 02 7E 503 call GetLdv
0309 FD 09 504 sta startbf
030B 24 505 ret
+ 506 ;------------------------------------------------------------------------
+ 507 ;------------------------------------------------------------------------
030C 508 Chklength:
030C 509 PP2One()
+ 510 ;lda #^lengthtable
+ 511 ;sta tab_ptr+2
0310 F3 2F 512 lda #>lengthtable
0312 FD 01 513 sta tab_ptr+1
0314 F3 3C 514 lda #<lengthtable
0316 89 00 515 adda font
0318 FD 00 516 sta tab_ptr
031A 20 02 7E 517 call GetLdv
031D FD 08 518 sta displength
031F 24 519 ret
+ 520 ;------------------------------------------------------------------------
+ 521 ;------------------------------------------------------------------------
0320 522 Allerrordisp:
0320 523 PP2One()
0324 F1 00 524 lda .SFlag
0326 CB CF 525 anda #~(RCLCHK|STOCHK)
0328 FD 00 526 sta .SFlag
032A F5 00 527 lda0 ErrorFlag
032C A7 01 528 cmpe #C_ONE
032E 06 03 43 529 brz Maerror
0331 A7 02 530 cmpe #C_TWO
0333 06 03 4A 531 brz Synerror
0336 A7 03 532 cmpe #C_THREE
0338 06 03 51 533 brz Stkerror
033B A7 04 534 cmpe #C_FOUR
033D 06 03 58 535 brz Argerror
0340 02 04 08 536 br Allerrordispend
+ 537
0343 538 Maerror:
0343 F3 00 539 lda #MASTART
0345 FD 09 540 sta startbf
0347 02 03 5C 541 br Errordispgo
+ 542
034A 543 Synerror:
034A F3 09 544 lda #SYNSTART
034C FD 09 545 sta startbf
034E 02 03 5C 546 br Errordispgo
0351 547 Stkerror:
0351 F3 12 548 lda #STKSTART
0353 FD 09 549 sta startbf
0355 02 03 5C 550 br Errordispgo
0358 551 Argerror:
0358 F3 1B 552 lda #ARGSTART
035A FD 09 553 sta startbf
035C 554 Errordispgo:
035C F5 00 555 lda0 .KeyPos
035E A7 CC 556 cmpe #LEFTKEY
0360 06 03 6B 557 brz Errorlrchk
0363 A7 DD 558 cmpe #RIGHTKEY
0365 06 03 6B 559 brz Errorlrchk
0368 02 03 A7 560 br disperrorgo
+ 561
036B 562 Errorlrchk:
036B F1 00 563 lda .SFlag
036D CB F7 564 anda #~EQUCHK
036F FD 00 565 sta .SFlag
0371 F1 00 566 lda .SetFlag
0373 CB DF 567 anda #~BLANKCHK
0375 FD 00 568 sta .SetFlag
0377 569 PP2Zero()
037B F1 00 570 lda .SFDP
037D A7 00 571 cmpe #C_ZERO
037F 06 03 A1 572 brz 3$
0382 A5 00 573 cmpe .DataDP
0384 06 03 A1 574 brz 3$
0387 575 PP2One()
038B F5 00 576 lda0 ErrorFlag
038D A7 01 577 cmpe #C_ONE
038F 07 03 A1 578 brnz 3$
0392 F5 00 579 lda0 .SFDP
0394 FD 05 580 sta cmpDP
0396 F3 02 581 lda #C_TWO
0398 FD 06 582 sta cmpPP
039A 20 01 C2 583 call Addplace
039D F1 05 584 lda cmpDP
039F F9 00 585 sta0 .SFDP
03A1 20 04 DD 586 3$: call Rightchk
03A4 02 03 F6 587 br Allerrordispend1
+ 588
+ 589
+ 590
03A7 591 disperrorgo:
03A7 20 15 BB 592 call Clr_signm
03AA 20 15 CA 593 call Clr_expm
03AD 20 1C 70 594 call Clrfullmatrix
03B0 20 1C 95 595 call Clrfullseg
03B3 596 PP2One()
03B7 F3 08 597 lda #C_EIGHT
03B9 FD 00 598 sta GetCount
03BB F3 09 599 lda #C_NINE
03BD FD 07 600 sta chklengthbf
03BF 601 disperrorloop:
03BF 602 PP2One()
+ 603 ;lda #^ErrorTable
+ 604 ;sta tab_ptr+2
03C3 F3 31 605 lda #>ErrorTable
03C5 FD 01 606 sta tab_ptr+1
03C7 F3 3C 607 lda #<ErrorTable
03C9 FD 00 608 sta tab_ptr
+ 609
03CB F1 09 610 lda startbf
03CD 89 00 611 adda tab_ptr
03CF FD 00 612 sta tab_ptr
+ 613
03D1 20 02 7E 614 call GetLdv
03D4 FD 00 615 sta font
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -