Kod źródłowy efektu "radial splits" pochodzącego z dema Amber Cow. Komentarze dotyczące działania poszczególnych procedur zostaną dodane wkrótce.
 
 
;-------------------------------- 
;RADIAL SPLITS BY SIR ART/CHARGED 
;-------------------------------- 
 
         *= $1000 
 
FONTS1   = $1F80 
SIN      = $1E00 
 
PRZES    = $28 
PASEK    = $1B00 
PASEK1   = $1C00 
PASEK2   = $1D00 
 
MAIN     = $4000 
DOUBLE   = $6100 
 
SPRITY   = $0800 
SPRITY2  = $0900 
FONTS2   = $2000 
 
KAT      = $3000 
PROM     = $3500 
 
         SEI 
         LDX #$FF 
         STX CZAS+1 
         LDA #$00 
         STA $D020 
         STA $D021 
         LDA #$7F 
         STA $DC0D 
         LDX #$00 
         STX $DC0E 
         INX 
         STX $D01A 
         LDA #$08 
         STA $D012 
         LDA #$97 
         STA $DD00 
         LDA #$18 
         STA $D018 
         LDA #$1B 
         STA $D011 
         LDA #$D8 
         STA $D016 
         LDA #$00 
         STA $D022 
         LDA #$00 
         STA $D023 
         LDA #$35 
         STA $01 
         LDA #<IRQ1 
         STA $FFFE 
         LDA #>IRQ1 
         STA $FFFF 
 
         JSR FONTY 
         JSR SPRINI 
         JSR ATR 
 
         LDA #<PROM 
         STA $25 
         LDA #>PROM 
         STA $26 
         LDA #<PROM+$20 
         STA $27 
         LDA #>PROM+$20 
         STA $28 
         LDA #<KAT 
         STA $29 
         LDA #>KAT 
         STA $2A 
         LDA #<KAT+$20 
         STA $2B 
         LDA #>KAT+$20 
         STA $2C 
         JSR PISZ 
         LDX #$0C 
         LDY #$FC 
         JSR PISIN 
         JSR PASKI 
 
         CLI 
         JMP NAD 
 
PROCEDER LDX #$3F 
         LDA #$00 
KIO      STA PRZES,X 
         DEX 
         BPL KIO 
         LDA #$00 
         STA $02 
         STA $03 
         LDA #$00 
         STA $04 
         STA $06 
         LDA #$20 
         STA $05 
 
J11      LDA #$C8 
KIO2     CMP $D012 
         BNE J11 
         JSR MAIN 
         LDX $02 
         LDY $03 
         JSR DOUBLE 
         LDA $02 
         CLC 
SPED1    ADC #$02 
         STA $02 
         LDA $03 
         CLC 
SPED2    ADC #$04 
         STA $03 
         LDX $04 
         CPX #$20 
         BEQ HOP1 
         TXA 
         EOR #$1F 
         TAY 
         LDA PASEK,Y 
         STA PASEK1,Y 
         STA PASEK1+$40,Y 
         STA PASEK1+$80,Y 
         STA PASEK1+$C0,Y 
         ASL A 
         ASL A 
         ASL A 
         ASL A 
         STA PASEK2,Y 
         STA PASEK2+$40,Y 
         STA PASEK2+$80,Y 
         STA PASEK2+$C0,Y 
         LDA PASEK+$20,X 
         STA PASEK1+$20,X 
         STA PASEK1+$60,X 
         STA PASEK1+$A0,X 
         STA PASEK1+$E0,X 
         ASL A 
         ASL A 
         ASL A 
         ASL A 
         STA PASEK2+$20,X 
         STA PASEK2+$60,X 
         STA PASEK2+$A0,X 
         STA PASEK2+$E0,X 
         INX 
         STX $04 
