📄 lcd.lst
字号:
310 00:0193: 18 CLC
311 00:0194: 6D xx xx ADC PtrL
312 00:0197: 8D xx xx STA PtrL
313 00:019A: BD xx xx LDA Mult240Tab1+1,X
314 00:019D: 6D xx xx ADC PtrH
315 00:01A0: 8D xx xx STA PtrH
316
317 00:01A3: A2 08 LDX #8
318
319 00:01A5: AC xx xx LDY LCDX
320 Disp_8x8LP_IN:
321 00:01A8: B2 xx LDA (FPtrL)
322 00:01AA: 49 FF EOR #FFH
323 00:01AC: 91 xx STA (PtrL),Y
324
325 00:01AE: 18 CLC
326 00:01AF: AD xx xx LDA PtrL
327 00:01B2: 69 1E ADC #30
328 00:01B4: 8D xx xx STA PtrL
329 00:01B7: AD xx xx LDA PtrH
330 00:01BA: 69 00 ADC #0
331 00:01BC: 8D xx xx STA PtrH
332
333 00:01BF: 18 CLC
334 00:01C0: EE xx xx INC FPtrL
335 00:01C3: AD xx xx LDA FPtrL
336 00:01C6: C9 00 CMP #0
337 00:01C8: D0 03 BNE Disp_skip_IN
338 00:01CA: EE xx xx INC FPtrH
339 Disp_skip_IN:
340 00:01CD: CA DEX
341 00:01CE: E0 00 CPX #0
342 00:01D0: D0 D6 BNE Disp_8x8LP_IN
Sat Nov 29 2008 17:23 Page 7
343
344 00:01D2: 7A PLY
345 00:01D3: FA PLX
346 00:01D4: 68 PLA
347 00:01D5: 60 RTS
348 ;==================================================
349 ; Function: clean line in the display
350 ; Input: LCDY
351 ;==================================================
352 CLS_LINE:
353 00:01D6: DA PHX
354 00:01D7: 5A PHY
355 00:01D8: 48 PHA
356 00:01D9: A9 xx LDA #<LCD_BUF_START
357 00:01DB: 8D xx xx STA PtrL
358 00:01DE: A9 xx LDA #>LCD_BUF_START
359 00:01E0: 8D xx xx STA PtrH
360
361 00:01E3: AD xx xx LDA LCDY
362 00:01E6: 0A ASL
363 00:01E7: AA TAX
364 00:01E8: BD xx xx LDA Mult240Tab,X
365 00:01EB: 18 CLC
366 00:01EC: 6D xx xx ADC PtrL
367 00:01EF: 8D xx xx STA PtrL
368 00:01F2: BD xx xx LDA Mult240Tab+1,X
369 00:01F5: 6D xx xx ADC PtrH
370 00:01F8: 8D xx xx STA PtrH
371
372 00:01FB: A9 00 LDA #0
373 00:01FD: A2 0C LDX #0CH
374 FILL_L_LP:
375 00:01FF: A0 1E LDY #30
376 FILL_0_LP:
377 00:0201: 92 xx STA (PtrL)
378 00:0203: 18 CLC
379 00:0204: EE xx xx INC PtrL
380 00:0207: D0 0A BNE FILL_1_LP
381 00:0209: 48 PHA
382 00:020A: AD xx xx LDA PtrH
383 00:020D: 69 01 ADC #1
384 00:020F: 8D xx xx STA PtrH
385 00:0212: 68 PLA
386 FILL_1_LP:
387 00:0213: 88 DEY
388 00:0214: C0 00 CPY #0
389 00:0216: D0 E9 BNE FILL_0_LP
390 00:0218: CA DEX
391 00:0219: E0 00 CPX #0
392 00:021B: D0 E2 BNE FILL_L_LP
393
394 00:021D: 68 PLA
395 00:021E: 7A PLY
396 00:021F: FA PLX
397 00:0220: 60 RTS
398
399 ;==================================================
400 ; Function: clean A char
Sat Nov 29 2008 17:23 Page 8
401 ; Input: LCDX LCDY
402 ;==================================================
403 CLS_CHAR12x12:
404 00:0221: A9 A1 LDA #A1H
405 00:0223: 8D xx xx STA SecPtr
406 00:0226: 8D xx xx STA PosPtr
407 00:0229: 20 xx xx JSR DRAW_CHAR12x12
408 00:022C: 60 RTS
409 ;==================================================
410 ; Function: clean A char
411 ; Input: LCDX LCDY CHARNUM
412 ; CHARNUM rang: 1-20
413 ;==================================================
414 CLS_CHARMANY:
415 00:022D: 20 xx xx JSR CLS_CHAR12x12
416 00:0230: EE xx xx INC LCDX
417 00:0233: CE xx xx DEC CHARNUM
418 00:0236: AD xx xx LDA CHARNUM
419 00:0239: C9 00 CMP #0
420 00:023B: D0 F0 BNE CLS_CHARMANY
421 00:023D: 60 RTS
422
423 ;==================================================
424 ; Function: reverse video char ||
425 ; Input: LCDX LCDY ||
426 ; Input: STRCNT ||
427 ;==================================================
428 InVideo:
429 00:023E: 48 PHA
430 00:023F: DA PHX
431 00:0240: 5A PHY
432 InVideo1:
433 00:0241: A9 xx LDA #<LCD_BUF_START
434 00:0243: 8D xx xx STA PtrL
435 00:0246: A9 xx LDA #>LCD_BUF_START
436 00:0248: 8D xx xx STA PtrH
437
438 00:024B: AD xx xx LDA LCDY
439 00:024E: 0A ASL
440 00:024F: AA TAX
441 00:0250: BD xx xx LDA Mult240Tab,X
442 00:0253: 18 CLC
443 00:0254: 6D xx xx ADC PtrL
444 00:0257: 8D xx xx STA PtrL
445 00:025A: BD xx xx LDA Mult240Tab+1,X
446 00:025D: 6D xx xx ADC PtrH
447 00:0260: 8D xx xx STA PtrH
448
449 00:0263: 8F xx 31 BBS0 <LCDX,InVideo_Offset4bitHD
450 00:0266: A9 0C LDA #12
451 00:0268: 8D xx xx STA TEMP_L
452
453 InvideoLP:
454 00:026B: AE xx xx LDX LCDX
455 00:026E: BD xx xx LDA XoffsetTab,X
456 00:0271: A8 TAY
457
458 00:0272: B1 xx LDA (PtrL),Y
Sat Nov 29 2008 17:23 Page 9
459 00:0274: 49 FF EOR #0FFH
460 00:0276: 91 xx STA (PtrL),Y
461
462 00:0278: C8 INY
463
464 00:0279: B1 xx LDA (PtrL),Y
465 00:027B: 49 F0 EOR #0F0H
466 00:027D: 91 xx STA (PtrL),Y
467
468 00:027F: 18 CLC
469 00:0280: AD xx xx LDA PtrL
470 00:0283: 69 1E ADC #30
471 00:0285: 8D xx xx STA PtrL
472 00:0288: AD xx xx LDA PtrH
473 00:028B: 69 00 ADC #0
474 00:028D: 8D xx xx STA PtrH
475
476 00:0290: CE xx xx DEC TEMP_L
477 00:0293: D0 D6 BNE InvideoLP
478 00:0295: 80 2F BRA InvideoEnd1
479 InVideo_Offset4bitHD:
480 00:0297: A9 0C LDA #12
481 00:0299: 8D xx xx STA TEMP_L
482 InvideoLP2:
483 00:029C: AE xx xx LDX LCDX
484 00:029F: BD xx xx LDA XoffsetTab,X
485 00:02A2: A8 TAY
486
487 00:02A3: B1 xx LDA (PtrL),Y
488 00:02A5: 49 0F EOR #0FH
489 00:02A7: 91 xx STA (PtrL),Y
490
491 00:02A9: C8 INY
492
493 00:02AA: B1 xx LDA (PtrL),Y
494 00:02AC: 49 FF EOR #0FFH
495 00:02AE: 91 xx STA (PtrL),Y
496
497
498 00:02B0: 18 CLC
499 00:02B1: AD xx xx LDA PtrL
500 00:02B4: 69 1E ADC #30
501 00:02B6: 8D xx xx STA PtrL
502 00:02B9: AD xx xx LDA PtrH
503 00:02BC: 69 00 ADC #0
504 00:02BE: 8D xx xx STA PtrH
505
506 00:02C1: CE xx xx DEC TEMP_L
507 00:02C4: D0 D6 BNE InvideoLP2
508 InvideoEnd1:
509 00:02C6: CE xx xx DEC STRCNT
510 00:02C9: AD xx xx LDA STRCNT
511 00:02CC: C9 00 CMP #0
512 00:02CE: F0 06 BEQ InvideoEnd2
513 00:02D0: EE xx xx INC LCDX
514 00:02D3: 4C xx xx JMP InVideo1
515 InvideoEnd2:
516 00:02D6: 7A PLY
Sat Nov 29 2008 17:23 Page 10
517 00:02D7: FA PLX
518 00:02D8: 68 PLA
519 00:02D9: 60 RTS
520 ;***************************************************************************
521 ;* Func: LCD_Init
522 ;* Input: none
523 ;* Output: none
524 ;*
525 ;* Description: LCD Init
526 ;*
527 ;***************************************************************************
528 LCD_Init:
529 00:02DA: 9C xx xx stz LCDX
530 00:02DD: 9C xx xx stz LCDY
531 00:02E0: 60 rts
532 .IF ASSEMBLER=ZARDOZ
533 .EFUNC ;LCD_Init
534 .ENDIF ;ASSEMBLER=ZARDOZ
535 ;===============================================================================
536 ;;input parameter: LCDX LCDY/ SecPtr PosPtr
537 ;;Find way: ((SecPrt-0xA1)*94+ PosPrt-0xA1)*24
538 ;;LCDX rang -> 0-19; LCDY rang (0-12)
539 ;;
540 ;;
541 ;;------------------------------------------------------------------------------
542 DRAW_CHAR12x12:
543 00:02E1: 48 PHA
544 00:02E2: DA PHX
545 00:02E3: 5A PHY
546 00:02E4: A5 34 LDA DRRL
547 00:02E6: 48 PHA
548 00:02E7: A5 35 LDA DRRH
549 00:02E9: 48 PHA
550 00:02EA: 38 SEC
551 00:02EB: AD xx xx LDA SecPtr
552 00:02EE: E9 A1 SBC #0A1H ;MULDATA_L
553 00:02F0: 8D xx xx STA MULDATA_L
554 00:02F3: 9C xx xx STZ MULDATA_H
555 00:02F6: A9 5E LDA #94
556 00:02F8: 8D xx xx STA TEMP_L
557 00:02FB: 9C xx xx STZ TEMP_H
558 00:02FE: 9C xx xx STZ TEMP_H2
559 00:0301: 9C xx xx STZ TEMP_H3 ; section prt * 24 byte
560 00:0304: 20 xx xx JSR MUL16_16
561
562 00:0307: 38 SEC
563 00:0308: AD xx xx LDA PosPtr
564 00:030B: E9 A1 SBC #0A1H
565 00:030D: 18 CLC
566 00:030E: 6D xx xx ADC DIVIDER_L
567 00:0311: 8D xx xx STA DIVIDER_L
568 00:0314: AD xx xx LDA DIVIDER_H
569 00:0317: 69 00 ADC #0
570 00:0319: 8D xx xx STA DIVIDER_H
571 ;-------------------------------------------------
572 ;The befor cal: Sec*96 + Pos |
573 ;-------------------------------------------------
574 ;The follow cal: x* 24 |
Sat Nov 29 2008 17:23 Page 11
575 ;-------------------------------------------------
576 00:031C: A9 18 LDA #24
577 00:031E: 8D xx xx STA MULDATA_L
578 00:0321: 9C xx xx STZ MULDATA_H
579 00:0324: AD xx xx LDA DIVIDER_L
580 00:0327: 8D xx xx STA TEMP_L
581 00:032A: AD xx xx LDA DIVIDER_H
582 00:032D: 8D xx xx STA TEMP_H
583 00:0330: 9C xx xx STZ TEMP_H2
584 00:0333: 9C xx xx STZ TEMP_H3
585 00:0336: 20 xx xx JSR MUL16_16
586 ;; offset = DIVIDER_H/DIVIDER_L b14-b0
587 ;; DS = DIVIDER_H2/DIVIDER_H b15-b7
588 00:0339: AD xx xx LDA DIVIDER_H2
589 00:033C: 8D xx xx STA TEMP_L
590 00:033F: AD xx xx LDA DIVIDER_H
591 00:0342: 8D xx xx STA TEMP_H
592 00:0345: 0E xx xx ASL TEMP_H
593 00:0348: 2E xx xx ROL TEMP_L ; b0<C
594 00:034B: AD xx xx LDA TEMP_L
595 00:034E: 29 07 AND #07H ;每8000H加1
596 00:0350: 18 CLC
597 00:0351: 69 02 ADC #2 ;从10000H开始
598 00:0353: 8D xx xx STA TEMP_L ;DRR
599
600 00:0356: 85 34 STA DRR
601
602 00:0358: AD xx xx LDA DIVIDER_L
603 00:035B: 8D xx xx STA FPtrL
604 00:035E: AD xx xx LDA DIVIDER_H
605 00:0361: 29 7F AND #7FH
606 00:0363: 8D xx xx STA FPtrH
607 00:0366: F7 xx SMB7 <FPtrH ; + 8000H
608
609 ;<<<<< (FPtr)= Font offset >>>>> ----------------
610 ;<<<<< TEMP_L= DS >>>>> ----------------
611
612 00:0368: A9 xx LDA #<LCD_BUF_START
613 00:036A: 8D xx xx STA PtrL
614 00:036D: A9 xx LDA #>LCD_BUF_START
615 00:036F: 8D xx xx STA PtrH
616
617 00:0372: AD xx xx LDA LCDY
618 00:0375: 0A ASL
619 00:0376: AA TAX
620 00:0377: BD xx xx LDA Mult240Tab,X
621 00:037A: 18 CLC
622 00:037B: 6D xx xx ADC PtrL
623 00:037E: 8D xx xx STA PtrL
624 00:0381: BD xx xx LDA Mult240Tab+1,X
625 00:0384: 6D xx xx ADC PtrH
626 00:0387: 8D xx xx STA PtrH
627
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -