Kod źródłowy efektu "Sierpiński 3d" pochodzącego z dema Amber Cow. Komentarze dotyczące działania poszczególnych procedur zostaną dodane wkrótce.
 
 
;-------------------------------- 
;SIERPINSKI 3D BY SIR ART/CHARGED 
;-------------------------------- 
 
         *= $1000 
 
TABBOK1  = $3000 
TABBOK2  = $3080 
TABBOK3  = $3100 
 
PLOTS    = $4000 
SINTAB   = $19C0 
LOSTAB   = $1A00 
TABX1    = $1C00 
TABY1    = $1C80 
TABX2    = $1D00 
TABY2    = $1D80 
TABX3    = $1E00 
TABY3    = $1E80 
TABX4    = $1F00 
TABY4    = $1F80 
EKRANL   = $20 
EKRANH   = $21 
EKRANNUM = $22 
LICZNIK  = $24 
 
         SEI 
         LDA #$00 
         STA $D020 
         STA $D021 
         TAX 
L1       STA $D800,X 
         STA $D900,X 
         STA $DA00,X 
         STA $DB00,X 
         STA $2000,X 
         STA $2700,X 
         STA $2800,X 
         STA $2F00,X 
         INX 
         BNE L1 
         LDA #$7F 
         STA $DC0D 
         LDX #$00 
         STX $DC0E 
         INX 
         STA $D01A 
         LDA #$00 
         STA $D012 
         LDA #$97 
         STA $DD00 
         LDA #$18 
         STA $D018 
         LDA #$1B 
         STA $D011 
         LDA #$37 
         STA $01 
         LDA #<IRQ1 
         STA $0314 
         LDA #>IRQ1 
         STA $0315 
 
         JSR CHESS 
         JSR ZNAKI 
         JSR CZYSZCZ 
         JSR WRITETAB 
         JSR PISZ 
 
         CLI 
 
         LDA #$00 
         STA EKRANNUM 
         STA LICZNIK 
 
J3       LDY #$00 
         JSR LINEWAIT 
         LDA EKRANNUM 
         EOR #$08 
         STA EKRANNUM 
         LDA EKRAN+1 
         EOR #$02 
         STA EKRAN+1 
         LDA EKRANNUM 
         BNE J5 
         JSR CLEAN1 
         JMP J6 
J5       JSR CLEAN2 
 
J6       LDX LICZNIK 
         LDA TABX1,X 
         STA $28 
         LDA TABY1,X 
         STA $2C 
         LDA TABX2,X 
         STA $29 
         LDA TABY2,X 
         STA $2D 
         LDA TABX3,X 
         STA $2A 
         LDA TABY3,X 
         STA $2E 
         LDA TABX4,X 
         STA $2B 
         LDA TABY4,X 
         STA $2F 
 
         LDX $28 
         LDY $2C 
         CLC 
         JSR PLOTS 
 
         LDA LICZNIK 
         CLC 
         ADC #$01 
         AND #$7F 
         STA LICZNIK 
         JMP J3 
 
IRQ1 
EKRAN    LDA #$1A 
         STA $D018 
 
         INC $D019 
         JMP $EA7E 
 
CHESS    LDA #$00 
         STA $20 
         LDA #$D8 
         STA $21 
         LDA #$BC 
         STA $22 
         LDA #$CB 
         STA $23 
         LDA #$0A 
         STA CH3+1 
         LDX #$00 
 
CH2      LDA $22 
         LDY #$00 
         STA ($20),Y 
         INY 
         STA ($20),Y 
         LDA $23 
         INY 
         STA ($20),Y 
         INY 
         STA ($20),Y 
         INX 
CH3      CPX #$14 
         BNE CH1 
         LDA #$14 
         STA CH3+1 
         LDA $22 
         TAX 
         LDA $23 
         STA $22 
         STX $23 
         LDX #$00 
CH1      LDA $20 
         CLC 
         ADC #$04 
         STA $20 
         LDA $21 
         ADC #$00 
         STA $21 
         LDA $20 
         CMP #$C0 
         BNE CH2 
         LDA $21 
         CMP #$DB 
         BNE CH2 
         RTS 
 
ZNAKI    LDX #$00 
         LDA #$FF 
ZNAKI1   STA $0400,X 
         STA $0500,X 
         STA $0600,X 
         STA $06F8,X 
         INX 
         BNE ZNAKI1 
 
POCZ     = $28*6+$0403 
POCZ2    = $28*6+$D803 
POCZ3    = $28*6+$3803 
 
         LDA #<POCZ 
         STA $20 
         LDA #>POCZ 
         STA $21 
 
         LDX #$00 
ZNAKI3   TXA 
         LDY #$00 
ZNAKI2   STA ($20),Y 
         CLC 
         ADC #$10 
         INY 
         CPY #$10 
         BNE ZNAKI2 
         LDA $20 
         CLC 
         ADC #$28 
         STA $20 
         LDA $21 
         ADC #$00 
         STA $21 
         INX 
         CPX #$10 
         BNE ZNAKI3 
         LDA #$00 
         STA $075A 
 
ZN2      LDA #<POCZ2 
         STA $20 
         LDA #>POCZ2 
         STA $21 
 
         LDX #$00 
