Kod źródłowy efektu "bump map" pochodzącego z dema Amber Cow. Komentarze dotyczące działania poszczególnych procedur zostaną dodane wkrótce.
 
 
;--------------------------- 
;BUMP MAP BY SIR ART/CHARGED 
;--------------------------- 
 
         *= $1000 
 
FONTS1   = $3900 
LAMPKA   = $3700 
BUMP     = $3200 
SIN1     = $3800 
SIN2     = $3880 
 
FONTS2   = $2000 
PRZESX   = $2800 
PRZESY   = $2D00 
MAIN     = $3A00 
TABDLAX  = $1D00 
TABDLAY  = $1E00 
LAMPKA1  = $1900 
LAMPKA2  = $1C00 
SPRITY   = $0800 
SPRITY2  = $0900 
KROK     = $1A00 
LOWLAMP  = $1B00 
 
WSPX     = $24 
WSPY     = $25 
FAZA1    = $26 
FAZA2    = $27 
LICZNIK  = $28 
 
         SEI 
         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 
         JSR LIPRZES 
         JSR PISZ 
         JSR TABPISZ 
 
         CLI 
         JMP BUMPA 
 
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 
 
BUMPA    LDA #<LAMPKA1 
         STA $20 
         LDA #>LAMPKA1 
         STA $21 
         LDA #<LAMPKA2 
         STA $22 
         LDA #>LAMPKA2 
         STA $23 
         LDA #$07 
         STA FAZA1 
         LDA #$03 
         STA FAZA2 
         LDA #$1F 
         STA LICZNIK 
 
         LDX #$00 
MAKE1    LDA LAMPKA,X 
         ASL A 
         ASL A 
         ASL A 
         STA KROK,X 
         LDA #$00 
         STA LOWLAMP,X 
         STA LAMPKA1,X 
         INX 
         BNE MAKE1 
J2 
         JSR MAIN 
         LDX #$00 
MAKE2    LDA LOWLAMP,X 
         CLC 
         ADC KROK,X 
         STA LOWLAMP,X 
         LDA LAMPKA1,X 
         ADC #$00 
         STA LAMPKA1,X 
         ASL A 
         ASL A 
         ASL A 
         ASL A 
         STA LAMPKA2,X 
         INX 
         BNE MAKE2 
         JSR INCFAZA 
         DEC LICZNIK 
         BPL J2 
 
         LDX #$D0 
         STX LICZNIK 
J1       JSR INCFAZA 
         JSR MAIN 
         DEC LICZNIK 
         BNE J1 
 
         LDX #$1F 
         STX LICZNIK 
J4       JSR MAIN 
         LDX #$00 
MAKE4    LDA LOWLAMP,X 
         SEC 
         SBC KROK,X 
         STA LOWLAMP,X 
         LDA LAMPKA1,X 
         SBC #$00 
         STA LAMPKA1,X 
         ASL A 
         ASL A 
         ASL A 
         ASL A 
         STA LAMPKA2,X 
         INX 
         BNE MAKE4 
         JSR INCFAZA 
         DEC LICZNIK 
         BPL J4 
J3 
         JMP J3 
 
INCFAZA  LDA FAZA1 
         CLC 
         ADC #$05 
         AND #$7F 
         STA FAZA1 
         TAX 
         LDA SIN1,X 
         CLC 
         ADC #$00 
         STA WSPY 
         LDA FAZA2 
         CLC 
         ADC #$03 
         AND #$7F 
         STA FAZA2 
         TAX 
         LDA SIN2,X 
         STA WSPX 
         RTS 
 
ATR      LDX #$00 
         LDA #$FF 
JTY      STA $0450,X 
         STA $0500,X 
         STA $0600,X 
         STA $0670,X 
         INX 
         BNE JTY 
         JSR LINEWAIT 
         LDX #$00 
         LDA #$0E 
JTY2     STA $D850,X 
         STA $D900,X 
         STA $DA00,X 
         STA $DA70,X 
         INX 
         BNE JTY2 
         LDA #$01 
         STA $D022 
         LDA #$0E 
         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 
 
PROC     LDX WSPY 
PROC4    LDA TABDLAY,X 
         STA $20 
PROC5    LDA TABDLAY,X 
         STA $22 
         LDX WSPX 
PROC2    LDY TABDLAX,X 
         LDA ($20),Y 
PROC3    LDY TABDLAX,X 
         ORA ($22),Y 
PROC1    STA $0800 
 
START    = $0454 
 
PISZ     LDA #<MAIN 
         STA $20 
         LDA #>MAIN 
         STA $21 
         LDA #$00 
         STA $23 
         LDA #<START 
         STA $24 
         LDA #>START 
         STA $25 
         LDA #<PRZESX 
         STA $26 
         LDA #>PRZESX 
         STA $27 
         LDA #<PRZESY 
         STA $2A 
         LDA #>PRZESY 
         STA $2B 
         LDA #$00 
         STA $2E 
         LDA #$01 
         STA $2F 
 
PISZ3    LDA #$00 
         STA $22 
 
