add the files
This commit is contained in:
parent
cb949b94a8
commit
16c6aa0ef7
26
README.md
26
README.md
|
@ -1,2 +1,26 @@
|
||||||
# HackingStarDragon
|
# HackingStarDragon
|
||||||
A modified version of a C64 tech demo to add joystick support
|
|
||||||
|
A modified version of a C64 tech demo to add joystick support.
|
||||||
|
|
||||||
|
Watch the video: https://youtu.be/3JdcgiPp60k
|
||||||
|
|
||||||
|
## Decompiling
|
||||||
|
|
||||||
|
`star-ca65.prg` already has the two byte memory header stripped. You can
|
||||||
|
decompile it with `da65`:
|
||||||
|
|
||||||
|
```
|
||||||
|
da65 -o star-ca65.s star-ca65.prg
|
||||||
|
```
|
||||||
|
|
||||||
|
## Hacking
|
||||||
|
|
||||||
|
I put comments into `star-joysitck.s` with all of the modifications I made.
|
||||||
|
|
||||||
|
## Building
|
||||||
|
|
||||||
|
You'll need a virtual floppy made in VICE called `disk.d64` in this directory.
|
||||||
|
Then run `build.sh` and VICE will start with the floppy drive attached.
|
||||||
|
You'll need to type in the BASIC part of **Star Dragon** to make this work.
|
||||||
|
(https://archive.org/details/1986-06-computegazette/page/n55/mode/2up)
|
||||||
|
Get to typing!
|
||||||
|
|
|
@ -0,0 +1,6 @@
|
||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
cl65 -o star2.prg -O -C c64-asm.cfg --start-addr '$c0f0' star-joystick.s || { exit 1; }
|
||||||
|
c1541 -attach disk.d64 8 -delete star2
|
||||||
|
c1541 -attach disk.d64 8 -write star2.prg star2
|
||||||
|
x64 -attach8rw disk.d64
|
|
@ -0,0 +1,7 @@
|
||||||
|
GLOBAL {
|
||||||
|
OUTPUTNAME "star-ca65.asm.s";
|
||||||
|
INPUTNAME "star-ca65.prg";
|
||||||
|
STARTADDR $C0F0;
|
||||||
|
PAGELENGTH 0; # No paging
|
||||||
|
CPU "6502";
|
||||||
|
};
|
Binary file not shown.
|
@ -0,0 +1,930 @@
|
||||||
|
; da65 V2.18 - Ubuntu 2.19-1
|
||||||
|
; Created: 2021-08-15 17:01:30
|
||||||
|
; Input file: star2.prg
|
||||||
|
; Page: 1
|
||||||
|
|
||||||
|
|
||||||
|
.setcpu "6502"
|
||||||
|
|
||||||
|
L0D2B := $0D2B
|
||||||
|
L0F17 := $0F17
|
||||||
|
L2020 := $2020
|
||||||
|
L2221 := $2221
|
||||||
|
L423A := $423A
|
||||||
|
L4353 := $4353
|
||||||
|
L454C := $454C
|
||||||
|
L4948 := $4948
|
||||||
|
L5420 := $5420
|
||||||
|
L5453 := $5453
|
||||||
|
L5941 := $5941
|
||||||
|
LC0F0 := $C0F0
|
||||||
|
LC0F3 := $C0F3
|
||||||
|
LC200 := $C200
|
||||||
|
LC253 := $C253
|
||||||
|
LC26D := $C26D
|
||||||
|
LC26F := $C26F
|
||||||
|
LC2DD := $C2DD
|
||||||
|
LC313 := $C313
|
||||||
|
LC31F := $C31F
|
||||||
|
LC321 := $C321
|
||||||
|
LC345 := $C345
|
||||||
|
LC3F6 := $C3F6
|
||||||
|
LC3FF := $C3FF
|
||||||
|
LC42C := $C42C
|
||||||
|
LC45A := $C45A
|
||||||
|
LC4BA := $C4BA
|
||||||
|
LC4DE := $C4DE
|
||||||
|
LC563 := $C563
|
||||||
|
LC5B9 := $C5B9
|
||||||
|
LC5BD := $C5BD
|
||||||
|
LC610 := $C610
|
||||||
|
LC622 := $C622
|
||||||
|
LC62B := $C62B
|
||||||
|
LC63A := $C63A
|
||||||
|
LC723 := $C723
|
||||||
|
LC76A := $C76A
|
||||||
|
LE097 := $E097
|
||||||
|
LF910 := $F910
|
||||||
|
beq LF910
|
||||||
|
jmp LC76A
|
||||||
|
|
||||||
|
ldy $15
|
||||||
|
sty $D401
|
||||||
|
beq LF95C
|
||||||
|
dec $15
|
||||||
|
LF95C: jmp LC200
|
||||||
|
|
||||||
|
rts
|
||||||
|
|
||||||
|
brk
|
||||||
|
clc
|
||||||
|
brk
|
||||||
|
brk
|
||||||
|
clc
|
||||||
|
brk
|
||||||
|
brk
|
||||||
|
clc
|
||||||
|
brk
|
||||||
|
brk
|
||||||
|
.byte $3C
|
||||||
|
brk
|
||||||
|
asl $783C,x
|
||||||
|
.byte $0F
|
||||||
|
.byte $3C
|
||||||
|
beq LF97A
|
||||||
|
.byte $FF
|
||||||
|
cpx #$03
|
||||||
|
.byte $E7
|
||||||
|
cpy #$03
|
||||||
|
.byte $C3
|
||||||
|
LF97A: cpx #$3F
|
||||||
|
lda LFFFC,x
|
||||||
|
lda $3FFF,x
|
||||||
|
.byte $C3
|
||||||
|
.byte $FC
|
||||||
|
.byte $03
|
||||||
|
.byte $E7
|
||||||
|
cpx #$03
|
||||||
|
.byte $FF
|
||||||
|
cpx #$07
|
||||||
|
.byte $3C
|
||||||
|
beq LF9AC
|
||||||
|
.byte $3C
|
||||||
|
sec
|
||||||
|
asl $383C,x
|
||||||
|
brk
|
||||||
|
clc
|
||||||
|
brk
|
||||||
|
brk
|
||||||
|
clc
|
||||||
|
brk
|
||||||
|
brk
|
||||||
|
clc
|
||||||
|
brk
|
||||||
|
brk
|
||||||
|
brk
|
||||||
|
brk
|
||||||
|
brk
|
||||||
|
brk
|
||||||
|
brk
|
||||||
|
brk
|
||||||
|
brk
|
||||||
|
brk
|
||||||
|
brk
|
||||||
|
brk
|
||||||
|
brk
|
||||||
|
brk
|
||||||
|
brk
|
||||||
|
bmi LF9AC
|
||||||
|
LF9AC: brk
|
||||||
|
sei
|
||||||
|
brk
|
||||||
|
brk
|
||||||
|
.byte $FC
|
||||||
|
brk
|
||||||
|
ora ($FE,x)
|
||||||
|
brk
|
||||||
|
.byte $03
|
||||||
|
.byte $FF
|
||||||
|
brk
|
||||||
|
brk
|
||||||
|
sei
|
||||||
|
brk
|
||||||
|
brk
|
||||||
|
sei
|
||||||
|
brk
|
||||||
|
.byte $03
|
||||||
|
.byte $7B
|
||||||
|
brk
|
||||||
|
.byte $07
|
||||||
|
.byte $7B
|
||||||
|
.byte $80
|
||||||
|
.byte $0F
|
||||||
|
.byte $7B
|
||||||
|
cpy #$1F
|
||||||
|
.byte $7B
|
||||||
|
cpx #$3F
|
||||||
|
.byte $FF
|
||||||
|
beq LFA4D
|
||||||
|
.byte $FF
|
||||||
|
sed
|
||||||
|
.byte $7C
|
||||||
|
.byte $FC
|
||||||
|
sed
|
||||||
|
adc $78FE,y
|
||||||
|
.byte $73
|
||||||
|
.byte $FF
|
||||||
|
sec
|
||||||
|
.byte $63
|
||||||
|
.byte $FF
|
||||||
|
clc
|
||||||
|
brk
|
||||||
|
brk
|
||||||
|
brk
|
||||||
|
brk
|
||||||
|
.byte $93
|
||||||
|
ora $0D
|
||||||
|
ora $0D0D
|
||||||
|
jsr L2020
|
||||||
|
jsr L2020
|
||||||
|
jsr L2020
|
||||||
|
jsr L4353
|
||||||
|
.byte $4F
|
||||||
|
.byte $52
|
||||||
|
eor $3A
|
||||||
|
bmi LFA28
|
||||||
|
bmi LFA2A
|
||||||
|
jsr L454C
|
||||||
|
lsr $45,x
|
||||||
|
jmp L423A
|
||||||
|
|
||||||
|
ora $9E0D
|
||||||
|
jsr L2020
|
||||||
|
jsr L2020
|
||||||
|
jsr L2020
|
||||||
|
jsr L2020
|
||||||
|
jsr L2020
|
||||||
|
jsr L4948
|
||||||
|
.byte $54
|
||||||
|
jsr L0D2B
|
||||||
|
ora L2020
|
||||||
|
jsr L2020
|
||||||
|
jsr L2020
|
||||||
|
jsr L5420
|
||||||
|
.byte $4F
|
||||||
|
LFA28: .byte $20
|
||||||
|
.byte $50
|
||||||
|
LFA2A: jmp L5941
|
||||||
|
|
||||||
|
jsr L5453
|
||||||
|
eor ($52,x)
|
||||||
|
.byte $44
|
||||||
|
.byte $52
|
||||||
|
eor ($47,x)
|
||||||
|
.byte $4F
|
||||||
|
lsr $4000
|
||||||
|
.byte $80
|
||||||
|
cpy #$C0
|
||||||
|
bmi LFA4B
|
||||||
|
.byte $03
|
||||||
|
jsr L2221
|
||||||
|
.byte $23
|
||||||
|
and $26
|
||||||
|
.byte $27
|
||||||
|
plp
|
||||||
|
rol a
|
||||||
|
.byte $2B
|
||||||
|
.byte $2C
|
||||||
|
LFA4B: .byte $2D
|
||||||
|
.byte $2F
|
||||||
|
LFA4D: bmi LFA80
|
||||||
|
.byte $32
|
||||||
|
.byte $34
|
||||||
|
and $36,x
|
||||||
|
.byte $37
|
||||||
|
and $3B3A,y
|
||||||
|
.byte $3C
|
||||||
|
rol $403F,x
|
||||||
|
eor ($43,x)
|
||||||
|
.byte $44
|
||||||
|
eor $46
|
||||||
|
ldx #$00
|
||||||
|
ldx #$00
|
||||||
|
LFA64: lda $CF00,x
|
||||||
|
beq LFAAD
|
||||||
|
cmp #$01
|
||||||
|
beq LFA81
|
||||||
|
ldy $CFD0,x
|
||||||
|
dey
|
||||||
|
dey
|
||||||
|
tya
|
||||||
|
sta $CFD0,x
|
||||||
|
cmp #$04
|
||||||
|
bcs LFA7F
|
||||||
|
lda #$00
|
||||||
|
sta $CF00,x
|
||||||
|
LFA7F: .byte $F0
|
||||||
|
LFA80: .byte $2C
|
||||||
|
LFA81: ldy $CF40,x
|
||||||
|
lda $CFC0,x
|
||||||
|
sta $AE
|
||||||
|
lda $CF20,x
|
||||||
|
jsr LC253
|
||||||
|
sta $CF40,x
|
||||||
|
lda $AE
|
||||||
|
sta $CFC0,x
|
||||||
|
ldy $CF50,x
|
||||||
|
lda $CFD0,x
|
||||||
|
sta $AE
|
||||||
|
lda $CF30,x
|
||||||
|
jsr LC253
|
||||||
|
sta $CF50,x
|
||||||
|
lda $AE
|
||||||
|
sta $CFD0,x
|
||||||
|
LFAAD: inx
|
||||||
|
cpx #$0F
|
||||||
|
bne LFA64
|
||||||
|
rts
|
||||||
|
|
||||||
|
bmi LFABF
|
||||||
|
asl a
|
||||||
|
sty $02
|
||||||
|
adc $02
|
||||||
|
bcc LFABE
|
||||||
|
inc $AE
|
||||||
|
LFABE: rts
|
||||||
|
|
||||||
|
LFABF: asl a
|
||||||
|
sta $02
|
||||||
|
tya
|
||||||
|
sbc $02
|
||||||
|
bcs LFAC9
|
||||||
|
dec $AE
|
||||||
|
LFAC9: rts
|
||||||
|
|
||||||
|
LFACA: jmp LC313
|
||||||
|
|
||||||
|
ldx #$00
|
||||||
|
lda $CF00,x
|
||||||
|
cmp #$01
|
||||||
|
bne LFACA
|
||||||
|
ldy #$00
|
||||||
|
sty $AE
|
||||||
|
sty $B0
|
||||||
|
lda #$FF
|
||||||
|
sta $AF
|
||||||
|
sta $B1
|
||||||
|
inc $CF70,x
|
||||||
|
lda $CF70,x
|
||||||
|
bne LFAFD
|
||||||
|
lda #$FC
|
||||||
|
sta $CF70,x
|
||||||
|
dec $CF10,x
|
||||||
|
lda $CF10,x
|
||||||
|
bne LFAFD
|
||||||
|
jsr LC2DD
|
||||||
|
jmp LC313
|
||||||
|
|
||||||
|
LFAFD: lda $CFC0,x
|
||||||
|
cmp #$12
|
||||||
|
bcs LFB0C
|
||||||
|
ldy #$00
|
||||||
|
sty $AE
|
||||||
|
ldy #$7F
|
||||||
|
sty $AF
|
||||||
|
LFB0C: cmp #$9C
|
||||||
|
bcc LFB18
|
||||||
|
ldy #$80
|
||||||
|
sty $AE
|
||||||
|
ldy #$FF
|
||||||
|
sty $AF
|
||||||
|
LFB18: lda $CFD0,x
|
||||||
|
cmp #$30
|
||||||
|
bcs LFB27
|
||||||
|
ldy #$00
|
||||||
|
sty $B0
|
||||||
|
ldy #$7F
|
||||||
|
sty $B1
|
||||||
|
LFB27: cmp #$DA
|
||||||
|
bcc LFB33
|
||||||
|
ldy #$80
|
||||||
|
sty $B0
|
||||||
|
ldy #$FF
|
||||||
|
sty $B1
|
||||||
|
LFB33: cpy #$00
|
||||||
|
beq LFB73
|
||||||
|
jsr LC2DD
|
||||||
|
sec
|
||||||
|
bcs LFB73
|
||||||
|
ldy $CF60,x
|
||||||
|
lda $CE00,y
|
||||||
|
ora $AE
|
||||||
|
and $AF
|
||||||
|
sta $CF20,x
|
||||||
|
lda $CE01,y
|
||||||
|
ora $B0
|
||||||
|
and $B1
|
||||||
|
sta $CF30,x
|
||||||
|
lda $CE01,y
|
||||||
|
ora $B0
|
||||||
|
and $B1
|
||||||
|
sta $CF30,x
|
||||||
|
lda $CF10,x
|
||||||
|
beq LFB72
|
||||||
|
lda $CE02,y
|
||||||
|
sta $CF10,x
|
||||||
|
lda $CF60,x
|
||||||
|
clc
|
||||||
|
adc #$04
|
||||||
|
sta $CF60,x
|
||||||
|
LFB72: rts
|
||||||
|
|
||||||
|
LFB73: inx
|
||||||
|
cpx #$0F
|
||||||
|
bcs LFB7B
|
||||||
|
jmp LC26F
|
||||||
|
|
||||||
|
LFB7B: rts
|
||||||
|
|
||||||
|
LFB7C: jmp LC3F6
|
||||||
|
|
||||||
|
ldx #$00
|
||||||
|
lda $CC00,x
|
||||||
|
cmp #$00
|
||||||
|
beq LFB7C
|
||||||
|
cmp #$02
|
||||||
|
bcc LFB91
|
||||||
|
lda #$00
|
||||||
|
sta $CC00,x
|
||||||
|
LFB91: lda $CB80,x
|
||||||
|
sta $AE
|
||||||
|
lda $CBC0,x
|
||||||
|
sta $AF
|
||||||
|
lda #$00
|
||||||
|
tay
|
||||||
|
sta ($AE),y
|
||||||
|
lda $CDC0,x
|
||||||
|
sta $AD
|
||||||
|
lda $AD
|
||||||
|
beq LFBFD
|
||||||
|
ldy #$00
|
||||||
|
lda $CD40,x
|
||||||
|
cmp #$04
|
||||||
|
bcs LFBB3
|
||||||
|
iny
|
||||||
|
LFBB3: cmp #$9E
|
||||||
|
bcc LFBB8
|
||||||
|
iny
|
||||||
|
LFBB8: lda $CD80,x
|
||||||
|
cmp #$C8
|
||||||
|
bcc LFBC0
|
||||||
|
iny
|
||||||
|
LFBC0: cpy #$00
|
||||||
|
beq LFBCC
|
||||||
|
lda #$00
|
||||||
|
sta $CC00,x
|
||||||
|
jmp LC3F6
|
||||||
|
|
||||||
|
LFBCC: lda $CD40,x
|
||||||
|
sta $AE
|
||||||
|
ldy $CCC0,x
|
||||||
|
lda $CC40,x
|
||||||
|
jsr LC253
|
||||||
|
sta $CCC0,x
|
||||||
|
lda $AE
|
||||||
|
sta $CD40,x
|
||||||
|
lda $CD80,x
|
||||||
|
sta $AE
|
||||||
|
ldy $CD00,x
|
||||||
|
lda $CC80,x
|
||||||
|
jsr LC253
|
||||||
|
sta $CD00,x
|
||||||
|
lda $AE
|
||||||
|
sta $CD80,x
|
||||||
|
dec $AD
|
||||||
|
jmp LC345
|
||||||
|
|
||||||
|
LFBFD: lda $CD80,x
|
||||||
|
lsr a
|
||||||
|
lsr a
|
||||||
|
lsr a
|
||||||
|
pha
|
||||||
|
and #$03
|
||||||
|
stx $02
|
||||||
|
tay
|
||||||
|
lda $C1D8,y
|
||||||
|
sta $AE
|
||||||
|
pla
|
||||||
|
tay
|
||||||
|
lda $C1E0,y
|
||||||
|
sta $AF
|
||||||
|
lda $CD40,x
|
||||||
|
clc
|
||||||
|
adc $AE
|
||||||
|
sta $AE
|
||||||
|
bcc LFC21
|
||||||
|
inc $AF
|
||||||
|
LFC21: lda $CD40,x
|
||||||
|
clc
|
||||||
|
adc $AE
|
||||||
|
sta $AE
|
||||||
|
bcc LFC2D
|
||||||
|
inc $AF
|
||||||
|
LFC2D: and #$F8
|
||||||
|
sta $AE
|
||||||
|
lda $CD80,x
|
||||||
|
and #$07
|
||||||
|
tay
|
||||||
|
lda $CD40,x
|
||||||
|
and #$03
|
||||||
|
tax
|
||||||
|
lda $C1DC,x
|
||||||
|
ora ($AE),y
|
||||||
|
sta ($AE),y
|
||||||
|
ldx $02
|
||||||
|
clc
|
||||||
|
tya
|
||||||
|
adc $AE
|
||||||
|
bcc LFC4E
|
||||||
|
inc $AF
|
||||||
|
LFC4E: sta $CB80,x
|
||||||
|
lda $AF
|
||||||
|
sta $CBC0,x
|
||||||
|
inx
|
||||||
|
cpx #$40
|
||||||
|
beq LFC5E
|
||||||
|
jmp LC321
|
||||||
|
|
||||||
|
LFC5E: rts
|
||||||
|
|
||||||
|
ldy $CFCF
|
||||||
|
lda $CB
|
||||||
|
cmp #$0A
|
||||||
|
bne LFC6E
|
||||||
|
cpy #$0E
|
||||||
|
bcc LFC6E
|
||||||
|
dey
|
||||||
|
dey
|
||||||
|
LFC6E: cmp #$12
|
||||||
|
bne LFC78
|
||||||
|
cpy #$A0
|
||||||
|
bcs LFC78
|
||||||
|
iny
|
||||||
|
iny
|
||||||
|
LFC78: sty $CFCF
|
||||||
|
lda $028D
|
||||||
|
cmp $16
|
||||||
|
sta $16
|
||||||
|
beq LFC8B
|
||||||
|
cmp #$04
|
||||||
|
bne LFC8B
|
||||||
|
jsr LC42C
|
||||||
|
LFC8B: rts
|
||||||
|
|
||||||
|
ldx #$00
|
||||||
|
LFC8E: lda $CC00,x
|
||||||
|
bne LFCB4
|
||||||
|
lda #$06
|
||||||
|
sta $CDC0,x
|
||||||
|
lda #$00
|
||||||
|
sta $CC40,x
|
||||||
|
lda #$FF
|
||||||
|
sta $CC80,x
|
||||||
|
lda $CFCF
|
||||||
|
sec
|
||||||
|
sbc #$08
|
||||||
|
sta $CD40,x
|
||||||
|
lda #$B0
|
||||||
|
sta $CD80,x
|
||||||
|
inc $CC00,x
|
||||||
|
rts
|
||||||
|
|
||||||
|
LFCB4: inx
|
||||||
|
cpx #$40
|
||||||
|
bne LFC8E
|
||||||
|
rts
|
||||||
|
|
||||||
|
ldx #$00
|
||||||
|
LFCBC: lda $CC00,x
|
||||||
|
beq LFD1C
|
||||||
|
lda $CDC0,x
|
||||||
|
cmp #$03
|
||||||
|
beq LFD1C
|
||||||
|
lda $CD40,x
|
||||||
|
sta $B0
|
||||||
|
lda $CD80,x
|
||||||
|
sta $B1
|
||||||
|
stx $02
|
||||||
|
ldx #$00
|
||||||
|
stx $AF
|
||||||
|
LFCD8: lda $CF00,x
|
||||||
|
cmp #$01
|
||||||
|
bne LFD22
|
||||||
|
lda $CFC0,x
|
||||||
|
sbc #$0C
|
||||||
|
cmp $B0
|
||||||
|
bcs LFD15
|
||||||
|
adc #$0C
|
||||||
|
cmp $B0
|
||||||
|
bcc LFD15
|
||||||
|
lda $CFD0,x
|
||||||
|
sbc #$30
|
||||||
|
cmp $B1
|
||||||
|
bcs LFD15
|
||||||
|
adc #$14
|
||||||
|
cmp $B1
|
||||||
|
bcc LFD15
|
||||||
|
cpx $AF
|
||||||
|
bne LFD27
|
||||||
|
lda #$02
|
||||||
|
sta $CF00,x
|
||||||
|
lda #$2A
|
||||||
|
sta $15
|
||||||
|
stx $AA
|
||||||
|
ldx $02
|
||||||
|
lda #$F0
|
||||||
|
sta $CD80,x
|
||||||
|
ldx $AA
|
||||||
|
LFD15: inx
|
||||||
|
cpx #$0F
|
||||||
|
bne LFCD8
|
||||||
|
ldx $02
|
||||||
|
LFD1C: inx
|
||||||
|
cpx #$40
|
||||||
|
bne LFCBC
|
||||||
|
rts
|
||||||
|
|
||||||
|
LFD22: inc $AF
|
||||||
|
bne LFD15
|
||||||
|
rts
|
||||||
|
|
||||||
|
LFD27: jsr LE097
|
||||||
|
ldx $02
|
||||||
|
lda #$03
|
||||||
|
sta $CDC0,x
|
||||||
|
lda $8E
|
||||||
|
sta $CC40,x
|
||||||
|
lda #$7F
|
||||||
|
sta $CC80,x
|
||||||
|
jmp LC4BA
|
||||||
|
|
||||||
|
lda $CF0E
|
||||||
|
cmp #$02
|
||||||
|
beq LFD48
|
||||||
|
jmp LC563
|
||||||
|
|
||||||
|
LFD48: lda $CFCE
|
||||||
|
sbc #$08
|
||||||
|
sta $B0
|
||||||
|
lda $CFDE
|
||||||
|
sbc #$28
|
||||||
|
sta $B1
|
||||||
|
ldx #$00
|
||||||
|
LFD58: stx $02
|
||||||
|
jsr LE097
|
||||||
|
ldx $02
|
||||||
|
lda $8E
|
||||||
|
sta $CC40,x
|
||||||
|
lda $8F
|
||||||
|
sta $CC80,x
|
||||||
|
lda #$01
|
||||||
|
sta $CC00,x
|
||||||
|
lda $8D
|
||||||
|
and #$03
|
||||||
|
sta $CDC0,x
|
||||||
|
lda $B0
|
||||||
|
sta $CD40,x
|
||||||
|
lda $B1
|
||||||
|
sta $CD80,x
|
||||||
|
inx
|
||||||
|
cpx #$40
|
||||||
|
bne LFD58
|
||||||
|
ldx #$00
|
||||||
|
stx $CFBA
|
||||||
|
ldx #$80
|
||||||
|
stx $CFBB
|
||||||
|
ldx #$00
|
||||||
|
LFD90: stx $96
|
||||||
|
jsr LC31F
|
||||||
|
ldx $96
|
||||||
|
inx
|
||||||
|
stx $D401
|
||||||
|
bne LFD90
|
||||||
|
inc $9FFD
|
||||||
|
ldx $9FFD
|
||||||
|
cpx #$03
|
||||||
|
bcc LFDBD
|
||||||
|
inc $9FFF
|
||||||
|
lda #$00
|
||||||
|
sta $9FFD
|
||||||
|
lda $9FFF
|
||||||
|
cmp #$0B
|
||||||
|
beq LFDC0
|
||||||
|
lda #$22
|
||||||
|
sta $B1
|
||||||
|
jsr LC5BD
|
||||||
|
LFDBD: jmp LC63A
|
||||||
|
|
||||||
|
LFDC0: jmp LC723
|
||||||
|
|
||||||
|
lda $CFBF
|
||||||
|
bmi LFDF1
|
||||||
|
lda $CFBF
|
||||||
|
bmi LFDF1
|
||||||
|
ldx #$00
|
||||||
|
LFDCF: lda $CFC0,x
|
||||||
|
sbc #$05
|
||||||
|
cmp $CFCF
|
||||||
|
bcs LFDE9
|
||||||
|
adc #$0B
|
||||||
|
cmp $CFCF
|
||||||
|
bcc LFDE9
|
||||||
|
lda $CFD0,x
|
||||||
|
cmp #$D6
|
||||||
|
bcc LFDE9
|
||||||
|
bcs LFDF1
|
||||||
|
LFDE9: inx
|
||||||
|
cpx #$0F
|
||||||
|
bne LFDCF
|
||||||
|
jmp LC622
|
||||||
|
|
||||||
|
LFDF1: lda #$08
|
||||||
|
sta $D401
|
||||||
|
ldx #$00
|
||||||
|
LFDF8: ldy #$00
|
||||||
|
LFDFA: iny
|
||||||
|
bne LFDFA
|
||||||
|
inc $D020
|
||||||
|
inx
|
||||||
|
bne LFDF8
|
||||||
|
stx $D401
|
||||||
|
inc $9FFA
|
||||||
|
lda $9FFA
|
||||||
|
cmp #$03
|
||||||
|
bcs LFE13
|
||||||
|
jmp LC63A
|
||||||
|
|
||||||
|
LFE13: stx $CFBA
|
||||||
|
stx $CFBB
|
||||||
|
lda #$58
|
||||||
|
sta $B1
|
||||||
|
lda #$15
|
||||||
|
sta $D018
|
||||||
|
lda #$1B
|
||||||
|
sta $D011
|
||||||
|
ldx #$00
|
||||||
|
lda $9FFD
|
||||||
|
asl a
|
||||||
|
clc
|
||||||
|
adc #$30
|
||||||
|
sta $C198
|
||||||
|
lda $9FFF
|
||||||
|
sec
|
||||||
|
adc #$3F
|
||||||
|
sta $C1A1
|
||||||
|
sbc #$10
|
||||||
|
LFE3E: cmp #$3A
|
||||||
|
bcc LFE49
|
||||||
|
inc $C196
|
||||||
|
sbc #$0A
|
||||||
|
bcs LFE3E
|
||||||
|
LFE49: sta $C197
|
||||||
|
ldx #$00
|
||||||
|
LFE4E: lda $C180,x
|
||||||
|
jsr LFFD2
|
||||||
|
inx
|
||||||
|
cpx $B1
|
||||||
|
bne LFE4E
|
||||||
|
sta $A2
|
||||||
|
asl a
|
||||||
|
LFE5C: cmp $A2
|
||||||
|
bne LFE5C
|
||||||
|
lda $B1
|
||||||
|
cmp #$58
|
||||||
|
beq LFE67
|
||||||
|
rts
|
||||||
|
|
||||||
|
LFE67: lda $CB
|
||||||
|
cmp #$28
|
||||||
|
bne LFE67
|
||||||
|
jmp LC0F0
|
||||||
|
|
||||||
|
LFE70: jsr LC26D
|
||||||
|
lda $9FFF
|
||||||
|
sta $B4
|
||||||
|
LFE78: jsr LC0F3
|
||||||
|
dec $B4
|
||||||
|
bne LFE78
|
||||||
|
jmp LC4DE
|
||||||
|
|
||||||
|
jsr LC3FF
|
||||||
|
jsr LC31F
|
||||||
|
jsr LC45A
|
||||||
|
lda $028D
|
||||||
|
cmp #$01
|
||||||
|
bne LFE70
|
||||||
|
lda #$00
|
||||||
|
sta $D401
|
||||||
|
jmp LC62B
|
||||||
|
|
||||||
|
lda #$20
|
||||||
|
sta $B1
|
||||||
|
lda #$00
|
||||||
|
sta $B0
|
||||||
|
tay
|
||||||
|
tax
|
||||||
|
LFEA4: sta ($B0),y
|
||||||
|
iny
|
||||||
|
bne LFEA4
|
||||||
|
inx
|
||||||
|
inc $B1
|
||||||
|
cpx #$20
|
||||||
|
bne LFEA4
|
||||||
|
tax
|
||||||
|
LFEB1: sta $CF00,x
|
||||||
|
sta $CC00,x
|
||||||
|
inx
|
||||||
|
cpx #$BA
|
||||||
|
bne LFEB1
|
||||||
|
tax
|
||||||
|
LFEBD: stx $02
|
||||||
|
jsr LE097
|
||||||
|
lda $8E
|
||||||
|
ldx $02
|
||||||
|
and #$BF
|
||||||
|
sta $CE00,x
|
||||||
|
inx
|
||||||
|
bne LFEBD
|
||||||
|
ldx #$00
|
||||||
|
LFED0: lda $CE02,x
|
||||||
|
and #$1F
|
||||||
|
sta $CE02,x
|
||||||
|
inx
|
||||||
|
inx
|
||||||
|
inx
|
||||||
|
inx
|
||||||
|
bne LFED0
|
||||||
|
lda $8F
|
||||||
|
lsr a
|
||||||
|
lsr a
|
||||||
|
adc #$20
|
||||||
|
sta $AC
|
||||||
|
LFEE6: lda $AC
|
||||||
|
sta $CFC0,x
|
||||||
|
lda #$40
|
||||||
|
sta $CFD0,x
|
||||||
|
stx $02
|
||||||
|
jsr LE097
|
||||||
|
ldx $02
|
||||||
|
lda $8F
|
||||||
|
and #$07
|
||||||
|
adc #$02
|
||||||
|
sta $CFE0,x
|
||||||
|
inc $CF00,x
|
||||||
|
lda #$0D
|
||||||
|
sta $CFF0,x
|
||||||
|
lda #$F0
|
||||||
|
sta $CF70,x
|
||||||
|
inx
|
||||||
|
cpx #$0F
|
||||||
|
bne LFEE6
|
||||||
|
lda #$FF
|
||||||
|
sta $CFBA
|
||||||
|
sta $CFBB
|
||||||
|
lda #$0E
|
||||||
|
sta $CFFF
|
||||||
|
ldx #$00
|
||||||
|
ldy #$01
|
||||||
|
LFF23: tya
|
||||||
|
sta $CF10,x
|
||||||
|
inx
|
||||||
|
iny
|
||||||
|
cpx #$0F
|
||||||
|
bne LFF23
|
||||||
|
lda #$E0
|
||||||
|
sta $CFDF
|
||||||
|
lda #$80
|
||||||
|
sta LFFCF
|
||||||
|
lda #$3B
|
||||||
|
sta $D011
|
||||||
|
lda #$1D
|
||||||
|
sta $D018
|
||||||
|
lda #$01
|
||||||
|
sta $CFEF
|
||||||
|
ldx #$00
|
||||||
|
lda #$10
|
||||||
|
LFF4A: sta $0400,x
|
||||||
|
sta $0500,x
|
||||||
|
sta $0600,x
|
||||||
|
sta $06E8,x
|
||||||
|
inx
|
||||||
|
bne LFF4A
|
||||||
|
lda #$0F
|
||||||
|
sta $D418
|
||||||
|
lda #$0F
|
||||||
|
sta $D405
|
||||||
|
lda #$F5
|
||||||
|
sta $D406
|
||||||
|
lda #$81
|
||||||
|
sta $D404
|
||||||
|
ldx #$00
|
||||||
|
LFF6F: lda #$30
|
||||||
|
sta $C196,x
|
||||||
|
inx
|
||||||
|
cpx #$04
|
||||||
|
bne LFF6F
|
||||||
|
lda $9FFF
|
||||||
|
asl a
|
||||||
|
sta $D020
|
||||||
|
jmp LC610
|
||||||
|
|
||||||
|
ldx #$00
|
||||||
|
lda #$93
|
||||||
|
jsr LFFD2
|
||||||
|
lda #$1B
|
||||||
|
sta $D011
|
||||||
|
lda #$15
|
||||||
|
sta $D018
|
||||||
|
LFF94: lda $C752,x
|
||||||
|
sta $D920,x
|
||||||
|
sta $0520,x
|
||||||
|
inx
|
||||||
|
cpx #$18
|
||||||
|
bne LFF94
|
||||||
|
dex
|
||||||
|
stx $A2
|
||||||
|
dex
|
||||||
|
LFFA6: lda $A2
|
||||||
|
sta $D021
|
||||||
|
cpx $A2
|
||||||
|
bne LFFA6
|
||||||
|
jmp LC5B9
|
||||||
|
|
||||||
|
.byte $07
|
||||||
|
.byte $0F
|
||||||
|
.byte $0F
|
||||||
|
.byte $04
|
||||||
|
jsr L0F17
|
||||||
|
.byte $12
|
||||||
|
.byte $0B
|
||||||
|
bit $0420
|
||||||
|
.byte $12
|
||||||
|
ora ($07,x)
|
||||||
|
.byte $0F
|
||||||
|
asl $0C13
|
||||||
|
ora ($19,x)
|
||||||
|
ora $12
|
||||||
|
and ($A2,x)
|
||||||
|
brk
|
||||||
|
LFFCC: lda #$20
|
||||||
|
.byte $9D
|
||||||
|
LFFCF: cpy #$CB
|
||||||
|
.byte $BD
|
||||||
|
LFFD2: brk
|
||||||
|
cmp ($9D,x)
|
||||||
|
rti
|
||||||
|
|
||||||
|
.byte $03
|
||||||
|
inx
|
||||||
|
cpx #$80
|
||||||
|
bne LFFCC
|
||||||
|
lda #$00
|
||||||
|
sta $9FFA
|
||||||
|
sta $9FFD
|
||||||
|
lda #$01
|
||||||
|
sta $9FFF
|
||||||
|
lda #$50
|
||||||
|
sta $CFCF
|
||||||
|
sta $D021
|
||||||
|
sta $D020
|
||||||
|
jmp LC63A
|
||||||
|
|
||||||
|
brk
|
||||||
|
brk
|
||||||
|
brk
|
||||||
|
brk
|
||||||
|
brk
|
||||||
|
LFFFC: nop
|
||||||
|
nop
|
||||||
|
nop
|
||||||
|
nop
|
|
@ -0,0 +1,936 @@
|
||||||
|
; da65 V2.18 - Ubuntu 2.19-1
|
||||||
|
; Created: 2021-08-15 19:24:06
|
||||||
|
; Input file: star2-trimmed.prg
|
||||||
|
; Page: 1
|
||||||
|
|
||||||
|
|
||||||
|
.setcpu "6502"
|
||||||
|
|
||||||
|
L0D2B := $0D2B
|
||||||
|
L0F17 := $0F17
|
||||||
|
L2020 := $2020
|
||||||
|
L2221 := $2221
|
||||||
|
L423A := $423A
|
||||||
|
L4353 := $4353
|
||||||
|
L454C := $454C
|
||||||
|
L4948 := $4948
|
||||||
|
L5420 := $5420
|
||||||
|
L5453 := $5453
|
||||||
|
L5941 := $5941
|
||||||
|
LE097 := $E097
|
||||||
|
LFFD2 := $FFD2
|
||||||
|
LC0F0: jmp LC76A
|
||||||
|
|
||||||
|
LC0F3: ldy $15
|
||||||
|
sty $D401
|
||||||
|
beq LC0FC
|
||||||
|
dec $15
|
||||||
|
LC0FC: jmp LC200
|
||||||
|
|
||||||
|
rts
|
||||||
|
|
||||||
|
LC100: brk
|
||||||
|
clc
|
||||||
|
brk
|
||||||
|
brk
|
||||||
|
clc
|
||||||
|
brk
|
||||||
|
brk
|
||||||
|
clc
|
||||||
|
brk
|
||||||
|
brk
|
||||||
|
.byte $3C
|
||||||
|
brk
|
||||||
|
asl $783C,x
|
||||||
|
.byte $0F
|
||||||
|
.byte $3C
|
||||||
|
beq LC11A
|
||||||
|
.byte $FF
|
||||||
|
cpx #$03
|
||||||
|
.byte $E7
|
||||||
|
cpy #$03
|
||||||
|
.byte $C3
|
||||||
|
LC11A: cpx #$3F
|
||||||
|
lda $FFFC,x
|
||||||
|
lda $3FFF,x
|
||||||
|
.byte $C3
|
||||||
|
.byte $FC
|
||||||
|
.byte $03
|
||||||
|
.byte $E7
|
||||||
|
cpx #$03
|
||||||
|
.byte $FF
|
||||||
|
cpx #$07
|
||||||
|
.byte $3C
|
||||||
|
beq LC14C
|
||||||
|
.byte $3C
|
||||||
|
sec
|
||||||
|
asl $383C,x
|
||||||
|
brk
|
||||||
|
clc
|
||||||
|
brk
|
||||||
|
brk
|
||||||
|
clc
|
||||||
|
brk
|
||||||
|
brk
|
||||||
|
clc
|
||||||
|
brk
|
||||||
|
brk
|
||||||
|
brk
|
||||||
|
brk
|
||||||
|
brk
|
||||||
|
brk
|
||||||
|
brk
|
||||||
|
brk
|
||||||
|
brk
|
||||||
|
brk
|
||||||
|
brk
|
||||||
|
brk
|
||||||
|
brk
|
||||||
|
brk
|
||||||
|
brk
|
||||||
|
bmi LC14C
|
||||||
|
LC14C: brk
|
||||||
|
sei
|
||||||
|
brk
|
||||||
|
brk
|
||||||
|
.byte $FC
|
||||||
|
brk
|
||||||
|
ora ($FE,x)
|
||||||
|
brk
|
||||||
|
.byte $03
|
||||||
|
.byte $FF
|
||||||
|
brk
|
||||||
|
brk
|
||||||
|
sei
|
||||||
|
brk
|
||||||
|
brk
|
||||||
|
sei
|
||||||
|
brk
|
||||||
|
.byte $03
|
||||||
|
.byte $7B
|
||||||
|
brk
|
||||||
|
.byte $07
|
||||||
|
.byte $7B
|
||||||
|
.byte $80
|
||||||
|
.byte $0F
|
||||||
|
.byte $7B
|
||||||
|
cpy #$1F
|
||||||
|
.byte $7B
|
||||||
|
cpx #$3F
|
||||||
|
.byte $FF
|
||||||
|
beq LC1ED
|
||||||
|
.byte $FF
|
||||||
|
sed
|
||||||
|
.byte $7C
|
||||||
|
.byte $FC
|
||||||
|
sed
|
||||||
|
adc $78FE,y
|
||||||
|
.byte $73
|
||||||
|
.byte $FF
|
||||||
|
sec
|
||||||
|
.byte $63
|
||||||
|
.byte $FF
|
||||||
|
clc
|
||||||
|
brk
|
||||||
|
brk
|
||||||
|
brk
|
||||||
|
brk
|
||||||
|
LC180: .byte $93
|
||||||
|
ora $0D
|
||||||
|
ora $0D0D
|
||||||
|
jsr L2020
|
||||||
|
jsr L2020
|
||||||
|
jsr L2020
|
||||||
|
jsr L4353
|
||||||
|
.byte $4F
|
||||||
|
.byte $52
|
||||||
|
eor $3A
|
||||||
|
LC196: .byte $30
|
||||||
|
LC197: .byte $30
|
||||||
|
LC198: bmi LC1CA
|
||||||
|
jsr L454C
|
||||||
|
lsr $45,x
|
||||||
|
.byte $4C
|
||||||
|
.byte $3A
|
||||||
|
LC1A1: .byte $42
|
||||||
|
ora $9E0D
|
||||||
|
jsr L2020
|
||||||
|
jsr L2020
|
||||||
|
jsr L2020
|
||||||
|
jsr L2020
|
||||||
|
jsr L2020
|
||||||
|
jsr L4948
|
||||||
|
.byte $54
|
||||||
|
jsr L0D2B
|
||||||
|
ora L2020
|
||||||
|
jsr L2020
|
||||||
|
jsr L2020
|
||||||
|
jsr L5420
|
||||||
|
.byte $4F
|
||||||
|
LC1C8: .byte $20
|
||||||
|
.byte $50
|
||||||
|
LC1CA: jmp L5941
|
||||||
|
|
||||||
|
jsr L5453
|
||||||
|
eor ($52,x)
|
||||||
|
.byte $44
|
||||||
|
.byte $52
|
||||||
|
eor ($47,x)
|
||||||
|
.byte $4F
|
||||||
|
.byte $4E
|
||||||
|
LC1D8: brk
|
||||||
|
rti
|
||||||
|
|
||||||
|
.byte $80
|
||||||
|
.byte $C0
|
||||||
|
LC1DC: cpy #$30
|
||||||
|
.byte $0C
|
||||||
|
.byte $03
|
||||||
|
LC1E0: jsr L2221
|
||||||
|
.byte $23
|
||||||
|
and $26
|
||||||
|
.byte $27
|
||||||
|
plp
|
||||||
|
rol a
|
||||||
|
.byte $2B
|
||||||
|
.byte $2C
|
||||||
|
LC1EB: .byte $2D
|
||||||
|
.byte $2F
|
||||||
|
LC1ED: bmi LC220
|
||||||
|
.byte $32
|
||||||
|
.byte $34
|
||||||
|
and $36,x
|
||||||
|
.byte $37
|
||||||
|
and $3B3A,y
|
||||||
|
.byte $3C
|
||||||
|
rol $403F,x
|
||||||
|
eor ($43,x)
|
||||||
|
.byte $44
|
||||||
|
eor $46
|
||||||
|
LC200: ldx #$00
|
||||||
|
ldx #$00
|
||||||
|
LC204: lda $CF00,x
|
||||||
|
beq LC24D
|
||||||
|
cmp #$01
|
||||||
|
beq LC221
|
||||||
|
ldy $CFD0,x
|
||||||
|
dey
|
||||||
|
dey
|
||||||
|
tya
|
||||||
|
sta $CFD0,x
|
||||||
|
cmp #$04
|
||||||
|
bcs LC21F
|
||||||
|
lda #$00
|
||||||
|
sta $CF00,x
|
||||||
|
LC21F: .byte $F0
|
||||||
|
LC220: .byte $2C
|
||||||
|
LC221: ldy $CF40,x
|
||||||
|
lda $CFC0,x
|
||||||
|
sta $AE
|
||||||
|
lda $CF20,x
|
||||||
|
jsr LC253
|
||||||
|
sta $CF40,x
|
||||||
|
lda $AE
|
||||||
|
sta $CFC0,x
|
||||||
|
ldy $CF50,x
|
||||||
|
lda $CFD0,x
|
||||||
|
sta $AE
|
||||||
|
lda $CF30,x
|
||||||
|
jsr LC253
|
||||||
|
sta $CF50,x
|
||||||
|
lda $AE
|
||||||
|
sta $CFD0,x
|
||||||
|
LC24D: inx
|
||||||
|
cpx #$0F
|
||||||
|
bne LC204
|
||||||
|
rts
|
||||||
|
|
||||||
|
LC253: bmi LC25F
|
||||||
|
asl a
|
||||||
|
sty $02
|
||||||
|
adc $02
|
||||||
|
bcc LC25E
|
||||||
|
inc $AE
|
||||||
|
LC25E: rts
|
||||||
|
|
||||||
|
LC25F: asl a
|
||||||
|
sta $02
|
||||||
|
tya
|
||||||
|
sbc $02
|
||||||
|
bcs LC269
|
||||||
|
dec $AE
|
||||||
|
LC269: rts
|
||||||
|
|
||||||
|
LC26A: jmp LC313
|
||||||
|
|
||||||
|
LC26D: ldx #$00
|
||||||
|
LC26F: lda $CF00,x
|
||||||
|
cmp #$01
|
||||||
|
bne LC26A
|
||||||
|
ldy #$00
|
||||||
|
sty $AE
|
||||||
|
sty $B0
|
||||||
|
lda #$FF
|
||||||
|
sta $AF
|
||||||
|
sta $B1
|
||||||
|
inc $CF70,x
|
||||||
|
lda $CF70,x
|
||||||
|
bne LC29D
|
||||||
|
lda #$FC
|
||||||
|
sta $CF70,x
|
||||||
|
dec $CF10,x
|
||||||
|
lda $CF10,x
|
||||||
|
bne LC29D
|
||||||
|
jsr LC2DD
|
||||||
|
jmp LC313
|
||||||
|
|
||||||
|
LC29D: lda $CFC0,x
|
||||||
|
cmp #$12
|
||||||
|
bcs LC2AC
|
||||||
|
ldy #$00
|
||||||
|
sty $AE
|
||||||
|
ldy #$7F
|
||||||
|
sty $AF
|
||||||
|
LC2AC: cmp #$9C
|
||||||
|
bcc LC2B8
|
||||||
|
ldy #$80
|
||||||
|
sty $AE
|
||||||
|
ldy #$FF
|
||||||
|
sty $AF
|
||||||
|
LC2B8: lda $CFD0,x
|
||||||
|
cmp #$30
|
||||||
|
bcs LC2C7
|
||||||
|
ldy #$00
|
||||||
|
sty $B0
|
||||||
|
ldy #$7F
|
||||||
|
sty $B1
|
||||||
|
LC2C7: cmp #$DA
|
||||||
|
bcc LC2D3
|
||||||
|
ldy #$80
|
||||||
|
sty $B0
|
||||||
|
ldy #$FF
|
||||||
|
sty $B1
|
||||||
|
LC2D3: cpy #$00
|
||||||
|
beq LC313
|
||||||
|
jsr LC2DD
|
||||||
|
sec
|
||||||
|
bcs LC313
|
||||||
|
LC2DD: ldy $CF60,x
|
||||||
|
lda $CE00,y
|
||||||
|
ora $AE
|
||||||
|
and $AF
|
||||||
|
sta $CF20,x
|
||||||
|
lda $CE01,y
|
||||||
|
ora $B0
|
||||||
|
and $B1
|
||||||
|
sta $CF30,x
|
||||||
|
lda $CE01,y
|
||||||
|
ora $B0
|
||||||
|
and $B1
|
||||||
|
sta $CF30,x
|
||||||
|
lda $CF10,x
|
||||||
|
beq LC312
|
||||||
|
lda $CE02,y
|
||||||
|
sta $CF10,x
|
||||||
|
lda $CF60,x
|
||||||
|
clc
|
||||||
|
adc #$04
|
||||||
|
sta $CF60,x
|
||||||
|
LC312: rts
|
||||||
|
|
||||||
|
LC313: inx
|
||||||
|
cpx #$0F
|
||||||
|
bcs LC31B
|
||||||
|
jmp LC26F
|
||||||
|
|
||||||
|
LC31B: rts
|
||||||
|
|
||||||
|
LC31C: jmp LC3F6
|
||||||
|
|
||||||
|
LC31F: ldx #$00
|
||||||
|
LC321: lda $CC00,x
|
||||||
|
cmp #$00
|
||||||
|
beq LC31C
|
||||||
|
cmp #$02
|
||||||
|
bcc LC331
|
||||||
|
lda #$00
|
||||||
|
sta $CC00,x
|
||||||
|
LC331: lda $CB80,x
|
||||||
|
sta $AE
|
||||||
|
lda $CBC0,x
|
||||||
|
sta $AF
|
||||||
|
lda #$00
|
||||||
|
tay
|
||||||
|
sta ($AE),y
|
||||||
|
lda $CDC0,x
|
||||||
|
sta $AD
|
||||||
|
LC345: lda $AD
|
||||||
|
beq LC39D
|
||||||
|
ldy #$00
|
||||||
|
lda $CD40,x
|
||||||
|
cmp #$04
|
||||||
|
bcs LC353
|
||||||
|
iny
|
||||||
|
LC353: cmp #$9E
|
||||||
|
bcc LC358
|
||||||
|
iny
|
||||||
|
LC358: lda $CD80,x
|
||||||
|
cmp #$C8
|
||||||
|
bcc LC360
|
||||||
|
iny
|
||||||
|
LC360: cpy #$00
|
||||||
|
beq LC36C
|
||||||
|
lda #$00
|
||||||
|
sta $CC00,x
|
||||||
|
jmp LC3F6
|
||||||
|
|
||||||
|
LC36C: lda $CD40,x
|
||||||
|
sta $AE
|
||||||
|
ldy $CCC0,x
|
||||||
|
lda $CC40,x
|
||||||
|
jsr LC253
|
||||||
|
sta $CCC0,x
|
||||||
|
lda $AE
|
||||||
|
sta $CD40,x
|
||||||
|
lda $CD80,x
|
||||||
|
sta $AE
|
||||||
|
ldy $CD00,x
|
||||||
|
lda $CC80,x
|
||||||
|
jsr LC253
|
||||||
|
sta $CD00,x
|
||||||
|
lda $AE
|
||||||
|
sta $CD80,x
|
||||||
|
dec $AD
|
||||||
|
jmp LC345
|
||||||
|
|
||||||
|
LC39D: lda $CD80,x
|
||||||
|
lsr a
|
||||||
|
lsr a
|
||||||
|
lsr a
|
||||||
|
pha
|
||||||
|
and #$03
|
||||||
|
stx $02
|
||||||
|
tay
|
||||||
|
lda LC1D8,y
|
||||||
|
sta $AE
|
||||||
|
pla
|
||||||
|
tay
|
||||||
|
lda LC1E0,y
|
||||||
|
sta $AF
|
||||||
|
lda $CD40,x
|
||||||
|
clc
|
||||||
|
adc $AE
|
||||||
|
sta $AE
|
||||||
|
bcc LC3C1
|
||||||
|
inc $AF
|
||||||
|
LC3C1: lda $CD40,x
|
||||||
|
clc
|
||||||
|
adc $AE
|
||||||
|
sta $AE
|
||||||
|
bcc LC3CD
|
||||||
|
inc $AF
|
||||||
|
LC3CD: and #$F8
|
||||||
|
sta $AE
|
||||||
|
lda $CD80,x
|
||||||
|
and #$07
|
||||||
|
tay
|
||||||
|
lda $CD40,x
|
||||||
|
and #$03
|
||||||
|
tax
|
||||||
|
lda LC1DC,x
|
||||||
|
ora ($AE),y
|
||||||
|
sta ($AE),y
|
||||||
|
ldx $02
|
||||||
|
clc
|
||||||
|
tya
|
||||||
|
adc $AE
|
||||||
|
bcc LC3EE
|
||||||
|
inc $AF
|
||||||
|
LC3EE: sta $CB80,x
|
||||||
|
lda $AF
|
||||||
|
sta $CBC0,x
|
||||||
|
LC3F6: inx
|
||||||
|
cpx #$40
|
||||||
|
beq LC3FE
|
||||||
|
jmp LC321
|
||||||
|
|
||||||
|
LC3FE: rts
|
||||||
|
|
||||||
|
;; cfcf = current x position
|
||||||
|
LC3FF: ldy $CFCF
|
||||||
|
|
||||||
|
;lda $CB
|
||||||
|
;cmp #$0A
|
||||||
|
;bne LC40E
|
||||||
|
;cpy #$0E
|
||||||
|
;bcc LC40E
|
||||||
|
; go to the left
|
||||||
|
; bits: 1: up, 2: down, 4: left, 8: right, 16: fire
|
||||||
|
; read from joystick
|
||||||
|
lda #$04
|
||||||
|
bit $dc01
|
||||||
|
bne skipleft
|
||||||
|
; can't go any farther
|
||||||
|
cpy #$0E
|
||||||
|
bcc skipleft
|
||||||
|
dey
|
||||||
|
dey
|
||||||
|
skipleft: ;cmp #$12
|
||||||
|
lda #$08
|
||||||
|
bit $dc01
|
||||||
|
bne skipright
|
||||||
|
;bne LC418
|
||||||
|
cpy #$A0
|
||||||
|
bcs skipright
|
||||||
|
; go to the right
|
||||||
|
iny
|
||||||
|
iny
|
||||||
|
; store position
|
||||||
|
skipright: sty $CFCF
|
||||||
|
;lda $028D
|
||||||
|
;cmp $16
|
||||||
|
;sta $16
|
||||||
|
; fire a shot
|
||||||
|
lda #$10
|
||||||
|
bit $dc01
|
||||||
|
bne almostdone
|
||||||
|
lda $16
|
||||||
|
cmp #$01
|
||||||
|
beq done
|
||||||
|
lda #$01
|
||||||
|
sta $16
|
||||||
|
jsr LC42C
|
||||||
|
jmp done
|
||||||
|
;beq LC42B
|
||||||
|
;cmp #$04
|
||||||
|
;bne LC42B
|
||||||
|
almostdone:
|
||||||
|
lda #$00
|
||||||
|
sta $16
|
||||||
|
done: rts
|
||||||
|
|
||||||
|
LC42C: ldx #$00
|
||||||
|
LC42E: lda $CC00,x
|
||||||
|
bne LC454
|
||||||
|
lda #$06
|
||||||
|
sta $CDC0,x
|
||||||
|
lda #$00
|
||||||
|
sta $CC40,x
|
||||||
|
lda #$FF
|
||||||
|
sta $CC80,x
|
||||||
|
lda $CFCF
|
||||||
|
sec
|
||||||
|
sbc #$08
|
||||||
|
sta $CD40,x
|
||||||
|
lda #$B0
|
||||||
|
sta $CD80,x
|
||||||
|
inc $CC00,x
|
||||||
|
rts
|
||||||
|
|
||||||
|
LC454: inx
|
||||||
|
cpx #$40
|
||||||
|
bne LC42E
|
||||||
|
rts
|
||||||
|
|
||||||
|
LC45A: ldx #$00
|
||||||
|
LC45C: lda $CC00,x
|
||||||
|
beq LC4BC
|
||||||
|
lda $CDC0,x
|
||||||
|
cmp #$03
|
||||||
|
beq LC4BC
|
||||||
|
lda $CD40,x
|
||||||
|
sta $B0
|
||||||
|
lda $CD80,x
|
||||||
|
sta $B1
|
||||||
|
stx $02
|
||||||
|
ldx #$00
|
||||||
|
stx $AF
|
||||||
|
LC478: lda $CF00,x
|
||||||
|
cmp #$01
|
||||||
|
bne LC4C2
|
||||||
|
lda $CFC0,x
|
||||||
|
sbc #$0C
|
||||||
|
cmp $B0
|
||||||
|
bcs LC4B5
|
||||||
|
adc #$0C
|
||||||
|
cmp $B0
|
||||||
|
bcc LC4B5
|
||||||
|
lda $CFD0,x
|
||||||
|
sbc #$30
|
||||||
|
cmp $B1
|
||||||
|
bcs LC4B5
|
||||||
|
adc #$14
|
||||||
|
cmp $B1
|
||||||
|
bcc LC4B5
|
||||||
|
cpx $AF
|
||||||
|
bne LC4C7
|
||||||
|
lda #$02
|
||||||
|
sta $CF00,x
|
||||||
|
lda #$2A
|
||||||
|
sta $15
|
||||||
|
stx $AA
|
||||||
|
ldx $02
|
||||||
|
lda #$F0
|
||||||
|
sta $CD80,x
|
||||||
|
ldx $AA
|
||||||
|
LC4B5: inx
|
||||||
|
cpx #$0F
|
||||||
|
bne LC478
|
||||||
|
LC4BA: ldx $02
|
||||||
|
LC4BC: inx
|
||||||
|
cpx #$40
|
||||||
|
bne LC45C
|
||||||
|
rts
|
||||||
|
|
||||||
|
LC4C2: inc $AF
|
||||||
|
bne LC4B5
|
||||||
|
rts
|
||||||
|
|
||||||
|
LC4C7: jsr LE097
|
||||||
|
ldx $02
|
||||||
|
lda #$03
|
||||||
|
sta $CDC0,x
|
||||||
|
lda $8E
|
||||||
|
sta $CC40,x
|
||||||
|
lda #$7F
|
||||||
|
sta $CC80,x
|
||||||
|
jmp LC4BA
|
||||||
|
|
||||||
|
LC4DE: lda $CF0E
|
||||||
|
cmp #$02
|
||||||
|
beq LC4E8
|
||||||
|
jmp LC563
|
||||||
|
|
||||||
|
LC4E8: lda $CFCE
|
||||||
|
sbc #$08
|
||||||
|
sta $B0
|
||||||
|
lda $CFDE
|
||||||
|
sbc #$28
|
||||||
|
sta $B1
|
||||||
|
ldx #$00
|
||||||
|
LC4F8: stx $02
|
||||||
|
jsr LE097
|
||||||
|
ldx $02
|
||||||
|
lda $8E
|
||||||
|
sta $CC40,x
|
||||||
|
lda $8F
|
||||||
|
sta $CC80,x
|
||||||
|
lda #$01
|
||||||
|
sta $CC00,x
|
||||||
|
lda $8D
|
||||||
|
and #$03
|
||||||
|
sta $CDC0,x
|
||||||
|
lda $B0
|
||||||
|
sta $CD40,x
|
||||||
|
lda $B1
|
||||||
|
sta $CD80,x
|
||||||
|
inx
|
||||||
|
cpx #$40
|
||||||
|
bne LC4F8
|
||||||
|
ldx #$00
|
||||||
|
stx $CFBA
|
||||||
|
ldx #$80
|
||||||
|
stx $CFBB
|
||||||
|
ldx #$00
|
||||||
|
LC530: stx $96
|
||||||
|
jsr LC31F
|
||||||
|
ldx $96
|
||||||
|
inx
|
||||||
|
stx $D401
|
||||||
|
bne LC530
|
||||||
|
inc $9FFD
|
||||||
|
ldx $9FFD
|
||||||
|
cpx #$03
|
||||||
|
bcc LC55D
|
||||||
|
inc $9FFF
|
||||||
|
lda #$00
|
||||||
|
sta $9FFD
|
||||||
|
lda $9FFF
|
||||||
|
cmp #$0B
|
||||||
|
beq LC560
|
||||||
|
lda #$22
|
||||||
|
sta $B1
|
||||||
|
jsr LC5BD
|
||||||
|
LC55D: jmp LC63A
|
||||||
|
|
||||||
|
LC560: jmp LC723
|
||||||
|
|
||||||
|
LC563: lda $CFBF
|
||||||
|
bmi LC591
|
||||||
|
lda $CFBF
|
||||||
|
bmi LC591
|
||||||
|
ldx #$00
|
||||||
|
LC56F: lda $CFC0,x
|
||||||
|
sbc #$05
|
||||||
|
cmp $CFCF
|
||||||
|
bcs LC589
|
||||||
|
adc #$0B
|
||||||
|
cmp $CFCF
|
||||||
|
bcc LC589
|
||||||
|
lda $CFD0,x
|
||||||
|
cmp #$D6
|
||||||
|
bcc LC589
|
||||||
|
bcs LC591
|
||||||
|
LC589: inx
|
||||||
|
cpx #$0F
|
||||||
|
bne LC56F
|
||||||
|
jmp LC622
|
||||||
|
|
||||||
|
LC591: lda #$08
|
||||||
|
sta $D401
|
||||||
|
ldx #$00
|
||||||
|
LC598: ldy #$00
|
||||||
|
LC59A: iny
|
||||||
|
bne LC59A
|
||||||
|
inc $D020
|
||||||
|
inx
|
||||||
|
bne LC598
|
||||||
|
stx $D401
|
||||||
|
inc $9FFA
|
||||||
|
lda $9FFA
|
||||||
|
cmp #$03
|
||||||
|
bcs LC5B3
|
||||||
|
jmp LC63A
|
||||||
|
|
||||||
|
LC5B3: stx $CFBA
|
||||||
|
stx $CFBB
|
||||||
|
LC5B9: lda #$58
|
||||||
|
sta $B1
|
||||||
|
LC5BD: lda #$15
|
||||||
|
sta $D018
|
||||||
|
lda #$1B
|
||||||
|
sta $D011
|
||||||
|
ldx #$00
|
||||||
|
lda $9FFD
|
||||||
|
asl a
|
||||||
|
clc
|
||||||
|
adc #$30
|
||||||
|
sta LC198
|
||||||
|
lda $9FFF
|
||||||
|
sec
|
||||||
|
adc #$3F
|
||||||
|
sta LC1A1
|
||||||
|
sbc #$10
|
||||||
|
LC5DE: cmp #$3A
|
||||||
|
bcc LC5E9
|
||||||
|
inc LC196
|
||||||
|
sbc #$0A
|
||||||
|
bcs LC5DE
|
||||||
|
LC5E9: sta LC197
|
||||||
|
ldx #$00
|
||||||
|
LC5EE: lda LC180,x
|
||||||
|
jsr LFFD2
|
||||||
|
inx
|
||||||
|
cpx $B1
|
||||||
|
bne LC5EE
|
||||||
|
sta $A2
|
||||||
|
asl a
|
||||||
|
LC5FC: cmp $A2
|
||||||
|
bne LC5FC
|
||||||
|
lda $B1
|
||||||
|
cmp #$58
|
||||||
|
beq LC607
|
||||||
|
rts
|
||||||
|
|
||||||
|
LC607: lda $CB
|
||||||
|
cmp #$28
|
||||||
|
bne LC607
|
||||||
|
jmp LC0F0
|
||||||
|
|
||||||
|
; the main game loop?
|
||||||
|
LC610: jsr LC26D
|
||||||
|
lda $9FFF
|
||||||
|
sta $B4
|
||||||
|
LC618: jsr LC0F3
|
||||||
|
dec $B4
|
||||||
|
bne LC618
|
||||||
|
jmp LC4DE
|
||||||
|
|
||||||
|
LC622: jsr LC3FF
|
||||||
|
jsr LC31F
|
||||||
|
jsr LC45A
|
||||||
|
; reading shift lock
|
||||||
|
LC62B: lda $028D
|
||||||
|
cmp #$01
|
||||||
|
;bne LC610
|
||||||
|
;lda #$00
|
||||||
|
;sta $D401
|
||||||
|
;jmp LC62B
|
||||||
|
jmp LC610
|
||||||
|
|
||||||
|
LC63A: lda #$20
|
||||||
|
sta $B1
|
||||||
|
lda #$00
|
||||||
|
sta $B0
|
||||||
|
tay
|
||||||
|
tax
|
||||||
|
LC644: sta ($B0),y
|
||||||
|
iny
|
||||||
|
bne LC644
|
||||||
|
inx
|
||||||
|
inc $B1
|
||||||
|
cpx #$20
|
||||||
|
bne LC644
|
||||||
|
tax
|
||||||
|
LC651: sta $CF00,x
|
||||||
|
sta $CC00,x
|
||||||
|
inx
|
||||||
|
cpx #$BA
|
||||||
|
bne LC651
|
||||||
|
tax
|
||||||
|
LC65D: stx $02
|
||||||
|
jsr LE097
|
||||||
|
lda $8E
|
||||||
|
ldx $02
|
||||||
|
and #$BF
|
||||||
|
sta $CE00,x
|
||||||
|
inx
|
||||||
|
bne LC65D
|
||||||
|
ldx #$00
|
||||||
|
LC670: lda $CE02,x
|
||||||
|
and #$1F
|
||||||
|
sta $CE02,x
|
||||||
|
inx
|
||||||
|
inx
|
||||||
|
inx
|
||||||
|
inx
|
||||||
|
bne LC670
|
||||||
|
lda $8F
|
||||||
|
lsr a
|
||||||
|
lsr a
|
||||||
|
adc #$20
|
||||||
|
sta $AC
|
||||||
|
LC686: lda $AC
|
||||||
|
sta $CFC0,x
|
||||||
|
lda #$40
|
||||||
|
sta $CFD0,x
|
||||||
|
stx $02
|
||||||
|
jsr LE097
|
||||||
|
ldx $02
|
||||||
|
lda $8F
|
||||||
|
and #$07
|
||||||
|
adc #$02
|
||||||
|
sta $CFE0,x
|
||||||
|
inc $CF00,x
|
||||||
|
lda #$0D
|
||||||
|
sta $CFF0,x
|
||||||
|
lda #$F0
|
||||||
|
sta $CF70,x
|
||||||
|
inx
|
||||||
|
cpx #$0F
|
||||||
|
bne LC686
|
||||||
|
lda #$FF
|
||||||
|
sta $CFBA
|
||||||
|
sta $CFBB
|
||||||
|
lda #$0E
|
||||||
|
sta $CFFF
|
||||||
|
ldx #$00
|
||||||
|
ldy #$01
|
||||||
|
LC6C3: tya
|
||||||
|
sta $CF10,x
|
||||||
|
inx
|
||||||
|
iny
|
||||||
|
cpx #$0F
|
||||||
|
bne LC6C3
|
||||||
|
lda #$E0
|
||||||
|
sta $CFDF
|
||||||
|
lda #$80
|
||||||
|
sta $FFCF
|
||||||
|
lda #$3B
|
||||||
|
sta $D011
|
||||||
|
lda #$1D
|
||||||
|
sta $D018
|
||||||
|
lda #$01
|
||||||
|
sta $CFEF
|
||||||
|
ldx #$00
|
||||||
|
lda #$10
|
||||||
|
LC6EA: sta $0400,x
|
||||||
|
sta $0500,x
|
||||||
|
sta $0600,x
|
||||||
|
sta $06E8,x
|
||||||
|
inx
|
||||||
|
bne LC6EA
|
||||||
|
lda #$0F
|
||||||
|
sta $D418
|
||||||
|
lda #$0F
|
||||||
|
sta $D405
|
||||||
|
lda #$F5
|
||||||
|
sta $D406
|
||||||
|
lda #$81
|
||||||
|
sta $D404
|
||||||
|
ldx #$00
|
||||||
|
LC70F: lda #$30
|
||||||
|
sta LC196,x
|
||||||
|
inx
|
||||||
|
cpx #$04
|
||||||
|
bne LC70F
|
||||||
|
lda $9FFF
|
||||||
|
asl a
|
||||||
|
sta $D020
|
||||||
|
jmp LC610
|
||||||
|
|
||||||
|
LC723: ldx #$00
|
||||||
|
lda #$93
|
||||||
|
jsr LFFD2
|
||||||
|
lda #$1B
|
||||||
|
sta $D011
|
||||||
|
lda #$15
|
||||||
|
sta $D018
|
||||||
|
LC734: lda LC752,x
|
||||||
|
sta $D920,x
|
||||||
|
sta $0520,x
|
||||||
|
inx
|
||||||
|
cpx #$18
|
||||||
|
bne LC734
|
||||||
|
dex
|
||||||
|
stx $A2
|
||||||
|
dex
|
||||||
|
LC746: lda $A2
|
||||||
|
sta $D021
|
||||||
|
cpx $A2
|
||||||
|
bne LC746
|
||||||
|
jmp LC5B9
|
||||||
|
|
||||||
|
LC752: .byte $07
|
||||||
|
.byte $0F
|
||||||
|
.byte $0F
|
||||||
|
.byte $04
|
||||||
|
jsr L0F17
|
||||||
|
.byte $12
|
||||||
|
.byte $0B
|
||||||
|
bit $0420
|
||||||
|
.byte $12
|
||||||
|
ora ($07,x)
|
||||||
|
.byte $0F
|
||||||
|
asl $0C13
|
||||||
|
ora ($19,x)
|
||||||
|
ora $12
|
||||||
|
.byte $21
|
||||||
|
LC76A: ldx #$00
|
||||||
|
LC76C: lda #$20
|
||||||
|
sta $CBC0,x
|
||||||
|
lda LC100,x
|
||||||
|
sta $0340,x
|
||||||
|
inx
|
||||||
|
cpx #$80
|
||||||
|
bne LC76C
|
||||||
|
lda #$00
|
||||||
|
sta $9FFA
|
||||||
|
sta $9FFD
|
||||||
|
lda #$01
|
||||||
|
sta $9FFF
|
||||||
|
lda #$50
|
||||||
|
sta $CFCF
|
||||||
|
sta $D021
|
||||||
|
sta $D020
|
||||||
|
jmp LC63A
|
||||||
|
|
||||||
|
brk
|
||||||
|
brk
|
||||||
|
brk
|
||||||
|
brk
|
||||||
|
brk
|
||||||
|
nop
|
||||||
|
nop
|
||||||
|
nop
|
||||||
|
nop
|
Loading…
Reference in New Issue