⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 test1.lst

📁 Sitronix电子词典ST2202芯片的Zardoz汇编程序。
💻 LST
📖 第 1 页 / 共 2 页
字号:
  Wed Nov  5 2003 14:52                                                                                                Page 1


                                             ***************************************
                                             **   Zardoz 65C816 Macro Assembler   **
                                             **                                   **
                                             **     Version 3.01 - Apr 20 1997    **
                                             ***************************************

     1                        ;//*************************************************************************
     2                                        pw      128
     3                                        CHIP    W65C02S
     4                                        .INCLUDE ST22XX.INC
     5                                        .INCLUDE ST2202.DEF
     6                        ;//*****************Define Data*********************
     7             000000FF   Stack_Point     .equ    $ff             ;STACK POINT.
     8             00000091   Ptr             .equ    $91
     9             00000091   PtrL            .equ    $91
    10             00000092   PtrH            .equ    $92
    11             00000093   Tmp             .equ    $93
    12             00000093   Tmp1            .equ    $93
    13             00000093   TmpL            .equ    $93
    14             00000094   Tmp2            .equ    $94
    15             00000094   TmpH            .equ    $94
    16             00000095   Tmp3            .equ    $95
    17             00000096   Tmp4            .equ    $96
    18             00000097   LCD_Ptr         .equ    $97
    19             00000097   LCD_PtrL        .equ    $97
    20             00000098   LCD_PtrH        .equ    $98
    21             00000099   CursorX         .equ    $99
    22             0000009A   CursorY         .equ    $9a
    23             0000009B   StackTmp        .equ    $9b
    24             0000009C   Flag            .equ    $9c
    25             0000009D   Flag1           .equ    $9d
    26             0000009E   Buff            .equ    $9e
    27             0000009E   Buff1           .equ    $9e
    28             0000009F   Buff2           .equ    $9f
    29                        
    30             000000A0   LCD_SEG         .EQU    160
    31             00000050   LCD_COM         .EQU    80
    32             00000200   LCD_START       .EQU    $0200
    33                        ;//***********************************************
    34                        ;PS0     .SECTION
    35                                        ORG    $4000
    36 00:4000: 4C 30 40     BASETIMER_VT:   JMP     BASETIMER_ISR
    37 00:4003: 4C 38 40     PORT_VT:        JMP     PORT_ISR
    38 00:4006: 4C 31 40     TIMER1_VT:      JMP     TIMER1_ISR
    39 00:4009: 4C 32 40     TIMER0_VT:      JMP     TIMER0_ISR
    40 00:400C: 4C 33 40     DAC_VT:         JMP     DAC_ISR
    41 00:400F: 4C 34 40     INTX_VT:        JMP     INTX_ISR
    42 00:4012: 4C 36 40     NMI_VT:         JMP     NMI_ISR
    43 00:4015: 4C 3D 40     RESET_VT:       JMP     RESET_ISR
    44 00:4018: 4C 37 40     BRK_VT:         JMP     BRK_ISR
    45 00:401B: 4C 35 40     LCDFR_VT:       JMP     LCDFR_ISR
    46                        
    47 00:401E: 4C 33 40     IR14            JMP     DAC_ISR      ;14;4;FFE0
    48 00:4021: 4C 39 40     URX_VT          JMP     URX_ISR     ;13;4;FFE2
    49 00:4024: 4C 3A 40     UTX_VT          JMP     UTX_ISR      ;12;4;FFE4
    50 00:4027: 4C 3B 40     SRX_VT          JMP     SRX_ISR      ;11;4;FFE6
    51 00:402A: 4C 3C 40     STX_VT          JMP     STX_ISR      ;10;4;FFE8
    52 00:402D: 4C 35 40     IR07            JMP     LCDFR_ISR    ;07;5;FFEA
  Wed Nov  5 2003 14:52                                                                                                Page 2


    53                        BASETIMER_ISR:
    54 00:4030: 40                           RTI
    55                        TIMER1_ISR:
    56 00:4031: 40                           RTI
    57                        TIMER0_ISR:
    58 00:4032: 40                           RTI
    59                        DAC_ISR:
    60 00:4033: 40                           RTI
    61                        INTX_ISR:
    62 00:4034: 40                           RTI
    63                        LCDFR_ISR:
    64 00:4035: 40                           RTI
    65                        NMI_ISR:
    66 00:4036: 40                           RTI
    67                        BRK_ISR:
    68 00:4037: 40                           RTI
    69                        PORT_ISR:
    70 00:4038: 40                           RTI
    71                        URX_ISR:
    72 00:4039: 40                           RTI
    73                        UTX_ISR:
    74 00:403A: 40                           RTI
    75                        SRX_ISR:
    76 00:403B: 40                           RTI
    77                        STX_ISR:
    78 00:403C: 40                           RTI
    79                        ;//*******************Main Program**************************
    80                        RESET_ISR:
    81 00:403D: 78                   sei
    82 00:403E: A2 FF                ldx     #Stack_Point
    83 00:4040: 9A                   txs
    84 00:4041: 20 5E 40             jsr     INITIAL_LCD
    85 00:4044: 9C 00 02             stz     LCD_START
    86 00:4047: 20 8D 40             jsr     FILL_SCREEN
    87                        ?loop
    88 00:404A: 20 34 41             jsr     TEST_LCD_160X80
    89 00:404D: A9 1E                lda     #30
    90 00:404F: 20 6D 41             jsr     DELAY_TIME
    91 00:4052: 20 52 41             jsr     TEST_LCD_160X801
    92 00:4055: A9 1E                lda     #30
    93 00:4057: 20 6D 41             jsr     DELAY_TIME
    94 00:405A: 80 EE                bra     ?loop
    95                                STOP