HOP1 
         LDX $05 
         CPX #$20 
         BEQ HOP2 
         TXA 
         EOR #$1F 
         TAY 
         LDA #$00 
         STA PASEK1,Y 
         STA PASEK1+$40,Y 
         STA PASEK1+$80,Y 
         STA PASEK1+$C0,Y 
         STA PASEK2,Y 
         STA PASEK2+$40,Y 
         STA PASEK2+$80,Y 
         STA PASEK2+$C0,Y 
         STA PASEK1+$20,X 
         STA PASEK1+$60,X 
         STA PASEK1+$A0,X 
         STA PASEK1+$E0,X 
         STA PASEK2+$20,X 
         STA PASEK2+$60,X 
         STA PASEK2+$A0,X 
         STA PASEK2+$E0,X 
         INX 
         STX $05 
         CPX #$20 
         BEQ NEXT 
HOP2 
         INC $06 
         LDA $06 
CZAS     CMP #$FF 
         BNE HOP3 
         LDA #$00 
         STA $05 
HOP3     JMP J11 
 
NEXT     RTS 
 
NAD      JSR PROCEDER 
         LDA #<KAT 
         STA $25 
         LDA #>KAT 
         STA $26 
         LDA #<KAT+$20 
         STA $27 
         LDA #>KAT+$20 
         STA $28 
         LDA #<PROM 
         STA $29 
         LDA #>PROM 
         STA $2A 
         LDA #<PROM+$20 
         STA $2B 
         LDA #>PROM+$20 
         STA $2C 
         JSR PISZ 
         LDX #$0C 
         LDY #$04 
         JSR PISIN 
         LDA #$03 
         STA SPED1+1 
         LDA #$FE 
         STA SPED2+1 
         LDX #$00 
         LDA #$0A 
JTYH     STA $D850,X 
         STA $D900,X 
         STA $DA00,X 
         STA $DA70,X 
         INX 
         BNE JTYH 
         LDA #$07 
         STA $D022 
         LDA #$0A 
         STA $D023 
 
         JSR PROCEDER 
NEX2 
         LDX #$00 
         LDA #$00 
TYH2     STA $D850,X 
         STA $D900,X 
         STA $DA00,X 
         STA $DA70,X 
         INX 
         BNE TYH2 
         JSR LINEWAIT 
         LDX #$00 
         LDA #$A0 
TYH      STA $0450,X 
         STA $0500,X 
         STA $0600,X 
         STA $0670,X 
         INX 
         BNE TYH 
 
         JSR LINEWAIT 
         LDA #$08 
         STA $D012 
         LDA #<IRQ5 
         STA $FFFE 
         LDA #>IRQ5 
         STA $FFFF 
         LDA #$15 
         STA $D018 
 
POCZ2    = $D84C 
 
         LDA #<POCZ2 
         STA $20 
         LDA #>POCZ2 
         STA $21 
 
         LDX #$00 
JK2      TXA 
         AND #$03 
         LSR A 
         BEQ JK4 
         LDY #$00 
JK3      LDA TABGOL1,Y 
         STA ($20),Y 
         INY 
         CPY #$04 
         BNE JK3 
         JMP JK5 
JK4      LDY #$00 
JK35     LDA TABGOL2,Y 
         STA ($20),Y 
         INY 
         CPY #$04 
         BNE JK35 
JK5      LDA $20 
         CLC 
         ADC #$28 
         STA $20 
         LDA $21 
         ADC #$00 
         STA $21 
         INX 
         CPX #$15 
         BNE JK2 
 
POCZ3    = $D850 
 
         LDA #<POCZ3 
         STA $20 
         LDA #>POCZ3 
         STA $21 
 
         LDX #$01 
JK21     TXA 
         AND #$03 
         LSR A 
         BEQ JK41 
         LDY #$00 
JK31     LDA TABGOL1,Y 
         STA ($20),Y 
         INY 
         CPY #$04 
         BNE JK31 
         JMP JK51 
JK41     LDY #$00 
JK351    LDA TABGOL2,Y 
         STA ($20),Y 
         INY 
         CPY #$04 
         BNE JK351 
