Finish sky scroller
This commit is contained in:
parent
356aecb926
commit
4bf8e30636
|
|
@ -562,7 +562,7 @@ part_9:
|
||||||
; $2000-$3fff buffer 0 bitmap
|
; $2000-$3fff buffer 0 bitmap
|
||||||
; $4000-$5fff buffer 1 bitmap
|
; $4000-$5fff buffer 1 bitmap
|
||||||
; $6000-$63ff buffer 1 tilemap
|
; $6000-$63ff buffer 1 tilemap
|
||||||
; $6400-$67ff next buffer CRAM
|
; $6400-$6417 next buffer CRAM
|
||||||
; $7000-$77ff tileset bitmap
|
; $7000-$77ff tileset bitmap
|
||||||
; $7800-$78ff tileset tile colors
|
; $7800-$78ff tileset tile colors
|
||||||
; $7900-$79ff tileset CRAM colors
|
; $7900-$79ff tileset CRAM colors
|
||||||
|
|
@ -604,17 +604,52 @@ part_9:
|
||||||
ldx temp+1
|
ldx temp+1
|
||||||
dex
|
dex
|
||||||
bpl :-
|
bpl :-
|
||||||
|
lda #0
|
||||||
|
sta cram_ptr
|
||||||
|
lda #$64
|
||||||
|
sta cram_ptr+1
|
||||||
:
|
:
|
||||||
lda #2
|
lda $d011
|
||||||
sta frame_delay
|
bpl :-
|
||||||
jsr wait_loop_2x
|
lda #$38
|
||||||
lda frame
|
|
||||||
and #7
|
|
||||||
ora #$38
|
|
||||||
sta $d011
|
sta $d011
|
||||||
|
lda #3
|
||||||
|
sta timer_mode
|
||||||
|
@loop:
|
||||||
|
lda #0
|
||||||
|
sta vbl
|
||||||
|
lda frame
|
||||||
|
and #1
|
||||||
|
tax
|
||||||
|
jsr copybuf
|
||||||
|
jsr drawrow
|
||||||
|
:
|
||||||
|
lda vbl
|
||||||
|
cmp #32
|
||||||
|
bcc :-
|
||||||
|
; B U M R U S H C R A M C O P Y F U N K
|
||||||
|
ldy #23
|
||||||
|
: .repeat 16, I
|
||||||
|
lda $d808+(19-I)*40,y
|
||||||
|
sta $d808+(20-I)*40,y
|
||||||
|
.endrepeat
|
||||||
|
lda $6400,y
|
||||||
|
sta $d808+4*40,y
|
||||||
|
dey
|
||||||
|
bpl :-
|
||||||
inc frame
|
inc frame
|
||||||
jmp :-
|
lda frame
|
||||||
|
lsr a
|
||||||
|
lda #$38
|
||||||
|
ldx #3
|
||||||
|
bcc :+
|
||||||
|
lda #$80
|
||||||
|
ldx #2
|
||||||
|
:
|
||||||
|
sta $d018
|
||||||
|
stx $dd00
|
||||||
|
jmp @loop
|
||||||
|
@finish:
|
||||||
jmp *
|
jmp *
|
||||||
|
|
||||||
drawrow:
|
drawrow:
|
||||||
|
|
@ -829,7 +864,7 @@ irq_music:
|
||||||
lda $dd00
|
lda $dd00
|
||||||
and #3
|
and #3
|
||||||
sta @dd00_arc+1
|
sta @dd00_arc+1
|
||||||
lda #3
|
and #3
|
||||||
sta $dd00
|
sta $dd00
|
||||||
|
|
||||||
inc vbl
|
inc vbl
|
||||||
|
|
@ -879,6 +914,18 @@ irq_music:
|
||||||
lda #1
|
lda #1
|
||||||
sta timer_reached
|
sta timer_reached
|
||||||
:
|
:
|
||||||
|
lda timer_mode
|
||||||
|
cmp #3
|
||||||
|
bne @timer_done
|
||||||
|
lda vbl
|
||||||
|
lsr a
|
||||||
|
bcs @timer_done
|
||||||
|
lsr a
|
||||||
|
and #7
|
||||||
|
ora #$38
|
||||||
|
sta $d011
|
||||||
|
|
||||||
|
@timer_done:
|
||||||
|
|
||||||
@dd00_arc:
|
@dd00_arc:
|
||||||
lda #0
|
lda #0
|
||||||
|
|
@ -1370,6 +1417,81 @@ load_8000_zx02:
|
||||||
pla
|
pla
|
||||||
jmp zx02
|
jmp zx02
|
||||||
|
|
||||||
|
copybuf:
|
||||||
|
lda @bsrclo,x
|
||||||
|
sta bmp_addr
|
||||||
|
lda @bsrchi,x
|
||||||
|
sta bmp_addr+1
|
||||||
|
lda @bdstlo,x
|
||||||
|
sta bmp_ptr
|
||||||
|
lda @bdsthi,x
|
||||||
|
sta bmp_ptr+1
|
||||||
|
lda @tsrclo,x
|
||||||
|
sta text_ptr
|
||||||
|
lda @tsrchi,x
|
||||||
|
sta text_ptr+1
|
||||||
|
lda @tdstlo,x
|
||||||
|
sta scr_ptr
|
||||||
|
lda @tdsthi,x
|
||||||
|
sta scr_ptr+1
|
||||||
|
ldx #16
|
||||||
|
@loop:
|
||||||
|
ldy #23
|
||||||
|
: lda (text_ptr),y
|
||||||
|
sta (scr_ptr),y
|
||||||
|
dey
|
||||||
|
bpl :-
|
||||||
|
ldy #191
|
||||||
|
: lda (bmp_addr),y
|
||||||
|
sta (bmp_ptr),y
|
||||||
|
dey
|
||||||
|
bne :-
|
||||||
|
lda (bmp_addr),y
|
||||||
|
sta (bmp_ptr),y
|
||||||
|
; math dumb cpu be struggling a lot here
|
||||||
|
lda text_ptr
|
||||||
|
sec
|
||||||
|
sbc #40
|
||||||
|
sta text_ptr
|
||||||
|
bcs :+
|
||||||
|
dec text_ptr+1
|
||||||
|
:
|
||||||
|
lda scr_ptr
|
||||||
|
sec
|
||||||
|
sbc #40
|
||||||
|
sta scr_ptr
|
||||||
|
bcs :+
|
||||||
|
dec scr_ptr+1
|
||||||
|
:
|
||||||
|
lda bmp_addr
|
||||||
|
sec
|
||||||
|
sbc #<320
|
||||||
|
sta bmp_addr
|
||||||
|
bcs :+
|
||||||
|
dec bmp_addr+1
|
||||||
|
:
|
||||||
|
dec bmp_addr+1
|
||||||
|
lda bmp_ptr
|
||||||
|
sec
|
||||||
|
sbc #<320
|
||||||
|
sta bmp_ptr
|
||||||
|
bcs :+
|
||||||
|
dec bmp_ptr+1
|
||||||
|
:
|
||||||
|
dec bmp_ptr+1
|
||||||
|
dex
|
||||||
|
bne @loop
|
||||||
|
rts
|
||||||
|
|
||||||
|
@bsrclo: .lobytes (15+4)*320+$2040, (15+4)*320+$4040
|
||||||
|
@bsrchi: .hibytes (15+4)*320+$2040, (15+4)*320+$4040
|
||||||
|
@bdstlo: .lobytes (16+4)*320+$4040, (16+4)*320+$2040
|
||||||
|
@bdsthi: .hibytes (16+4)*320+$4040, (16+4)*320+$2040
|
||||||
|
@tsrclo: .lobytes (15+4)*40+$0c08, (15+4)*40+$6008
|
||||||
|
@tsrchi: .hibytes (15+4)*40+$0c08, (15+4)*40+$6008
|
||||||
|
@tdstlo: .lobytes (16+4)*40+$6008, (16+4)*40+$0c08
|
||||||
|
@tdsthi: .hibytes (16+4)*40+$6008, (16+4)*40+$0c08
|
||||||
|
|
||||||
story_writ:
|
story_writ:
|
||||||
.res 11, ' '
|
.res 11, ' '
|
||||||
.byte "story written by"
|
.byte "story written by"
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue