;--------------------------------- |
|
;ELASTIC PLANES BY SIR ART/CHARGED |
|
;--------------------------------- |
|
|
|
*= $1000 |
|
|
|
OX1 = $2C |
|
OX2 = $2D |
|
OY1 = $2E |
|
OY2 = $2F |
|
AX2 = $2A |
|
AY2 = $2B |
|
SX1 = $30 |
|
SX2 = $31 |
|
SY1 = $32 |
|
SY2 = $33 |
|
BX1 = $34 |
|
BX2 = $35 |
|
BY1 = $36 |
|
BY2 = $37 |
|
LICZNIK = $38 |
|
LICZNIK2 = $39 |
|
ZNAK = $3A |
|
EFECT = $28 |
|
WAIT = $29 |
|
TABOBL1 = $1EC0 |
|
TABOBL2 = $1EE0 |
|
TABSTART = $1E80 |
|
KROKLX = $1DC0 |
|
KROKHX = $1DE0 |
|
KROKLY = $1E00 |
|
KROKHY = $1E20 |
|
STARTHX = $1E40 |
|
STARTHY = $1E60 |
|
STARTLX = $1E80 |
|
STARTLY = $1EA0 |
|
SINTAB = $1F00 |
|
|
|
EKRAN = $2000 |
|
LINKRL = $20 |
|
LINKRH = $21 |
|
LINIA1 = $3000 |
|
LINIA2 = $3800 |
|
TABLIL1 = $4000 |
|
TABLIH1 = $4080 |
|
TABLIL2 = TABLIL1 |
|
TABLIH2 = $4100 |
|
FILL = $4200 |
|
X1 = $22 |
|
Y1 = $23 |
|
X2 = $24 |
|
Y2 = $25 |
|
ROZX = $26 |
|
ROZY = $27 |
|
|
|
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 |
|
LDA #$06 |
|
STA $D021 |
|
LDA #$7F |
|
STA $DC0D |
|
LDX #$00 |
|
STX $DC0E |
|
INX |
|
STX $D01A |
|
LDA #$08 |
|
STA $D012 |
|
LDA #$97 |
|
STA $DD00 |
|
LDA #$1A |
|
STA $D018 |
|
LDA #$1B |
|
STA $D011 |
|
LDA #$C8 |
|
STA $D016 |
|
LDA #$35 |
|
STA $01 |
|
LDA #<IRQ1 |
|
STA $FFFE |
|
LDA #>IRQ1 |
|
STA $FFFF |
|
JSR CZYSZCZ |
|
JSR CHESS |
|
JSR ZNAKI |
|
JSR LINIAINI |
|
JSR FILLWR |
|
CLI |
|
LDA #$00 |
|
STA EFECT |
|
|
|
JMP J6 |
|
|
|
J2 LDA #$00 |
|
LDA #$FF |
|
J1 CMP $D012 |
|
BNE J1 |
|
|
|
LDA #$FF |
|
JSR FILL |
|
JUMP1 JSR CZYSC |
|
LDA OX1 |
|
CLC |
|
ADC BX1 |
|
STA OX1 |
|
STA AX1+1 |
|
LDA OY1 |
|
CLC |
|
ADC BY1 |
|
STA OY1 |
|
STA AY1+1 |
|
LDA OX2 |
|
CLC |
|
ADC BX2 |
|
STA OX2 |
|
STA AX2 |
|
LDA OY2 |
|
CLC |
|
ADC BY2 |
|
STA OY2 |
|
STA AY2 |
|
JSR SINKAL |
|
JSR ELASTIC |
|
|
|
INC WAIT |
|
LDA WAIT |
|
CMP #$80 |
|
BEQ J61 |
|
JMP J2 |
|
|
|
J61 INC EFECT |
|
J6 LDA EFECT |
|
CMP #$00 |
|
BNE HOP2 |
|
LDX #$1F |
|
HOP12 LDA #$00 |
|
LDA KWADRATX,X |
|
STA STARTHX,X |
|
LDA KWADRATY,X |
|
STA STARTHY,X |
|
LDA #$00 |
|
STA STARTLX,X |
|
STA STARTLY,X |
|
DEX |
|
BPL HOP12 |
|
LDX #$0B |
|
HOP13 LDA INITAB,X |
|
STA OX1,X |
|
DEX |
|
BPL HOP13 |
|
JMP PROCKA1 |
|
HOP2 CMP #$01 |
|
BNE HOP3 |
|
LDX #$1F |
|
HOP22 LDA TABOBL1,X |
|
STA STARTHX,X |
|
LDA TABOBL2,X |
|
STA STARTHY,X |
|
LDA #$00 |
|
STA STARTLX,X |
|
STA STARTLY,X |
|
DEX |
|
BPL HOP22 |
|
LDX #$0B |
|
HOP23 LDA INITAB2,X |
|
STA OX1,X |
|
DEX |
|
BPL HOP23 |
|
JMP PROCKA1 |
|
HOP3 CMP #$02 |
|
BNE HOP4 |
|
LDX #$1F |
|
HOP32 LDA TABOBL1,X |
|
STA STARTHX,X |
|
LDA TABOBL2,X |
|
STA STARTHY,X |
|
LDA #$00 |
|
STA STARTLX,X |
|
STA STARTLY,X |
|
DEX |
|
BPL HOP32 |
|
LDX #$0B |
|
HOP33 LDA INITAB3,X |
|
STA OX1,X |
|
DEX |
|
BPL HOP33 |
|
JMP PROCKA1 |
|
HOP4 CMP #$03 |
|
BNE HOP5 |
|
LDX #$1F |
|
HOP42 LDA TABOBL1,X |
|
STA STARTHX,X |
|
LDA TABOBL2,X |
|
STA STARTHY,X |
|
LDA #$00 |
|
STA STARTLX,X |
|
STA STARTLY,X |
|
LDA TROJKATX,X |
|
STA TABOBL1,X |
|
LDA TROJKATY,X |
|
STA TABOBL2,X |
|
DEX |
|
BPL HOP42 |
|
JMP PROCKA2 |
|
|
|
HOP5 JMP HOP5 |
|
|
|
PROCKA1 LDA OX1 |
|
CLC |
|
ADC BX1 |
|
STA OX1 |
|
STA AX1+1 |
|
LDA OY1 |
|
CLC |
|
ADC BY1 |
|
STA OY1 |
|
STA AY1+1 |
|
LDA OX2 |
|
CLC |
|
ADC BX2 |
|
STA OX2 |
|
STA AX2 |
|
LDA OY2 |
|
CLC |
|
ADC BY2 |
|
STA OY2 |
|
STA AY2 |
|
JSR SINKAL |
|
PROCKA2 JSR LICZKROK |
|
|
|
JKOL LDA #$00 |
|
STA LICZNIK2 |
|
|
|
J5 LDA #$FF |
|
J3 CMP $D012 |
|
BNE J3 |
|
|
|
LDA #$FF |
|
JSR FILL |
|
JSR CZYSC |
|
LDA LICZNIK2 |
|
CMP #$10 |
|
BEQ J7 |
|
INC LICZNIK2 |
|
JSR MORPH |
|
JSR ELASTIC2 |
|
JMP J5 |
|
|
|
J7 LDA #$00 |
|
STA WAIT |
|
LDA EFECT |
|
CMP #$03 |
|
BEQ JUMPIK |
|
JMP JUMP1 |
|
JUMPIK |
|
JMP JUMPIK |
|
|
|
INITAB2 .BYTE $00,$00,$35,$3F |
|
.BYTE $18,$08,$10,$08 |
|
.BYTE $FF,$04,$03,$05 |
|
INITAB3 .BYTE $03,$07,$40,$43 |
|
.BYTE $48,$48,$48,$48 |
|
.BYTE $F9,$03,$05,$FF |
|
INITAB .BYTE $00,$00,$40,$40 |
|
.BYTE $08,$08,$08,$08 |
|
.BYTE $FC,$02,$04,$03 |
|
KWADRATX .BYTE $38,$28,$28,$28 |
|
.BYTE $28,$28,$28,$28 |
|
.BYTE $28,$28,$28,$28 |
|
.BYTE $28,$28,$28,$28 |
|
.BYTE $38,$48,$48,$48 |
|
.BYTE $48,$48,$48,$48 |
|
.BYTE $48,$48,$48,$48 |
|
.BYTE $48,$48,$48,$48 |
|
KWADRATY .BYTE $68,$68,$63,$57 |
|
.BYTE $4B,$47,$43,$3F |
|
.BYTE $3B,$37,$33,$2F |
|
.BYTE $2F,$27,$23,$08 |
|
.BYTE $08,$08,$23,$27 |
|
.BYTE $2B,$2F,$33,$37 |
|
.BYTE $3B,$3F,$43,$47 |
|
.BYTE $4B,$57,$63,$68 |
|
TROJKATX .BYTE $0A,$0D,$11,$14 |
|
.BYTE $16,$18,$1A,$1C |
|
.BYTE $1E,$20,$22,$28 |
|
.BYTE $2E,$30,$32,$34 |
|
.BYTE $38,$3C,$40,$44 |
|
.BYTE $48,$4C,$50,$54 |
|
.BYTE $58,$5B,$5F,$62 |
|
.BYTE $65,$68,$38,$07 |
|
TROJKATY .BYTE $1C,$1C,$1C,$1C |
|
.BYTE $1C,$1C,$1C,$1C |
|
.BYTE $1C,$1C,$1C,$1C |
|
.BYTE $1C,$1C,$1C,$1C |
|
.BYTE $1C,$1C,$1C,$1C |
|
.BYTE $1C,$1C,$1C,$1C |
|
.BYTE $1C,$1C,$1C,$1C |
|
.BYTE $1C,$1C,$6F,$1C |
|
|
|
IRQ1 STA REG1+1 |
|
STX REG1+3 |
|
STY REG1+5 |
|
|
|
LDA #$00 |
|
STA $D020 |
|
LDA #$06 |
|
STA $D021 |
|
|
|
INC $D019 |
|
REG1 LDA #$00 |
|
LDX #$00 |
|
LDY #$00 |
|
RTI |
|
|
|
MORPH LDX #$00 |
|
MORPH2 LDA STARTLX,X |
|
CLC |
|
ADC KROKLX,X |
|
STA STARTLX,X |
|
LDA STARTHX,X |
|
ADC KROKHX,X |
|
CMP #$70 |
|
BCC MORPH3 |
|
LDA TABOBL1,X |
|
MORPH3 STA STARTHX,X |
|
LDA STARTLY,X |
|
CLC |
|
ADC KROKLY,X |
|
STA STARTLY,X |
|
LDA STARTHY,X |
|
ADC KROKHY,X |
|
CMP #$70 |
|
BCC MORPH4 |
|
LDA TABOBL2,X |
|
MORPH4 STA STARTHY,X |
|
INX |
|
CPX #$20 |
|
BNE MORPH2 |
|
RTS |
|
|
|
LICZKROK LDX #$00 |
|
|
|
LICZPOCZ LDA #$00 |
|
STA ZNAK |
|
STA KROKLX,X |
|
LDA TABOBL1,X |
|
SEC |
|
SBC STARTHX,X |
|
STA KROKHX,X |
|
BPL LICZ2 |
|
LDA ZNAK |
|
EOR #$01 |
|
STA ZNAK |
|
LDA KROKHX,X |
|
EOR #$FF |
|
CLC |
|
ADC #$01 |
|
STA KROKHX,X |
|
LICZ2 LSR KROKHX,X |
|
ROR KROKLX,X |
|
LSR KROKHX,X |
|
ROR KROKLX,X |
|
LSR KROKHX,X |
|
ROR KROKLX,X |
|
LSR KROKHX,X |
|
ROR KROKLX,X |
|
LDA ZNAK |
|
BEQ LICZ3 |
|
LDA KROKLX,X |
|
EOR #$FF |
|
CLC |
|
ADC #$01 |
|
STA KROKLX,X |
|
LDA KROKHX,X |
|
EOR #$FF |
|
ADC #$00 |
|
STA KROKHX,X |
|
|
|
LICZ3 LDA #$00 |
|
STA ZNAK |
|
STA KROKLY,X |
|
LDA TABOBL2,X |
|
SEC |
|
SBC STARTHY,X |
|
STA KROKHY,X |
|
BPL LICZ4 |
|
LDA ZNAK |
|
EOR #$01 |
|
STA ZNAK |
|
LDA KROKHY,X |
|
EOR #$FF |
|
CLC |
|
ADC #$01 |
|
STA KROKHY,X |
|
LICZ4 LSR KROKHY,X |
|
ROR KROKLY,X |
|
LSR KROKHY,X |
|
ROR KROKLY,X |
|
LSR KROKHY,X |
|
ROR KROKLY,X |
|
LSR KROKHY,X |
|
ROR KROKLY,X |
|
LDA ZNAK |
|
BEQ LICZ5 |
|
LDA KROKLY,X |
|
EOR #$FF |
|
CLC |
|
ADC #$01 |
|
STA KROKLY,X |
|
LDA KROKHY,X |
|
EOR #$FF |
|
ADC #$00 |
|
STA KROKHY,X |
|
|
|
LICZ5 INX |
|
CPX #$20 |
|
BEQ LICZ6 |
|
JMP LICZPOCZ |
|
LICZ6 RTS |
|
|
|
SINKAL LDX #$1F |
|
SINKAL2 LDA AX1+1 |
|
CLC |
|
ADC SX1 |
|
STA AX1+1 |
|
LDA AX2 |
|
CLC |
|
ADC SX2 |
|
STA AX2 |
|
TAY |
|
AX1 LDA SINTAB |
|
ADC SINTAB,Y |
|
STA TABOBL1,X |
|
LDA AY1+1 |
|
CLC |
|
ADC SY1 |
|
STA AY1+1 |
|
LDA AY2 |
|
CLC |
|
ADC SY2 |
|
STA AY2 |
|
TAY |
|
AY1 LDA SINTAB |
|
ADC SINTAB,Y |
|
STA TABOBL2,X |
|
DEX |
|
BPL SINKAL2 |
|
RTS |
|
|
|
ELASTIC LDA #$00 |
|
STA LICZNIK |
|
LDX LICZNIK |
|
RYS1 LDA TABOBL1,X |
|
STA $22 |
|
LDA TABOBL2,X |
|
STA $23 |
|
LDX LICZNIK |
|
INX |
|
TXA |
|
AND #$1F |
|
TAX |
|
LDA TABOBL1,X |
|
STA $24 |
|
LDA TABOBL2,X |
|
STA $25 |
|
JSR LINMAI |
|
INC LICZNIK |
|
LDX LICZNIK |
|
CPX #$20 |
|
BNE RYS1 |
|
RTS |
|
|
|
ELASTIC2 LDA #$00 |
|
STA LICZNIK |
|
LDX LICZNIK |
|
RYS2 LDA STARTHX,X |
|
STA $22 |
|
LDA STARTHY,X |
|
STA $23 |
|
LDX LICZNIK |
|
INX |
|
TXA |
|
AND #$1F |
|
TAX |
|
LDA STARTHX,X |
|
STA $24 |
|
LDA STARTHY,X |
|
STA $25 |
|
JSR LINMAI |
|
INC LICZNIK |
|
LDX LICZNIK |
|
CPX #$20 |
|
BNE RYS2 |
|
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 |
|
|
|
POCZ = $28*10+$040D |
|
LDA #<POCZ |
|
STA $20 |
|
LDA #>POCZ |
|
STA $21 |
|
LDX #$00 |
|
ZNAKI3 TXA |
|
LDY #$00 |
|
ZNAKI2 STA ($20),Y |
|
CLC |
|
ADC #$10 |
|
INY |
|
CPY #$0E |
|
BNE ZNAKI2 |
|
LDA $20 |
|
CLC |
|
ADC #$28 |
|
STA $20 |
|
LDA $21 |
|
ADC #$00 |
|
STA $21 |
|
INX |
|
CPX #$0E |
|
BNE ZNAKI3 |
|
RTS |
|
|
|
LINPRO1 LDA EKRAN,X |
|
EOR #$80 |
|
STA EKRAN,X |
|
TYA |
|
ADC LINKRL |
|
TAY |
|
TXA |
|
ADC LINKRH |
|
TAX |
|
LINPRO2 LDA EKRAN,X |
|
EOR #$80 |
|
STA EKRAN,X |
|
TYA |
|
SBC LINKRL |
|
TAY |
|
TXA |
|
SBC LINKRH |
|
TAX |
|
LINIAINI LDA #<LINIA1 |
|
STA $20 |
|
LDA #>LINIA1 |
|
STA $21 |
|
LDX #$00 |
|
LINI2 LDY #$00 |
|
LINI3 LDA LINPRO1,Y |
|
STA ($20),Y |
|
INY |
|
CPY #$10 |
|
BNE LINI3 |
|
LDA $20 |
|
STA TABLIL1,X |
|
LDA $21 |
|
STA TABLIH1,X |
|
LSR LINPRO1+4 |
|
BNE LINI1 |
|
LDA #$80 |
|
STA LINPRO1+4 |
|
LDA LINPRO1+1 |
|
CLC |
|
ADC #$80 |
|
STA LINPRO1+1 |
|
STA LINPRO1+6 |
|
LDA LINPRO1+2 |
|
ADC #$00 |
|
STA LINPRO1+7 |
|
STA LINPRO1+2 |
|
LINI1 LDA $20 |
|
CLC |
|
ADC #$10 |
|
STA $20 |
|
LDA $21 |
|
ADC #$00 |
|
STA $21 |
|
INX |
|
CPX #$70 |
|
BNE LINI2 |
|
LDY #$00 |
|
LDA #$60 |
|
STA ($20),Y |
|
LDA #<LINIA2 |
|
STA $20 |
|
LDA #>LINIA2 |
|
STA $21 |
|
LDX #$00 |
|
LINI22 LDY #$00 |
|
LINI32 LDA LINPRO2,Y |
|
STA ($20),Y |
|
INY |
|
CPY #$10 |
|
BNE LINI32 |
|
LDA $21 |
|
STA TABLIH2,X |
|
LSR LINPRO2+4 |
|
BNE LINI12 |
|
LDA #$80 |
|
STA LINPRO2+4 |
|
LDA LINPRO2+1 |
|
CLC |
|
ADC #$80 |
|
STA LINPRO2+1 |
|
STA LINPRO2+6 |
|
LDA LINPRO2+2 |
|
ADC #$00 |
|
STA LINPRO2+7 |
|
STA LINPRO2+2 |
|
LINI12 LDA $20 |
|
CLC |
|
ADC #$10 |
|
STA $20 |
|
LDA $21 |
|
ADC #$00 |
|
STA $21 |
|
INX |
|
CPX #$70 |
|
BNE LINI22 |
|
LDY #$00 |
|
LDA #$60 |
|
STA ($20),Y |
|
RTS |
|
|
|
LINMAI LDA #$00 |
|
STA LINM4+1 |
|
LDA X2 |
|
SEC |
|
SBC X1 |
|
BPL LINM1 |
|
LDA X1 |
|
LDY X2 |
|
STA X2 |
|
STY X1 |
|
LDA Y1 |
|
LDY Y2 |
|
STA Y2 |
|
STY Y1 |
|
LDA X2 |
|
SEC |
|
SBC X1 |
|
LINM1 STA ROZX |
|
LDA Y1 |
|
SEC |
|
SBC Y2 |
|
BPL LINM2 |
|
INC LINM4+1 |
|
EOR #$FF |
|
CLC |
|
ADC #$01 |
|
LINM2 STA ROZY |
|
BNE LINM3 |
|
STA LINKRL |
|
STA LINKRH |
|
JMP LINM4 |
|
|
|
RESL = LINKRL |
|
RESH = LINKRH |
|
DIV = ROZX |
|
DI2 = ROZY |
|
|
|
LINM3 LDA #$00 |
|
STA RESL |
|
STA RESH |
|
LDA #$00 |
|
ASL DI2 |
|
ROL A |
|
TAX |
|
SEC |
|
SBC DIV |
|
BCS *+3 |
|
TXA |
|
ROL RESL |
|
ROL RESH |
|
ASL DI2 |
|
ROL A |
|
TAX |
|
SEC |
|
SBC DIV |
|
BCS *+3 |
|
TXA |
|
ROL RESL |
|
ROL RESH |
|
ASL DI2 |
|
ROL A |
|
TAX |
|
SEC |
|
SBC DIV |
|
BCS *+3 |
|
TXA |
|
ROL RESL |
|
ROL RESH |
|
ASL DI2 |
|
ROL A |
|
TAX |
|
SEC |
|
SBC DIV |
|
BCS *+3 |
|
TXA |
|
ROL RESL |
|
ROL RESH |
|
ASL DI2 |
|
ROL A |
|
TAX |
|
SEC |
|
SBC DIV |
|
BCS *+3 |
|
TXA |
|
ROL RESL |
|
ROL RESH |
|
ASL DI2 |
|
ROL A |
|
TAX |
|
SEC |
|
SBC DIV |
|
BCS *+3 |
|
TXA |
|
ROL RESL |
|
ROL RESH |
|
ASL DI2 |
|
ROL A |
|
TAX |
|
SEC |
|
SBC DIV |
|
BCS *+3 |
|
TXA |
|
ROL RESL |
|
ROL RESH |
|
ASL DI2 |
|
ROL A |
|
TAX |
|
SEC |
|
SBC DIV |
|
BCS *+3 |
|
TXA |
|
ROL RESL |
|
ROL RESH |
|
ASL DI2 |
|
ROL A |
|
TAX |
|
SEC |
|
SBC DIV |
|
BCS *+3 |
|
TXA |
|
ROL RESL |
|
ROL RESH |
|
ASL DI2 |
|
ROL A |
|
TAX |
|
SEC |
|
SBC DIV |
|
BCS *+3 |
|
TXA |
|
ROL RESL |
|
ROL RESH |
|
ASL DI2 |
|
ROL A |
|
TAX |
|
SEC |
|
SBC DIV |
|
BCS *+3 |
|
TXA |
|
ROL RESL |
|
ROL RESH |
|
ASL DI2 |
|
ROL A |
|
TAX |
|
SEC |
|
SBC DIV |
|
BCS *+3 |
|
TXA |
|
ROL RESL |
|
ROL RESH |
|
ASL DI2 |
|
ROL A |
|
TAX |
|
SEC |
|
SBC DIV |
|
BCS *+3 |
|
TXA |
|
ROL RESL |
|
ROL RESH |
|
ASL DI2 |
|
ROL A |
|
TAX |
|
SEC |
|
SBC DIV |
|
BCS *+3 |
|
TXA |
|
ROL RESL |
|
ROL RESH |
|
ASL DI2 |
|
ROL A |
|
TAX |
|
SEC |
|
SBC DIV |
|
BCS *+3 |
|
TXA |
|
ROL RESL |
|
ROL RESH |
|
ASL DI2 |
|
ROL A |
|
TAX |
|
SEC |
|
SBC DIV |
|
BCS *+3 |
|
TXA |
|
ROL RESL |
|
ROL RESH |
|
LINM4 LDA #$00 |
|
BEQ LINM5 |
|
LDX X1 |
|
LDA TABLIL1,X |
|
STA LINM6+1 |
|
LDA TABLIH1,X |
|
STA LINM6+2 |
|
LDX X2 |
|
|
|
LDA TABLIL1,X |
|
STA LINM7+1 |
|
STA LINM8+1 |
|
LDA TABLIH1,X |
|
STA LINM7+2 |
|
STA LINM8+2 |
|
LDA #$60 |
|
LINM7 STA $3FFF |
|
LDX Y1 |
|
CLC |
|
LINM6 JSR $3FFF |
|
LDA #$BD |
|
LINM8 STA $3FFF |
|
RTS |
|
LINM5 |
|
LDX X1 |
|
LDA TABLIL1,X |
|
STA LINM9+1 |
|
LDA TABLIH2,X |
|
STA LINM9+2 |
|
LDX X2 |
|
|
|
LDA TABLIL1,X |
|
STA LINMA+1 |
|
STA LINMB+1 |
|
LDA TABLIH2,X |
|
STA LINMA+2 |
|
STA LINMB+2 |
|
LDA #$60 |
|
LINMA STA $3FFF |
|
LDX Y1 |
|
SEC |
|
LINM9 JSR $3FFF |
|
LDA #$BD |
|
LINMB STA $3FFF |
|
RTS |
|
|
|
CZYSC LDX #$3F |
|
LDA #$00 |
|
CZYSC1 STA $2000,X |
|
STA $2040,X |
|
STA $2080,X |
|
STA $20C0,X |
|
STA $2100,X |
|
STA $2140,X |
|
STA $2180,X |
|
STA $21C0,X |
|
STA $2200,X |
|
STA $2240,X |
|
STA $2280,X |
|
STA $22C0,X |
|
STA $2300,X |
|
STA $2340,X |
|
STA $2380,X |
|
STA $23C0,X |
|
STA $2400,X |
|
STA $2440,X |
|
STA $2480,X |
|
STA $24C0,X |
|
STA $2500,X |
|
STA $2540,X |
|
STA $2580,X |
|
STA $25C0,X |
|
STA $2600,X |
|
STA $2640,X |
|
STA $2680,X |
|
STA $26C0,X |
|
DEX |
|
BPL CZYSC1 |
|
RTS |
|
|
|
FILLPROC EOR $2000 |
|
STA $2800 |
|
|
|
FILLWR LDA #<FILL |
|
STA $20 |
|
LDA #>FILL |
|
STA $21 |
|
|
|
LDX #$00 |
|
LDA TABFIL1,X |
|
STA FILLPROC+1 |
|
STA FILLPROC+4 |
|
FILLW2 LDY #$00 |
|
FILLW1 LDA FILLPROC,Y |
|
STA ($20),Y |
|
INY |
|
CPY #$06 |
|
BNE FILLW1 |
|
LDA $20 |
|
CLC |
|
ADC #$06 |
|
STA $20 |
|
LDA $21 |
|
ADC #$00 |
|
STA $21 |
|
LDA FILLPROC+1 |
|
CMP TABFIL2,X |
|
BNE FILLW4 |
|
INX |
|
LDA TABFIL1,X |
|
STA FILLPROC+1 |
|
STA FILLPROC+4 |
|
TXA |
|
AND #$01 |
|
BEQ FILLW6 |
|
JMP FILLW5 |
|
FILLW6 LDA FILLPROC+2 |
|
ADC #$00 |
|
STA FILLPROC+2 |
|
CLC |
|
ADC #$08 |
|
STA FILLPROC+5 |
|
JMP FILLW5 |
|
FILLW4 LDA FILLPROC+1 |
|
CLC |
|
ADC #$01 |
|
STA FILLPROC+1 |
|
STA FILLPROC+4 |
|
FILLW5 |
|
CPX #$0E |
|
BNE FILLW2 |
|
LDA #$60 |
|
LDY #$00 |
|
STA ($20),Y |
|
RTS |
|
|
|
TABFIL1 .BYTE $00,$80,0,$80 |
|
.BYTE $00,$80,0,$80 |
|
.BYTE $00,$80,0,$80 |
|
.BYTE $00,$80,0,$80 |
|
TABFIL2 .BYTE $6F,$EF,$6F,$EF |
|
.BYTE $6F,$EF,$6F,$EF |
|
.BYTE $6F,$EF,$6F,$EF |
|
.BYTE $6F,$EF,$6F,$EF |
|
CLINTAB .BYTE 0,0,0,0,0,0 |
|
|
|
CZYSZCZ LDX #$00 |
|
CZSC1 LDA #$00 |
|
STA $2000,X |
|
STA $2100,X |
|
STA $2200,X |
|
STA $2400,X |
|
STA $2500,X |
|
STA $2600,X |
|
STA $2700,X |
|
STA $2300,X |
|
LDA #$FF |
|
STA $2800,X |
|
STA $2900,X |
|
STA $2A00,X |
|
STA $2B00,X |
|
STA $2C00,X |
|
STA $2D00,X |
|
STA $2E00,X |
|
STA $2F00,X |
|
INX |
|
BNE CZSC1 |
|
RTS |
|
|
|