ZNAKI4   LDA #$01 
         LDY #$00 
ZNAKI5   STA ($20),Y 
         INY 
         CPY #$10 
         BNE ZNAKI5 
         LDA $20 
         CLC 
         ADC #$28 
         STA $20 
         LDA $21 
         ADC #$00 
         STA $21 
         INX 
         CPX #$10 
         BNE ZNAKI4 
         RTS 
 
CZYSZCZ  JSR CLEAN1 
         JSR CLEAN2 
         LDX #$07 
         LDA #$FF 
CZY2     STA $27F8,X 
         STA $2FF8,X 
         DEX 
         BPL CZY2 
         RTS 
 
WRITETAB LDY #$80 
         LDX #$00 
WRITTAB2 TXA 
         LSR A 
         LSR A 
         LSR A 
         LSR A 
         CLC 
         ADC #$20 
         STA TABBOK1,X 
         TXA 
         AND #$08 
         ASL A 
         ASL A 
         ASL A 
         ASL A 
         STA TABBOK2,X 
         TXA 
         AND #$07 
         TAY 
         LDA TABECZKA,Y 
         STA TABBOK3,X 
         INX 
         CPX #$80 
         BNE WRITTAB2 
         RTS 
 
TABECZKA .BYTE $80,$40,$20,$10 
         .BYTE $08,$04,$02,$01 
 
CLEAN1   LDX #$3F 
         LDA #$00 
CLEAN21 
         STA $2100,X 
         STA $2200,X 
         STA $2300,X 
         STA $2400,X 
         STA $2500,X 
         STA $2600,X 
         STA $2700,X 
         STA $2140,X 
         STA $2240,X 
         STA $2340,X 
         STA $2440,X 
         STA $2540,X 
         STA $2640,X 
         STA $2740,X 
         STA $2080,X 
         STA $2180,X 
         STA $2280,X 
         STA $2380,X 
         STA $2480,X 
         STA $2580,X 
         STA $2680,X 
         STA $20C0,X 
         STA $21C0,X 
         STA $22C0,X 
         STA $23C0,X 
         STA $24C0,X 
         STA $25C0,X 
         STA $26C0,X 
         DEX 
         BPL CLEAN21 
         RTS 
 
CLEAN2   LDX #$3F 
         LDA #$00 
CLEAN22 
         STA $2900,X 
         STA $2A00,X 
         STA $2B00,X 
         STA $2C00,X 
         STA $2D00,X 
         STA $2E00,X 
         STA $2F00,X 
         STA $2940,X 
         STA $2A40,X 
         STA $2B40,X 
         STA $2C40,X 
         STA $2D40,X 
         STA $2E40,X 
         STA $2F40,X 
         STA $2880,X 
         STA $2980,X 
         STA $2A80,X 
         STA $2B80,X 
         STA $2C80,X 
         STA $2D80,X 
         STA $2E80,X 
         STA $28C0,X 
         STA $29C0,X 
         STA $2AC0,X 
         STA $2BC0,X 
         STA $2CC0,X 
         STA $2DC0,X 
         STA $2EC0,X 
         DEX 
         BPL CLEAN22 
         RTS 
 
PROCMAIN TXA 
PROC1    ADC $02 
         LSR A 
         TAX 
         TYA 
PROC2    ADC $02 
         LSR A 
         TAY 
         LDA TABBOK2,X 
         STA EKRANL 
         LDA TABBOK1,X 
         ORA EKRANNUM 
         STA EKRANH 
         LDA (EKRANL),Y 
         ORA TABBOK3,X 
         STA (EKRANL),Y 
 
PISZ     LDA #<PLOTS 
         STA $20 
         LDA #>PLOTS 
         STA $21 
         LDA #<LOSTAB 
         STA PISZ2+1 
         LDA #>LOSTAB 
         STA PISZ2+2 
 
         LDA #$00 
         STA $22 
         STA $23 
 
PISZ2    LDA LOSTAB 
         CLC 
         ADC #$28 
         STA PROC1+1 
         CLC 
         ADC #$04 
         STA PROC2+1 
         LDY #$00 
PISZ1    LDA PROCMAIN,Y 
         STA ($20),Y 
         INY 
         CPY #$1D 
         BNE PISZ1 
         LDA $20 
         CLC 
         ADC #$1D 
         STA $20 
         LDA $21 
         ADC #$00 
         STA $21 
         LDA PISZ2+1 
         CLC 
         ADC #$01 
         STA PISZ2+1 
         LDA PISZ2+2 
         ADC #$00 
         STA PISZ2+2 
         LDA $22 
         CLC 
         ADC #$01 
         STA $22 
         LDA $23 
         ADC #$00 
         STA $23 
         CMP #$02 
         BNE PISZ2 
         LDY #$00 
         LDA #$60 
         STA ($20),Y 
         RTS 
 
LINEWAIT LDA #$40 
LINEWA1  CMP $D012 
         BCS LINEWA2 
         LDA #$C0 
         CMP $D012 
         BCC LINEWA2 
         LDA $D011 
         BMI LINEWA2 
         JMP LINEWAIT 
LINEWA2  RTS 
 
powrót