+   95 00:405C: 80 FE                bra     $
    96                        
    97                        ;--------------------------OK-----------INITIAL_LCD
    98                        INITIAL_LCD:
    99 00:405E: 48                           PHA
   100 00:405F: A9 02                        LDA     #>LCD_START             ;lcd start address
   101 00:4061: 85 41                        STA     <LSSAH
   102 00:4063: A9 00                        LDA     #<LCD_START
   103 00:4065: 85 40                        STA     <LSSAL
   104 00:4067: A9 0A                        LDA     #LCD_SEG/16
   105 00:4069: 85 42                        STA     <LVPW                   ;lcd virtual page width
   106 00:406B: A9 14                        LDA     #LCD_SEG/8              ;lcd x length
   107 00:406D: 85 43                        STA     <LXMAX
   108 00:406F: A9 28                        LDA     #LCD_COM/2              ;lcd y length
   109 00:4071: 85 44                        STA     <LYMAX
  Wed Nov  5 2003 14:52                                                                                                Page 3


   110 00:4073: 64 45                        STZ     <LPAN                   ;no panning
   111 00:4075: 64 47                        STZ     <LCTR                   ;power on lcd,display on
   112 00:4077: A9 08                        LDA     #08H                    ;no reverse display
   113 00:4079: 85 48                        STA     <LCKR                    ;CP=OSCK/4,1-bit transmission
   114 00:407B: A9 04                        LDA     #04H
   115 00:407D: 85 49                        STA     <LFRA                   ;Frame Rate Adjust
   116 00:407F: A9 FF                        LDA     #FFH
   117 00:4081: 85 4E                        STA     <PCL                    ;PL=output
   118 00:4083: A9 00                        lda     #00
   119 00:4085: 85 4A                        STa     <LAC                    ;AC occur after every frame
   120 00:4087: A9 00                        LDA     #00
   121 00:4089: 85 4B                        STA     <LPWM                   ;contrast
   122 00:408B: 68                           PLA
   123 00:408C: 60                           RTS        
   124                        ;--------------------------OK-------------------------------FILL SCREEN
   125                        FILL_SCREEN:                                    ;fill screen with value
   126 00:408D: 48                           PHA                             ;at LCD_START
   127 00:408E: 64 36                        STZ     <DMR
   128 00:4090: A9 02                        LDA     #>LCD_START
   129 00:4092: 85 29                        STA     <DMSH
   130 00:4094: A9 00                        LDA     #<LCD_START
   131 00:4096: 85 28                        STA     <DMSL
   132 00:4098: A9 02                        LDA     #>LCD_START+1
   133 00:409A: 85 2B                        STA     <DMDH
   134 00:409C: A9 01                        LDA     #<LCD_START+1
   135 00:409E: 85 2A                        STA     <DMDL
   136 00:40A0: A9 06                        LDA     #>LCD_SEG*LCD_COM/8
   137 00:40A2: 85 2D                        STA     <DCNTH
   138 00:40A4: A9 3F                        LDA     #<LCD_SEG*LCD_COM/8-1
   139 00:40A6: 85 2C                        STA     <DCNTL
   140 00:40A8: 68                           PLA
   141 00:40A9: 60                           RTS
   142                        ;---------------------OK------------------Draw8x8Font
   143                        Draw8x8Font
   144                                PUSH_ALL
