ROMBUSDriver/Makefile

75 lines
2.7 KiB
Makefile
Raw Normal View History

2021-08-07 05:01:54 +00:00
PREFIX=m68k-apple-macos
2021-05-22 21:40:15 +00:00
AS=$(PREFIX)-as
CC=$(PREFIX)-gcc
LD=$(PREFIX)-ld
OBJCOPY=$(PREFIX)-objcopy
OBJDUMP=$(PREFIX)-objdump
2020-08-11 18:57:00 +00:00
2021-08-07 05:27:46 +00:00
all: bin/ROMBUS.bin obj/rdisk.s obj/driver.s obj/driver_abs.sym
2020-08-11 18:57:00 +00:00
obj:
2021-08-07 05:01:54 +00:00
mkdir $@
2020-08-11 18:57:00 +00:00
bin:
2021-08-07 05:01:54 +00:00
mkdir $@
2020-08-11 18:57:00 +00:00
obj/entry.o: entry.s obj
$(AS) $< -o $@
obj/entry_rel.sym: obj obj/entry.o
$(OBJDUMP) -t obj/entry.o > $@
2021-08-07 05:01:54 +00:00
obj/rdisk.o: rdisk.c obj
$(CC) -Wall -march=68030 -c -Os $< -o $@
2020-08-11 18:57:00 +00:00
2021-08-07 05:01:54 +00:00
obj/rdisk.s: obj obj/rdisk.o
$(OBJDUMP) -d obj/rdisk.o > $@
2020-08-11 18:57:00 +00:00
2021-08-07 05:01:54 +00:00
obj/driver.o: obj obj/entry.o obj/rdisk.o
$(LD) -Ttext=40851D70 -o $@ obj/entry.o obj/rdisk.o
2020-08-11 18:57:00 +00:00
2021-08-07 05:01:54 +00:00
obj/driver.s: obj obj/driver.o
$(OBJDUMP) -d obj/driver.o > $@
2020-08-11 18:57:00 +00:00
2021-08-07 05:01:54 +00:00
obj/driver_abs.sym: obj obj/driver.o
$(OBJDUMP) -t obj/driver.o > $@
2021-05-22 21:40:15 +00:00
2021-08-07 05:01:54 +00:00
bin/driver.bin: bin obj/driver.o
$(OBJCOPY) -O binary obj/driver.o $@
2021-05-22 21:40:15 +00:00
2021-08-07 05:01:54 +00:00
bin/baserom_romdisk_ramtest.bin: bin roms/baserom.bin bin/driver.bin obj/driver_abs.sym obj/entry_rel.sym
cp roms/baserom.bin $@ # Copy base rom
# Patch driver
dd if=bin/driver.bin of=$@ bs=1 seek=335248 skip=32 conv=notrunc # Copy driver code
printf '\x78' | dd of=$@ bs=1 seek=335168 count=1 conv=notrunc # Set resource flags
printf '\x4F' | dd of=$@ bs=1 seek=335216 count=1 conv=notrunc # Set driver flags
cat obj/entry_rel.sym | grep "[0-9]\s*DOpen" | cut -c5-8 | xxd -r -p - | dd of=$@ bs=1 seek=335224 count=2 conv=notrunc
cat obj/entry_rel.sym | grep "[0-9]\s*DPrime" | cut -c5-8 | xxd -r -p - | dd of=$@ bs=1 seek=335226 count=2 conv=notrunc
cat obj/entry_rel.sym | grep "[0-9]\s*DControl" | cut -c5-8 | xxd -r -p - | dd of=$@ bs=1 seek=335228 count=2 conv=notrunc
cat obj/entry_rel.sym | grep "[0-9]\s*DStatus" | cut -c5-8 | xxd -r -p - | dd of=$@ bs=1 seek=335230 count=2 conv=notrunc
cat obj/entry_rel.sym | grep "[0-9]\s*DClose" | cut -c5-8 | xxd -r -p - | dd of=$@ bs=1 seek=335232 count=2 conv=notrunc
2020-08-11 18:57:00 +00:00
2021-08-07 05:01:54 +00:00
bin/baserom_romdisk_noramtest.bin: bin bin/baserom_romdisk_ramtest.bin
cp bin/baserom_romdisk_ramtest.bin $@ # Copy base rom
# Disable RAM test
printf '\x4E\xD6' | dd of=$@ bs=1 seek=288736 count=2 conv=notrunc
printf '\x4E\xD6' | dd of=$@ bs=1 seek=289016 count=2 conv=notrunc
2021-05-22 21:40:15 +00:00
2021-08-07 05:27:46 +00:00
bin/ROMBUS.bin: bin bin/baserom_romdisk_noramtest.bin disks/RDisk7M5.dsk
2021-08-07 05:01:54 +00:00
# Copy base rom with ROM disk driver
cp bin/baserom_romdisk_noramtest.bin $@
# Patch ROM disk driver parameter table
printf '\x00\x01\x2A\x29' | dd of=$@ bs=1 seek=335260 count=4 conv=notrunc # Patch CDR patch offset
printf '\x40\x89\x2A\x14' | dd of=$@ bs=1 seek=335268 count=4 conv=notrunc # Patch CDR name address
printf '\x44' | dd of=$@ bs=1 seek=335273 count=1 conv=notrunc # Patch CDR disable byte
printf '\x00\x78\x00\x00' | dd of=$@ bs=1 seek=335276 count=4 conv=notrunc # Patch ROM disk size
# Copy ROM disk image
dd if=disks/RDisk7M5.dsk of=$@ bs=1024 seek=512 conv=notrunc
2020-08-11 18:57:00 +00:00
.PHONY: clean
clean:
rm -fr bin obj