second: move intro to start at $8000

tight fit but frees up $6000
This commit is contained in:
Vince Weaver 2023-11-03 18:49:00 -04:00
parent d4cedf0e7a
commit bc77ab6f39
8 changed files with 65 additions and 8 deletions

View File

@ -11,13 +11,13 @@ all: INTRO
####
INTRO: intro.o
ld65 -o INTRO intro.o -C $(LINKER_SCRIPTS)/apple2_6000.inc
ld65 -o INTRO intro.o -C $(LINKER_SCRIPTS)/apple2_8000.inc
intro.o: intro.s ../zx02_optim.s \
graphics/igl.hgr.zx02 \
graphics/igr.hgr.zx02 \
graphics/fc_sr_logo.hgr.zx02 \
horiz_scroll.s \
horiz_scroll.s hgr_partial.s \
../zp.inc ../hardware.inc ../qload.inc
ca65 -o intro.o intro.s -l intro.lst

View File

@ -6,7 +6,7 @@ PNG2GR = ../../../../utils/gr-utils/png2gr
all: igl.hgr.zx02 igr.hgr.zx02 fc_sr_logo.hgr.zx02 \
demosplash.hgr.zx02 mockingboard.hgr.zx02 \
vmw.hgr.zx02
vmw.hgr.zx02 ship_sprites.hgr.zx02
####
@ -26,6 +26,14 @@ igl.hgr: igl.png
####
ship_sprites.hgr.zx02: ship_sprites.hgr
$(ZX02) ship_sprites.hgr ship_sprites.hgr.zx02
ship_sprites.hgr: ship_sprites.png
$(PNG_TO_HGR) ship_sprites.png > ship_sprites.hgr
####
mockingboard.hgr.zx02: mockingboard.hgr
$(ZX02) mockingboard.hgr mockingboard.hgr.zx02

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.3 KiB

View File

@ -0,0 +1,46 @@
; copy partial part of screen from $6000 to DRAW_PAGE
; HGR_X1,HGR_Y1 to HGR_X2,HGR_Y2 source
; destination = Y at HGR_DEST
hgr_partial:
lda HGR_DEST
sta dest_y_smc+1
ldx HGR_Y1 ; Y1
hgr_partial_outer_loop:
lda hposn_low,X
sta INL
lda hposn_high,X
ora #$40 ; convert to $6000
sta INH
txa
pha
dest_y_smc:
ldx #100 ; DEST_Y
lda hposn_low,X
sta OUTL
lda hposn_high,X
clc
adc DRAW_PAGE
sta OUTH
pla
tax
ldy HGR_X1 ; X1
hgr_partial_inner_loop:
lda (INL),Y
sta (OUTL),Y
iny
cpy HGR_X2 ; X2
bne hgr_partial_inner_loop
inc dest_y_smc+1
inx
cpx HGR_Y2 ; Y2
bne hgr_partial_outer_loop
rts

View File

@ -182,6 +182,7 @@ done_intro:
.include "../hgr_table.s"
.include "../hgr_clear_screen.s"
.include "horiz_scroll.s"
.include "hgr_partial.s"
.include "../irq_wait.s"
@ -198,3 +199,5 @@ fc_sr_logo_data:
.incbin "graphics/fc_sr_logo.hgr.zx02"
vmw_data:
.incbin "graphics/vmw.hgr.zx02"
sprite_data:
.incbin "graphics/ship_sprites.hgr.zx02"

View File

@ -33,4 +33,4 @@ graphics/lens_sprites.inc:
clean:
rm -f *~ *.o *.lst LENS
cd graphics && make clean
cd audio && make clean

View File

@ -169,13 +169,13 @@ which_disk_array:
.byte 1,1 ; POLAR,FAKE_BIOS
load_address_array:
.byte $D0,$D0,$60,$80 ; MUSIC_INTRO, MUSIC_MAIN, INTRO, CHESS
.byte $D0,$D0,$80,$80 ; MUSIC_INTRO, MUSIC_MAIN, INTRO, CHESS
.byte $60,$60,$60,$60 ; GORILLA,LEAVES,LENS,PLASMA
.byte $60,$60,$60,$60 ; CUBE,DOTS,SPHERES,OCEAN
.byte $60,$60 ; POLAR,FAKE_BIOS
start_address:
.byte $D0,$D0,$60,$80 ; MUSIC_INTRO, MUSIC_MAIN, INTRO, CHESS
.byte $D0,$D0,$80,$80 ; MUSIC_INTRO, MUSIC_MAIN, INTRO, CHESS
.byte $60,$60,$60,$80 ; GORILLA,LEAVES,LENS,PLASMA
.byte $80,$80,$80,$60 ; CUBE,DOTS,SPHERES,OCEAN
.byte $80,$60 ; POLAR,FAKE_BIOS
@ -200,7 +200,7 @@ sector_array:
length_array:
.byte 32,48,80,48 ; MUSIC_INTRO, MUSIC_MAIN, INTRO, CHESS
.byte 32,48,64,48 ; MUSIC_INTRO, MUSIC_MAIN, INTRO, CHESS
.byte 32,32,16,16 ; GORILLA,LEAVES,LENS,PLASMA
.byte 16,16,16,96 ; CUBE,DOTS,SPHERES,OCEAN
.byte 16,16 ; POLAR,FAKE_BIOS

View File

@ -154,7 +154,7 @@ load_program_loop:
cli ; start music
jsr $6000
jsr $8000
;=======================