# OS-9 Level One Vr. 2.00 Modules Makefile
#

include ../../Makefile.rules

DEPENDS		= ./Makefile

BOOTERS		= oscode boot_1773 boot_rom rom_vectors
KERNELS		= os9 os9p2
SYSMODS		= rominfo ioman init
CLOCKS		= clock.60hz clock.50hz
FMGRS		= scf.mn rbf.mn pipeman.mn
DRIVERS		= aciapak.dr cchdisk.dr ccdisk.dr modpak.dr nildrv.dr \
		piper.dr printer.dr rs232.dr sscpak.dr ccio.dr ../../drivers/ide/ccide.dr
IOSUBS		= co32.io co80.io grfo.io
DESCS		= d0.dd d1.dd d2.dd d3.dd h0_15.dd h1_15.dd h0_35.dd \
		h1_35.dd m1.dd m2.dd nil.dd p.dd pipe.dd ssc.dd t1.dd \
		t2.dd t3.dd term32.dd term80.dd ../../drivers/ide/h0_ide.dd
SYSGOS		= sysgo sysgo_rom
ALLOBJS		= $(BOOTERS) $(KERNELS) $(SYSMODS) $(CLOCKS) $(FMGRS) \
		$(DRIVERS) $(IOSUBS) $(DESCS) $(SYSGOS)

KERNEL_1773	= oscode os9 os9p2 init boot_1773
KERNEL_ROM	= oscode os9 os9p2 init boot_rom
BOOTFILE_ROM    = rominfo ioman scf.mn ccio.dr co32.io term32.dd \
		sscpak.dr ssc.dd clock.60hz sysgo_rom ../CMDS/shell ../CMDS/echo \
		../CMDS/mdir ../../myapps/toyota
BOOTFILE_1773   = ioman rbf.mn ccdisk.dr d0.dd d1.dd scf.mn ccio.dr co32.io \
		term32.dd printer.dr p.dd rs232.dr t1.dd pipeman.mn piper.dr \
		pipe.dd clock.60hz sysgo ../CMDS/shell
BOOTFILE_IDE    = ioman rbf.mn ../../drivers/ide/ccide.dr ../../drivers/ide/h0_ide.dd \
		../../drivers/sdisk/sdisk.dr ../../drivers/sdisk/d0_40d.dd \
		scf.mn ccio.dr co32.io term32.dd clock.60hz \
		 sysgo ../CMDS/shell

all:	$(ALLOBJS) kernel_rom kernel_1773 bootfile_rom bootfile_1773 bootfile_ide

# Kernel track for OS-9 in ROM on a CoCo
kernel_rom: $(KERNEL_ROM) $(DEPENDS)
	cat $(KERNEL_ROM)>kernel_rom
	padrom \$$1200 $@ -c=\$$E5

# Kernel track for Tandy/RS controller (WD1773)
kernel_1773: $(KERNEL_1773) $(DEPENDS)
	cat $(KERNEL_1773)>kernel_1773
	padrom \$$1200 $@ -c=\$$E5

# WD1773 Disk boot
bootfile_1773: $(BOOTFILE_1773) $(DEPENDS)
	cat $(BOOTFILE_1773)>$@

# Glenside IDE boot
bootfile_ide: $(BOOTFILE_IDE) $(DEPENDS)
	cat $(BOOTFILE_IDE)>$@

# ROM image (16,384 bytes long) to burn into ROM on a CoCo
bootfile_rom: $(BOOTFILE_ROM) $(DEPENDS) kernel_rom
	cat $(BOOTFILE_ROM)>$@
	padrom \$$2E00 $@ -c=\$$FF
	cat $(KERNEL_ROM)>>$@
	padrom \$$3FF0 $@ -c=\$$FF
	cat rom_vectors>>$@

clean:
	$(RM) $(ALLOBJS)

