# makefile for generate XM7/EM7 compatible ROMs
# Copyright 2001 (C) Apollo. All rights reserved.

# make                Generate ROM files for the XM7
# make em7            Generate ROM files for the EM-7
# make clean          Delete intermediate files
# make clean-all      Delete entire files which generated by this makefile

ASM = X6809
AFLAGS = /L /Z /P /F /E

#.SILENT:
.SUFFIXES: .bin .mot .src .rom


.src.mot:
	$(ASM) $(AFLAGS) $*.src,$*.mot,$*.lst,$*.crf,$*.map

.mot.bin:
	mot2bin $*.mot $*.bin


ALL:	fbasic30.rom boot_bas.rom boot_dos.rom subsys_c.rom \
		initiate.rom subsys_a.rom subsys_b.rom subsyscg.rom kanji.rom \
		kanji2.rom dicrom.rom extsub.rom

EM7:	fb30sub.dat fb30rom1.dat fb30rom2.dat



CLEAN:
	del *.mot
	del *.lst
	del *.crf
	del *.map
	del *.bin


CLEAN-ALL:
	del *.rom
	del *.mot
	del *.lst
	del *.crf
	del *.map
	del *.bin
	del *.dat

CPY:
	COPY *.ROM C:\usr\xm7\v1

V1:
	COPY *.ROM ..\V1

#
# Make F-BASIC rom file
#
basic.bin : basic.mot

fbasic30.rom : basic.bin
	bincut $? $@ 8000 fbff

#
# Make BASIC mode boot loader
#
boot_bas.mot : bootrom.src
	$(ASM) $(AFLAGS) bootrom.src,$*.mot,$*.lst,$*.crf,$*.map /DIPLENT=256

boot_bas.rom : boot_bas.bin
	bincut boot_bas.bin boot_bas.rom fe00 ffff


#
# Make DOS mode boot loader
#
boot_dos.mot : bootrom.src
	$(ASM) $(AFLAGS) bootrom.src,$*.mot,$*.lst,$*.crf,$*.map /DIPLENT=768

boot_dos.rom : boot_dos.bin
	bincut boot_dos.bin boot_dos.rom fe00 ffff

#
# Genarate KANJI.ROM file
#
kanji.rom:
	krom.exe


#
# Generate FONT file
#
font.bin : font.txt
	fontgen font.txt font.bin

#
# Make Subsystem monitor (Type-C)
#
subsys_c.mot : subrom.src
	$(ASM) $(AFLAGS) subrom.src,$*.mot,$*.lst,$*.crf,$*.map /DSUBTYPE=0

subsys_c.rom : subsys_c.bin font.bin
	bincut subsys_c.bin subsys_c1.bin e000 ffff
	copy font.bin /b + subsys_c1.bin /b subsys_c.rom /b



#
# Make Subsystem monitor (Type-A)
#
subsys_a.mot : subrom.src
	$(ASM) $(AFLAGS) subrom.src,$*.mot,$*.lst,$*.crf,$*.map /DSUBTYPE=2

subsys_a.rom : subsys_a.bin
	bincut subsys_a.bin subsys_a.rom e000 ffff

#
# Make Subsystem monitor (Type-B)
#
subsys_b.mot : subrom.src
	$(ASM) $(AFLAGS) subrom.src,$*.mot,$*.lst,$*.crf,$*.map /DSUBTYPE=1

subsys_b.rom : subsys_b.bin
	bincut subsys_b.bin subsys_b.rom e000 ffff


#
# Make initiator
#
initiate.bin : initiate.mot

initiate2.bin : initiate.bin
	bincut initiate.bin initiate2.bin 6000 6fff
	copy /Y initiate2.bin initiate.bin

initiate.rom : initiate2.bin boot_bas.rom boot_dos.rom
	seven2av -compatiblerom


#
# Generate subsys_a.rom file
#
#subsys_a.rom : subsys_c.rom
#	seven2av -compatiblerom


#
# Generate subsys_b.rom file
#
#subsys_b.rom : subsys_c.rom
#	seven2av -compatiblerom


#
# Generate subsyscg.rom file
#
subsyscg.rom : subsys_c.rom
	seven2av -compatiblerom


#
# Generate dummy kanji2.rom file
#
kanji2.rom :
	dmygen kanji2.rom 20000


#
# Generate dummy dicrom.rom file
#
dicrom.rom :
	dmygen dicrom.rom 40000


#
# Generate dummy extsub.rom file
#
extsub.rom :
	dmygen extsub.rom c000


#
# Generate FB30SUB.DAT for EM-7
#
fb30sub.dat : subsys_c.rom
	copy subsys_c.rom fb30sub.dat

#
# Generate FB30ROM1.DAT for EM-7
#
fb30rom1.dat : fbasic30.rom
	copy fbasic30.rom fb30rom1.dat

#
# Generate FB30ROM2.DAT for EM-7
#
fb30rom2.dat : boot_bas.rom
	copy boot_bas.rom fb30rom2.dat
