diff --git a/Programs/CosmOS/README.md b/Programs/CosmOS/README.md index 71b32c0..86e5043 100644 --- a/Programs/CosmOS/README.md +++ b/Programs/CosmOS/README.md @@ -75,6 +75,18 @@ To boot CosmOS with that disk attached: make run-cosmos ``` +Or on the Voyager, which is the same machine with a screen and a speaker instead of a +terminal: + +```sh +make run-voyager +``` + +Both depend on the disk rather than merely using it, which is worth knowing: **what is on a +disk is whatever was built when the disk was made.** A machine whose console has changed +will start an old image quite happily and its programs will draw whatever the old way now +means, which is a confusing thing to debug and an easy thing to avoid. + The generated files are kept under `Programs/build/`: - `CosmOS/Source/cosmos.bin` is the bootable CosmOS image. diff --git a/Programs/makefile b/Programs/makefile index 942c0ea..570d7f9 100644 --- a/Programs/makefile +++ b/Programs/makefile @@ -69,6 +69,7 @@ run-%: # make cosmos Assemble the system and everything it can load. # make cosmos-disk ... and put the loadable programs on a disk image. # make run-cosmos ... and boot the machine with that disk in the drive. +# make run-voyager ... and boot the machine that has a screen instead of a terminal. # # Programs in Apps/ say where they live with #Base, so the assembler writes them out as # loadable programs rather than as boot images. They are named .sbx to keep that @@ -220,6 +221,22 @@ run-cosmos: $(COSMOS_DISK) run-cosmos-direct: $(COSMOS) $(COSMOS_DISK) $(EMU) --disk $(COSMOS_DISK) $(COSMOS) +# ---- The same disk, on the machine with a screen ---- +# +# Voyager rather than SplitBit, which is the only difference: same disk, same system, same +# programs, presented through a window instead of a terminal. +# +# IT DEPENDS ON THE DISK, and that matters more than it looks. What is on a disk is whatever +# was built when the disk was made, so a machine whose console has changed will happily boot +# an image full of programs written for the old one - and they will draw whatever the old +# way now means. Making the disk a dependency of running it is what stops that being a +# puzzle. +run-voyager: $(COSMOS_DISK) + ../Voyager --disk $(COSMOS_DISK) + +run-voyager-direct: $(COSMOS) $(COSMOS_DISK) + ../Voyager --disk $(COSMOS_DISK) $(COSMOS) + clean: rm -rf $(BUILD) @@ -227,4 +244,4 @@ clean: # reassembles every program that includes it. -include $(DEPENDENCIES) -.PHONY: all clean cosmos cosmos-disk run-cosmos run-cosmos-direct +.PHONY: all clean cosmos cosmos-disk run-cosmos run-cosmos-direct run-voyager run-voyager-direct diff --git a/README.md b/README.md index 709dedf..da64816 100644 --- a/README.md +++ b/README.md @@ -104,6 +104,12 @@ make run-cosmos Then `dir` to see what is there, `load Snake.sbx` and `run` to play something, or `load Asm.sbx` and `run cosmos.asm` to watch the machine build itself. +`make run-voyager` boots the same disk on the machine with a screen instead of a terminal. +Both targets depend on the disk, so a disk built before a change to the machine is rebuilt +rather than booted as it stands: **what is on a disk is whatever was built when the disk was +made**, and a system whose console has changed will happily start an image full of programs +written for the old one. + ## Running Programs: SplitBit ```