📄 lcd.lst
字号:
Sat Nov 29 2008 17:23 Page 1
***************************************
** Zardoz 65C816 Macro Assembler **
** **
** Version 3.01 - Apr 20 1997 **
***************************************
1
2 ;***************************************************************************
3
4 .PW 128
5 .CHIP W65C02S
6 .GLOBALS ON
7 .INCLUDE SYSTEM.CFG
8 .INCLUDE ST2205.DEF
9
10 ;***************************************************************************
11 ;* extenal label definition
12 ;*
13 ;***************************************************************************
14 .XREF MUL16_16
15 .XREF TEMP_H3
16 .XREF TEMP_H2
17 .XREF TEMP_H
18 .XREF TEMP_L
19 .XREF FPtrH
20 .XREF FPtrL
21 .XREF PtrH
22 .XREF PtrL
23 .XREF LCD_BUF_START
24 .XREF DIVIDER_L
25 .XREF DIVIDER_H
26 .XREF DIVIDER_H2
27 .XREF DIVIDER_H3
28 .XREF LCD_SEG
29 .XREF LCD_COM
30 .XREF LCDX
31 .XREF LCDY
32 .XREF MULDATA_L
33 .XREF MULDATA_H
34 .XREF SecPtr
35 .XREF PosPtr
36 .XREF DRR
37 .XREF STRCNT
38 .XREF ResData
39 .XREF TEMP
40 .XREF CHARNUM
41 ;***************************************************************************
42 ;* global label definition
43 ;*
44 ;***************************************************************************
45 .PUBLIC DRAW_CHAR12x12
46 .PUBLIC CLS_LINE
47 .PUBLIC CLS_CHAR12x12
48 .PUBLIC InVideo
49 .PUBLIC DRAW_STRING
50 .PUBLIC DIVIDETEN
51 .PUBLIC DISP_NUMBER
52 .PUBLIC CLS_CHAR12x12
Sat Nov 29 2008 17:23 Page 2
53 .PUBLIC CLS_CHARMANY
54 .PUBLIC DISP_NUMBER_IN
55 ;***************************************************************************
56 ;* Description: Section PS0
57 ;*
58 ;***************************************************************************
59 PS0 .SECTION
60 ;***************************************************************************
61 ;==================================================
62 ; Function: printer a string in the display |
63 ; Input: PtrL & PtrH & LCDX & LCDY
64 ;==================================================
65 DRAW_STRING:
66 00:0000: 48 PHA
67 00:0001: 5A PHY
68 DRAWSTRLOOP:
69 00:0002: B2 xx LDA (PtrL)
70 00:0004: C9 00 CMP #0
71 00:0006: F0 33 BEQ Draw_StrEnd
72 00:0008: 8D xx xx STA SecPtr
73 00:000B: A0 01 LDY #1
74 00:000D: B1 xx LDA (PtrL,Y)
75 00:000F: 8D xx xx STA PosPtr
76 00:0012: AD xx xx LDA PtrL
77 00:0015: 48 PHA
78 00:0016: AD xx xx LDA PtrH
79 00:0019: 48 PHA
80 00:001A: 20 xx xx JSR DRAW_CHAR12x12
81 00:001D: 68 PLA
82 00:001E: 8D xx xx STA PtrH
83 00:0021: 68 PLA
84 00:0022: 8D xx xx STA PtrL
85 00:0025: EE xx xx INC LCDX
86 00:0028: 18 CLC
87 00:0029: A9 02 LDA #2
88 00:002B: 6D xx xx ADC PtrL
89 00:002E: 8D xx xx STA PtrL
90 00:0031: A9 00 LDA #0
91 00:0033: 6D xx xx ADC PtrH
92 00:0036: 8D xx xx STA PtrH
93 00:0039: 80 C7 BRA DRAWSTRLOOP
94 Draw_StrEnd:
95 00:003B: 7A PLY
96 00:003C: 68 PLA
97 00:003D: 60 RTS
98
99 ;;==============================================================================
100 ;; Input: A LCDX LCDY
101 ;; Useing Ram: TEMP_L
102 ;;
103 ;;==============================================================================
104 DISP_NUMBER:
105 00:003E: 48 PHA
106 00:003F: DA PHX
107 00:0040: 5A PHY
108 00:0041: C9 C8 CMP #200
109 00:0043: B0 19 BCS MORE_TWOHANDRED
110 00:0045: C9 64 CMP #100
Sat Nov 29 2008 17:23 Page 3
111 00:0047: B0 21 BCS MORE_ONEHANDRED
112 00:0049: 20 xx xx JSR DIVIDETEN
113 00:004C: C9 00 CMP #0
114 00:004E: F0 06 BEQ DISP_NUMNXT1
115 00:0050: 20 xx xx JSR DRAW_CHAR8x8
116 00:0053: EE xx xx INC LCDX
117 DISP_NUMNXT1:
118 00:0056: AD xx xx LDA ResData
119 00:0059: 20 xx xx JSR DRAW_CHAR8x8
120 00:005C: 80 28 BRA DISP_NUMEND
121 MORE_TWOHANDRED:
122 00:005E: 38 SEC
123 00:005F: E9 C8 SBC #200
124 00:0061: 48 PHA
125 00:0062: A9 02 LDA #2
126 00:0064: 20 xx xx JSR DRAW_CHAR8x8
127 00:0067: 68 PLA
128 00:0068: 80 0A BRA DISP_NUMNXT2
129 MORE_ONEHANDRED:
130 00:006A: 38 SEC
131 00:006B: E9 64 SBC #100
132 00:006D: 48 PHA
133 00:006E: A9 01 LDA #1
134 00:0070: 20 xx xx JSR DRAW_CHAR8x8
135 00:0073: 68 PLA
136 DISP_NUMNXT2:
137 00:0074: EE xx xx INC LCDX
138 00:0077: 20 xx xx JSR DIVIDETEN
139 00:007A: 20 xx xx JSR DRAW_CHAR8x8
140 00:007D: EE xx xx INC LCDX
141 00:0080: AD xx xx LDA ResData
142 00:0083: 20 xx xx JSR DRAW_CHAR8x8
143 DISP_NUMEND:
144 00:0086: 7A PLY
145 00:0087: FA PLX
146 00:0088: 68 PLA
147 00:0089: 60 RTS
148 ;;==============================================================================
149 ;; Input: A LCDX LCDY
150 ;; Useing Ram: TEMP_L
151 ;;
152 ;;==============================================================================
153 DISP_NUMBER_IN:
154 00:008A: 48 PHA
155 00:008B: DA PHX
156 00:008C: 5A PHY
157 00:008D: C9 C8 CMP #200
158 00:008F: B0 19 BCS MORE_TWOHANDRED_IN
159 00:0091: C9 64 CMP #100
160 00:0093: B0 21 BCS MORE_ONEHANDRED_IN
161 00:0095: 20 xx xx JSR DIVIDETEN
162 00:0098: C9 00 CMP #0
163 00:009A: F0 06 BEQ DISP_NUMNXT1_IN
164 00:009C: 20 xx xx JSR DRAW_CHAR8x8_IN
165 00:009F: EE xx xx INC LCDX
166 DISP_NUMNXT1_IN:
167 00:00A2: AD xx xx LDA ResData
168 00:00A5: 20 xx xx JSR DRAW_CHAR8x8_IN
Sat Nov 29 2008 17:23 Page 4
169 00:00A8: 80 28 BRA DISP_NUMEND_IN
170 MORE_TWOHANDRED_IN:
171 00:00AA: 38 SEC
172 00:00AB: E9 C8 SBC #200
173 00:00AD: 48 PHA
174 00:00AE: A9 02 LDA #2
175 00:00B0: 20 xx xx JSR DRAW_CHAR8x8_IN
176 00:00B3: 68 PLA
177 00:00B4: 80 0A BRA DISP_NUMNXT2_IN
178 MORE_ONEHANDRED_IN:
179 00:00B6: 38 SEC
180 00:00B7: E9 64 SBC #100
181 00:00B9: 48 PHA
182 00:00BA: A9 01 LDA #1
183 00:00BC: 20 xx xx JSR DRAW_CHAR8x8_IN
184 00:00BF: 68 PLA
185 DISP_NUMNXT2_IN:
186 00:00C0: EE xx xx INC LCDX
187 00:00C3: 20 xx xx JSR DIVIDETEN
188 00:00C6: 20 xx xx JSR DRAW_CHAR8x8_IN
189 00:00C9: EE xx xx INC LCDX
190 00:00CC: AD xx xx LDA ResData
191 00:00CF: 20 xx xx JSR DRAW_CHAR8x8_IN
192 DISP_NUMEND_IN:
193 00:00D2: 7A PLY
194 00:00D3: FA PLX
195 00:00D4: 68 PLA
196 00:00D5: 60 RTS
197 ;;==============================================================================
198 ;; Input: A -> ASSCII code LCDX -> rang (0-29) LCDY -> rang (0-12)
199 ;; Output: char
200 ;; Use Ram: FPtrL/FPtrH,PtrL/PtrH
201 ;;==============================================================================
202 DRAW_CHAR8x8:
203 00:00D6: 48 PHA
204 00:00D7: DA PHX
205 00:00D8: 5A PHY
206 00:00D9: 9C xx xx STZ FPtrH
207 00:00DC: 8D xx xx STA FPtrL
208
209 00:00DF: 0E xx xx ASL FPtrL
210 00:00E2: 2E xx xx ROL FPtrH
211
212 00:00E5: 0E xx xx ASL FPtrL
213 00:00E8: 2E xx xx ROL FPtrH
214
215 00:00EB: 0E xx xx ASL FPtrL
216 00:00EE: 2E xx xx ROL FPtrH ;mul * 8
217
218 00:00F1: A9 xx LDA #<ASCIIFont5x7
219 00:00F3: 18 CLC
220 00:00F4: 6D xx xx ADC FPtrL
221 00:00F7: 8D xx xx STA FPtrL
222 00:00FA: A9 xx LDA #>ASCIIFont5x7
223 00:00FC: 6D xx xx ADC FPtrH
224 00:00FF: 8D xx xx STA FPtrH ;load font input port
225 ;===...............................................===
226 00:0102: A9 xx LDA #<LCD_BUF_START
Sat Nov 29 2008 17:23 Page 5
227 00:0104: 8D xx xx STA PtrL
228 00:0107: A9 xx LDA #>LCD_BUF_START
229 00:0109: 8D xx xx STA PtrH
230
231 00:010C: AD xx xx LDA LCDY
232 00:010F: 0A ASL
233 00:0110: AA TAX
234 00:0111: BD xx xx LDA Mult240Tab1,X
235 00:0114: 18 CLC
236 00:0115: 6D xx xx ADC PtrL
237 00:0118: 8D xx xx STA PtrL
238 00:011B: BD xx xx LDA Mult240Tab1+1,X
239 00:011E: 6D xx xx ADC PtrH
240 00:0121: 8D xx xx STA PtrH
241
242 00:0124: A2 08 LDX #8
243
244 00:0126: AC xx xx LDY LCDX
245 Disp_8x8LP:
246 00:0129: B2 xx LDA (FPtrL)
247 00:012B: 91 xx STA (PtrL),Y
248
249 00:012D: 18 CLC
250 00:012E: AD xx xx LDA PtrL
251 00:0131: 69 1E ADC #30
252 00:0133: 8D xx xx STA PtrL
253 00:0136: AD xx xx LDA PtrH
254 00:0139: 69 00 ADC #0
255 00:013B: 8D xx xx STA PtrH
256
257 00:013E: 18 CLC
258 00:013F: EE xx xx INC FPtrL
259 00:0142: AD xx xx LDA FPtrL
260 00:0145: C9 00 CMP #0
261 00:0147: D0 03 BNE Disp_skip
262 00:0149: EE xx xx INC FPtrH
263 Disp_skip:
264 00:014C: CA DEX
265 00:014D: E0 00 CPX #0
266 00:014F: D0 D8 BNE Disp_8x8LP
267
268 00:0151: 7A PLY
269 00:0152: FA PLX
270 00:0153: 68 PLA
271 00:0154: 60 RTS
272 ;;==============================================================================
273 ;; Input: A -> ASSCII code LCDX -> rang (0-29) LCDY -> rang (0-12)
274 ;; Output: char
275 ;; Use Ram: FPtrL/FPtrH,PtrL/PtrH
276 ;;==============================================================================
277 DRAW_CHAR8x8_IN:
278 00:0155: 48 PHA
279 00:0156: DA PHX
280 00:0157: 5A PHY
281 00:0158: 9C xx xx STZ FPtrH
282 00:015B: 8D xx xx STA FPtrL
283
284 00:015E: 0E xx xx ASL FPtrL
Sat Nov 29 2008 17:23 Page 6
285 00:0161: 2E xx xx ROL FPtrH
286
287 00:0164: 0E xx xx ASL FPtrL
288 00:0167: 2E xx xx ROL FPtrH
289
290 00:016A: 0E xx xx ASL FPtrL
291 00:016D: 2E xx xx ROL FPtrH ;mul * 8
292
293 00:0170: A9 xx LDA #<ASCIIFont5x7
294 00:0172: 18 CLC
295 00:0173: 6D xx xx ADC FPtrL
296 00:0176: 8D xx xx STA FPtrL
297 00:0179: A9 xx LDA #>ASCIIFont5x7
298 00:017B: 6D xx xx ADC FPtrH
299 00:017E: 8D xx xx STA FPtrH ;load font input port
300 ;===...............................................===
301 00:0181: A9 xx LDA #<LCD_BUF_START
302 00:0183: 8D xx xx STA PtrL
303 00:0186: A9 xx LDA #>LCD_BUF_START
304 00:0188: 8D xx xx STA PtrH
305
306 00:018B: AD xx xx LDA LCDY
307 00:018E: 0A ASL
308 00:018F: AA TAX
309 00:0190: BD xx xx LDA Mult240Tab1,X
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -