flatten subdirectories to shave some blocks

This commit is contained in:
4am 2024-05-11 10:36:50 -04:00
parent 6dd38440df
commit a7efbea1f8
92 changed files with 120 additions and 147 deletions

View File

@ -63,16 +63,29 @@ dsk: index asmproboot asmlauncher extract
rm -f "$$f"/.DS_Store; \ rm -f "$$f"/.DS_Store; \
$(CADIUS) ADDFOLDER build/"$(DISK)" "/$(VOLUME)/$$(basename $$f)" "$$f" -C >>build/log; \ $(CADIUS) ADDFOLDER build/"$(DISK)" "/$(VOLUME)/$$(basename $$f)" "$$f" -C >>build/log; \
done done
$(CADIUS) CREATEFOLDER build/"$(DISK)" "/$(VOLUME)/X/" -C >>build/log $(CADIUS) ADDFOLDER build/"$(DISK)" "/$(VOLUME)/X" "build/X" -C >>build/log; \
for f in build/X/*; do \
$(CADIUS) ADDFOLDER build/"$(DISK)" "/$(VOLUME)/X/$$(basename $$f)" "$$f" -C >>build/log; \
done
bin/changebootloader.sh build/"$(DISK)" build/proboothd bin/changebootloader.sh build/"$(DISK)" build/proboothd
extract: preconditions md gamesconf: preconditions md
#
# create a version of GAMES.CONF without comments or blank lines or anything after display titles
#
[ -f build/index ] || (awk '!/^$$|^#/' < res/GAMES.CONF | awk -F'/' '{ print $$1 }' > build/GAMES.CONF)
#
# create a list of all game filenames, without metadata or display names, sorted by game filename
#
[ -f build/index ] || (awk -F, '/,/ { print $$2 }' < build/GAMES.CONF | awk -F= '{ print $$1 }' | sort > build/GAMES.SORTED)
extract: preconditions md gamesconf
$(PARALLEL) '$(CADIUS) EXTRACTVOLUME {} build/X/ >>build/log' ::: res/dsk/*.po $(PARALLEL) '$(CADIUS) EXTRACTVOLUME {} build/X/ >>build/log' ::: res/dsk/*.po
rm -f build/X/**/.DS_Store build/X/**/PRODOS* build/X/**/LOADER.SYSTEM* rm -f build/X/**/.DS_Store build/X/**/PRODOS* build/X/**/LOADER.SYSTEM* build/X/**/_FileInformation.txt
for f in $$(grep '^....1' res/GAMES.CONF | awk '!/^$$|^#/' | awk -F, '/,/ { print $$2 }' | awk -F= '{ print $$1 }'); do mv build/X/"$$(basename $$f)"/"$$(basename $$f)"* build/X.INDEXED/; rm -rf build/X/"$$(basename $$f)"; done for f in $$(grep '^....1' build/GAMES.CONF | awk '!/^$$|^#/' | awk -F, '/,/ { print $$2 }' | awk -F= '{ print $$1 }'); do mv build/X/"$$(basename $$f)"/"$$(basename $$f)"* build/X.INDEXED/; rm -rf build/X/"$$(basename $$f)"; done
for d in build/X/*; do \
for f in "$$d"/*; do \
mv "$$f" build/X/"$$(basename $$f)"; \
done; \
rmdir "$$d"; \
done
(for f in build/X.INDEXED/*; do echo "$$(basename $$f)"; done) | bin/buildindexedfile.sh -a -p build/TOTAL.DATA build/X.INDEXED > build/XSINGLE.IDX (for f in build/X.INDEXED/*; do echo "$$(basename $$f)"; done) | bin/buildindexedfile.sh -a -p build/TOTAL.DATA build/X.INDEXED > build/XSINGLE.IDX
index: preconditions md asmfx asmprelaunch asmdemo compress extract index: preconditions md asmfx asmprelaunch asmdemo compress extract
@ -88,14 +101,6 @@ index: preconditions md asmfx asmprelaunch asmdemo compress extract
[ -f build/index ] || (bin/converthelp.sh res/CREDITS build/CREDITS) [ -f build/index ] || (bin/converthelp.sh res/CREDITS build/CREDITS)
[ -f build/index ] || $(PARALLEL) 'bin/converthelp.sh "{}" "build/GAMEHELP/{/}"' ::: res/GAMEHELP/* [ -f build/index ] || $(PARALLEL) 'bin/converthelp.sh "{}" "build/GAMEHELP/{/}"' ::: res/GAMEHELP/*
# #
# create a version of GAMES.CONF without comments or blank lines
#
[ -f build/index ] || (awk '!/^$$|^#/' < res/GAMES.CONF > build/GAMES.CONF)
#
# create a list of all game filenames, without metadata or display names, sorted by game filename
#
[ -f build/index ] || (awk -F, '/,/ { print $$2 }' < build/GAMES.CONF | awk -F= '{ print $$1 }' | sort > build/GAMES.SORTED)
#
# precompute indexed files for prelaunch # precompute indexed files for prelaunch
# note: prelaunch must be first in TOTAL.DATA due to a hack in LoadStandardPrelaunch # note: prelaunch must be first in TOTAL.DATA due to a hack in LoadStandardPrelaunch
# note 2: these can not be padded because they are loaded at $0106 and padding would clobber the stack # note 2: these can not be padded because they are loaded at $0106 and padding would clobber the stack
@ -254,12 +259,12 @@ attract: compress
bin/check-attract-mode.sh bin/check-attract-mode.sh
bin/generate-mini-attract-mode.sh bin/generate-mini-attract-mode.sh
cache: preconditions md cache: preconditions md gamesconf
$(PARALLEL) ::: \ $(PARALLEL) ::: \
'awk -F= '"'"'/^00/ { print $$2 }'"'"' < res/GAMES.CONF | bin/buildcache.py > build/cache00.a' \ 'awk -F= '"'"'/^00/ { print $$2 }'"'"' < build/GAMES.CONF | bin/buildcache.py > build/cache00.a' \
'awk -F= '"'"'/^0/ { print $$2 }'"'"' < res/GAMES.CONF | bin/buildcache.py > build/cache01.a' \ 'awk -F= '"'"'/^0/ { print $$2 }'"'"' < build/GAMES.CONF | bin/buildcache.py > build/cache01.a' \
'awk -F= '"'"'/^.0/ { print $$2 }'"'"' < res/GAMES.CONF | bin/buildcache.py > build/cache10.a' \ 'awk -F= '"'"'/^.0/ { print $$2 }'"'"' < build/GAMES.CONF | bin/buildcache.py > build/cache10.a' \
'awk -F= '"'"'!/^$$|^#|^\[/ { print $$2 }'"'"' < res/GAMES.CONF | bin/buildcache.py > build/cache11.a' 'awk -F= '"'"'!/^$$|^#|^\[/ { print $$2 }'"'"' < build/GAMES.CONF | bin/buildcache.py > build/cache11.a'
$(PARALLEL) ::: \ $(PARALLEL) ::: \
'$(ACME) -o res/CACHE00.IDX build/cache00.a' \ '$(ACME) -o res/CACHE00.IDX build/cache00.a' \
'$(ACME) -o res/CACHE01.IDX build/cache01.a' \ '$(ACME) -o res/CACHE01.IDX build/cache01.a' \

View File

@ -1,11 +1,11 @@
# #
# Attract mode for SC # Attract mode for SL
# This file is automatically generated # This file is automatically generated
# #
SC=C SL=C
SC=A
SITUATION.CRTC2=A SITUATION.CRTC2=A
SITUATION.CRTC3=A SITUATION.CRTC3=A
SL=A
[eof] [eof]

View File

@ -12,6 +12,6 @@ SHAMUS
SEA.DRAGON3=SEA.DRAGON SEA.DRAGON3=SEA.DRAGON
STAR.CLONES STAR.CLONES
SHORT.CIRCUIT SHORT.CIRCUIT
SITUATION.CRTC2=SC SITUATION.CRTC2=SL
[eof] [eof]

View File

@ -6,7 +6,7 @@ SKYFOX
SHORT.CIRCUIT2=SHORT.CIRCUIT SHORT.CIRCUIT2=SHORT.CIRCUIT
STARGATE2=STARGATE STARGATE2=STARGATE
SPACE.EGGS SPACE.EGGS
SITUATION.CRTC3=SC SITUATION.CRTC3=SL
SPUTNIK.ATTACK2=SPUTNIK.ATTACK SPUTNIK.ATTACK2=SPUTNIK.ATTACK
SIGMA.SEVEN SIGMA.SEVEN
STAR.MAZE STAR.MAZE

View File

@ -2,7 +2,7 @@
# action shots slideshow of games that begin with "S" # action shots slideshow of games that begin with "S"
# #
SC SL
STAR.BLAZER2=STAR.BLAZER STAR.BLAZER2=STAR.BLAZER
SKYFOX3=SKYFOX SKYFOX3=SKYFOX
STAR.DANCE STAR.DANCE

View File

@ -4,7 +4,7 @@
CONAN CONAN
NM NM
SC SL
SPECTRE SPECTRE
SABOTAGE SABOTAGE
DINO.EGGS DINO.EGGS

View File

@ -2,7 +2,7 @@
# slideshow of titles not in other company-specific slideshows # slideshow of titles not in other company-specific slideshows
# #
SC SL
EARLY.BIRD EARLY.BIRD
GUARDIAN GUARDIAN
BH BH

View File

@ -6,7 +6,7 @@ SAMMY.LIGHTFOOT
SPACE.WARRIOR SPACE.WARRIOR
SPACE.KADET SPACE.KADET
SNOGGLE SNOGGLE
SC SL
S2 S2
SPACE.SPIKES SPACE.SPIKES
SEAFOX SEAFOX

View File

@ -2,7 +2,7 @@
# super hi-res slideshow # super hi-res slideshow
# #
SC SL
CANYON.CLIMBER CANYON.CLIMBER
MC MC
LANCASTER LANCASTER

View File

@ -44,7 +44,7 @@ aquatron
!byte aquatron_e-aquatron_b !byte aquatron_e-aquatron_b
aquatron_b aquatron_b
aquatron_dir_b aquatron_dir_b
!text "X/AQUATRON" !text "X"
aquatron_dir_e aquatron_dir_e
!text "/AQUATRON" !text "/AQUATRON"
aquatron_e aquatron_e

View File

@ -48,7 +48,7 @@ beer_run
!byte beer_run_e-beer_run_b !byte beer_run_e-beer_run_b
beer_run_b beer_run_b
beer_run_dir_b beer_run_dir_b
!text "X/BEER.RUN" !text "X"
beer_run_dir_e beer_run_dir_e
!text "/BEER.RUN" !text "/BEER.RUN"
beer_run_e beer_run_e

View File

@ -42,7 +42,7 @@ patch2 !byte $4C,$00,$01
borg !byte borg_e-borg_b borg !byte borg_e-borg_b
borg_b borg_b
borg_dir_b borg_dir_b
!text "X/BORG" !text "X"
borg_dir_e borg_dir_e
!text "/BORG" !text "/BORG"
borg_e borg_e

View File

@ -55,7 +55,7 @@ patch !byte $4C,$00,$01
kamungas !byte kamungas_e-kamungas_b kamungas !byte kamungas_e-kamungas_b
kamungas_b kamungas_b
kamungas_dir_b kamungas_dir_b
!text "X/BK" !text "X"
kamungas_dir_e kamungas_dir_e
!text "/BK" !text "/BK"
kamungas_e kamungas_e

View File

@ -38,7 +38,7 @@ champ_lode
!byte champ_lode_e-champ_lode_b !byte champ_lode_e-champ_lode_b
champ_lode_b champ_lode_b
champ_lode_dir_b champ_lode_dir_b
!text "X/CL" !text "X"
champ_lode_dir_e champ_lode_dir_e
!text "/CL" !text "/CL"
champ_lode_e champ_lode_e

View File

@ -37,7 +37,7 @@ cider_spider
!byte cider_spider_e-cider_spider_b !byte cider_spider_e-cider_spider_b
cider_spider_b cider_spider_b
cider_spider_dir_b cider_spider_dir_b
!text "X/AC" !text "X"
cider_spider_dir_e cider_spider_dir_e
!text "/AC" !text "/AC"
cider_spider_e cider_spider_e

View File

@ -59,7 +59,7 @@ conan
!byte conan_e-conan_b !byte conan_e-conan_b
conan_b conan_b
conan_dir_b conan_dir_b
!text "X/CONAN" !text "X"
conan_dir_e conan_dir_e
!text "/CONAN" !text "/CONAN"
conan_e conan_e

View File

@ -31,7 +31,7 @@ crime_wave
!byte crime_wave_e-crime_wave_b !byte crime_wave_e-crime_wave_b
crime_wave_b crime_wave_b
crime_wave_dir_b crime_wave_dir_b
!text "X/CRIME.WAVE" !text "X"
crime_wave_dir_e crime_wave_dir_e
!text "/CRIME.WAVE" !text "/CRIME.WAVE"
crime_wave_e crime_wave_e

View File

@ -34,7 +34,7 @@ dino_eggs
!byte dino_eggs_e-dino_eggs_b !byte dino_eggs_e-dino_eggs_b
dino_eggs_b dino_eggs_b
dino_eggs_dir_b dino_eggs_dir_b
!text "X/DINO.EGGS" !text "X"
dino_eggs_dir_e dino_eggs_dir_e
!text "/DINO.EGGS" !text "/DINO.EGGS"
dino_eggs_e dino_eggs_e

View File

@ -44,7 +44,7 @@
patch !byte $4C,$00,$01 patch !byte $4C,$00,$01
title !byte x_e-x_b title !byte x_e-x_b
x_b !text "X/FIREBUG/FIREBUG" x_b !text "X/FIREBUG"
x_e x_e
!if * > $3F0 { !if * > $3F0 {

View File

@ -68,7 +68,7 @@ patch5 !byte $4C,<callback2,>callback2
gumball !byte gumball_e-gumball_b gumball !byte gumball_e-gumball_b
gumball_b gumball_b
gumball_dir_b gumball_dir_b
!text "X/GUMBALL" !text "X"
gumball_dir_e gumball_dir_e
!text "/GUMBALL" !text "/GUMBALL"
gumball_e gumball_e

View File

@ -51,7 +51,7 @@ jungle_hunt
!byte jungle_hunt_e-jungle_hunt_b !byte jungle_hunt_e-jungle_hunt_b
jungle_hunt_b jungle_hunt_b
jungle_hunt_dir_b jungle_hunt_dir_b
!text "X/JUNGLE.HUNT" !text "X"
jungle_hunt_dir_e jungle_hunt_dir_e
!text "/JUNGLE.HUNT" !text "/JUNGLE.HUNT"
jungle_hunt_e jungle_hunt_e

View File

@ -92,7 +92,7 @@ karateka
!byte karateka_e-karateka_b !byte karateka_e-karateka_b
karateka_b karateka_b
karateka_dir_b karateka_dir_b
!text "X/KARATEKA" !text "X"
karateka_dir_e karateka_dir_e
!text "/KARATEKA" !text "/KARATEKA"
karateka_e karateka_e

View File

@ -43,7 +43,7 @@ labyrinth
!byte labyrinth_e-labyrinth_b !byte labyrinth_e-labyrinth_b
labyrinth_b labyrinth_b
labyrinth_dir_b labyrinth_dir_b
!text "X/LABYRINTH" !text "X"
labyrinth_dir_e labyrinth_dir_e
!text "/LABYRINTH" !text "/LABYRINTH"
labyrinth_e labyrinth_e

View File

@ -51,5 +51,5 @@ callback
patch !byte $4C,$70,$00 patch !byte $4C,$70,$00
title !byte x_e-x_b title !byte x_e-x_b
x_b !text "X/LADY.TUT/LADY.TUT" x_b !text "X/LADY.TUT"
x_e x_e

View File

@ -42,7 +42,7 @@ lode_runner
!byte lode_runner_e-lode_runner_b !byte lode_runner_e-lode_runner_b
lode_runner_b lode_runner_b
lode_runner_dir_b lode_runner_dir_b
!text "X/LODE.RUNNER" !text "X"
lode_runner_dir_e lode_runner_dir_e
!text "/LODE.RUNNER" !text "/LODE.RUNNER"
lode_runner_e lode_runner_e

View File

@ -41,7 +41,7 @@ patch2 !byte $20,<callback,>callback
mr_cool !byte mr_cool_e-mr_cool_b mr_cool !byte mr_cool_e-mr_cool_b
mr_cool_b mr_cool_b
mr_cool_dir_b mr_cool_dir_b
!text "X/MC" !text "X"
mr_cool_dir_e mr_cool_dir_e
!text "/MC" !text "/MC"
mr_cool_e mr_cool_e

View File

@ -40,7 +40,7 @@ nightmare
!byte nightmare_e-nightmare_b !byte nightmare_e-nightmare_b
nightmare_b nightmare_b
nightmare_dir_b nightmare_dir_b
!text "X/NI" !text "X"
nightmare_dir_e nightmare_dir_e
!text "/NI" !text "/NI"
nightmare_e nightmare_e

View File

@ -44,7 +44,7 @@ patch2 !byte $4C,$97,$0A
pieman !byte pieman_e-pieman_b pieman !byte pieman_e-pieman_b
pieman_b pieman_b
pieman_dir_b pieman_dir_b
!text "X/PM" !text "X"
pieman_dir_e pieman_dir_e
!text "/PM" !text "/PM"
pieman_e pieman_e

View File

@ -47,7 +47,7 @@ callback
patch !byte $4C,$00,$01 patch !byte $4C,$00,$01
title !byte x_e-x_b title !byte x_e-x_b
x_b !text "X/PLASMANIA/PLASMANIA" x_b !text "X/PLASMANIA"
x_e x_e
!if * > $3F0 { !if * > $3F0 {

View File

@ -38,7 +38,7 @@ patch2 !byte $4C,$00,$01
repton !byte repton_e-repton_b repton !byte repton_e-repton_b
repton_b repton_b
repton_dir_b repton_dir_b
!text "X/REPTON" !text "X"
repton_dir_e repton_dir_e
!text "/REPTON" !text "/REPTON"
repton_e repton_e

View File

@ -53,7 +53,7 @@ sammy_lightfoot
!byte sammy_lightfoot_e-sammy_lightfoot_b !byte sammy_lightfoot_e-sammy_lightfoot_b
sammy_lightfoot_b sammy_lightfoot_b
sammy_lightfoot_dir_b sammy_lightfoot_dir_b
!text "X/SAMMY.LIGHTFOOT" !text "X"
sammy_lightfoot_dir_e sammy_lightfoot_dir_e
!text "/SAMMY.LIGHTFOOT" !text "/SAMMY.LIGHTFOOT"
sammy_lightfoot_e sammy_lightfoot_e

View File

@ -52,7 +52,7 @@ serpentine
!byte serpentine_e-serpentine_b !byte serpentine_e-serpentine_b
serpentine_b serpentine_b
serpentine_dir_b serpentine_dir_b
!text "X/SERPENTINE" !text "X"
serpentine_dir_e serpentine_dir_e
!text "/SERPENTINE" !text "/SERPENTINE"
serpentine_e serpentine_e

View File

@ -41,7 +41,7 @@ short_circuit
!byte short_circuit_e-short_circuit_b !byte short_circuit_e-short_circuit_b
short_circuit_b short_circuit_b
short_circuit_dir_b short_circuit_dir_b
!text "X/SHORT.CIRCUIT" !text "X"
short_circuit_dir_e short_circuit_dir_e
!text "/SHORT.CIRCUIT" !text "/SHORT.CIRCUIT"
short_circuit_e short_circuit_e

View File

@ -38,7 +38,7 @@ spare_change
!byte spare_change_e-spare_change_b !byte spare_change_e-spare_change_b
spare_change_b spare_change_b
spare_change_dir_b spare_change_dir_b
!text "X/SPARE.CHANGE" !text "X"
spare_change_dir_e spare_change_dir_e
!text "/SPARE.CHANGE" !text "/SPARE.CHANGE"
spare_change_e spare_change_e

View File

@ -33,7 +33,7 @@ spare_change
!byte spare_change_e-spare_change_b !byte spare_change_e-spare_change_b
spare_change_b spare_change_b
spare_change_dir_b spare_change_dir_b
!text "X/SPARE.CHANGE" !text "X"
spare_change_dir_e spare_change_dir_e
!text "/SPARE.CHANGE" !text "/SPARE.CHANGE"
spare_change_e spare_change_e

View File

@ -33,7 +33,7 @@ spare_change
!byte spare_change_e-spare_change_b !byte spare_change_e-spare_change_b
spare_change_b spare_change_b
spare_change_dir_b spare_change_dir_b
!text "X/SPARE.CHANGE" !text "X"
spare_change_dir_e spare_change_dir_e
!text "/SPARE.CHANGE" !text "/SPARE.CHANGE"
spare_change_e spare_change_e

View File

@ -33,7 +33,7 @@ spare_change
!byte spare_change_e-spare_change_b !byte spare_change_e-spare_change_b
spare_change_b spare_change_b
spare_change_dir_b spare_change_dir_b
!text "X/SPARE.CHANGE" !text "X"
spare_change_dir_e spare_change_dir_e
!text "/SPARE.CHANGE" !text "/SPARE.CHANGE"
spare_change_e spare_change_e

View File

@ -33,7 +33,7 @@ spare_change
!byte spare_change_e-spare_change_b !byte spare_change_e-spare_change_b
spare_change_b spare_change_b
spare_change_dir_b spare_change_dir_b
!text "X/SPARE.CHANGE" !text "X"
spare_change_dir_e spare_change_dir_e
!text "/SPARE.CHANGE" !text "/SPARE.CHANGE"
spare_change_e spare_change_e

View File

@ -33,7 +33,7 @@ spare_change
!byte spare_change_e-spare_change_b !byte spare_change_e-spare_change_b
spare_change_b spare_change_b
spare_change_dir_b spare_change_dir_b
!text "X/SPARE.CHANGE" !text "X"
spare_change_dir_e spare_change_dir_e
!text "/SPARE.CHANGE" !text "/SPARE.CHANGE"
spare_change_e spare_change_e

View File

@ -33,7 +33,7 @@ spare_change
!byte spare_change_e-spare_change_b !byte spare_change_e-spare_change_b
spare_change_b spare_change_b
spare_change_dir_b spare_change_dir_b
!text "X/SPARE.CHANGE" !text "X"
spare_change_dir_e spare_change_dir_e
!text "/SPARE.CHANGE" !text "/SPARE.CHANGE"
spare_change_e spare_change_e

View File

@ -38,7 +38,7 @@ sd
!byte sd_e-sd_b !byte sd_e-sd_b
sd_b sd_b
sd_dir_b sd_dir_b
!text "X/SD" !text "X"
sd_dir_e sd_dir_e
!text "/SD" !text "/SD"
sd_e sd_e

View File

@ -39,9 +39,12 @@ callback1
sta $A572 sta $A572
lda #>callback2 lda #>callback2
sta $A573 sta $A573
ldx #0
stx $A473
stx $A476
stx $A47A ; start demo immediately
lda #$4C lda #$4C
sta $A484 sta $A484
ldx #0
stx $A485 stx $A485
inx inx
stx $A486 stx $A486
@ -65,8 +68,7 @@ stellar_7
!byte stellar_7_e-stellar_7_b !byte stellar_7_e-stellar_7_b
stellar_7_b stellar_7_b
stellar_7_dir_b stellar_7_dir_b
!text "X/STELLAR.7" !text "X/STEL.DIR"
stellar_7_dir_e stellar_7_dir_e
!text "/" !text "/STELLAR.7"
!text "STELLAR.7"
stellar_7_e stellar_7_e

View File

@ -58,7 +58,7 @@ the_goonies
!byte the_goonies_e-the_goonies_b !byte the_goonies_e-the_goonies_b
the_goonies_b the_goonies_b
the_goonies_dir_b the_goonies_dir_b
!text "X/THE.GOONIES" !text "X"
the_goonies_dir_e the_goonies_dir_e
!text "/THE.GOONIES" !text "/THE.GOONIES"
the_goonies_e the_goonies_e

View File

@ -73,7 +73,7 @@ thunder_bombs
!byte thunder_bombs_e-thunder_bombs_b !byte thunder_bombs_e-thunder_bombs_b
thunder_bombs_b thunder_bombs_b
thunder_bombs_dir_b thunder_bombs_dir_b
!text "X/THUNDER.BOMBS" !text "X"
thunder_bombs_dir_e thunder_bombs_dir_e
!text "/THUNDER.BOMBS" !text "/THUNDER.BOMBS"
thunder_bombs_e thunder_bombs_e

View File

@ -47,7 +47,7 @@
patch !byte $4C,$00,$01 patch !byte $4C,$00,$01
title !byte x_e-x_b title !byte x_e-x_b
x_b !text "X/TB/TB" x_b !text "X/TB"
x_e x_e
!if * > $3F0 { !if * > $3F0 {

View File

@ -48,7 +48,7 @@ vindicator
!byte vindicator_e-vindicator_b !byte vindicator_e-vindicator_b
vindicator_b vindicator_b
vindicator_dir_b vindicator_dir_b
!text "X/VINDICATOR" !text "X"
vindicator_dir_e vindicator_dir_e
!text "/VINDICATOR" !text "/VINDICATOR"
vindicator_e vindicator_e

View File

@ -59,7 +59,7 @@ warp_destoyer
!byte warp_destoyer_e-warp_destoyer_b !byte warp_destoyer_e-warp_destoyer_b
warp_destoyer_b warp_destoyer_b
warp_destoyer_dir_b warp_destoyer_dir_b
!text "X/WARP.DESTROYER" !text "X"
warp_destoyer_dir_e warp_destoyer_dir_e
!text "/WARP.DESTROYER" !text "/WARP.DESTROYER"
warp_destoyer_e warp_destoyer_e

View File

@ -158,49 +158,15 @@ PlayGameInAY
jmp Launch jmp Launch
@loadFromSubdirectory @loadFromSubdirectory
; we start by placing the subdirectory name at gPathname+kGameDirectoryLen
; to leave room for the GameDirectory name as the parent
lda #kGameDirectoryLen
sta gPathname
+LD16 SAVE +LD16 SAVE
jsr AddToPath +ST16 @p
; attach the separator
inc gPathname
lda #'/'
sta gPathname+1,x
; then we save the length of the resulting string without the count byte
dex
txa
pha
; then attach the game name
+LD16 SAVE
jsr AddToPath
; don't look while I do this
; we "place" a string at gPathname+kGameDirectoryLen
; whose length is the subdirectory name and game name
; then we load it
; the load sets the path to the GameDirectory
; and then finds the subdirectory name and game name right after it
; and attaches it to the path by overwriting the count byte
;;sec ; carry set by AddToPath
lda gPathname
sbc #kGameDirectoryLen
sta gPathname+kGameDirectoryLen
jsr LoadFile ; load the game startup file jsr LoadFile ; load the game startup file
!word kGameDirectory !word kGameDirectory
!word gPathname+kGameDirectoryLen @p !word $FDFD
!word 0 ; use file's default address !word 0 ; use file's default address
pla lda #1
sta ProDOS_prefix ; set 'root' directory to the path part sta ProDOS_prefix ; set 'root' directory to the path part
; of the game startup file we just loaded ; of the game startup file we just loaded
; so games can load other files without ; so games can load other files without

View File

@ -4,5 +4,5 @@
; This file is automatically generated ; This file is automatically generated
; ;
!byte 0 !byte 0
!be24 15606670 !be24 15605888
!le16 5112 !le16 5112

View File

@ -4,5 +4,5 @@
; This file is automatically generated ; This file is automatically generated
; ;
!byte 0 !byte 0
!be24 15551801 !be24 15551019
!le16 5732 !le16 5732

View File

@ -4,5 +4,5 @@
; This file is automatically generated ; This file is automatically generated
; ;
!byte 0 !byte 0
!be24 15482686 !be24 15481904
!le16 4192 !le16 4192

View File

@ -4,5 +4,5 @@
; This file is automatically generated ; This file is automatically generated
; ;
!byte 0 !byte 0
!be24 15497345 !be24 15496563
!le16 4650 !le16 4650

View File

@ -4,5 +4,5 @@
; This file is automatically generated ; This file is automatically generated
; ;
!byte 0 !byte 0
!be24 15516059 !be24 15515277
!le16 6069 !le16 6069

View File

@ -4,5 +4,5 @@
; This file is automatically generated ; This file is automatically generated
; ;
!byte 0 !byte 0
!be24 15537549 !be24 15536767
!le16 6688 !le16 6688

View File

@ -4,5 +4,5 @@
; This file is automatically generated ; This file is automatically generated
; ;
!byte 0 !byte 0
!be24 15611782 !be24 15611000
!le16 410 !le16 410

View File

@ -4,5 +4,5 @@
; This file is automatically generated ; This file is automatically generated
; ;
!byte 0 !byte 0
!be24 15612536 !be24 15611754
!le16 449 !le16 449

View File

@ -4,5 +4,5 @@
; This file is automatically generated ; This file is automatically generated
; ;
!byte 0 !byte 0
!be24 15612985 !be24 15612203
!le16 303 !le16 303

View File

@ -4,5 +4,5 @@
; This file is automatically generated ; This file is automatically generated
; ;
!byte 0 !byte 0
!be24 12378958 !be24 12378176
!le16 1652 !le16 1652

View File

@ -4,5 +4,5 @@
; This file is automatically generated ; This file is automatically generated
; ;
!byte 0 !byte 0
!be24 15560173 !be24 15559391
!le16 1640 !le16 1640

View File

@ -4,5 +4,5 @@
; This file is automatically generated ; This file is automatically generated
; ;
!byte 0 !byte 0
!be24 15612268 !be24 15611486
!le16 67 !le16 67

View File

@ -4,5 +4,5 @@
; This file is automatically generated ; This file is automatically generated
; ;
!byte 0 !byte 0
!be24 15606611 !be24 15605829
!le16 59 !le16 59

View File

@ -4,5 +4,5 @@
; This file is automatically generated ; This file is automatically generated
; ;
!byte 0 !byte 0
!be24 15605031 !be24 15604249
!le16 1426 !le16 1426

View File

@ -4,5 +4,5 @@
; This file is automatically generated ; This file is automatically generated
; ;
!byte 0 !byte 0
!be24 15589797 !be24 15589015
!le16 557 !le16 557

View File

@ -4,5 +4,5 @@
; This file is automatically generated ; This file is automatically generated
; ;
!byte 0 !byte 0
!be24 15557533 !be24 15556751
!le16 2640 !le16 2640

View File

@ -4,5 +4,5 @@
; This file is automatically generated ; This file is automatically generated
; ;
!byte 0 !byte 0
!be24 15562171 !be24 15561389
!le16 7564 !le16 7564

View File

@ -4,5 +4,5 @@
; This file is automatically generated ; This file is automatically generated
; ;
!byte 0 !byte 0
!be24 15612192 !be24 15611410
!le16 76 !le16 76

View File

@ -4,5 +4,5 @@
; This file is automatically generated ; This file is automatically generated
; ;
!byte 0 !byte 0
!be24 15606457 !be24 15605675
!le16 154 !le16 154

View File

@ -4,5 +4,5 @@
; This file is automatically generated ; This file is automatically generated
; ;
!byte 0 !byte 0
!be24 15612335 !be24 15611553
!le16 201 !le16 201

View File

@ -4,5 +4,5 @@
; This file is automatically generated ; This file is automatically generated
; ;
!byte 0 !byte 0
!be24 15590354 !be24 15589572
!le16 4352 !le16 4352

View File

@ -4,5 +4,5 @@
; This file is automatically generated ; This file is automatically generated
; ;
!byte 0 !byte 0
!be24 15594706 !be24 15593924
!le16 1733 !le16 1733

View File

@ -4,5 +4,5 @@
; This file is automatically generated ; This file is automatically generated
; ;
!byte 0 !byte 0
!be24 15596439 !be24 15595657
!le16 1181 !le16 1181

View File

@ -4,5 +4,5 @@
; This file is automatically generated ; This file is automatically generated
; ;
!byte 0 !byte 0
!be24 15597620 !be24 15596838
!le16 3376 !le16 3376

View File

@ -4,5 +4,5 @@
; This file is automatically generated ; This file is automatically generated
; ;
!byte 0 !byte 0
!be24 15600996 !be24 15600214
!le16 3429 !le16 3429

View File

@ -4,5 +4,5 @@
; This file is automatically generated ; This file is automatically generated
; ;
!byte 0 !byte 0
!be24 15604425 !be24 15603643
!le16 479 !le16 479

View File

@ -4,5 +4,5 @@
; This file is automatically generated ; This file is automatically generated
; ;
!byte 0 !byte 0
!be24 15604904 !be24 15604122
!le16 127 !le16 127

View File

@ -4,5 +4,5 @@
; This file is automatically generated ; This file is automatically generated
; ;
!byte 0 !byte 0
!be24 15613288 !be24 15612506
!le16 2370 !le16 2370

View File

@ -4,5 +4,5 @@
; This file is automatically generated ; This file is automatically generated
; ;
!byte 0 !byte 0
!be24 15575140 !be24 15574358
!le16 5083 !le16 5083

View File

@ -4,5 +4,5 @@
; This file is automatically generated ; This file is automatically generated
; ;
!byte 0 !byte 0
!be24 15580223 !be24 15579441
!le16 2485 !le16 2485

View File

@ -4,5 +4,5 @@
; This file is automatically generated ; This file is automatically generated
; ;
!byte 0 !byte 0
!be24 15544237 !be24 15543455
!le16 7564 !le16 7564

View File

@ -4,5 +4,5 @@
; This file is automatically generated ; This file is automatically generated
; ;
!byte 0 !byte 0
!be24 15473156 !be24 15472374
!le16 9530 !le16 9530

View File

@ -4,5 +4,5 @@
; This file is automatically generated ; This file is automatically generated
; ;
!byte 0 !byte 0
!be24 15486878 !be24 15486096
!le16 10467 !le16 10467

View File

@ -4,5 +4,5 @@
; This file is automatically generated ; This file is automatically generated
; ;
!byte 0 !byte 0
!be24 15501995 !be24 15501213
!le16 14064 !le16 14064

View File

@ -4,5 +4,5 @@
; This file is automatically generated ; This file is automatically generated
; ;
!byte 0 !byte 0
!be24 15522128 !be24 15521346
!le16 15421 !le16 15421

View File

@ -4,5 +4,5 @@
; This file is automatically generated ; This file is automatically generated
; ;
!byte 0 !byte 0
!be24 15561813 !be24 15561031
!le16 358 !le16 358

View File

@ -4,5 +4,5 @@
; This file is automatically generated ; This file is automatically generated
; ;
!byte 0 !byte 0
!be24 15569735 !be24 15568953
!le16 5405 !le16 5405

View File

@ -4,5 +4,5 @@
; This file is automatically generated ; This file is automatically generated
; ;
!byte 0 !byte 0
!be24 15582708 !be24 15581926
!le16 7089 !le16 7089

View File

@ -4,5 +4,5 @@
; This file is automatically generated ; This file is automatically generated
; ;
!byte 0 !byte 0
!be24 15468808 !be24 15468026
!le16 4348 !le16 4348