;----------------------------- |
|
;SHADE BOBS BY SIR ART/CHARGED |
|
;----------------------------- |
|
|
|
*= $1000 |
|
|
|
LICZNIK = $28 |
|
LINIA = $29 |
|
TYP = $2A |
|
TYP2 = $2B |
|
WARSTWA = $2C |
|
WORK1L = $30 |
|
WORK1H = $31 |
|
WORK2L = $32 |
|
WORK2H = $33 |
|
FAZAX = $34 |
|
FAZAY = $35 |
|
CZAS = $36 |
|
POMOC1 = $37 |
|
POMOC2 = $38 |
|
|
|
SINX = $1E00 |
|
SINY = $1F00 |
|
|
|
FONTS = $2C00 |
|
SHADOW = $4000 |
|
BOBS = $6280 |
|
TABSINYH = $3000 |
|
TABSINYL = $3200 |
|
TABSINX = $3400 |
|
LOTAB = $3700 |
|
HITAB = $3780 |
|
|
|
TABKOL = $3600 |
|
CZYSZ = $3800 |
|
|
|
SEI |
|
LDA #$00 |
|
LDX #$00 |
|
L1 STA $D800,X |
|
STA $D900,X |
|
STA $DA00,X |
|
STA $DB00,X |
|
INX |
|
BNE L1 |
|
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 #$5B |
|
STA $D011 |
|
LDA #$C8 |
|
STA $D016 |
|
LDA #$00 |
|
STA $D022 |
|
LDA #$35 |
|
STA $01 |
|
LDA #<IRQ1 |
|
STA $FFFE |
|
LDA #>IRQ1 |
|
STA $FFFF |
|
|
|
JSR CHESS |
|
JSR ZNAKI |
|
JSR SPRINI |
|
JSR ATR |
|
JSR PISZ |
|
JSR BOBWRITE |
|
JSR WRITETAB |
|
JSR WRICZYSC |
|
|
|
CLI |
|
|
|
JSR POJAW |
|
LDA #$06 |
|
STA $D022 |
|
LDA #$0E |
|
STA $D023 |
|
LDA #$03 |
|
STA $D024 |
|
LDA #$00 |
|
STA FAZAX |
|
STA FAZAY |
|
STA CZAS |
|
STA POMOC1 |
|
STA POMOC2 |
|
|
|
J1 LDA #$E0 |
|
JK2 CMP $D012 |
|
BNE JK2 |
|
LDA POMOC1 |
|
AND #$01 |
|
BNE JK3 |
|
JSR BOBS |
|
JK3 LDA POMOC1 |
|
AND #$02 |
|
BNE JK4 |
|
SEC |
|
JSR SHADOW |
|
JK4 LDA #$FF |
|
LDX #$0B |
|
JSR CZYSZ |
|
LDX FAZAX |
|
INX |
|
CPX #252 |
|
BNE DE1 |
|
LDX #$00 |
|
DE1 STX FAZAX |
|
LDX FAZAY |
|
INX |
|
CPX #204 |
|
BNE DE2 |
|
LDX #$00 |
|
DE2 STX FAZAY |
|
INC POMOC2 |
|
LDA POMOC2 |
|
AND #$03 |
|
BNE DE7 |
|
INC CZAS |
|
LDA CZAS |
|
CMP #$80 |
|
BNE DE5 |
|
LDA POMOC1 |
|
ORA #$01 |
|
STA POMOC1 |
|
DE5 LDA CZAS |
|
CMP #$90 |
|
BNE DE6 |
|
LDA POMOC1 |
|
ORA #$02 |
|
STA POMOC1 |
|
DE6 LDA CZAS |
|
CMP #$92 |
|
BEQ J8 |
|
DE7 JMP J1 |
|
|
|
J8 JMP J8 |
|
|
|
POJAW LDA #$F8 |
|
STA $20 |
|
LDA #$2D |
|
STA $21 |
|
LDX #$00 |
|
POJ2 LDY #$00 |
|
JSR LINEWAIT |
|
LDY #$07 |
|
POJ1 LDA ($20),Y |
|
STA $21F0,Y |
|
DEY |
|
BPL POJ1 |
|
LDA $20 |
|
SEC |
|
SBC #$10 |
|
STA $20 |
|
LDA $21 |
|
SBC #$00 |
|
STA $21 |
|
INX |
|
CPX #$21 |
|
BNE POJ2 |
|
|
|
LDA #$F8 |
|
STA $20 |
|
LDA #$2D |
|
STA $21 |
|
LDX #$00 |
|
POJ22 LDY #$00 |
|
JSR LINEWAIT |
|
LDY #$07 |
|
POJ12 LDA ($20),Y |
|
STA $21E8,Y |
|
DEY |
|
BPL POJ12 |
|
LDA $20 |
|
SEC |
|
SBC #$10 |
|
STA $20 |
|
LDA $21 |
|
SBC #$00 |
|
STA $21 |
|
INX |
|
CPX #$21 |
|
BNE POJ22 |
|
LDY #$00 |
|
JSR LINEWAIT |
|
LDA #$00 |
|
STA $D01B |
|
JSR NEWATR |
|
|
|
LDX #$00 |
|
JUY LDA FONTS,X |
|
STA $2000,X |
|
LDA FONTS+$0100,X |
|
STA $2100,X |
|
INX |
|
BNE JUY |
|
RTS |
|
|
|
IRQ1 STA REG1+1 |
|
STX REG1+3 |
|
STY REG1+5 |
|
LDA #$00 |
|
STA $D020 |
|
FLASH LDA #$0B |
|
STA $D021 |
|
|
|
LDA SPR3+1 |
|
EOR #$14 |
|
STA SPR3+1 |
|
|
|
LDA $D000 |
|
EOR #$01 |
|
STA $D000 |
|
STA $D008 |
|
LDA $D002 |
|
EOR #$01 |
|
STA $D002 |
|
STA $D00A |
|
LDA $D004 |
|
EOR #$01 |
|
STA $D004 |
|
STA $D00C |
|
LDA $D006 |
|
EOR #$01 |
|
STA $D006 |
|
STA $D00E |
|
|
|
LDA #$00 |
|
STA LICZNIK |
|
STA TYP |
|
STA TYP2 |
|
LDA #$88 |
|
CLC |
|
SPR3 ADC #$00 |
|
STA WARSTWA |
|
|
|
LDA #$74 |
|
STA LINIA |
|
STA $D012 |
|
LDA #<IRQ2 |
|
STA $FFFE |
|
LDA #>IRQ2 |
|
STA $FFFF |
|
|
|
IRQ27 INC $D019 |
|
REG1 LDA #$00 |
|
LDX #$00 |
|
LDY #$00 |
|
RTI |
|
|
|
IRQ2 STA REG2+1 |
|
STX REG2+3 |
|
STY REG2+5 |
|
|
|
LDA LINIA |
|
CLC |
|
ADC #$15 |
|
STA LINIA |
|
STA $D012 |
|
CLC |
|
ADC #$01 |
|
LDX TYP |
|
STA $D001,X |
|
STA $D003,X |
|
STA $D005,X |
|
STA $D007,X |
|
LDX TYP2 |
|
LDA WARSTWA |
|
STA $07F8,X |
|
CLC |
|
ADC #$01 |
|
STA $07F9,X |
|
CLC |
|
ADC #$01 |
|
STA $07FA,X |
|
CLC |
|
ADC #$01 |
|
STA $07FB,X |
|
|
|
LDA TYP |
|
EOR #$08 |
|
STA TYP |
|
LDA TYP2 |
|
EOR #$04 |
|
STA TYP2 |
|
LDA WARSTWA |
|
CLC |
|
ADC #$04 |
|
STA WARSTWA |
|
|
|
INC LICZNIK |
|
LDA LICZNIK |
|
CMP #$05 |
|
BNE IRQ21 |
|
|
|
LDA #<IRQ1 |
|
STA $FFFE |
|
LDA #>IRQ1 |
|
STA $FFFF |
|
LDA #$08 |
|
STA $D012 |
|
|
|
IRQ21 INC $D019 |
|
REG2 LDA #$00 |
|
LDX #$00 |
|
LDY #$00 |
|
RTI |
|
|
|
POCZ1 = 11*$28+$D803 |
|
POCZ2 = 11*$28+$0403 |
|
POCZ3 = 2*$28+$0404 |
|
POCZ4 = 2*$28+$D804 |
|
|
|
ATR LDA #$00 |
|
LDX #$00 |
|
ATR4 STA $2000,X |
|
STA $2100,X |
|
INX |
|
BNE ATR4 |
|
LDA #$FF |
|
LDX #$17 |
|
ATR5 STA $21E8,X |
|
DEX |
|
BPL ATR5 |
|
|
|
LDA #<POCZ1 |
|
STA $20 |
|
LDA #>POCZ1 |
|
STA $21 |
|
LDA #<POCZ2 |
|
STA $22 |
|
LDA #>POCZ2 |
|
STA $23 |
|
|
|
LDX #$0B |
|
ATR3 LDY #$0B |
|
ATR2 LDA #$00 |
|
STA ($20),Y |
|
LDA #$3E |
|
STA ($22),Y |
|
DEY |
|
BPL ATR2 |
|
LDA $20 |
|
CLC |
|
ADC #$28 |
|
STA $20 |
|
STA $22 |
|
LDA $21 |
|
ADC #$00 |
|
STA $21 |
|
SEC |
|
SBC #$D4 |
|
STA $23 |
|
DEX |
|
BPL ATR3 |
|
|
|
LDA #<POCZ3 |
|
STA $20 |
|
LDA #>POCZ3 |
|
STA $21 |
|
|
|
LDX #$13 |
|
ATR31 LDY #$1F |
|
ATR21 LDA ($20),Y |
|
CMP #$FF |
|
BNE ATR41 |
|
LDA #$7D |
|
STA ($20),Y |
|
ATR41 DEY |
|
BPL ATR21 |
|
LDA $20 |
|
CLC |
|
ADC #$28 |
|
STA $20 |
|
LDA $21 |
|
ADC #$00 |
|
STA $21 |
|
DEX |
|
BPL ATR31 |
|
RTS |
|
|
|
NEWATR LDA #<POCZ1 |
|
STA $20 |
|
LDA #>POCZ1 |
|
STA $21 |
|
LDA #<POCZ2 |
|
STA $22 |
|
LDA #>POCZ2 |
|
STA $23 |
|
|
|
LDX #$0B |
|
NATR3 LDY #$0B |
|
NATR2 LDA #$0B |
|
STA ($20),Y |
|
LDA #$FF |
|
STA ($22),Y |
|
DEY |
|
BPL NATR2 |
|
LDA $20 |
|
CLC |
|
ADC #$28 |
|
STA $20 |
|
STA $22 |
|
LDA $21 |
|
ADC #$00 |
|
STA $21 |
|
SEC |
|
SBC #$D4 |
|
STA $23 |
|
DEX |
|
BPL NATR3 |
|
|
|
LDA #<POCZ3 |
|
STA $20 |
|
LDA #>POCZ3 |
|
STA $21 |
|
LDA #<POCZ4 |
|
STA $22 |
|
LDA #>POCZ4 |
|
STA $23 |
|
|
|
LDA #$00 |
|
STA FLASH+1 |
|
|
|
LDX #$13 |
|
NATR31 LDY #$1F |
|
NATR21 LDA ($20),Y |
|
CMP #$7D |
|
BNE NATR41 |
|
LDA #$00 |
|
STA ($20),Y |
|
STA ($22),Y |
|
NATR41 DEY |
|
BPL NATR21 |
|
LDA $20 |
|
CLC |
|
ADC #$28 |
|
STA $20 |
|
STA $22 |
|
LDA $21 |
|
ADC #$00 |
|
STA $21 |
|
CLC |
|
ADC #$D4 |
|
STA $23 |
|
DEX |
|
BPL NATR31 |
|
RTS |
|
|
|
SPRINI LDA #$30 |
|
STA $D000 |
|
STA $D008 |
|
LDA #$48 |
|
STA $D002 |
|
STA $D00A |
|
LDA #$60 |
|
STA $D004 |
|
STA $D00C |
|
LDA #$78 |
|
STA $D006 |
|
STA $D00E |
|
LDX #$07 |
|
SPRINI2 LDA #$01 |
|
STA $D027,X |
|
TXA |
|
CLC |
|
ADC #$80 |
|
STA $07F8,X |
|
DEX |
|
BPL SPRINI2 |
|
LDA #$00 |
|
STA $D010 |
|
LDA #$00 |
|
STA $D017 |
|
STA $D01D |
|
LDA #$FF |
|
STA $D01B |
|
LDA #$0C |
|
STA $D025 |
|
LDA #$0F |
|
STA $D026 |
|
LDA #$FF |
|
STA $D01C |
|
LDA #$FF |
|
STA $D015 |
|
RTS |
|
|
|
PROC1 LDA $0800 |
|
BEQ PJ1 |
|
SBC #$04 |
|
PROC2 STA $0800 |
|
TAX |
|
LDA TABKOL,X |
|
PROC3 STA $0800 |
|
PJ1 NOP |
|
|
|
PISZ LDA #<POCZ3 |
|
STA $20 |
|
LDA #>POCZ3 |
|
STA $21 |
|
LDA #<SHADOW |
|
STA $24 |
|
LDA #>SHADOW |
|
STA $25 |
|
LDA #$00 |
|
STA $22 |
|
|
|
PI3 LDX #$00 |
|
LDA $22 |
|
CMP #$09 |
|
BCC PI2 |
|
LDX #$0B |
|
PI2 TXA |
|
CLC |
|
ADC $20 |
|
STA PROC1+1 |
|
STA PROC2+1 |
|
STA PROC3+1 |
|
LDA $21 |
|
ADC #$00 |
|
STA PROC1+2 |
|
STA PROC2+2 |
|
CLC |
|
ADC #$D4 |
|
STA PROC3+2 |
|
|
|
LDY #$00 |
|
PI1 LDA PROC1,Y |
|
STA ($24),Y |
|
INY |
|
CPY #$11 |
|
BNE PI1 |
|
LDA $24 |
|
CLC |
|
ADC #$11 |
|
STA $24 |
|
LDA $25 |
|
ADC #$00 |
|
STA $25 |
|
INX |
|
CPX #$20 |
|
BNE PI2 |
|
LDA $20 |
|
CLC |
|
ADC #$28 |
|
STA $20 |
|
LDA $21 |
|
ADC #$00 |
|
STA $21 |
|
INC $22 |
|
LDA $22 |
|
CMP #$14 |
|
BNE PI3 |
|
|
|
LDA #$60 |
|
LDY #$00 |
|
STA ($24),Y |
|
RTS |
|
|
|
BOB LDX FAZAY |
|
BOB1 LDA TABSINYH,X |
|
BEQ BJ1 |
|
STA WORK1H |
|
CLC |
|
ADC #$D4 |
|
STA WORK2H |
|
BOB2 LDA TABSINYL,X |
|
STA WORK1L |
|
STA WORK2L |
|
LDX FAZAX |
|
BOB3 LDY TABSINX,X |
|
LDA (WORK1L),Y |
|
CLC |
|
ADC #$40 |
|
BCC BJ2 |
|
LDA #$F8 |
|
BJ2 STA (WORK1L),Y |
|
TAX |
|
LDA TABKOL,X |
|
STA (WORK2L),Y |
|
BJ1 NOP |
|
|
|
BOBWRITE LDA #<BOBS |
|
STA $20 |
|
LDA #>BOBS |
|
STA $21 |
|
LDA #$00 |
|
STA $22 |
|
|
|
B2 LDY #$00 |
|
B1 LDA BOB,Y |
|
STA ($20),Y |
|
INY |
|
CPY #$2B |
|
BNE B1 |
|
LDA $20 |
|
CLC |
|
ADC #$2B |
|
STA $20 |
|
LDA $21 |
|
ADC #$00 |
|
STA $21 |
|
LDA BOB1+1 |
|
CLC |
|
ADC #$02 |
|
STA BOB1+1 |
|
STA BOB2+1 |
|
LDA BOB3+1 |
|
CLC |
|
ADC #$01 |
|
STA BOB3+1 |
|
INC $22 |
|
LDA $22 |
|
CMP #$30 |
|
BNE B2 |
|
|
|
LDY #$00 |
|
LDA #$60 |
|
STA ($20),Y |
|
RTS |
|
|
|
WRITETAB LDX #$00 |
|
WR1 LDA SINX,X |
|
STA TABSINX,X |
|
STA TABSINX+252,X |
|
INX |
|
CPX #252 |
|
BNE WR1 |
|
LDA #$54 |
|
STA $20 |
|
LDA #$04 |
|
STA $21 |
|
LDX #$00 |
|
WR3 LDA $20 |
|
STA LOTAB,X |
|
LDA $21 |
|
STA HITAB,X |
|
LDA $20 |
|
CLC |
|
ADC #$28 |
|
STA $20 |
|
LDA $21 |
|
ADC #$00 |
|
STA $21 |
|
INX |
|
CPX #$40 |
|
BNE WR3 |
|
LDX #$00 |
|
WR2 LDY SINY,X |
|
LDA LOTAB,Y |
|
STA TABSINYL,X |
|
STA TABSINYL+204,X |
|
LDA HITAB,Y |
|
STA TABSINYH,X |
|
STA TABSINYH+204,X |
|
INX |
|
CPX #204 |
|
BNE WR2 |
|
LDX #$00 |
|
LDA #$06 |
|
KOL1 STA TABKOL,X |
|
INX |
|
CPX #$40 |
|
BNE KOL1 |
|
LDA #$0E |
|
KOL2 STA TABKOL,X |
|
INX |
|
CPX #$80 |
|
BNE KOL2 |
|
LDA #$03 |
|
KOL3 STA TABKOL,X |
|
INX |
|
CPX #$C0 |
|
BNE KOL3 |
|
LDA #$01 |
|
KOL4 STA TABKOL,X |
|
INX |
|
BNE KOL4 |
|
RTS |
|
|
|
CZY STA $0400 |
|
CZY2 STX $0400 |
|
|
|
WRICZYSC LDA #<POCZ2 |
|
STA $20 |
|
LDA #>POCZ2 |
|
STA $21 |
|
LDA #<CZYSZ |
|
STA $22 |
|
LDA #>CZYSZ |
|
STA $23 |
|
LDA #$0A |
|
STA $24 |
|
|
|
WRCZY4 LDX #$0B |
|
WRCZY2 LDY #$00 |
|
TXA |
|
CLC |
|
ADC $20 |
|
STA CZY+1 |
|
STA CZY2+1 |
|
LDA $21 |
|
ADC #$00 |
|
STA CZY+2 |
|
CLC |
|
ADC #$D4 |
|
STA CZY2+2 |
|
WRCZY LDA CZY,Y |
|
STA ($22),Y |
|
INY |
|
CPY #$06 |
|
BNE WRCZY |
|
LDA $22 |
|
CLC |
|
ADC #$06 |
|
STA $22 |
|
LDA $23 |
|
ADC #$00 |
|
STA $23 |
|
DEX |
|
BPL WRCZY2 |
|
LDA $20 |
|
CLC |
|
ADC #$28 |
|
STA $20 |
|
LDA $21 |
|
ADC #$00 |
|
STA $21 |
|
DEC $24 |
|
BPL WRCZY4 |
|
LDA #$60 |
|
LDY #$00 |
|
STA ($22),Y |
|
RTS |
|
|
|
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 |
|
RTS |
|
|
|
LINEWAIT LDA #$FF |
|
LINWAIT2 CMP $D012 |
|
BNE LINWAIT2 |
|
LDA $D012 |
|
LINWAIT3 CMP $D012 |
|
BEQ LINWAIT3 |
|
DEY |
|
BPL LINEWAIT |
|
RTS |
|
|
|