JK51     LDA $20 
         CLC 
         ADC #$28 
         STA $20 
         LDA $21 
         ADC #$00 
         STA $21 
         INX 
         CPX #$15 
         BNE JK21 
 
         LDA #$00 
         STA $D015 
 
NEX3     JMP NEX3 
 
TABGOL1  .BYTE $0C,$0C,$0B,$0B 
TABGOL2  .BYTE $0B,$0B,$0C,$0C 
 
IRQ5     STA REG5+1 
         STX REG5+3 
         STY REG5+5 
         LDA #$00 
         STA $D020 
         STA $D021 
 
         INC $D019 
REG5     LDA #$00 
         LDX #$00 
         LDY #$00 
         RTI 
 
IRQ1     STA REG1+1 
         STX REG1+3 
         STY REG1+5 
         LDA #$00 
         STA $D021 
 
         LDA #$42 
         STA $D012 
         LDA #<IRQ2 
         STA $FFFE 
         LDA #>IRQ2 
         STA $FFFF 
         INC $D019 
REG1     LDA #$00 
         LDX #$00 
         LDY #$00 
         RTI 
 
IRQ2     STA REG2+1 
         STX REG2+3 
         STY REG2+5 
         CMP ($F0,X) 
         CMP ($F0,X) 
         CMP ($F0,X) 
         CMP ($F0,X) 
         NOP 
         LDX #$18 
         LDA #$D8 
         STA $D016 
         STX $D018 
 
         LDA #$E2 
         STA $D012 
         LDA #<IRQ3 
         STA $FFFE 
         LDA #>IRQ3 
         STA $FFFF 
         INC $D019 
REG2     LDA #$00 
         LDX #$00 
         LDY #$00 
         RTI 
 
IRQ3     STA REG3+1 
         STX REG3+3 
         STY REG3+5 
         CMP ($F0,X) 
         CMP ($F0,X) 
         CMP ($F0,X) 
         LDX #$15 
         LDA #$C8 
         STX $D018 
         STA $D016 
 
         LDA #$08 
         STA $D012 
         LDA #<IRQ1 
         STA $FFFE 
         LDA #>IRQ1 
         STA $FFFF 
         INC $D019 
 
REG3     LDA #$00 
         LDX #$00 
         LDY #$00 
         RTI 
 
PROC1    LDY PRZES 
PROC2    LDA PASEK1,Y 
PROC3    LDY PRZES 
PROC4    ORA PASEK2,Y 
PROC5    STA $0400 
 
POCZ1    = $0454 
 
PISZ     LDA #<MAIN 
         STA $20 
         LDA #>MAIN 
         STA $21 
         LDA #$13 
         STA $22 
         LDA #<POCZ1 
         STA $23 
         LDA #>POCZ1 
         STA $24 
 
PI31     LDX #$00 
PI2      TXA 
         CLC 
         ADC $23 
         STA PROC5+1 
         LDA $24 
         ADC #$00 
         STA PROC5+2 
         TXA 
         TAY 
         LDA ($25),Y 
         STA PROC2+1 
         LDA ($27),Y 
         STA PROC4+1 
         LDA ($29),Y 
         CLC 
         ADC #<PRZES 
         STA PROC1+1 
         LDA ($2B),Y 
         CLC 
         ADC #<PRZES 
         STA PROC3+1 
 
         LDY #$00 
