📄 yc_play.lst
字号:
323 0122 1092 0000 sts WorkFlag+2,__zero_reg__
324 0126 27C0 rjmp .L15
325 .L37:
327 .LM38:
328 0128 8F2D mov r24,r15
329 012a 9927 clr r25
330 012c 0097 sbiw r24,0
331 012e D1F0 breq .L53
332 0130 EC01 movw r28,r24
333 .L41:
335 .LM39:
336 0132 1092 0000 sts (wCurRedAsh)+1,__zero_reg__
337 0136 1092 0000 sts wCurRedAsh,__zero_reg__
339 .LM40:
340 013a 1093 0000 sts (wCurGreAsh)+1,r17
341 013e 0093 0000 sts wCurGreAsh,r16
343 .LM41:
344 0142 8091 0000 lds r24,WASHVAL
345 0146 9091 0000 lds r25,(WASHVAL)+1
346 014a 801B sub r24,r16
347 014c 910B sbc r25,r17
348 014e 9093 0000 sts (wCurBluAsh)+1,r25
349 0152 8093 0000 sts wCurBluAsh,r24
351 .LM42:
352 0156 AC01 movw r20,r24
353 0158 B801 movw r22,r16
354 015a 80E0 ldi r24,lo8(0)
355 015c 90E0 ldi r25,hi8(0)
356 015e 50DF rcall PlayStaticAsh
358 .LM43:
359 0160 2197 sbiw r28,1
360 0162 39F7 brne .L41
361 .L53:
363 .LM44:
364 0164 0F5F subi r16,lo8(-(1))
365 0166 1F4F sbci r17,hi8(-(1))
366 0168 8091 0000 lds r24,WASHVAL
367 016c 9091 0000 lds r25,(WASHVAL)+1
368 0170 0817 cp r16,r24
369 0172 1907 cpc r17,r25
370 0174 90F2 brlo .L42
371 .L15:
372 /* epilogue: frame size=0 */
373 0176 DF91 pop r29
374 0178 CF91 pop r28
375 017a 1F91 pop r17
376 017c 0F91 pop r16
377 017e FF90 pop r15
378 0180 0895 ret
379 /* epilogue end (size=6) */
380 /* function Play_Gradual size 165 (154) */
386 .Lscope1:
388 .global SaveWorkState
390 SaveWorkState:
107:YC_Play.c **** }
108:YC_Play.c **** }
109:YC_Play.c ****
110:YC_Play.c **** /*=====================================================================
111:YC_Play.c **** 【功 能】: 遥控按键处理
112:YC_Play.c **** 【名 称】: KeyYc()
113:YC_Play.c **** 【日 期】: 2006年8月30日
114:YC_Play.c **** =====================================================================*/
115:YC_Play.c **** void KeyYc(BYTE bKeyVal)
116:YC_Play.c **** {
117:YC_Play.c **** //wCurRedAshVal=wCurRedAsh;wCurGreAshVal=wCurGreAsh; wCurBluAshVal=wCurBluAsh;
118:YC_Play.c **** if(bKeyVal == ONOFF_KEYA)
119:YC_Play.c **** {WorkFlag.bColseWork = !WorkFlag.bColseWork; WorkFlag.bAshExit = 1;}
120:YC_Play.c **** else
121:YC_Play.c **** {
122:YC_Play.c **** if(WorkFlag.bColseWork == 0)
123:YC_Play.c **** {
124:YC_Play.c **** switch(bKeyVal)
125:YC_Play.c **** {
126:YC_Play.c **** case PLAYASH_KEYB: bCurPlayIdx = 0x55;break;
127:YC_Play.c **** case SAVE_KEYC:
128:YC_Play.c **** if(WorkFlag.bPlayAshOld == 1)
129:YC_Play.c **** {
130:YC_Play.c **** WorkFlag.bAshExit = 1; WorkFlag.bSaveKeyC = 1;WorkFlag.bPlayAshOld = 0;
131:YC_Play.c **** wCurRedAshVal=wCurRedAsh;wCurGreAshVal=wCurGreAsh; wCurBluAshVal=wCurBluAsh;
132:YC_Play.c **** }break;
133:YC_Play.c **** case LOAD_KEYD:
134:YC_Play.c **** {
135:YC_Play.c **** bCurPlayIdx++;
136:YC_Play.c **** if(bCurPlayIdx == 5)bCurPlayIdx = 0;
137:YC_Play.c **** }break;
138:YC_Play.c **** default: break;
139:YC_Play.c **** }
140:YC_Play.c **** }
141:YC_Play.c **** WorkFlag.bKeyUpt = 1;
142:YC_Play.c **** }
143:YC_Play.c **** SaveWorkState();
144:YC_Play.c **** }
145:YC_Play.c ****
146:YC_Play.c **** /*=====================================================================
147:YC_Play.c **** 【功 能】: 保存工作状态
148:YC_Play.c **** 【名 称】: SaveWorkState()
149:YC_Play.c **** 【日 期】: 2006年8月30日
150:YC_Play.c **** =====================================================================*/
151:YC_Play.c **** void SaveWorkState(void)
152:YC_Play.c **** {
392 .LM45:
393 /* prologue: frame size=0 */
394 0182 CF92 push r12
395 0184 DF92 push r13
396 0186 EF92 push r14
397 0188 FF92 push r15
398 018a 0F93 push r16
399 018c 1F93 push r17
400 018e CF93 push r28
401 /* prologue end (size=7) */
402 .L58:
153:YC_Play.c **** eeprom_busy_wait();
404 .LM46:
405 0190 E199 sbic 60-0x20,1
406 0192 FECF rjmp .L58
154:YC_Play.c **** eeprom_write_byte (&bLastPlayIdx, bCurPlayIdx);
408 .LM47:
409 0194 6091 0000 lds r22,bCurPlayIdx
410 0198 80E0 ldi r24,lo8(bLastPlayIdx)
411 019a 90E0 ldi r25,hi8(bLastPlayIdx)
412 019c 00D0 rcall eeprom_write_byte
155:YC_Play.c ****
156:YC_Play.c **** if(WorkFlag.bSaveKeyC == 1)
414 .LM48:
415 019e 8091 0000 lds r24,WorkFlag+3
416 01a2 8130 cpi r24,lo8(1)
417 01a4 09F0 breq .+2
418 01a6 65C0 rjmp .L57
419 .LBB2:
157:YC_Play.c **** {
158:YC_Play.c **** BYTE bi;
159:YC_Play.c **** WORD wAshval_Red, wAshval_Gre,wAshval_Blu;
160:YC_Play.c **** WorkFlag.bSaveKeyC = 0;
421 .LM49:
422 01a8 1092 0000 sts WorkFlag+3,__zero_reg__
161:YC_Play.c **** bCurPlayIdx = 0;
424 .LM50:
425 01ac 1092 0000 sts bCurPlayIdx,__zero_reg__
426 .L62:
162:YC_Play.c **** eeprom_busy_wait();
428 .LM51:
429 01b0 E199 sbic 60-0x20,1
430 01b2 FECF rjmp .L62
163:YC_Play.c **** eeprom_write_byte (&bLastPlayIdx, bCurPlayIdx);
432 .LM52:
433 01b4 6091 0000 lds r22,bCurPlayIdx
434 01b8 80E0 ldi r24,lo8(bLastPlayIdx)
435 01ba 90E0 ldi r25,hi8(bLastPlayIdx)
436 01bc 00D0 rcall eeprom_write_byte
164:YC_Play.c **** for(bi=4; bi>0; bi--)
438 .LM53:
439 01be C4E0 ldi r28,lo8(4)
440 .L100:
165:YC_Play.c **** {
166:YC_Play.c **** eeprom_busy_wait();
442 .LM54:
443 01c0 E199 sbic 60-0x20,1
444 01c2 FECF rjmp .L100
167:YC_Play.c **** wAshval_Red = eeprom_read_word(&bColorAsh[bi-1][0]);
446 .LM55:
447 01c4 86E0 ldi r24,lo8(6)
448 01c6 C89F mul r28,r24
449 01c8 C001 movw r24,r0
450 01ca 1124 clr r1
451 01cc 8050 subi r24,lo8(-(bColorAsh-6))
452 01ce 9040 sbci r25,hi8(-(bColorAsh-6))
453 01d0 00D0 rcall eeprom_read_word
454 01d2 8C01 movw r16,r24
455 .L71:
168:YC_Play.c **** eeprom_busy_wait();
457 .LM56:
458 01d4 E199 sbic 60-0x20,1
459 01d6 FECF rjmp .L71
169:YC_Play.c **** wAshval_Gre = eeprom_read_word(&bColorAsh[bi-1][1]);
461 .LM57:
462 01d8 86E0 ldi r24,lo8(6)
463 01da C89F mul r28,r24
464 01dc C001 movw r24,r0
465 01de 1124 clr r1
466 01e0 8050 subi r24,lo8(-(bColorAsh-4))
467 01e2 9040 sbci r25,hi8(-(bColorAsh-4))
468 01e4 00D0 rcall eeprom_read_word
469 01e6 7C01 movw r14,r24
470 .L74:
170:YC_Play.c **** eeprom_busy_wait();
472 .LM58:
473 01e8 E199 sbic 60-0x20,1
474 01ea FECF rjmp .L74
171:YC_Play.c **** wAshval_Blu = eeprom_read_word(&bColorAsh[bi-1][2]);
476 .LM59:
477 01ec 86E0 ldi r24,lo8(6)
478 01ee C89F mul r28,r24
479 01f0 C001 movw r24,r0
480 01f2 1124 clr r1
481 01f4 8050 subi r24,lo8(-(bColorAsh-2))
482 01f6 9040 sbci r25,hi8(-(bColorAsh-2))
483 01f8 00D0 rcall eeprom_read_word
484 01fa 6C01 movw r12,r24
485 .L77:
172:YC_Play.c **** eeprom_busy_wait();
487 .LM60:
488 01fc E199 sbic 60-0x20,1
489 01fe FECF rjmp .L77
173:YC_Play.c **** eeprom_write_word (&bColorAsh[bi][0], wAshval_Red);
491 .LM61:
492 0200 86E0 ldi r24,lo8(6)
493 0202 C89F mul r28,r24
494 0204 C001 movw r24,r0
495 0206 1124 clr r1
496 0208 B801 movw r22,r16
497 020a 8050 subi r24,lo8(-(bColorAsh))
498 020c 9040 sbci r25,hi8(-(bColorAsh))
499 020e 00D0 rcall eeprom_write_word
500 .L80:
174:YC_Play.c **** eeprom_busy_wait();
502 .LM62:
503 0210 E199 sbic 60-0x20,1
504 0212 FECF rjmp .L80
175:YC_Play.c **** eeprom_write_word (&bColorAsh[bi][1], wAshval_Gre);
506 .LM63:
507 0214 86E0 ldi r24,lo8(6)
508 0216 C89F mul r28,r24
509 0218 C001 movw r24,r0
510 021a 1124 clr r1
511 021c B701 movw r22,r14
512 021e 8050 subi r24,lo8(-(bColorAsh+2))
513 0220 9040 sbci r25,hi8(-(bColorAsh+2))
514 0222 00D0 rcall eeprom_write_word
515 .L83:
176:YC_Play.c **** eeprom_busy_wait();
517 .LM64:
518 0224 E199 sbic 60-0x20,1
519 0226 FECF rjmp .L83
177:YC_Play.c **** eeprom_write_word (&bColorAsh[bi][2], wAshval_Blu);
521 .LM65:
522 0228 86E0 ldi r24,lo8(6)
523 022a C89F mul r28,r24
524 022c C001 movw r24,r0
525 022e 1124 clr r1
526 0230 B601 movw r22,r12
527 0232 8050 subi r24,lo8(-(bColorAsh+4))
528 0234 9040 sbci r25,hi8(-(bColorAsh+4))
529 0236 00D0 rcall eeprom_write_word
531 .LM66:
532 0238 C150 subi r28,lo8(-(-1))
533 023a 11F6 brne .L100
534 .L87:
178:YC_Play.c **** }
179:YC_Play.c **** eeprom_busy_wait();
536 .LM67:
537 023c E199 sbic 60-0x20,1
538 023e FECF rjmp .L87
180:YC_Play.c **** eeprom_write_word (&bColorAsh[0][0], wCurRedAshVal);
540 .LM68:
541 0240 6091 0000 lds r22,wCurRedAshVal
542 0244 7091 0000 lds r23,(wCurRedAshVal)+1
543 0248 80E0 ldi r24,lo8(bColorAsh)
544 024a 90E0 ldi r25,hi8(bColorAsh)
545 024c 00D0 rcall eeprom_write_word
546 .L90:
181:YC_Play.c **** eeprom_busy_wait();
548 .LM69:
549 024e E199 sbic 60-0x20,1
550 0250 FECF rjmp .L90
182:YC_Play.c **** eeprom_write_word (&bColorAsh[0][1], wCurGreAshVal);
552 .LM70:
553 0252 6091 0000 lds r22,wCurGreAshVal
554 0256 7091 0000 lds r23,(wCurGreAshVal)+1
555 025a 80E0 ldi r24,lo8(bColorAsh+2)
556 025c 90E0 ldi r25,hi8(bColorAsh+2)
557 025e 00D0 rcall eeprom_write_word
558 .L93:
183:YC_Play.c **** eeprom_busy_wait();
560 .LM71:
561 0260 E199 sbic 60-0x20,1
562 0262 FECF rjmp .L93
184:YC_Play.c **** eeprom_write_word (&bColorAsh[0][2], wCurBluAshVal);
564 .LM72:
565 0264 6091 0000 lds r22,wCurBluAshVal
566 0268 7091 0000 lds r23,(wCurBluAshVal)+1
567 026c 80E0 ldi r24,lo8(bColorAsh+4)
568 026e 90E0 ldi r25,hi8(bColorAsh+4)
569 0270 00D0 rcall eeprom_write_word
570 .L57:
571 .LBE2:
572 /* epilogue: frame size=0 */
573 0272 CF91 pop r28
574 0274 1F91 pop r17
575 0276 0F91 pop r16
576 0278 FF90 pop r15
577 027a EF90 pop r14
578 027c DF90 pop r13
579 027e CF90 pop r12
580 0280 0895 ret
581 /* epilogue end (size=8) */
582 /* function SaveWorkState size 129 (114) */
590 .Lscope2:
593 .global KeyYc
595 KeyYc:
597 .LM73:
598 /* prologue: frame size=0 */
599 /* prologue end (size=0) */
600 0282 2091 0000 lds r18,WorkFlag
602 .LM74:
603 0286 8130 cpi r24,lo8(1)
604 0288 49F4 brne .L102
606 .LM75:
607 028a 90E0 ldi r25,lo8(0)
608 028c 2223 tst r18
609 028e 09F4 brne .L103
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -