.include "m1284pdef.inc" .equ wt_enable=1 .equ eff1=1 .equ eff2=1 .equ eff3=1 .equ eff4=1 .equ eff5=1 .equ eff6=1 .equ eff7=1 .equ eff8=1 .equ eff9=1 .equ eff10=1 .equ eff11=1 .equ eff12=1 .equ eff13=1 .equ eff14=1 .equ eff15=1 .equ eff16=1 .equ eff17=1 .equ eff18=1 .equ eff19=1 .equ timer=21 .equ leds=256 .equ output_bits=10 ;not to be changed without major code adaption! .equ ul=53 ;upper limit of LED intensity, depends on the number of entries in the intensity lookup table .equ smooth=1 .include "convert_macro.asm" ;macros for translating logical LED numbers into real "addresses" at the driver circuitry .org 0 rjmp init .org OC3Aaddr tint: ;4 for interrupt latency ld r14,X+ ;2 out PORTB,r14 ;1 ld r14,X+ ;2 out PORTC,r14 ;1 sbi PORTA,0 ;2 out PORTA,r15 ;1 ld r14,X+ ;2 out PORTB,r14 ;1 ld r14,X+ ;2 out PORTC,r14 ;1 sbi PORTA,1 ;2 out PORTA,r15 ;1 ld r14,X+ ;2 out PORTB,r14 ;1 ld r14,X+ ;2 out PORTC,r14 ;1 sbi PORTA,2 ;2 out PORTA,r15 ;1 ld r14,X+ ;2 out PORTB,r14 ;1 ld r14,X+ ;2 out PORTC,r14 ;1 sbi PORTA,3 ;2 out PORTA,r15 ;1 ld r14,X+ ;2 out PORTB,r14 ;1 ld r14,X+ ;2 out PORTC,r14 ;1 sbi PORTA,4 ;2 out PORTA,r15 ;1 ld r14,X+ ;2 out PORTB,r14 ;1 ld r14,X+ ;2 out PORTC,r14 ;1 sbi PORTA,5 ;2 out PORTA,r15 ;1 ld r14,X+ ;2 out PORTB,r14 ;1 ld r14,X+ ;2 out PORTC,r14 ;1 sbi PORTA,6 ;2 out PORTA,r15 ;1 ld r14,X+ ;2 out PORTB,r14 ;1 ld r14,X+ ;2 out PORTC,r14 ;1 sbi PORTA,7 ;2 out PORTA,r15 ;1 ld r14,X+ ;2 out PORTB,r14 ;1 ld r14,X+ ;2 out PORTC,r14 ;1 sbi PORTD,0 ;2 out PORTD,r15 ;1 ld r14,X+ ;2 out PORTB,r14 ;1 ld r14,X+ ;2 out PORTC,r14 ;1 sbi PORTD,1 ;2 out PORTD,r15 ;1 ld r14,X+ ;2 out PORTB,r14 ;1 ld r14,X+ ;2 out PORTC,r14 ;1 sbi PORTD,2 ;2 out PORTD,r15 ;1 ld r14,X+ ;2 out PORTB,r14 ;1 ld r14,X+ ;2 out PORTC,r14 ;1 sbi PORTD,3 ;2 out PORTD,r15 ;1 ld r14,X+ ;2 out PORTB,r14 ;1 ld r14,X+ ;2 out PORTC,r14 ;1 sbi PORTD,4 ;2 out PORTD,r15 ;1 ld r14,X+ ;2 out PORTB,r14 ;1 ld r14,X+ ;2 out PORTC,r14 ;1 sbi PORTD,5 ;2 out PORTD,r15 ;1 ld r14,X+ ;2 out PORTB,r14 ;1 ld r14,X+ ;2 out PORTC,r14 ;1 sbi PORTD,6 ;2 out PORTD,r15 ;1 ld r14,X+ ;2 out PORTB,r14 ;1 ld r14,X+ ;2 out PORTC,r14 ;1 sbi PORTD,7 ;2 out PORTD,r15 ;1 ld r14,X+ ;2 sts (OCR3AH),r14 ;2 ld r14,X+ ;2 sts (OCR3AL),r14 ;2 ld r14,X+ ;2 ld XH,X ;2 mov XL,r14 ;1 reti ;5 ;165 clock cycles ;+ 6 cycles for awaking from idle init: ldi r16,LOW(RAMEND) out SPL,r16 ldi r16,HIGH(RAMEND) out SPH,r16 clr r16 out PORTA,r16 out PORTD,r16 ldi r16,-1 out PORTB,r16 out PORTC,r16 out DDRA,r16 out DDRB,r16 out DDRC,r16 out DDRD,r16 ldi r16,-1 out PORTA,r16 out PORTD,r16 clr r16 out PORTA,r16 out PORTD,r16 ldi XL,LOW(bamtbl) ldi XH,HIGH(bamtbl) clr r15 ;r15 must be zero all the time ldi r16,-1 mov r13,r16 ;initialize rnd generator movw YH:YL,XH:XL movw r25:r24,YH:YL in r11,(MCUSR) ;read reset trigger out (MCUSR),r15 ;clear all reset flags ldi r16,LOW(timer) ldi r17,HIGH(timer) ldi r18,output_bits ldi r19,-1 prep_tbl: adiw r25:r24,leds/8+4 ldi r20,leds/8 prep_tbl_clr: st Y+,r19 dec r20 brne prep_tbl_clr st Y+,r17 st Y+,r16 dec r18 breq prep_tbl1 st Y+,r24 st Y+,r25 add r16,r16 adc r17,r17 rjmp prep_tbl prep_tbl1: st Y+,XL st Y+,XH .if smooth==1 ldi YL,LOW(prv_val) ldi YH,HIGH(prv_val) ldi r16,LOW(leds) ldi r17,3 clr_prv_val: st Y+,r17 dec r16 brne clr_prv_val .endif ldi r16,1<0 ret process_ltbl1: mov r16,r25 andi r25,15 ;max. length needed for 256 LEDs is 2048 bytes andi r16,$f0 sts (probability),r16 ;upper 4 bits for definition of probability in random mode elpm r16,Z+ ;read duration low byte st Y+,r16 elpm r16,Z+ ;read duration high byte mov r17,r16 andi r16,127 ;only lower 7 bits are used for duration, corresponds to max. 2^15 BAM cycles, approx. 5 Minutes with current timer settings st Y+,r16 com r17 andi r17,128 ;MSB of duration high byte controls handling of LED states at the end of duration st Y+,r17 ;fade out flag; MSB==0: leave every LED as is; MSB==1: fade out every LED with current control settings clr r17 ;counts number of LEDs in current table definition copy_tbl: elpm r16,Z+ ;LED number st Y+,r16 elpm r16,Z+ ;positive: initial LED intensity; negative: reference to previous LED control set tst r16 brpl copy_tbl1 ;jump to copy current LED control set movw r3:r2,ZH:ZL ;save current table pointer in r4,RAMPZ mov r0,r4 copy_tbl3: add r16,r16 inc r16 sub ZL,r16 ;calculate table pointer sbc ZH,r15 sbc r0,r15 out RAMPZ,r0 elpm r16,Z+ ;read LED intensity tst r16 ;check sign brmi copy_tbl3 ;recurse if it's again reference to previous LED control set rcall copy_el ;copy LED control set movw ZH:ZL,r3:r2 ;restore current table pointer out RAMPZ,r4 rjmp copy_tbl2 copy_tbl1: rcall copy_el ;copy LED control set sbiw r25:r24,6 ;subtract 6 bytes from current length copy_tbl2: inc r17 ;increment LED count sbiw r25:r24,2 ;subtract 2 bytes from current length brne copy_tbl ;repeat if something's left sts (work),r17 ;store number of LEDs process_definition: ldi YL,LOW(work) ldi YH,HIGH(work) ld r20,Y+ ;number of LEDs ld r24,Y ;duration counter low byte ldd r25,Y+1 ;duration counter high byte tst r25 ;it's negative if in fade out mode brmi check_end ;jump if fade out mode mov r16,r24 or r16,r25 breq next_step ;skip if duration counter is 0 sbiw r25:r24,1 ;decrement duration counter st Y+,r24 st Y+,r25 adiw Y,1 ;skip fade out flag lds r11,(probability) ;get probability mask rjmp process_leds check_end: ;check if processing for all LEDs has finished adiw Y,3 movw r5:r4,YH:YL ;save current work area pointer mov r0,r20 ;copy LED count check_end_lp: ldd r16,Y+4 ;read increment value tst r16 brne process_leds1 ;continue processing if increment not 0 (i.e. processing not finished yet) adiw Y,9 ;calculate pointer to next work area element dec r0 ;decrement LED count brne check_end_lp ;repeat if something's left movw YH:YL,r5:r4 ;restore work area pointer sbiw Y,3 next_step: ldd r16,Y+2 ;get fade out flag tst r16 brpl next_step1 ;skip if hold mode rcall finish ;prepare fade out of all LEDs rjmp check_end next_step1: lds ZL,(ltbl_ptr) ;get current table pointer lds ZH,(ltbl_ptr+1) lds r16,(ltbl_ptr+2) out RAMPZ,r16 elpm r24,Z+ ;read length indicator elpm r25,Z+ andi r25,15 ;mask out the probability bits adiw r25:r24,2 ;add 2 bytes for duration counter add ZL,r24 ;calculate pointer to next LED definition set adc ZH,r25 adc r16,r15 sts (ltbl_ptr),ZL ;store current table pointer sts (ltbl_ptr+1),ZH sts (ltbl_ptr+2),r16 rjmp process_next_definition ;led#, start value, low value, high value, increment, delay, half cycles repeat, delay|start delay (word) continue: subi r16,1 ;decrement delay counter sbci r17,0 std Y+7,r16 ;store delay low byte std Y+8,r17 ;store delay high byte continue1: adiw Y,9 ;set up pointer to next work area element dec r20 ;decrement LED count brne process_leds ;proceed if something's left .if wt_enable==1 ldi r18,HIGH(bamtbl) wait_lp: sleep movw r17:r16,XH:XL ;read current BAM table pointer as atomic operation cpi r16,LOW(bamtbl) cpc r18,r17 brne wait_lp ;wait for final bit cycle (512 base timer ticks, enough time to calculate new LED output values) .endif rjmp process_definition process_leds1: movw YH:YL,r5:r4 ;restore pointer to work area lds r11,(probability) ;get probability mask process_leds: ld r16,Y ;LED number ldd r17,Y+1 ;current LED intensity rcall setout ;calculate BAM definition ldd r16,Y+7 ;delay low byte ldd r17,Y+8 ;delay high byte mov r0,r16 or r0,r17 brne continue ;skip processing if delay counter >0 ldd r17,Y+4 ;increment value ldd r18,Y+5 ;period delay and random mode flag tst r18 brpl setup_led ;skip if no random mode andi r18,127 ;mask out random mode flag tst r17 brne setup_led ;skip if increment !=0 (i.e. LED is currently active) rcall rand_15 ;calculate random value mov r17,r11 ;r11: probability mask and r17,r12 or r17,r13 cpi r17,1 brne skip_activation ;skip if LED is not to be activated std Y+4,r17 ;set increment to 1 ldi r16,2 std Y+6,r16 ;set half cycle counter to 2 (i.e. fade in followed by fade out) rjmp setup_led skip_activation: ldi r17,0 ;set increment/decrement value to 0 (i.e. no processing for this LED) setup_led: std Y+7,r18 ;reload delay counter low byte with period delay ldd r16,Y+1 ;current LED intensity mov r0,r17 ;r0: initial increment value ldd r18,Y+2 ;lower value ldd r19,Y+3 ;upper value mov r21,r18 ;r21=lower value sbrs r17,7 ;skip following instruction if currently decrementing (i.e. fading out) mov r21,r19 ;r21=upper value andi r21,0b11000000 ;get factor bits breq skip_factor_calculation ldi r22,2 factor_calculation: ;calculate factor to increase the step size separately for increment/decrement (i.e. fast fade in/slow fade out and vice versa) add r22,r22 subi r21,$40 brne factor_calculation ;factor can be 4,8 or 16 muls r17,r22 ;calculate increment/decrement value skip_factor_calculation: add r16,r0 ;add increment/decrement value to current LED intensity check_lower: andi r18,63 ;get lower value (mask out factor bits) cp r16,r18 ;check if LED intensity is not lower than the lower value brge check_upper mov r16,r18 ;set LED intensity to lower value ldd r0,Y+6 ;half cycle count tst r0 breq inverse_increment ;skip if half cycle count is 0 dec r0 ;decrement half cycle count std Y+6,r0 breq stop_processing ;stop processing if half cycle count is now 0 rjmp inverse_increment check_upper: andi r19,63 ;get upper value (mask out factor bits) inc r19 cp r16,r19 ;check if LED intensity is not higher than the upper value brlt set_led_intensity dec r19 mov r16,r19 ;set LED intensity to upper value ldd r0,Y+6 ;half cycle count tst r0 breq inverse_increment ;skip if half cycle count is 0 dec r0 ;decrement half cycle count std Y+6,r0 brne inverse_increment ;skip if half cycle count is still >0 stop_processing: ldi r17,0 ;set increment to 0 (i.e. no more processing for this LED) inverse_increment: neg r17 ;invert increment/decrement value std Y+4,r17 set_led_intensity: std Y+1,r16 ;store current LED intensity rjmp continue1 finish: std Y+1,r16 ;set MSB of duration counter high byte (fade out mode indicator) clr r16 std Y+2,r16 ;clear fade out flag movw r5:r4,YH:YL ;save current work area pointer adiw Y,3 mov r0,r20 ;copy LED count finish_lp: ldd r16,Y+5 andi r16,15 ;switch off random mode std Y+5,r16 ldd r16,Y+4 ;read increment value tst r16 breq finish_next1 ;skip if increment is already 0 (i.e. no active processing for this LED) ldi r17,1 ;set half cycle count to 1 brmi finish_next ;if decrementing ldi r17,2 ;set half cycle count to 2 finish_next: std Y+6,r17 ;store half cycle count finish_next1: adiw Y,9 ;calculate pointer to next work area element dec r0 ;decrement LED count brne finish_lp ;repeat if something's left movw YH:YL,r5:r4 ;restore work area pointer ret ;copy one data element to work area copy_el: st Y,r16 ;initial value elpm r16,Z+ std Y+1,r16 ;lower value elpm r16,Z+ std Y+2,r16 ;upper value elpm r19,Z+ std Y+3,r19 ;increment value and random mode elpm r16,Z+ std Y+5,r16 ;half cycles repeat counter elpm r16,Z+ std Y+6,r16 ;start delay low byte elpm r16,Z+ mov r18,r16 andi r16,15 std Y+7,r16 ;start delay high byte swap r18 andi r18,15 ;period delay base value cpi r18,8 ;check if lower than 8 brcs copy_el0 subi r18,7 ;range extender if base value >7 ldi r16,8 ;8 mul r16,r18 mov r18,r0 subi r18,-8 ;values can be 16,24,32,40,48,56,64,72 copy_el0: tst r19 ;test increment value brmi copy_el1 ;jump if negative (decrement) cpi r19,64 ;check if lower than 64 brcs copy_el1 ;jump if so andi r19,63 ;mask out lower 6 bits std Y+3,r19 ;use as increment (only positive) ori r18,128 ;set flag for random mode copy_el1: std Y+4,r18 ;period delay and random mode flag adiw Y,8 ;set up pointer to next work area element ret ;6 us @ 20MHz ;7.2 us @ 20MHz with smoothing setout: movw r5:r4,YH:YL add r17,r17 ldi ZL,LOW(intensity_lookup_tbl*2) ldi ZH,HIGH(intensity_lookup_tbl*2) add ZL,r17 adc ZH,r15 lpm r17,Z+ lpm r18,Z .if smooth==1 ldi YL,LOW(prv_val) ldi YH,HIGH(prv_val) add YL,r16 adc YH,r15 ld r19,Y add r19,r19 add r19,r19 andi r18,3 st Y,r18 or r19,r18 add r19,r19 ldi ZL,LOW(mask_tbl*2) ldi ZH,HIGH(mask_tbl*2) add ZL,r19 adc ZH,r15 lpm r19,Z+ lpm ZL,Z sbrc r19,0 or r17,ZL sbrc r19,1 and r17,ZL .endif ldi YL,LOW(bamtbl) ldi YH,HIGH(bamtbl) mov r19,r16 lsr r19 lsr r19 lsr r19 add YL,r19 adc YH,r15 andi r16,7 ldi ZL,LOW(power_of_2*2) ldi ZH,HIGH(power_of_2*2) add ZL,r16 adc ZH,r15 lpm r2,Z mov r3,r2 com r3 ld r16,Y and r16,r3 sbrc r17,0 or r16,r2 st Y,r16 ldd r16,Y+leds/8+4 and r16,r3 sbrc r17,1 or r16,r2 std Y+leds/8+4,r16 subi YL,LOW(-2*(leds/8+4)) sbci YH,HIGH(-2*(leds/8+4)) ld r16,Y and r16,r3 sbrc r17,2 or r16,r2 st Y,r16 ldd r16,Y+leds/8+4 and r16,r3 sbrc r17,3 or r16,r2 std Y+leds/8+4,r16 subi YL,LOW(-2*(leds/8+4)) sbci YH,HIGH(-2*(leds/8+4)) ld r16,Y and r16,r3 sbrc r17,4 or r16,r2 st Y,r16 ldd r16,Y+leds/8+4 and r16,r3 sbrc r17,5 or r16,r2 std Y+leds/8+4,r16 subi YL,LOW(-2*(leds/8+4)) sbci YH,HIGH(-2*(leds/8+4)) ld r16,Y and r16,r3 sbrc r17,6 or r16,r2 st Y,r16 ldd r16,Y+leds/8+4 and r16,r3 sbrc r17,7 or r16,r2 std Y+leds/8+4,r16 subi YL,LOW(-2*(leds/8+4)) sbci YH,HIGH(-2*(leds/8+4)) ld r16,Y and r16,r3 sbrc r18,0 or r16,r2 st Y,r16 ldd r16,Y+leds/8+4 and r16,r3 sbrc r18,1 or r16,r2 std Y+leds/8+4,r16 movw YH:YL,r5:r4 ret ; 15-bit random number rand_15: lsl r12 rol r13 brcc rand_15x ldi r16,0xB5 eor r12,r16 ldi r16,0x95 eor r13,r16 rand_15x: ret intensity_lookup_tbl: .dw -1, -2, -3, -4, -5, -6, -7, -8, -9, -10, -11 .dw -12, -13, -14, -16, -18, -20, -22, -24, -27, -30, -33, -37, -41, -45, -50, -56 .dw -62, -69, -77, -86, -95, -106, -118, -132, -147, -163, -182, -203, -226, -251 .dw -280, -312, -347, -387, -431, -480, -535, -596, -664, -740, -825, -919, 0 power_of_2: .db 1,2,4,8,16,32,64,128 ;table for masking out lower LED intensity bits in case of section crossings (i.e. change of the upper intensity bits) ;the table is made to be used with 10 output bits per LED only .if smooth==1 mask_tbl: ; output bit 8+9 ; prev curr .db 0,0 ;00 00 .db 1,127 ;00 01 .db 1,127 ;00 10 .db 1,255 ;00 11 .db 2,~127 ;01 00 .db 0,0 ;01 01 .db 1,255 ;01 10 .db 1,255 ;01 11 .db 2,~255 ;10 00 .db 2,~255 ;10 01 .db 0,0 ;10 10 .db 1,63 ;10 11 .db 2,~255 ;11 00 .db 2,~127 ;11 01 .db 2,~127 ;11 10 .db 0,0 ;11 11 .endif .macro mt_entry .db LOW(@0*2),HIGH(@0*2),BYTE3(@0*2),@1 .endmacro ;master effect table, for addressing the effect definitions ;has to be located in the same page as the code, so no extended address handling (RAMPZ) is needed ; ;mt_entry , (0=one cycle) ; mtbl: .if eff1==1 mt_entry effect1,0 .endif .if eff2==1 mt_entry effect2,0 .endif .if eff3==1 mt_entry effect3,0 .endif .if eff4==1 mt_entry effect4,0 mt_entry all_leds_off,0 .endif .if eff5==1 mt_entry effect5,4 .endif .if eff6==1 mt_entry effect6,0 .endif .if eff7==1 mt_entry effect7,0 mt_entry all_leds_off,0 .endif .if eff8==1 mt_entry effect8,0 .endif .if eff9==1 mt_entry effect9,0 .endif .if eff10==1 mt_entry effect10,0 .endif .if eff11==1 mt_entry effect11,0 .endif .if eff12==1 mt_entry effect12,9 .endif .if eff13==1 mt_entry effect13,1 mt_entry effect13_1,1 mt_entry effect13_2,1 mt_entry effect13_3,1 mt_entry effect13_4,1 .endif .if eff14==1 mt_entry effect14,0 .endif .if eff15==1 mt_entry effect15,0 .endif .if eff16==1 mt_entry effect16b,4 mt_entry all_leds_off,0 mt_entry effect16r,4 mt_entry all_leds_off,0 mt_entry effect16g,4 mt_entry all_leds_off,0 .endif .if eff17==1 mt_entry effect17g,0 mt_entry effect17r,0 mt_entry effect17b,0 mt_entry effect17y,0 mt_entry effect17m,0 mt_entry effect17w,0 .endif .if eff18==1 mt_entry effect18,4 .endif .if eff19==1 mt_entry effect19,0 .endif mt_entry all_leds_off,0 mt_entry 0,0 ;two forms of a LED control entry ; ;1st form (normal) ; ;+0 .b[7...0] LED number ;+1 .b[6...0] initial LED intensity ;+1 .b[7] 0 ;+2 .b[5...0] lower intensity limit ;+2 .b[7...6] decrement factor ; 0 use defined step size ; 1 step size * 4 ; 2 step size * 8 ; 3 step size * 16 ;+3 .b[5...0] upper intensity limit ;+3 .b[7...6] increment factor ; 0 use defined step size ; 1 step size * 4 ; 2 step size * 8 ; 3 step size * 16 ;+4 .b[7...0] initial step size ; -63...+63 increment/decrement of the LED intensity ; +64 LED random mode ;+5 .b[7...0] half cycle count (0 - forever) ;+6 .w[11...0] start delay in ticks ;+6 .w[15...12] step delay ; 0 no additional delay ; 1...7 n additional ticks per step ; 8 16 additional ticks per step ; 9 24 ... ; 10 32 ... ; 11 40 ... ; 12 48 ... ; 13 56 ... ; 14 64 ... ; 15 72 additional ticks per step ; ;2nd form (reference) ; ;+0 .b[7...0] LED number ;+1 .b[6...0] backward pointer to previous LED control entry (can also be another reference, i.e. recursive) ;+1 .b[7] 1 ; ;the 2nd form can be used to control multiple LEDs with identical settings but less flash memory consumption ; ; ;structure of effect definition ; ;+0 .w[11...0] 0 end of effect ; >0 number of bytes for LED control entries ;+0 .w[15...12] probability definition for LED random mode; the higher the value, the higher the probability an LED is triggered ;+2 .w[14...0] tick counter for the whole effect ;+2 .w[15] hold control ; 0: fade out all LEDs at the end ; 1: hold current LED intensity values at the end ;+4 x LED control entries ;+n .w start of next effect definition or 0 .equ back=1<<7 .equ hold=1<<15 .macro n .if @0<0 || @0>255 .error "LED number out of range [0...255]" .endif .if @0<16 a1 @0 .elif @0<32 a2 @0 .elif @0<48 a3 @0 .elif @0<64 a4 @0 .elif @0<80 a5 @0 .elif @0<96 a6 @0 .elif @0<112 a7 @0 .elif @0<128 a8 @0 .elif @0<144 a9 @0 .elif @0<160 a10 @0 .elif @0<176 a11 @0 .elif @0<192 a12 @0 .elif @0<208 a13 @0 .elif @0<224 a14 @0 .elif @0<240 a15 @0 .else a16 @0 .endif .if @1<0 || @1>ul .error "Start value out of range [0...63]." .endif .if @2<0 || @2>ul .error "Lower limit out of range [0...63]." .endif .if @3<0 || @3>3 .error "Decrement factor out of range [0...3]." .endif .if @4<0 || @4>ul .error "Upper limit out of range [0...63]." .endif .if @5<0 || @5>3 .error "Increment factor out of range [0...3]." .endif .if @6<-63 || @6>63 .error "Initial step size out of range [-63...63]." .endif .if @7<0 || @7>255 .error "Half cycles counter out of range [0...255]." .endif .if @8<0 || @8>4095 .error "Start delay out of range [0...4095]." .endif .if @9<0 || @9>15 .error "Step delay out of range [0...15]." .endif .db _x,@1,@3<<6|@2,@5<<6|@4,@6,@7 .dw @9<<12|@8 .endmacro .macro r .if @0<0 || @0>255 .error "LED number out of range [0...255]" .endif .if @0<16 a1 @0 .elif @0<32 a2 @0 .elif @0<48 a3 @0 .elif @0<64 a4 @0 .elif @0<80 a5 @0 .elif @0<96 a6 @0 .elif @0<112 a7 @0 .elif @0<128 a8 @0 .elif @0<144 a9 @0 .elif @0<160 a10 @0 .elif @0<176 a11 @0 .elif @0<192 a12 @0 .elif @0<208 a13 @0 .elif @0<224 a14 @0 .elif @0<240 a15 @0 .else a16 @0 .endif .if @1<0 || @1>ul .error "Start value out of range [0...63]." .endif .if @2<0 || @2>ul .error "Lower limit out of range [0...63]." .endif .if @3<0 || @3>3 .error "Decrement factor out of range [0...3]." .endif .if @4<0 || @4>ul .error "Upper limit out of range [0...63]." .endif .if @5<0 || @5>3 .error "Increment factor out of range [0...3]." .endif .if @6<0 || @6>255 .error "Half cycles counter out of range [0...255]." .endif .if @7<0 || @7>4095 .error "Start delay out of range [0...4095]." .endif .if @8<0 || @8>15 .error "Step delay out of range [0...15]." .endif .db _x,@1,@3<<6|@2,@5<<6|@4,64,@6 .dw @8<<12|@7 .endmacro .macro nn n @0,0,0,0,ul,0,1,2,@1,0 .endmacro .macro nd n @0,0,0,0,ul,0,1,2,c,0 .set c=c+d .endmacro .macro nc_on n p,0,0,0,ul,0,1,1,c,0 .set p=p+1 .set c=c+d .endmacro .macro nc_off n p,ul,0,0,ul,0,-1,1,c,0 .set p=p+1 .set c=c+d .endmacro .macro b .if @0<0 || @0>255 .error "LED number out of range [0...255]" .endif .if @0<16 a1 @0 .elif @0<32 a2 @0 .elif @0<48 a3 @0 .elif @0<64 a4 @0 .elif @0<80 a5 @0 .elif @0<96 a6 @0 .elif @0<112 a7 @0 .elif @0<128 a8 @0 .elif @0<144 a9 @0 .elif @0<160 a10 @0 .elif @0<176 a11 @0 .elif @0<192 a12 @0 .elif @0<208 a13 @0 .elif @0<224 a14 @0 .elif @0<240 a15 @0 .else a16 @0 .endif .if @1<1 || @1>127 .error "Back reference out of range [1...127]." .endif .db _x,back+@1 .endmacro .macro b4 b @0,4 .endmacro .macro bcs .set p=4 b @0,p .set p=p+1 .endmacro .macro bc b @0,p .set p=p+1 .endmacro .macro bcs1 .set p=4 b l,p .set l=l+1 .set p=p+1 .endmacro .macro bc1 b l,p .set l=l+1 .set p=p+1 .endmacro .macro blue_arrow .set p1=@0+10 .set p2=@0-10 .if p2<0 .set p2=98 .endif n p1,@1,@2,@3,@4,@5,@6,@7,c,@8 b4 p2 .set c=c+d n p1-1,@1,@2,@3,@4,@5,@6,@7,c,@8 b4 p2+1 .set c=c+d n p1-2,@1,@2,@3,@4,@5,@6,@7,c,@8 b4 p2+2 .set c=c+d n p1-3,@1,@2,@3,@4,@5,@6,@7,c,@8 b4 p2+3 .set c=c+d n p1-4,@1,@2,@3,@4,@5,@6,@7,c,@8 b4 p2+4 .set c=c+d n p1-5,@1,@2,@3,@4,@5,@6,@7,c,@8 b4 p2+5 .set c=c+d n p1-6,@1,@2,@3,@4,@5,@6,@7,c,@8 b4 p2+6 .set c=c+d n p1-7,@1,@2,@3,@4,@5,@6,@7,c,@8 b4 p2+7 .set c=c+d n p1-8,@1,@2,@3,@4,@5,@6,@7,c,@8 b4 p2+8 .set c=c+d n p1-9,@1,@2,@3,@4,@5,@6,@7,c,@8 b4 p2+9 .set c=c+d n @0,@1,@2,@3,@4,@5,@6,@7,c,@8 .set c=c+d .endmacro .macro red_arrow .set p1=@0+9 .set p2=@0-9 .if p2<108 .set p2=187 .endif n p1,@1,@2,@3,@4,@5,@6,@7,c,@8 b4 p2 .set c=c+d n p1-1,@1,@2,@3,@4,@5,@6,@7,c,@8 b4 p2+1 .set c=c+d n p1-2,@1,@2,@3,@4,@5,@6,@7,c,@8 b4 p2+2 .set c=c+d n p1-3,@1,@2,@3,@4,@5,@6,@7,c,@8 b4 p2+3 .set c=c+d n p1-4,@1,@2,@3,@4,@5,@6,@7,c,@8 b4 p2+4 .set c=c+d n p1-5,@1,@2,@3,@4,@5,@6,@7,c,@8 b4 p2+5 .set c=c+d n p1-6,@1,@2,@3,@4,@5,@6,@7,c,@8 b4 p2+6 .set c=c+d n p1-7,@1,@2,@3,@4,@5,@6,@7,c,@8 b4 p2+7 .set c=c+d n p1-8,@1,@2,@3,@4,@5,@6,@7,c,@8 b4 p2+8 .set c=c+d n @0,@1,@2,@3,@4,@5,@6,@7,c,@8 .set c=c+d .endmacro .macro green_arrow .set p1=@0+6 .set p2=@0-6 .if p2<196 .set p2=250 .endif n p1,@1,@2,@3,@4,@5,@6,@7,c,@8 b4 p2 .set c=c+d n p1-1,@1,@2,@3,@4,@5,@6,@7,c,@8 b4 p2+1 .set c=c+d n p1-2,@1,@2,@3,@4,@5,@6,@7,c,@8 b4 p2+2 .set c=c+d n p1-3,@1,@2,@3,@4,@5,@6,@7,c,@8 b4 p2+3 .set c=c+d n p1-4,@1,@2,@3,@4,@5,@6,@7,c,@8 b4 p2+4 .set c=c+d n p1-5,@1,@2,@3,@4,@5,@6,@7,c,@8 b4 p2+5 .set c=c+d n @0,@1,@2,@3,@4,@5,@6,@7,c,@8 .set c=c+d .endmacro ltbl: power_on: .dw 3*8+107*2+87*2+59*2 .dw 3*128 n 0,0,0,0,ul,0,1,2,0,0 bcc 1,107,4 n 108,0,0,0,ul,0,1,2,128,0 bcc 109,195,4 n 196,0,0,0,ul,0,1,2,256,0 bcc 197,255,4 .dw 2*8+87*2+59*2 .dw 128 n 108,0,0,0,ul,0,1,2,0,0 bcc 109,195,4 n 196,0,0,0,ul,0,1,2,0,0 bcc 197,255,4 .dw 8+255*2 .dw 128 n 0,0,0,0,ul,0,1,2,0,0 bcc 1,107,4 bcc 108,195,1 bcc 196,255,1 .dw 0 effect1: .if eff1==1 .set c=0 .set d=1 .set p=0 .dw 108*8 .dw 500 nc_on nc_on nc_on nc_on nc_on nc_on nc_on nc_on nc_on nc_on nc_on nc_on nc_on nc_on nc_on nc_on nc_on nc_on nc_on nc_on nc_on nc_on nc_on nc_on nc_on nc_on nc_on nc_on nc_on nc_on nc_on nc_on nc_on nc_on nc_on nc_on nc_on nc_on nc_on nc_on nc_on nc_on nc_on nc_on nc_on nc_on nc_on nc_on nc_on nc_on nc_on nc_on nc_on nc_on nc_on nc_on nc_on nc_on nc_on nc_on nc_on nc_on nc_on nc_on nc_on nc_on nc_on nc_on nc_on nc_on nc_on nc_on nc_on nc_on nc_on nc_on nc_on nc_on nc_on nc_on nc_on nc_on nc_on nc_on nc_on nc_on nc_on nc_on nc_on nc_on nc_on nc_on nc_on nc_on nc_on nc_on nc_on nc_on nc_on nc_on nc_on nc_on nc_on nc_on nc_on nc_on nc_on nc_on .set c=0 .set d=1 .set p=0 .dw 108*8 .dw 500 nc_off nc_off nc_off nc_off nc_off nc_off nc_off nc_off nc_off nc_off nc_off nc_off nc_off nc_off nc_off nc_off nc_off nc_off nc_off nc_off nc_off nc_off nc_off nc_off nc_off nc_off nc_off nc_off nc_off nc_off nc_off nc_off nc_off nc_off nc_off nc_off nc_off nc_off nc_off nc_off nc_off nc_off nc_off nc_off nc_off nc_off nc_off nc_off nc_off nc_off nc_off nc_off nc_off nc_off nc_off nc_off nc_off nc_off nc_off nc_off nc_off nc_off nc_off nc_off nc_off nc_off nc_off nc_off nc_off nc_off nc_off nc_off nc_off nc_off nc_off nc_off nc_off nc_off nc_off nc_off nc_off nc_off nc_off nc_off nc_off nc_off nc_off nc_off nc_off nc_off nc_off nc_off nc_off nc_off nc_off nc_off nc_off nc_off nc_off nc_off nc_off nc_off nc_off nc_off nc_off nc_off nc_off nc_off .set c=0 .set d=1 .set p=108 .dw 88*8 .dw 500 nc_on nc_on nc_on nc_on nc_on nc_on nc_on nc_on nc_on nc_on nc_on nc_on nc_on nc_on nc_on nc_on nc_on nc_on nc_on nc_on nc_on nc_on nc_on nc_on nc_on nc_on nc_on nc_on nc_on nc_on nc_on nc_on nc_on nc_on nc_on nc_on nc_on nc_on nc_on nc_on nc_on nc_on nc_on nc_on nc_on nc_on nc_on nc_on nc_on nc_on nc_on nc_on nc_on nc_on nc_on nc_on nc_on nc_on nc_on nc_on nc_on nc_on nc_on nc_on nc_on nc_on nc_on nc_on nc_on nc_on nc_on nc_on nc_on nc_on nc_on nc_on nc_on nc_on nc_on nc_on nc_on nc_on nc_on nc_on nc_on nc_on nc_on nc_on .set c=0 .set d=1 .set p=108 .dw 88*8 .dw 500 nc_off nc_off nc_off nc_off nc_off nc_off nc_off nc_off nc_off nc_off nc_off nc_off nc_off nc_off nc_off nc_off nc_off nc_off nc_off nc_off nc_off nc_off nc_off nc_off nc_off nc_off nc_off nc_off nc_off nc_off nc_off nc_off nc_off nc_off nc_off nc_off nc_off nc_off nc_off nc_off nc_off nc_off nc_off nc_off nc_off nc_off nc_off nc_off nc_off nc_off nc_off nc_off nc_off nc_off nc_off nc_off nc_off nc_off nc_off nc_off nc_off nc_off nc_off nc_off nc_off nc_off nc_off nc_off nc_off nc_off nc_off nc_off nc_off nc_off nc_off nc_off nc_off nc_off nc_off nc_off nc_off nc_off nc_off nc_off nc_off nc_off nc_off nc_off .set c=0 .set d=1 .set p=196 .dw 60*8 .dw 500 nc_on nc_on nc_on nc_on nc_on nc_on nc_on nc_on nc_on nc_on nc_on nc_on nc_on nc_on nc_on nc_on nc_on nc_on nc_on nc_on nc_on nc_on nc_on nc_on nc_on nc_on nc_on nc_on nc_on nc_on nc_on nc_on nc_on nc_on nc_on nc_on nc_on nc_on nc_on nc_on nc_on nc_on nc_on nc_on nc_on nc_on nc_on nc_on nc_on nc_on nc_on nc_on nc_on nc_on nc_on nc_on nc_on nc_on nc_on nc_on .set c=0 .set d=1 .set p=196 .dw 60*8 .dw 500 nc_off nc_off nc_off nc_off nc_off nc_off nc_off nc_off nc_off nc_off nc_off nc_off nc_off nc_off nc_off nc_off nc_off nc_off nc_off nc_off nc_off nc_off nc_off nc_off nc_off nc_off nc_off nc_off nc_off nc_off nc_off nc_off nc_off nc_off nc_off nc_off nc_off nc_off nc_off nc_off nc_off nc_off nc_off nc_off nc_off nc_off nc_off nc_off nc_off nc_off nc_off nc_off nc_off nc_off nc_off nc_off nc_off nc_off nc_off nc_off .dw 0 .endif effect2: .if eff2==1 .set c=0 .set d=20 .dw (arrowsx-arrows)*2 .dw (11+10)*20*4+7*30*4+64*12 arrows: blue_arrow 0,0,0,0,ul,0,1,12,0 blue_arrow 27,0,0,0,ul,0,1,12,0 blue_arrow 54,0,0,0,ul,0,1,12,0 blue_arrow 81,0,0,0,ul,0,1,12,0 red_arrow 108,0,0,0,ul,0,1,12,0 red_arrow 130,0,0,0,ul,0,1,12,0 red_arrow 152,0,0,0,ul,0,1,12,0 red_arrow 174,0,0,0,ul,0,1,12,0 .set d=30 green_arrow 196,0,0,0,ul,0,1,12,0 green_arrow 211,0,0,0,ul,0,1,12,0 green_arrow 226,0,0,0,ul,0,1,12,0 green_arrow 241,0,0,0,ul,0,1,12,0 arrowsx: .dw 0 .endif effect3: .if eff3==1 .set t=2 .set _low=1 .dw 0<<12|8+107*2 .dw 120*20 r 0,_low,_low,0,ul,2,0,0,t bcc 1,107,4 .dw 8+107*2 .dw 1 n 0,1,0,0,0,0,-1,1,0,0 bcc 1,107,4 .dw 0<<12|8+87*2 .dw 120*20 r 108,_low,_low,0,ul,2,0,0,t bcc 109,195,4 .dw 8+87*2 .dw 1 n 108,1,0,0,0,0,-1,1,0,0 bcc 109,195,4 .dw 0<<12|8+59*2 .dw 120*20 r 196,_low,_low,0,ul,2,0,0,t bcc 197,255,4 .dw 8+59*2 .dw 1 n 196,1,0,0,0,0,-1,1,0,0 bcc 197,255,4 .dw 0 .endif effect4: .if eff4==1 .set t=2 .set _low=1 .dw 15<<12|8+255*2 .dw 120*60 r 0,_low,_low,0,ul,2,0,0,t bcc 1,107,4 bcc 108,195,1 bcc 196,255,1 .dw 0 .endif all_leds_off: .if 1 .dw 8+255*2 .dw 1 n 0,0,0,0,0,0,-1,1,0,0 bcc 1,107,4 bcc 108,195,1 bcc 196,255,1 .dw 0 .endif effect5: .if eff5==1 .set c=0 .set d=5 .dw (arrowsx1-arrows1)*2 .dw hold|11*4*d+200 arrows1: blue_arrow 0,0,0,0,ul,0,1,1,0 blue_arrow 27,0,0,0,ul,0,1,1,0 blue_arrow 54,0,0,0,ul,0,1,1,0 blue_arrow 81,0,0,0,ul,0,1,1,0 arrowsx1: .set c=0 .dw (arrowsx2-arrows2)*2 .dw hold|11*4*d+64 arrows2: blue_arrow 0,ul,0,0,ul,0,-1,1,0 blue_arrow 27,ul,0,0,ul,0,-1,1,0 blue_arrow 54,ul,0,0,ul,0,-1,1,0 blue_arrow 81,ul,0,0,ul,0,-1,1,0 arrowsx2: .set c=0 .dw (arrowsx3-arrows3)*2 .dw hold|10*4*d+200 arrows3: red_arrow 108,0,0,0,ul,0,1,1,0 red_arrow 130,0,0,0,ul,0,1,1,0 red_arrow 152,0,0,0,ul,0,1,1,0 red_arrow 174,0,0,0,ul,0,1,1,0 arrowsx3: .set c=0 .dw (arrowsx4-arrows4)*2 .dw hold|10*4*d+64 arrows4: red_arrow 108,ul,0,0,ul,0,-1,1,0 red_arrow 130,ul,0,0,ul,0,-1,1,0 red_arrow 152,ul,0,0,ul,0,-1,1,0 red_arrow 174,ul,0,0,ul,0,-1,1,0 arrowsx4: .set c=0 .dw (arrowsx5-arrows5)*2 .dw hold|7*4*d+200 arrows5: green_arrow 196,0,0,0,ul,0,1,1,0 green_arrow 211,0,0,0,ul,0,1,1,0 green_arrow 226,0,0,0,ul,0,1,1,0 green_arrow 241,0,0,0,ul,0,1,1,0 arrowsx5: .set c=0 .dw (arrowsx6-arrows6)*2 .dw hold|7*4*d+64 arrows6: green_arrow 196,ul,0,0,ul,0,-1,1,0 green_arrow 211,ul,0,0,ul,0,-1,1,0 green_arrow 226,ul,0,0,ul,0,-1,1,0 green_arrow 241,ul,0,0,ul,0,-1,1,0 arrowsx6: .dw 0 .endif .macro ns n @0,0,0,0,ul,0,ul,1,c,0 .set c=c+d .endmacro .macro no n @0,ul,0,0,ul,0,-ul,1,c,0 .set c=c+d .endmacro effect6: .if eff6==1 .set c=0 .set d=20 .dw 84*8 .dw hold|84*d+100 ns 98 ns 10 ns 17 ns 37 ns 44 ns 64 ns 71 ns 91 ns 99 ns 9 ns 18 ns 36 ns 45 ns 63 ns 72 ns 90 ns 100 ns 8 ns 19 ns 35 ns 46 ns 62 ns 73 ns 89 ns 101 ns 7 ns 20 ns 34 ns 47 ns 61 ns 74 ns 88 ns 102 ns 6 ns 21 ns 33 ns 48 ns 60 ns 75 ns 87 ns 103 ns 5 ns 22 ns 32 ns 49 ns 59 ns 76 ns 86 ns 104 ns 4 ns 23 ns 31 ns 50 ns 58 ns 77 ns 85 ns 105 ns 3 ns 24 ns 30 ns 51 ns 57 ns 78 ns 84 ns 106 ns 2 ns 25 ns 29 ns 52 ns 56 ns 79 ns 83 ns 107 ns 1 ns 26 ns 28 ns 53 ns 55 ns 80 ns 82 ns 0 ns 27 ns 54 ns 81 .set c=0 .dw 84*8 .dw 84*d+100 no 98 no 10 no 17 no 37 no 44 no 64 no 71 no 91 no 99 no 9 no 18 no 36 no 45 no 63 no 72 no 90 no 100 no 8 no 19 no 35 no 46 no 62 no 73 no 89 no 101 no 7 no 20 no 34 no 47 no 61 no 74 no 88 no 102 no 6 no 21 no 33 no 48 no 60 no 75 no 87 no 103 no 5 no 22 no 32 no 49 no 59 no 76 no 86 no 104 no 4 no 23 no 31 no 50 no 58 no 77 no 85 no 105 no 3 no 24 no 30 no 51 no 57 no 78 no 84 no 106 no 2 no 25 no 29 no 52 no 56 no 79 no 83 no 107 no 1 no 26 no 28 no 53 no 55 no 80 no 82 no 0 no 27 no 54 no 81 .set c=0 .dw 76*8 .dw hold|76*d+100 ns 187 ns 117 ns 121 ns 139 ns 143 ns 161 ns 165 ns 183 ns 188 ns 116 ns 122 ns 138 ns 144 ns 160 ns 166 ns 182 ns 189 ns 115 ns 123 ns 137 ns 145 ns 159 ns 167 ns 181 ns 190 ns 114 ns 124 ns 136 ns 146 ns 158 ns 168 ns 180 ns 191 ns 113 ns 125 ns 135 ns 147 ns 157 ns 169 ns 179 ns 192 ns 112 ns 126 ns 134 ns 148 ns 156 ns 170 ns 178 ns 193 ns 111 ns 127 ns 133 ns 149 ns 155 ns 171 ns 177 ns 194 ns 110 ns 128 ns 132 ns 150 ns 154 ns 172 ns 176 ns 195 ns 109 ns 129 ns 131 ns 151 ns 153 ns 173 ns 175 ns 108 ns 130 ns 152 ns 174 .set c=0 .dw 76*8 .dw 76*d+100 no 187 no 117 no 121 no 139 no 143 no 161 no 165 no 183 no 188 no 116 no 122 no 138 no 144 no 160 no 166 no 182 no 189 no 115 no 123 no 137 no 145 no 159 no 167 no 181 no 190 no 114 no 124 no 136 no 146 no 158 no 168 no 180 no 191 no 113 no 125 no 135 no 147 no 157 no 169 no 179 no 192 no 112 no 126 no 134 no 148 no 156 no 170 no 178 no 193 no 111 no 127 no 133 no 149 no 155 no 171 no 177 no 194 no 110 no 128 no 132 no 150 no 154 no 172 no 176 no 195 no 109 no 129 no 131 no 151 no 153 no 173 no 175 no 108 no 130 no 152 no 174 .set c=0 .dw 52*8 .dw hold|52*d+100 ns 250 ns 202 ns 205 ns 217 ns 220 ns 232 ns 235 ns 247 ns 251 ns 201 ns 206 ns 216 ns 221 ns 231 ns 236 ns 246 ns 252 ns 200 ns 207 ns 215 ns 222 ns 230 ns 237 ns 245 ns 253 ns 199 ns 208 ns 214 ns 223 ns 229 ns 238 ns 244 ns 254 ns 198 ns 209 ns 213 ns 224 ns 228 ns 239 ns 243 ns 255 ns 197 ns 210 ns 212 ns 225 ns 227 ns 240 ns 242 ns 196 ns 211 ns 226 ns 241 .set c=0 .dw 52*8 .dw hold|52*d+100 no 250 no 202 no 205 no 217 no 220 no 232 no 235 no 247 no 251 no 201 no 206 no 216 no 221 no 231 no 236 no 246 no 252 no 200 no 207 no 215 no 222 no 230 no 237 no 245 no 253 no 199 no 208 no 214 no 223 no 229 no 238 no 244 no 254 no 198 no 209 no 213 no 224 no 228 no 239 no 243 no 255 no 197 no 210 no 212 no 225 no 227 no 240 no 242 no 196 no 211 no 226 no 241 .dw 0 .endif effect7: .if eff7==1 .macro nd1 n @0,0,10,0,ul,0,1,0,c,1 .set c=c+d .endmacro .set c=0 .set d=5 .dw (43+39+27)*8+(41+37+25)*2 .dw 5000 nd1 0 nd1 1 b4 107 nd1 2 b4 106 nd1 3 b4 105 nd1 4 b4 104 nd1 5 b4 103 nd1 6 b4 102 nd1 7 b4 101 nd1 8 b4 100 nd1 9 b4 99 nd1 10 b4 98 nd1 17 b4 91 nd1 18 b4 90 nd1 19 b4 89 nd1 20 b4 88 nd1 21 b4 87 nd1 22 b4 86 nd1 23 b4 85 nd1 24 b4 84 nd1 25 b4 83 nd1 26 b4 82 nd1 27 b4 81 nd1 28 b4 80 nd1 29 b4 79 nd1 30 b4 78 nd1 31 b4 77 nd1 32 b4 76 nd1 33 b4 75 nd1 34 b4 74 nd1 35 b4 73 nd1 36 b4 72 nd1 37 b4 71 nd1 44 b4 64 nd1 45 b4 63 nd1 46 b4 62 nd1 47 b4 61 nd1 48 b4 60 nd1 49 b4 59 nd1 50 b4 58 nd1 51 b4 57 nd1 52 b4 56 nd1 53 b4 55 nd1 54 .set c=0 nd1 152 nd1 153 b4 151 nd1 154 b4 150 nd1 155 b4 149 nd1 156 b4 148 nd1 157 b4 147 nd1 158 b4 146 nd1 159 b4 145 nd1 160 b4 144 nd1 161 b4 143 nd1 165 b4 139 nd1 166 b4 138 nd1 167 b4 137 nd1 168 b4 136 nd1 169 b4 135 nd1 170 b4 134 nd1 171 b4 133 nd1 172 b4 132 nd1 173 b4 131 nd1 174 b4 130 nd1 175 b4 129 nd1 176 b4 128 nd1 177 b4 127 nd1 178 b4 126 nd1 179 b4 125 nd1 180 b4 124 nd1 181 b4 123 nd1 182 b4 122 nd1 183 b4 121 nd1 187 b4 117 nd1 188 b4 116 nd1 189 b4 115 nd1 190 b4 114 nd1 191 b4 113 nd1 192 b4 112 nd1 193 b4 111 nd1 194 b4 110 nd1 195 b4 109 nd1 108 .set c=0 nd1 196 nd1 197 b4 255 nd1 198 b4 254 nd1 199 b4 253 nd1 200 b4 252 nd1 201 b4 251 nd1 202 b4 250 nd1 205 b4 247 nd1 206 b4 246 nd1 207 b4 245 nd1 208 b4 244 nd1 209 b4 243 nd1 210 b4 242 nd1 211 b4 241 nd1 212 b4 240 nd1 213 b4 239 nd1 214 b4 238 nd1 215 b4 237 nd1 216 b4 236 nd1 217 b4 235 nd1 220 b4 232 nd1 221 b4 231 nd1 222 b4 230 nd1 223 b4 229 nd1 224 b4 228 nd1 225 b4 227 nd1 226 .dw 0 .endif effect8: .if eff8==1 .set d=5 .dw (arrowsx11-arrows11)*2 .dw hold|11*d+64 arrows11: .set c=0 blue_arrow 0,0,0,0,ul,0,1,1,0 .set c=0 blue_arrow 27,0,0,0,ul,0,1,1,0 .set c=0 blue_arrow 54,0,0,0,ul,0,1,1,0 .set c=0 blue_arrow 81,0,0,0,ul,0,1,1,0 arrowsx11: .set d=-d .dw (arrowsx12-arrows12)*2 .dw hold|11*abs(d)+64 arrows12: .set c=abs(d)*11 blue_arrow 0,ul,0,0,ul,0,-1,1,0 .set c=abs(d)*11 blue_arrow 27,ul,0,0,ul,0,-1,1,0 .set c=abs(d)*11 blue_arrow 54,ul,0,0,ul,0,-1,1,0 .set c=abs(d)*11 blue_arrow 81,ul,0,0,ul,0,-1,1,0 arrowsx12: .set d=5 .dw (arrowsx13-arrows13)*2 .dw hold|10*d+64 arrows13: .set c=0 red_arrow 108,0,0,0,ul,0,1,1,0 .set c=0 red_arrow 130,0,0,0,ul,0,1,1,0 .set c=0 red_arrow 152,0,0,0,ul,0,1,1,0 .set c=0 red_arrow 174,0,0,0,ul,0,1,1,0 arrowsx13: .set d=-d .dw (arrowsx14-arrows14)*2 .dw hold|10*abs(d)+64 arrows14: .set c=abs(d)*10 red_arrow 108,ul,0,0,ul,0,-1,1,0 .set c=abs(d)*10 red_arrow 130,ul,0,0,ul,0,-1,1,0 .set c=abs(d)*10 red_arrow 152,ul,0,0,ul,0,-1,1,0 .set c=abs(d)*10 red_arrow 174,ul,0,0,ul,0,-1,1,0 arrowsx14: .set d=7 .dw (arrowsx15-arrows15)*2 .dw hold|7*d+64 arrows15: .set c=0 green_arrow 196,0,0,0,ul,0,1,1,0 .set c=0 green_arrow 211,0,0,0,ul,0,1,1,0 .set c=0 green_arrow 226,0,0,0,ul,0,1,1,0 .set c=0 green_arrow 241,0,0,0,ul,0,1,1,0 arrowsx15: .set d=-d .dw (arrowsx16-arrows16)*2 .dw hold|7*abs(d)+64 arrows16: .set c=abs(d)*7 green_arrow 196,ul,0,0,ul,0,-1,1,0 .set c=abs(d)*7 green_arrow 211,ul,0,0,ul,0,-1,1,0 .set c=abs(d)*7 green_arrow 226,ul,0,0,ul,0,-1,1,0 .set c=abs(d)*7 green_arrow 241,ul,0,0,ul,0,-1,1,0 arrowsx16: .set d=5 .dw (arrowsx17-arrows17)*2 .dw hold|11*d+64 arrows17: .set c=0 blue_arrow 0,0,0,0,ul,0,1,1,0 .set c=0 blue_arrow 27,0,0,0,ul,0,1,1,0 .set c=0 blue_arrow 54,0,0,0,ul,0,1,1,0 .set c=0 blue_arrow 81,0,0,0,ul,0,1,1,0 .set c=0 red_arrow 108,0,0,0,ul,0,1,1,0 .set c=0 red_arrow 130,0,0,0,ul,0,1,1,0 .set c=0 red_arrow 152,0,0,0,ul,0,1,1,0 .set c=0 red_arrow 174,0,0,0,ul,0,1,1,0 .set c=0 green_arrow 196,0,0,0,ul,0,1,1,0 .set c=0 green_arrow 211,0,0,0,ul,0,1,1,0 .set c=0 green_arrow 226,0,0,0,ul,0,1,1,0 .set c=0 green_arrow 241,0,0,0,ul,0,1,1,0 arrowsx17: .set d=-d .dw (arrowsx18-arrows18)*2 .dw hold|11*abs(d)+64 arrows18: .set c=abs(d)*11 blue_arrow 0,ul,0,0,ul,0,-1,1,0 .set c=abs(d)*11 blue_arrow 27,ul,0,0,ul,0,-1,1,0 .set c=abs(d)*11 blue_arrow 54,ul,0,0,ul,0,-1,1,0 .set c=abs(d)*11 blue_arrow 81,ul,0,0,ul,0,-1,1,0 .set c=abs(d)*10 red_arrow 108,ul,0,0,ul,0,-1,1,0 .set c=abs(d)*10 red_arrow 130,ul,0,0,ul,0,-1,1,0 .set c=abs(d)*10 red_arrow 152,ul,0,0,ul,0,-1,1,0 .set c=abs(d)*10 red_arrow 174,ul,0,0,ul,0,-1,1,0 .set c=abs(d)*7 green_arrow 196,ul,0,0,ul,0,-1,1,0 .set c=abs(d)*7 green_arrow 211,ul,0,0,ul,0,-1,1,0 .set c=abs(d)*7 green_arrow 226,ul,0,0,ul,0,-1,1,0 .set c=abs(d)*7 green_arrow 241,ul,0,0,ul,0,-1,1,0 arrowsx18: .dw 0 .endif effect9: .if eff9==1 .macro blue_arr n @0,@1,@2,@3,@4,@5,@6,@7,@8,@9 bcc @0+1,@0+10,4 .set _a=@0-10 .if _a<0 .set _a=98 .endif n _a,@1,@2,@3,@4,@5,@6,@7,@8,@9 bcc _a+1,_a+9,4 .endmacro .macro red_arr n @0,@1,@2,@3,@4,@5,@6,@7,@8,@9 bcc @0+1,@0+8,4 .set _a=@0-8 .if _a<108 .set _a=188 .endif n _a,@1,@2,@3,@4,@5,@6,@7,@8,@9 bcc _a+1,_a+7,4 .endmacro .macro green_arr n @0,@1,@2,@3,@4,@5,@6,@7,@8,@9 bcc @0+1,@0+6,4 .set _a=@0-6 .if _a<196 .set _a=250 .endif n _a,@1,@2,@3,@4,@5,@6,@7,@8,@9 bcc _a+1,_a+5,4 .endmacro .set h=ul .set rep=4 .dw (arrowsx21-arrows21)*2 .dw rep*4 arrows21: blue_arr 0,0,0,0,h,0,h,rep,0,2 blue_arr 27,0,0,0,h,0,h,rep,0,2 blue_arr 54,0,0,0,h,0,h,rep,0,2 blue_arr 81,0,0,0,h,0,h,rep,0,2 arrowsx21: .dw (arrowsx21-arrows21)*2 .dw rep*8 blue_arr 0,0,0,0,h,0,h,rep,0,4 blue_arr 27,0,0,0,h,0,h,rep,0,4 blue_arr 54,0,0,0,h,0,h,rep,0,4 blue_arr 81,0,0,0,h,0,h,rep,0,4 .dw (arrowsx21-arrows21)*2 .dw rep*12 blue_arr 0,0,0,0,h,0,h,rep,0,6 blue_arr 27,0,0,0,h,0,h,rep,0,6 blue_arr 54,0,0,0,h,0,h,rep,0,6 blue_arr 81,0,0,0,h,0,h,rep,0,6 .dw (arrowsx21-arrows21)*2 .dw rep*14 blue_arr 0,0,0,0,h,0,h,rep,0,7 blue_arr 27,0,0,0,h,0,h,rep,0,7 blue_arr 54,0,0,0,h,0,h,rep,0,7 blue_arr 81,0,0,0,h,0,h,rep,0,7 .dw (arrowsx21-arrows21)*2 .dw rep*32 blue_arr 0,0,0,0,h,0,h,rep+1,0,9 blue_arr 27,0,0,0,h,0,h,rep+1,0,9 blue_arr 54,0,0,0,h,0,h,rep+1,0,9 blue_arr 81,0,0,0,h,0,h,rep+1,0,9 .dw (arrowsx22-arrows22)*2 .dw rep*4 arrows22: red_arr 108,0,0,0,h,0,h,rep,0,2 red_arr 130,0,0,0,h,0,h,rep,0,2 red_arr 152,0,0,0,h,0,h,rep,0,2 red_arr 174,0,0,0,h,0,h,rep,0,2 arrowsx22: .dw (arrowsx22-arrows22)*2 .dw rep*8 red_arr 108,0,0,0,h,0,h,rep,0,4 red_arr 130,0,0,0,h,0,h,rep,0,4 red_arr 152,0,0,0,h,0,h,rep,0,4 red_arr 174,0,0,0,h,0,h,rep,0,4 .dw (arrowsx22-arrows22)*2 .dw rep*12 red_arr 108,0,0,0,h,0,h,rep,0,6 red_arr 130,0,0,0,h,0,h,rep,0,6 red_arr 152,0,0,0,h,0,h,rep,0,6 red_arr 174,0,0,0,h,0,h,rep,0,6 .dw (arrowsx22-arrows22)*2 .dw rep*14 red_arr 108,0,0,0,h,0,h,rep,0,7 red_arr 130,0,0,0,h,0,h,rep,0,7 red_arr 152,0,0,0,h,0,h,rep,0,7 red_arr 174,0,0,0,h,0,h,rep,0,7 .dw (arrowsx22-arrows22)*2 .dw rep*32 red_arr 108,0,0,0,h,0,h,rep+1,0,9 red_arr 130,0,0,0,h,0,h,rep+1,0,9 red_arr 152,0,0,0,h,0,h,rep+1,0,9 red_arr 174,0,0,0,h,0,h,rep+1,0,9 .dw (arrowsx23-arrows23)*2 .dw rep*4 arrows23: green_arr 196,0,0,0,h,0,h,rep,0,2 green_arr 211,0,0,0,h,0,h,rep,0,2 green_arr 226,0,0,0,h,0,h,rep,0,2 green_arr 241,0,0,0,h,0,h,rep,0,2 arrowsx23: .dw (arrowsx23-arrows23)*2 .dw rep*8 green_arr 196,0,0,0,h,0,h,rep,0,4 green_arr 211,0,0,0,h,0,h,rep,0,4 green_arr 226,0,0,0,h,0,h,rep,0,4 green_arr 241,0,0,0,h,0,h,rep,0,4 .dw (arrowsx23-arrows23)*2 .dw rep*12 green_arr 196,0,0,0,h,0,h,rep,0,6 green_arr 211,0,0,0,h,0,h,rep,0,6 green_arr 226,0,0,0,h,0,h,rep,0,6 green_arr 241,0,0,0,h,0,h,rep,0,6 .dw (arrowsx23-arrows23)*2 .dw rep*14 green_arr 196,0,0,0,h,0,h,rep,0,7 green_arr 211,0,0,0,h,0,h,rep,0,7 green_arr 226,0,0,0,h,0,h,rep,0,7 green_arr 241,0,0,0,h,0,h,rep,0,7 .dw (arrowsx23-arrows23)*2 .dw rep*32 green_arr 196,0,0,0,h,0,h,rep,0,9 green_arr 211,0,0,0,h,0,h,rep,0,9 green_arr 226,0,0,0,h,0,h,rep,0,9 green_arr 241,0,0,0,h,0,h,rep,0,9 .dw (arrowsx21-arrows21)*2 .dw rep*4 blue_arr 0,0,0,0,h,0,h,rep,0,2 blue_arr 27,0,0,0,h,0,h,rep,0,2 blue_arr 54,0,0,0,h,0,h,rep,0,2 blue_arr 81,0,0,0,h,0,h,rep,0,2 .dw (arrowsx21-arrows21)*2 .dw rep*8 blue_arr 0,0,0,0,h,0,h,rep,0,4 blue_arr 27,0,0,0,h,0,h,rep,0,4 blue_arr 54,0,0,0,h,0,h,rep,0,4 blue_arr 81,0,0,0,h,0,h,rep,0,4 .dw (arrowsx21-arrows21)*2 .dw rep*12 blue_arr 0,0,0,0,h,0,h,rep,0,6 blue_arr 27,0,0,0,h,0,h,rep,0,6 blue_arr 54,0,0,0,h,0,h,rep,0,6 blue_arr 81,0,0,0,h,0,h,rep,0,6 .dw (arrowsx21-arrows21)*2 .dw rep*14 blue_arr 0,0,0,0,h,0,h,rep,0,7 blue_arr 27,0,0,0,h,0,h,rep,0,7 blue_arr 54,0,0,0,h,0,h,rep,0,7 blue_arr 81,0,0,0,h,0,h,rep,0,7 .dw (arrowsx21-arrows21)*2 .dw hold|rep*40 blue_arr 0,0,0,0,h,0,h,rep+1,0,8 blue_arr 27,0,0,0,h,0,h,rep+1,0,8 blue_arr 54,0,0,0,h,0,h,rep+1,0,8 blue_arr 81,0,0,0,h,0,h,rep+1,0,8 .dw (arrowsx22-arrows22)*2 .dw rep*4 red_arr 108,0,0,0,h,0,h,rep,0,2 red_arr 130,0,0,0,h,0,h,rep,0,2 red_arr 152,0,0,0,h,0,h,rep,0,2 red_arr 174,0,0,0,h,0,h,rep,0,2 .dw (arrowsx22-arrows22)*2 .dw rep*8 red_arr 108,0,0,0,h,0,h,rep,0,4 red_arr 130,0,0,0,h,0,h,rep,0,4 red_arr 152,0,0,0,h,0,h,rep,0,4 red_arr 174,0,0,0,h,0,h,rep,0,4 .dw (arrowsx22-arrows22)*2 .dw rep*12 red_arr 108,0,0,0,h,0,h,rep,0,6 red_arr 130,0,0,0,h,0,h,rep,0,6 red_arr 152,0,0,0,h,0,h,rep,0,6 red_arr 174,0,0,0,h,0,h,rep,0,6 .dw (arrowsx22-arrows22)*2 .dw rep*14 red_arr 108,0,0,0,h,0,h,rep,0,7 red_arr 130,0,0,0,h,0,h,rep,0,7 red_arr 152,0,0,0,h,0,h,rep,0,7 red_arr 174,0,0,0,h,0,h,rep,0,7 .dw (arrowsx22-arrows22)*2 .dw rep*40 red_arr 108,0,0,0,h,0,h,rep+1,0,8 red_arr 130,0,0,0,h,0,h,rep+1,0,8 red_arr 152,0,0,0,h,0,h,rep+1,0,8 red_arr 174,0,0,0,h,0,h,rep+1,0,8 .dw (arrowsx23-arrows23)*2 .dw rep*4 green_arr 196,0,0,0,h,0,h,rep,0,2 green_arr 211,0,0,0,h,0,h,rep,0,2 green_arr 226,0,0,0,h,0,h,rep,0,2 green_arr 241,0,0,0,h,0,h,rep,0,2 .dw (arrowsx23-arrows23)*2 .dw rep*8 green_arr 196,0,0,0,h,0,h,rep,0,4 green_arr 211,0,0,0,h,0,h,rep,0,4 green_arr 226,0,0,0,h,0,h,rep,0,4 green_arr 241,0,0,0,h,0,h,rep,0,4 .dw (arrowsx23-arrows23)*2 .dw rep*12 green_arr 196,0,0,0,h,0,h,rep,0,6 green_arr 211,0,0,0,h,0,h,rep,0,6 green_arr 226,0,0,0,h,0,h,rep,0,6 green_arr 241,0,0,0,h,0,h,rep,0,6 .dw (arrowsx23-arrows23)*2 .dw rep*14 green_arr 196,0,0,0,h,0,h,rep,0,7 green_arr 211,0,0,0,h,0,h,rep,0,7 green_arr 226,0,0,0,h,0,h,rep,0,7 green_arr 241,0,0,0,h,0,h,rep,0,7 .dw (arrowsx23-arrows23)*2 .dw rep*32 green_arr 196,0,0,0,h,0,h,rep,0,8 green_arr 211,0,0,0,h,0,h,rep,0,8 green_arr 226,0,0,0,h,0,h,rep,0,8 green_arr 241,0,0,0,h,0,h,rep,0,8 .dw 0 .endif effect10: .if eff10==1 .set per=7 .set h=ul .set c=0 .set d=per*2 .dw (effect10x-effect10a)*2 .dw hold|per*2*24-24 effect10a: n 0,0,0,0,h,0,h,2,c,8 n 98,0,0,0,h,0,h,2,c,per bcc 99,107,4 .set c=c+d n 1,0,0,0,h,0,h,2,c,per bcc 2,10,4 .set c=c+d n 27,0,0,0,h,0,h,2,c,8 n 17,0,0,0,h,0,h,2,c,per bcc 18,26,4 .set c=c+d n 28,0,0,0,h,0,h,2,c,per bcc 29,37,4 .set c=c+d n 54,0,0,0,h,0,h,2,c,8 n 44,0,0,0,h,0,h,2,c,per bcc 45,53,4 .set c=c+d n 55,0,0,0,h,0,h,2,c,per bcc 56,64,4 .set c=c+d n 81,0,0,0,h,0,h,2,c,8 n 71,0,0,0,h,0,h,2,c,per bcc 72,80,4 .set c=c+d n 82,0,0,0,h,0,h,2,c,per bcc 83,91,4 n 108,0,0,0,h,0,h,2,c,8 n 187,0,0,0,h,0,h,2,c,per bcc 188,195,4 .set c=c+d n 109,0,0,0,h,0,h,2,c,per bcc 110,117,4 .set c=c+d n 130,0,0,0,h,0,h,2,c,8 n 121,0,0,0,h,0,h,2,c,per bcc 122,129,4 .set c=c+d n 131,0,0,0,h,0,h,2,c,per bcc 132,139,4 .set c=c+d n 152,0,0,0,h,0,h,2,c,8 n 143,0,0,0,h,0,h,2,c,per bcc 144,151,4 .set c=c+d n 153,0,0,0,h,0,h,2,c,per bcc 154,161,4 .set c=c+d n 174,0,0,0,h,0,h,2,c,8 n 165,0,0,0,h,0,h,2,c,per bcc 166,173,4 .set c=c+d n 175,0,0,0,h,0,h,2,c,per bcc 176,183,4 n 196,0,0,0,h,0,h,2,c,8 n 250,0,0,0,h,0,h,2,c,per bcc 251,255,4 .set c=c+d n 197,0,0,0,h,0,h,2,c,per bcc 198,202,4 .set c=c+d n 211,0,0,0,h,0,h,2,c,8 n 205,0,0,0,h,0,h,2,c,per bcc 206,210,4 .set c=c+d n 212,0,0,0,h,0,h,2,c,per bcc 213,217,4 .set c=c+d n 226,0,0,0,h,0,h,2,c,8 n 220,0,0,0,h,0,h,2,c,per bcc 221,225,4 .set c=c+d n 227,0,0,0,h,0,h,2,c,per bcc 228,232,4 .set c=c+d n 241,0,0,0,h,0,h,2,c,8 n 235,0,0,0,h,0,h,2,c,per bcc 236,240,4 .set c=c+d n 242,0,0,0,h,0,h,2,c,per bcc 243,247,4 effect10x: .dw 0 .endif effect11: .if eff11==1 .macro blue_arr11 .set p1=@0+10 .set p2=@0-10 .if p2<0 .set p2=98 .endif .set h=@4*1/11 n p1,@1,@2,@3,h,@5,@6,@7,@8,@9 b4 p2 .set h=@4*2/11 n p1-1,@1,@2,@3,h,@5,@6,@7,@8,@9 b4 p2+1 .set h=@4*3/11 n p1-2,@1,@2,@3,h,@5,@6,@7,@8,@9 b4 p2+2 .set h=@4*4/11 n p1-3,@1,@2,@3,h,@5,@6,@7,@8,@9 b4 p2+3 .set h=@4*5/11 n p1-4,@1,@2,@3,h,@5,@6,@7,@8,@9 b4 p2+4 .set h=@4*6/11 n p1-5,@1,@2,@3,h,@5,@6,@7,@8,@9 b4 p2+5 .set h=@4*7/11 n p1-6,@1,@2,@3,h,@5,@6,@7,@8,@9 b4 p2+6 .set h=@4*8/11 n p1-7,@1,@2,@3,h,@5,@6,@7,@8,@9 b4 p2+7 .set h=@4*9/11 n p1-8,@1,@2,@3,h,@5,@6,@7,@8,@9 b4 p2+8 .set h=@4*10/11 n p1-9,@1,@2,@3,h,@5,@6,@7,@8,@9 b4 p2+9 .set h=@4*11/11 n @0,@1,@2,@3,h,@5,@6,@7,@8,@9 .endmacro .macro red_arr11 .set p1=@0+9 .set p2=@0-9 .if p2<108 .set p2=187 .endif .set h=@4*1/10 n p1,@1,@2,@3,h,@5,@6,@7,@8,@9 b4 p2 .set h=@4*2/10 n p1-1,@1,@2,@3,h,@5,@6,@7,@8,@9 b4 p2+1 .set h=@4*3/10 n p1-2,@1,@2,@3,h,@5,@6,@7,@8,@9 b4 p2+2 .set h=@4*4/10 n p1-3,@1,@2,@3,h,@5,@6,@7,@8,@9 b4 p2+3 .set h=@4*5/10 n p1-4,@1,@2,@3,h,@5,@6,@7,@8,@9 b4 p2+4 .set h=@4*6/10 n p1-5,@1,@2,@3,h,@5,@6,@7,@8,@9 b4 p2+5 .set h=@4*7/10 n p1-6,@1,@2,@3,h,@5,@6,@7,@8,@9 b4 p2+6 .set h=@4*8/10 n p1-7,@1,@2,@3,h,@5,@6,@7,@8,@9 b4 p2+7 .set h=@4*9/10 n p1-8,@1,@2,@3,h,@5,@6,@7,@8,@9 b4 p2+8 .set h=@4*10/10 n @0,@1,@2,@3,h,@5,@6,@7,@8,@9 .endmacro .macro green_arr11 .set p1=@0+6 .set p2=@0-6 .if p2<196 .set p2=250 .endif .set h=@4*1/7 n p1,@1,@2,@3,h,@5,@6,@7,@8,@9 b4 p2 .set h=@4*2/7 n p1-1,@1,@2,@3,h,@5,@6,@7,@8,@9 b4 p2+1 .set h=@4*3/7 n p1-2,@1,@2,@3,h,@5,@6,@7,@8,@9 b4 p2+2 .set h=@4*4/7 n p1-3,@1,@2,@3,h,@5,@6,@7,@8,@9 b4 p2+3 .set h=@4*5/7 n p1-4,@1,@2,@3,h,@5,@6,@7,@8,@9 b4 p2+4 .set h=@4*6/7 n p1-5,@1,@2,@3,h,@5,@6,@7,@8,@9 b4 p2+5 .set h=@4*7/7 n @0,@1,@2,@3,h,@5,@6,@7,@8,@9 .endmacro .macro blue_arr11a .set p1=@0+10 .set p2=@0-10 .if p2<0 .set p2=98 .endif .set h=@3*1/11 n p1,h,@1,@2,h,@4,@5,@6,@7,@8 b4 p2 .set h=@3*2/11 n p1-1,h,@1,@2,h,@4,@5,@6,@7,@8 b4 p2+1 .set h=@3*3/11 n p1-2,h,@1,@2,h,@4,@5,@6,@7,@8 b4 p2+2 .set h=@3*4/11 n p1-3,h,@1,@2,h,@4,@5,@6,@7,@8 b4 p2+3 .set h=@3*5/11 n p1-4,h,@1,@2,h,@4,@5,@6,@7,@8 b4 p2+4 .set h=@3*6/11 n p1-5,h,@1,@2,h,@4,@5,@6,@7,@8 b4 p2+5 .set h=@3*7/11 n p1-6,h,@1,@2,h,@4,@5,@6,@7,@8 b4 p2+6 .set h=@3*8/11 n p1-7,h,@1,@2,h,@4,@5,@6,@7,@8 b4 p2+7 .set h=@3*9/11 n p1-8,h,@1,@2,h,@4,@5,@6,@7,@8 b4 p2+8 .set h=@3*10/11 n p1-9,h,@1,@2,h,@4,@5,@6,@7,@8 b4 p2+9 .set h=@3*11/11 n @0,h,@1,@2,h,@4,@5,@6,@7,@8 .endmacro .macro red_arr11a .set p1=@0+9 .set p2=@0-9 .if p2<108 .set p2=187 .endif .set h=@3*1/10 n p1,h,@1,@2,h,@4,@5,@6,@7,@8 b4 p2 .set h=@3*2/10 n p1-1,h,@1,@2,h,@4,@5,@6,@7,@8 b4 p2+1 .set h=@3*3/10 n p1-2,h,@1,@2,h,@4,@5,@6,@7,@8 b4 p2+2 .set h=@3*4/10 n p1-3,h,@1,@2,h,@4,@5,@6,@7,@8 b4 p2+3 .set h=@3*5/10 n p1-4,h,@1,@2,h,@4,@5,@6,@7,@8 b4 p2+4 .set h=@3*6/10 n p1-5,h,@1,@2,h,@4,@5,@6,@7,@8 b4 p2+5 .set h=@3*7/10 n p1-6,h,@1,@2,h,@4,@5,@6,@7,@8 b4 p2+6 .set h=@3*8/10 n p1-7,h,@1,@2,h,@4,@5,@6,@7,@8 b4 p2+7 .set h=@3*9/10 n p1-8,h,@1,@2,h,@4,@5,@6,@7,@8 b4 p2+8 .set h=@3*10/10 n @0,h,@1,@2,h,@4,@5,@6,@7,@8 .endmacro .macro green_arr11a .set p1=@0+6 .set p2=@0-6 .if p2<196 .set p2=250 .endif .set h=@3*1/7 n p1,h,@1,@2,h,@4,@5,@6,@7,@8 b4 p2 .set h=@3*2/7 n p1-1,h,@1,@2,h,@4,@5,@6,@7,@8 b4 p2+1 .set h=@3*3/7 n p1-2,h,@1,@2,h,@4,@5,@6,@7,@8 b4 p2+2 .set h=@3*4/7 n p1-3,h,@1,@2,h,@4,@5,@6,@7,@8 b4 p2+3 .set h=@3*5/7 n p1-4,h,@1,@2,h,@4,@5,@6,@7,@8 b4 p2+4 .set h=@3*6/7 n p1-5,h,@1,@2,h,@4,@5,@6,@7,@8 b4 p2+5 .set h=@3*7/7 n @0,h,@1,@2,h,@4,@5,@6,@7,@8 .endmacro .macro blue_arr11b .set p1=@0+10 .set p2=@0-10 .if p2<0 .set p2=98 .endif .set h=@4*11/11 n p1,@1,@2,@3,h,@5,@6,@7,@8,@9 b4 p2 .set h=@4*10/11 n p1-1,@1,@2,@3,h,@5,@6,@7,@8,@9 b4 p2+1 .set h=@4*9/11 n p1-2,@1,@2,@3,h,@5,@6,@7,@8,@9 b4 p2+2 .set h=@4*8/11 n p1-3,@1,@2,@3,h,@5,@6,@7,@8,@9 b4 p2+3 .set h=@4*7/11 n p1-4,@1,@2,@3,h,@5,@6,@7,@8,@9 b4 p2+4 .set h=@4*6/11 n p1-5,@1,@2,@3,h,@5,@6,@7,@8,@9 b4 p2+5 .set h=@4*5/11 n p1-6,@1,@2,@3,h,@5,@6,@7,@8,@9 b4 p2+6 .set h=@4*4/11 n p1-7,@1,@2,@3,h,@5,@6,@7,@8,@9 b4 p2+7 .set h=@4*3/11 n p1-8,@1,@2,@3,h,@5,@6,@7,@8,@9 b4 p2+8 .set h=@4*2/11 n p1-9,@1,@2,@3,h,@5,@6,@7,@8,@9 b4 p2+9 .set h=@4*1/11 n @0,@1,@2,@3,h,@5,@6,@7,@8,@9 .endmacro .macro red_arr11b .set p1=@0+9 .set p2=@0-9 .if p2<108 .set p2=187 .endif .set h=@4*10/10 n p1,@1,@2,@3,h,@5,@6,@7,@8,@9 b4 p2 .set h=@4*9/10 n p1-1,@1,@2,@3,h,@5,@6,@7,@8,@9 b4 p2+1 .set h=@4*8/10 n p1-2,@1,@2,@3,h,@5,@6,@7,@8,@9 b4 p2+2 .set h=@4*7/10 n p1-3,@1,@2,@3,h,@5,@6,@7,@8,@9 b4 p2+3 .set h=@4*6/10 n p1-4,@1,@2,@3,h,@5,@6,@7,@8,@9 b4 p2+4 .set h=@4*5/10 n p1-5,@1,@2,@3,h,@5,@6,@7,@8,@9 b4 p2+5 .set h=@4*4/10 n p1-6,@1,@2,@3,h,@5,@6,@7,@8,@9 b4 p2+6 .set h=@4*3/10 n p1-7,@1,@2,@3,h,@5,@6,@7,@8,@9 b4 p2+7 .set h=@4*2/10 n p1-8,@1,@2,@3,h,@5,@6,@7,@8,@9 b4 p2+8 .set h=@4*1/10 n @0,@1,@2,@3,h,@5,@6,@7,@8,@9 .endmacro .macro green_arr11b .set p1=@0+6 .set p2=@0-6 .if p2<196 .set p2=250 .endif .set h=@4*7/7 n p1,@1,@2,@3,h,@5,@6,@7,@8,@9 b4 p2 .set h=@4*6/7 n p1-1,@1,@2,@3,h,@5,@6,@7,@8,@9 b4 p2+1 .set h=@4*5/7 n p1-2,@1,@2,@3,h,@5,@6,@7,@8,@9 b4 p2+2 .set h=@4*4/7 n p1-3,@1,@2,@3,h,@5,@6,@7,@8,@9 b4 p2+3 .set h=@4*3/7 n p1-4,@1,@2,@3,h,@5,@6,@7,@8,@9 b4 p2+4 .set h=@4*2/7 n p1-5,@1,@2,@3,h,@5,@6,@7,@8,@9 b4 p2+5 .set h=@4*1/7 n @0,@1,@2,@3,h,@5,@6,@7,@8,@9 .endmacro .macro blue_arr11c .set p1=@0+10 .set p2=@0-10 .if p2<0 .set p2=98 .endif .set h=@3*11/11 n p1,h,@1,@2,h,@4,@5,@6,@7,@8 b4 p2 .set h=@3*10/11 n p1-1,h,@1,@2,h,@4,@5,@6,@7,@8 b4 p2+1 .set h=@3*9/11 n p1-2,h,@1,@2,h,@4,@5,@6,@7,@8 b4 p2+2 .set h=@3*8/11 n p1-3,h,@1,@2,h,@4,@5,@6,@7,@8 b4 p2+3 .set h=@3*7/11 n p1-4,h,@1,@2,h,@4,@5,@6,@7,@8 b4 p2+4 .set h=@3*6/11 n p1-5,h,@1,@2,h,@4,@5,@6,@7,@8 b4 p2+5 .set h=@3*5/11 n p1-6,h,@1,@2,h,@4,@5,@6,@7,@8 b4 p2+6 .set h=@3*4/11 n p1-7,h,@1,@2,h,@4,@5,@6,@7,@8 b4 p2+7 .set h=@3*3/11 n p1-8,h,@1,@2,h,@4,@5,@6,@7,@8 b4 p2+8 .set h=@3*2/11 n p1-9,h,@1,@2,h,@4,@5,@6,@7,@8 b4 p2+9 .set h=@3*1/11 n @0,h,@1,@2,h,@4,@5,@6,@7,@8 .endmacro .macro red_arr11c .set p1=@0+9 .set p2=@0-9 .if p2<108 .set p2=187 .endif .set h=@3*10/10 n p1,h,@1,@2,h,@4,@5,@6,@7,@8 b4 p2 .set h=@3*9/10 n p1-1,h,@1,@2,h,@4,@5,@6,@7,@8 b4 p2+1 .set h=@3*8/10 n p1-2,h,@1,@2,h,@4,@5,@6,@7,@8 b4 p2+2 .set h=@3*7/10 n p1-3,h,@1,@2,h,@4,@5,@6,@7,@8 b4 p2+3 .set h=@3*6/10 n p1-4,h,@1,@2,h,@4,@5,@6,@7,@8 b4 p2+4 .set h=@3*5/10 n p1-5,h,@1,@2,h,@4,@5,@6,@7,@8 b4 p2+5 .set h=@3*4/10 n p1-6,h,@1,@2,h,@4,@5,@6,@7,@8 b4 p2+6 .set h=@3*3/10 n p1-7,h,@1,@2,h,@4,@5,@6,@7,@8 b4 p2+7 .set h=@3*2/10 n p1-8,h,@1,@2,h,@4,@5,@6,@7,@8 b4 p2+8 .set h=@3*1/10 n @0,h,@1,@2,h,@4,@5,@6,@7,@8 .endmacro .macro green_arr11c .set p1=@0+6 .set p2=@0-6 .if p2<196 .set p2=250 .endif .set h=@3*7/7 n p1,h,@1,@2,h,@4,@5,@6,@7,@8 b4 p2 .set h=@3*6/7 n p1-1,h,@1,@2,h,@4,@5,@6,@7,@8 b4 p2+1 .set h=@3*5/7 n p1-2,h,@1,@2,h,@4,@5,@6,@7,@8 b4 p2+2 .set h=@3*4/7 n p1-3,h,@1,@2,h,@4,@5,@6,@7,@8 b4 p2+3 .set h=@3*3/7 n p1-4,h,@1,@2,h,@4,@5,@6,@7,@8 b4 p2+4 .set h=@3*2/7 n p1-5,h,@1,@2,h,@4,@5,@6,@7,@8 b4 p2+5 .set h=@3*1/7 n @0,h,@1,@2,h,@4,@5,@6,@7,@8 .endmacro .dw (effect11_1x-effect11_1)*2 .dw hold|700 effect11_1: blue_arr11 0,0,0,0,ul,0,1,1,0,2 blue_arr11 27,0,0,0,ul,0,1,1,0,2 blue_arr11 54,0,0,0,ul,0,1,1,0,2 blue_arr11 81,0,0,0,ul,0,1,1,0,2 red_arr11 108,0,0,0,ul,0,1,1,200,2 red_arr11 130,0,0,0,ul,0,1,1,200,2 red_arr11 152,0,0,0,ul,0,1,1,200,2 red_arr11 174,0,0,0,ul,0,1,1,200,2 green_arr11 196,0,0,0,ul,0,1,1,400,2 green_arr11 211,0,0,0,ul,0,1,1,400,2 green_arr11 226,0,0,0,ul,0,1,1,400,2 green_arr11 241,0,0,0,ul,0,1,1,400,2 effect11_1x: .dw (effect11_r1x-effect11_r1)*2 .dw 5000 effect11_r1: r 11,0,0,0,ul,2,0,0,2 bcc 12,16,4 bcc 118,120,_c bcc 203,204,_c bcc 38,43,_c bcc 140,142,_c bcc 218,219,_c bcc 65,70,_c bcc 162,164,_c bcc 233,234,_c bcc 92,97,_c bcc 184,186,_c bcc 248,249,_c effect11_r1x: .dw (effect11_2x-effect11_2)*2 .dw hold|700 effect11_2: green_arr11a 196,0,0,ul,0,-1,1,0,2 green_arr11a 211,0,0,ul,0,-1,1,0,2 green_arr11a 226,0,0,ul,0,-1,1,0,2 green_arr11a 241,0,0,ul,0,-1,1,0,2 red_arr11a 108,0,0,ul,0,-1,1,200,2 red_arr11a 130,0,0,ul,0,-1,1,200,2 red_arr11a 152,0,0,ul,0,-1,1,200,2 red_arr11a 174,0,0,ul,0,-1,1,200,2 blue_arr11a 0,0,0,ul,0,-1,1,400,2 blue_arr11a 27,0,0,ul,0,-1,1,400,2 blue_arr11a 54,0,0,ul,0,-1,1,400,2 blue_arr11a 81,0,0,ul,0,-1,1,400,2 effect11_2x: .dw (effect11_3x-effect11_3)*2 .dw hold|700 effect11_3: blue_arr11b 0,0,0,0,ul,0,1,1,0,2 blue_arr11b 27,0,0,0,ul,0,1,1,0,2 blue_arr11b 54,0,0,0,ul,0,1,1,0,2 blue_arr11b 81,0,0,0,ul,0,1,1,0,2 red_arr11b 108,0,0,0,ul,0,1,1,200,2 red_arr11b 130,0,0,0,ul,0,1,1,200,2 red_arr11b 152,0,0,0,ul,0,1,1,200,2 red_arr11b 174,0,0,0,ul,0,1,1,200,2 green_arr11b 196,0,0,0,ul,0,1,1,400,2 green_arr11b 211,0,0,0,ul,0,1,1,400,2 green_arr11b 226,0,0,0,ul,0,1,1,400,2 green_arr11b 241,0,0,0,ul,0,1,1,400,2 effect11_3x: .dw (effect11_r2x-effect11_r2)*2 .dw 5000 effect11_r2: r 11,0,0,0,ul,2,0,0,2 bcc 12,16,4 bcc 118,120,_c bcc 203,204,_c bcc 38,43,_c bcc 140,142,_c bcc 218,219,_c bcc 65,70,_c bcc 162,164,_c bcc 233,234,_c bcc 92,97,_c bcc 184,186,_c bcc 248,249,_c effect11_r2x: .dw (effect11_4x-effect11_4)*2 .dw hold|700 effect11_4: green_arr11c 196,0,0,ul,0,-1,1,0,2 green_arr11c 211,0,0,ul,0,-1,1,0,2 green_arr11c 226,0,0,ul,0,-1,1,0,2 green_arr11c 241,0,0,ul,0,-1,1,0,2 red_arr11c 108,0,0,ul,0,-1,1,200,2 red_arr11c 130,0,0,ul,0,-1,1,200,2 red_arr11c 152,0,0,ul,0,-1,1,200,2 red_arr11c 174,0,0,ul,0,-1,1,200,2 blue_arr11c 0,0,0,ul,0,-1,1,400,2 blue_arr11c 27,0,0,ul,0,-1,1,400,2 blue_arr11c 54,0,0,ul,0,-1,1,400,2 blue_arr11c 81,0,0,ul,0,-1,1,400,2 effect11_4x: .dw 0 .endif ;LED number, start value, lower limit, decrement factor, upper limit, increment factor, initial step size, half cycles count, start delay, step delay effect12: .if eff12==1 .set v=10 .set _delay=7 .set d=(_delay+1)*8 .dw 3*8+253*2 .dw 3*d n 13,v,0,0,v,0,-(v+1),1,d,0 bcs 10 bc 7 bc 4 bc 1 bc 95 bc 98 bc 101 bc 104 bc 107 bc 94 bc 91 bc 88 bc 85 bc 82 bc 68 bc 71 bc 74 bc 77 bc 80 bc 67 bc 64 bc 61 bc 58 bc 55 bc 41 bc 44 bc 47 bc 50 bc 53 bc 40 bc 37 bc 34 bc 31 bc 28 bc 14 bc 17 bc 20 bc 23 bc 26 bc 117 bc 114 bc 111 bc 108 bc 187 bc 190 bc 193 bc 183 bc 180 bc 177 bc 174 bc 165 bc 168 bc 171 bc 161 bc 158 bc 155 bc 152 bc 143 bc 146 bc 149 bc 139 bc 136 bc 133 bc 130 bc 121 bc 124 bc 127 bc 202 bc 199 bc 196 bc 250 bc 253 bc 247 bc 244 bc 241 bc 235 bc 238 bc 232 bc 229 bc 226 bc 220 bc 223 bc 217 bc 214 bc 211 bc 205 bc 208 n 12,0,0,0,v,0,v+1,2,d,_delay+7 bcs 9 bc 6 bc 3 bc 0 bc 96 bc 99 bc 102 bc 105 bc 93 bc 90 bc 87 bc 84 bc 81 bc 69 bc 72 bc 75 bc 78 bc 66 bc 63 bc 60 bc 57 bc 54 bc 42 bc 45 bc 48 bc 51 bc 39 bc 36 bc 33 bc 30 bc 27 bc 15 bc 18 bc 21 bc 24 bc 119 bc 116 bc 113 bc 110 bc 185 bc 188 bc 191 bc 194 bc 182 bc 179 bc 176 bc 163 bc 166 bc 169 bc 172 bc 160 bc 157 bc 154 bc 141 bc 144 bc 150 bc 138 bc 135 bc 132 bc 119 bc 122 bc 125 bc 128 bc 201 bc 198 bc 251 bc 254 bc 246 bc 243 bc 236 bc 239 bc 231 bc 228 bc 221 bc 224 bc 216 bc 213 bc 206 bc 209 n 11,0,0,0,v,0,v+1,2,2*d+1,_delay+7 bcs 8 bc 5 bc 2 bc 97 bc 100 bc 103 bc 106 bc 92 bc 89 bc 86 bc 83 bc 70 bc 73 bc 76 bc 79 bc 65 bc 62 bc 59 bc 56 bc 43 bc 46 bc 49 bc 52 bc 38 bc 35 bc 32 bc 29 bc 16 bc 19 bc 22 bc 25 bc 118 bc 115 bc 112 bc 109 bc 186 bc 189 bc 192 bc 195 bc 184 bc 181 bc 178 bc 175 bc 164 bc 167 bc 170 bc 173 bc 162 bc 159 bc 156 bc 153 bc 142 bc 145 bc 148 bc 151 bc 140 bc 137 bc 134 bc 131 bc 120 bc 123 bc 126 bc 129 bc 203 bc 200 bc 197 bc 249 bc 252 bc 255 bc 248 bc 245 bc 242 bc 234 bc 237 bc 240 bc 233 bc 230 bc 227 bc 219 bc 222 bc 225 bc 218 bc 215 bc 212 bc 204 bc 207 bc 210 .dw 0 .endif effect13: .if eff13==1 .set v=ul ;ul .dw 3*8+105*2 .dw 6*v n 13,0,0,0,v,0,1,2,0,0 bcs 10 bc 7 bc 4 bc 1 bc 95 bc 98 bc 101 bc 104 bc 107 bc 94 bc 91 bc 88 bc 85 bc 82 bc 68 bc 71 bc 74 bc 77 bc 80 bc 67 bc 64 bc 61 bc 58 bc 55 bc 41 bc 44 bc 47 bc 50 bc 53 bc 40 bc 37 bc 34 bc 31 bc 28 bc 14 bc 17 bc 20 bc 23 bc 26 n 12,0,0,0,v,0,1,2,2*v,0 bcs 9 bc 6 bc 3 bc 0 bc 96 bc 99 bc 102 bc 105 bc 93 bc 90 bc 87 bc 84 bc 81 bc 69 bc 72 bc 75 bc 78 bc 66 bc 63 bc 60 bc 57 bc 54 bc 42 bc 45 bc 48 bc 51 bc 39 bc 36 bc 33 bc 30 bc 27 bc 15 bc 18 bc 21 bc 24 n 11,0,0,0,v,0,1,2,4*v,0 bcs 8 bc 5 bc 2 bc 97 bc 100 bc 103 bc 106 bc 92 bc 89 bc 86 bc 83 bc 70 bc 73 bc 76 bc 79 bc 65 bc 62 bc 59 bc 56 bc 43 bc 46 bc 49 bc 52 bc 38 bc 35 bc 32 bc 29 bc 16 bc 19 bc 22 bc 25 .dw 0 effect13_1: .dw 3*8+85*2 .dw 6*v n 119,0,0,0,v,0,1,2,0,0 bcs 116 bc 113 bc 110 bc 185 bc 188 bc 191 bc 194 bc 182 bc 179 bc 176 bc 163 bc 166 bc 169 bc 172 bc 160 bc 157 bc 154 bc 141 bc 144 bc 150 bc 138 bc 135 bc 132 bc 119 bc 122 bc 125 bc 128 n 118,0,0,0,v,0,1,2,2*v,0 bcs 115 bc 112 bc 109 bc 186 bc 189 bc 192 bc 195 bc 184 bc 181 bc 178 bc 175 bc 164 bc 167 bc 170 bc 173 bc 162 bc 159 bc 156 bc 153 bc 142 bc 145 bc 148 bc 151 bc 140 bc 137 bc 134 bc 131 bc 120 bc 123 bc 126 bc 129 n 117,0,0,0,v,0,1,2,4*v,0 bcs 114 bc 111 bc 108 bc 187 bc 190 bc 193 bc 183 bc 180 bc 177 bc 174 bc 165 bc 168 bc 171 bc 161 bc 158 bc 155 bc 152 bc 143 bc 146 bc 149 bc 139 bc 136 bc 133 bc 130 bc 121 bc 124 bc 127 .dw 0 effect13_2: .dw 3*8+57*2 .dw 6*v n 203,0,0,0,v,0,1,2,0,0 bcs 200 bc 197 bc 249 bc 252 bc 255 bc 248 bc 245 bc 242 bc 234 bc 237 bc 240 bc 233 bc 230 bc 227 bc 219 bc 222 bc 225 bc 218 bc 215 bc 212 bc 204 bc 207 bc 210 n 202,0,0,0,v,0,1,2,2*v,0 bcs 199 bc 196 bc 250 bc 253 bc 247 bc 244 bc 241 bc 235 bc 238 bc 232 bc 229 bc 226 bc 220 bc 223 bc 217 bc 214 bc 211 bc 205 bc 208 n 201,0,0,0,v,0,1,2,4*v,0 bcs 198 bc 251 bc 254 bc 246 bc 243 bc 236 bc 239 bc 231 bc 228 bc 221 bc 224 bc 216 bc 213 bc 206 bc 209 .dw 0 effect13_3: .dw 3*8+145*2 .dw 6*v n 119,0,0,0,v,0,1,2,0,0 bcs 116 bc 113 bc 110 bc 185 bc 188 bc 191 bc 194 bc 182 bc 179 bc 176 bc 163 bc 166 bc 169 bc 172 bc 160 bc 157 bc 154 bc 141 bc 144 bc 150 bc 138 bc 135 bc 132 bc 119 bc 122 bc 125 bc 128 bc 203 bc 200 bc 197 bc 249 bc 252 bc 255 bc 248 bc 245 bc 242 bc 234 bc 237 bc 240 bc 233 bc 230 bc 227 bc 219 bc 222 bc 225 bc 218 bc 215 bc 212 bc 204 bc 207 bc 210 n 118,0,0,0,v,0,1,2,2*v,0 bcs 115 bc 112 bc 109 bc 186 bc 189 bc 192 bc 195 bc 184 bc 181 bc 178 bc 175 bc 164 bc 167 bc 170 bc 173 bc 162 bc 159 bc 156 bc 153 bc 142 bc 145 bc 148 bc 151 bc 140 bc 137 bc 134 bc 131 bc 120 bc 123 bc 126 bc 129 bc 202 bc 199 bc 196 bc 250 bc 253 bc 247 bc 244 bc 241 bc 235 bc 238 bc 232 bc 229 bc 226 bc 220 bc 223 bc 217 bc 214 bc 211 bc 205 bc 208 n 117,0,0,0,v,0,1,2,4*v,0 bcs 114 bc 111 bc 108 bc 187 bc 190 bc 193 bc 183 bc 180 bc 177 bc 174 bc 165 bc 168 bc 171 bc 161 bc 158 bc 155 bc 152 bc 143 bc 146 bc 149 bc 139 bc 136 bc 133 bc 130 bc 121 bc 124 bc 127 bc 201 bc 198 bc 251 bc 254 bc 246 bc 243 bc 236 bc 239 bc 231 bc 228 bc 221 bc 224 bc 216 bc 213 bc 206 bc 209 .dw 0 effect13_4: .dw 3*8+253*2 .dw 6*v n 13,0,0,0,v,0,1,2,0,0 bcs 10 bc 7 bc 4 bc 1 bc 95 bc 98 bc 101 bc 104 bc 107 bc 94 bc 91 bc 88 bc 85 bc 82 bc 68 bc 71 bc 74 bc 77 bc 80 bc 67 bc 64 bc 61 bc 58 bc 55 bc 41 bc 44 bc 47 bc 50 bc 53 bc 40 bc 37 bc 34 bc 31 bc 28 bc 14 bc 17 bc 20 bc 23 bc 26 bc 119 bc 116 bc 113 bc 110 bc 185 bc 188 bc 191 bc 194 bc 182 bc 179 bc 176 bc 163 bc 166 bc 169 bc 172 bc 160 bc 157 bc 154 bc 141 bc 144 bc 150 bc 138 bc 135 bc 132 bc 119 bc 122 bc 125 bc 128 bc 203 bc 200 bc 197 bc 249 bc 252 bc 255 bc 248 bc 245 bc 242 bc 234 bc 237 bc 240 bc 233 bc 230 bc 227 bc 219 bc 222 bc 225 bc 218 bc 215 bc 212 bc 204 bc 207 bc 210 n 12,0,0,0,v,0,1,2,2*v,0 bcs 9 bc 6 bc 3 bc 0 bc 96 bc 99 bc 102 bc 105 bc 93 bc 90 bc 87 bc 84 bc 81 bc 69 bc 72 bc 75 bc 78 bc 66 bc 63 bc 60 bc 57 bc 54 bc 42 bc 45 bc 48 bc 51 bc 39 bc 36 bc 33 bc 30 bc 27 bc 15 bc 18 bc 21 bc 24 bc 118 bc 115 bc 112 bc 109 bc 186 bc 189 bc 192 bc 195 bc 184 bc 181 bc 178 bc 175 bc 164 bc 167 bc 170 bc 173 bc 162 bc 159 bc 156 bc 153 bc 142 bc 145 bc 148 bc 151 bc 140 bc 137 bc 134 bc 131 bc 120 bc 123 bc 126 bc 129 bc 202 bc 199 bc 196 bc 250 bc 253 bc 247 bc 244 bc 241 bc 235 bc 238 bc 232 bc 229 bc 226 bc 220 bc 223 bc 217 bc 214 bc 211 bc 205 bc 208 n 11,0,0,0,v,0,1,2,4*v,0 bcs 8 bc 5 bc 2 bc 97 bc 100 bc 103 bc 106 bc 92 bc 89 bc 86 bc 83 bc 70 bc 73 bc 76 bc 79 bc 65 bc 62 bc 59 bc 56 bc 43 bc 46 bc 49 bc 52 bc 38 bc 35 bc 32 bc 29 bc 16 bc 19 bc 22 bc 25 bc 117 bc 114 bc 111 bc 108 bc 187 bc 190 bc 193 bc 183 bc 180 bc 177 bc 174 bc 165 bc 168 bc 171 bc 161 bc 158 bc 155 bc 152 bc 143 bc 146 bc 149 bc 139 bc 136 bc 133 bc 130 bc 121 bc 124 bc 127 bc 201 bc 198 bc 251 bc 254 bc 246 bc 243 bc 236 bc 239 bc 231 bc 228 bc 221 bc 224 bc 216 bc 213 bc 206 bc 209 .dw 0 .endif .macro nd_on n @0,0,0,0,v,0,1,1,c,0 .set c=c+d .endmacro ;LED number, start value, lower limit, decrement factor, upper limit, increment factor, initial step size, half cycles count, start delay, step delay effect14: .if eff14==1 .set c=0 .set d=5 .set v=ul .dw 28*8+80*2 .dw hold|300 nd_on 0 bcs 54 nd_on 1 bcs 53 bc 55 bc 107 nd_on 2 bcs 52 bc 56 bc 106 nd_on 3 bcs 51 bc 57 bc 105 nd_on 4 bcs 50 bc 58 bc 104 nd_on 5 bcs 49 bc 59 bc 103 nd_on 6 bcs 48 bc 60 bc 102 nd_on 7 bcs 47 bc 61 bc 101 nd_on 8 bcs 46 bc 62 bc 100 nd_on 9 bcs 45 bc 63 bc 99 nd_on 10 bcs 44 bc 64 bc 98 nd_on 11 bcs 43 bc 65 bc 97 nd_on 12 bcs 42 bc 66 bc 96 nd_on 13 bcs 41 bc 67 bc 95 nd_on 14 bcs 40 bc 68 bc 94 nd_on 15 bcs 39 bc 69 bc 93 nd_on 16 bcs 38 bc 70 bc 92 nd_on 17 bcs 37 bc 71 bc 91 nd_on 18 bcs 36 bc 72 bc 90 nd_on 19 bcs 35 bc 73 bc 89 nd_on 20 bcs 34 bc 74 bc 88 nd_on 21 bcs 33 bc 75 bc 87 nd_on 22 bcs 32 bc 76 bc 86 nd_on 23 bcs 31 bc 77 bc 85 nd_on 24 bcs 30 bc 78 bc 84 nd_on 25 bcs 29 bc 79 bc 83 nd_on 26 bcs 28 bc 80 bc 82 nd_on 27 bcs 81 .dw 8+107*2 .dw v n 0,v,0,0,v,0,-1,1,0,0 bcc 1,107,4 .set c=0 .dw 23*8+65*2 .dw hold|300 nd_on 108 bcs 152 nd_on 109 bcs 151 bc 153 bc 195 nd_on 110 bcs 150 bc 154 bc 194 nd_on 111 bcs 149 bc 155 bc 193 nd_on 112 bcs 148 bc 156 bc 192 nd_on 113 bcs 147 bc 157 bc 191 nd_on 114 bcs 146 bc 158 bc 190 nd_on 115 bcs 145 bc 159 bc 189 nd_on 116 bcs 144 bc 160 bc 188 nd_on 117 bcs 143 bc 161 bc 187 nd_on 118 bcs 142 bc 162 bc 186 nd_on 119 bcs 141 bc 163 bc 185 nd_on 120 bcs 140 bc 164 bc 184 nd_on 121 bcs 139 bc 165 bc 183 nd_on 122 bcs 138 bc 166 bc 182 nd_on 123 bcs 137 bc 167 bc 181 nd_on 124 bcs 136 bc 168 bc 180 nd_on 125 bcs 135 bc 169 bc 179 nd_on 126 bcs 134 bc 170 bc 178 nd_on 127 bcs 133 bc 171 bc 177 nd_on 128 bcs 132 bc 172 bc 176 nd_on 129 bcs 131 bc 173 bc 175 nd_on 130 bcs 174 .dw 8+87*2 .dw v n 108,v,0,0,v,0,-1,1,0,0 bcc 109,195,4 .set c=0 .dw 16*8+44*2 .dw hold|300 nd_on 196 bcs 226 nd_on 197 bcs 225 bc 227 bc 255 nd_on 198 bcs 224 bc 228 bc 254 nd_on 199 bcs 223 bc 229 bc 253 nd_on 200 bcs 222 bc 230 bc 252 nd_on 201 bcs 221 bc 231 bc 251 nd_on 202 bcs 220 bc 232 bc 250 nd_on 203 bcs 219 bc 233 bc 249 nd_on 204 bcs 218 bc 234 bc 248 nd_on 205 bcs 217 bc 235 bc 247 nd_on 206 bcs 216 bc 236 bc 246 nd_on 207 bcs 215 bc 237 bc 245 nd_on 208 bcs 214 bc 238 bc 244 nd_on 209 bcs 213 bc 239 bc 243 nd_on 210 bcs 212 bc 240 bc 242 nd_on 211 bcs 241 .dw 8+59*2 .dw v n 196,v,0,0,v,0,-1,1,0,0 bcc 197,255,4 .set c=0 .dw 67*8+189*2 .dw hold|500 nd_on 0 bcs 54 nd_on 1 bcs 53 bc 55 bc 107 nd_on 2 bcs 52 bc 56 bc 106 nd_on 3 bcs 51 bc 57 bc 105 nd_on 4 bcs 50 bc 58 bc 104 nd_on 5 bcs 49 bc 59 bc 103 nd_on 6 bcs 48 bc 60 bc 102 nd_on 7 bcs 47 bc 61 bc 101 nd_on 8 bcs 46 bc 62 bc 100 nd_on 9 bcs 45 bc 63 bc 99 nd_on 10 bcs 44 bc 64 bc 98 nd_on 11 bcs 43 bc 65 bc 97 nd_on 12 bcs 42 bc 66 bc 96 nd_on 13 bcs 41 bc 67 bc 95 nd_on 14 bcs 40 bc 68 bc 94 nd_on 15 bcs 39 bc 69 bc 93 nd_on 16 bcs 38 bc 70 bc 92 nd_on 17 bcs 37 bc 71 bc 91 nd_on 18 bcs 36 bc 72 bc 90 nd_on 19 bcs 35 bc 73 bc 89 nd_on 20 bcs 34 bc 74 bc 88 nd_on 21 bcs 33 bc 75 bc 87 nd_on 22 bcs 32 bc 76 bc 86 nd_on 23 bcs 31 bc 77 bc 85 nd_on 24 bcs 30 bc 78 bc 84 nd_on 25 bcs 29 bc 79 bc 83 nd_on 26 bcs 28 bc 80 bc 82 nd_on 27 bcs 81 nd_on 108 bcs 152 nd_on 109 bcs 151 bc 153 bc 195 nd_on 110 bcs 150 bc 154 bc 194 nd_on 111 bcs 149 bc 155 bc 193 nd_on 112 bcs 148 bc 156 bc 192 nd_on 113 bcs 147 bc 157 bc 191 nd_on 114 bcs 146 bc 158 bc 190 nd_on 115 bcs 145 bc 159 bc 189 nd_on 116 bcs 144 bc 160 bc 188 nd_on 117 bcs 143 bc 161 bc 187 nd_on 118 bcs 142 bc 162 bc 186 nd_on 119 bcs 141 bc 163 bc 185 nd_on 120 bcs 140 bc 164 bc 184 nd_on 121 bcs 139 bc 165 bc 183 nd_on 122 bcs 138 bc 166 bc 182 nd_on 123 bcs 137 bc 167 bc 181 nd_on 124 bcs 136 bc 168 bc 180 nd_on 125 bcs 135 bc 169 bc 179 nd_on 126 bcs 134 bc 170 bc 178 nd_on 127 bcs 133 bc 171 bc 177 nd_on 128 bcs 132 bc 172 bc 176 nd_on 129 bcs 131 bc 173 bc 175 nd_on 130 bcs 174 nd_on 196 bcs 226 nd_on 197 bcs 225 bc 227 bc 255 nd_on 198 bcs 224 bc 228 bc 254 nd_on 199 bcs 223 bc 229 bc 253 nd_on 200 bcs 222 bc 230 bc 252 nd_on 201 bcs 221 bc 231 bc 251 nd_on 202 bcs 220 bc 232 bc 250 nd_on 203 bcs 219 bc 233 bc 249 nd_on 204 bcs 218 bc 234 bc 248 nd_on 205 bcs 217 bc 235 bc 247 nd_on 206 bcs 216 bc 236 bc 246 nd_on 207 bcs 215 bc 237 bc 245 nd_on 208 bcs 214 bc 238 bc 244 nd_on 209 bcs 213 bc 239 bc 243 nd_on 210 bcs 212 bc 240 bc 242 nd_on 211 bcs 241 .dw 8+255*2 .dw v n 0,v,0,0,v,0,-1,1,0,0 bcc 1,107,4 bcc 108,195,1 bcc 196,255,1 .dw 0 .endif effect15: .if eff15==1 .set c=0 .set d=5 .set v=ul .dw 28*8+80*2 .dw hold|300 nd_on 27 bcs 81 nd_on 26 bcs 28 bc 80 bc 82 nd_on 25 bcs 29 bc 79 bc 83 nd_on 24 bcs 30 bc 78 bc 84 nd_on 23 bcs 31 bc 77 bc 85 nd_on 22 bcs 32 bc 76 bc 86 nd_on 21 bcs 33 bc 75 bc 87 nd_on 20 bcs 34 bc 74 bc 88 nd_on 19 bcs 35 bc 73 bc 89 nd_on 18 bcs 36 bc 72 bc 90 nd_on 17 bcs 37 bc 71 bc 91 nd_on 16 bcs 38 bc 70 bc 92 nd_on 15 bcs 39 bc 69 bc 93 nd_on 14 bcs 40 bc 68 bc 94 nd_on 13 bcs 41 bc 67 bc 95 nd_on 12 bcs 42 bc 66 bc 96 nd_on 11 bcs 43 bc 65 bc 97 nd_on 10 bcs 44 bc 64 bc 98 nd_on 9 bcs 45 bc 63 bc 99 nd_on 8 bcs 46 bc 62 bc 100 nd_on 7 bcs 47 bc 61 bc 101 nd_on 6 bcs 48 bc 60 bc 102 nd_on 5 bcs 49 bc 59 bc 103 nd_on 4 bcs 50 bc 58 bc 104 nd_on 3 bcs 51 bc 57 bc 105 nd_on 2 bcs 52 bc 56 bc 106 nd_on 1 bcs 53 bc 55 bc 107 nd_on 0 bcs 54 .dw 8+107*2 .dw v n 0,v,0,0,v,0,-1,1,0,0 bcc 1,107,4 .set c=0 .dw 23*8+65*2 .dw hold|300 nd_on 130 bcs 174 nd_on 129 bcs 131 bc 173 bc 175 nd_on 128 bcs 132 bc 172 bc 176 nd_on 127 bcs 133 bc 171 bc 177 nd_on 126 bcs 134 bc 170 bc 178 nd_on 125 bcs 135 bc 169 bc 179 nd_on 124 bcs 136 bc 168 bc 180 nd_on 123 bcs 137 bc 167 bc 181 nd_on 122 bcs 138 bc 166 bc 182 nd_on 121 bcs 139 bc 165 bc 183 nd_on 120 bcs 140 bc 164 bc 184 nd_on 119 bcs 141 bc 163 bc 185 nd_on 118 bcs 142 bc 162 bc 186 nd_on 117 bcs 143 bc 161 bc 187 nd_on 116 bcs 144 bc 160 bc 188 nd_on 115 bcs 145 bc 159 bc 189 nd_on 114 bcs 146 bc 158 bc 190 nd_on 113 bcs 147 bc 157 bc 191 nd_on 112 bcs 148 bc 156 bc 192 nd_on 111 bcs 149 bc 155 bc 193 nd_on 110 bcs 150 bc 154 bc 194 nd_on 109 bcs 151 bc 153 bc 195 nd_on 108 bcs 152 .dw 8+87*2 .dw v n 108,v,0,0,v,0,-1,1,0,0 bcc 109,195,4 .set c=0 .dw 16*8+44*2 .dw hold|300 nd_on 211 bcs 241 nd_on 210 bcs 212 bc 240 bc 242 nd_on 209 bcs 213 bc 239 bc 243 nd_on 208 bcs 214 bc 238 bc 244 nd_on 207 bcs 215 bc 237 bc 245 nd_on 206 bcs 216 bc 236 bc 246 nd_on 205 bcs 217 bc 235 bc 247 nd_on 204 bcs 218 bc 234 bc 248 nd_on 203 bcs 219 bc 233 bc 249 nd_on 202 bcs 220 bc 232 bc 250 nd_on 201 bcs 221 bc 231 bc 251 nd_on 200 bcs 222 bc 230 bc 252 nd_on 199 bcs 223 bc 229 bc 253 nd_on 198 bcs 224 bc 228 bc 254 nd_on 197 bcs 225 bc 227 bc 255 nd_on 196 bcs 226 .dw 8+59*2 .dw v n 196,v,0,0,v,0,-1,1,0,0 bcc 197,255,4 .set c=0 .dw 67*8+189*2 .dw hold|500 nd_on 27 bcs 81 nd_on 26 bcs 28 bc 80 bc 82 nd_on 25 bcs 29 bc 79 bc 83 nd_on 24 bcs 30 bc 78 bc 84 nd_on 23 bcs 31 bc 77 bc 85 nd_on 22 bcs 32 bc 76 bc 86 nd_on 21 bcs 33 bc 75 bc 87 nd_on 20 bcs 34 bc 74 bc 88 nd_on 19 bcs 35 bc 73 bc 89 nd_on 18 bcs 36 bc 72 bc 90 nd_on 17 bcs 37 bc 71 bc 91 nd_on 16 bcs 38 bc 70 bc 92 nd_on 15 bcs 39 bc 69 bc 93 nd_on 14 bcs 40 bc 68 bc 94 nd_on 13 bcs 41 bc 67 bc 95 nd_on 12 bcs 42 bc 66 bc 96 nd_on 11 bcs 43 bc 65 bc 97 nd_on 10 bcs 44 bc 64 bc 98 nd_on 9 bcs 45 bc 63 bc 99 nd_on 8 bcs 46 bc 62 bc 100 nd_on 7 bcs 47 bc 61 bc 101 nd_on 6 bcs 48 bc 60 bc 102 nd_on 5 bcs 49 bc 59 bc 103 nd_on 4 bcs 50 bc 58 bc 104 nd_on 3 bcs 51 bc 57 bc 105 nd_on 2 bcs 52 bc 56 bc 106 nd_on 1 bcs 53 bc 55 bc 107 nd_on 0 bcs 54 nd_on 130 bcs 174 nd_on 129 bcs 131 bc 173 bc 175 nd_on 128 bcs 132 bc 172 bc 176 nd_on 127 bcs 133 bc 171 bc 177 nd_on 126 bcs 134 bc 170 bc 178 nd_on 125 bcs 135 bc 169 bc 179 nd_on 124 bcs 136 bc 168 bc 180 nd_on 123 bcs 137 bc 167 bc 181 nd_on 122 bcs 138 bc 166 bc 182 nd_on 121 bcs 139 bc 165 bc 183 nd_on 120 bcs 140 bc 164 bc 184 nd_on 119 bcs 141 bc 163 bc 185 nd_on 118 bcs 142 bc 162 bc 186 nd_on 117 bcs 143 bc 161 bc 187 nd_on 116 bcs 144 bc 160 bc 188 nd_on 115 bcs 145 bc 159 bc 189 nd_on 114 bcs 146 bc 158 bc 190 nd_on 113 bcs 147 bc 157 bc 191 nd_on 112 bcs 148 bc 156 bc 192 nd_on 111 bcs 149 bc 155 bc 193 nd_on 110 bcs 150 bc 154 bc 194 nd_on 109 bcs 151 bc 153 bc 195 nd_on 108 bcs 152 nd_on 211 bcs 241 nd_on 210 bcs 212 bc 240 bc 242 nd_on 209 bcs 213 bc 239 bc 243 nd_on 208 bcs 214 bc 238 bc 244 nd_on 207 bcs 215 bc 237 bc 245 nd_on 206 bcs 216 bc 236 bc 246 nd_on 205 bcs 217 bc 235 bc 247 nd_on 204 bcs 218 bc 234 bc 248 nd_on 203 bcs 219 bc 233 bc 249 nd_on 202 bcs 220 bc 232 bc 250 nd_on 201 bcs 221 bc 231 bc 251 nd_on 200 bcs 222 bc 230 bc 252 nd_on 199 bcs 223 bc 229 bc 253 nd_on 198 bcs 224 bc 228 bc 254 nd_on 197 bcs 225 bc 227 bc 255 nd_on 196 bcs 226 .dw 8+255*2 .dw v n 0,v,0,0,v,0,-1,1,0,0 bcc 1,107,4 bcc 108,195,1 bcc 196,255,1 .dw 0 .endif .if eff16==1 .macro n16 n @0,0,0,0,v,0,ul,2,c,3 .set c=c+d .endmacro .macro n16h n @0,0,0,0,v,0,ul,1,c,3 .set c=c+d .endmacro .macro n16s n @0,v,0,0,v,0,0,0,0,0 .set c=c+d .endmacro .set c=0 .set d=6 .set v=ul .set dl=80 effect16b: .dw 11*8+73*2 .dw dl n16 10 bcs 17 bc 37 bc 44 bc 64 bc 71 bc 91 bc 98 n16 9 bcs 18 bc 36 bc 45 bc 63 bc 72 bc 90 bc 99 n16 8 bcs 19 bc 35 bc 46 bc 62 bc 73 bc 89 bc 100 n16 7 bcs 20 bc 34 bc 47 bc 61 bc 74 bc 88 bc 101 n16 6 bcs 21 bc 33 bc 48 bc 60 bc 75 bc 87 bc 102 n16 5 bcs 22 bc 32 bc 49 bc 59 bc 76 bc 86 bc 103 n16 4 bcs 23 bc 31 bc 50 bc 58 bc 77 bc 85 bc 104 n16 3 bcs 24 bc 30 bc 51 bc 57 bc 78 bc 84 bc 105 n16 2 bcs 25 bc 29 bc 52 bc 56 bc 79 bc 83 bc 106 n16 1 bcs 26 bc 28 bc 53 bc 55 bc 80 bc 82 bc 107 n16h 0 bcs 27 bc 54 bc 81 .set dl=dl-d .set c=0 .dw 11*8+73*2 .dw dl n16s 0 bcs 27 bc 54 bc 81 n16 10 bcs 17 bc 37 bc 44 bc 64 bc 71 bc 91 bc 98 n16 9 bcs 18 bc 36 bc 45 bc 63 bc 72 bc 90 bc 99 n16 8 bcs 19 bc 35 bc 46 bc 62 bc 73 bc 89 bc 100 n16 7 bcs 20 bc 34 bc 47 bc 61 bc 74 bc 88 bc 101 n16 6 bcs 21 bc 33 bc 48 bc 60 bc 75 bc 87 bc 102 n16 5 bcs 22 bc 32 bc 49 bc 59 bc 76 bc 86 bc 103 n16 4 bcs 23 bc 31 bc 50 bc 58 bc 77 bc 85 bc 104 n16 3 bcs 24 bc 30 bc 51 bc 57 bc 78 bc 84 bc 105 n16 2 bcs 25 bc 29 bc 52 bc 56 bc 79 bc 83 bc 106 n16h 1 bcs 26 bc 28 bc 53 bc 55 bc 80 bc 82 bc 107 .set dl=dl-d .set c=0 .dw 11*8+73*2 .dw dl n16 10 bcs 17 bc 37 bc 44 bc 64 bc 71 bc 91 bc 98 n16 9 bcs 18 bc 36 bc 45 bc 63 bc 72 bc 90 bc 99 n16 8 bcs 19 bc 35 bc 46 bc 62 bc 73 bc 89 bc 100 n16 7 bcs 20 bc 34 bc 47 bc 61 bc 74 bc 88 bc 101 n16 6 bcs 21 bc 33 bc 48 bc 60 bc 75 bc 87 bc 102 n16 5 bcs 22 bc 32 bc 49 bc 59 bc 76 bc 86 bc 103 n16 4 bcs 23 bc 31 bc 50 bc 58 bc 77 bc 85 bc 104 n16 3 bcs 24 bc 30 bc 51 bc 57 bc 78 bc 84 bc 105 n16h 2 bcs 25 bc 29 bc 52 bc 56 bc 79 bc 83 bc 106 n16s 1 bcs 26 bc 28 bc 53 bc 55 bc 80 bc 82 bc 107 n16s 0 bcs 27 bc 54 bc 81 .set dl=dl-d .set c=0 .dw 11*8+73*2 .dw dl n16 10 bcs 17 bc 37 bc 44 bc 64 bc 71 bc 91 bc 98 n16 9 bcs 18 bc 36 bc 45 bc 63 bc 72 bc 90 bc 99 n16 8 bcs 19 bc 35 bc 46 bc 62 bc 73 bc 89 bc 100 n16 7 bcs 20 bc 34 bc 47 bc 61 bc 74 bc 88 bc 101 n16 6 bcs 21 bc 33 bc 48 bc 60 bc 75 bc 87 bc 102 n16 5 bcs 22 bc 32 bc 49 bc 59 bc 76 bc 86 bc 103 n16 4 bcs 23 bc 31 bc 50 bc 58 bc 77 bc 85 bc 104 n16h 3 bcs 24 bc 30 bc 51 bc 57 bc 78 bc 84 bc 105 n16s 2 bcs 25 bc 29 bc 52 bc 56 bc 79 bc 83 bc 106 n16s 1 bcs 26 bc 28 bc 53 bc 55 bc 80 bc 82 bc 107 n16s 0 bcs 27 bc 54 bc 81 .set dl=dl-d .set c=0 .dw 11*8+73*2 .dw dl n16 10 bcs 17 bc 37 bc 44 bc 64 bc 71 bc 91 bc 98 n16 9 bcs 18 bc 36 bc 45 bc 63 bc 72 bc 90 bc 99 n16 8 bcs 19 bc 35 bc 46 bc 62 bc 73 bc 89 bc 100 n16 7 bcs 20 bc 34 bc 47 bc 61 bc 74 bc 88 bc 101 n16 6 bcs 21 bc 33 bc 48 bc 60 bc 75 bc 87 bc 102 n16 5 bcs 22 bc 32 bc 49 bc 59 bc 76 bc 86 bc 103 n16h 4 bcs 23 bc 31 bc 50 bc 58 bc 77 bc 85 bc 104 n16s 3 bcs 24 bc 30 bc 51 bc 57 bc 78 bc 84 bc 105 n16s 2 bcs 25 bc 29 bc 52 bc 56 bc 79 bc 83 bc 106 n16s 1 bcs 26 bc 28 bc 53 bc 55 bc 80 bc 82 bc 107 n16s 0 bcs 27 bc 54 bc 81 .set dl=dl-d .set c=0 .dw 11*8+73*2 .dw dl n16 10 bcs 17 bc 37 bc 44 bc 64 bc 71 bc 91 bc 98 n16 9 bcs 18 bc 36 bc 45 bc 63 bc 72 bc 90 bc 99 n16 8 bcs 19 bc 35 bc 46 bc 62 bc 73 bc 89 bc 100 n16 7 bcs 20 bc 34 bc 47 bc 61 bc 74 bc 88 bc 101 n16 6 bcs 21 bc 33 bc 48 bc 60 bc 75 bc 87 bc 102 n16h 5 bcs 22 bc 32 bc 49 bc 59 bc 76 bc 86 bc 103 n16s 4 bcs 23 bc 31 bc 50 bc 58 bc 77 bc 85 bc 104 n16s 3 bcs 24 bc 30 bc 51 bc 57 bc 78 bc 84 bc 105 n16s 2 bcs 25 bc 29 bc 52 bc 56 bc 79 bc 83 bc 106 n16s 1 bcs 26 bc 28 bc 53 bc 55 bc 80 bc 82 bc 107 n16s 0 bcs 27 bc 54 bc 81 .set dl=dl-d .set c=0 .dw 11*8+73*2 .dw dl n16 10 bcs 17 bc 37 bc 44 bc 64 bc 71 bc 91 bc 98 n16 9 bcs 18 bc 36 bc 45 bc 63 bc 72 bc 90 bc 99 n16 8 bcs 19 bc 35 bc 46 bc 62 bc 73 bc 89 bc 100 n16 7 bcs 20 bc 34 bc 47 bc 61 bc 74 bc 88 bc 101 n16h 6 bcs 21 bc 33 bc 48 bc 60 bc 75 bc 87 bc 102 n16s 5 bcs 22 bc 32 bc 49 bc 59 bc 76 bc 86 bc 103 n16s 4 bcs 23 bc 31 bc 50 bc 58 bc 77 bc 85 bc 104 n16s 3 bcs 24 bc 30 bc 51 bc 57 bc 78 bc 84 bc 105 n16s 2 bcs 25 bc 29 bc 52 bc 56 bc 79 bc 83 bc 106 n16s 1 bcs 26 bc 28 bc 53 bc 55 bc 80 bc 82 bc 107 n16s 0 bcs 27 bc 54 bc 81 .set dl=dl-d .set c=0 .dw 11*8+73*2 .dw dl n16 10 bcs 17 bc 37 bc 44 bc 64 bc 71 bc 91 bc 98 n16 9 bcs 18 bc 36 bc 45 bc 63 bc 72 bc 90 bc 99 n16 8 bcs 19 bc 35 bc 46 bc 62 bc 73 bc 89 bc 100 n16h 7 bcs 20 bc 34 bc 47 bc 61 bc 74 bc 88 bc 101 n16s 6 bcs 21 bc 33 bc 48 bc 60 bc 75 bc 87 bc 102 n16s 5 bcs 22 bc 32 bc 49 bc 59 bc 76 bc 86 bc 103 n16s 4 bcs 23 bc 31 bc 50 bc 58 bc 77 bc 85 bc 104 n16s 3 bcs 24 bc 30 bc 51 bc 57 bc 78 bc 84 bc 105 n16s 2 bcs 25 bc 29 bc 52 bc 56 bc 79 bc 83 bc 106 n16s 1 bcs 26 bc 28 bc 53 bc 55 bc 80 bc 82 bc 107 n16s 0 bcs 27 bc 54 bc 81 .set dl=dl-d .set c=0 .dw 11*8+73*2 .dw dl n16 10 bcs 17 bc 37 bc 44 bc 64 bc 71 bc 91 bc 98 n16 9 bcs 18 bc 36 bc 45 bc 63 bc 72 bc 90 bc 99 n16h 8 bcs 19 bc 35 bc 46 bc 62 bc 73 bc 89 bc 100 n16s 7 bcs 20 bc 34 bc 47 bc 61 bc 74 bc 88 bc 101 n16s 6 bcs 21 bc 33 bc 48 bc 60 bc 75 bc 87 bc 102 n16s 5 bcs 22 bc 32 bc 49 bc 59 bc 76 bc 86 bc 103 n16s 4 bcs 23 bc 31 bc 50 bc 58 bc 77 bc 85 bc 104 n16s 3 bcs 24 bc 30 bc 51 bc 57 bc 78 bc 84 bc 105 n16s 2 bcs 25 bc 29 bc 52 bc 56 bc 79 bc 83 bc 106 n16s 1 bcs 26 bc 28 bc 53 bc 55 bc 80 bc 82 bc 107 n16s 0 bcs 27 bc 54 bc 81 .set dl=dl-d .set c=0 .dw 11*8+73*2 .dw dl n16 10 bcs 17 bc 37 bc 44 bc 64 bc 71 bc 91 bc 98 n16h 9 bcs 18 bc 36 bc 45 bc 63 bc 72 bc 90 bc 99 n16s 8 bcs 19 bc 35 bc 46 bc 62 bc 73 bc 89 bc 100 n16s 7 bcs 20 bc 34 bc 47 bc 61 bc 74 bc 88 bc 101 n16s 6 bcs 21 bc 33 bc 48 bc 60 bc 75 bc 87 bc 102 n16s 5 bcs 22 bc 32 bc 49 bc 59 bc 76 bc 86 bc 103 n16s 4 bcs 23 bc 31 bc 50 bc 58 bc 77 bc 85 bc 104 n16s 3 bcs 24 bc 30 bc 51 bc 57 bc 78 bc 84 bc 105 n16s 2 bcs 25 bc 29 bc 52 bc 56 bc 79 bc 83 bc 106 n16s 1 bcs 26 bc 28 bc 53 bc 55 bc 80 bc 82 bc 107 n16s 0 bcs 27 bc 54 bc 81 .set c=0 .dw 11*8+73*2 .dw 100 n16h 10 bcs 17 bc 37 bc 44 bc 64 bc 71 bc 91 bc 98 n16s 9 bcs 18 bc 36 bc 45 bc 63 bc 72 bc 90 bc 99 n16s 8 bcs 19 bc 35 bc 46 bc 62 bc 73 bc 89 bc 100 n16s 7 bcs 20 bc 34 bc 47 bc 61 bc 74 bc 88 bc 101 n16s 6 bcs 21 bc 33 bc 48 bc 60 bc 75 bc 87 bc 102 n16s 5 bcs 22 bc 32 bc 49 bc 59 bc 76 bc 86 bc 103 n16s 4 bcs 23 bc 31 bc 50 bc 58 bc 77 bc 85 bc 104 n16s 3 bcs 24 bc 30 bc 51 bc 57 bc 78 bc 84 bc 105 n16s 2 bcs 25 bc 29 bc 52 bc 56 bc 79 bc 83 bc 106 n16s 1 bcs 26 bc 28 bc 53 bc 55 bc 80 bc 82 bc 107 n16s 0 bcs 27 bc 54 bc 81 .dw 0 effect16r: .set c=0 .set dl=80 .dw 10*8+66*2 .dw dl n16 117 bcs 121 bc 139 bc 143 bc 161 bc 165 bc 183 bc 187 n16 116 bcs 122 bc 138 bc 144 bc 160 bc 166 bc 182 bc 188 n16 115 bcs 123 bc 137 bc 145 bc 159 bc 167 bc 181 bc 189 n16 114 bcs 124 bc 136 bc 146 bc 158 bc 168 bc 180 bc 190 n16 113 bcs 125 bc 135 bc 147 bc 157 bc 169 bc 179 bc 191 n16 112 bcs 126 bc 134 bc 148 bc 156 bc 170 bc 178 bc 192 n16 111 bcs 127 bc 133 bc 149 bc 155 bc 171 bc 177 bc 193 n16 110 bcs 128 bc 132 bc 150 bc 154 bc 172 bc 176 bc 194 n16 109 bcs 129 bc 131 bc 151 bc 153 bc 173 bc 175 bc 195 n16h 108 bcs 130 bc 152 bc 174 .set dl=dl-d .set c=0 .dw 10*8+66*2 .dw dl n16 117 bcs 121 bc 139 bc 143 bc 161 bc 165 bc 183 bc 187 n16 116 bcs 122 bc 138 bc 144 bc 160 bc 166 bc 182 bc 188 n16 115 bcs 123 bc 137 bc 145 bc 159 bc 167 bc 181 bc 189 n16 114 bcs 124 bc 136 bc 146 bc 158 bc 168 bc 180 bc 190 n16 113 bcs 125 bc 135 bc 147 bc 157 bc 169 bc 179 bc 191 n16 112 bcs 126 bc 134 bc 148 bc 156 bc 170 bc 178 bc 192 n16 111 bcs 127 bc 133 bc 149 bc 155 bc 171 bc 177 bc 193 n16 110 bcs 128 bc 132 bc 150 bc 154 bc 172 bc 176 bc 194 n16h 109 bcs 129 bc 131 bc 151 bc 153 bc 173 bc 175 bc 195 n16s 108 bcs 130 bc 152 bc 174 .set dl=dl-d .set c=0 .dw 10*8+66*2 .dw dl n16 117 bcs 121 bc 139 bc 143 bc 161 bc 165 bc 183 bc 187 n16 116 bcs 122 bc 138 bc 144 bc 160 bc 166 bc 182 bc 188 n16 115 bcs 123 bc 137 bc 145 bc 159 bc 167 bc 181 bc 189 n16 114 bcs 124 bc 136 bc 146 bc 158 bc 168 bc 180 bc 190 n16 113 bcs 125 bc 135 bc 147 bc 157 bc 169 bc 179 bc 191 n16 112 bcs 126 bc 134 bc 148 bc 156 bc 170 bc 178 bc 192 n16 111 bcs 127 bc 133 bc 149 bc 155 bc 171 bc 177 bc 193 n16h 110 bcs 128 bc 132 bc 150 bc 154 bc 172 bc 176 bc 194 n16s 109 bcs 129 bc 131 bc 151 bc 153 bc 173 bc 175 bc 195 n16s 108 bcs 130 bc 152 bc 174 .set dl=dl-d .set c=0 .dw 10*8+66*2 .dw dl n16 117 bcs 121 bc 139 bc 143 bc 161 bc 165 bc 183 bc 187 n16 116 bcs 122 bc 138 bc 144 bc 160 bc 166 bc 182 bc 188 n16 115 bcs 123 bc 137 bc 145 bc 159 bc 167 bc 181 bc 189 n16 114 bcs 124 bc 136 bc 146 bc 158 bc 168 bc 180 bc 190 n16 113 bcs 125 bc 135 bc 147 bc 157 bc 169 bc 179 bc 191 n16 112 bcs 126 bc 134 bc 148 bc 156 bc 170 bc 178 bc 192 n16h 111 bcs 127 bc 133 bc 149 bc 155 bc 171 bc 177 bc 193 n16s 110 bcs 128 bc 132 bc 150 bc 154 bc 172 bc 176 bc 194 n16s 109 bcs 129 bc 131 bc 151 bc 153 bc 173 bc 175 bc 195 n16s 108 bcs 130 bc 152 bc 174 .set dl=dl-d .set c=0 .dw 10*8+66*2 .dw dl n16 117 bcs 121 bc 139 bc 143 bc 161 bc 165 bc 183 bc 187 n16 116 bcs 122 bc 138 bc 144 bc 160 bc 166 bc 182 bc 188 n16 115 bcs 123 bc 137 bc 145 bc 159 bc 167 bc 181 bc 189 n16 114 bcs 124 bc 136 bc 146 bc 158 bc 168 bc 180 bc 190 n16 113 bcs 125 bc 135 bc 147 bc 157 bc 169 bc 179 bc 191 n16h 112 bcs 126 bc 134 bc 148 bc 156 bc 170 bc 178 bc 192 n16s 111 bcs 127 bc 133 bc 149 bc 155 bc 171 bc 177 bc 193 n16s 110 bcs 128 bc 132 bc 150 bc 154 bc 172 bc 176 bc 194 n16s 109 bcs 129 bc 131 bc 151 bc 153 bc 173 bc 175 bc 195 n16s 108 bcs 130 bc 152 bc 174 .set dl=dl-d .set c=0 .dw 10*8+66*2 .dw dl n16 117 bcs 121 bc 139 bc 143 bc 161 bc 165 bc 183 bc 187 n16 116 bcs 122 bc 138 bc 144 bc 160 bc 166 bc 182 bc 188 n16 115 bcs 123 bc 137 bc 145 bc 159 bc 167 bc 181 bc 189 n16 114 bcs 124 bc 136 bc 146 bc 158 bc 168 bc 180 bc 190 n16h 113 bcs 125 bc 135 bc 147 bc 157 bc 169 bc 179 bc 191 n16s 112 bcs 126 bc 134 bc 148 bc 156 bc 170 bc 178 bc 192 n16s 111 bcs 127 bc 133 bc 149 bc 155 bc 171 bc 177 bc 193 n16s 110 bcs 128 bc 132 bc 150 bc 154 bc 172 bc 176 bc 194 n16s 109 bcs 129 bc 131 bc 151 bc 153 bc 173 bc 175 bc 195 n16s 108 bcs 130 bc 152 bc 174 .set dl=dl-d .set c=0 .dw 10*8+66*2 .dw dl n16 117 bcs 121 bc 139 bc 143 bc 161 bc 165 bc 183 bc 187 n16 116 bcs 122 bc 138 bc 144 bc 160 bc 166 bc 182 bc 188 n16 115 bcs 123 bc 137 bc 145 bc 159 bc 167 bc 181 bc 189 n16h 114 bcs 124 bc 136 bc 146 bc 158 bc 168 bc 180 bc 190 n16s 113 bcs 125 bc 135 bc 147 bc 157 bc 169 bc 179 bc 191 n16s 112 bcs 126 bc 134 bc 148 bc 156 bc 170 bc 178 bc 192 n16s 111 bcs 127 bc 133 bc 149 bc 155 bc 171 bc 177 bc 193 n16s 110 bcs 128 bc 132 bc 150 bc 154 bc 172 bc 176 bc 194 n16s 109 bcs 129 bc 131 bc 151 bc 153 bc 173 bc 175 bc 195 n16s 108 bcs 130 bc 152 bc 174 .set dl=dl-d .set c=0 .dw 10*8+66*2 .dw dl n16 117 bcs 121 bc 139 bc 143 bc 161 bc 165 bc 183 bc 187 n16 116 bcs 122 bc 138 bc 144 bc 160 bc 166 bc 182 bc 188 n16h 115 bcs 123 bc 137 bc 145 bc 159 bc 167 bc 181 bc 189 n16s 114 bcs 124 bc 136 bc 146 bc 158 bc 168 bc 180 bc 190 n16s 113 bcs 125 bc 135 bc 147 bc 157 bc 169 bc 179 bc 191 n16s 112 bcs 126 bc 134 bc 148 bc 156 bc 170 bc 178 bc 192 n16s 111 bcs 127 bc 133 bc 149 bc 155 bc 171 bc 177 bc 193 n16s 110 bcs 128 bc 132 bc 150 bc 154 bc 172 bc 176 bc 194 n16s 109 bcs 129 bc 131 bc 151 bc 153 bc 173 bc 175 bc 195 n16s 108 bcs 130 bc 152 bc 174 .set dl=dl-d .set c=0 .dw 10*8+66*2 .dw dl n16 117 bcs 121 bc 139 bc 143 bc 161 bc 165 bc 183 bc 187 n16h 116 bcs 122 bc 138 bc 144 bc 160 bc 166 bc 182 bc 188 n16s 115 bcs 123 bc 137 bc 145 bc 159 bc 167 bc 181 bc 189 n16s 114 bcs 124 bc 136 bc 146 bc 158 bc 168 bc 180 bc 190 n16s 113 bcs 125 bc 135 bc 147 bc 157 bc 169 bc 179 bc 191 n16s 112 bcs 126 bc 134 bc 148 bc 156 bc 170 bc 178 bc 192 n16s 111 bcs 127 bc 133 bc 149 bc 155 bc 171 bc 177 bc 193 n16s 110 bcs 128 bc 132 bc 150 bc 154 bc 172 bc 176 bc 194 n16s 109 bcs 129 bc 131 bc 151 bc 153 bc 173 bc 175 bc 195 n16s 108 bcs 130 bc 152 bc 174 .set dl=dl-d .set c=0 .dw 10*8+66*2 .dw 100 n16h 117 bcs 121 bc 139 bc 143 bc 161 bc 165 bc 183 bc 187 n16s 116 bcs 122 bc 138 bc 144 bc 160 bc 166 bc 182 bc 188 n16s 115 bcs 123 bc 137 bc 145 bc 159 bc 167 bc 181 bc 189 n16s 114 bcs 124 bc 136 bc 146 bc 158 bc 168 bc 180 bc 190 n16s 113 bcs 125 bc 135 bc 147 bc 157 bc 169 bc 179 bc 191 n16s 112 bcs 126 bc 134 bc 148 bc 156 bc 170 bc 178 bc 192 n16s 111 bcs 127 bc 133 bc 149 bc 155 bc 171 bc 177 bc 193 n16s 110 bcs 128 bc 132 bc 150 bc 154 bc 172 bc 176 bc 194 n16s 109 bcs 129 bc 131 bc 151 bc 153 bc 173 bc 175 bc 195 n16s 108 bcs 130 bc 152 bc 174 .dw 0 effect16g: .set c=0 .set dl=60 .dw 7*8+45*2 .dw dl n16 202 bcs 205 bc 217 bc 220 bc 232 bc 235 bc 247 bc 250 n16 201 bcs 206 bc 216 bc 221 bc 231 bc 236 bc 246 bc 251 n16 200 bcs 207 bc 215 bc 222 bc 230 bc 237 bc 245 bc 252 n16 199 bcs 208 bc 214 bc 223 bc 229 bc 238 bc 244 bc 253 n16 198 bcs 209 bc 213 bc 224 bc 228 bc 239 bc 243 bc 254 n16 197 bcs 210 bc 212 bc 225 bc 227 bc 240 bc 242 bc 255 n16h 196 bcs 211 bc 226 bc 241 .set dl=dl-d .set c=0 .dw 7*8+45*2 .dw dl n16 202 bcs 205 bc 217 bc 220 bc 232 bc 235 bc 247 bc 250 n16 201 bcs 206 bc 216 bc 221 bc 231 bc 236 bc 246 bc 251 n16 200 bcs 207 bc 215 bc 222 bc 230 bc 237 bc 245 bc 252 n16 199 bcs 208 bc 214 bc 223 bc 229 bc 238 bc 244 bc 253 n16 198 bcs 209 bc 213 bc 224 bc 228 bc 239 bc 243 bc 254 n16h 197 bcs 210 bc 212 bc 225 bc 227 bc 240 bc 242 bc 255 n16s 196 bcs 211 bc 226 bc 241 .set dl=dl-d .set c=0 .dw 7*8+45*2 .dw dl n16 202 bcs 205 bc 217 bc 220 bc 232 bc 235 bc 247 bc 250 n16 201 bcs 206 bc 216 bc 221 bc 231 bc 236 bc 246 bc 251 n16 200 bcs 207 bc 215 bc 222 bc 230 bc 237 bc 245 bc 252 n16 199 bcs 208 bc 214 bc 223 bc 229 bc 238 bc 244 bc 253 n16h 198 bcs 209 bc 213 bc 224 bc 228 bc 239 bc 243 bc 254 n16s 197 bcs 210 bc 212 bc 225 bc 227 bc 240 bc 242 bc 255 n16s 196 bcs 211 bc 226 bc 241 .set dl=dl-d .set c=0 .dw 7*8+45*2 .dw dl n16 202 bcs 205 bc 217 bc 220 bc 232 bc 235 bc 247 bc 250 n16 201 bcs 206 bc 216 bc 221 bc 231 bc 236 bc 246 bc 251 n16 200 bcs 207 bc 215 bc 222 bc 230 bc 237 bc 245 bc 252 n16h 199 bcs 208 bc 214 bc 223 bc 229 bc 238 bc 244 bc 253 n16s 198 bcs 209 bc 213 bc 224 bc 228 bc 239 bc 243 bc 254 n16s 197 bcs 210 bc 212 bc 225 bc 227 bc 240 bc 242 bc 255 n16s 196 bcs 211 bc 226 bc 241 .set dl=dl-d .set c=0 .dw 7*8+45*2 .dw dl n16 202 bcs 205 bc 217 bc 220 bc 232 bc 235 bc 247 bc 250 n16 201 bcs 206 bc 216 bc 221 bc 231 bc 236 bc 246 bc 251 n16h 200 bcs 207 bc 215 bc 222 bc 230 bc 237 bc 245 bc 252 n16s 199 bcs 208 bc 214 bc 223 bc 229 bc 238 bc 244 bc 253 n16s 198 bcs 209 bc 213 bc 224 bc 228 bc 239 bc 243 bc 254 n16s 197 bcs 210 bc 212 bc 225 bc 227 bc 240 bc 242 bc 255 n16s 196 bcs 211 bc 226 bc 241 .set dl=dl-d .set c=0 .dw 7*8+45*2 .dw dl n16 202 bcs 205 bc 217 bc 220 bc 232 bc 235 bc 247 bc 250 n16h 201 bcs 206 bc 216 bc 221 bc 231 bc 236 bc 246 bc 251 n16s 200 bcs 207 bc 215 bc 222 bc 230 bc 237 bc 245 bc 252 n16s 199 bcs 208 bc 214 bc 223 bc 229 bc 238 bc 244 bc 253 n16s 198 bcs 209 bc 213 bc 224 bc 228 bc 239 bc 243 bc 254 n16s 197 bcs 210 bc 212 bc 225 bc 227 bc 240 bc 242 bc 255 n16s 196 bcs 211 bc 226 bc 241 .set c=0 .dw 7*8+45*2 .dw 100 n16h 202 bcs 205 bc 217 bc 220 bc 232 bc 235 bc 247 bc 250 n16s 201 bcs 206 bc 216 bc 221 bc 231 bc 236 bc 246 bc 251 n16s 200 bcs 207 bc 215 bc 222 bc 230 bc 237 bc 245 bc 252 n16s 199 bcs 208 bc 214 bc 223 bc 229 bc 238 bc 244 bc 253 n16s 198 bcs 209 bc 213 bc 224 bc 228 bc 239 bc 243 bc 254 n16s 197 bcs 210 bc 212 bc 225 bc 227 bc 240 bc 242 bc 255 n16s 196 bcs 211 bc 226 bc 241 .dw 0 .endif .if eff17==1 .set v=ul effect17b: .dw 8+2*107 .dw 2*v n 0,0,0,0,v,0,1,2,0,0 bcc 1,107,4 .dw 8+2*107 .dw 2*v/2 n 0,0,0,0,v,0,2,2,0,0 bcc 1,107,4 .dw 8+2*107 .dw 2*v/3 n 0,0,0,0,v,0,3,2,0,0 bcc 1,107,4 .dw 8+2*107 .dw 2*v/4 n 0,0,0,0,v,0,4,2,0,0 bcc 1,107,4 .dw 8+2*107 .dw 2*v/5 n 0,0,0,0,v,0,5,2,0,0 bcc 1,107,4 .dw 8+2*107 .dw 2*v/6 n 0,0,0,0,v,0,6,2,0,0 bcc 1,107,4 .dw 8+2*107 .dw 2*v/7 n 0,0,0,0,v,0,7,2,0,0 bcc 1,107,4 .dw 8+2*107 .dw 2*v/8 n 0,0,0,0,v,0,8,2,0,0 bcc 1,107,4 .dw 8+2*107 .dw 2*v/9+2 n 0,0,0,0,v,0,9,2,0,0 bcc 1,107,4 .dw 0 effect17r: .dw 8+2*87 .dw 2*v n 108,0,0,0,v,0,1,2,0,0 bcc 109,195,4 .dw 8+2*87 .dw 2*v/2 n 108,0,0,0,v,0,2,2,0,0 bcc 109,195,4 .dw 8+2*87 .dw 2*v/3 n 108,0,0,0,v,0,3,2,0,0 bcc 109,195,4 .dw 8+2*87 .dw 2*v/4 n 108,0,0,0,v,0,4,2,0,0 bcc 109,195,4 .dw 8+2*87 .dw 2*v/5 n 108,0,0,0,v,0,5,2,0,0 bcc 109,195,4 .dw 8+2*87 .dw 2*v/6 n 108,0,0,0,v,0,6,2,0,0 bcc 109,195,4 .dw 8+2*87 .dw 2*v/7 n 108,0,0,0,v,0,7,2,0,0 bcc 109,195,4 .dw 8+2*87 .dw 2*v/8 n 108,0,0,0,v,0,8,2,0,0 bcc 109,195,4 .dw 8+2*87 .dw 2*v/9+2 n 108,0,0,0,v,0,9,2,0,0 bcc 109,195,4 .dw 0 effect17g: .dw 8+2*59 .dw 2*v n 196,0,0,0,v,0,1,2,0,0 bcc 197,255,4 .dw 8+2*59 .dw 2*v/2 n 196,0,0,0,v,0,2,2,0,0 bcc 197,255,4 .dw 8+2*59 .dw 2*v/3 n 196,0,0,0,v,0,3,2,0,0 bcc 197,255,4 .dw 8+2*59 .dw 2*v/4 n 196,0,0,0,v,0,4,2,0,0 bcc 197,255,4 .dw 8+2*59 .dw 2*v/5 n 196,0,0,0,v,0,5,2,0,0 bcc 197,255,4 .dw 8+2*59 .dw 2*v/6 n 196,0,0,0,v,0,6,2,0,0 bcc 197,255,4 .dw 8+2*59 .dw 2*v/7 n 196,0,0,0,v,0,7,2,0,0 bcc 197,255,4 .dw 8+2*59 .dw 2*v/8 n 196,0,0,0,v,0,8,2,0,0 bcc 197,255,4 .dw 8+2*59 .dw 2*v/9+2 n 196,0,0,0,v,0,9,2,0,0 bcc 197,255,4 .dw 0 effect17y: .dw 8+2*147 .dw 2*v n 108,0,0,0,v,0,1,2,0,0 bcc 109,195,4 bcc 196,255,1 .dw 8+2*147 .dw 2*v/2 n 108,0,0,0,v,0,2,2,0,0 bcc 109,195,4 bcc 196,255,1 .dw 8+2*147 .dw 2*v/3 n 108,0,0,0,v,0,3,2,0,0 bcc 109,195,4 bcc 196,255,1 .dw 8+2*147 .dw 2*v/4 n 108,0,0,0,v,0,4,2,0,0 bcc 109,195,4 bcc 196,255,1 .dw 8+2*147 .dw 2*v/5 n 108,0,0,0,v,0,5,2,0,0 bcc 109,195,4 bcc 196,255,1 .dw 8+2*147 .dw 2*v/6 n 108,0,0,0,v,0,6,2,0,0 bcc 109,195,4 bcc 196,255,1 .dw 8+2*147 .dw 2*v/7 n 108,0,0,0,v,0,7,2,0,0 bcc 109,195,4 bcc 196,255,1 .dw 8+2*147 .dw 2*v/8 n 108,0,0,0,v,0,8,2,0,0 bcc 109,195,4 bcc 196,255,1 .dw 8+2*147 .dw 2*v/9+2 n 108,0,0,0,v,0,9,2,0,0 bcc 109,195,4 bcc 196,255,1 .dw 0 effect17m: .dw 8+2*195 .dw 2*v n 0,0,0,0,v,0,1,2,0,0 bcc 1,107,4 bcc 108,195,1 .dw 8+2*195 .dw 2*v/2 n 0,0,0,0,v,0,2,2,0,0 bcc 1,107,4 bcc 108,195,1 .dw 8+2*195 .dw 2*v/3 n 0,0,0,0,v,0,3,2,0,0 bcc 1,107,4 bcc 108,195,1 .dw 8+2*195 .dw 2*v/4 n 0,0,0,0,v,0,4,2,0,0 bcc 1,107,4 bcc 108,195,1 .dw 8+2*195 .dw 2*v/5 n 0,0,0,0,v,0,5,2,0,0 bcc 1,107,4 bcc 108,195,1 .dw 8+2*195 .dw 2*v/6 n 0,0,0,0,v,0,6,2,0,0 bcc 1,107,4 bcc 108,195,1 .dw 8+2*195 .dw 2*v/7 n 0,0,0,0,v,0,7,2,0,0 bcc 1,107,4 bcc 108,195,1 .dw 8+2*195 .dw 2*v/8 n 0,0,0,0,v,0,8,2,0,0 bcc 1,107,4 bcc 108,195,1 .dw 8+2*195 .dw 2*v/9+2 n 0,0,0,0,v,0,9,2,0,0 bcc 1,107,4 bcc 108,195,1 .dw 0 effect17w: .dw 8+2*255 .dw 2*v n 0,0,0,0,v,0,1,2,0,0 bcc 1,107,4 bcc 108,195,1 bcc 196,255,1 .dw 8+2*255 .dw 2*v/2 n 0,0,0,0,v,0,2,2,0,0 bcc 1,107,4 bcc 108,195,1 bcc 196,255,1 .dw 8+2*255 .dw 2*v/3 n 0,0,0,0,v,0,3,2,0,0 bcc 1,107,4 bcc 108,195,1 bcc 196,255,1 .dw 8+2*255 .dw 2*v/4 n 0,0,0,0,v,0,4,2,0,0 bcc 1,107,4 bcc 108,195,1 bcc 196,255,1 .dw 8+2*255 .dw 2*v/5 n 0,0,0,0,v,0,5,2,0,0 bcc 1,107,4 bcc 108,195,1 bcc 196,255,1 .dw 8+2*255 .dw 2*v/6 n 0,0,0,0,v,0,6,2,0,0 bcc 1,107,4 bcc 108,195,1 bcc 196,255,1 .dw 8+2*255 .dw 2*v/7 n 0,0,0,0,v,0,7,2,0,0 bcc 1,107,4 bcc 108,195,1 bcc 196,255,1 .dw 8+2*255 .dw 2*v/8 n 0,0,0,0,v,0,8,2,0,0 bcc 1,107,4 bcc 108,195,1 bcc 196,255,1 .dw 8+2*255 .dw 2*v/9+2 n 0,0,0,0,v,0,9,2,0,0 bcc 1,107,4 bcc 108,195,1 bcc 196,255,1 .dw 0 .endif effect18: .if eff18==1 .macro n18 n p,0,0,0,ul,3,1,2,c,0 .set p=p+1 .set c=c+d .endmacro .macro n18a n p,0,0,0,ul,1,1,2,c,0 .set p=p+1 .set c=c+d .endmacro .dw 8*108+8*88+8*60 .dw 108*3-ul .set p=0 .set c=0 .set d=3 n18 n18 n18 n18 n18 n18 n18 n18 n18 n18 n18 n18 n18 n18 n18 n18 n18 n18 n18 n18 n18 n18 n18 n18 n18 n18 n18 n18 n18 n18 n18 n18 n18 n18 n18 n18 n18 n18 n18 n18 n18 n18 n18 n18 n18 n18 n18 n18 n18 n18 n18 n18 n18 n18 n18 n18 n18 n18 n18 n18 n18 n18 n18 n18 n18 n18 n18 n18 n18 n18 n18 n18 n18 n18 n18 n18 n18 n18 n18 n18 n18 n18 n18 n18 n18 n18 n18 n18 n18 n18 n18 n18 n18 n18 n18 n18 n18 n18 n18 n18 n18 n18 n18 n18 n18 n18 n18 n18 .set c=0 .set d=4 .set p=130 n18 n18 n18 n18 n18 n18 n18 n18 n18 n18 n18 n18 n18 n18 n18 n18 n18 n18 n18 n18 n18 n18 n18 n18 n18 n18 n18 n18 n18 n18 n18 n18 n18 n18 n18 n18 n18 n18 n18 n18 n18 n18 n18 n18 n18 n18 n18 n18 n18 n18 n18 n18 n18 n18 n18 n18 n18 n18 n18 n18 n18 n18 n18 n18 n18 n18 .set p=108 n18 n18 n18 n18 n18 n18 n18 n18 n18 n18 n18 n18 n18 n18 n18 n18 n18 n18 n18 n18 n18 n18 .set c=0 .set d=6 .set p=226 n18a n18a n18a n18a n18a n18a n18a n18a n18a n18a n18a n18a n18a n18a n18a n18a n18a n18a n18a n18a n18a n18a n18a n18a n18a n18a n18a n18a n18a n18a .set p=196 n18a n18a n18a n18a n18a n18a n18a n18a n18a n18a n18a n18a n18a n18a n18a n18a n18a n18a n18a n18a n18a n18a n18a n18a n18a n18a n18a n18a n18a n18a .dw 0 .endif effect19: .if eff19==1 .set v=ul .dw 3*8+107*2+87*2+59*2 .dw 16*v+16*v n 0,0,0,0,v,0,1,2,0,7 bcc 1,107,4 n 108,0,0,0,v,0,1,2,8*v,7 bcc 109,195,4 n 196,0,0,0,v,0,1,2,16*v,7 bcc 197,255,4 .dw 0 .endif .dw 0 .dseg .org SRAM_START bamtbl: .byte leds/8*output_bits+4*output_bits mtbl_ptr: .byte 2 mtbl_cnt: .byte 1 mtbl_entry_ptr: .byte 3 ltbl_ptr: .byte 3 probability: .byte 1 work: .byte leds*9+10 .if smooth==1 prv_val: .byte leds .endif