Rev 551 | Details | Compare with Previous | Last modification | View Log | RSS feed
Rev | Author | Line No. | Line |
---|---|---|---|
261 | ddp | 1 | ;01234567890123456789012345678901234567890123456789012 |
277 | ddp | 2 | ; ZX Evolution Service (101106) 00 |
261 | ddp | 3 | ;ĿĿ01 Ŀ |
4 | ; Exit .. <DIR>31.12.0923:5802 室 |
||
5 | ; Retrieve all ~1 <DIR>31.12.0923:5803 ᭮ |
||
551 | ddp | 6 | ;Erase chip NEWFOL~1 <DIR>31.12.0923:5804 /. |
261 | ddp | 7 | ; Add job testram rom 204831.12.0923:5805 . |
8 | ; Execute jobs filename rom52428831.12.0923:5806 믮 |
||
9 | ;ٳzxevo rom 6553631.12.0923:5807 |
||
10 | ;Ŀtrdos503 rom 1638431.12.0923:5808 Ŀ |
||
11 | ; Chip: M29F040 bigfile bin3214 K31.12.0923:5809 ChipID: 20 E2 |
||
12 | ; CRC: 12345678 verybig bin4095 M31.12.0923:5810 CRC: 12345678 |
||
13 | ; SDcard: FAT32 some rom 12331.12.0923:5811 No SD-card! |
||
14 | ; Erase... onemore bin 987631.12.0923:5812 Verify... |
||
15 | ;13 |
||
551 | ddp | 16 | ;Ŀ14 |
261 | ddp | 17 | ;gluk rom trdos610 rom basic128 rom basic48 rom15 ᥪ(1) .(4) (8+3) | ⮣ 祩 16 |
277 | ddp | 18 | ;............ ............ ............ ............16 | ⮣ 512 |
261 | ddp | 19 | ;............ ............ ............ ............17 |
20 | ;............ ............ ............ ............18 |
||
21 | ;............ ............ ............ ............19 |
||
22 | ;............ ............ ............ ............20 |
||
23 | ;............ ............ ............ ............21 |
||
24 | ;............ ............ ............ ............22 |
||
25 | ;23 |
||
26 | ; http://www.NedoPC.com/ 24 |
||
27 | |||
28 | |||
29 | MSG_FL_CHIP: |
||
30 | .DB $16, 2, 9,$15,$9F,"Chip",0 |
||
31 | MSG_FL_ID: |
||
32 | .DB "ID: ",0,0 |
||
33 | MSG_FL_M29F040: |
||
34 | .DB ": M29F040",0 |
||
35 | MSG_FL_AM29F040: |
||
36 | .DB ":Am29F040",0 |
||
37 | MSG_FL_CRC: |
||
38 | .DB $16, 2,10,$15,$9F,"CRC: " ,0,0 |
||
39 | MSG_FL_SDCARD: |
||
40 | .DB $16, 2,11, "SDcard: FAT" ,0,0 |
||
41 | MSG_FL_ERASECHIP: |
||
551 | ddp | 42 | .DB $16,1,4,$FB,0,0 |
261 | ddp | 43 | MSG_FL_ERRPOS: |
44 | .DB $16, 1,11,$15,$AE,0 |
||
45 | ; |
||
46 | WIND_FL_MENU: |
||
47 | .DB 0,1,17,7,$9F,$00 |
||
48 | WIND_FL_STATUS: |
||
49 | .DB 0,8,17,6,$9F,$00 |
||
50 | WIND_FL_FILEPANEL: |
||
51 | .DB 17,1,36,13,$9F,$00 |
||
52 | WIND_FL_CONTENT: |
||
53 | .DB 0,14,53,10,$9F,$00 |
||
54 | WIND_FL_RESULT_OK: |
||
55 | .DB 11,4,31,6,$CF,$01 |
||
56 | WIND_FL_RESULT_FAIL: |
||
57 | .DB 11,4,31,6,$AF,$01 |
||
58 | ; |
||
59 | FL_UNKNOWN: |
||
60 | .DB " ???? ",0 |
||
61 | FL_EMPTY: |
||
62 | .DB " empty ",0 |
||
63 | FL_ZXBAS48: |
||
64 | .DB $A8,$02,$99,$0C ;0C9902A8 |
||
636 | ddp | 65 | .DB "ZX Basic48 ",0 |
261 | ddp | 66 | FL_ZXBAS128: |
498 | ddp | 67 | .DB $C8,$59,$C0,$83 ;83C059C8 |
636 | ddp | 68 | .DB "ZX Basic128",0 |
261 | ddp | 69 | FL_TRDOS: |
498 | ddp | 70 | .DB $71,$06,$7A,$7A ;7A7A0671 |
636 | ddp | 71 | .DB "TR-DOS ",0 |
261 | ddp | 72 | FL_ALCOGLUKPEN: |
73 | .DB $44,$6F,$D7,$87 ;87D76F44 |
||
636 | ddp | 74 | .DB "AlCoGLUKpen",0 |
75 | FL_EMPT2: |
||
76 | .DB $AD,$33,$52,$BE ;BE5233AD |
||
77 | .DB " * empty* ",0 |
||
411 | ddp | 78 | FL_QC3: |
79 | .DB "QC 3" |
||
636 | ddp | 80 | .DB "QC3.xx ",0 |
261 | ddp | 81 | FL_ATM2CPM: |
82 | .DB $1E,$65,$1E,$B3 ;B31E651E |
||
636 | ddp | 83 | .DB "ATM2_CPM ",0 |
261 | ddp | 84 | FL_XBIOSMENU: |
85 | .DB $BC,$A4,$2C,$29 ;292CA4BC |
||
636 | ddp | 86 | .DB "xBIOS stmnu",0 |
261 | ddp | 87 | FL_VTRDOS: |
88 | .DB $27,$2E,$23,$68 ;68232E27 |
||
636 | ddp | 89 | .DB "vTR-dos ",0 |
90 | FL_TSBIOS: |
||
91 | .DB $FF,$63,$9B,$15 ;159B63FF |
||
92 | .DB "TS-BIOS ",0 |
||
93 | FL_PROFKA: |
||
94 | .DB "PROFKA ",0 |
||
261 | ddp | 95 | ; |
96 | MSG_FP_DIR: |
||
97 | .DB " <DIR>",$B3,0 |
||
98 | ; |
||
99 | ; |
||
100 | ; |
||
101 | ;-------------------------------------- |
||
102 | ; |
||
103 | .EQU FL_CONTENT =MEGABUFFER |
||
277 | ddp | 104 | .EQU FL_BUFFER =MEGABUFFER+512 |
261 | ddp | 105 | .DSEG |
106 | FL_TMP0: .BYTE 2 |
||
107 | FL_TMP2: .BYTE 1 |
||
108 | .CSEG |
||
109 | ; |
||
110 | ;====================================== |
||
111 | ;⥭ ID Flash-ROM 稯 |
||
112 | ;out: ZL,ZH |
||
113 | F_ID: RCALL F_RST |
||
114 | LDI DATA,$90 |
||
115 | RCALL F_CMD |
||
116 | LDI TEMP,FLASH_CTRL |
||
117 | LDI DATA,0B00000011 |
||
118 | RCALL FPGA_REG |
||
119 | LDI WL,$00 |
||
120 | LDI WH,$00 |
||
121 | LDI TMP2,$00 |
||
122 | RCALL F_IN |
||
123 | MOV ZL,DATA |
||
124 | LDI WL,$01 |
||
125 | RCALL F_IN |
||
126 | MOV ZH,DATA |
||
127 | RJMP F_RST |
||
128 | ; |
||
129 | ;-------------------------------------- |
||
130 | ; 512 Flash-ROM BUFSECT |
||
131 | ;in: WL,WH == address (LO,MID) |
||
132 | ;out: W+512 |
||
133 | F_WRITE512: |
||
134 | LDIZ BUFSECT |
||
135 | LDIX 512 |
||
136 | |||
137 | F_W5122:LD DATA,Z |
||
138 | CPI DATA,$FF |
||
139 | BREQ F_W5123 |
||
140 | LDI DATA,$A0 |
||
141 | RCALL F_CMD |
||
142 | LDI TEMP,FLASH_CTRL |
||
143 | LDI DATA,0B00000001 |
||
144 | RCALL FPGA_REG |
||
145 | LDI TEMP,FLASH_LOADDR |
||
146 | MOV DATA,WL |
||
147 | RCALL FPGA_REG |
||
148 | LDI TEMP,FLASH_MIDADDR |
||
149 | MOV DATA,WH |
||
150 | RCALL FPGA_REG |
||
151 | LDI TEMP,FLASH_DATA |
||
152 | LD DATA,Z |
||
153 | RCALL FPGA_REG |
||
154 | LDI TEMP,FLASH_CTRL |
||
155 | LDI DATA,0B00000101 |
||
156 | RCALL FPGA_REG |
||
157 | LDI DATA,0B00000001 |
||
158 | RCALL FPGA_SAME_REG |
||
159 | LDI DATA,0B00000011 |
||
160 | RCALL FPGA_SAME_REG |
||
161 | LDI TEMP,FLASH_DATA |
||
162 | RCALL FPGA_REG |
||
163 | F_W5121:RCALL FPGA_SAME_REG |
||
164 | LD TEMP,Z |
||
165 | EOR DATA,TEMP |
||
166 | SBRC DATA,7 |
||
167 | RJMP F_W5121 |
||
168 | |||
169 | F_W5123:ADIW ZL,1 |
||
170 | ADIW WL,1 |
||
171 | SBIW XL,1 |
||
172 | BRNE F_W5122 |
||
173 | |||
174 | RET |
||
175 | ; |
||
176 | ;-------------------------------------- |
||
177 | ;࠭ ᥣ 稯 Flash-ROM |
||
178 | F_CHIPERASE: |
||
179 | LDI DATA,$80 |
||
180 | RCALL F_CMD |
||
181 | LDI DATA,$10 |
||
182 | RCALL F_CMD |
||
183 | F_ERAS1:LDI TEMP,FLASH_CTRL |
||
184 | LDI DATA,0B00000011 |
||
185 | RCALL FPGA_REG |
||
186 | LDI TEMP,FLASH_DATA |
||
187 | RCALL FPGA_REG |
||
188 | F_ERAS9:RCALL FPGA_SAME_REG |
||
189 | SBRS DATA,7 |
||
190 | RJMP F_ERAS9 |
||
191 | ; |
||
192 | ; - - - - - - - - - - - - - - - - - - - |
||
193 | ; Flash-ROM 稯 |
||
194 | F_RST: LDI DATA,$F0 |
||
195 | RCALL F_CMD |
||
196 | DELAY_US 5 |
||
197 | LDI TEMP,FLASH_CTRL |
||
198 | LDI DATA,0B00000011 |
||
199 | RCALL FPGA_REG |
||
200 | RET |
||
201 | ; |
||
202 | ;-------------------------------------- |
||
203 | ; Flash-ROM 稯 |
||
204 | ;in: DATA == instructions |
||
205 | F_CMD: PUSH DATA |
||
206 | LDI TEMP,FLASH_CTRL |
||
207 | LDI DATA,0B00000001 |
||
208 | RCALL FPGA_REG |
||
209 | LDI TEMP,FLASH_LOADDR |
||
210 | LDI DATA,$55 |
||
211 | RCALL FPGA_REG |
||
212 | LDI TEMP,FLASH_MIDADDR |
||
213 | LDI DATA,$55 |
||
214 | RCALL FPGA_REG |
||
215 | LDI TEMP,FLASH_DATA |
||
216 | LDI DATA,$AA |
||
217 | RCALL FPGA_REG |
||
218 | LDI TEMP,FLASH_CTRL |
||
219 | LDI DATA,0B00000101 |
||
220 | RCALL FPGA_REG |
||
221 | LDI DATA,0B00000001 |
||
222 | RCALL FPGA_SAME_REG |
||
223 | LDI TEMP,FLASH_LOADDR |
||
224 | LDI DATA,$AA |
||
225 | RCALL FPGA_REG |
||
226 | LDI TEMP,FLASH_MIDADDR |
||
227 | LDI DATA,$2A |
||
228 | RCALL FPGA_REG |
||
229 | LDI TEMP,FLASH_DATA |
||
230 | LDI DATA,$55 |
||
231 | RCALL FPGA_REG |
||
232 | LDI TEMP,FLASH_CTRL |
||
233 | LDI DATA,0B00000101 |
||
234 | RCALL FPGA_REG |
||
235 | LDI DATA,0B00000001 |
||
236 | RCALL FPGA_SAME_REG |
||
237 | LDI TEMP,FLASH_LOADDR |
||
238 | LDI DATA,$55 |
||
239 | RCALL FPGA_REG |
||
240 | LDI TEMP,FLASH_MIDADDR |
||
241 | LDI DATA,$55 |
||
242 | RCALL FPGA_REG |
||
243 | POP DATA |
||
244 | F_WRD: LDI TEMP,FLASH_DATA |
||
245 | RCALL FPGA_REG |
||
246 | LDI TEMP,FLASH_CTRL |
||
247 | LDI DATA,0B00000101 |
||
248 | RCALL FPGA_REG |
||
249 | LDI DATA,0B00000001 |
||
250 | RJMP FPGA_SAME_REG |
||
251 | ; |
||
252 | ;-------------------------------------- |
||
253 | ;⥭ Flash-ROM |
||
254 | ;in: WL,WH,TMP2 == address |
||
255 | ;out: DATA == data |
||
256 | F_IN: LDI TEMP,FLASH_HIADDR |
||
257 | MOV DATA,TMP2 |
||
258 | RCALL FPGA_REG |
||
259 | F_IN2: LDI TEMP,FLASH_MIDADDR |
||
260 | MOV DATA,WH |
||
261 | RCALL FPGA_REG |
||
262 | LDI TEMP,FLASH_LOADDR |
||
263 | MOV DATA,WL |
||
264 | RCALL FPGA_REG |
||
265 | LDI TEMP,FLASH_DATA |
||
266 | LDI DATA,$FF |
||
267 | RJMP FPGA_REG |
||
268 | ; |
||
269 | ;-------------------------------------- |
||
270 | ;in: WH,TMP2 - (mid,hi) Flash-ROM |
||
271 | ; Z - 㤠 ( AVR-) |
||
272 | ; X - 쪮 |
||
273 | F_READFLASH:; + crc32, + ... |
||
290 | ddp | 274 | LDI TEMP,FLASH_CTRL |
275 | LDI DATA,0B00001011 |
||
276 | RCALL FPGA_REG |
||
261 | ddp | 277 | CLR WL |
290 | ddp | 278 | RCALL F_IN |
279 | RJMP F_RDFL2 |
||
280 | F_RDFL1:RCALL FPGA_SAME_REG |
||
281 | F_RDFL2:ST Z+,DATA |
||
261 | ddp | 282 | AND COUNT,DATA |
283 | CALL CRC32_UPDATE |
||
284 | ADIW WL,1 |
||
285 | ADC TMP2,NULL |
||
286 | SBIW XL,1 |
||
287 | BRNE F_RDFL1 |
||
288 | RET |
||
289 | ; |
||
290 | ;====================================== |
||
291 | ; |
||
292 | .EQU CRC32_0 =0 |
||
293 | .EQU CRC32_1 =1 |
||
294 | .EQU CRC32_2 =2 |
||
295 | .EQU CRC32_3 =3 |
||
296 | .EQU FLSH_ADR1 =4 |
||
297 | .EQU FLSH_ADR2 =5 |
||
298 | .EQU FLSH_COUNT =6 |
||
299 | .EQU FLFP_BUFADR0 =7 |
||
300 | .EQU FLFP_BUFADR1 =8 |
||
301 | .EQU FLFP_TOTAL =9 |
||
302 | .EQU FLFP_TOP =10 |
||
303 | .EQU FLFP_SELECT =11 |
||
304 | .EQU FLFP_CURSOR =12 |
||
305 | .EQU FLSH_TEMP0 =13 |
||
306 | .EQU FLSH_TEMP1 =14 |
||
307 | .EQU FLSH_TEMP2 =15 |
||
308 | .EQU FLSH_TEMP3 =16 |
||
309 | .EQU FLSH_START =17 |
||
310 | .EQU FLSH_SIZE =18 |
||
311 | .EQU FLSH_ERASE =19 |
||
312 | .EQU FLMNU_FLAGS =20 |
||
313 | .EQU FLMNU_CURSOR =21 |
||
314 | .EQU FLMEMSIZE =22 |
||
315 | ; |
||
316 | .EQU FLFP_HEIGHT =11 |
||
317 | .EQU FLFP_WIDTH =34 |
||
318 | .EQU FLFP_XPOS =18 |
||
319 | .EQU FLFP_YPOS =2 |
||
320 | ; |
||
321 | FLASHER: |
||
322 | GETMEM FLMEMSIZE |
||
323 | FL_REVERT: |
||
324 | ANDI FLAGS1,0B11111100 |
||
315 | ddp | 325 | ; SBR FLAGS1,0B00001000 |
261 | ddp | 326 | STH FLSH_ERASE,NULL |
327 | STH FLMNU_FLAGS,NULL |
||
328 | LDI DATA,0B10000010 |
||
329 | STH FLMNU_CURSOR,DATA |
||
330 | |||
331 | LDIX FL_CONTENT |
||
332 | LDI COUNT,32 |
||
333 | FL_CLRCNT2: |
||
334 | LDI DATA,$80 |
||
335 | ST X+,DATA |
||
336 | LDI TEMP,15 |
||
337 | FL_CLRCNT1: |
||
338 | ST X+,NULL |
||
339 | DEC TEMP |
||
340 | BRNE FL_CLRCNT1 |
||
341 | DEC COUNT |
||
342 | BRNE FL_CLRCNT2 |
||
343 | |||
344 | LDIZ WIND_FL_MENU*2 |
||
345 | CALL WINDOW |
||
346 | LDIZ WIND_FL_STATUS*2 |
||
347 | CALL WINDOW |
||
348 | LDIZ WIND_FL_FILEPANEL*2 |
||
349 | CALL WINDOW |
||
350 | LDIZ WIND_FL_CONTENT*2 |
||
351 | CALL WINDOW |
||
352 | |||
353 | LDIZ MLMSG_FL_MENU*2 |
||
354 | CALL SCR_PRINTMLSTR |
||
355 | RCALL FLMENU_PUTCURSOR |
||
356 | LDI DATA,0B00001111 |
||
357 | STH FLMNU_FLAGS,DATA |
||
358 | ; - - - - - - - - - - - - - - - - - - - |
||
359 | LDIZ MSG_FL_CHIP*2 |
||
360 | CALL SCR_PRINTSTRZ |
||
361 | |||
362 | RCALL F_ID |
||
363 | CPI ZL,$01 |
||
364 | BRNE FL_DET_CHIP1 |
||
365 | CPI ZH,$A4 |
||
366 | BRNE FL_DET_CHIP1 |
||
367 | LDIZ MSG_FL_AM29F040*2 |
||
368 | RJMP FL_DET_CHIP2 |
||
369 | FL_DET_CHIP1: |
||
370 | CPI ZL,$20 |
||
371 | BRNE FL_DET_CHIP8 |
||
372 | CPI ZH,$E2 |
||
373 | BRNE FL_DET_CHIP8 |
||
374 | LDIZ MSG_FL_M29F040*2 |
||
375 | FL_DET_CHIP2: |
||
376 | CALL SCR_PRINTSTRZ |
||
377 | RJMP FL_DET_CHIP9 |
||
378 | |||
379 | FL_DET_CHIP8: |
||
380 | PUSHZ |
||
381 | LDIZ MSG_FL_ID*2 |
||
382 | CALL SCR_PRINTSTRZ |
||
383 | POPZ |
||
384 | MOV DATA,ZL |
||
385 | CALL HEXBYTE |
||
386 | LDI DATA,$20 |
||
387 | CALL PUTCHAR |
||
388 | MOV DATA,ZH |
||
389 | CALL HEXBYTE |
||
390 | FL_DET_CHIP9: |
||
391 | ; - - - - - - - - - - - - - - - - - - - |
||
392 | LDIZ MLMSG_FL_READROM*2 |
||
393 | CALL SCR_PRINTMLSTR |
||
394 | STH FLSH_START,FF |
||
395 | STH FLSH_SIZE,NULL |
||
396 | RCALL FL_SHOWCONTENT |
||
397 | |||
398 | RCALL CRC32_INIT |
||
399 | CLR COUNT |
||
400 | CLR WH |
||
401 | CLR TMP2 |
||
636 | ddp | 402 | FL_DET_ROM_00: |
261 | ddp | 403 | STH FLSH_COUNT,COUNT |
404 | STH FLSH_ADR1,WH |
||
405 | STH FLSH_ADR2,TMP2 |
||
406 | LDIZ FL_UNKNOWN*2 |
||
407 | STSZ FL_TMP0 |
||
636 | ddp | 408 | SER COUNT |
261 | ddp | 409 | |
410 | LDIZ FL_BUFFER |
||
411 | LDIX $0400 |
||
412 | RCALL F_READFLASH |
||
413 | STS FL_TMP2,COUNT |
||
414 | |||
415 | GETMEM 4 |
||
636 | ddp | 416 | LDIZ FL_BUFFER+$00FF |
417 | LD DATA,Z+ |
||
418 | CPI DATA,$02 |
||
419 | BRNE FL_DET_ROM_10 |
||
420 | LD DATA,Z+ |
||
421 | CPI DATA,$01 |
||
422 | BRNE FL_DET_ROM_11 |
||
423 | ADIW ZL,1 |
||
424 | LD DATA,Z+ |
||
425 | CPI DATA,$C9 |
||
426 | BRNE FL_DET_ROM_11 |
||
427 | LDIZ FL_PROFKA*2 |
||
428 | RJMP FL_DET_ROM_12 |
||
429 | |||
430 | FL_DET_ROM_10: |
||
431 | CPI DATA,$14 |
||
432 | BRNE FL_DET_ROM_11 |
||
433 | LD DATA,Z+ |
||
434 | CPI DATA,$01 |
||
435 | BRNE FL_DET_ROM_11 |
||
436 | LD DATA,Z+ |
||
437 | CPI DATA,$06 |
||
438 | BRNE FL_DET_ROM_11 |
||
439 | LDIZ FL_PROFKA*2 |
||
440 | RJMP FL_DET_ROM_12 |
||
441 | |||
442 | FL_DET_ROM_11: |
||
261 | ddp | 443 | LDIZ FL_BUFFER+$0096 |
444 | LDIX $016F |
||
445 | RCALL RAM_CRC32 |
||
446 | LDIZ FL_ZXBAS48*2 |
||
447 | RCALL FL_CRC_CMP |
||
636 | ddp | 448 | BREQ FL_DET_ROM_12 |
261 | ddp | 449 | |
498 | ddp | 450 | LDIZ FL_BUFFER+$0080 |
451 | LDIX $0080 |
||
261 | ddp | 452 | RCALL RAM_CRC32 |
453 | LDIZ FL_ZXBAS128*2 |
||
454 | RCALL FL_CRC_CMP |
||
636 | ddp | 455 | BREQ FL_DET_ROM_12 |
261 | ddp | 456 | |
457 | LDIZ FL_BUFFER+$0363 |
||
458 | LDIX $0008 |
||
459 | RCALL RAM_CRC32 |
||
460 | LDIZ FL_VTRDOS*2 |
||
461 | RCALL FL_CRC_CMP |
||
636 | ddp | 462 | BREQ FL_DET_ROM_12 |
261 | ddp | 463 | |
464 | LDIZ FL_BUFFER+$0000 |
||
465 | LDIX $0007 |
||
466 | RCALL RAM_CRC32 |
||
467 | LDIZ FL_XBIOSMENU*2 |
||
468 | RCALL FL_CRC_CMP |
||
636 | ddp | 469 | BREQ FL_DET_ROM_12 |
261 | ddp | 470 | |
471 | LDIZ FL_BUFFER+$0000 |
||
636 | ddp | 472 | LDIX $0010 |
473 | RCALL RAM_CRC32 |
||
474 | LDIZ FL_TSBIOS*2 |
||
475 | RCALL FL_CRC_CMP |
||
476 | BREQ FL_DET_ROM_12 |
||
477 | |||
478 | LDIZ FL_BUFFER+$0000 |
||
261 | ddp | 479 | LDIX $0038 |
480 | RCALL RAM_CRC32 |
||
481 | LDIZ FL_ATM2CPM*2 |
||
482 | RCALL FL_CRC_CMP |
||
636 | ddp | 483 | BRNE FL_DET_ROM_13 |
484 | FL_DET_ROM_12: |
||
261 | ddp | 485 | STSZ FL_TMP0 |
636 | ddp | 486 | FL_DET_ROM_13: |
261 | ddp | 487 | FREEMEM 4 |
488 | |||
489 | CLR WL |
||
490 | LDH WH,FLSH_ADR1 |
||
491 | ADDI WH,$04 |
||
492 | LDH TMP2,FLSH_ADR2 |
||
493 | LDIX $3800 |
||
290 | ddp | 494 | LDI TEMP,FLASH_CTRL |
495 | LDI DATA,0B00001011 |
||
496 | RCALL FPGA_REG |
||
261 | ddp | 497 | LDS COUNT,FL_TMP2 |
290 | ddp | 498 | RCALL F_IN |
636 | ddp | 499 | RJMP FL_DET_ROM_21 |
500 | FL_DET_ROM_20: |
||
290 | ddp | 501 | RCALL FPGA_SAME_REG |
636 | ddp | 502 | FL_DET_ROM_21: |
261 | ddp | 503 | AND COUNT,DATA |
504 | RCALL CRC32_UPDATE |
||
505 | ADIW WL,1 |
||
506 | SBIW XL,1 |
||
636 | ddp | 507 | BRNE FL_DET_ROM_20 |
261 | ddp | 508 | STS FL_TMP2,COUNT |
509 | |||
510 | LDH WH,FLSH_ADR1 |
||
511 | ADDI WH,$3C |
||
512 | LDH TMP2,FLSH_ADR2 |
||
513 | LDIZ FL_BUFFER |
||
514 | LDIX $0400 |
||
515 | RCALL F_READFLASH |
||
516 | LDIZ FL_EMPTY*2 |
||
517 | INC COUNT |
||
636 | ddp | 518 | BRNE FL_DET_ROM_30 |
261 | ddp | 519 | STSZ FL_TMP0 |
636 | ddp | 520 | FL_DET_ROM_30: |
261 | ddp | 521 | |
522 | GETMEM 4 |
||
523 | |||
411 | ddp | 524 | LDIZ FL_BUFFER+$019B |
525 | LDD R0,Z+0 |
||
526 | LDD R1,Z+1 |
||
527 | LDD R2,Z+2 |
||
528 | LDD R3,Z+3 |
||
529 | LDIZ FL_QC3*2 |
||
530 | RCALL FL_CRC_CMP |
||
636 | ddp | 531 | BREQ FL_DET_ROM_32 |
411 | ddp | 532 | |
261 | ddp | 533 | LDIZ FL_BUFFER+$012F |
534 | LDIX $0209 |
||
535 | RCALL RAM_CRC32 |
||
536 | LDIZ FL_ALCOGLUKPEN*2 |
||
537 | RCALL FL_CRC_CMP |
||
636 | ddp | 538 | BREQ FL_DET_ROM_32 |
539 | LDIZ FL_EMPT2*2 |
||
540 | RCALL FL_CRC_CMP |
||
541 | BRNE FL_DET_ROM_31 |
||
542 | LDS DATA,FL_TMP2 |
||
543 | INC DATA |
||
544 | BREQ FL_DET_ROM_32 |
||
261 | ddp | 545 | |
636 | ddp | 546 | FL_DET_ROM_31: |
498 | ddp | 547 | LDIZ FL_BUFFER+$03B0 |
548 | LDIX $0040 |
||
261 | ddp | 549 | RCALL RAM_CRC32 |
550 | LDIZ FL_TRDOS*2 |
||
551 | RCALL FL_CRC_CMP |
||
636 | ddp | 552 | BRNE FL_DET_ROM_33 |
553 | FL_DET_ROM_32: |
||
261 | ddp | 554 | STSZ FL_TMP0 |
636 | ddp | 555 | FL_DET_ROM_33: |
556 | |||
261 | ddp | 557 | FREEMEM 4 |
558 | |||
636 | ddp | 559 | LDIZ FL_BUFFER+$03F8 |
560 | LDI COUNT,6 |
||
561 | FL_DET_ROM_34: |
||
562 | LD DATA,Z+ |
||
563 | CPI DATA,$20 |
||
564 | BRCS FL_DET_ROM_37 |
||
565 | CPI DATA,$7F |
||
566 | BRCC FL_DET_ROM_37 |
||
567 | DEC COUNT |
||
568 | BRNE FL_DET_ROM_34 |
||
569 | |||
570 | LDIZ FL_BUFFER+$03F8 |
||
571 | LDIX FL_CONTENT+5 |
||
572 | LDH DATA,FLSH_COUNT |
||
573 | LDI TEMP,16 |
||
574 | MUL DATA,TEMP |
||
575 | ADD XL,R0 |
||
576 | ADC XH,R1 |
||
577 | LDI COUNT,6 |
||
578 | FL_DET_ROM_35: |
||
579 | LD DATA,Z+ |
||
580 | ST X+,DATA |
||
581 | DEC COUNT |
||
582 | BRNE FL_DET_ROM_35 |
||
583 | LDI COUNT,5 |
||
584 | FL_DET_ROM_36: |
||
585 | ST X+,NULL |
||
586 | DEC COUNT |
||
587 | BRNE FL_DET_ROM_36 |
||
588 | RJMP FL_DET_ROM_40 |
||
589 | |||
590 | FL_DET_ROM_37: |
||
261 | ddp | 591 | LDSZ FL_TMP0 |
592 | LDIX FL_CONTENT+5 |
||
593 | LDH DATA,FLSH_COUNT |
||
594 | LDI TEMP,16 |
||
595 | MUL DATA,TEMP |
||
596 | ADD XL,R0 |
||
597 | ADC XH,R1 |
||
598 | LDI COUNT,11 |
||
636 | ddp | 599 | FL_DET_ROM_38: |
261 | ddp | 600 | LPM DATA,Z+ |
601 | ST X+,DATA |
||
602 | DEC COUNT |
||
636 | ddp | 603 | BRNE FL_DET_ROM_38 |
604 | |||
605 | FL_DET_ROM_40: |
||
261 | ddp | 606 | RCALL FL_SHOWCONTENT |
607 | |||
608 | CALL INKEY |
||
636 | ddp | 609 | BREQ FL_DET_ROM_41 |
261 | ddp | 610 | SBRC TEMP,PS2K_BIT_EXTKEY |
636 | ddp | 611 | RJMP FL_DET_ROM_41 |
261 | ddp | 612 | CPI DATA,KEY_ESC |
636 | ddp | 613 | BRNE FL_DET_ROM_41 |
261 | ddp | 614 | RJMP FLSH_EXIT |
636 | ddp | 615 | FL_DET_ROM_41: |
261 | ddp | 616 | LDH WH,FLSH_ADR1 |
617 | LDH TMP2,FLSH_ADR2 |
||
618 | LDI TEMP,$40 |
||
619 | ADD WH,TEMP |
||
620 | ADC TMP2,NULL |
||
621 | LDH COUNT,FLSH_COUNT |
||
622 | INC COUNT |
||
623 | SBRS COUNT,5 ; COUNT==32 ? |
||
636 | ddp | 624 | RJMP FL_DET_ROM_00 |
261 | ddp | 625 | |
626 | RCALL CRC32_RELEASE |
||
627 | LDIZ MSG_FL_CRC*2 |
||
628 | CALL SCR_PRINTSTRZ |
||
629 | LDH DATA,CRC32_3 |
||
630 | CALL HEXBYTE |
||
631 | LDH DATA,CRC32_2 |
||
632 | CALL HEXBYTE |
||
633 | LDH DATA,CRC32_1 |
||
634 | CALL HEXBYTE |
||
635 | LDH DATA,CRC32_0 |
||
636 | CALL HEXBYTE |
||
637 | ; - - - - - - - - - - - - - - - - - - - |
||
638 | LDIZ MLMSG_FL_SDINIT*2 |
||
639 | CALL SCR_PRINTMLSTR |
||
640 | |||
641 | IN TEMP,SPL |
||
277 | ddp | 642 | STS GLB_STACK+0,TEMP |
261 | ddp | 643 | IN TEMP,SPH |
277 | ddp | 644 | STS GLB_STACK+1,TEMP |
645 | STS GLB_Y+0,YL |
||
646 | STS GLB_Y+1,YH |
||
261 | ddp | 647 | LDIZ FL_ERRHANDLER |
648 | RCALL SD_FAT_INIT |
||
649 | |||
650 | PUSHX |
||
651 | PUSHW |
||
652 | LDIZ MSG_FL_SDCARD*2 |
||
653 | CALL SCR_PRINTSTRZ |
||
654 | LDS TMP2,FAT_CAL_FAT |
||
655 | LDI DATA,$31 ;"1" |
||
656 | LDI TEMP,$32 ;"2" |
||
657 | TST TMP2 |
||
658 | BREQ FP_SDI1 |
||
659 | LDI TEMP,$36 ;"6" |
||
660 | DEC TMP2 |
||
661 | BREQ FP_SDI1 |
||
662 | LDI DATA,$33 ;"3" |
||
663 | LDI TEMP,$32 ;"2" |
||
664 | FP_SDI1:PUSH TEMP |
||
665 | CALL SCR_PUTCHAR |
||
666 | POP DATA |
||
667 | CALL SCR_PUTCHAR |
||
668 | POPW |
||
669 | POPX |
||
670 | |||
671 | RCALL FP_RD_DIR |
||
672 | STH FLFP_CURSOR,FF |
||
673 | RCALL FP_OUT |
||
674 | STH FLFP_CURSOR,NULL |
||
675 | ; - - - - - - - - - - - - - - - - - - - |
||
676 | FLMENU1:LDH DATA,FLMNU_CURSOR |
||
677 | ANDI DATA,0B00011111 |
||
678 | FLMENU2:STH FLMNU_CURSOR,DATA |
||
679 | RCALL FLMENU_PUTCURSOR |
||
680 | FLMENU0:CALL WAITKEY |
||
681 | CPI DATA,KEY_UP |
||
682 | BREQ FLMENU_UP |
||
683 | CPI DATA,KEY_DOWN |
||
684 | BREQ FLMENU_DOWN |
||
685 | CPI DATA,KEY_ENTER |
||
686 | BREQ FLMENU_ENTER |
||
687 | CPI DATA,KEY_ESC |
||
688 | BRNE FLMENU0 |
||
689 | LDI DATA,0B00000001 |
||
690 | RJMP FLMENU2 |
||
691 | ; |
||
692 | FLMENU_UP: |
||
693 | LDH DATA,FLMNU_CURSOR |
||
694 | FLMENU_U1: |
||
695 | LSR DATA |
||
696 | BRCS FLMENU0 |
||
697 | LDH TEMP,FLMNU_FLAGS |
||
698 | AND TEMP,DATA |
||
699 | BRNE FLMENU_U2 |
||
700 | RJMP FLMENU_U1 |
||
701 | FLMENU_U2: |
||
702 | STH FLMNU_CURSOR,DATA |
||
703 | RJMP FLMENU1 |
||
704 | ; |
||
705 | FLMENU_DOWN: |
||
706 | LDH DATA,FLMNU_CURSOR |
||
707 | FLMENU_D1: |
||
708 | LSL DATA |
||
709 | BRCS FLMENU0 |
||
710 | LDH TEMP,FLMNU_FLAGS |
||
711 | AND TEMP,DATA |
||
712 | BRNE FLMENU_U2 |
||
713 | RJMP FLMENU_D1 |
||
714 | ; |
||
715 | FLMENU_ENTER: |
||
716 | LDH DATA,FLMNU_CURSOR |
||
717 | LDH TEMP,FLMNU_FLAGS |
||
718 | AND DATA,TEMP |
||
719 | BREQ FLMENU0 |
||
720 | LSR DATA |
||
721 | BRCC FLMENU_E1 |
||
722 | FLSH_EXIT: |
||
723 | FREEMEM FLMEMSIZE |
||
724 | RET |
||
725 | FLMENU_E1: |
||
726 | LSR DATA |
||
727 | BRCC FLMENU_E2 |
||
728 | RJMP FL_REVERT |
||
729 | FLMENU_E2: |
||
730 | LSR DATA |
||
731 | BRCC FLMENU_E3 |
||
732 | RJMP FL_ERASEJOB |
||
733 | FLMENU_E3: |
||
734 | LSR DATA |
||
735 | BRCC FLMENU_E4 |
||
736 | LDH DATA,FLMNU_CURSOR |
||
737 | ORI DATA,0B10000000 |
||
738 | STH FLMNU_CURSOR,DATA |
||
739 | RCALL FLMENU_PUTCURSOR |
||
740 | RJMP FP_FS1 |
||
741 | FLMENU_E4: |
||
742 | LSR DATA |
||
743 | BRCS FLMENU_E5 |
||
744 | RJMP FLMENU0 |
||
745 | ; |
||
746 | FLMENU_E5: ; execute job(s) |
||
315 | ddp | 747 | ; SBR FLAGS1,0B00001000 |
261 | ddp | 748 | LDH DATA,FLMNU_CURSOR |
749 | ORI DATA,0B10000000 |
||
750 | STH FLMNU_CURSOR,DATA |
||
751 | RCALL FLMENU_PUTCURSOR |
||
752 | |||
753 | LDIZ MLMSG_FL_SURE*2 |
||
754 | CALL SCR_PRINTMLSTR |
||
755 | CALL WAITKEY |
||
756 | SBRC TEMP,PS2K_BIT_EXTKEY |
||
757 | RJMP FL_EX01 |
||
758 | CPI DATA,KEY_Y |
||
759 | BREQ FL_EX09 |
||
760 | FL_EX01:LDI XL,2 |
||
761 | LDI XH,12 |
||
762 | CALL SCR_SET_CURSOR |
||
763 | LDI DATA,$20 |
||
764 | LDI TEMP,$9F |
||
765 | LDI COUNT,13 |
||
766 | CALL SCR_FILL_CHAR_ATTR |
||
767 | RJMP FLMENU1 |
||
768 | FL_EX09: |
||
769 | ; |
||
770 | LDI TEMP,$0E |
||
771 | CALL SCR_SET_ATTR |
||
772 | LDH DATA,FLSH_ERASE |
||
773 | LDI COUNT,0 |
||
774 | FL_EX12:LSR DATA |
||
775 | BRCC FL_EX11 |
||
776 | |||
777 | PUSH DATA |
||
778 | PUSH COUNT |
||
779 | LSL COUNT |
||
780 | LSL COUNT |
||
781 | PUSH COUNT |
||
782 | RCALL FL_SHW_SETCURSOR |
||
783 | LDI DATA,$45;"E" |
||
784 | LDI COUNT,12 |
||
785 | CALL SCR_FILL_CHAR |
||
786 | POP COUNT |
||
787 | INC COUNT |
||
788 | PUSH COUNT |
||
789 | RCALL FL_SHW_SETCURSOR |
||
790 | LDI DATA,$45;"E" |
||
791 | LDI COUNT,12 |
||
792 | CALL SCR_FILL_CHAR |
||
793 | POP COUNT |
||
794 | INC COUNT |
||
795 | PUSH COUNT |
||
796 | RCALL FL_SHW_SETCURSOR |
||
797 | LDI DATA,$45;"E" |
||
798 | LDI COUNT,12 |
||
799 | CALL SCR_FILL_CHAR |
||
800 | POP COUNT |
||
801 | INC COUNT |
||
802 | RCALL FL_SHW_SETCURSOR |
||
803 | LDI DATA,$45;"E" |
||
804 | LDI COUNT,12 |
||
805 | CALL SCR_FILL_CHAR |
||
806 | POP COUNT |
||
807 | POP DATA |
||
808 | |||
809 | FL_EX11:INC COUNT |
||
810 | CPI COUNT,8 |
||
811 | BRNE FL_EX12 |
||
812 | |||
813 | LDIZ MLMSG_FL_ERASE*2 |
||
814 | CALL SCR_PRINTMLSTR |
||
815 | LDH DATA,FLSH_ERASE |
||
816 | CPI DATA,$FF |
||
817 | BRNE FL_EX15 |
||
818 | RCALL F_CHIPERASE |
||
819 | RJMP FL_EX20 |
||
820 | FL_EX15: |
||
821 | LDI TMP2,$FF |
||
822 | FL_EX16:INC TMP2 |
||
823 | LSR DATA |
||
824 | BRCC FL_EX16 |
||
825 | PUSH DATA |
||
826 | PUSH TMP2 |
||
827 | LDI DATA,$80 |
||
828 | RCALL F_CMD |
||
829 | LDI TEMP,FLASH_HIADDR |
||
830 | POP DATA |
||
831 | PUSH DATA |
||
832 | CALL FPGA_REG |
||
833 | LDI DATA,$30 |
||
834 | RCALL F_CMD |
||
835 | POP TMP2 |
||
836 | POP DATA |
||
837 | FL_EX18:INC TMP2 |
||
838 | CPI TMP2,8 |
||
839 | BRCC FL_EX17 |
||
840 | LSR DATA |
||
841 | BRCC FL_EX18 |
||
842 | PUSH DATA |
||
843 | PUSH TMP2 |
||
844 | LDI TEMP,FLASH_HIADDR |
||
845 | MOV DATA,TMP2 |
||
846 | CALL FPGA_REG |
||
847 | LDI DATA,$30 |
||
848 | RCALL F_WRD |
||
849 | POP TMP2 |
||
850 | POP DATA |
||
851 | RJMP FL_EX18 |
||
852 | FL_EX17: |
||
853 | LDI TEMP,FLASH_CTRL |
||
854 | LDI DATA,0B00000011 |
||
855 | CALL FPGA_REG |
||
856 | LDI TEMP,FLASH_DATA |
||
857 | CALL FPGA_REG |
||
858 | FL_EX19:CALL FPGA_SAME_REG |
||
859 | SBRS DATA,3 |
||
860 | RJMP FL_EX19 |
||
861 | RCALL F_ERAS1 |
||
862 | FL_EX20: |
||
863 | ; |
||
864 | LDIZ MLMSG_FL_WRITE*2 |
||
865 | CALL SCR_PRINTMLSTR |
||
866 | LDI TEMP,$0A |
||
867 | CALL SCR_SET_ATTR |
||
868 | |||
869 | LDI COUNT,0 |
||
870 | FL_EX30:STH FLSH_COUNT,COUNT |
||
871 | LDIZ FL_CONTENT |
||
872 | LDI TEMP,16 |
||
873 | MUL TEMP,COUNT |
||
874 | ADD ZL,R0 |
||
875 | ADC ZH,R1 |
||
876 | LD WL,Z |
||
877 | ANDI WL,$3F |
||
878 | BREQ FL_EX390 |
||
879 | CPI WL,33 |
||
880 | BRCS FL_EX31 |
||
881 | FL_EX390:RJMP FL_EX39 |
||
882 | FL_EX31:STH FLSH_SIZE,WL |
||
883 | CLR WH |
||
884 | CLR XL |
||
885 | CLR XH |
||
886 | LD TEMP,Z |
||
887 | SBRC TEMP,6 |
||
888 | ADIW WL,32 |
||
889 | SBIW WL,1 |
||
890 | LDS DATA,FAT_BYTSSEC |
||
891 | DEC DATA |
||
892 | AND DATA,WL |
||
893 | INC DATA |
||
894 | STS FAT_MPHWOST,DATA |
||
895 | LDS DATA,FAT_BYTSSEC |
||
896 | RCALL BCDE_A |
||
897 | STSW FAT_KOL_CLS+0 |
||
898 | STSX FAT_KOL_CLS+2 |
||
899 | STS FAT_NUMSECK,NULL |
||
900 | LDD WL,Z+1 |
||
901 | LDD WH,Z+2 |
||
902 | LDD XL,Z+3 |
||
903 | LDD XH,Z+4 |
||
904 | STSW FAT_TFILCLS+0 |
||
905 | STSX FAT_TFILCLS+2 |
||
906 | |||
907 | LD TEMP,Z |
||
908 | SBRS TEMP,6 |
||
909 | RJMP FL_EX32 |
||
910 | LDI COUNT,32 |
||
911 | FL_EX33:PUSH COUNT |
||
912 | RCALL NEXTSEC |
||
913 | POP COUNT |
||
914 | DEC COUNT |
||
915 | BRNE FL_EX33 |
||
916 | |||
917 | FL_EX32:LDH COUNT,FLSH_COUNT |
||
918 | RCALL FL_SHW_SETCURSOR |
||
919 | CLR WH |
||
920 | LDH TMP2,FLSH_COUNT |
||
921 | LSR TMP2 |
||
922 | ROR WH |
||
923 | LSR TMP2 |
||
924 | ROR WH |
||
925 | LDI TEMP,FLASH_HIADDR |
||
926 | MOV DATA,TMP2 |
||
927 | CALL FPGA_REG |
||
928 | LDIX 1365 ;16384/12 |
||
929 | FL_EX35:STH FLSH_TEMP0,XL |
||
930 | STH FLSH_TEMP1,XH |
||
931 | PUSH WH |
||
932 | RCALL NEXTSEC |
||
933 | POP WH |
||
934 | CLR WL |
||
935 | RCALL F_WRITE512 |
||
936 | LDH XL,FLSH_TEMP0 |
||
937 | LDH XH,FLSH_TEMP1 |
||
938 | SUBI XH,2 ;HIGH(512) |
||
939 | BRCC FL_EX34 |
||
940 | LDI DATA,$57;"W" |
||
941 | CALL SCR_PUTCHAR |
||
942 | LDI TEMP,LOW(1365) |
||
943 | ADD XL,TEMP |
||
944 | LDI TEMP,HIGH(1365) |
||
945 | ADC XH,TEMP |
||
946 | FL_EX34:LDH TEMP,FLSH_SIZE |
||
947 | DEC TEMP |
||
948 | STH FLSH_SIZE,TEMP |
||
949 | BRNE FL_EX35 |
||
950 | |||
951 | FL_EX39:LDH COUNT,FLSH_COUNT |
||
952 | INC COUNT |
||
953 | SBRS COUNT,5 ;COUNT=32 |
||
954 | RJMP FL_EX30 |
||
955 | ; |
||
956 | RCALL F_RST |
||
957 | LDI TEMP,FLASH_CTRL |
||
958 | LDI DATA,0B00000011 |
||
959 | CALL FPGA_REG |
||
960 | |||
961 | LDIZ MLMSG_FL_VERIFY*2 |
||
962 | CALL SCR_PRINTMLSTR |
||
963 | |||
636 | ddp | 964 | STH FLSH_TEMP3,NULL |
261 | ddp | 965 | LDI COUNT,0 |
966 | FL_EX40:STH FLSH_COUNT,COUNT |
||
967 | LDIZ FL_CONTENT |
||
968 | LDI TEMP,16 |
||
969 | MUL TEMP,COUNT |
||
970 | ADD ZL,R0 |
||
971 | ADC ZH,R1 |
||
972 | LD WL,Z |
||
973 | ANDI WL,$3F |
||
974 | BREQ FL_EX490 |
||
975 | CPI WL,33 |
||
976 | BRCS FL_EX41 |
||
977 | FL_EX490:RJMP FL_EX49 |
||
978 | FL_EX41:STH FLSH_SIZE,WL |
||
979 | CLR WH |
||
980 | CLR XL |
||
981 | CLR XH |
||
982 | LD TEMP,Z |
||
983 | SBRC TEMP,6 |
||
984 | ADIW WL,32 |
||
985 | SBIW WL,1 |
||
986 | LDS DATA,FAT_BYTSSEC |
||
987 | DEC DATA |
||
988 | AND DATA,WL |
||
989 | INC DATA |
||
990 | STS FAT_MPHWOST,DATA |
||
991 | LDS DATA,FAT_BYTSSEC |
||
992 | RCALL BCDE_A |
||
993 | STSW FAT_KOL_CLS+0 |
||
994 | STSX FAT_KOL_CLS+2 |
||
995 | STS FAT_NUMSECK,NULL |
||
996 | LDD WL,Z+1 |
||
997 | LDD WH,Z+2 |
||
998 | LDD XL,Z+3 |
||
999 | LDD XH,Z+4 |
||
1000 | STSW FAT_TFILCLS+0 |
||
1001 | STSX FAT_TFILCLS+2 |
||
1002 | |||
1003 | LD TEMP,Z |
||
1004 | SBRS TEMP,6 |
||
1005 | RJMP FL_EX42 |
||
1006 | LDI COUNT,32 |
||
1007 | FL_EX43:PUSH COUNT |
||
1008 | RCALL NEXTSEC |
||
1009 | POP COUNT |
||
1010 | DEC COUNT |
||
1011 | BRNE FL_EX43 |
||
1012 | |||
1013 | FL_EX42:LDH COUNT,FLSH_COUNT |
||
1014 | RCALL FL_SHW_SETCURSOR |
||
1015 | CLR WH |
||
1016 | LDH TMP2,FLSH_COUNT |
||
1017 | LSR TMP2 |
||
1018 | ROR WH |
||
1019 | LSR TMP2 |
||
1020 | ROR WH |
||
1021 | LDI TEMP,FLASH_HIADDR |
||
1022 | MOV DATA,TMP2 |
||
1023 | CALL FPGA_REG |
||
1024 | STH FLSH_TEMP2,NULL |
||
1025 | LDIX 1365 ;16384/12 |
||
1026 | FL_EX45:STH FLSH_TEMP0,XL |
||
1027 | STH FLSH_TEMP1,XH |
||
1028 | PUSH WH |
||
1029 | RCALL NEXTSEC |
||
1030 | POP WH |
||
1031 | CLR WL |
||
1032 | |||
1033 | LDIZ BUFSECT |
||
1034 | LDIX 512 |
||
290 | ddp | 1035 | LDI TEMP,FLASH_CTRL |
1036 | LDI DATA,0B00001011 |
||
1037 | CALL FPGA_REG |
||
1038 | RCALL F_IN2 |
||
1039 | RJMP FL_EX48 |
||
1040 | FL_EX47:CALL FPGA_SAME_REG |
||
1041 | FL_EX48:LD TEMP,Z+ |
||
261 | ddp | 1042 | CP DATA,TEMP |
1043 | BREQ FL_EX46 |
||
1044 | STH FLSH_TEMP2,ONE |
||
1045 | STH FLSH_TEMP3,ONE |
||
1046 | FL_EX46:ADIW WL,1 |
||
1047 | SBIW XL,1 |
||
1048 | BRNE FL_EX47 |
||
1049 | |||
1050 | LDH XL,FLSH_TEMP0 |
||
1051 | LDH XH,FLSH_TEMP1 |
||
1052 | SUBI XH,2 ;HIGH(512) |
||
1053 | BRCC FL_EX44 |
||
1054 | LDH DATA,FLSH_TEMP2 |
||
1055 | LDI TEMP,$0C |
||
1056 | SBRC DATA,0 |
||
1057 | LDI TEMP,$AE |
||
1058 | CALL SCR_SET_ATTR |
||
1059 | LDI DATA,$56;"V" |
||
1060 | CALL SCR_PUTCHAR |
||
1061 | STH FLSH_TEMP2,NULL |
||
1062 | LDI TEMP,LOW(1365) |
||
1063 | ADD XL,TEMP |
||
1064 | LDI TEMP,HIGH(1365) |
||
1065 | ADC XH,TEMP |
||
1066 | FL_EX44:LDH TEMP,FLSH_SIZE |
||
1067 | DEC TEMP |
||
1068 | STH FLSH_SIZE,TEMP |
||
1069 | BRNE FL_EX45 |
||
1070 | |||
1071 | FL_EX49:LDH COUNT,FLSH_COUNT |
||
1072 | INC COUNT |
||
1073 | SBRS COUNT,5 ;COUNT=32 |
||
1074 | RJMP FL_EX40 |
||
1075 | ; |
||
1076 | LDIZ MLMSG_FL_COMPLETE*2 |
||
1077 | CALL SCR_PRINTMLSTR |
||
1078 | |||
1079 | LDIZ WIND_FL_RESULT_OK*2 |
||
1080 | LDH DATA,FLSH_TEMP3 |
||
1081 | TST DATA |
||
1082 | BREQ FL_EX91 |
||
1083 | LDIZ WIND_FL_RESULT_FAIL*2 |
||
1084 | FL_EX91:CALL WINDOW |
||
1085 | LDIZ MLMSG_FLRES0*2 |
||
1086 | CALL SCR_PRINTMLSTR |
||
1087 | |||
1088 | LDIZ MLMSG_FLRES1*2 |
||
1089 | LDH DATA,FLSH_TEMP3 |
||
636 | ddp | 1090 | TST DATA |
261 | ddp | 1091 | BREQ FL_EX92 |
1092 | LDIZ MLMSG_FLRES2*2 |
||
1093 | FL_EX92:CALL SCR_PRINTMLSTR |
||
1094 | |||
1095 | CALL WAITKEY |
||
1096 | RJMP FL_REVERT |
||
1097 | ; |
||
1098 | ;-------------------------------------- |
||
1099 | ; |
||
1100 | FL_ERRHANDLER: |
||
1101 | CLI |
||
277 | ddp | 1102 | LDS TEMP,GLB_STACK+0 |
261 | ddp | 1103 | OUT SPL,TEMP |
277 | ddp | 1104 | LDS TEMP,GLB_STACK+1 |
261 | ddp | 1105 | OUT SPH,TEMP |
277 | ddp | 1106 | LDS YL,GLB_Y+0 |
1107 | LDS YH,GLB_Y+1 |
||
261 | ddp | 1108 | SEI |
1109 | PUSH DATA |
||
1110 | LDIZ MSG_FL_ERRPOS*2 |
||
1111 | CALL SCR_PRINTSTRZ |
||
1112 | POP DATA |
||
1113 | LDIZ MLMSG_FL_SDERROR1*2 |
||
1114 | CPI DATA,1 |
||
1115 | BREQ FL_ERRHNDL1 |
||
1116 | LDIZ MLMSG_FL_SDERROR2*2 |
||
1117 | CPI DATA,2 |
||
1118 | BREQ FL_ERRHNDL1 |
||
1119 | LDIZ MLMSG_FL_SDERROR3*2 |
||
1120 | CPI DATA,3 |
||
1121 | BREQ FL_ERRHNDL1 |
||
277 | ddp | 1122 | LDIZ MLMSG_FL_SDERROR4*2 |
1123 | CPI DATA,4 |
||
1124 | BREQ FL_ERRHNDL1 |
||
261 | ddp | 1125 | LDIZ MLMSG_FL_SDERRORX*2 |
1126 | FL_ERRHNDL1: |
||
1127 | CALL SCR_PRINTMLSTR |
||
1128 | LDI DATA,0B00000111 |
||
1129 | STH FLMNU_FLAGS,DATA |
||
1130 | LDI DATA,0B00000010 |
||
1131 | RJMP FLMENU2 |
||
1132 | ; |
||
1133 | ;-------------------------------------- |
||
1134 | ; |
||
1135 | FL_ERASEJOB: |
||
1136 | LDIX FL_CONTENT |
||
1137 | LDI TEMP,0B00000001 |
||
1138 | FL_EJB5:LDH DATA,FLSH_ERASE |
||
1139 | AND DATA,TEMP |
||
1140 | BRNE FL_EJB1 |
||
1141 | LDH DATA,FLSH_ERASE |
||
1142 | OR DATA,TEMP |
||
1143 | STH FLSH_ERASE,DATA |
||
1144 | LDI COUNT,4 |
||
1145 | FL_EJB3:ST X+,NULL |
||
1146 | ST X+,NULL |
||
1147 | ST X+,NULL |
||
1148 | ST X+,NULL |
||
1149 | ST X+,NULL |
||
1150 | LDIZ FL_EMPTY*2 |
||
1151 | LDI WL,11 |
||
1152 | FL_EJB2:LPM DATA,Z+ |
||
1153 | ST X+,DATA |
||
1154 | DEC WL |
||
1155 | BRNE FL_EJB2 |
||
1156 | DEC COUNT |
||
1157 | BRNE FL_EJB3 |
||
1158 | RJMP FL_EJB4 |
||
1159 | FL_EJB1:ADIW XL,32 |
||
1160 | ADIW XL,32 |
||
1161 | FL_EJB4:LSL TEMP |
||
1162 | BRCC FL_EJB5 |
||
1163 | LDH DATA,FLMNU_FLAGS |
||
1164 | ORI DATA,0B00010000 |
||
1165 | STH FLMNU_FLAGS,DATA |
||
1166 | RCALL FL_SHOWCONTENT |
||
1167 | RJMP FLMENU1 |
||
1168 | ; |
||
1169 | ;-------------------------------------- |
||
1170 | ; |
||
1171 | FP_FS1: RCALL FP_OUT |
||
1172 | FP_FS0: CALL WAITKEY |
||
1173 | CPI DATA,KEY_UP |
||
1174 | BREQ FP_1_UP |
||
1175 | CPI DATA,KEY_DOWN |
||
1176 | BREQ FP_1_DOWN |
||
1177 | CPI DATA,KEY_PAGEUP |
||
1178 | BREQ FP_P_UP |
||
1179 | CPI DATA,KEY_PAGEDOWN |
||
1180 | BREQ FP_P_DOWN |
||
1181 | CPI DATA,KEY_HOME |
||
1182 | BREQ FP_BEGIN |
||
1183 | CPI DATA,KEY_END |
||
1184 | BREQ FP_END |
||
1185 | CPI DATA,KEY_ENTER |
||
1186 | BREQ FP_ENTER |
||
1187 | CPI DATA,KEY_ESC |
||
1188 | BRNE FP_FS0 |
||
1189 | |||
1190 | LDH XH,FLFP_CURSOR |
||
1191 | ADDI XH,FLFP_YPOS |
||
1192 | LDI XL,FLFP_XPOS |
||
1193 | CALL SCR_SET_CURSOR |
||
1194 | LDI TEMP,$9F |
||
1195 | LDI COUNT,FLFP_WIDTH |
||
1196 | CALL SCR_FILL_ATTR |
||
1197 | RJMP FLMENU1 |
||
1198 | ; |
||
1199 | FP_END: RJMP FP_END0 |
||
1200 | FP_ENTER:RJMP FP_ENTER0 |
||
1201 | ; |
||
1202 | FP_1_UP: |
||
1203 | LDH DATA,FLFP_SELECT |
||
1204 | TST DATA |
||
1205 | BREQ FP_FS0 |
||
1206 | DEC DATA |
||
1207 | STH FLFP_SELECT,DATA |
||
1208 | LDH DATA,FLFP_CURSOR |
||
1209 | TST DATA |
||
1210 | BREQ FP_1_UP1 |
||
1211 | DEC DATA |
||
1212 | STH FLFP_CURSOR,DATA |
||
1213 | RJMP FP_1_UP9 |
||
1214 | FP_1_UP1: |
||
1215 | LDH DATA,FLFP_TOP |
||
1216 | DEC DATA |
||
1217 | STH FLFP_TOP,DATA |
||
1218 | FP_1_UP9: |
||
1219 | RJMP FP_FS1 |
||
1220 | ; |
||
1221 | FP_1_DOWN: |
||
1222 | LDH DATA,FLFP_SELECT |
||
1223 | LDH TEMP,FLFP_TOTAL |
||
1224 | INC DATA |
||
1225 | CP DATA,TEMP |
||
1226 | BRCC FP_FS0 |
||
1227 | STH FLFP_SELECT,DATA |
||
1228 | LDH DATA,FLFP_CURSOR |
||
1229 | CPI DATA,FLFP_HEIGHT-1 |
||
1230 | BRCC FP_1_DOWN1 |
||
1231 | INC DATA |
||
1232 | STH FLFP_CURSOR,DATA |
||
1233 | RJMP FP_1_DOWN9 |
||
1234 | FP_1_DOWN1: |
||
1235 | LDH DATA,FLFP_TOP |
||
1236 | INC DATA |
||
1237 | STH FLFP_TOP,DATA |
||
1238 | FP_1_DOWN9: |
||
1239 | RJMP FP_FS1 |
||
1240 | ; |
||
1241 | FP_P_UP: |
||
1242 | LDH DATA,FLFP_SELECT |
||
1243 | SUBI DATA,FLFP_HEIGHT-1 |
||
1244 | BRCC FP_P_UP1 |
||
1245 | FP_BEGIN: |
||
1246 | CLR DATA |
||
1247 | FP_P_UP1: |
||
1248 | STH FLFP_SELECT,DATA |
||
1249 | STH FLFP_TOP,DATA |
||
1250 | STH FLFP_CURSOR,NULL |
||
1251 | RJMP FP_FS1 |
||
1252 | ; |
||
1253 | FP_P_DOWN: |
||
1254 | LDH TEMP,FLFP_TOTAL |
||
1255 | CPI TEMP,FLFP_HEIGHT+1 |
||
1256 | BRCC FP_P_DOWN1 |
||
1257 | LDI DATA,FLFP_HEIGHT-1 |
||
1258 | STH FLFP_SELECT,DATA |
||
1259 | STH FLFP_TOP,NULL |
||
1260 | STH FLFP_CURSOR,DATA |
||
1261 | RJMP FP_P_DOWN9 |
||
1262 | FP_P_DOWN1: |
||
1263 | LDH DATA,FLFP_SELECT |
||
1264 | ADDI DATA,FLFP_HEIGHT-1 |
||
1265 | CP DATA,TEMP |
||
1266 | BRCS FP_P_DOWN2 |
||
1267 | MOV DATA,TEMP |
||
1268 | DEC DATA |
||
1269 | FP_P_DOWN2: |
||
1270 | STH FLFP_SELECT,DATA |
||
1271 | LDI TEMP,FLFP_HEIGHT-1 |
||
1272 | STH FLFP_CURSOR,TEMP |
||
1273 | SUB DATA,TEMP |
||
1274 | STH FLFP_TOP,DATA |
||
1275 | FP_P_DOWN9: |
||
1276 | RJMP FP_FS1 |
||
1277 | ; |
||
1278 | FP_END0: |
||
1279 | LDH TEMP,FLFP_TOTAL |
||
1280 | CPI TEMP,FLFP_HEIGHT+1 |
||
1281 | BRCC FP_END1 |
||
1282 | LDI DATA,FLFP_HEIGHT-1 |
||
1283 | STH FLFP_SELECT,DATA |
||
1284 | STH FLFP_TOP,NULL |
||
1285 | STH FLFP_CURSOR,DATA |
||
1286 | RJMP FP_END9 |
||
1287 | FP_END1: |
||
1288 | MOV DATA,TEMP |
||
1289 | DEC DATA |
||
1290 | STH FLFP_SELECT,DATA |
||
1291 | LDI TEMP,FLFP_HEIGHT-1 |
||
1292 | STH FLFP_CURSOR,TEMP |
||
1293 | SUB DATA,TEMP |
||
1294 | STH FLFP_TOP,DATA |
||
1295 | FP_END9: |
||
1296 | RJMP FP_FS1 |
||
1297 | ; |
||
1298 | FP_ENTER0: |
||
1299 | LDH DATA,FLFP_SELECT |
||
1300 | LDIZ FL_BUFFER |
||
1301 | LDI TEMP,32 |
||
1302 | MUL DATA,TEMP |
||
1303 | ADD ZL,R0 |
||
1304 | ADC ZH,R1 |
||
1305 | LDD DATA,Z+11 |
||
1306 | TST DATA |
||
1307 | BREQ FP_ENTER9 |
||
1308 | LDD WL,Z+26 |
||
1309 | LDD WH,Z+27 |
||
1310 | LDD XL,Z+20 |
||
1311 | LDD XH,Z+21 |
||
352 | ddp | 1312 | MOV TEMP,WL |
1313 | OR TEMP,WH |
||
1314 | OR TEMP,XL |
||
1315 | OR TEMP,XH |
||
1316 | BRNE FP_ENTER1 |
||
1317 | LDSW FAT_ROOTCLS+0 |
||
1318 | LDSX FAT_ROOTCLS+2 |
||
1319 | FP_ENTER1: |
||
261 | ddp | 1320 | STSW FAT_TEK_DIR+0 |
1321 | STSX FAT_TEK_DIR+2 |
||
1322 | RCALL FP_RD_DIR |
||
1323 | STH FLFP_CURSOR,NULL |
||
1324 | RJMP FP_FS1 |
||
1325 | FP_ENTER9: |
||
1326 | STH FLFP_BUFADR0,ZL |
||
1327 | STH FLFP_BUFADR1,ZH |
||
1328 | LDD WL,Z+28 |
||
1329 | LDD WH,Z+29 |
||
1330 | LDD XL,Z+30 |
||
1331 | LDI DATA,LOW(16383) |
||
1332 | LDI TEMP,HIGH(16383) |
||
1333 | ADD WL,DATA |
||
1334 | ADC WH,TEMP |
||
1335 | ADC XL,NULL |
||
1336 | LSL WH |
||
1337 | ROL XL |
||
1338 | LSL WH |
||
1339 | ROL XL |
||
1340 | STH FLSH_SIZE,XL |
||
1341 | STH FLSH_START,NULL |
||
1342 | |||
1343 | LDH XH,FLFP_CURSOR |
||
1344 | ADDI XH,FLFP_YPOS |
||
1345 | LDI XL,FLFP_XPOS |
||
1346 | CALL SCR_SET_CURSOR |
||
1347 | LDI TEMP,$1F |
||
1348 | LDI COUNT,FLFP_WIDTH |
||
1349 | CALL SCR_FILL_ATTR |
||
1350 | ; |
||
1351 | FLMAP10:RCALL FL_SHOWCONTENT |
||
1352 | |||
1353 | FLMAP11:CALL WAITKEY |
||
1354 | CPI DATA,KEY_UP |
||
1355 | BREQ FLMAP_UP |
||
1356 | CPI DATA,KEY_DOWN |
||
1357 | BREQ FLMAP_DOWN |
||
1358 | CPI DATA,KEY_LEFT |
||
1359 | BREQ FLMAP_LEFT |
||
1360 | CPI DATA,KEY_RIGHT |
||
1361 | BREQ FLMAP_RIGHT |
||
1362 | CPI DATA,KEY_ENTER |
||
1363 | BREQ FLMAP_ENTER |
||
1364 | CPI DATA,KEY_ESC |
||
1365 | BRNE FLMAP11 |
||
1366 | RJMP FLMAP_EXIT |
||
1367 | ; |
||
1368 | FLMAP_LEFT: |
||
1369 | LDH DATA,FLSH_START |
||
1370 | TST DATA |
||
1371 | BREQ FLMAP11 |
||
1372 | DEC DATA |
||
1373 | STH FLSH_START,DATA |
||
1374 | RJMP FLMAP10 |
||
1375 | ; |
||
1376 | FLMAP_RIGHT: |
||
1377 | LDH DATA,FLSH_START |
||
1378 | LDH TEMP,FLSH_SIZE |
||
1379 | ADD TEMP,DATA |
||
1380 | CPI TEMP,32 |
||
1381 | BRCC FLMAP11 |
||
1382 | INC DATA |
||
1383 | STH FLSH_START,DATA |
||
1384 | RJMP FLMAP10 |
||
1385 | ; |
||
1386 | FLMAP_UP: |
||
1387 | LDH DATA,FLSH_START |
||
1388 | SUBI DATA,4 |
||
1389 | BRCC FLMAP_U1 |
||
1390 | CLR DATA |
||
1391 | FLMAP_U1: |
||
1392 | STH FLSH_START,DATA |
||
1393 | RJMP FLMAP10 |
||
1394 | ; |
||
1395 | FLMAP_DOWN: |
||
1396 | LDH DATA,FLSH_START |
||
1397 | LDH TEMP,FLSH_SIZE |
||
1398 | ADD DATA,TEMP |
||
1399 | ADDI DATA,4 |
||
1400 | CPI DATA,32 |
||
1401 | BRCS FLMAP_D1 |
||
1402 | LDI DATA,32 |
||
1403 | FLMAP_D1: |
||
1404 | SUB DATA,TEMP |
||
1405 | STH FLSH_START,DATA |
||
1406 | RJMP FLMAP10 |
||
1407 | ; |
||
1408 | FLMAP_ENTER: |
||
1409 | LDIZ FL_CONTENT |
||
1410 | LDH DATA,FLSH_START |
||
1411 | LDI TEMP,16 |
||
1412 | MUL DATA,TEMP |
||
1413 | ADD ZL,R0 |
||
1414 | ADC ZH,R1 |
||
1415 | STH FLSH_ADR1,ZL |
||
1416 | STH FLSH_ADR2,ZH |
||
1417 | |||
1418 | LDS TEMP,FAT_BYTSSEC |
||
1419 | STS FAT_NUMSECK,TEMP |
||
1420 | |||
1421 | LDH ZL,FLFP_BUFADR0 |
||
1422 | LDH ZH,FLFP_BUFADR1 |
||
1423 | LDD WL,Z+26 |
||
1424 | LDD WH,Z+27 |
||
1425 | LDD XL,Z+20 |
||
1426 | LDD XH,Z+21 |
||
1427 | STSW FAT_TFILCLS+0 |
||
1428 | STSX FAT_TFILCLS+2 |
||
1429 | LDD WL,Z+28 |
||
1430 | LDD WH,Z+29 |
||
1431 | LDD XL,Z+30 |
||
1432 | LDD XH,Z+31 |
||
1433 | LDI TMP2,LOW(511) |
||
1434 | LDI TMP3,HIGH(511) |
||
1435 | RCALL HLDEPBC |
||
1436 | RCALL BCDE200 ;稫 - ᥪ |
||
1437 | ;------- |
||
1438 | FL_FS0: LDI COUNT,32 |
||
1439 | SBIW WL,32 |
||
1440 | BRCS FL_FS9 |
||
1441 | BREQ FL_FS9 |
||
1442 | STH FLSH_TEMP0,WL |
||
1443 | STH FLSH_TEMP1,WH |
||
1444 | RCALL FL_CPTR |
||
1445 | |||
1446 | LDI COUNT,32 |
||
1447 | |||
1448 | FL_FS2: STH FLSH_COUNT,COUNT |
||
1449 | LDS DATA,FAT_NUMSECK |
||
1450 | DEC DATA |
||
1451 | BRNE FL_FS3 |
||
1452 | |||
1453 | LDSW FAT_TFILCLS+0 |
||
1454 | LDSX FAT_TFILCLS+2 |
||
1455 | CALL RDFATZP |
||
1456 | STSW FAT_TFILCLS+0 |
||
1457 | STSX FAT_TFILCLS+2 |
||
1458 | LDS DATA,FAT_BYTSSEC |
||
1459 | FL_FS3: STS FAT_NUMSECK,DATA |
||
1460 | |||
1461 | LDH COUNT,FLSH_COUNT |
||
1462 | DEC COUNT |
||
1463 | BRNE FL_FS2 |
||
1464 | |||
1465 | LDH WL,FLSH_TEMP0 |
||
1466 | LDH WH,FLSH_TEMP1 |
||
1467 | RJMP FL_FS0 |
||
1468 | |||
1469 | FL_FS9: ADIW WL,32 |
||
1470 | MOV COUNT,WL |
||
1471 | RCALL FL_CPTR |
||
1472 | ; |
||
1473 | FLMAP_EXIT: |
||
1474 | STH FLSH_START,FF |
||
1475 | STH FLSH_SIZE,NULL |
||
1476 | RCALL FL_SHOWCONTENT |
||
1477 | RJMP FLMENU1 |
||
1478 | ; |
||
1479 | ;====================================== |
||
1480 | ; |
||
1481 | FL_CPTR:PUSH COUNT |
||
1482 | LDI TEMP,$01 |
||
1483 | LDH DATA,FLSH_START |
||
1484 | LSR DATA |
||
1485 | LSR DATA |
||
1486 | TST DATA |
||
1487 | BREQ FL_CPT1 |
||
1488 | FL_CPT2:LSL TEMP |
||
1489 | DEC DATA |
||
1490 | BRNE FL_CPT2 |
||
1491 | FL_CPT1:LDH DATA,FLSH_ERASE |
||
1492 | AND DATA,TEMP |
||
1493 | BRNE FL_CPT5 |
||
1494 | LDH DATA,FLSH_ERASE |
||
1495 | OR DATA,TEMP |
||
1496 | STH FLSH_ERASE,DATA |
||
1497 | LDIX FL_CONTENT |
||
1498 | LDH DATA,FLSH_START |
||
1499 | ANDI DATA,0B00011100 |
||
1500 | LDI TEMP,16 |
||
1501 | MUL DATA,TEMP |
||
1502 | ADD XL,R0 |
||
1503 | ADC XH,R1 |
||
1504 | LDI COUNT,4 |
||
1505 | FL_CPT4:ST X+,NULL |
||
1506 | ST X+,NULL |
||
1507 | ST X+,NULL |
||
1508 | ST X+,NULL |
||
1509 | ST X+,NULL |
||
1510 | LDIZ FL_EMPTY*2 |
||
1511 | LDI TEMP,11 |
||
1512 | FL_CPT3:LPM DATA,Z+ |
||
1513 | ST X+,DATA |
||
1514 | DEC TEMP |
||
1515 | BRNE FL_CPT3 |
||
1516 | DEC COUNT |
||
1517 | BRNE FL_CPT4 |
||
1518 | FL_CPT5:POP COUNT |
||
1519 | |||
1520 | LDS DATA,FAT_BYTSSEC |
||
1521 | LDS TEMP,FAT_NUMSECK |
||
1522 | CP DATA,TEMP |
||
1523 | BREQ FL_CPT6 |
||
1524 | ORI COUNT,$40 |
||
1525 | FL_CPT6:LDH XL,FLSH_ADR1 |
||
1526 | LDH XH,FLSH_ADR2 |
||
1527 | ST X+,COUNT |
||
1528 | LDS DATA,FAT_TFILCLS+0 |
||
1529 | ST X+,DATA |
||
1530 | LDS DATA,FAT_TFILCLS+1 |
||
1531 | ST X+,DATA |
||
1532 | LDS DATA,FAT_TFILCLS+2 |
||
1533 | ST X+,DATA |
||
1534 | LDS DATA,FAT_TFILCLS+3 |
||
1535 | ST X+,DATA |
||
1536 | LDH ZL,FLFP_BUFADR0 |
||
1537 | LDH ZH,FLFP_BUFADR1 |
||
1538 | LDI COUNT,11 |
||
1539 | FL_CPT7:LD DATA,Z+ |
||
1540 | ST X+,DATA |
||
1541 | DEC COUNT |
||
1542 | BRNE FL_CPT7 |
||
1543 | STH FLSH_ADR1,XL |
||
1544 | STH FLSH_ADR2,XH |
||
1545 | LDH DATA,FLMNU_FLAGS |
||
1546 | ORI DATA,0B00010000 |
||
1547 | STH FLMNU_FLAGS,DATA |
||
1548 | LDH DATA,FLSH_START |
||
1549 | INC DATA |
||
1550 | STH FLSH_START,DATA |
||
1551 | RET |
||
1552 | ; |
||
1553 | ;====================================== |
||
1554 | ; |
||
1555 | FLMENU_PUTCURSOR: |
||
551 | ddp | 1556 | LDH DATA,FLSH_ERASE |
1557 | CPI DATA,$FF |
||
1558 | BRNE FPM_PC5 |
||
1559 | LDIZ MSG_FL_ERASECHIP*2 |
||
1560 | CALL SCR_PRINTSTRZ |
||
1561 | FPM_PC5: |
||
261 | ddp | 1562 | CLR COUNT |
1563 | LDI TEMP,0B00000001 |
||
1564 | FPM_PC4:STH FLSH_COUNT,COUNT |
||
1565 | STH FLSH_TEMP0,TEMP |
||
1566 | MOV XH,COUNT |
||
1567 | ADDI XH,2 |
||
1568 | LDI XL,1 |
||
1569 | CALL SCR_SET_CURSOR |
||
1570 | LDH DATA,FLSH_TEMP0 |
||
1571 | LDH XL,FLMNU_FLAGS |
||
1572 | LDI TEMP,$9F |
||
1573 | AND XL,DATA |
||
1574 | BRNE FPM_PC1 |
||
1575 | LDI TEMP,$97 |
||
1576 | FPM_PC1:LDH XL,FLMNU_CURSOR |
||
1577 | AND DATA,XL |
||
1578 | BREQ FPM_PC2 |
||
1579 | LSL XL |
||
1580 | BRCS FPM_PC3 |
||
1581 | LDI TEMP,$F0 |
||
1582 | RJMP FPM_PC2 |
||
1583 | FPM_PC3:ANDI TEMP,$1F |
||
1584 | FPM_PC2:LDI COUNT,15 |
||
1585 | CALL SCR_FILL_ATTR |
||
1586 | LDH COUNT,FLSH_COUNT |
||
1587 | INC COUNT |
||
1588 | LDH TEMP,FLSH_TEMP0 |
||
1589 | LSL TEMP |
||
1590 | SBRS TEMP,5 |
||
1591 | RJMP FPM_PC4 |
||
1592 | RET |
||
1593 | ; |
||
1594 | ;====================================== |
||
1595 | ; |
||
1596 | FP_RD_DIR: |
||
1597 | LDIZ FL_BUFFER |
||
1598 | STH FLFP_BUFADR0,ZL |
||
1599 | STH FLFP_BUFADR1,ZH |
||
1600 | STH FLFP_TOTAL,NULL |
||
1601 | STH FLFP_TOP,NULL |
||
1602 | STH FLFP_SELECT,NULL |
||
1603 | |||
290 | ddp | 1604 | CALL CALCKCLSDIR |
261 | ddp | 1605 | LDIW 0 |
277 | ddp | 1606 | CALL RDDIRSC |
261 | ddp | 1607 | ; 䠩 ४ਨ |
1608 | ; LDIW 0 ; ⥫ 䠩 |
||
1609 | RJMP FP_RDD2 |
||
1610 | |||
1611 | FP_RDD1:ADIW WL,1 ;ய⥫++ |
||
1612 | ADIW ZL,$20 ;騩 ⥫ |
||
1613 | CPI ZH,HIGH(BUF4FAT+512); |
||
1614 | ;뫥 ᥪ? |
||
1615 | BRNE FP_RDD2 ; |
||
1616 | CALL RDDIRSC ;뢠 騩 |
||
1617 | BRNE FP_RDDE ;稫 ᥪ ४ਨ |
||
1618 | |||
1619 | FP_RDD2:LD TEMP,Z ; ᨬ |
||
1620 | CPI TEMP,$E5 ;㤠? |
||
1621 | BREQ FP_RDD1 |
||
1622 | TST TEMP ;⮩ ⥫? ( ᯨ᪠) |
||
1623 | BREQ FP_RDDE |
||
1624 | CPI TEMP,$2E ;"." |
||
1625 | BRNE FP_RDD3 |
||
1626 | LDD TEMP,Z+1 |
||
1627 | CPI TEMP,$2E ;"." |
||
1628 | BRNE FP_RDD1 |
||
1629 | |||
1630 | FP_RDD3:LDD DATA,Z+$0B ;ਡ |
||
1631 | ANDI DATA,0B11011110 |
||
1632 | BREQ FP_RDD4 ;䠩 |
||
1633 | CPI DATA,$10 ;४ |
||
1634 | BRNE FP_RDD1 |
||
1635 | RJMP FP_RDD7 |
||
1636 | |||
1637 | FP_RDDE:RJMP FP_RDDX |
||
1638 | |||
1639 | FP_RDD4:LDD DATA,Z+8 |
||
1640 | CPI DATA,$52 ;"R" |
||
1641 | BREQ FP_RDD5 |
||
1642 | CPI DATA,$42 ;"B" |
||
1643 | BRNE FP_RDD1 |
||
1644 | LDD DATA,Z+9 |
||
1645 | CPI DATA,$49 ;"I" |
||
1646 | BRNE FP_RDD1 |
||
1647 | LDD DATA,Z+10 |
||
1648 | CPI DATA,$4E ;"N" |
||
1649 | BREQ FP_RDD6 |
||
1650 | FP_RDD1A:RJMP FP_RDD1 |
||
1651 | FP_RDD5:LDD DATA,Z+9 |
||
1652 | CPI DATA,$4F ;"O" |
||
1653 | BRNE FP_RDD1 |
||
1654 | LDD DATA,Z+10 |
||
1655 | CPI DATA,$4D ;"M" |
||
1656 | BRNE FP_RDD1 |
||
1657 | |||
1658 | FP_RDD6:LDD DATA,Z+31 ; |
||
1659 | TST DATA |
||
1660 | BRNE FP_RDD1 |
||
1661 | LDD DATA,Z+30 |
||
1662 | LDD R1,Z+29 |
||
1663 | LDD R0,Z+28 |
||
1664 | SUB R0,ONE |
||
1665 | SBC R1,NULL |
||
1666 | SBC DATA,NULL |
||
1667 | BRCS FP_RDD1 |
||
1668 | CPI DATA,$08 |
||
1669 | BRCC FP_RDD1 |
||
1670 | |||
1671 | FP_RDD7:LDH XL,FLFP_BUFADR0 |
||
1672 | LDH XH,FLFP_BUFADR1 |
||
1673 | LDI COUNT,32 |
||
1674 | PUSHZ |
||
1675 | FP_RDD8:LD DATA,Z+ |
||
1676 | ST X+,DATA |
||
1677 | DEC COUNT |
||
1678 | BRNE FP_RDD8 |
||
1679 | POPZ |
||
1680 | STH FLFP_BUFADR0,XL |
||
1681 | STH FLFP_BUFADR1,XH |
||
1682 | LDH COUNT,FLFP_TOTAL |
||
1683 | INC COUNT |
||
1684 | STH FLFP_TOTAL,COUNT |
||
1685 | CPI COUNT,48 |
||
1686 | BRCC FP_SORT |
||
1687 | RJMP FP_RDD1 |
||
1688 | |||
1689 | FP_RDDX:LDH COUNT,FLFP_TOTAL |
||
1690 | CPI COUNT,1 |
||
1691 | BREQ FP_NOSORT |
||
1692 | TST COUNT |
||
1693 | BRNE FP_SORT |
||
1694 | LDH DATA,FLMNU_FLAGS |
||
1695 | ANDI DATA,0B00000111 |
||
1696 | STH FLMNU_FLAGS,DATA |
||
1697 | RJMP FP_NOFILES |
||
1698 | FP_SORT: |
||
1699 | FP_RDDY: |
||
1700 | LDIZ FL_BUFFER |
||
1701 | CLR TMP2 |
||
1702 | LDH TMP3,FLFP_TOTAL |
||
1703 | DEC TMP3 |
||
1704 | LD DATA,Z |
||
1705 | CPI DATA,$2E |
||
1706 | BRNE FP_RDDZ |
||
1707 | INC TMP2 |
||
1708 | FP_RDDZ:RCALL FSORT |
||
1709 | FP_NOFILES: |
||
1710 | FP_NOSORT: |
||
1711 | ; |
||
1712 | LDIZ FL_BUFFER |
||
1713 | LDH COUNT,FLFP_TOTAL |
||
1714 | FP_LO2: LDD DATA,Z+11 |
||
1715 | ANDI DATA,0B11011110 |
||
1716 | STD Z+11,DATA |
||
1717 | BRNE FP_LO1 |
||
1718 | LDI TEMP,11 |
||
1719 | FP_LO3: LD DATA,Z |
||
1720 | RCALL TOLOWER |
||
1721 | ST Z+,DATA |
||
1722 | DEC TEMP |
||
1723 | BRNE FP_LO3 |
||
1724 | ADIW ZL,21 |
||
1725 | RJMP FP_LO4 |
||
1726 | FP_LO1: ADIW ZL,32 |
||
1727 | FP_LO4: DEC COUNT |
||
1728 | BRNE FP_LO2 |
||
1729 | RET |
||
1730 | ; |
||
1731 | ;====================================== |
||
1732 | ; |
||
1733 | FP_OUT: CLR COUNT |
||
1734 | FPOUT00:PUSH COUNT |
||
1735 | MOV XH,COUNT |
||
1736 | ADDI XH,FLFP_YPOS |
||
1737 | LDI XL,FLFP_XPOS |
||
1738 | CALL SCR_SET_CURSOR |
||
1739 | |||
1740 | LDH DATA,FLFP_CURSOR |
||
1741 | LDI TEMP,$9F |
||
1742 | CP DATA,COUNT |
||
1743 | BRNE FPOUT04 |
||
1744 | LDI TEMP,$F0 |
||
1745 | FPOUT04:CALL SCR_SET_ATTR |
||
1746 | |||
1747 | LDH DATA,FLFP_TOP |
||
1748 | ADD DATA,COUNT |
||
1749 | LDH TEMP,FLFP_TOTAL |
||
1750 | CP DATA,TEMP |
||
1751 | BRCS FPOUT01 |
||
1752 | OR COUNT,TEMP |
||
1753 | BRNE FPOUT02 |
||
1754 | |||
1755 | LDIZ MLMSG_FP_NOFILES*2 |
||
1756 | CALL SCR_PRINTMLSTR |
||
1757 | LDI COUNT,FLFP_WIDTH-12 ;22 |
||
1758 | RJMP FPOUT03 |
||
1759 | FPOUT02:LDI COUNT,FLFP_WIDTH ;34 |
||
1760 | FPOUT03:LDI DATA,$20 |
||
1761 | CALL SCR_FILL_CHAR |
||
1762 | RJMP FPOUT90 |
||
1763 | |||
1764 | FPOUT01:LDIZ FL_BUFFER |
||
1765 | LDI TEMP,32 |
||
1766 | MUL DATA,TEMP |
||
1767 | ADD ZL,R0 |
||
1768 | ADC ZH,R1 |
||
1769 | PUSH ZL |
||
1770 | LDI COUNT,8 |
||
1771 | CALL SCR_PRNRAMSTRN |
||
1772 | LDI DATA,$20 |
||
1773 | CALL SCR_PUTCHAR |
||
1774 | LDI COUNT,3 |
||
1775 | CALL SCR_PRNRAMSTRN |
||
1776 | LDI DATA,$B3 ;"" |
||
1777 | CALL SCR_PUTCHAR |
||
1778 | POP ZL |
||
1779 | ;here Z=0 |
||
1780 | PUSHZ |
||
1781 | LDD DATA,Z+11 |
||
1782 | TST DATA |
||
1783 | BREQ FPOUT11 |
||
1784 | LDIZ MSG_FP_DIR*2 |
||
1785 | CALL SCR_PRINTSTRZ |
||
1786 | RJMP FPOUT12 |
||
1787 | FPOUT11:LDD WL,Z+28 |
||
1788 | LDD WH,Z+29 |
||
1789 | LDD XL,Z+30 |
||
1790 | RCALL SCR_DEC1M |
||
1791 | LDI DATA,$B3 ;"" |
||
1792 | CALL SCR_PUTCHAR |
||
1793 | FPOUT12:POPZ |
||
1794 | |||
1795 | LDD DATA,Z+24 |
||
1796 | ANDI DATA,$1F |
||
1797 | CALL DECBYTE |
||
1798 | LDI DATA,$2E ;"." |
||
1799 | CALL SCR_PUTCHAR |
||
1800 | LDD DATA,Z+24 |
||
1801 | LDD TEMP,Z+25 |
||
1802 | ROR TEMP |
||
1803 | ROR DATA |
||
1804 | SWAP DATA |
||
1805 | ANDI DATA,$0F |
||
1806 | CALL DECBYTE |
||
1807 | LDI DATA,$2E ;"." |
||
1808 | CALL SCR_PUTCHAR |
||
1809 | LDD DATA,Z+25 |
||
1810 | LSR DATA |
||
1811 | ADDI DATA,80 ;+1980 |
||
1812 | FPOUT14:CPI DATA,100 |
||
1813 | BRCS FPOUT13 |
||
1814 | SUBI DATA,100 |
||
1815 | RJMP FPOUT14 |
||
1816 | FPOUT13:CALL DECBYTE |
||
1817 | LDI DATA,$B3 ;"" |
||
1818 | CALL SCR_PUTCHAR |
||
1819 | |||
1820 | LDD DATA,Z+23 |
||
1821 | LSR DATA |
||
1822 | LSR DATA |
||
1823 | LSR DATA |
||
1824 | CALL DECBYTE |
||
1825 | LDI DATA,$3A ;":" |
||
1826 | CALL SCR_PUTCHAR |
||
1827 | LDD TEMP,Z+22 |
||
1828 | LDD DATA,Z+23 |
||
1829 | ROL TEMP |
||
1830 | ROL DATA |
||
1831 | ROL TEMP |
||
1832 | ROL DATA |
||
1833 | ROL TEMP |
||
1834 | ROL DATA |
||
1835 | ANDI DATA,$3F |
||
1836 | CALL DECBYTE |
||
1837 | |||
1838 | FPOUT90:POP COUNT |
||
1839 | INC COUNT |
||
1840 | CPI COUNT,FLFP_HEIGHT |
||
1841 | BRCC FPOUT91 |
||
1842 | RJMP FPOUT00 |
||
1843 | FPOUT91: |
||
1844 | RET |
||
1845 | ; |
||
1846 | ;====================================== |
||
1847 | ;For CodePage866 only!!! |
||
1848 | ;in: DATA |
||
1849 | ;out: DATA |
||
1850 | TOLOWER:CPI DATA,$41 |
||
1851 | BRCS TOLOW9 ;$00..."@" |
||
1852 | CPI DATA,$5B |
||
1853 | BRCS TOLOW8 ;"A"..."Z" |
||
1854 | CPI DATA,$80 |
||
1855 | BRCS TOLOW9 ;"["..."" |
||
1856 | CPI DATA,$90 |
||
1857 | BRCS TOLOW8 ;""..."" |
||
1858 | CPI DATA,$A0 |
||
1859 | BRCS TOLOW7 ;""..."" |
||
1860 | CPI DATA,$F0 |
||
1861 | BRCS TOLOW9 ;""..."" |
||
1862 | CPI DATA,$F8 |
||
1863 | BRCC TOLOW9 ;$F8...$FF |
||
1864 | ORI DATA,$01 ;""..."" |
||
1865 | RET |
||
277 | ddp | 1866 | TOLOW7: ADDI DATA,$50 |
261 | ddp | 1867 | RET |
1868 | TOLOW8: ADDI DATA,$20 |
||
1869 | TOLOW9: RET |
||
1870 | ; |
||
1871 | ;====================================== |
||
1872 | ;out number (up to 999999) in dec (right justify) |
||
1873 | ;in: XL,WH,WL == number |
||
1874 | SCR_DEC1M: |
||
1875 | LDIZ DEC1MTAB*2 |
||
1876 | LDI COUNT,5 |
||
1877 | MOV R2,ONE |
||
1878 | CLR DATA |
||
1879 | DEC1M5: LPM R0,Z+ |
||
1880 | LPM R1,Z+ |
||
1881 | DEC1M2: SUB WL,R0 |
||
1882 | SBC WH,R1 |
||
1883 | SBC XL,R2 |
||
1884 | BRCS DEC1M1 |
||
1885 | INC DATA |
||
1886 | RJMP DEC1M2 |
||
1887 | DEC1M1: ADD WL,R0 |
||
1888 | ADC WH,R1 |
||
1889 | ADC XL,R2 |
||
1890 | TST DATA |
||
1891 | BRNE DEC1M3 |
||
1892 | LDI DATA,$20 |
||
1893 | CALL SCR_PUTCHAR |
||
1894 | CLR DATA |
||
1895 | RJMP DEC1M4 |
||
1896 | DEC1M3: ORI DATA,$30 |
||
1897 | CALL SCR_PUTCHAR |
||
1898 | LDI DATA,$30 |
||
1899 | DEC1M4: CLR R2 |
||
1900 | DEC COUNT |
||
1901 | BRNE DEC1M5 |
||
1902 | MOV DATA,WL |
||
1903 | ORI DATA,$30 |
||
1904 | JMP SCR_PUTCHAR |
||
1905 | DEC1MTAB:.DW $86A0,10000,1000,100,10 |
||
1906 | ; |
||
1907 | ;====================================== |
||
1908 | ;in: Z == buffer ptr |
||
1909 | ; TMP2 == lo index |
||
277 | ddp | 1910 | ; TMP3 == hi index |
1911 | FSORT: CP TMP2,TMP3 |
||
1912 | BRLT FSRT_1 |
||
1913 | RET |
||
1914 | FSRT_1: MOV WH,TMP2 |
||
1915 | ADD WH,TMP3 |
||
1916 | LSR WH |
||
1917 | MOV WL,TMP2 |
||
1918 | RCALL FXCHNG |
||
1919 | MOV R2,TMP2 |
||
1920 | INC R2 |
||
261 | ddp | 1921 | MOV R3,TMP3 |
277 | ddp | 1922 | FSRT_2: CP R3,R2 |
1923 | BRLT FSRT_7 |
||
1924 | FSRT_3: CP TMP3,R2 |
||
1925 | BRLT FSRT_4 |
||
1926 | MOV WL,TMP2 |
||
261 | ddp | 1927 | MOV WH,R2 |
277 | ddp | 1928 | RCALL FCOMP |
1929 | BRCS FSRT_4 |
||
1930 | INC R2 |
||
1931 | RJMP FSRT_3 |
||
1932 | FSRT_4: CP R3,TMP2 |
||
1933 | BRLT FSRT_5 |
||
1934 | MOV WL,TMP2 |
||
1935 | MOV WH,R3 |
||
1936 | RCALL FCOMP |
||
1937 | BRCC FSRT_5 |
||
1938 | DEC R3 |
||
1939 | RJMP FSRT_4 |
||
1940 | FSRT_5: CP R2,R3 |
||
1941 | BRGE FSRT_6 |
||
1942 | MOV WL,R2 |
||
1943 | MOV WH,R3 |
||
1944 | RCALL FXCHNG |
||
1945 | FSRT_6: RJMP FSRT_2 |
||
1946 | FSRT_7: MOV WL,TMP2 |
||
1947 | MOV WH,R3 |
||
1948 | RCALL FXCHNG |
||
1949 | PUSH R3 |
||
1950 | PUSH TMP3 |
||
1951 | MOV TMP3,R3 |
||
1952 | DEC TMP3 |
||
1953 | RCALL FSORT |
||
1954 | POP TMP3 |
||
1955 | POP TMP2 |
||
1956 | INC TMP2 |
||
1957 | RJMP FSORT |
||
1958 | ; |
||
1959 | ;====================================== |
||
1960 | ;in: Z |
||
1961 | ; WL, WH - indexes |
||
1962 | ;chng: COUNT,DATA,TEMP (,X,R0,R1) |
||
1963 | FXCHNG: |
||
1964 | CP WL,WH |
||
1965 | BRNE FXCHN_1 |
||
1966 | RET |
||
1967 | FXCHN_1: |
||
261 | ddp | 1968 | PUSHZ |
1969 | MOVW XL,ZL |
||
1970 | LDI COUNT,32 |
||
277 | ddp | 1971 | MUL WL,COUNT |
261 | ddp | 1972 | ADD XL,R0 |
1973 | ADC XH,R1 |
||
277 | ddp | 1974 | MUL WH,COUNT |
261 | ddp | 1975 | ADD ZL,R0 |
1976 | ADC ZH,R1 |
||
277 | ddp | 1977 | FXCHN_2:LD DATA,X |
261 | ddp | 1978 | LD TEMP,Z |
1979 | ST X+,TEMP |
||
1980 | ST Z+,DATA |
||
1981 | DEC COUNT |
||
277 | ddp | 1982 | BRNE FXCHN_2 |
261 | ddp | 1983 | POPZ |
277 | ddp | 1984 | RET |
261 | ddp | 1985 | ; |
1986 | ;====================================== |
||
277 | ddp | 1987 | ;in: Z |
1988 | ; WL, WH - indexes |
||
1989 | ;out: sreg.C - SET - [WL]<[WH], CLR - [WL]>=[WH] |
||
1990 | ;chng: COUNT,DATA,TEMP (,X,R0,R1) |
||
261 | ddp | 1991 | FCOMP: PUSHZ |
1992 | MOVW XL,ZL |
||
1993 | LDI DATA,32 |
||
277 | ddp | 1994 | MUL WH,DATA |
261 | ddp | 1995 | ADD XL,R0 |
1996 | ADC XH,R1 |
||
277 | ddp | 1997 | MUL WL,DATA |
261 | ddp | 1998 | ADD ZL,R0 |
1999 | ADC ZH,R1 |
||
2000 | LDD TEMP,Z+11 |
||
2001 | ANDI TEMP,0B11011110 |
||
2002 | ADDI XL,11 |
||
2003 | LD DATA,X |
||
2004 | ANDI DATA,0B11011110 |
||
2005 | CP DATA,TEMP |
||
2006 | BRNE FCMP9 |
||
2007 | SUBI XL,11 |
||
2008 | LDI COUNT,11 |
||
2009 | FCMP1: LD DATA,X+ |
||
2010 | LD TEMP,Z+ |
||
2011 | CP TEMP,DATA |
||
2012 | BRNE FCMP9 |
||
2013 | DEC COUNT |
||
2014 | BRNE FCMP1 |
||
2015 | FCMP9: POPZ |
||
2016 | RET |
||
2017 | ; |
||
2018 | ;====================================== |
||
2019 | ; |
||
2020 | FL_CRC_CMP: |
||
2021 | LPM DATA,Z+ |
||
2022 | CP DATA,R0 |
||
2023 | BRNE FL_CRCCMP1 |
||
2024 | LPM DATA,Z+ |
||
2025 | CP DATA,R1 |
||
2026 | BRNE FL_CRCCMP1 |
||
2027 | LPM DATA,Z+ |
||
2028 | CP DATA,R2 |
||
2029 | BRNE FL_CRCCMP1 |
||
2030 | LPM DATA,Z+ |
||
2031 | CP DATA,R3 |
||
2032 | BRNE FL_CRCCMP1 |
||
2033 | FL_CRCCMP1: |
||
2034 | RET |
||
2035 | ; |
||
2036 | ;====================================== |
||
2037 | ; |
||
2038 | FL_SHOWCONTENT: |
||
2039 | LDIZ FL_CONTENT |
||
2040 | CLR COUNT |
||
2041 | |||
2042 | FL_SHW1:STH FLSH_TEMP2,COUNT |
||
2043 | RCALL FL_SHW_SETCURSOR |
||
2044 | LD DATA,Z |
||
2045 | LDI TEMP,$0E |
||
2046 | SBRC DATA,7 |
||
2047 | LDI TEMP,$07 |
||
2048 | LDH COUNT,FLSH_TEMP2 |
||
2049 | LDH DATA,FLSH_START |
||
2050 | CP COUNT,DATA |
||
2051 | BRCS FL_SHW5 |
||
2052 | LDH XH,FLSH_SIZE |
||
2053 | ADD DATA,XH |
||
2054 | CP COUNT,DATA |
||
2055 | BRCC FL_SHW5 |
||
2056 | LDI TEMP,$F0 |
||
2057 | FL_SHW5:LDH XH,FLSH_TEMP2 |
||
2058 | LDI DATA,$10 |
||
2059 | SBRC XH,2 |
||
2060 | EOR TEMP,DATA |
||
2061 | CALL SCR_SET_ATTR |
||
2062 | |||
2063 | ADIW ZL,5 |
||
2064 | LDI COUNT,8 |
||
2065 | CALL SCR_PRNRAMSTRN |
||
2066 | LDI DATA,$20 |
||
2067 | CALL SCR_PUTCHAR |
||
2068 | LDI COUNT,3 |
||
2069 | CALL SCR_PRNRAMSTRN |
||
2070 | |||
2071 | LDH COUNT,FLSH_TEMP2 |
||
2072 | INC COUNT |
||
2073 | CPI COUNT,32 |
||
2074 | BRCS FL_SHW1 |
||
551 | ddp | 2075 | RET |
261 | ddp | 2076 | ; |
2077 | ;====================================== |
||
2078 | ; |
||
2079 | FL_SHW_SETCURSOR: |
||
2080 | MOV XL,COUNT |
||
2081 | ANDI XL,$03 |
||
2082 | LDI TEMP,13 |
||
2083 | MUL XL,TEMP |
||
2084 | MOV XL,R0 |
||
2085 | INC XL |
||
2086 | MOV XH,COUNT |
||
2087 | ANDI XH,$1C |
||
2088 | LSR XH |
||
2089 | LSR XH |
||
2090 | ADDI XH,15 |
||
2091 | JMP SCR_SET_CURSOR |
||
2092 | ; |
||
2093 | ;====================================== |
||
2094 | ; |