PI1      LDA PROC1,Y 
         STA ($20),Y 
         INY 
         CPY #$0D 
         BNE PI1 
         LDA $20 
         CLC 
         ADC #$0D 
         STA $20 
         LDA $21 
         ADC #$00 
         STA $21 
         INX 
         CPX #$20 
         BNE PI2 
         LDA $23 
         CLC 
         ADC #$28 
         STA $23 
         LDA $24 
         ADC #$00 
         STA $24 
         LDA $25 
         CLC 
         ADC #$40 
         STA $25 
         LDA $26 
         ADC #$00 
         STA $26 
         LDA $27 
         CLC 
         ADC #$40 
         STA $27 
         LDA $28 
         ADC #$00 
         STA $28 
         LDA $29 
         CLC 
         ADC #$40 
         STA $29 
         LDA $2A 
         ADC #$00 
         STA $2A 
         LDA $2B 
         CLC 
         ADC #$40 
         STA $2B 
         LDA $2C 
         ADC #$00 
         STA $2C 
         DEC $22 
         BPL PI3 
         JMP PI41 
PI3      JMP PI31 
 
PI41     LDA #$60 
         LDY #$00 
         STA ($20),Y 
         RTS 
 
DS       TXA 
         CLC 
DS1      ADC #$00 
         TAX 
         TYA 
         CLC 
DS2      ADC #$00 
         TAY 
         LDA SIN,X 
         CLC 
         ADC SIN,Y 
DS3      STA PRZES 
 
PISIN    LDA #<DOUBLE 
         STA $20 
         LDA #>DOUBLE 
         STA $21 
         STX DS1+1 
         STY DS2+1 
         LDA #<PRZES 
         STA DS3+1 
 
         LDX #$3F 
SI3      LDY #$00 
SI2      LDA DS,Y 
         STA ($20),Y 
         INY 
         CPY #$13 
         BNE SI2 
         LDA $20 
         CLC 
         ADC #$13 
         STA $20 
         LDA $21 
         ADC #$00 
         STA $21 
         INC DS3+1 
         DEX 
         BPL SI3 
         LDA #$60 
         LDY #$00 
         STA ($20),Y 
         RTS 
 
PASKI    LDX #$00 
PA3      TXA 
         AND #$1F 
         LSR A 
         STA PASEK,X 
         INX 
         CPX #$20 
         BNE PA3 
         LDX #$20 
         LDY #$1F 
PA4      TYA 
         AND #$1F 
         LSR A 
         STA PASEK,X 
         DEY 
         INX 
         CPX #$40 
         BNE PA4 
 
         LDX #$3F 
PA2      LDA PASEK,X 
         STA PASEK+$40,X 
         STA PASEK+$80,X 
         STA PASEK+$C0,X 
         DEX 
         BPL PA2 
 
         LDX #$00 
         LDA #$00 
KOP      STA PASEK1,X 
         STA PASEK2,X 
         INX 
         BNE KOP 
         RTS 
 
ATR      LDX #$00 
         LDA #$00 
JTY      STA $0450,X 
         STA $0500,X 
         STA $0600,X 
         STA $0670,X 
         INX 
         BNE JTY 
         JSR LINEWAIT 
         LDX #$00 
         LDA #$0D 
JTY2     STA $D850,X 
         STA $D900,X 
         STA $DA00,X 
         STA $DA70,X 
         INX 
         BNE JTY2 
         LDA #$01 
         STA $D022 
         LDA #$0D 
         STA $D023 
         LDX #$4F 
         LDA #$A0 
JTY3     STA $0400,X 
         STA $0770,X 
         DEX 
         BPL JTY3 
         LDX #$27 
JTY4     TXA 
         AND #$03 
         TAY 
         LDA TABCOL1,Y 
         STA $D828,X 
         STA $DB70,X 
         LDA TABCOL2,Y 
         STA $D800,X 
         STA $DB98,X 
         DEX 
         BPL JTY4 
         RTS 
 
FONTY    LDA #<FONTS1 
         STA $20 
         LDA #>FONTS1 
         STA $21 
         LDA #<FONTS2 
         STA $22 
         LDA #>FONTS2 
         STA $23 
 
         LDX #$0F 
FONTY4   LDY #$7F 
FONTY2   LDA ($20),Y 
         STA ($22),Y 
         DEY 
         BPL FONTY2 
         LDA $22 
         EOR #$80 
         STA $22 
         BNE FONTY3 
         INC $23 
