#WARNING! Do not run a 'make install' unless you know what you're doing. CPMSIZE = 62 CPMSYS = CPM$(CPMSIZE).SYS IMGFORMAT = avrcpm #IMGFORMAT = simhd # CP/M emulator CPMEMU = aliados ifeq "$(OS)" "Windows_NT" PLATFORM=win32 else PLATFORM=Linux endif #Location of M80/L80 ifeq ($(PLATFORM),Linux) CPMBIN = /usr/local/lib/cpm/bin80 else CPMBIN = C:/cpmbin endif diskimage: CPM.BIN cpmdsk/* mkfs.cpm -f $(IMGFORMAT) -b CPM.BIN -L test diskimage cd cpmdsk; for x in *; do cpmcp -f $(IMGFORMAT) ../diskimage $$x 0:$$x; done; cd .. CPM.BIN: IPL.BIN BIOS.BIN $(CPMSYS) dd conv=sync bs=118 count=1 if=IPL.BIN > tmpCPM.BIN &&\ echo -n "" >> tmpCPM.BIN &&\ dd conv=sync bs=128 count=44 if=$(CPMSYS) >> tmpCPM.BIN &&\ dd conv=sync bs=128 count=7 if=BIOS.BIN >> tmpCPM.BIN &&\ mv tmpCPM.BIN CPM.BIN BIOS.PRN BIOS.REL : AVRCPM.LIB CFGACPM.LIB IPL.PRN IPL.REL : CFGACPM.LIB %.REL: %.MAC $(CPMEMU) $(CPMBIN)/m80.com =$< # zxcc m80 -=$< %.PRN: %.MAC $(CPMEMU) $(CPMBIN)/m80.com ,$@=$< # zxcc m80.com -,$@=$< %.BIN: %.REL $(CPMEMU) $(CPMBIN)/l80.com $<,$@/N/E # zxcc l80.com -$<,$@/N/E %.COM: %.REL $(CPMEMU) $(CPMBIN)/l80.com $<,$@/N/E # zxcc l80.com -$<,$@/N/E .PHONY: clean installcpm install help clean: rm -f BIOS.LST IPL.LST rm -f *.REL *.PRN *.BIN *.COM rm -f diskimage installcpm: CPM.BIN ifneq (${DEV},) sudo dd if=CPM.BIN of=${DEV} bs=128 conv=sync oflag=sync sync sleep 1 sync else @echo Error: You must specify a device to install to! @echo " i.e. 'make $@ DEV=/dev/sdb1'" endif install: diskimage ifneq (${DEV},) sudo dd if=diskimage of=${DEV} conv=sync oflag=direct,sync sync cpmls -f $(IMGFORMAT) ${DEV} sync sleep 1 sync else @echo Error: You must specify a device to install to! @echo " i.e. 'make $@ DEV=/dev/sdb1'" endif help: @echo -e "The following make targets are supported:\n"\ " diskimage - Build a complete CP/M image. (default)\n"\ " CPM.BIN - Build CP/M system (IPL+CCP+BDOS+BIOS).\n"\ "\n"\ " BIOS.PRN - Make a listing file from bios.asm\n"\ " IPL.PRN - Dito for ipl\n"\ "\n"\ " install - Copy diskimage to memory card.\n"\ " You must specify the card device on the command line.\n"\ " Example: 'DEV=/dev/sdb1'\n"\ " installcpm - Like install, but install only the system tracks,\n"\ " leaving the CP/M file system unaffected.\n"\ "\n"\ " clean - Remove intermediate and output files.\n"\ " help - Print this message and exit.\n"