Rev 312 | Details | Compare with Previous | Last modification | View Log | RSS feed
Rev | Author | Line No. | Line |
---|---|---|---|
277 | ddp | 1 | ; |
2 | ;-------------------------------------- |
||
3 | ; |
||
4 | MSG_TSD_OUT: |
||
5 | .DB $0D,$0A,"out ",0,0 |
||
6 | MSG_TSD_IN: |
||
7 | .DB ", in ",0 |
||
8 | |||
9 | MSG_TSD_CMD: |
||
10 | .DB $0D,$0A,$3B,"CMD",0,0 |
||
11 | |||
12 | MSG_TSD_ACMD41: |
||
13 | .DB $0D,$0A,$3B,"ACMD41",0 |
||
14 | |||
15 | MSG_TSD_CSUP: |
||
16 | .DB $0D,$0A,"CS up",0 |
||
17 | MSG_TSD_CSDOWN: |
||
18 | .DB $0D,$0A,"CS down",0 |
||
19 | |||
20 | MSG_TSD_MMC: |
||
21 | .DB "MMC",0 |
||
22 | MSG_TSD_SDV1: |
||
23 | .DB "SD v1",0 |
||
24 | MSG_TSD_SDSC: |
||
25 | .DB "SD v2+ Standard Capacity",0,0 |
||
26 | MSG_TSD_SDHC: |
||
27 | .DB "SD v2+ High Capacity",0,0 |
||
28 | |||
29 | MSG_TSD_OCR: |
||
30 | .DB "OCR: ",0 |
||
31 | MSG_TSD_CSD: |
||
32 | .DB "CSD: ",0 |
||
33 | MSG_TSD_CID0: |
||
34 | .DB "CID: ",0 |
||
35 | MSG_TSD_CID1: |
||
36 | .DB "Manufacturer ID ",0 |
||
37 | MSG_TSD_CID2: |
||
38 | .DB "OEM/Application ID ",0 |
||
39 | MSG_TSD_CID3: |
||
40 | .DB "Product name ",0 |
||
41 | MSG_TSD_CID4: |
||
42 | .DB "Product revision ",0 |
||
43 | MSG_TSD_CID5: |
||
44 | .DB "Product serial # ",0 |
||
45 | MSG_TSD_CID6: |
||
46 | .DB "Manufacturing date ",0 |
||
47 | MSG_TSD_CID6B: |
||
48 | .DB ".20",0 |
||
49 | MSG_TSD_CID6C: |
||
50 | .DB ".19",0 |
||
51 | MSG_TSD_CRC: |
||
52 | .DB "CRC=",0,0 |
||
53 | MSG_TSD_READSECTOR: |
||
54 | .DB $0D,$0A,$3B,"Read sector ",0 |
||
55 | MSG_TSD_SKIP: |
||
56 | .DB $0D,$0A,$3B,"512 operations is skiped",0 |
||
57 | |||
58 | WIND_TSD1: |
||
59 | .DB 10,10,32,4,$9F,$01 |
||
60 | WIND_TSD2: |
||
61 | .DB 0,2,53,22,$DF,$00 |
||
62 | ; |
||
63 | ;-------------------------------------- |
||
64 | ; |
||
65 | .EQU TSD_BLS0 =4 |
||
66 | .EQU TSD_BLS1 =5 |
||
551 | ddp | 67 | .EQU TSD_ARG_ACMD41 =18 |
68 | .EQU TSD_CARDTYPE =19 |
||
69 | .EQU TSD_Y =20 |
||
277 | ddp | 70 | ; |
71 | ;-------------------------------------- |
||
72 | ; |
||
551 | ddp | 73 | TESTSD: GETMEM 21 |
277 | ddp | 74 | ; |
75 | T_SD00: CBR FLAGS1,0B00000011 |
||
76 | SBR FLAGS1,0B00000100 |
||
77 | |||
78 | CALL SCR_FADE |
||
79 | LDI XL,0 |
||
80 | LDI XH,1 |
||
81 | CALL SCR_SET_CURSOR |
||
82 | LDI DATA,$20 |
||
83 | LDI TEMP,$7F |
||
84 | LDI COUNT,53 |
||
85 | CALL SCR_FILL_CHAR_ATTR |
||
86 | |||
87 | LDIZ WIND_TSD1*2 |
||
88 | CALL WINDOW |
||
89 | LDIZ MLMSG_TSD_MENU*2 |
||
90 | CALL SCR_PRINTMLSTR |
||
91 | |||
92 | T_SD02: STH TSD_Y,NULL |
||
93 | T_SD04: RCALL T_SD_PUTCURSOR |
||
94 | T_SD01: RCALL T_SD_SENSORS |
||
95 | CALL INKEY |
||
96 | BREQ T_SD01 |
||
97 | CPI DATA,KEY_UP |
||
98 | BREQ T_SD02 |
||
99 | CPI DATA,KEY_DOWN |
||
100 | BREQ T_SD03 |
||
101 | CPI DATA,KEY_ENTER |
||
102 | BREQ T_SD0E |
||
103 | SBRC TEMP,PS2K_BIT_EXTKEY |
||
104 | RJMP T_SD01 |
||
105 | CPI DATA,KEY_ESC |
||
106 | BRNE T_SD01 |
||
107 | CBR FLAGS1,0B00001000 |
||
551 | ddp | 108 | FREEMEM 21 |
277 | ddp | 109 | RET |
110 | ; |
||
111 | T_SD03: STH TSD_Y,ONE |
||
112 | RJMP T_SD04 |
||
113 | ; |
||
114 | T_SD0E: LDH DATA,TSD_Y |
||
115 | TST DATA |
||
116 | BREQ T_SD10 |
||
117 | LDI DATA,0B00001000 |
||
118 | EOR FLAGS1,DATA |
||
119 | RJMP T_SD04 |
||
120 | ; - - - - - - - - - - - - - - - - - - - |
||
121 | T_SD10: |
||
122 | CBR FLAGS1,0B00000101 |
||
123 | SBR FLAGS1,0B00000010 |
||
124 | RCALL T_SD_CRLF_DC |
||
125 | RCALL T_SD_CRLF_DC |
||
290 | ddp | 126 | LDIZ MSG_TITLE1*2 |
127 | CALL PRINTSTRZ |
||
277 | ddp | 128 | CALL PRINT_SHORT_VERS |
129 | RCALL T_SD_CRLF_DC |
||
130 | SBR FLAGS1,0B00000110 |
||
131 | RCALL T_SD_SENSORS |
||
132 | |||
133 | LDIZ WIND_TSD2*2 |
||
134 | CALL WINDOW |
||
135 | LDI XL,1 |
||
136 | LDI XH,3 |
||
137 | STH TSD_Y,XH |
||
138 | CALL SCR_SET_CURSOR |
||
139 | RCALL T_SD_CRLF_DC |
||
140 | LDIZ MLMSG_TSD_INIT*2 |
||
141 | CALL PRINTMLSTR |
||
142 | |||
143 | STS SD_CARDTYPE,NULL |
||
144 | STH TSD_CARDTYPE,NULL |
||
145 | |||
146 | RCALL T_SD_CSUP |
||
147 | LDI TEMP,SD_CS1 |
||
148 | SER DATA |
||
149 | CALL FPGA_REG |
||
150 | LDI TEMP,32 |
||
151 | CALL SD_RD_DUMMY |
||
152 | |||
153 | RCALL T_SD_CSDOWN |
||
154 | LDI TEMP,SD_CS0 |
||
155 | SER DATA |
||
156 | CALL FPGA_REG |
||
157 | SER COUNT |
||
158 | T_SD11: |
||
159 | LDI DATA,0 |
||
160 | RCALL T_SD_CMDXX |
||
161 | LDIZ CMD00*2 ;CMD0 (go_idle_state) |
||
162 | CALL SD_WR_PGM_6 |
||
163 | DEC COUNT |
||
164 | BRNE T_SD12 |
||
165 | |||
166 | RCALL T_SD_SCR_CRLF_DC |
||
167 | LDIZ MLMSG_TSD_NOCARD*2 |
||
168 | CALL PRINTMLSTR |
||
169 | RJMP T_SD90 |
||
170 | T_SD12: |
||
171 | CPI DATA,$01 |
||
172 | BRNE T_SD11 |
||
173 | |||
174 | LDI DATA,8 |
||
175 | RCALL T_SD_CMDXX |
||
176 | LDIZ CMD08*2 ;CMD8 (send_if_cond) |
||
177 | CALL SD_WR_PGM_6 |
||
178 | LDI WL,$00 |
||
179 | SBRS DATA,2 |
||
180 | LDI WL,$40 |
||
181 | STH TSD_ARG_ACMD41,WL |
||
182 | LDI TEMP,4 |
||
183 | CALL SD_RD_DUMMY |
||
184 | |||
185 | T_SD13: RCALL T_SD_ACMD41 |
||
186 | LDI DATA,$40|55 ;CMD55 |
||
187 | CALL SD_WR_CMD |
||
188 | LDI TEMP,2 |
||
189 | CALL SD_RD_DUMMY |
||
190 | LDI DATA,$40|41 ;ACMD41 (sd_send_op_cond) |
||
191 | CALL SD_EXCHANGE |
||
192 | LDH DATA,TSD_ARG_ACMD41 |
||
193 | CALL SD_EXCHANGE |
||
194 | CALL SD_WR_CMX4 |
||
195 | TST DATA |
||
196 | BREQ T_SD15 |
||
197 | SBRS DATA,2 |
||
198 | RJMP T_SD13 |
||
199 | |||
200 | T_SD14: LDI DATA,1 |
||
201 | RCALL T_SD_CMDXX |
||
202 | LDI DATA,$40|1 ;CMD1 (send_op_cond) |
||
203 | CALL SD_WR_CMD |
||
204 | TST DATA |
||
205 | BRNE T_SD14 |
||
206 | RCALL T_SD_CRC_OFF |
||
207 | RCALL T_SD_SETBLKLEN |
||
208 | LDI TEMP,0B00010000 |
||
209 | LDIZ MSG_TSD_MMC*2 |
||
210 | RJMP T_SD18 |
||
211 | |||
212 | T_SD15: RCALL T_SD_CRC_OFF |
||
213 | RCALL T_SD_SETBLKLEN |
||
214 | |||
215 | LDI TEMP,0B00000001 |
||
216 | LDIZ MSG_TSD_SDV1*2 |
||
217 | LDH DATA,TSD_ARG_ACMD41 |
||
218 | TST DATA |
||
219 | BREQ T_SD18 |
||
220 | LDI DATA,58 |
||
221 | RCALL T_SD_CMDXX |
||
222 | LDI DATA,$40|58 ;CMD58 (read_ocr) |
||
223 | CALL SD_WR_CMD |
||
224 | MOVW XL,YL |
||
225 | LDI COUNT,6 |
||
226 | T_SD16: CALL SD_RECEIVE |
||
227 | ST X+,DATA |
||
228 | DEC COUNT |
||
229 | BRNE T_SD16 |
||
230 | |||
231 | LDI TEMP,0B00000010 |
||
232 | LDIZ MSG_TSD_SDSC*2 |
||
233 | LDH DATA,0 |
||
234 | SBRS DATA,6 |
||
235 | RJMP T_SD18 |
||
236 | LDI TEMP,0B00000110 |
||
237 | LDIZ MSG_TSD_SDHC*2 |
||
238 | |||
239 | T_SD18: STS SD_CARDTYPE,TEMP |
||
240 | STH TSD_CARDTYPE,TEMP |
||
241 | PUSHZ |
||
242 | RCALL T_SD_SCR_CRLF_DC |
||
243 | LDIZ MLMSG_TSD_FOUNDCARD*2 |
||
244 | CALL PRINTMLSTR |
||
245 | POPZ |
||
246 | CALL PRINTSTRZ |
||
247 | |||
248 | LDH TEMP,TSD_CARDTYPE |
||
249 | SBRS TEMP,1 |
||
250 | RJMP T_SD20 |
||
251 | RCALL T_SD_SCR_CRLF_DC |
||
252 | LDIZ MSG_TSD_OCR*2 |
||
253 | CALL PRINTSTRZ |
||
254 | MOVW XL,YL |
||
255 | LDI COUNT,4 |
||
256 | T_SD19: LD DATA,X+ |
||
257 | CALL HEXBYTE_FOR_DUMP |
||
258 | DEC COUNT |
||
259 | BRNE T_SD19 |
||
260 | ; |
||
261 | T_SD20: LDI TEMP,SD_CS0 |
||
262 | SER DATA |
||
263 | CALL FPGA_REG |
||
264 | LDI DATA,9 |
||
265 | RCALL T_SD_CMDXX |
||
266 | LDI DATA,$40|9 ;CMD9 (send_csd) |
||
267 | CALL SD_WR_CMD |
||
268 | TST DATA |
||
269 | BRNE T_SD30 |
||
270 | CALL SD_WAIT_NOTFF |
||
271 | CPI DATA,$FF |
||
272 | BREQ T_SD30 |
||
273 | MOVW XL,YL |
||
551 | ddp | 274 | LDI COUNT,18 |
277 | ddp | 275 | T_SD21: CALL SD_RECEIVE |
276 | ST X+,DATA |
||
277 | DEC COUNT |
||
278 | BRNE T_SD21 |
||
279 | |||
280 | RCALL T_SD_SCR_CRLF_DC |
||
281 | LDIZ MSG_TSD_CSD*2 |
||
282 | CALL PRINTSTRZ |
||
283 | MOVW XL,YL |
||
284 | LDI COUNT,15 |
||
285 | T_SD22: LD DATA,X+ |
||
286 | CALL HEXBYTE_FOR_DUMP |
||
287 | DEC COUNT |
||
288 | BRNE T_SD22 |
||
289 | |||
290 | T_SD30: LDI TEMP,SD_CS0 |
||
291 | SER DATA |
||
292 | CALL FPGA_REG |
||
293 | LDI DATA,10 |
||
294 | RCALL T_SD_CMDXX |
||
295 | LDI DATA,$40|10 ;CMD10 (send_cid) |
||
296 | CALL SD_WR_CMD |
||
297 | TST DATA |
||
298 | BRNE T_SD39 |
||
299 | CALL SD_WAIT_NOTFF |
||
300 | CPI DATA,$FF |
||
301 | BRNE T_SD31 |
||
302 | T_SD39: RJMP T_SD90 |
||
303 | T_SD31: MOVW XL,YL |
||
551 | ddp | 304 | LDI COUNT,18 |
277 | ddp | 305 | T_SD32: CALL SD_RECEIVE |
306 | ST X+,DATA |
||
307 | DEC COUNT |
||
308 | BRNE T_SD32 |
||
309 | |||
310 | RCALL T_SD_SCR_CRLF_DC |
||
311 | LDIZ MSG_TSD_CID0*2 |
||
312 | CALL PRINTSTRZ |
||
313 | MOVW XL,YL |
||
314 | LDI COUNT,15 |
||
315 | T_SD33: LD DATA,X+ |
||
316 | CALL HEXBYTE_FOR_DUMP |
||
317 | DEC COUNT |
||
318 | BRNE T_SD33 |
||
319 | |||
320 | RCALL T_SD_SCR_CRLF_DC |
||
321 | LDIZ MSG_TSD_CID1*2 |
||
322 | CALL PRINTSTRZ |
||
323 | LDH DATA,0 |
||
324 | CALL HEXBYTE |
||
325 | RCALL T_SD_SCR_CRLF_DC |
||
326 | LDIZ MSG_TSD_CID2*2 |
||
327 | CALL PRINTSTRZ |
||
328 | LDH BITS,TSD_CARDTYPE |
||
329 | LDH DATA,1 |
||
330 | SBRS BITS,4 |
||
331 | CALL PUTCHAR_FOR_DUMP |
||
332 | SBRC BITS,4 |
||
333 | CALL HEXBYTE |
||
334 | LDH DATA,2 |
||
335 | SBRS BITS,4 |
||
336 | CALL PUTCHAR_FOR_DUMP |
||
337 | SBRC BITS,4 |
||
338 | CALL HEXBYTE |
||
339 | RCALL T_SD_SCR_CRLF_DC |
||
340 | LDIZ MSG_TSD_CID3*2 |
||
341 | CALL PRINTSTRZ |
||
342 | MOVW XL,YL |
||
343 | ADIW XL,3 |
||
344 | LDI COUNT,5 |
||
345 | SBRC BITS,4 |
||
346 | LDI COUNT,6 |
||
347 | T_SD34: LD DATA,X+ |
||
348 | CALL PUTCHAR |
||
349 | DEC COUNT |
||
350 | BRNE T_SD34 |
||
351 | RCALL T_SD_SCR_CRLF_DC |
||
352 | LDIZ MSG_TSD_CID4*2 |
||
353 | CALL PRINTSTRZ |
||
354 | LDH DATA,8 |
||
355 | SBRC BITS,4 |
||
356 | LDH DATA,9 |
||
357 | SWAP DATA |
||
358 | CALL HEXHALF |
||
359 | LDI DATA,$2E ;"." |
||
360 | CALL PUTCHAR |
||
361 | LDH DATA,8 |
||
362 | SBRC BITS,4 |
||
363 | LDH DATA,9 |
||
364 | CALL HEXHALF |
||
365 | RCALL T_SD_SCR_CRLF_DC |
||
366 | LDIZ MSG_TSD_CID5*2 |
||
367 | CALL PRINTSTRZ |
||
368 | MOVW XL,YL |
||
369 | ADIW XL,9 |
||
370 | SBRC BITS,4 |
||
371 | ADIW XL,1 |
||
372 | LDI COUNT,4 |
||
373 | T_SD35: LD DATA,X+ |
||
374 | CALL HEXBYTE |
||
375 | DEC COUNT |
||
376 | BRNE T_SD35 |
||
377 | RCALL T_SD_SCR_CRLF_DC |
||
378 | LDIZ MSG_TSD_CID6*2 |
||
379 | CALL PRINTSTRZ |
||
380 | LDH DATA,14 |
||
381 | SBRC BITS,4 |
||
382 | SWAP DATA |
||
383 | ANDI DATA,$0F |
||
384 | CALL DECBYTE |
||
385 | LDIZ MSG_TSD_CID6B*2 |
||
386 | LDH DATA,14 |
||
387 | SBRC BITS,4 |
||
388 | RJMP T_SD36 |
||
389 | LDH TEMP,13 |
||
390 | ANDI DATA,$F0 |
||
391 | ANDI TEMP,$0F |
||
392 | OR DATA,TEMP |
||
393 | SWAP DATA |
||
394 | PUSH DATA |
||
395 | CALL PRINTSTRZ |
||
396 | POP DATA |
||
312 | ddp | 397 | CALL DECBYTE |
277 | ddp | 398 | RJMP T_SD38 |
399 | T_SD36: ANDI DATA,$0F |
||
400 | SUBI DATA,3 |
||
401 | BRCC T_SD37 |
||
402 | ADDI DATA,100 |
||
403 | LDIZ MSG_TSD_CID6C*2 |
||
404 | T_SD37: PUSH DATA |
||
405 | CALL PRINTSTRZ |
||
406 | POP DATA |
||
407 | CALL DECBYTE |
||
408 | T_SD38: |
||
409 | ; - - - - - - - - - - - - - - - - - - - |
||
410 | RCALL T_SD_SCR_CRLF_DC |
||
411 | LDIZ MLMSG_TSD_DETECT*2 |
||
412 | CALL PRINTMLSTR |
||
413 | |||
414 | IN TEMP,SPL |
||
415 | STS GLB_STACK+0,TEMP |
||
416 | IN TEMP,SPH |
||
417 | STS GLB_STACK+1,TEMP |
||
418 | STS GLB_Y+0,YL |
||
419 | STS GLB_Y+1,YH |
||
420 | LDIZ T_SD_ERRORHANDL |
||
421 | STSZ FAT_ERRHANDLER |
||
422 | LDI TEMP,SD_CS0 |
||
423 | SER DATA |
||
424 | CALL FPGA_REG |
||
425 | CALL WC_FAT |
||
426 | |||
427 | PUSHX |
||
428 | PUSHW |
||
429 | RCALL T_SD_SCR_CRLF_DC |
||
430 | LDIZ MLMSG_TSD_FOUNDFAT*2 |
||
431 | CALL PRINTMLSTR |
||
432 | LDS TEMP,FAT_CAL_FAT |
||
433 | LDI DATA,$12 |
||
434 | TST TEMP |
||
435 | BREQ T_SDF01 |
||
436 | LDI DATA,$16 |
||
437 | DEC TEMP |
||
438 | BREQ T_SDF01 |
||
439 | LDI DATA,$32 |
||
440 | T_SDF01:CALL HEXBYTE |
||
441 | POPW |
||
442 | POPX |
||
443 | ; - - - - - - - - - - - - - - - - - - - |
||
444 | ; 䠩 ४ਨ |
||
445 | LDIW 0 ; ⥫ 䠩 |
||
446 | CALL RDDIRSC |
||
447 | RJMP T_SD_FNDF_2 |
||
448 | T_SD_FNDF_1: |
||
449 | ADIW WL,1 ;ய⥫++ |
||
450 | ADIW ZL,$20 ;騩 ⥫ |
||
451 | CPI ZH,HIGH(BUF4FAT+512); |
||
452 | ;뫥 ᥪ? |
||
453 | BRNE T_SD_FNDF_2 ; |
||
454 | CALL RDDIRSC ;뢠 騩 |
||
455 | BRNE T_SD_FNDF_E ;稫 ᥪ ४ਨ |
||
456 | T_SD_FNDF_2: |
||
457 | LD TEMP,Z ; ᨬ |
||
458 | CPI TEMP,$E5 ;㤠? |
||
459 | BREQ T_SD_FNDF_1 |
||
460 | TST TEMP ;⮩ ⥫? ( ᯨ᪠) |
||
461 | BREQ T_SD_FNDF_E |
||
462 | LDD DATA,Z+$0B ;ਡ |
||
463 | ANDI DATA,0B11011000 |
||
464 | BRNE T_SD_FNDF_1 |
||
465 | PUSH ZL |
||
466 | MOVW XL,ZL |
||
467 | LDIZ T_SD_FILENAME*2 |
||
468 | T_SD_DALSHE: |
||
469 | LPM DATA,Z+ |
||
470 | TST DATA |
||
471 | BREQ T_SD_NASHEL |
||
472 | LD TEMP,X+ |
||
473 | CP DATA,TEMP |
||
474 | BREQ T_SD_DALSHE |
||
475 | MOV ZH,XH |
||
476 | POP ZL |
||
477 | RJMP T_SD_FNDF_1 |
||
478 | T_SD_NASHEL: |
||
479 | MOV ZH,XH |
||
480 | POP ZL |
||
481 | LDD WL,Z+$1C |
||
482 | LDD WH,Z+$1D |
||
483 | LDD XL,Z+$1E |
||
484 | LDD XH,Z+$1F |
||
485 | MOV DATA,WL |
||
486 | OR DATA,WH |
||
487 | OR DATA,XL |
||
488 | OR DATA,XH |
||
489 | BRNE T_SD_FNDF_9 ;⮩ 䠩 |
||
490 | T_SD_FNDF_E: |
||
491 | RJMP T_SD90 |
||
492 | T_SD_FILENAME: |
||
493 | .DB "TESTFILEBIN",0 |
||
494 | T_SD_FNDF_9: |
||
495 | LDI TMP2,LOW(511) |
||
496 | LDI TMP3,HIGH(511) |
||
497 | CALL HLDEPBC |
||
498 | STH TSD_BLS0,WL |
||
499 | STH TSD_BLS1,WH |
||
500 | CALL BCDE200 ;- ᥪ |
||
501 | SBIW WL,1 |
||
502 | SBC XL,NULL |
||
503 | SBC XH,NULL |
||
504 | LDS DATA,FAT_BYTSSEC |
||
505 | DEC DATA |
||
506 | AND DATA,WL |
||
507 | INC DATA |
||
508 | STS FAT_MPHWOST,DATA ;- ᥪ |
||
509 | LDS DATA,FAT_BYTSSEC |
||
510 | CALL BCDE_A |
||
511 | STSW FAT_KOL_CLS+0 |
||
512 | STSX FAT_KOL_CLS+2 |
||
513 | STS FAT_NUMSECK,NULL |
||
514 | LDD WL,Z+$1A |
||
515 | LDD WH,Z+$1B |
||
516 | LDD XL,Z+$14 |
||
517 | LDD XH,Z+$15 ; ࢮ 䠩 |
||
518 | STSW FAT_TFILCLS+0 |
||
519 | STSX FAT_TFILCLS+2 |
||
520 | ; - - - - - - - - - - - - - - - - - - - |
||
521 | RCALL T_SD_SCR_CRLF_DC |
||
522 | LDIZ MLMSG_TSD_READFILE*2 |
||
523 | CALL PRINTMLSTR |
||
524 | |||
525 | STS NEWFRAME,NULL |
||
526 | LDI DATA,0B00000010 |
||
527 | MOV INT6VECT,DATA |
||
528 | LDI TEMP,INT_CONTROL |
||
529 | CALL FPGA_REG |
||
530 | |||
531 | CALL CRC32_INIT |
||
532 | T_SD_RDFILE1: |
||
533 | CALL NEXTSEC |
||
534 | TST DATA |
||
535 | BREQ T_SD_RDFILE2 |
||
536 | LDIZ BUFSECT |
||
537 | LDIX 512 |
||
538 | CALL RAM_CRC32_UPDATE |
||
539 | LDS DATA,NEWFRAME |
||
540 | TST DATA |
||
541 | BREQ T_SD_RDFILE1 |
||
542 | STS NEWFRAME,NULL |
||
543 | LDI XL,30 |
||
544 | LDH XH,TSD_Y |
||
545 | STH TSD_Y,XH |
||
546 | CALL SCR_SET_CURSOR |
||
547 | PUSH FLAGS1 |
||
548 | CBR FLAGS1,0B00000011 |
||
549 | SBR FLAGS1,0B00000100 |
||
550 | LDS DATA,FAT_KOL_CLS+3 |
||
551 | CALL HEXBYTE |
||
552 | LDS DATA,FAT_KOL_CLS+2 |
||
553 | CALL HEXBYTE |
||
554 | LDS DATA,FAT_KOL_CLS+1 |
||
555 | CALL HEXBYTE |
||
556 | LDS DATA,FAT_KOL_CLS+0 |
||
557 | CALL HEXBYTE |
||
558 | POP FLAGS1 |
||
559 | RJMP T_SD_RDFILE1 |
||
560 | |||
561 | T_SD_RDFILE2: |
||
562 | LDIZ BUFSECT |
||
563 | LDH XL,TSD_BLS0 |
||
564 | LDH XH,TSD_BLS1 |
||
565 | ANDI XH,$01 |
||
566 | ADIW XL,1 |
||
567 | CALL RAM_CRC32_UPDATE |
||
568 | CALL CRC32_RELEASE |
||
569 | CLR INT6VECT |
||
570 | CLR DATA |
||
571 | LDI TEMP,INT_CONTROL |
||
572 | CALL FPGA_REG |
||
573 | LDI XL,30 |
||
574 | LDH XH,TSD_Y |
||
575 | STH TSD_Y,XH |
||
576 | CALL SCR_SET_CURSOR |
||
577 | LDI DATA,$20 |
||
578 | LDI COUNT,8 |
||
579 | CALL SCR_FILL_CHAR |
||
580 | RCALL T_SD_SCR_CRLF_DC |
||
581 | LDIZ MSG_TSD_CRC*2 |
||
582 | CALL PRINTSTRZ |
||
583 | LDH DATA,3 |
||
584 | CALL HEXBYTE |
||
585 | LDH DATA,2 |
||
586 | CALL HEXBYTE |
||
587 | LDH DATA,1 |
||
588 | CALL HEXBYTE |
||
589 | LDH DATA,0 |
||
590 | CALL HEXBYTE |
||
591 | |||
592 | RJMP T_SD90 |
||
593 | ; - - - - - - - - - - - - - - - - - - - |
||
594 | T_SD_ERRORHANDL: |
||
595 | CLI |
||
596 | LDS TEMP,GLB_STACK+0 |
||
597 | OUT SPL,TEMP |
||
598 | LDS TEMP,GLB_STACK+1 |
||
599 | OUT SPH,TEMP |
||
600 | LDS YL,GLB_Y+0 |
||
601 | LDS YH,GLB_Y+1 |
||
602 | SEI |
||
603 | PUSH DATA |
||
604 | RCALL T_SD_SCR_CRLF_DC |
||
605 | POP DATA |
||
606 | LDIZ MLMSG_FL_SDERROR1*2 |
||
607 | CPI DATA,1 |
||
608 | BREQ T_SD_ERRHNDL1 |
||
609 | LDIZ MLMSG_FL_SDERROR2*2 |
||
610 | CPI DATA,2 |
||
611 | BREQ T_SD_ERRHNDL1 |
||
612 | LDIZ MLMSG_FL_SDERROR3*2 |
||
613 | CPI DATA,3 |
||
614 | BREQ T_SD_ERRHNDL1 |
||
615 | LDIZ MLMSG_FL_SDERROR4*2 |
||
616 | CPI DATA,4 |
||
617 | BREQ T_SD_ERRHNDL1 |
||
618 | LDIZ MLMSG_FL_SDERRORX*2 |
||
619 | T_SD_ERRHNDL1: |
||
620 | CALL PRINTMLSTR |
||
621 | ; - - - - - - - - - - - - - - - - - - - |
||
622 | T_SD90: RCALL T_SD_SCR_CRLF_DC |
||
623 | LDIZ MLMSG_TSD_COMPLETE*2 |
||
624 | CALL PRINTMLSTR |
||
625 | CBR FLAGS1,0B00000011 |
||
626 | SBR FLAGS1,0B00000100 |
||
627 | T_SD99: RCALL T_SD_SENSORS |
||
628 | CALL INKEY |
||
629 | BREQ T_SD99 |
||
630 | RJMP T_SD00 |
||
631 | ; |
||
632 | ;-------------------------------------- |
||
633 | ; |
||
634 | T_SD_PUTCURSOR: |
||
635 | CLR COUNT |
||
636 | TSD_PC2:MOV XH,COUNT |
||
637 | ADDI XH,11 |
||
638 | LDI XL,11 |
||
639 | CALL SCR_SET_CURSOR |
||
640 | PUSH COUNT |
||
641 | LDH DATA,TSD_Y |
||
642 | LDI TEMP,$9F |
||
643 | CP COUNT,DATA |
||
644 | BRNE TSD_PC1 |
||
645 | LDI TEMP,$F0 |
||
646 | TSD_PC1:LDI COUNT,30 |
||
647 | CALL SCR_FILL_ATTR |
||
648 | POP COUNT |
||
649 | INC COUNT |
||
650 | CPI COUNT,2 |
||
651 | BRNE TSD_PC2 |
||
652 | |||
653 | LDI XL,13 |
||
654 | LDI XH,12 |
||
655 | CALL SCR_SET_CURSOR |
||
656 | LDI DATA,$20 ;" " |
||
657 | SBRC FLAGS1,3 |
||
658 | LDI DATA,$FB ;"" |
||
659 | CALL SCR_PUTCHAR |
||
660 | RET |
||
661 | ; |
||
662 | ;-------------------------------------- |
||
663 | ; |
||
664 | T_SD_SETBLKLEN: |
||
665 | LDI DATA,16 |
||
666 | RCALL T_SD_CMDXX |
||
667 | LDIZ CMD16*2 ;CMD16 (set_blocklen) |
||
668 | CALL SD_WR_PGM_6 |
||
669 | TST DATA |
||
670 | BRNE T_SD_SETBLKLEN |
||
671 | RET |
||
672 | ; |
||
673 | ;-------------------------------------- |
||
674 | ; |
||
675 | T_SD_CRC_OFF: |
||
676 | LDI DATA,59 |
||
677 | RCALL T_SD_CMDXX |
||
678 | LDI DATA,$40|59 ;CMD59 (crc_on_off) |
||
679 | CALL SD_WR_CMD |
||
680 | TST DATA |
||
681 | BRNE T_SD_CRC_OFF |
||
682 | RET |
||
683 | ; |
||
684 | ;-------------------------------------- |
||
685 | ; |
||
686 | T_SD_CMDXX: |
||
687 | SBRS FLAGS1,3 |
||
688 | RET |
||
689 | PUSH FLAGS1 |
||
690 | CBR FLAGS1,0B00000101 |
||
691 | SBR FLAGS1,0B00000010 |
||
692 | PUSH DATA |
||
693 | LDIZ MSG_TSD_CMD*2 |
||
694 | CALL PRINTSTRZ |
||
695 | POP DATA |
||
696 | CALL DECBYTE |
||
697 | POP FLAGS1 |
||
698 | RET |
||
699 | ; |
||
700 | ;-------------------------------------- |
||
701 | ; |
||
702 | T_SD_ACMD41: |
||
703 | SBRS FLAGS1,3 |
||
704 | RET |
||
705 | PUSH FLAGS1 |
||
706 | CBR FLAGS1,0B00000101 |
||
707 | SBR FLAGS1,0B00000010 |
||
708 | LDIZ MSG_TSD_ACMD41*2 |
||
709 | CALL PRINTSTRZ |
||
710 | POP FLAGS1 |
||
711 | RET |
||
712 | ; |
||
713 | ;-------------------------------------- |
||
714 | ; |
||
715 | T_SD_CSUP: |
||
716 | SBRS FLAGS1,3 |
||
717 | RET |
||
718 | PUSH FLAGS1 |
||
719 | CBR FLAGS1,0B00000101 |
||
720 | SBR FLAGS1,0B00000010 |
||
721 | LDIZ MSG_TSD_CSUP*2 |
||
722 | CALL PRINTSTRZ |
||
723 | POP FLAGS1 |
||
724 | RET |
||
725 | ; |
||
726 | ;-------------------------------------- |
||
727 | ; |
||
728 | T_SD_CSDOWN: |
||
729 | SBRS FLAGS1,3 |
||
730 | RET |
||
731 | PUSH FLAGS1 |
||
732 | CBR FLAGS1,0B00000101 |
||
733 | SBR FLAGS1,0B00000010 |
||
734 | LDIZ MSG_TSD_CSDOWN*2 |
||
735 | CALL PRINTSTRZ |
||
736 | POP FLAGS1 |
||
737 | RET |
||
738 | ; |
||
739 | ;-------------------------------------- |
||
740 | ; |
||
741 | T_SD_CRLF_DC: |
||
742 | RCALL UART_CRLF |
||
743 | SBRS FLAGS1,3 |
||
744 | RET |
||
745 | LDI DATA,$3B ;";" |
||
746 | RJMP UART_PUTCHAR |
||
747 | ; |
||
748 | ;-------------------------------------- |
||
749 | ; |
||
750 | T_SD_SCR_CRLF_DC: |
||
751 | LDI XL,1 |
||
752 | LDH XH,TSD_Y |
||
753 | INC XH |
||
754 | STH TSD_Y,XH |
||
755 | CALL SCR_SET_CURSOR |
||
756 | RCALL UART_CRLF |
||
757 | SBRS FLAGS1,3 |
||
758 | RET |
||
759 | LDI DATA,$3B ;";" |
||
760 | RJMP UART_PUTCHAR |
||
761 | ; |
||
762 | ;-------------------------------------- |
||
763 | ; |
||
764 | T_SD_SENSORS: |
||
765 | LDI XL,0 |
||
766 | LDI XH,1 |
||
767 | CALL SCR_SET_CURSOR |
||
768 | LDI TEMP,$7F |
||
769 | CALL SCR_SET_ATTR |
||
770 | LDIZ MLMSG_SENSORS*2 |
||
771 | CALL PRINTMLSTR |
||
772 | LDI TEMP,$7A |
||
773 | LDIZ MLMSG_S_NOCARD*2 |
||
774 | SBIC PINB,5 |
||
775 | RJMP T_SDSENS1 |
||
776 | LDI TEMP,$7C |
||
777 | LDIZ MLMSG_S_INSERTED*2 |
||
778 | T_SDSENS1: |
||
779 | CALL SCR_SET_ATTR |
||
780 | CALL PRINTMLSTR |
||
781 | LDI TEMP,$7A |
||
782 | LDIZ MLMSG_S_READONLY*2 |
||
783 | SBIC PINB,4 |
||
784 | RJMP T_SDSENS2 |
||
785 | LDI TEMP,$7C |
||
786 | LDIZ MLMSG_S_WRITEEN*2 |
||
787 | T_SDSENS2: |
||
788 | CALL SCR_SET_ATTR |
||
789 | CALL PRINTMLSTR |
||
790 | RET |
||
791 | ; |
||
792 | ;-------------------------------------- |
||
793 | ; |