📄 12ul_play.lst
字号:
96:12ul_Play.c **** }
97:12ul_Play.c **** }
98:12ul_Play.c **** }
99:12ul_Play.c **** Clr_Stb();
411 .LM29:
412 00c2 9198 cbi 50-0x20,1
100:12ul_Play.c **** AvrXDelay(&delay, bMoveSpeed);
414 .LM30:
415 00c4 B501 movw r22,r10
416 00c6 80E0 ldi r24,lo8(delay)
417 00c8 90E0 ldi r25,hi8(delay)
418 00ca 00D0 rcall AvrXDelay
420 .LM31:
421 00cc 0F5F subi r16,lo8(-(1))
422 00ce 1F4F sbci r17,hi8(-(1))
423 00d0 0894 sec
424 00d2 E108 sbc r14,__zero_reg__
425 00d4 F108 sbc r15,__zero_reg__
426 00d6 0C30 cpi r16,12
427 00d8 1105 cpc r17,__zero_reg__
428 00da E8F2 brlo .L37
429 /* epilogue: frame size=0 */
430 00dc DF91 pop r29
431 00de CF91 pop r28
432 00e0 1F91 pop r17
433 00e2 0F91 pop r16
434 00e4 FF90 pop r15
435 00e6 EF90 pop r14
436 00e8 DF90 pop r13
437 00ea BF90 pop r11
438 00ec AF90 pop r10
439 00ee 0895 ret
440 /* epilogue end (size=10) */
441 /* function SetCloseColor size 61 (42) */
447 .Lscope3:
451 .global SetOpenColor
453 SetOpenColor:
101:12ul_Play.c **** }
102:12ul_Play.c **** }
103:12ul_Play.c **** //-----------------------------------------------------------------
104:12ul_Play.c **** void SetOpenColor( BYTE bMoveColor, WORD bMoveSpeed)
105:12ul_Play.c **** {
455 .LM32:
456 /* prologue: frame size=0 */
457 00f0 AF92 push r10
458 00f2 BF92 push r11
459 00f4 DF92 push r13
460 00f6 EF92 push r14
461 00f8 FF92 push r15
462 00fa 0F93 push r16
463 00fc 1F93 push r17
464 00fe CF93 push r28
465 0100 DF93 push r29
466 /* prologue end (size=9) */
467 0102 D82E mov r13,r24
468 0104 5B01 movw r10,r22
106:12ul_Play.c **** WORD bi, loop;
107:12ul_Play.c ****
108:12ul_Play.c **** for(loop=0; loop < (BLAMPS*BXDOTS)/2; loop++)
470 .LM33:
471 0106 00E0 ldi r16,lo8(0)
472 0108 10E0 ldi r17,hi8(0)
473 010a 4CE0 ldi r20,lo8(12)
474 010c E42E mov r14,r20
475 010e F12C mov r15,__zero_reg__
476 .L55:
109:12ul_Play.c **** {
110:12ul_Play.c **** Set_Stb();
478 .LM34:
479 0110 919A sbi 50-0x20,1
111:12ul_Play.c **** for(bi=0; bi < (BLAMPS*BXDOTS); bi++)
481 .LM35:
482 0112 C0E0 ldi r28,lo8(0)
483 0114 D0E0 ldi r29,hi8(0)
484 .L54:
112:12ul_Play.c **** {
113:12ul_Play.c **** if((bi <= ((BLAMPS*BXDOTS)/2+loop)) && (bi >= ((BLAMPS*BXDOTS)/2-loop)))
486 .LM36:
487 0116 C801 movw r24,r16
488 0118 0C96 adiw r24,12
489 011a 8C17 cp r24,r28
490 011c 9D07 cpc r25,r29
491 011e 28F0 brlo .L50
492 0120 CE15 cp r28,r14
493 0122 DF05 cpc r29,r15
494 0124 10F0 brlo .L50
114:12ul_Play.c **** {
115:12ul_Play.c **** SendOneDotColorData(bMoveColor);
496 .LM37:
497 0126 8D2D mov r24,r13
498 0128 06C0 rjmp .L60
499 .L50:
116:12ul_Play.c **** }
117:12ul_Play.c **** else
118:12ul_Play.c **** {
119:12ul_Play.c **** if(bMoveColor == RED)
501 .LM38:
502 012a DD20 tst r13
503 012c 11F4 brne .L52
120:12ul_Play.c **** {
121:12ul_Play.c **** SendOneDotColorData(YELLOW);
505 .LM39:
506 012e 84E0 ldi r24,lo8(4)
507 0130 02C0 rjmp .L60
508 .L52:
122:12ul_Play.c **** }
123:12ul_Play.c **** else
124:12ul_Play.c **** {
125:12ul_Play.c **** SendOneDotColorData(bMoveColor-1);
510 .LM40:
511 0132 8D2D mov r24,r13
512 0134 8150 subi r24,lo8(-(-1))
513 .L60:
514 0136 64DF rcall SendOneDotColorData
516 .LM41:
517 0138 2196 adiw r28,1
518 013a C831 cpi r28,24
519 013c D105 cpc r29,__zero_reg__
520 013e 58F3 brlo .L54
126:12ul_Play.c **** }
127:12ul_Play.c **** }
128:12ul_Play.c **** }
129:12ul_Play.c **** Clr_Stb();
522 .LM42:
523 0140 9198 cbi 50-0x20,1
130:12ul_Play.c **** AvrXDelay(&delay, bMoveSpeed);
525 .LM43:
526 0142 B501 movw r22,r10
527 0144 80E0 ldi r24,lo8(delay)
528 0146 90E0 ldi r25,hi8(delay)
529 0148 00D0 rcall AvrXDelay
531 .LM44:
532 014a 0F5F subi r16,lo8(-(1))
533 014c 1F4F sbci r17,hi8(-(1))
534 014e 0894 sec
535 0150 E108 sbc r14,__zero_reg__
536 0152 F108 sbc r15,__zero_reg__
537 0154 0C30 cpi r16,12
538 0156 1105 cpc r17,__zero_reg__
539 0158 D8F2 brlo .L55
540 /* epilogue: frame size=0 */
541 015a DF91 pop r29
542 015c CF91 pop r28
543 015e 1F91 pop r17
544 0160 0F91 pop r16
545 0162 FF90 pop r15
546 0164 EF90 pop r14
547 0166 DF90 pop r13
548 0168 BF90 pop r11
549 016a AF90 pop r10
550 016c 0895 ret
551 /* epilogue end (size=10) */
552 /* function SetOpenColor size 63 (44) */
558 .Lscope4:
561 .global Play_CloseOpenMoveUpt
563 Play_CloseOpenMoveUpt:
565 .LM45:
566 /* prologue: frame size=0 */
567 016e 0F93 push r16
568 0170 1F93 push r17
569 0172 CF93 push r28
570 /* prologue end (size=3) */
571 0174 8C01 movw r16,r24
573 .LM46:
574 0176 84E0 ldi r24,lo8(4)
575 0178 5BDF rcall PlayAllOneColor
577 .LM47:
578 017a C0E0 ldi r28,lo8(0)
579 .L67:
581 .LM48:
582 017c C0FD sbrc r28,0
583 017e 04C0 rjmp .L65
585 .LM49:
586 0180 B801 movw r22,r16
587 0182 8C2F mov r24,r28
588 0184 78DF rcall SetCloseColor
589 0186 03C0 rjmp .L64
590 .L65:
592 .LM50:
593 0188 B801 movw r22,r16
594 018a 8C2F mov r24,r28
595 018c B1DF rcall SetOpenColor
596 .L64:
598 .LM51:
599 018e CF5F subi r28,lo8(-(1))
600 0190 C530 cpi r28,lo8(5)
601 0192 A0F3 brlo .L67
602 /* epilogue: frame size=0 */
603 0194 CF91 pop r28
604 0196 1F91 pop r17
605 0198 0F91 pop r16
606 019a 0895 ret
607 /* epilogue end (size=4) */
608 /* function Play_CloseOpenMoveUpt size 23 (16) */
613 .Lscope5:
619 .global SendOneDotAshColorData
621 SendOneDotAshColorData:
131:12ul_Play.c **** }
132:12ul_Play.c **** }
133:12ul_Play.c ****
134:12ul_Play.c **** /*================================================================
135:12ul_Play.c **** Function: Gradual about 16dots.
136:12ul_Play.c **** -----------------------------------------------------------------*/
137:12ul_Play.c **** void Play_Gradual(BYTE bGradSpeeds)
138:12ul_Play.c **** {
139:12ul_Play.c **** WORD wi, wj;
140:12ul_Play.c ****
141:12ul_Play.c **** for(wi = 1; wi <= BASHVAL; wi++)
142:12ul_Play.c **** {
143:12ul_Play.c **** for(wj = 0; wj < bGradSpeeds; wj++)
144:12ul_Play.c **** DisplayAsh(wi, BASHVAL - wi, 0);
145:12ul_Play.c **** }
146:12ul_Play.c ****
147:12ul_Play.c **** for(wi = 1; wi <= BASHVAL; wi++)
148:12ul_Play.c **** {
149:12ul_Play.c **** for(wj = 0; wj < bGradSpeeds; wj++)
150:12ul_Play.c **** DisplayAsh(BASHVAL - wi, 0, wi);
151:12ul_Play.c **** }
152:12ul_Play.c ****
153:12ul_Play.c **** for(wi = 1; wi <= BASHVAL; wi++)
154:12ul_Play.c **** {
155:12ul_Play.c **** for(wj = 0; wj < bGradSpeeds; wj++)
156:12ul_Play.c **** DisplayAsh(0, wi, BASHVAL - wi);
157:12ul_Play.c **** }
158:12ul_Play.c **** }
159:12ul_Play.c ****
160:12ul_Play.c **** //-----------------------------------------------------------------
161:12ul_Play.c **** void DisplayAsh(WORD wRedAsh, WORD wGreenAsh, WORD wBlueAsh)
162:12ul_Play.c **** {
163:12ul_Play.c **** WORD wi,wloop;
164:12ul_Play.c ****
165:12ul_Play.c **** for(wi = 0; wi < BASHVAL; wi++)
166:12ul_Play.c **** {
167:12ul_Play.c **** Set_Stb();
168:12ul_Play.c **** for(wloop = 0; wloop < 8; wloop++)
169:12ul_Play.c **** {
170:12ul_Play.c **** SendOneDotAshColorData(wi, wRedAsh, wGreenAsh, wBlueAsh);
171:12ul_Play.c **** }
172:12ul_Play.c **** Clr_Stb();
173:12ul_Play.c **** }
174:12ul_Play.c **** }
175:12ul_Play.c ****
176:12ul_Play.c **** /*==========================================================================
177:12ul_Play.c **** Function: play AshRGB.
178:12ul_Play.c **** ----------------------------------------------------------------------------*/
179:12ul_Play.c **** void Play_24ColorRunAsh_L_to_R(WORD wStayTimes)
180:12ul_Play.c **** {
181:12ul_Play.c **** WORD wi, wj, wk, wStartDot;
182:12ul_Play.c ****
183:12ul_Play.c **** for(wStartDot = 0; wStartDot < 24; wStartDot++)
184:12ul_Play.c **** {
185:12ul_Play.c **** for(wk = 0; wk < wStayTimes; wk++)
186:12ul_Play.c **** {
187:12ul_Play.c **** for(wj = 0; wj < BASH16; wj++)
188:12ul_Play.c **** {
189:12ul_Play.c **** Set_Stb();
190:12ul_Play.c **** for(wi = wStartDot; wi < (wStartDot + 24); wi++)
191:12ul_Play.c **** {
192:12ul_Play.c **** SendOneDotAshColorData(wj, bAshRgb[wi%24*3+0], bAshRgb[wi%24*3+1], bAshRgb[wi%24*3+2]);
193:12ul_Play.c **** }
194:12ul_Play.c **** Clr_Stb();
195:12ul_Play.c **** }
196:12ul_Play.c **** }
197:12ul_Play.c **** }
198:12ul_Play.c **** }
199:12ul_Play.c ****
200:12ul_Play.c **** //------------------------------------------------------------------------------
201:12ul_Play.c **** void SendOneDotAshColorData(WORD wi, WORD wRedAsh, WORD wGreAsh, WORD wBluAsh)
202:12ul_Play.c **** {
623 .LM52:
624 /* prologue: frame size=0 */
625 /* prologue end (size=0) */
626 019c FC01 movw r30,r24
203:12ul_Play.c **** Set_Clk();Set_Sdi();Clr_Clk();
628 .LM53:
629 019e 939A sbi 50-0x20,3
630 01a0 949A sbi 50-0x20,4
631 01a2 9398 cbi 50-0x20,3
204:12ul_Play.c ****
205:12ul_Play.c **** Set_Clk();
633 .LM54:
634 01a4 939A sbi 50-0x20,3
206:12ul_Play.c **** if(wi < wGreAsh)Clr_Sdi();
636 .LM55:
637 01a6 E417 cp r30,r20
638 01a8 F507 cpc r31,r21
639 01aa 10F4 brsh .L71
641 .LM56:
642 01ac 9498 cbi 50-0x20,4
643 01ae 01C0 rjmp .L72
644 .L71:
207:12ul_Play.c **** else Set_Sdi();
646 .LM57:
647 01b0 949A sbi 50-0x20,4
648 .L72:
208:12ul_Play.c **** Clr_Clk();
650 .LM58:
651 01b2 9398 cbi 50-0x20,3
209:12ul_Play.c ****
210:12ul_Play.c **** Set_Clk();
653 .LM59:
654 01b4 939A sbi 50-0x20,3
211:12ul_Play.c **** if(wi < wRedAsh)Clr_Sdi();
656 .LM60:
657 01b6 E617 cp r30,r22
658 01b8 F707 cpc r31,r23
659 01ba 10F4 brsh .L73
660 01bc 9498 cbi 50-0x20,4
661 01be 01C0 rjmp .L74
662 .L73:
212:12ul_Play.c **** else Set_Sdi();
664 .LM61:
665 01c0 949A sbi 50-0x20,4
666 .L74:
213:12ul_Play.c **** Clr_Clk();
668 .LM62:
669 01c2 9398 cbi 50-0x20,3
214:12ul_Play.c ****
215:12ul_Play.c **** Set_Clk();
671 .LM63:
672 01c4 939A sbi 50-0x20,3
216:12ul_Play.c **** if(wi < wBluAsh)Clr_Sdi();
674 .LM64:
675 01c6 E217 cp r30,r18
676 01c8 F307 cpc r31,r19
677 01ca 10F4 brsh .L75
678 01cc 9498 cbi 50-0x20,4
679 01ce 01C0 rjmp .L76
680 .L75:
217:12ul_Play.c **** else Set_Sdi();
682 .LM65:
683 01d0 949A sbi 50-0x20,4
684 .L76:
218:12ul_Play.c **** Clr_Clk();
686 .LM66:
687 01d2 9398 cbi 50-0x20,3
688 /* epilogue: frame size=0 */
689 01d4 0895 ret
690 /* epilogue end (size=1) */
691 /* function SendOneDotAshColorData size 29 (28) */
693 .Lscope6:
698 .global DisplayAsh
700 DisplayAsh:
702 .LM67:
703 /* prologue: frame size=0 */
704 01d6 AF92 push r10
705 01d8 BF92 push r11
706 01da CF92 push r12
707 01dc DF92 push r13
708 01de EF92 push r14
709 01e0 FF92 push r15
710 01e2 0F93 push r16
711 01e4 1F93 push r17
712 01e6 CF93 push r28
713 01e8 DF93 push r29
714 /* prologue end (size=10) */
715 01ea 5C01 movw r10,r24
716 01ec 6B01 movw r12,r22
717 01ee 7A01 movw r14,r20
719 .LM68:
720 01f0 00E0 ldi r16,lo8(0)
721 01f2 10E0 ldi r17,hi8(0)
722 .L85:
724 .LM69:
725 01f4 919A sbi 50-0x20,1
726 01f6 C7E0 ldi r28,lo8(7)
727 01f8 D0E0 ldi r29,hi8(7)
728 .L84:
730 .LM70:
731 01fa 9701 movw r18,r14
732 01fc A601 movw r20,r12
733 01fe B501 movw r22,r10
734 0200 C801 movw r24,r16
735 0202 CCDF rcall SendOneDotAshColorData
737 .LM71:
738 0204 2197 sbiw r28,1
739 0206 D7FF sbrs r29,7
740 0208 F8CF rjmp .L84
742 .LM72:
743 020a 9198 cbi 50-0x20,1
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -