# OS-9 Level Two Vr. 3 Modules Makefile
#

include ../../Makefile.rules

DEPENDS		= ./Makefile

BOOTERS		= boot_1773 boot_rom boot_kenton boot_rampak boot_wd1002 boot_ide
KERNELS		= os9p1 os9p2
SYSMODS		= rel rominfo rom_vectors ioman init os9p3_perr os9p4_regdump \
		pakrom
CLOCKS		= clock clock2_soft clock2_disto clock2_146818
FMGRS		= scf.mn rbf.mn pipeman.mn pipeman_named.mn
DRIVERS		= cc3disk.dr cc3hdisk.dr cc3io.dr modpak.dr \
		vrn.dr piper.dr printer.dr parallel.dr sio.dr ram.dr sspak.dr \
		hdisk.dr sacia.dr dacia.dr s16550short.dr s16550large.dr \
		rampak.dr sdisk3_dmc.dr sdisk3_dpj.dr
IOSUBS		= windint.io vdgint.io cc3io.dr keydrv joydrv_joy \
		joydrv_6551L joydrv_6552L joydrv_6551M joydrv_6552M snddrv
DESCS		= d0_35s.dd d1_35s.dd d2_35s.dd d3_35s.dd \
		d0_40d.dd d1_40d.dd d2_40d.dd d0_80d.dd \
		d1_80d.dd d2_80d.dd ddd0_35s.dd ddd0_40d.dd \
		ddd0_80d.dd r0_8k.dd r0_96k.dd r0_128k.dd r0_192k.dd \
		ddr0_8k.dd ddr0_96k.dd ddr0_128k.dd ddr0_192k.dd \
		m1.dd m2.dd nil.dd p.dd pp.dd pipe.dd t1.dd t2_sacia.dd \
		t3_sacia.dd t2_dacia.dd t3_dacia.dd t2_s16550.dd \
		h0_10.dd h1_10.dd h0_15.dd h1_15.dd h0_35.dd h1_35.dd \
		ftdd.dd vi.dd ssp.dd h0_hdisk.dd r0_rampak256.dd \
		r1_rampak256.dd r0_rampak512.dd r1_rampak512.dd \
		d0_sdisk3_40d.dd d1_sdisk3_80d.dd term_t1.dd
WINDESCS	= term_vdg.dt term_win40.dt term_win80.dt w.dw w1.dw w2.dw \
		w3.dw w4.dw w5.dw w6.dw w7.dw v1.dw v2.dw v3.dw v4.dw v5.dw \
		v6.dw v7.dw
SYSGOS		= cc3go cc3go_rom

#
# The following macros represent a collection of modules for various
# kernel tracks and bootfile configurations.
#
KERNEL_1773	= rel boot_1773 os9p1
KERNEL_RAMPAK	= rel boot_rampak os9p1
KERNEL_KENTON	= rel boot_kenton os9p1
KERNEL_ROM	= rel boot_rom os9p1
KERNEL_IDE	= rel boot_ide os9p1
# These kernels are intended to be ROMmed in a disk controller or program pak
KERNEL_PAK_KENTON	= pakrom $(KERNEL_KENTON)

# OS-9 disk bootfile to allow booting from WD1773 disk controller
BOOTFILE_1773	= os9p2 ioman init rbf.mn cc3disk.dr d0_40d.dd \
		d1_80d.dd ddd0_40d.dd scf.mn cc3io.dr keydrv joydrv_joy \
		snddrv windint.io term_win80.dt w.dw w1.dw w2.dw w3.dw w4.dw \
		w5.dw w6.dw w7.dw pipeman.mn piper.dr pipe.dd clock \
		clock2_soft cc3go

# OS-9 ROM image to allow booting from WD1773 disk controller
BOOTFILE_1773_ROM = rominfo

# OS-9 ROM image to allow booting from ROM
BOOTFILE_ROM	= rominfo os9p2 init ioman \
		scf.mn sio.dr term_t1.dd \
		sspak.dr ssp.dd \
		clock clock2_soft cc3go_rom \
		../CMDS/shell ../CMDS/mdir ../CMDS/mfree ../CMDS/procs
#		../CMDS/shell ../CMDS/RunB coyota ../../subrtns/joystk

# OS-9 ROM image to allow booting from ROM
#BOOTFILE_ROM	= rominfo os9p2 init ioman \
#		scf.mn cc3io.dr keydrv snddrv vdgint.io term_vdg.dt \
#		sspak.dr ssp.dd \
#		clock clock2_soft cc3go_rom \
#		../CMDS/shell ../CMDS/mdir ../CMDS/mfree ../CMDS/procs

# OS-9 disk bootfile to allow booting from Ken-Ton SCSI controller
BOOTFILE_KENTON	= os9p2 ioman rbf.mn clock clock2_soft rampak.dr \
		r0_rampak256.dd cc3disk.dr d0_40d.dd \
		d1_80d.dd \
		../../drivers/scsisys22/scsisys_68_ktlr.dr \
		../../drivers/scsisys22/h0_ktlr.dd scf.mn cc3io.dr keydrv \
		joydrv_6551L s16550large.dr t2_s16550.dd \
		snddrv windint.io term_win80.dt w.dw w1.dw w2.dw w3.dw w4.dw \
		w5.dw w6.dw w7.dw pipeman.mn piper.dr pipe.dd init
		

ALLOBJS		= $(BOOTERS) $(KERNELS) $(SYSMODS) $(CLOCKS) $(FMGRS) \
		$(DRIVERS) $(IOSUBS) $(DESCS) $(WINDESCS) $(SYSGOS) \
		kernel_1773 kernel_rom kernel_kenton kernel_pak_kenton \
		bootfile_1773 kernel_rampak kernel_ide bootfile_1773_rom bootfile_rom \
		bootfile_kenton

all:	$(ALLOBJS)

# Special cases here
sacia.dr: xacia.asm
	$(AS) -aA6551=1 -aA6552=0 -aMPI.Slot=00 $(AFLAGS) $< $(ASOUT)$@
	
dacia.dr: xacia.asm
	$(AS) -aA6551=0 -aA6552=1 -aMPI.Slot=00 $(AFLAGS) $< $(ASOUT)$@



kernel_1773: $(KERNEL_1773) $(DEPENDS)
	cat $(KERNEL_1773)>$@

kernel_rampak: $(KERNEL_RAMPAK) $(DEPENDS)
	cat $(KERNEL_RAMPAK)>$@

kernel_rom: $(KERNEL_ROM) $(DEPENDS)
	cat $(KERNEL_ROM)>$@

kernel_kenton: $(KERNEL_KENTON) $(DEPENDS)
	cat $(KERNEL_KENTON)>$@

kernel_ide: $(KERNEL_IDE) $(DEPENDS)
	cat $(KERNEL_IDE)>$@

kernel_pak_kenton: $(KERNEL_PAK_KENTON) $(DEPENDS)
	cat $(KERNEL_PAK_KENTON)>$@
	padrom \$$2000 $@ -c=\$$FF

bootfile_1773: $(BOOTFILE_1773) $(DEPENDS)
	cat $(BOOTFILE_1773)>$@

bootfile_kenton: $(BOOTFILE_KENTON) $(DEPENDS)
	cat $(BOOTFILE_KENTON)>$@

# ROM image (32,768 bytes long) to burn into ROM on CoCo 3
bootfile_1773_rom: $(BOOTFILE_1773_ROM) $(DEPENDS) $(KERNEL_1773)
	cat $(BOOTFILE_1773_ROM)>$@
	padrom \$$6C00 $@ -c=\$$FF
	cat $(KERNEL_1773)>>$@
	padrom \$$7FF0 $@ -c=\$$FF
	cat rom_vectors>>$@

# ROM image (32,768 bytes long) to burn into ROM on CoCo 3
bootfile_rom: $(BOOTFILE_ROM) $(DEPENDS) $(KERNEL_ROM)
	cat $(BOOTFILE_ROM)>$@
	ls -l $@
	padrom \$$6C00 $@ -c=\$$FF
	cat $(KERNEL_ROM)>>$@
	padrom \$$7FF0 $@ -c=\$$FF
	cat rom_vectors>>$@

clean:
	$(RM) $(ALLOBJS)