FONTY3   DEX 
         BPL FONTY4 
 
         LDA #<FONTS2+4 
         STA $22 
         LDA #>FONTS2+4 
         STA $23 
         LDA #$0F 
         STA $24 
 
FONTY8   LDX #$0F 
FONTY6   LDY #$03 
FONTY5   LDA ($20),Y 
         STA ($22),Y 
         DEY 
         BPL FONTY5 
         LDA $22 
         CLC 
         ADC #$08 
         STA $22 
         LDA $23 
         ADC #$00 
         STA $23 
         DEX 
         BPL FONTY6 
         LDA $20 
         CLC 
         ADC #$08 
         STA $20 
         LDA $21 
         ADC #$00 
         STA $21 
         DEC $24 
         BPL FONTY8 
         RTS 
 
TABSPR1  .BYTE $FF,$55,$FF 
TABSPR2  .BYTE $55,$FF,$55 
TABCOL1  .BYTE $0B,$0B,$0C,$0C 
TABCOL2  .BYTE $0C,$0C,$0B,$0B 
 
MALUJ    LDX #$00 
SPRINI2  TYA 
         AND #$08 
         BNE SPR3 
         LDA TABSPR1 
         STA SPRITY,X 
         INX 
         LDA TABSPR1+1 
         STA SPRITY,X 
         INX 
         LDA TABSPR1+2 
         STA SPRITY,X 
         JMP SPR4 
SPR3     LDA TABSPR2 
         STA SPRITY,X 
         INX 
         LDA TABSPR2+1 
         STA SPRITY,X 
         INX 
         LDA TABSPR2+2 
         STA SPRITY,X 
SPR4     INY 
         INX 
         CPX #$3F 
         BNE SP1 
         LDX #$40 
SP1      CPX #$7F 
         BNE SP2 
         LDX #$80 
SP2      CPX #$BF 
         BNE SP3 
         LDX #$C0 
SP3      CPX #$FF 
         BNE SPRINI2 
 
         LDX #$F3 
         LDA #$00 
DFGH     STA SPRITY,X 
         INX 
         CPX #$FF 
         BNE DFGH 
         RTS 
 
SPRINI   LDY #$04 
         JSR MALUJ 
         LDX #$00 
SPRINIF  LDA SPRITY,X 
         STA SPRITY2,X 
         INX 
         BNE SPRINIF 
         LDY #$0C 
         JSR MALUJ 
 
         LDA #$08 
         STA $D000 
         STA $D002 
         STA $D004 
         STA $D006 
         LDA #$38 
         STA $D008 
         STA $D00A 
         STA $D00C 
         STA $D00E 
         LDA #$F0 
         STA $D010 
         LDA #$42 
         STA $D001 
         STA $D009 
         CLC 
         ADC #42 
         STA $D003 
         STA $D00B 
         CLC 
         ADC #42 
         STA $D005 
         STA $D00D 
         CLC 
         ADC #42 
         STA $D007 
         STA $D00F 
         LDA #$FF 
         STA $D017 
         STA $D01D 
         STA $D01C 
         LDA #$00 
         STA $D01B 
         LDX #$07 
         LDA #$00 
GH       STA $D027,X 
         DEX 
         BPL GH 
         LDY #$20 
         STY $07FC 
         INY 
         STY $07FD 
         INY 
         STY $07FE 
         INY 
         STY $07FF 
         LDY #$24 
         STY $07F8 
         INY 
         STY $07F9 
         INY 
         STY $07FA 
         INY 
         STY $07FB 
         LDA #$0B 
         STA $D025 
         LDA #$0C 
         STA $D026 
         JSR LINEWAIT 
         LDA #$FF 
         STA $D015 
         RTS 
 
LINEWAIT LDA #$FF 
LW1      CMP $D012 
         BNE LW1 
         RTS 
 
powrót