]> cloudbase.mooo.com Git - avrcpm.git/blobdiff - cpm/Makefile
SVN --> GIT
[avrcpm.git] / cpm / Makefile
index d4b42eda3533722147f89313970a017359438c02..e60ea576df6c95d137a2bc40ac0de17d40b47c3e 100644 (file)
@@ -1,40 +1,77 @@
 #WARNING! Do not run a 'make install' unless you know what you're doing.
 
-CPMBIN = /usr/local/lib/cpm/bin80
+CPMSIZE = 62
 
-diskimage: CPM.BIN cpmdsk/*
-       mkfs.cpm -f avrcpm -b CPM.BIN -L test diskimage
-       cd cpmdsk; for x in *; do cpmcp -f avrcpm ../diskimage $$x 0:$$x; done; cd ..
+CPMSYS = CPM$(CPMSIZE).SYS
+
+IMGFORMAT = avrcpm
+#IMGFORMAT = simhd
+
+# CP/M emulator
+CPMEMU = aliados
 
-CPM.BIN: IPL.BIN BIOS.BIN CPM.SYS
-       dd conv=sync bs=128  count=1 if=IPL.BIN > tmpCPM.BIN
-       dd conv=sync bs=128 count=44 if=CPM.SYS >> tmpCPM.BIN
-       dd conv=sync bs=128  count=7 if=BIOS.BIN >> tmpCPM.BIN
+
+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 "<CPM_Disk>" >> 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
 
+zsdossys: IPL.BIN CCP.BIN ZSDOS.BIN BIOS.BIN
+       dd conv=sync bs=118 count=1  if=IPL.BIN    > tmpCPM.BIN  &&\
+               echo -n "<CPM_Disk>"              >> tmpCPM.BIN  &&\
+       dd conv=sync bs=128 count=16 if=CCP.BIN   >> tmpCPM.BIN  &&\
+       dd conv=sync bs=128 count=28 if=ZSDOS.BIN >> tmpCPM.BIN  &&\
+       dd conv=sync bs=128 count=7  if=BIOS.BIN  >> tmpCPM.BIN  &&\
+       mv tmpCPM.BIN zsdossys
+
 
 BIOS.PRN BIOS.REL : AVRCPM.LIB CFGACPM.LIB
 IPL.PRN IPL.REL : CFGACPM.LIB
 
 %.REL: %.MAC
-       aliados $(CPMBIN)/m80.com =$<
+       $(CPMEMU) $(CPMBIN)/m80.com =$<
 #      zxcc m80 -=$<
 
 
 %.PRN: %.MAC
-       aliados $(CPMBIN)/m80.com ,$@=$<
+       $(CPMEMU) $(CPMBIN)/m80.com ,$@=$<
 #      zxcc m80.com -,$@=$<
 
 %.BIN: %.REL
-       aliados $(CPMBIN)/l80.com $<,$@/N/E
+       $(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 BIOS.BIN BIOS.PRN BIOS.REL
-       rm -f IPL.LST IPL.BIN IPL.PRN IPL.REL
-       rm -f CPM.BIN diskimage
+       rm -f BIOS.LST IPL.LST
+       rm -f *.REL *.PRN *.BIN *.COM
+       rm -f diskimage
 
 
 installcpm: CPM.BIN
@@ -52,7 +89,7 @@ install: diskimage
 ifneq (${DEV},)
        sudo dd if=diskimage of=${DEV} conv=sync oflag=direct,sync
        sync
-       cpmls -f avrcpm ${DEV}
+       cpmls -f $(IMGFORMAT) ${DEV}
        sync
        sleep 1
        sync
@@ -63,8 +100,9 @@ endif
 
 help:
        @echo -e "The following make targets are supported:\n"\
-       "    diskimage   - Build a complete CP/M image.\n"\
+       "    diskimage   - Build a complete CP/M image. (default)\n"\
        "    CPM.BIN     - Build CP/M system (IPL+CCP+BDOS+BIOS).\n"\
+       "    zsdossys    - Build ZSDOS system (IPL+CCP+ZSDOS+BIOS).\n"\
        "\n"\
        "    BIOS.PRN    - Make a listing file from bios.asm\n"\
        "    IPL.PRN     - Dito for ipl\n"\
@@ -75,6 +113,6 @@ help:
        "    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"
-
+       "    clean       - Remove intermediate and output files.\n"\
+       "    help        - Print this message and exit.\n"