+  144 00:40AA: 48                   pha
+  144 00:40AB: DA                   phx
+  144 00:40AC: 5A                   phy
+  144 00:40AD: 85 9B                sta     <StackTmp
+  144 00:40AF: A5 92                lda     <PtrH
+  144 00:40B1: 48                   pha
+  144 00:40B2: A5 91                lda     <PtrL
+  144 00:40B4: 48                   pha
+  144 00:40B5: A5 94                lda     <TmpH
+  144 00:40B7: 48                   pha
+  144 00:40B8: A5 93                lda     <TmpL
+  144 00:40BA: 48                   pha
+  144 00:40BB: A5 9B                lda     <StackTmp
   145                                
   146 00:40BD: 0A                   asl     a                       ;a*8 to index table
   147 00:40BE: 0A                   asl     a
   148 00:40BF: 0A                   asl     a
   149 00:40C0: 85 91                sta     <PtrL
   150                        
   151 00:40C2: A9 6D                lda     #<CourierFont8x8        ;a=low address of CourierFont8x8
   152 00:40C4: 18                   clc                             ;PtrL=character index low address
   153 00:40C5: 65 91                adc     <PtrL
   154 00:40C7: 85 91                sta     <PtrL
  Wed Nov  5 2003 14:52                                                                                                Page 4


   155                        
   156 00:40C9: A9 41                lda     #>CourierFont8x8
   157 00:40CB: 64 92                stz     <PtrH
   158 00:40CD: 65 92                adc     <PtrH
   159 00:40CF: 85 92                sta     <PtrH                   ;PtrH=character index high address
   160                        
   161 00:40D1: A9 02                lda     #>LCD_START
   162 00:40D3: 85 94                sta     <TmpH
   163 00:40D5: A9 00                lda     #<LCD_START
   164 00:40D7: 18                   clc
   165 00:40D8: 65 99                adc     <CursorX                  ;X direction LCD character start
   166 00:40DA: 85 93                sta     <TmpL                     ;low address
   167 00:40DC: 90 02                bcc     ?3
   168 00:40DE: E6 94                inc     <TmpH
   169                        ?3
   170 00:40E0: A5 9A                lda     <CursorY                  ;Y direction LCD character start
   171 00:40E2: 0A                   asl     a                         ;low address
   172 00:40E3: A8                   tay
   173                        .iftrue LCD_SEG=320
   174                                lda     Mul320Tab,y
   175                        .endif
   176                        .iftrue LCD_SEG=160
   177 00:40E4: B9 BF 41             lda     Mul160Tab,y
   178                        .endif
   179                        .iftrue LCD_SEG=112
   180                                lda     Mul112Tab,y
   181                        .endif
   182                        
   183 00:40E7: 18                   clc
   184 00:40E8: 65 93                adc     <TmpL
   185 00:40EA: 85 93                sta     <TmpL
   186 00:40EC: 90 02                bcc     ?4
   187 00:40EE: E6 94                inc     <TmpH
   188                        ?4
   189                        .iftrue LCD_SEG=320
   190                                lda     Mul320Tab+1,y
   191                        .endif
   192                        .iftrue LCD_SEG=160
   193 00:40F0: B9 C0 41             lda     Mul160Tab+1,y
   194                        .endif
   195                        .iftrue LCD_SEG=112
   196                                lda     Mul112Tab+1,y
   197                        .endif
   198                        ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
   199 00:40F3: 18                   clc
   200 00:40F4: 65 94                adc     <TmpH
   201 00:40F6: 85 94                sta     <TmpH
   202 00:40F8: A0 00                ldy     #0h                         ;Display character
   203                        ?1
   204 00:40FA: B1 91                lda     (Ptr),y
   205 00:40FC: 92 93                sta     (Tmp)
   206                        
   207 00:40FE: A9 14                lda     #LCD_SEG/8
   208 00:4100: 18                   clc
   209 00:4101: 65 93                adc     <TmpL
   210 00:4103: 85 93                sta     <TmpL
   211 00:4105: 90 02                bcc     ?2
   212 00:4107: E6 94                inc     <TmpH
  Wed Nov  5 2003 14:52                                                                                                Page 5


   213                        ?2
   214 00:4109: C8                   iny
   215 00:410A: C0 08                cpy     #8
   216 00:410C: D0 EC                bne     ?1
   217                        
   218 00:410E: A5 99                lda     <CursorX                     ;x,y position point to
   219 00:4110: 1A                   inc     a                            ;low-byte character

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -