mirror of
https://github.com/SEPPDROID/Digital-Research-Source-Code.git
synced 2025-10-25 17:34:06 +00:00
Upload
Digital Research
This commit is contained in:
320
CPM OPERATING SYSTEMS/CPM 3.X/CPM 3.0/SOURCE/Makefile
Normal file
320
CPM OPERATING SYSTEMS/CPM 3.X/CPM 3.0/SOURCE/Makefile
Normal file
@@ -0,0 +1,320 @@
|
||||
#
|
||||
# Unix Makefile for CP/M 3.1
|
||||
#
|
||||
OBJS=mcd80a.obj mcd80f.obj parse.obj
|
||||
#
|
||||
HEXS=copysys.hex ccp3.hex ccpdate.hex date.hex device.hex dir.hex \
|
||||
dump.hex ed.hex erase.hex get.hex gencom.hex gencpm.hex help.hex \
|
||||
hexcom.hex patch.hex pip.hex put.hex rename.hex set.hex setdef.hex \
|
||||
show.hex submit.hex type.hex minhlp.hex
|
||||
|
||||
OBJS=copysys.obj ccp3.obj ccpdate.obj date.obj device.obj dir.obj \
|
||||
dump.obj ed.obj erase.obj get.obj gencom.obj gencpm.obj help.obj \
|
||||
objcom.obj patch.obj pip.obj put.obj rename.obj set.obj setdef.obj \
|
||||
show.obj submit.obj type.obj minhlp.obj
|
||||
|
||||
BLKS=date device dir disp dpb80 ed erase gencom gencpm get hexcom hexpat \
|
||||
help main80 minhlp pip put rename scan search set setdef show sort \
|
||||
submit timest type util
|
||||
|
||||
MCOMS = copysys.com ccp.com date.com device.com dir.com dump.com ed.com \
|
||||
erase.com get.com gencom.com gencpm.com help.com hexcom.com patch.com \
|
||||
pip.com put.com rename.com save.com set.com setdef.com show.com \
|
||||
submit.com type.com sid.com
|
||||
|
||||
BDOS = resbdos3.spr bdos3.spr bnkbdos3.spr
|
||||
|
||||
ZXCC = zxcc
|
||||
THAMES = ./runthames
|
||||
|
||||
MAC=mac.com
|
||||
RMAC=rmac.com
|
||||
LINK=drlink.com
|
||||
|
||||
BINARIES= bdos3.spr date.com erase.com help.hlp README \
|
||||
setdef.com bnkbdos3.spr device.com gencom.com hexcom.com \
|
||||
rename.com show.com ccp.com dir.com gencpm.com \
|
||||
patch.com resbdos3.spr submit.com copysys.com dump.com \
|
||||
get.com pip.com save.com type.com cpmldr.rel \
|
||||
ed.com help.com put.com set.com sid.com
|
||||
|
||||
SOURCES= assemble.txt disp.plm hexcom.asm parse.asm search.plm \
|
||||
bdos30.asm dpb80.plm hexcom.c patch.asm setbuf.plm \
|
||||
bios.bin dpb.lit hexpat.c pip.plm setdef.plm \
|
||||
bioskrnl.asm drvtbl.asm inpout.asm plibios3.asm set.plm \
|
||||
boot.asm dump.asm ldrlwr.asm plibios.asm show.plm \
|
||||
callvers.asm echovers.asm _libios3.asm plidio.asm sopt.dcl \
|
||||
ccp3.asm ed.plm _lidio.asm prs0mov.asm sopt.inc \
|
||||
ccp3org.asm drlink.com prs1asm.asm sort.plm \
|
||||
ccpdate.asm erase.plm loader3.asm prs2mon.asm submit.plm \
|
||||
chario.asm fcb.lit mac.com putf.asm subrsx.asm \
|
||||
comlit.lit fd1797sd.asm main80.plm put.plm timest.plm \
|
||||
conbdos.asm finfo.lit main.plm putrsx.asm type.plm \
|
||||
copyrt.lit format.lit makedate.lib random.asm _ump.asm \
|
||||
copysys.asm gencom.plm Makefile README util.plm \
|
||||
cpmbdos1.asm gencpm.plm making.txt rename.plm utl0mov.asm \
|
||||
cpmbdos2.asm getdef.plm mcd80a.asm resbdos.asm utl1hst.asm \
|
||||
cpmldr.asm getf.asm mcd80f.asm rmac.com utl2trc.asm \
|
||||
crdef.plm get.plm minhlp.plm save.asm vers.lit \
|
||||
date.plm getrsx.asm mon.plm scan.lit xfcb.lit \
|
||||
datmod.asm getrsx.lib move.asm scan.plm \
|
||||
device.plm help.dat newpip.plm scb.asm \
|
||||
dirlbl.asm help.plm _opysys.asm search.lit runthames
|
||||
|
||||
|
||||
all: $(MCOMS) $(BDOS) cpmldr.rel help.hlp
|
||||
|
||||
zip: cpm3src_unix.zip cpm3bin_unix.zip
|
||||
|
||||
cpm3src_unix.zip: $(SOURCES)
|
||||
zip $@ $(SOURCES)
|
||||
|
||||
cpm3bin_unix.zip: $(BINARIES)
|
||||
zip $@ $(BINARIES)
|
||||
|
||||
############################################################################
|
||||
#
|
||||
# Build tools
|
||||
#
|
||||
hexcom: hexcom.c
|
||||
${CC} -o hexcom hexcom.c
|
||||
|
||||
hexpat: hexpat.c
|
||||
${CC} -o hexpat hexpat.c
|
||||
|
||||
##############################################################################
|
||||
#
|
||||
# Help
|
||||
#
|
||||
help.hlp: help.dat minhlp.com
|
||||
$(ZXCC) minhlp.com -[CREATE]
|
||||
#
|
||||
|
||||
|
||||
##############################################################################
|
||||
#
|
||||
# Specific build rules
|
||||
#
|
||||
# The redirection to CCPPHASE.* produces two lists of addresses (one in
|
||||
# CCP3.COM and one in LOADER3.PRL) which should match.
|
||||
#
|
||||
|
||||
loader3.rel: loader3.asm
|
||||
$(ZXCC) $(RMAC) loader3 >ccpphase.lst
|
||||
|
||||
ccp3.hex: ccp3.asm
|
||||
$(ZXCC) $(MAC) ccp3 >> ccpphase.lst
|
||||
|
||||
ccp.com: loader3d.tmp hexpat ccpdate.hex
|
||||
./hexpat $< $@ < ccpdate.hex
|
||||
|
||||
loader3d.tmp: loader3c.tmp hexpat ccp3.hex
|
||||
./hexpat $< $@ < ccp3.hex
|
||||
|
||||
loader3c.tmp: loader3a.tmp loader3b.tmp
|
||||
cat loader3a.tmp loader3b.tmp > $@
|
||||
|
||||
# Shave the header off loader3.prl to get the loader image
|
||||
loader3a.tmp: loader3.prl
|
||||
dd if=loader3.prl of=loader3a.tmp bs=128 skip=2
|
||||
|
||||
# This empty space will be overwritten by ccp3.hex
|
||||
loader3b.tmp:
|
||||
dd if=/dev/zero of=loader3b.tmp bs=128 count=19
|
||||
|
||||
dir.tra: dir.mod
|
||||
$(THAMES) :F3:locate $< code\(0100h\) stacksize\(50\) map print\($@\)
|
||||
|
||||
dir.mod: main80 scan search sort disp dpb80 util timest mcd80a.obj
|
||||
$(THAMES) :F3:link mcd80a.obj,main80,scan,search,sort,disp,util,dpb80,timest,:F1:plm80.lib to dir.mod
|
||||
|
||||
erase.mod: erase.obj parse.obj mcd80a.obj
|
||||
$(THAMES) :F3:link mcd80a.obj,parse.obj,$<,:F1:plm80.lib to $@
|
||||
|
||||
gencom.mod: gencom.obj parse.obj mcd80a.obj
|
||||
$(THAMES) :F3:link mcd80a.obj,parse.obj,$<,:F1:plm80.lib to $@
|
||||
|
||||
gencpm.mod: gencpm.obj setbuf.obj getdef.obj crdef.obj ldrlwr.obj \
|
||||
mcd80f.obj datmod.obj
|
||||
$(THAMES) :F3:link mcd80f.obj,$<,setbuf.obj,getdef.obj,crdef.obj,ldrlwr.obj,datmod.obj,:F1:plm80.lib to $@
|
||||
|
||||
get.mod: get.obj mcd80a.obj parse.obj getf.obj
|
||||
$(THAMES) :F3:link mcd80a.obj,$<,parse.obj,getf.obj,:F1:plm80.lib to $@
|
||||
|
||||
get.com: get.hex getrsx.rsx gencom.com hexcom
|
||||
./hexcom $@ <$<
|
||||
cp getrsx.rsx get.rsx
|
||||
$(ZXCC) gencom.com $@ get.rsx
|
||||
|
||||
get.rsx: getrsx.rel
|
||||
$(ZXCC) $(LINK) getrsx +-[OP]
|
||||
mv -f getrsx.prl $@
|
||||
|
||||
pip.mod: pip.obj mcd80f.obj inpout.obj
|
||||
$(THAMES) :F3:link mcd80f.obj,inpout.obj,$<,:F1:plm80.lib to $@
|
||||
|
||||
put.mod: put.obj mcd80a.obj parse.obj putf.obj
|
||||
$(THAMES) :F3:link mcd80a.obj,$<,parse.obj,putf.obj,:F1:plm80.lib to $@
|
||||
|
||||
put.com: put.hex put.rsx gencom.com hexcom
|
||||
./hexcom $@ <$<
|
||||
$(ZXCC) gencom.com $@ put.rsx
|
||||
|
||||
put.rsx: putrsx.rel
|
||||
$(ZXCC) $(LINK) putrsx +-[OP]
|
||||
mv -f putrsx.prl $@
|
||||
|
||||
save.com: save.rsx gencom.com
|
||||
rm -f $@
|
||||
$(ZXCC) gencom save +-[NULL]
|
||||
|
||||
set.com: set.hex dirlbl.rsx gencom.com hexcom
|
||||
./hexcom $@ <$<
|
||||
$(ZXCC) gencom.com $@ dirlbl.rsx
|
||||
|
||||
sid.com: hexpat sid.spr prs0mov.hex
|
||||
./hexpat sid.spr $@ <prs0mov.hex
|
||||
|
||||
submit.com: submit.hex subrsx.rsx gencom.com hexcom
|
||||
./hexcom $@ <$<
|
||||
cp subrsx.rsx sub.rsx
|
||||
$(ZXCC) gencom.com $@ sub.rsx
|
||||
|
||||
rename.mod: rename.obj parse.obj mcd80a.obj
|
||||
$(THAMES) :F3:link mcd80a.obj,$<,parse.obj,:F1:plm80.lib to $@
|
||||
|
||||
set.mod: set.obj parse.obj mcd80a.obj
|
||||
$(THAMES) :F3:link mcd80a.obj,parse.obj,$<,:F1:plm80.lib to $@
|
||||
|
||||
submit.mod: submit.obj parse.obj getf.obj mcd80a.obj
|
||||
$(THAMES) :F3:link mcd80a.obj,$<,parse.obj,getf.obj,:F1:plm80.lib to $@
|
||||
|
||||
type.mod: type.obj parse.obj mcd80a.obj
|
||||
$(THAMES) :F3:link mcd80a.obj,$<,parse.obj,:F1:plm80.lib to $@
|
||||
|
||||
|
||||
mcd80f.obj: mcd80f.asm
|
||||
$(THAMES) :F2:asm80 $<
|
||||
|
||||
|
||||
resbdos3.spr: resbdos.rel
|
||||
$(ZXCC) $(LINK) resbdos3 +-= +resbdos +-[os]
|
||||
|
||||
bdos3.spr: cpmbdosx.rel
|
||||
$(ZXCC) $(LINK) bdos3 +-= cpmbdosx +-[os]
|
||||
|
||||
bnkbdos3.spr: cpmbdos.rel
|
||||
$(ZXCC) $(LINK) bnkbdos3 +-= cpmbdos +-[os]
|
||||
|
||||
cpmbdosx.asm: cpmbdos1.asm conbdos.asm bdos30.asm makedate.lib
|
||||
cat cpmbdos1.asm conbdos.asm bdos30.asm > $@
|
||||
|
||||
cpmbdos.asm: cpmbdos2.asm conbdos.asm bdos30.asm makedate.lib
|
||||
cat cpmbdos2.asm conbdos.asm bdos30.asm > $@
|
||||
|
||||
# Bits of DIR
|
||||
main80: main80.plm
|
||||
$(THAMES) :F1:plm80 $< debug pagewidth\(130\) optimize object\($@\)
|
||||
|
||||
scan: scan.plm
|
||||
$(THAMES) :F1:plm80 $< debug pagewidth\(130\) optimize object\($@\)
|
||||
|
||||
search: search.plm
|
||||
$(THAMES) :F1:plm80 $< debug pagewidth\(130\) optimize object\($@\)
|
||||
|
||||
sort: sort.plm
|
||||
$(THAMES) :F1:plm80 $< debug pagewidth\(130\) optimize object\($@\)
|
||||
|
||||
disp: disp.plm
|
||||
$(THAMES) :F1:plm80 $< debug pagewidth\(130\) optimize object\($@\)
|
||||
|
||||
dpb80: dpb80.plm
|
||||
$(THAMES) :F1:plm80 $< debug pagewidth\(130\) optimize object\($@\)
|
||||
|
||||
util: util.plm
|
||||
$(THAMES) :F1:plm80 $< debug pagewidth\(130\) optimize object\($@\)
|
||||
|
||||
timest: timest.plm
|
||||
$(THAMES) :F1:plm80 $< debug pagewidth\(130\) optimize object\($@\)
|
||||
|
||||
##############################
|
||||
#
|
||||
# SID
|
||||
#
|
||||
sid.spr: prs1asm.rel prs2mon.rel
|
||||
$(ZXCC) $(LINK) sid.spr +-= +prs1asm +-, +prs2mon +-[OS]
|
||||
|
||||
prs0mov.hex: prs0mov.asm makedate.lib
|
||||
$(ZXCC) $(MAC) prs0mov
|
||||
|
||||
prs1asm.rel: prs1asm.asm
|
||||
$(ZXCC) $(RMAC) prs1asm
|
||||
|
||||
prs2mon.rel: prs2mon.asm
|
||||
$(ZXCC) $(RMAC) prs2mon
|
||||
|
||||
##############################################################################
|
||||
#
|
||||
# Generic build rules
|
||||
#
|
||||
|
||||
%.obj: %.asm
|
||||
$(THAMES) :F2:asm80 $< debug
|
||||
|
||||
|
||||
###########################################################################
|
||||
#
|
||||
# COM files from hex files
|
||||
#
|
||||
%.com: %.hex hexcom
|
||||
./hexcom $@ < $<
|
||||
|
||||
###########################################################################
|
||||
#
|
||||
# HEX files from asm source
|
||||
#
|
||||
%.hex: %.asm makedate.lib
|
||||
$(ZXCC) $(MAC) `basename $< .asm`
|
||||
|
||||
###########################################################################
|
||||
#
|
||||
# HEX files from PL/M source
|
||||
#
|
||||
%.hex: %.tra
|
||||
$(THAMES) :F3:objhex `basename $< .tra` to $@
|
||||
|
||||
# The "%.tra" rule also builds "%", which is what objhex actually uses, but
|
||||
# I couldn't get a bare % rule to work.
|
||||
%.tra: %.mod
|
||||
$(THAMES) :F3:locate $< code\(0100h\) stacksize\(100\) map print\($@\)
|
||||
|
||||
%.mod: %.obj mcd80a.obj
|
||||
$(THAMES) :F3:link mcd80a.obj,$<,:F1:plm80.lib to $@
|
||||
|
||||
%.obj: %.plm
|
||||
$(THAMES) :F1:plm80 $< optimize debug
|
||||
|
||||
|
||||
###########################################################################
|
||||
#
|
||||
# PRL and RSX files from .REL files
|
||||
#
|
||||
%.prl: %.rel
|
||||
$(ZXCC) $(LINK) `basename $< .rel` +-[OP]
|
||||
|
||||
%.spr: %.rel loader*.tmp
|
||||
$(ZXCC) $(LINK) `basename $< .rel` +-[OS]
|
||||
|
||||
%.rsx: %.rel
|
||||
$(ZXCC) $(LINK) `basename $< .rel` +-[OP]
|
||||
mv -f `basename $< .rel`.prl `basename $< .rel`.rsx
|
||||
|
||||
%.rel: %.asm
|
||||
$(ZXCC) $(RMAC) `basename $< .asm`
|
||||
|
||||
#
|
||||
#
|
||||
#
|
||||
clean:
|
||||
rm -f $(MCOMS) $(HEXS) $(BLKS) *.lst *.rel *.sym *.tra *.rsx *.spr \
|
||||
*.mod *.obj loader*.tmp help.hlp
|
||||
Reference in New Issue
Block a user