-
Notifications
You must be signed in to change notification settings - Fork 6
/
Copy pathMakefile
59 lines (59 loc) · 2.31 KB
/
Makefile
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
fasm = fasm
fasm_extraopts = -d bios_drive=0
#fasm_extraopts += -d target_segment=0xE000
readblock_retries = 7
qemu = qemu-system-i386
hexdumpcmd = hexdump -C
#hexdumpcmd = xxd -a
deletecmd = rm -f
build_date = $(shell date -u +%Y%m%d%H%MZ)
ifeq ($(OS),Windows_NT)
deletecmd = del
hexdumpcmd = echo
else
fasm_extraopts += -d build_date=\"$(build_date)\"
endif
fasm_extraopts += -d readblock_retries=$(readblock_retries)
.PHONY: all
all: optromloader18 optromloader15 optromloader9 fd1440.img fd720.img fd1200.img fd360.img hexdump
optromloader18: optromloader.asm
@echo "*** assembling $@..."
$(fasm) $(fasm_extraopts) -d sectors_per_track=18 optromloader.asm $@
optromloader15: optromloader.asm
@echo "*** assembling $@..."
$(fasm) $(fasm_extraopts) -d sectors_per_track=15 optromloader.asm $@
optromloader9: optromloader.asm
@echo "*** assembling $@..."
$(fasm) $(fasm_extraopts) -d sectors_per_track=9 optromloader.asm $@
fd1440.img: optromloader.asm optrom.bin
@echo "*** assembling $@..."
$(fasm) $(fasm_extraopts) -d sectors_per_track=18 -d pad_to_bytes=1474560 -d include_optrom="'optrom.bin'" optromloader.asm $@
fd720.img: optromloader.asm optrom.bin
@echo "*** assembling $@..."
$(fasm) $(fasm_extraopts) -d sectors_per_track=9 -d pad_to_bytes=737280 -d include_optrom="'optrom.bin'" optromloader.asm $@
fd1200.img: optromloader.asm optrom.bin
@echo "*** assembling $@..."
$(fasm) $(fasm_extraopts) -d sectors_per_track=15 -d pad_to_bytes=1228800 -d include_optrom="'optrom.bin'" optromloader.asm $@
fd360.img: optromloader.asm optrom.bin
@echo "*** assembling $@..."
$(fasm) $(fasm_extraopts) -d sectors_per_track=9 -d pad_to_bytes=368640 -d include_optrom="'optrom.bin'" optromloader.asm $@
testrom.bin: testrom.asm
@echo "*** assembling $@ (not signed)..."
$(fasm) testrom.asm $@
$(hexdumpcmd) $@
.PHONY: clean
clean:
@echo "*** Removing build artifacts..."
$(deletecmd) optromloader9 optromloader15 optromloader18 fd1440.img fd720.img fd1200.img fd360.img testrom.bin
.PHONY: hexdump
hexdump: optromloader18
@echo "*** hexdump optromloader18..."
$(hexdumpcmd) optromloader18
.PHONY: emulate
emulate: fd1440.img
@echo "*** Emulating with qemu..."
$(qemu) -drive if=floppy,format=raw,index=0,file=fd1440.img
.PHONY: emulaterom
emulaterom: optrom.bin
@echo "*** Emulating with qemu..."
$(qemu) -net none -option-rom optrom.bin