Turn on optimizations on the C code to make it smaller. Ran out of code space in the main 64k bank. More changes to the sound register accesses.

This commit is contained in:
Jeremy Rand 2021-01-22 14:41:05 -05:00
parent 25765e6975
commit a7b404c676
2 changed files with 87 additions and 124 deletions

View File

@ -38,7 +38,7 @@ SRCDIRS+=sprites $(GENDIR)
ROOTCFILE=main.c ROOTCFILE=main.c
# Add any arguments you want passed to the C compiler to this variable: # Add any arguments you want passed to the C compiler to this variable:
CFLAGS+= CFLAGS+=+O
# Add any arguments you want passed to the resource compiler to this variable: # Add any arguments you want passed to the resource compiler to this variable:
REZFLAGS+= REZFLAGS+=

View File

@ -1058,36 +1058,25 @@ stopScorpionSound_doIt anop
sta scorpionSoundIsPlaying sta scorpionSoundIsPlaying
short m short m
_docWait
lda >SOUND_SYSTEM_VOLUME lda >SOUND_SYSTEM_VOLUME
and #$0f and #$0f
ora #$20
sta >SOUND_CONTROL_REG sta >SOUND_CONTROL_REG
lda #SOUND_REG_VOLUME+SCORPION_OSC_NUM _writeReg #SOUND_REG_VOLUME+SCORPION_OSC_NUM,#0
sta >SOUND_ADDR_LOW _writeReg #SOUND_REG_VOLUME+SCORPION_OSC_NUM+1,#0
lda #0 _writeReg #SOUND_REG_VOLUME+SCORPION_OSC_NUM+1,#0
sta >SOUND_DATA_REG _writeReg #SOUND_REG_VOLUME+SCORPION_OSC_NUM+1,#0
sta >SOUND_DATA_REG
sta >SOUND_DATA_REG
sta >SOUND_DATA_REG
lda #SOUND_REG_CONTROL+SCORPION_OSC_NUM _writeReg #SOUND_REG_CONTROL+SCORPION_OSC_NUM,#SOUND_ONE_SHOT_MODE+SOUND_RIGHT_SPEAKER
sta >SOUND_ADDR_LOW _writeReg #SOUND_REG_CONTROL+SCORPION_OSC_NUM+1,#SOUND_ONE_SHOT_MODE+SOUND_RIGHT_SPEAKER
lda #SOUND_ONE_SHOT_MODE+SOUND_RIGHT_SPEAKER _writeReg #SOUND_REG_CONTROL+SCORPION_OSC_NUM+2,#SOUND_ONE_SHOT_MODE+SOUND_LEFT_SPEAKER
sta >SOUND_DATA_REG _writeReg #SOUND_REG_CONTROL+SCORPION_OSC_NUM+3,#SOUND_ONE_SHOT_MODE+SOUND_LEFT_SPEAKER
sta >SOUND_DATA_REG
lda #SOUND_ONE_SHOT_MODE+SOUND_LEFT_SPEAKER
sta >SOUND_DATA_REG
sta >SOUND_DATA_REG
lda #SOUND_REG_CONTROL+SCORPION_OSC_NUM _writeReg #SOUND_REG_CONTROL+SCORPION_OSC_NUM,#SOUND_ONE_SHOT_MODE+SOUND_HALTED+SOUND_RIGHT_SPEAKER
sta >SOUND_ADDR_LOW _writeReg #SOUND_REG_CONTROL+SCORPION_OSC_NUM+1,#SOUND_ONE_SHOT_MODE+SOUND_HALTED+SOUND_RIGHT_SPEAKER
lda #SOUND_ONE_SHOT_MODE+SOUND_HALTED+SOUND_RIGHT_SPEAKER _writeReg #SOUND_REG_CONTROL+SCORPION_OSC_NUM+2,#SOUND_ONE_SHOT_MODE+SOUND_HALTED+SOUND_LEFT_SPEAKER
sta >SOUND_DATA_REG _writeReg #SOUND_REG_CONTROL+SCORPION_OSC_NUM+3,#SOUND_ONE_SHOT_MODE+SOUND_HALTED+SOUND_LEFT_SPEAKER
sta >SOUND_DATA_REG
lda #SOUND_ONE_SHOT_MODE+SOUND_HALTED+SOUND_LEFT_SPEAKER
sta >SOUND_DATA_REG
sta >SOUND_DATA_REG
long m long m
rtl rtl
@ -1103,47 +1092,41 @@ startFleaSound_doIt anop
stz fleaSoundFreqOffset stz fleaSoundFreqOffset
short m short m
_docWait
lda >SOUND_SYSTEM_VOLUME lda >SOUND_SYSTEM_VOLUME
and #$0f and #$0f
ora #$20
sta >SOUND_CONTROL_REG sta >SOUND_CONTROL_REG
lda #SOUND_REG_FREQ_LOW+FLEA_OSC_NUM _writeReg #SOUND_REG_FREQ_LOW+FLEA_OSC_NUM,fleaFreqs
sta >SOUND_ADDR_LOW _writeReg #SOUND_REG_FREQ_LOW+FLEA_OSC_NUM+1,fleaFreqs
lda fleaFreqs _writeReg #SOUND_REG_FREQ_LOW+FLEA_OSC_NUM+2,fleaFreqs
sta >SOUND_DATA_REG _writeReg #SOUND_REG_FREQ_LOW+FLEA_OSC_NUM+3,fleaFreqs
sta >SOUND_DATA_REG
sta >SOUND_DATA_REG
sta >SOUND_DATA_REG
lda #SOUND_REG_FREQ_HIGH+FLEA_OSC_NUM _writeReg #SOUND_REG_FREQ_HIGH+FLEA_OSC_NUM,fleaFreqs+1
sta >SOUND_ADDR_LOW _writeReg #SOUND_REG_FREQ_HIGH+FLEA_OSC_NUM+1,fleaFreqs+1
lda fleaFreqs+1 _writeReg #SOUND_REG_FREQ_HIGH+FLEA_OSC_NUM+2,fleaFreqs+1
sta >SOUND_DATA_REG _writeReg #SOUND_REG_FREQ_HIGH+FLEA_OSC_NUM+3,fleaFreqs+1
sta >SOUND_DATA_REG
sta >SOUND_DATA_REG
sta >SOUND_DATA_REG
lda #SOUND_REG_CONTROL+FLEA_OSC_NUM _writeReg #SOUND_REG_CONTROL+FLEA_OSC_NUM,#FLEA_CONTROL+SOUND_HALTED+SOUND_RIGHT_SPEAKER
sta >SOUND_ADDR_LOW _writeReg #SOUND_REG_CONTROL+FLEA_OSC_NUM+1,#FLEA_CONTROL+SOUND_RIGHT_SPEAKER
lda #FLEA_CONTROL+SOUND_HALTED+SOUND_RIGHT_SPEAKER _writeReg #SOUND_REG_CONTROL+FLEA_OSC_NUM+2,#FLEA_CONTROL+SOUND_HALTED+SOUND_LEFT_SPEAKER
sta >SOUND_DATA_REG _writeReg #SOUND_REG_CONTROL+FLEA_OSC_NUM+3,#FLEA_CONTROL+SOUND_LEFT_SPEAKER
lda #FLEA_CONTROL+SOUND_RIGHT_SPEAKER
sta >SOUND_DATA_REG
lda #FLEA_CONTROL+SOUND_HALTED+SOUND_LEFT_SPEAKER
sta >SOUND_DATA_REG
lda #FLEA_CONTROL+SOUND_LEFT_SPEAKER
sta >SOUND_DATA_REG
lda #SOUND_REG_VOLUME+FLEA_OSC_NUM ldy #SOUND_REG_VOLUME+FLEA_OSC_NUM
sta >SOUND_ADDR_LOW
lda tileRightVolume,x lda tileRightVolume,x
sta fleaVolume sta fleaVolume
sta >SOUND_DATA_REG jsr writeReg
sta >SOUND_DATA_REG iny
lda fleaVolume
jsr writeReg
iny
lda fleaVolume
eor #$ff eor #$ff
sta >SOUND_DATA_REG jsr writeReg
sta >SOUND_DATA_REG iny
lda fleaVolume
eor #$ff
jsr writeReg
long m long m
rtl rtl
@ -1158,78 +1141,55 @@ stopFleaSound_doIt anop
sta fleaSoundIsPlaying sta fleaSoundIsPlaying
short m short m
_docWait
lda >SOUND_SYSTEM_VOLUME lda >SOUND_SYSTEM_VOLUME
and #$0f and #$0f
ora #$20
sta >SOUND_CONTROL_REG sta >SOUND_CONTROL_REG
lda #SOUND_REG_VOLUME+FLEA_OSC_NUM _writeReg #SOUND_REG_VOLUME+FLEA_OSC_NUM,#$0
sta >SOUND_ADDR_LOW _writeReg #SOUND_REG_VOLUME+FLEA_OSC_NUM+1,#$0
lda #$0 _writeReg #SOUND_REG_VOLUME+FLEA_OSC_NUM+2,#$0
sta >SOUND_DATA_REG _writeReg #SOUND_REG_VOLUME+FLEA_OSC_NUM+3,#$0
sta >SOUND_DATA_REG
sta >SOUND_DATA_REG
sta >SOUND_DATA_REG
lda #SOUND_REG_CONTROL+FLEA_OSC_NUM _writeReg #SOUND_REG_CONTROL+FLEA_OSC_NUM,#SOUND_ONE_SHOT_MODE+SOUND_RIGHT_SPEAKER
sta >SOUND_ADDR_LOW _writeReg #SOUND_REG_CONTROL+FLEA_OSC_NUM+1,#SOUND_ONE_SHOT_MODE+SOUND_RIGHT_SPEAKER
lda #SOUND_ONE_SHOT_MODE+SOUND_RIGHT_SPEAKER _writeReg #SOUND_REG_CONTROL+FLEA_OSC_NUM+2,#SOUND_ONE_SHOT_MODE+SOUND_LEFT_SPEAKER
sta >SOUND_DATA_REG _writeReg #SOUND_REG_CONTROL+FLEA_OSC_NUM+3,#SOUND_ONE_SHOT_MODE+SOUND_LEFT_SPEAKER
sta >SOUND_DATA_REG
lda #SOUND_ONE_SHOT_MODE+SOUND_LEFT_SPEAKER
sta >SOUND_DATA_REG
sta >SOUND_DATA_REG
lda #SOUND_REG_CONTROL+FLEA_OSC_NUM _writeReg #SOUND_REG_CONTROL+FLEA_OSC_NUM,#SOUND_ONE_SHOT_MODE+SOUND_RIGHT_SPEAKER+SOUND_HALTED
sta >SOUND_ADDR_LOW _writeReg #SOUND_REG_CONTROL+FLEA_OSC_NUM+1,#SOUND_ONE_SHOT_MODE+SOUND_RIGHT_SPEAKER+SOUND_HALTED
lda #SOUND_ONE_SHOT_MODE+SOUND_RIGHT_SPEAKER+SOUND_HALTED _writeReg #SOUND_REG_CONTROL+FLEA_OSC_NUM+2,#SOUND_ONE_SHOT_MODE+SOUND_LEFT_SPEAKER+SOUND_HALTED
sta >SOUND_DATA_REG _writeReg #SOUND_REG_CONTROL+FLEA_OSC_NUM+3,#SOUND_ONE_SHOT_MODE+SOUND_LEFT_SPEAKER+SOUND_HALTED
sta >SOUND_DATA_REG
lda #SOUND_ONE_SHOT_MODE+SOUND_LEFT_SPEAKER+SOUND_HALTED
sta >SOUND_DATA_REG
sta >SOUND_DATA_REG
long m long m
rtl rtl
pauseSound entry pauseSound entry
short m short m
_docWait
lda >SOUND_SYSTEM_VOLUME lda >SOUND_SYSTEM_VOLUME
and #$0f and #$0f
ora #$20
sta >SOUND_CONTROL_REG sta >SOUND_CONTROL_REG
lda #SOUND_REG_VOLUME+SEGMENTS_OSC_NUM _writeReg #SOUND_REG_VOLUME+SEGMENTS_OSC_NUM,#0
sta >SOUND_ADDR_LOW _writeReg #SOUND_REG_VOLUME+SEGMENTS_OSC_NUM+1,#0
lda #0 _writeReg #SOUND_REG_VOLUME+SEGMENTS_OSC_NUM+2,#0
sta >SOUND_DATA_REG _writeReg #SOUND_REG_VOLUME+SEGMENTS_OSC_NUM+3,#0
sta >SOUND_DATA_REG
sta >SOUND_DATA_REG
sta >SOUND_DATA_REG
lda #SOUND_REG_VOLUME+SPIDER_OSC_NUM _writeReg #SOUND_REG_VOLUME+SPIDER_OSC_NUM,#$0
sta >SOUND_ADDR_LOW _writeReg #SOUND_REG_VOLUME+SPIDER_OSC_NUM+1,#$0
lda #$0 _writeReg #SOUND_REG_VOLUME+SPIDER_OSC_NUM+2,#$0
sta >SOUND_DATA_REG _writeReg #SOUND_REG_VOLUME+SPIDER_OSC_NUM+3,#$0
sta >SOUND_DATA_REG
sta >SOUND_DATA_REG
sta >SOUND_DATA_REG
lda #SOUND_REG_VOLUME+SCORPION_OSC_NUM _writeReg #SOUND_REG_VOLUME+SCORPION_OSC_NUM,#0
sta >SOUND_ADDR_LOW _writeReg #SOUND_REG_VOLUME+SCORPION_OSC_NUM+1,#0
lda #0 _writeReg #SOUND_REG_VOLUME+SCORPION_OSC_NUM+2,#0
sta >SOUND_DATA_REG _writeReg #SOUND_REG_VOLUME+SCORPION_OSC_NUM+3,#0
sta >SOUND_DATA_REG
sta >SOUND_DATA_REG
sta >SOUND_DATA_REG
lda #SOUND_REG_VOLUME+FLEA_OSC_NUM _writeReg #SOUND_REG_VOLUME+FLEA_OSC_NUM,#$0
sta >SOUND_ADDR_LOW _writeReg #SOUND_REG_VOLUME+FLEA_OSC_NUM+1,#$0
lda #$0 _writeReg #SOUND_REG_VOLUME+FLEA_OSC_NUM+2,#$0
sta >SOUND_DATA_REG _writeReg #SOUND_REG_VOLUME+FLEA_OSC_NUM+3,#$0
sta >SOUND_DATA_REG
sta >SOUND_DATA_REG
sta >SOUND_DATA_REG
long m long m
rtl rtl
@ -1240,18 +1200,15 @@ unpauseSound entry
bne unpauseSound_skipSegment bne unpauseSound_skipSegment
short m short m
_docWait
lda >SOUND_SYSTEM_VOLUME lda >SOUND_SYSTEM_VOLUME
and #$0f and #$0f
ora #$20
sta >SOUND_CONTROL_REG sta >SOUND_CONTROL_REG
lda #SOUND_REG_VOLUME+SEGMENTS_OSC_NUM _writeReg #SOUND_REG_VOLUME+SEGMENTS_OSC_NUM,#SEGMENTS_VOLUME
sta >SOUND_ADDR_LOW _writeReg #SOUND_REG_VOLUME+SEGMENTS_OSC_NUM+1,#SEGMENTS_VOLUME
lda #SEGMENTS_VOLUME _writeReg #SOUND_REG_VOLUME+SEGMENTS_OSC_NUM+2,#SEGMENTS_VOLUME
sta >SOUND_DATA_REG _writeReg #SOUND_REG_VOLUME+SEGMENTS_OSC_NUM+3,#SEGMENTS_VOLUME
sta >SOUND_DATA_REG
sta >SOUND_DATA_REG
sta >SOUND_DATA_REG
long m long m
unpauseSound_skipSegment anop unpauseSound_skipSegment anop
@ -1259,19 +1216,25 @@ unpauseSound_skipSegment anop
bne unpauseSound_skipFlea bne unpauseSound_skipFlea
short m short m
_docWait
lda >SOUND_SYSTEM_VOLUME lda >SOUND_SYSTEM_VOLUME
and #$0f and #$0f
ora #$20
sta >SOUND_CONTROL_REG sta >SOUND_CONTROL_REG
lda #SOUND_REG_VOLUME+FLEA_OSC_NUM ldy #SOUND_REG_VOLUME+FLEA_OSC_NUM
sta >SOUND_ADDR_LOW lda fleaVolume
jsr writeReg
iny
lda fleaVolume
jsr writeReg
iny
lda fleaVolume lda fleaVolume
sta >SOUND_DATA_REG
sta >SOUND_DATA_REG
eor #$ff eor #$ff
sta >SOUND_DATA_REG jsr writeReg
sta >SOUND_DATA_REG iny
lda fleaVolume
eor #$ff
jsr writeReg
long m long m
unpauseSound_skipFlea anop unpauseSound_skipFlea anop