PISZ2    LDY #$00 
         LDA $24 
         STA PROC1+1 
         LDA $25 
         STA PROC1+2 
         LDA #$80 
         SEC 
         SBC $22 
         SEC 
         SBC ($26),Y 
         STA PROC2+1 
         LDA $26 
         CLC 
         ADC #$20 
         STA $28 
         LDA $27 
         ADC #$00 
         STA $29 
         LDA #$80 
         SEC 
         SBC $22 
         SEC 
         SBC ($28),Y 
         STA PROC3+1 
         LDA #$80 
         SEC 
         SBC $2E 
         SEC 
         SBC ($2A),Y 
         STA PROC4+1 
         LDA $2A 
         CLC 
         ADC #$20 
         STA $2C 
         LDA $2B 
         ADC #$00 
         STA $2D 
         LDA #$80 
         SEC 
         SBC $2F 
         SEC 
         SBC ($2C),Y 
         STA PROC5+1 
         LDY #$1A 
PISZ1    LDA PROC,Y 
         STA ($20),Y 
         DEY 
         BPL PISZ1 
         LDA $20 
         CLC 
         ADC #$1B 
         STA $20 
         LDA $21 
         ADC #$00 
         STA $21 
         INC $26 
         INC $2A 
         INC $24 
         BNE PISZ4 
         INC $25 
PISZ4    INC $22 
         LDA $22 
         CMP #$20 
         BEQ PISZ22 
         JMP PISZ2 
PISZ22   LDA $24 
         CLC 
         ADC #$08 
         STA $24 
         LDA $25 
         ADC #$00 
         STA $25 
         LDA $26 
         CLC 
         ADC #$20 
         STA $26 
         LDA $27 
         ADC #$00 
         STA $27 
         LDA $2A 
         CLC 
         ADC #$20 
         STA $2A 
         LDA $2B 
         ADC #$00 
         STA $2B 
         INC $2E 
         INC $2E 
         INC $2F 
         INC $2F 
         INC $23 
         LDA $23 
         CMP #$14 
         BEQ PISZ33 
         JMP PISZ3 
PISZ33   LDY #$00 
         LDA #$60 
         STA ($20),Y 
         RTS 
 
TABPISZ  LDX #$00 
         LDA #$0A 
TAB11    STA TABDLAX,X 
         INX 
         BNE TAB11 
         LDX #$00 
TAB12    LDA TABPOM2+1,X 
         STA TABDLAX+$77,X 
         INX 
         CPX #$14 
         BNE TAB12 
 
         LDX #$00 
         LDA #$00 
TAB78    STA $0340,X 
         CLC 
         ADC #$0B 
         INX 
         CPX #$20 
         BNE TAB78 
 
         LDX #$00 
         LDA #$15 
TAB13    STA TABDLAY,X 
         INX 
         BNE TAB13 
         LDX #$00 
TAB14    LDA TABPOM,X 
         STA TABDLAY+$6B,X 
         INX 
         CPX #$2B 
         BNE TAB14 
 
         LDX #$00 
TAB3     LDY TABDLAY,X 
         LDA $0340,Y 
         STA TABDLAY,X 
         INX 
         BNE TAB3 
 
         LDX #$00 
TAB4     LDA LAMPKA1,X 
         ASL A 
         ASL A 
         ASL A 
         ASL A 
         STA LAMPKA2,X 
         INX 
         BNE TAB4 
         RTS 
 
TABPOM   .BYTE 21,20,19,18,17,16,15 
         .BYTE 14,13,12,11 
TABPOM2  .BYTE 10,9,8,7,6,5,4,3,2,1,0 
         .BYTE 1,2,3,4,5,6,7,8,9,10 
         .BYTE 11,12,13,14,15,16,17 
         .BYTE 18,19,20,21 
 
LIPRZES  LDA #<BUMP 
         STA $20 
         LDA #>BUMP 
         STA $21 
         LDA #<BUMP+1 
         STA $22 
         LDA #>BUMP+1 
         STA $23 
         LDA #<PRZESX 
         STA $24 
         LDA #>PRZESX 
         STA $25 
 
         LDX #$00 
LICZ2    LDY #$00 
LICZ1    LDA ($20),Y 
         SEC 
         SBC ($22),Y 
         STA ($24),Y 
         INY 
         CPY #$1F 
         BNE LICZ1 
         LDA $20 
         CLC 
         ADC #$20 
         STA $20 
         LDA $21 
         ADC #$00 
         STA $21 
         LDA $22 
         CLC 
         ADC #$20 
         STA $22 
         LDA $23 
         ADC #$00 
         STA $23 
         LDA $24 
         CLC 
         ADC #$20 
         STA $24 
         LDA $25 
         ADC #$00 
         STA $25 
         INX 
         CPX #$28 
         BNE LICZ2 
 
         LDA #<BUMP 
         STA $20 
         LDA #>BUMP 
         STA $21 
         LDA #<BUMP+32 
         STA $22 
         LDA #>BUMP+32 
         STA $23 
         LDA #<PRZESY 
         STA $24 
         LDA #>PRZESY 
         STA $25 
 
         LDX #$00 
LICZ22   LDY #$00 
LICZ12   LDA ($20),Y 
         SEC 
         SBC ($22),Y 
         STA ($24),Y 
         INY 
         CPY #$1E 
         BNE LICZ12 
         LDA $20 
         CLC 
         ADC #$20 
         STA $20 
         LDA $21 
         ADC #$00 
         STA $21 
         LDA $22 
         CLC 
         ADC #$20 
         STA $22 
         LDA $23 
         ADC #$00 
         STA $23 
         LDA $24 
         CLC 
         ADC #$20 
         STA $24 
         LDA $25 
         ADC #$00 
         STA $25 
         INX 
         CPX #$26 
         BNE LICZ22 
         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