📄 hf0803.lst.bak
字号:
1 ;;==============================================================================
2 ;============= << USB ENUMERATION TEST >> ========================
3 ;===============================================================================
4 CHIP W65C02S
5
6 .PL 0
7 .PW 128
8
9 .GLOBALS ON
10
11 .INCLUDE ST2205.DEF
12 .INCLUDE COMMON.INC
13 .INCLUDE ST22XX.INC
14 .INCLUDE ram.INC
15 00002890 Mode2LB20 EQU BaseAddr+0890H;30字节
16
17 ;++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
18 .XREF DRAW_CHAR12x12
19 .XREF DRAW_STRING
20 .XREF InVideo
21 ;++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
22 ;--<< EQU >>
23 ;++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
24 00000200 BKO EQU 200H
25 00000240 BKI EQU 240H
26 00000280 EPZOUT EQU 280H
27 00000288 EPZIN EQU 288H
28
29 00000300 DEBUG_MEM EQU 300H
30 00000310 DEBUG_MEM2 EQU 310H
31 ;------------------------------------------------------------------------
32 00000D40 LCD_BUF_START EQU D40H
33 000000F0 LCD_SEG EQU 240
34 000000A0 LCD_COM EQU 160
35 00000000 LCD_CONTROL EQU 00000000b
36 00000015 LCD_LCK EQU 00010101b ;4bit mode; LCDCK=SYSCK/8
37 00000006 LCD_LFRA EQU 6
38 00000001 LCD_CONTRAST EQU 1
39 00000000 LCD_AC EQU (1-1)/2
40
41 00000018 LCD_DATA_WIDTH .EQU 18H ;10h ; 1-bit:00h 4-bit 10h
42 0000003C LCD_VIRTUAL_PAGE_WIDTH .EQU (LCD_SEG)/2/2
43 ;++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
44 ;-------------------------------------------------------------------------------
45 ;-------------------------------------------------------------------------------
46 ;***************************************************************************
47 ;* VARS Section
48 ;*
49 ;***************************************************************************
50 SYSRAM .SECTION REF_ONLY
51 ;*************************************************************************
52 00:0000: STATUS_FLAG .DS 1
53 00:0001: LCDX .DS 1
54 00:0002: LCDY .DS 1
55
56 Ptr
57 00:0003: PtrL .DS 1
58 00:0004: PtrH .DS 1
59
60 FPtr
61 00:0005: FPtrL .DS 1
62 00:0006: FPtrH .DS 1
63
64
65 00:0007: SecPtr .DS 1
66 00:0008: PosPtr .DS 1
67
68 00:0009: DIVIDER_H3 .DS 1
69 00:000A: DIVIDER_H2 .DS 1
70 00:000B: DIVIDER_H .DS 1
71 00:000C: DIVIDER_L .DS 1
72
73 00:000D: TEMP_H3 .DS 1
74 00:000E: TEMP_H2 .DS 1
75 00:000F: TEMP_H .DS 1
76 00:0010: TEMP_L .DS 1
77
78 00:0011: MULDATA_H .DS 1
79 00:0012: MULDATA_L .DS 1
80
81 00:0013: STRCNT .DS 1
82 00:0014: SystemFlag .DS 1
83 00:0015: KeyCode .DS 1
84 00:0016: PageNum .DS 1
85 ;B0
86 ;B1
87 ;B2
88 ;B3
89 ;B4
90 ;B5
91 ;B6
92 ;B7
93 00:0017: PageLocationX .DS 1
94 00:0018: PageLocationY .DS 1
95 00:0019: OldPageNum .DS 1
96 00:001A: NumOfCard .DS 1
97 ;-------------------------------------------------------------------------------
98 PS0 .SECTION
99 00:0000: 4C xx xx USB_VECT: JMP USB_VT
100 00:0003: 4C xx xx UART_R_VECT: JMP UART_R_VT
101 00:0006: 4C xx xx UART_T_VECT: JMP UART_T_VT
102 00:0009: 4C xx xx SPI_R_VECT: JMP SPI_R_VT
103 00:000C: 4C xx xx SPI_T_VECT: JMP SPI_T_VT
104 00:000F: 4C xx xx LCD_VECT: JMP LCD_VT
105 00:0012: 4C xx xx RESERVED_VECT: JMP RESERVED_VT
106 00:0015: 4C xx xx BASETIMER_VECT: JMP BASETIMER_VT
107 00:0018: 4C xx xx PORT_VECT: JMP PORT_VT
108 00:001B: 4C xx xx TIMER3_VECT: JMP TIMER3_VT
109 00:001E: 4C xx xx TIMER2_VECT: JMP TIMER2_VT
110 00:0021: 4C xx xx TIMER1_VECT: JMP TIMER1_VT
111 00:0024: 4C xx xx TIMER0_VECT: JMP TIMER0_VT
112 00:0027: 4C xx xx INTX_VECT: JMP INTX_VT
113 00:002A: 4C xx xx BRK_VECT: JMP BRK_VT
114 00:002D: 4C xx xx RESET_VECT: JMP RESET_VT
115 ;;================ ===================
116 ;;================ < INTERRUPT SUBGRAM BEGIN >===================
117 ;;================ ===================
118 USB_VT:
119 00:0030: 40 RTI
120 BASETIMER_VT:
121 00:0031: 40 RTI
122 PORT_VT:
123 00:0032: 40 RTI
124 TIMER3_VT:
125 00:0033: 40 RTI
126 TIMER2_VT:
127 00:0034: 40 RTI
128 TIMER1_VT:
129 UART_R_VT:
130 UART_T_VT:
131 SPI_R_VT:
132 SPI_T_VT:
133 00:0035: 40 RTI
134 LCD_VT:
135 00:0036: 40 RTI
136 INTX_VT:
137 00:0037: 40 RTI
138 RESERVED_VT:
139 00:0038: 40 RTI
140 BRK_VT:
141 00:0039: 40 RTI
142 TIMER0_VT:
143 00:003A: 48 PHA
144 00:003B: DA PHX
145 00:003C: 5A PHY
146 00:003D: 17 3C RMB1 IREQL
147 00:003F: 87 xx SMB0 <SystemFlag
148 00:0041: 7A PLY
149 00:0042: FA PLX
150 00:0043: 68 PLA
151 00:0044: 40 RTI
152 ;-------------------------------------------------------------------------------
153 ;-------------------------------------------------------------------------------
154 ;;******************* *********************
155 ;;******************* < POWER ON RESET PRG > *********************
156 ;;******************* *********************
157 RESET_VT:
158 00:0045: 78 sei ; Interrupt disable.
159 00:0046: 20 xx xx JSR InitIO
160 00:0049: 20 xx xx JSR InitRAM
161 ; Initial data ROM bank register.
162 00:004C: A2 00 ldx #000h ; Black screen.
163 00:004E: 20 xx xx jsr FillScreen
164 00:0051: A2 FF ldx #FFH
165 00:0053: 9A txs ; Initial stack pointer.
166 00:0054: 20 xx xx jsr InitialLCDC ; Initial LCD control registers.
167 00:0057: A9 01 lda #01h
168 00:0059: 85 34 sta <DRR
169 00:005B: 20 xx xx JSR InitTime
170 00:005E: 20 xx xx JSR SetupPage0
171 00:0061: 9C xx xx STZ PageLocationX
172 00:0064: 9C xx xx STZ PageLocationY
173 00:0067: 20 xx xx JSR AddMenuPage1
174 00:006A: 9C xx xx STZ PageNum
175 00:006D: 87 xx SMB0 <SystemFlag
176 00:006F: 20 xx xx JSR InitTime
177 00:0072: 58 CLI
178 ;+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++=
179 ;main loop
180 ;+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
181 MAIN:
182 00:0073: 8F xx 06 BBS0 <SystemFlag,CheckKeyin
183 00:0076: 20 xx xx JSR IsPageChange
184 00:0079: 4C xx xx JMP MAIN
185 CheckKeyin:
186 00:007C: 07 xx RMB0 <SystemFlag
187 00:007E: 20 xx xx JSR KeyScan
188 CheckKeyinEnd:
189 00:0081: 4C xx xx JMP MAIN
190 InitTime:
191 00:0084: A9 1E LDA #30
192 00:0086: 85 20 STA T0CL
193 00:0088: A9 C0 LDA #C0H
194 00:008A: 85 21 STA T0CH
195 00:008C: A9 C0 LDA #C0H
196 00:008E: 85 29 STA PRS
197 00:0090: 87 28 SMB0 TIEN
198 00:0092: 97 3E SMB1 IENAL
199 00:0094: 60 RTS
200 InitRAM:
201 00:0095: A9 88 LDA #136
202 00:0097: 85 10 STA <SelectCardNum
203 00:0099: A9 78 LDA #120
204 00:009B: 8D 11 20 STA WashCardMaxTime
205 00:009E: A9 55 LDA #55H
206 00:00A0: 85 26 STA <ChangeMothodMode
207 00:00A2: 85 27 STA <TurnPoleMode
208 00:00A4: 85 1B STA <TuchOpenMothod
209 00:00A6: A9 06 LDA #6
210 00:00A8: 85 16 STA <BrushDelayL
211 00:00AA: 85 16 STA <BrushDelayH
212 00:00AC: A9 0F LDA #15
213 00:00AE: 85 18 STA <AllowErrorTiem
214 00:00B0: A9 10 LDA #10H
215 00:00B2: 85 1C STA <SelectCardTimeL
216 00:00B4: A9 27 LDA #27H
217 00:00B6: 85 1D STA <SelectCardTimeH
218 00:00B8: A9 55 LDA #55H
219 00:00BA: 85 20 STA <ProgramSelectOne
220 00:00BC: 64 23 STZ <ForbitCardNumOne
221 00:00BE: A9 14 LDA #20
222 00:00C0: 85 29 STA <EndspecialNumOne
223 00:00C2: A9 11 LDA #17
224 00:00C4: 85 05 STA <EastOne1
225 00:00C6: 85 51 STA <SouthOne2
226 00:00C8: 85 52 STA <WestOne3
227 00:00CA: 85 53 STA <NorthOne4
228 00:00CC: 64 40 STZ <DiceAEast
229 00:00CE: 64 41 STZ <DiceAEast+1
230 00:00D0: 64 42 STZ <DiceAEast+2
231 00:00D2: 64 43 STZ <DiceASouth
232 00:00D4: 64 44 STZ <DiceASouth+1
233 00:00D6: 64 45 STZ <DiceASouth+2
234 00:00D8: 64 46 STZ <DiceAWest
235 00:00DA: 64 47 STZ <DiceAWest+1
236 00:00DC: 64 48 STZ <DiceAWest+2
237 00:00DE: 64 49 STZ <DiceANorth
238 00:00E0: 64 4A STZ <DiceANorth+1
239 00:00E2: 64 4B STZ <DiceANorth+2
240 00:00E4: 60 RTS
241 InitIO:
242 00:00E5: A9 00 LDA #0
243 00:00E7: 64 08 STZ PCA
244 00:00E9: 85 00 STA PA
245 00:00EB: 64 09 STZ PCB
246 00:00ED: 64 01 STZ PB
247 00:00EF: A9 07 LDA #7
248 00:00F1: 85 0A STA PCC
249 00:00F3: 85 02 STA PC
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -