diff --git a/res/ports/mieyen/Makefile b/res/ports/mieyen/Makefile new file mode 100644 index 0000000..37f4346 --- /dev/null +++ b/res/ports/mieyen/Makefile @@ -0,0 +1,51 @@ +# https://sourceforge.net/projects/acme-crossass/ +ACME=acme + +# https://github.com/mach-kernel/cadius +CADIUS=cadius + +EXOMIZER=exomizer mem -lnone -P23 -f -q + +BUILDDIR=build +DISKVOLUME=MIEYEN +LOADER=$(BUILDDIR)/LOADER.SYSTEM\#FF2000 +EXE=$(BUILDDIR)/MIEYEN\#0643E4 +COMPRESSED=src/OBJ.X +SOURCES=$(wildcard src/*.a) $(COMPRESSED) +RES=$(wildcard res/*) $(wildcard ../common/res/*) +BUILDDISK=$(BUILDDIR)/$(DISKVOLUME).po + +.PHONY: clean mount all + +$(BUILDDISK): $(EXE) $(LOADER) $(RES) + +$(LOADER): $(SOURCES) | $(BUILDDIR) + $(ACME) src/loader.a + $(CADIUS) REPLACEFILE "$(BUILDDISK)" "/$(DISKVOLUME)/" "$(LOADER)" -C + @touch "$@" + +$(EXE): $(SOURCES) $(COMPRESSED) | $(BUILDDIR) + $(ACME) src/mieyen.a + $(CADIUS) REPLACEFILE "$(BUILDDISK)" "/$(DISKVOLUME)/" "$(EXE)" -C + @touch "$@" + +$(RES): $(BUILDDIR) + $(CADIUS) REPLACEFILE "$(BUILDDISK)" "/$(DISKVOLUME)/" "$@" -C + @touch "$@" + +$(COMPRESSED): + $(EXOMIZER) src/OBJ@0x6000 -o "$@" + +mount: $(BUILDDISK) + @open "$(BUILDDISK)" + +clean: + rm -rf "$(BUILDDIR)" + +$(BUILDDIR): + mkdir -p "$@" + $(CADIUS) CREATEVOLUME "$(BUILDDISK)" "$(DISKVOLUME)" 140KB -C + +all: clean mount + +.NOTPARALLEL: diff --git a/res/ports/mieyen/src/OBJ b/res/ports/mieyen/src/OBJ new file mode 100644 index 0000000..e1902a9 Binary files /dev/null and b/res/ports/mieyen/src/OBJ differ diff --git a/res/ports/mieyen/src/OBJ.X b/res/ports/mieyen/src/OBJ.X new file mode 100644 index 0000000..03c3382 Binary files /dev/null and b/res/ports/mieyen/src/OBJ.X differ diff --git a/res/ports/mieyen/src/loader.a b/res/ports/mieyen/src/loader.a new file mode 100644 index 0000000..b8d217e --- /dev/null +++ b/res/ports/mieyen/src/loader.a @@ -0,0 +1,25 @@ +!cpu 6502 +*=$2000 +!to "build/LOADER.SYSTEM#FF2000",plain + + !src "../common/src/constants.a" + !src "../common/src/macros.a" + + +READ_ENTIRE_FILE parm_boot_open, parm_boot_read + jmp (entry) + +parm_boot_open + !byte 3 + !word filename + !word $2100 + !byte 0 + +parm_boot_read + !byte 4 + !byte 1 +entry !word $43E4 + !word $FFFF + !word 0 + +filename + !text 6,"MIEYEN" diff --git a/res/ports/mieyen/src/mieyen.a b/res/ports/mieyen/src/mieyen.a new file mode 100644 index 0000000..124b688 --- /dev/null +++ b/res/ports/mieyen/src/mieyen.a @@ -0,0 +1,30 @@ +!cpu 6502 +*=$43E4 +!to "build/MIEYEN#0643E4",plain + + !src "../common/src/constants.a" + !src "../common/src/macros.a" + + jmp start + +compressed_data + !bin "src/OBJ.X" +FORWARD_DECRUNCHING = 1 +SHOW_PROGRESS_DURING_DECRUNCH = 1 +kExoProgressWidth = 7 ; depends on total size, max 38 + !src "../common/src/exodecrunch.a" + +start + +INIT_MACHINE +!if * != $5FEE { + !serious "Adjust prelaunch to patch JSR at ", *, " to JMP" +} + jsr decrunch ; compressed data contains target address + jmp $6000 + +get_crunched_byte + lda compressed_data + inc get_crunched_byte+1 + bne + + inc get_crunched_byte+2 ++ rts