changeset 2690:6e40b043d3e0 lwtools-port

Removed coco port, added coco1 and coco2 ports. Cleaned term* descriptors to make unified between Level 1 and Level 2
author Boisy Pitre <boisy.pitre@nuance.com>
date Thu, 19 Jul 2012 10:09:15 -0500
parents 80d85940d03b
children 678c6848dc12
files defs/dragon.d level1/coco/bootfiles/defsfile level1/coco/bootfiles/makefile level1/coco/bootlists/dw3.bl level1/coco/bootlists/dw3_coco1.bl level1/coco/bootlists/standard.bl level1/coco/bootroms/makefile level1/coco/cmds/defsfile level1/coco/cmds/makefile level1/coco/defs/defsfile.asm level1/coco/defs/makefile level1/coco/defsfile level1/coco/diskfix.pat level1/coco/makefile level1/coco/modules/defsfile level1/coco/modules/kernel/defsfile level1/coco/modules/kernel/makefile level1/coco/modules/makefile level1/coco/scripts/mb.dw3 level1/coco/scripts/mb.dw3_coco1 level1/coco/scripts/mb.floppy level1/coco/startup level1/coco/startup.dw level1/coco/sys/makefile level1/coco/v2bugs.txt level1/coco1/bootfiles/defsfile level1/coco1/bootfiles/makefile level1/coco1/bootlists/dw3.bl level1/coco1/bootlists/standard.bl level1/coco1/bootroms/makefile level1/coco1/cmds/defsfile level1/coco1/cmds/makefile level1/coco1/defs/defsfile.asm level1/coco1/defs/makefile level1/coco1/defsfile level1/coco1/makefile level1/coco1/modules/defsfile level1/coco1/modules/kernel/defsfile level1/coco1/modules/kernel/makefile level1/coco1/modules/makefile level1/coco1/scripts/mb.dw3 level1/coco1/scripts/mb.floppy level1/coco1/startup level1/coco1/startup.dw level1/coco1/sys/makefile level1/coco2/bootfiles/defsfile level1/coco2/bootfiles/makefile level1/coco2/bootlists/dw3.bl level1/coco2/bootlists/standard.bl level1/coco2/bootroms/makefile level1/coco2/cmds/defsfile level1/coco2/cmds/makefile level1/coco2/defs/defsfile.asm level1/coco2/defs/makefile level1/coco2/defsfile level1/coco2/makefile level1/coco2/modules/defsfile level1/coco2/modules/kernel/defsfile level1/coco2/modules/kernel/makefile level1/coco2/modules/makefile level1/coco2/scripts/mb.dw3 level1/coco2/scripts/mb.floppy level1/coco2/startup level1/coco2/startup.dw level1/coco2/sys/makefile level1/d64/bootfiles/makefile level1/d64/bootlists/standard.bl level1/d64/modules/makefile level1/dalpha/bootfiles/makefile level1/dalpha/bootlists/standard.bl level1/dalpha/modules/makefile level1/makefile level1/modules/co80.asm level1/modules/rel.asm level1/modules/scdwn.asm level1/modules/scdwndesc.asm level1/modules/scdwv.asm level1/modules/scdwvdesc.asm level1/modules/term32.asm level1/modules/term51.asm level1/modules/term80.asm level1/modules/term_80.asm level1/modules/term_hr.asm level1/modules/term_vdg.asm level1/tano/bootfiles/makefile level1/tano/bootlists/standard.bl level1/tano/modules/makefile level2/modules/term_vdg.asm
diffstat 88 files changed, 4053 insertions(+), 3184 deletions(-) [+]
line wrap: on
line diff
--- a/defs/dragon.d	Wed Jul 18 20:28:37 2012 -0500
+++ b/defs/dragon.d	Thu Jul 19 10:09:15 2012 -0500
@@ -61,6 +61,18 @@
 RIGHTBIT       EQU       %01000000
 SPACEBIT       EQU       %10000000
 
+******************
+* VDG Devices
+*
+A.TermV        SET       $FFC0               VDG Term
+A.V1           SET       $FFC1               Possible additional VDG Devices
+A.V2           SET       $FFC2
+A.V3           SET       $FFC3
+A.V4           SET       $FFC4
+A.V5           SET       $FFC5
+A.V6           SET       $FFC6
+A.V7           SET       $FFC7
+
 ********************
 * VTIO Static Memory
 *
--- a/level1/coco/bootfiles/defsfile	Wed Jul 18 20:28:37 2012 -0500
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,2 +0,0 @@
-          use    ../defsfile
-          use    scfdefs
--- a/level1/coco/bootfiles/makefile	Wed Jul 18 20:28:37 2012 -0500
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,258 +0,0 @@
-PORT = coco
-include $(NITROS9DIR)/rules.mak
-
-# Module directory
-MD		= ../modules
-# Commands directory
-CD		= ../cmds
-
-DEPENDS		= ./makefile
-
-KERNEL_1773	= $(MD)/rel $(MD)/krn $(MD)/krnp2 $(MD)/init \
-		$(MD)/boot_1773_6ms
-
-KERNEL_DW3_COCO1	= $(MD)/rel $(MD)/krn $(MD)/krnp2 $(MD)/init \
-		$(MD)/boot_dw3_coco1
-
-KERNEL_DW3_COCO2	= $(MD)/rel $(MD)/krn $(MD)/krnp2 $(MD)/init \
-		$(MD)/boot_dw3
-
-IDE		= $(3PD)/ide
-SCSI		= $(3PD)/scsisys
-
-BOOTFILE_COVDG	= $(MD)/ioman \
-		$(MD)/rbf.mn $(MD)/rb1773.dr \
-		$(MD)/d0_40d.dd $(MD)/d1_40d.dd $(MD)/d2_40d.dd \
-		$(MD)/ddd0_40d.dd \
-		$(MD)/scf.mn \
-		$(MD)/vtio.dr $(MD)/covdg.io $(MD)/term32.dt \
-		$(MD)/scbbp.dr $(MD)/p_scbbp.dd \
-		$(MD)/scbbt.dr $(MD)/t1_scbbt.dd \
-		$(MD)/pipeman.mn $(MD)/piper.dr $(MD)/pipe.dd \
-		$(MD)/clock_60hz $(MD)/clock2_soft \
-		$(MD)/sysgo_dd
-
-BOOTFILE_COHR	= $(MD)/ioman \
-		$(MD)/rbf.mn $(MD)/rb1773.dr \
-		$(MD)/d0_40d.dd $(MD)/d1_40d.dd $(MD)/d2_40d.dd \
-		$(MD)/ddd0_40d.dd \
-		$(MD)/scf.mn \
-		$(MD)/vtio.dr $(MD)/cohr.io $(MD)/term51.dt \
-		$(MD)/scbbp.dr $(MD)/p_scbbp.dd \
-		$(MD)/scbbt.dr $(MD)/t1_scbbt.dd \
-		$(MD)/pipeman.mn $(MD)/piper.dr $(MD)/pipe.dd \
-		$(MD)/clock_60hz $(MD)/clock2_soft \
-		$(MD)/sysgo_dd
-
-BOOTFILE_COWP	= $(MD)/ioman \
-		$(MD)/rbf.mn $(MD)/rb1773.dr \
-		$(MD)/d0_40d.dd $(MD)/d1_40d.dd $(MD)/d2_40d.dd \
-		$(MD)/ddd0_40d.dd \
-		$(MD)/scf.mn \
-		$(MD)/vtio.dr $(MD)/cowp.io $(MD)/term80.dt \
-		$(MD)/scbbp.dr $(MD)/p_scbbp.dd \
-		$(MD)/scbbt.dr $(MD)/t1_scbbt.dd \
-		$(MD)/pipeman.mn $(MD)/piper.dr $(MD)/pipe.dd \
-		$(MD)/clock_60hz $(MD)/clock2_soft \
-		$(MD)/sysgo_dd
-
-BOOTFILE_HEADLESS_DW3_COCO1	= $(MD)/ioman \
-		$(MD)/rbf.mn \
-		$(MD)/rbdw3.dr $(MD)/dw3_coco1.sb \
-		$(MD)/ddx0.dd $(MD)/x1.dd $(MD)/x2.dd $(MD)/x3.dd \
-		$(MD)/scf.mn \
-		$(MD)/scdwn.dr \
-		$(MD)/n_scdwn.dd $(MD)/n1_scdwn.dd $(MD)/n2_scdwn.dd \
-		$(MD)/n3_scdwn.dd $(MD)/n4_scdwn.dd $(MD)/n5_scdwn.dd \
-		$(MD)/n6_scdwn.dd $(MD)/n7_scdwn.dd $(MD)/n8_scdwn.dd \
-		$(MD)/n9_scdwn.dd $(MD)/n10_scdwn.dd $(MD)/n11_scdwn.dd \
-		$(MD)/n12_scdwn.dd $(MD)/n13_scdwn.dd $(MD)/midi_scdwn.dd \
-		$(MD)/term_z_scdwn.dd \
-		$(MD)/z1_scdwn.dd $(MD)/z2_scdwn.dd $(MD)/z3_scdwn.dd \
-		$(MD)/z4_scdwn.dd $(MD)/z5_scdwn.dd $(MD)/z6_scdwn.dd \
-		$(MD)/z7_scdwn.dd \
-		$(MD)/scdwp.dr $(MD)/p_scdwp.dd \
-		$(MD)/pipeman.mn $(MD)/piper.dr $(MD)/pipe.dd \
-		$(MD)/clock_60hz $(MD)/clock2_dw3 \
-		$(MD)/sysgo_dd
-
-BOOTFILE_COVDG_DW3_COCO1	= $(MD)/ioman \
-		$(MD)/rbf.mn $(MD)/rb1773.dr \
-		$(MD)/d0_80d.dd $(MD)/d1_40d.dd $(MD)/d2_40d.dd \
-		$(MD)/rbdw3.dr $(MD)/dw3_coco1.sb \
-		$(MD)/ddx0.dd $(MD)/x1.dd $(MD)/x2.dd $(MD)/x3.dd \
-		$(MD)/scf.mn \
-		$(MD)/vtio.dr $(MD)/covdg.io $(MD)/term32.dt \
-		$(MD)/scdwn.dr \
-		$(MD)/n_scdwn.dd $(MD)/n1_scdwn.dd $(MD)/n2_scdwn.dd \
-		$(MD)/n3_scdwn.dd $(MD)/n4_scdwn.dd $(MD)/n5_scdwn.dd \
-		$(MD)/n6_scdwn.dd $(MD)/n7_scdwn.dd $(MD)/n8_scdwn.dd \
-		$(MD)/n9_scdwn.dd $(MD)/n10_scdwn.dd $(MD)/n11_scdwn.dd \
-		$(MD)/n12_scdwn.dd $(MD)/n13_scdwn.dd $(MD)/midi_scdwn.dd \
-		$(MD)/z1_scdwn.dd $(MD)/z2_scdwn.dd $(MD)/z3_scdwn.dd \
-		$(MD)/z4_scdwn.dd $(MD)/z5_scdwn.dd $(MD)/z6_scdwn.dd \
-		$(MD)/z7_scdwn.dd \
-		$(MD)/scdwp.dr $(MD)/p_scdwp.dd \
-		$(MD)/pipeman.mn $(MD)/piper.dr $(MD)/pipe.dd \
-		$(MD)/clock_60hz $(MD)/clock2_dw3 \
-		$(MD)/sysgo_dd
-		
-BOOTFILE_HEADLESS_DW3_COCO2	= $(MD)/ioman \
-		$(MD)/rbf.mn \
-		$(MD)/rbdw3.dr $(MD)/dw3.sb \
-		$(MD)/ddx0.dd $(MD)/x1.dd $(MD)/x2.dd $(MD)/x3.dd \
-		$(MD)/scf.mn \
-		$(MD)/scdwn.dr \
-		$(MD)/n_scdwn.dd $(MD)/n1_scdwn.dd $(MD)/n2_scdwn.dd \
-		$(MD)/n3_scdwn.dd $(MD)/n4_scdwn.dd $(MD)/n5_scdwn.dd \
-		$(MD)/n6_scdwn.dd $(MD)/n7_scdwn.dd $(MD)/n8_scdwn.dd \
-		$(MD)/n9_scdwn.dd $(MD)/n10_scdwn.dd $(MD)/n11_scdwn.dd \
-		$(MD)/n12_scdwn.dd $(MD)/n13_scdwn.dd $(MD)/midi_scdwn.dd \
-		$(MD)/term_z_scdwn.dd \
-		$(MD)/z1_scdwn.dd $(MD)/z2_scdwn.dd $(MD)/z3_scdwn.dd \
-		$(MD)/z4_scdwn.dd $(MD)/z5_scdwn.dd $(MD)/z6_scdwn.dd \
-		$(MD)/scdwp.dr $(MD)/p_scdwp.dd \
-		$(MD)/pipeman.mn $(MD)/piper.dr $(MD)/pipe.dd \
-		$(MD)/clock_60hz $(MD)/clock2_dw3 \
-		$(MD)/sysgo_dd
-
-BOOTFILE_COVDG_DW3_COCO2	= $(MD)/ioman \
-		$(MD)/rbf.mn $(MD)/rb1773.dr \
-		$(MD)/d0_80d.dd $(MD)/d1_40d.dd $(MD)/d2_40d.dd \
-		$(MD)/rbdw3.dr $(MD)/dw3.sb \
-		$(MD)/ddx0.dd $(MD)/x1.dd $(MD)/x2.dd $(MD)/x3.dd \
-		$(MD)/scf.mn \
-		$(MD)/vtio.dr $(MD)/covdg.io $(MD)/term32.dt \
-		$(MD)/scdwn.dr \
-		$(MD)/n_scdwn.dd $(MD)/n1_scdwn.dd $(MD)/n2_scdwn.dd \
-		$(MD)/n3_scdwn.dd $(MD)/n4_scdwn.dd $(MD)/n5_scdwn.dd \
-		$(MD)/n6_scdwn.dd $(MD)/n7_scdwn.dd $(MD)/n8_scdwn.dd \
-		$(MD)/n9_scdwn.dd $(MD)/n10_scdwn.dd $(MD)/n11_scdwn.dd \
-		$(MD)/n12_scdwn.dd $(MD)/n13_scdwn.dd $(MD)/midi_scdwn.dd \
-		$(MD)/z1_scdwn.dd $(MD)/z2_scdwn.dd $(MD)/z3_scdwn.dd \
-		$(MD)/z4_scdwn.dd $(MD)/z5_scdwn.dd $(MD)/z6_scdwn.dd \
-		$(MD)/z7_scdwn.dd \
-		$(MD)/scdwp.dr $(MD)/p_scdwp.dd \
-		$(MD)/pipeman.mn $(MD)/piper.dr $(MD)/pipe.dd \
-		$(MD)/clock_60hz $(MD)/clock2_dw3 \
-		$(MD)/sysgo_dd
-
-BOOTFILE_COVDG_DS80	= $(MD)/ioman \
-		$(MD)/rbf.mn $(MD)/rb1773.dr \
-		$(MD)/d0_80d.dd $(MD)/d1_40d.dd $(MD)/d2_40d.dd \
-		$(MD)/ddd0_80d.dd \
-		$(MD)/scf.mn \
-		$(MD)/vtio.dr $(MD)/covdg.io $(MD)/term32.dt \
-		$(MD)/scbbp.dr $(MD)/p_scbbp.dd \
-		$(MD)/scbbt.dr $(MD)/t1_scbbt.dd \
-		$(MD)/pipeman.mn $(MD)/piper.dr $(MD)/pipe.dd \
-		$(MD)/clock_60hz $(MD)/clock2_soft \
-		$(MD)/sysgo_dd
-
-BOOTFILE_COHR_DW3_COCO1	= $(MD)/ioman \
-		$(MD)/rbf.mn $(MD)/rb1773.dr \
-		$(MD)/d0_80d.dd $(MD)/d1_40d.dd $(MD)/d2_40d.dd \
-		$(MD)/rbdw3.dr $(MD)/dw3_coco1.sb \
-		$(MD)/ddx0.dd $(MD)/x1.dd $(MD)/x2.dd $(MD)/x3.dd \
-		$(MD)/scf.mn \
-		$(MD)/vtio.dr $(MD)/cohr.io $(MD)/term51.dt \
-		$(MD)/scdwn.dr \
-		$(MD)/n_scdwn.dd $(MD)/n1_scdwn.dd $(MD)/n2_scdwn.dd \
-		$(MD)/n3_scdwn.dd $(MD)/n4_scdwn.dd $(MD)/n5_scdwn.dd \
-		$(MD)/n6_scdwn.dd $(MD)/n7_scdwn.dd $(MD)/n8_scdwn.dd \
-		$(MD)/n9_scdwn.dd $(MD)/n10_scdwn.dd $(MD)/n11_scdwn.dd \
-		$(MD)/n12_scdwn.dd $(MD)/n13_scdwn.dd $(MD)/midi_scdwn.dd \
-		$(MD)/scdwp.dr $(MD)/p_scdwp.dd \
-		$(MD)/pipeman.mn $(MD)/piper.dr $(MD)/pipe.dd \
-		$(MD)/clock_60hz $(MD)/clock2_dw3 \
-		$(MD)/sysgo_dd
-
-BOOTFILE_COHR_DW3_COCO2	= $(MD)/ioman \
-		$(MD)/rbf.mn $(MD)/rb1773.dr \
-		$(MD)/d0_80d.dd $(MD)/d1_40d.dd $(MD)/d2_40d.dd \
-		$(MD)/rbdw3.dr $(MD)/dw3.sb \
-		$(MD)/ddx0.dd $(MD)/x1.dd $(MD)/x2.dd $(MD)/x3.dd \
-		$(MD)/scf.mn \
-		$(MD)/vtio.dr $(MD)/cohr.io $(MD)/term51.dt \
-		$(MD)/scdwn.dr \
-		$(MD)/n_scdwn.dd $(MD)/n1_scdwn.dd $(MD)/n2_scdwn.dd \
-		$(MD)/n3_scdwn.dd $(MD)/n4_scdwn.dd $(MD)/n5_scdwn.dd \
-		$(MD)/n6_scdwn.dd $(MD)/n7_scdwn.dd $(MD)/n8_scdwn.dd \
-		$(MD)/n9_scdwn.dd $(MD)/n10_scdwn.dd $(MD)/n11_scdwn.dd \
-		$(MD)/n12_scdwn.dd $(MD)/n13_scdwn.dd $(MD)/midi_scdwn.dd \
-		$(MD)/scdwp.dr $(MD)/p_scdwp.dd \
-		$(MD)/pipeman.mn $(MD)/piper.dr $(MD)/pipe.dd \
-		$(MD)/clock_60hz $(MD)/clock2_dw3 \
-		$(MD)/sysgo_dd
-
-BOOTFILE_COHR_DS80	= $(MD)/ioman \
-		$(MD)/rbf.mn $(MD)/rb1773.dr \
-		$(MD)/d0_80d.dd $(MD)/d1_40d.dd $(MD)/d2_40d.dd \
-		$(MD)/ddd0_80d.dd \
-		$(MD)/scf.mn \
-		$(MD)/vtio.dr $(MD)/cohr.io $(MD)/term51.dt \
-		$(MD)/scbbp.dr $(MD)/p_scbbp.dd \
-		$(MD)/scbbt.dr $(MD)/t1_scbbt.dd \
-		$(MD)/pipeman.mn $(MD)/piper.dr $(MD)/pipe.dd \
-		$(MD)/clock_60hz $(MD)/clock2_soft \
-		$(MD)/sysgo_dd
-
-BOOTFILES	= bootfile_covdg bootfile_cohr bootfile_covdg_dw3_coco1 bootfile_covdg_dw3_coco2 \
-		bootfile_headless_dw3_coco1 bootfile_headless_dw3_coco2 \
-		bootfile_cohr_dw3_coco1 bootfile_cohr_dw3_coco2 bootfile_covdg_ds80 bootfile_cohr_ds80
-KERNELS		= kernel_1773 kernel_dw3_coco1 kernel_dw3_coco2
-
-ALLOBJS		= $(BOOTFILES) $(KERNELS)
-
-all:	$(ALLOBJS)
-
-bootfile_covdg: $(BOOTFILE_COVDG) $(DEPENDS)
-	$(MERGE) $(BOOTFILE_COVDG)>$@
-
-bootfile_cohr: $(BOOTFILE_COHR) $(DEPENDS)
-	$(MERGE) $(BOOTFILE_COHR)>$@
-
-bootfile_cowp: $(BOOTFILE_COWP) $(DEPENDS)
-	$(MERGE) $(BOOTFILE_COWP)>$@
-
-bootfile_covdg_ds80: $(BOOTFILE_COVDG_DS80) $(DEPENDS)
-	$(MERGE) $(BOOTFILE_COVDG_DS80)>$@
-
-bootfile_headless_dw3_coco1: $(BOOTFILE_HEADLESS_DW3_COCO1) $(DEPENDS)
-	$(MERGE) $(BOOTFILE_HEADLESS_DW3_COCO1)>$@
-
-bootfile_covdg_dw3_coco1: $(BOOTFILE_COVDG_DW3_COCO1) $(DEPENDS)
-	$(MERGE) $(BOOTFILE_COVDG_DW3_COCO1)>$@
-
-bootfile_headless_dw3_coco2: $(BOOTFILE_HEADLESS_DW3_COCO2) $(DEPENDS)
-	$(MERGE) $(BOOTFILE_HEADLESS_DW3_COCO2)>$@
-
-bootfile_covdg_dw3_coco2: $(BOOTFILE_COVDG_DW3_COCO2) $(DEPENDS)
-	$(MERGE) $(BOOTFILE_COVDG_DW3_COCO2)>$@
-
-bootfile_cohr_ds80: $(BOOTFILE_COHR_DS80) $(DEPENDS)
-	$(MERGE) $(BOOTFILE_COHR_DS80)>$@
-
-bootfile_cohr_dw3_coco1: $(BOOTFILE_COHR_DW3_COCO1) $(DEPENDS)
-	$(MERGE) $(BOOTFILE_COHR_DW3_COCO1)>$@
-
-bootfile_cohr_dw3_coco2: $(BOOTFILE_COHR_DW3_COCO2) $(DEPENDS)
-	$(MERGE) $(BOOTFILE_COHR_DW3_COCO2)>$@
-
-# WD1773 Kernel
-kernel_1773: $(KERNEL_1773) $(DEPENDS)
-	$(MERGE) $(KERNEL_1773)>$@
-	$(PADROM) 4608 $@
-
-# DriveWire 3 Kernel
-kernel_dw3_coco1: $(KERNEL_DW3_COCO1) $(DEPENDS)
-	$(MERGE) $(KERNEL_DW3_COCO1)>$@
-	$(PADROM) 4608 $@
-
-kernel_dw3_coco2: $(KERNEL_DW3_COCO2) $(DEPENDS)
-	$(MERGE) $(KERNEL_DW3_COCO2)>$@
-	$(PADROM) 4608 $@
-
-clean:
-	$(RM) $(ALLOBJS)
-
--- a/level1/coco/bootlists/dw3.bl	Wed Jul 18 20:28:37 2012 -0500
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,191 +0,0 @@
-***************************************
-* NitrOS-9 Level 1 CoCo Bootlist
-*
-* $Id$
-*
-* This bootlist is presented as an example for creating custom bootfiles.
-* A module may be excluded from the bootfile if an asterisk (*) is the
-* first character of the line.
-*
-***************************************
-* Kernel/System Section
-*
-* These modules are mandatory.
-../MODULES/SYSMODS/ioman
-*
-***************************************
-* CDF Section (HawkSoft)
-*
-*../MODULES/CDF/cdf.mn
-*
-* CDF descriptors - select as needed
-* SCSI descriptors (IDs 0-6)
-*../MODULES/CDF/sc0.dd
-*../MODULES/CDF/sc1.dd
-*../MODULES/CDF/sc2.dd
-*../MODULES/CDF/sc3.dd
-*../MODULES/CDF/sc4.dd
-*../MODULES/CDF/sc5.dd
-*../MODULES/CDF/sc6.dd
-* IDE descriptors (master/slave)
-*../MODULES/CDF/ic0.dd
-*../MODULES/CDF/ic1.dd
-*
-***************************************
-* RBF Section
-*
-../MODULES/RBF/rbf.mn
-*
-* DriveWire 3 RBF driver 
-../MODULES/RBF/rbdw3.dr
-../MODULES/RBF/dw3.sb
-*../MODULES/RBF/dw3_coco1.sb
-* DriveWire descriptors - select as needed
-../MODULES/RBF/ddx0.dd
-*../MODULES/RBF/x0.dd
-../MODULES/RBF/x1.dd
-../MODULES/RBF/x2.dd
-../MODULES/RBF/x3.dd
-*
-* SuperDriver Package
-*../MODULES/RBF/rbsuper.dr
-* Select Low level SCSI and/or IDE driver
-*../MODULES/RBF/lltc3.dr
-*../MODULES/RBF/llide.dr
-* SuperDriver descriptors - select as needed
-* TC^3 SCSI DD Descriptor (ID 0)
-*../MODULES/RBF/dds0_tc3.dd
-* TC^3 SCSI descriptors (IDs 0-6)
-*../MODULES/RBF/s0_tc3.dd
-*../MODULES/RBF/s1_tc3.dd
-*../MODULES/RBF/s2_tc3.dd
-*../MODULES/RBF/s3_tc3.dd
-*../MODULES/RBF/s4_tc3.dd
-*../MODULES/RBF/s5_tc3.dd
-*../MODULES/RBF/s6_tc3.dd
-* TC^3 SCSI HDB-DOS descriptor
-*../MODULES/RBF/sh_tc3.dd
-* IDE DD descriptor (Master)
-*../MODULES/RBF/ddi0_ide.dd
-* IDE descriptors (master/slave)
-*../MODULES/RBF/i0_ide.dd
-*../MODULES/RBF/i1_ide.dd
-* IDE HDB-DOS descriptor
-*../MODULES/RBF/ih_ide.dd
-*
-* WD1773 floppy support for Tandy and compatible disk controllers
-../MODULES/RBF/rb1773.dr
-* WD1773 floppy support for Disto Super Controller II
-*../MODULES/RBF/rb1773_scii_ff74.dr
-*../MODULES/RBF/rb1773_scii_ff58.dr
-* Floppy device descriptors
-* DD - default device - choose one if needed
-*../MODULES/RBF/ddd0_35s.dd
-*../MODULES/RBF/ddd0_40d.dd
-*../MODULES/RBF/ddd0_80d.dd
-* D0 - drive 0 - choose one if needed
-*../MODULES/RBF/d0_35s.dd
-../MODULES/RBF/d0_40d.dd
-*../MODULES/RBF/d0_80d.dd
-* D1 - drive 1 - choose one if needed
-*../MODULES/RBF/d1_35s.dd
-../MODULES/RBF/d1_40d.dd
-*../MODULES/RBF/d1_80d.dd
-* D2 - drive 2 - choose one if needed
-*../MODULES/RBF/d2_35s.dd
-../MODULES/RBF/d2_40d.dd
-*../MODULES/RBF/d2_80d.dd
-* D3 - drive 3 - choose if needed
-*../MODULES/RBF/d3_35s.dd
-***************************************
-* SCF Section
-*
-../MODULES/SCF/scf.mn
-*
-* Video Terminal I/O driver and subroutine modules
-../MODULES/SCF/vtio.dr
-* Choose from CoVDG (32x16 VDG) or CoHR (Hi-Res 51x24 graphics screen)
-../MODULES/SCF/covdg.io
-*../MODULES/SCF/cohr.io
-*
-* Select only one term descriptor
-../MODULES/SCF/term32.dt
-*../MODULES/SCF/term51.dt
-*../MODULES/SCF/term_scbbt.dt
-*../MODULES/SCF/term_sc6551.dt
-*
-* Serial port drivers
-* CoCo Bit-Banger terminal port
-*../MODULES/SCF/scbbt.dr
-*../MODULES/SCF/t1_scbbt.dd
-* 6551 ACIA
-*../MODULES/SCF/sc6551.dr
-*../MODULES/SCF/t2_sc6551.dd
-*../MODULES/SCF/t3_sc6551.dd
-*
-* Printer drivers
-* ../MODULES/SCF/scbbp.dr
-* ../MODULES/SCF/p_scbbp.dd
-*
-* DriveWire 3 Printer drivers
-* ../MODULES/SCF/scdwp.dr
-* ../MODULES/SCF/p_scdwp.dd
-*
-* DriveWire Networking
-*../MODULES/SCF/scdwn.dr
-*../MODULES/SCF/term_scdwn.dt
-*../MODULES/SCF/n_scdwn.dd
-*../MODULES/SCF/n1_scdwn.dd
-*../MODULES/SCF/n2_scdwn.dd
-*../MODULES/SCF/n3_scdwn.dd
-*../MODULES/SCF/n4_scdwn.dd
-*../MODULES/SCF/n5_scdwn.dd
-*../MODULES/SCF/n6_scdwn.dd
-*../MODULES/SCF/n7_scdwn.dd
-*../MODULES/SCF/n8_scdwn.dd
-*../MODULES/SCF/n9_scdwn.dd
-*../MODULES/SCF/n10_scdwn.dd
-*../MODULES/SCF/n11_scdwn.dd
-*../MODULES/SCF/n12_scdwn.dd
-*../MODULES/SCF/n13_scdwn.dd
-*../MODULES/SCF/n14_scdwn.dd
-*
-***************************************
-* Pipe Section
-*
-* Pipes are a useful but optional part of a system.
-../MODULES/PIPE/pipeman.mn
-../MODULES/PIPE/piper.dr
-../MODULES/PIPE/pipe.dd
-*
-***************************************
-* Clock Section
-*
-* Select one clock module depending upon your power line frequency
-* (60Hz = USA/Canada; 50Hz = Europe, Australia)
-../MODULES/CLOCKS/clock_60hz
-*../MODULES/CLOCKS/clock_50hz
-* Select one clock2 module that supports your real-time clock, if any.
-* Besides support for the internal software clock, the following
-* hardware clocks are supported: Burke & Burke, Disto 2-N-1, Disto 4-N-1,
-* Eliminator, Harris, SmartWatch, Cloud-9, the MESS emulator, Jeff
-* Vavasour's CoCo emulator, and DriveWire.
-*../MODULES/CLOCKS/clock2_soft
-*../MODULES/CLOCKS/clock2_bnb
-*../MODULES/CLOCKS/clock2_disto2
-*../MODULES/CLOCKS/clock2_disto4
-*../MODULES/CLOCKS/clock2_elim
-*../MODULES/CLOCKS/clock2_harris
-*../MODULES/CLOCKS/clock2_smart
-*../MODULES/CLOCKS/clock2_jvemu
-*../MODULES/CLOCKS/clock2_messemu
-*../MODULES/CLOCKS/clock2_cloud9
-../MODULES/CLOCKS/clock2_dw3
-* 
-***************************************
-* System Kick-Start Module
-*
-* Choose which startup module you wish to use. (sysgo_dd is recommended
-* for most configurations.)
-../MODULES/SYSMODS/sysgo_dd
-*../MODULES/SYSMODS/sysgo_h0
--- a/level1/coco/bootlists/dw3_coco1.bl	Wed Jul 18 20:28:37 2012 -0500
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,191 +0,0 @@
-***************************************
-* NitrOS-9 Level 1 CoCo Bootlist
-*
-* $Id$
-*
-* This bootlist is presented as an example for creating custom bootfiles.
-* A module may be excluded from the bootfile if an asterisk (*) is the
-* first character of the line.
-*
-***************************************
-* Kernel/System Section
-*
-* These modules are mandatory.
-../MODULES/SYSMODS/ioman
-*
-***************************************
-* CDF Section (HawkSoft)
-*
-*../MODULES/CDF/cdf.mn
-*
-* CDF descriptors - select as needed
-* SCSI descriptors (IDs 0-6)
-*../MODULES/CDF/sc0.dd
-*../MODULES/CDF/sc1.dd
-*../MODULES/CDF/sc2.dd
-*../MODULES/CDF/sc3.dd
-*../MODULES/CDF/sc4.dd
-*../MODULES/CDF/sc5.dd
-*../MODULES/CDF/sc6.dd
-* IDE descriptors (master/slave)
-*../MODULES/CDF/ic0.dd
-*../MODULES/CDF/ic1.dd
-*
-***************************************
-* RBF Section
-*
-../MODULES/RBF/rbf.mn
-*
-* DriveWire 3 RBF driver 
-../MODULES/RBF/rbdw3.dr
-*../MODULES/RBF/dw3.sb
-../MODULES/RBF/dw3_coco1.sb
-* DriveWire descriptors - select as needed
-../MODULES/RBF/ddx0.dd
-*../MODULES/RBF/x0.dd
-../MODULES/RBF/x1.dd
-../MODULES/RBF/x2.dd
-../MODULES/RBF/x3.dd
-*
-* SuperDriver Package
-*../MODULES/RBF/rbsuper.dr
-* Select Low level SCSI and/or IDE driver
-*../MODULES/RBF/lltc3.dr
-*../MODULES/RBF/llide.dr
-* SuperDriver descriptors - select as needed
-* TC^3 SCSI DD Descriptor (ID 0)
-*../MODULES/RBF/dds0_tc3.dd
-* TC^3 SCSI descriptors (IDs 0-6)
-*../MODULES/RBF/s0_tc3.dd
-*../MODULES/RBF/s1_tc3.dd
-*../MODULES/RBF/s2_tc3.dd
-*../MODULES/RBF/s3_tc3.dd
-*../MODULES/RBF/s4_tc3.dd
-*../MODULES/RBF/s5_tc3.dd
-*../MODULES/RBF/s6_tc3.dd
-* TC^3 SCSI HDB-DOS descriptor
-*../MODULES/RBF/sh_tc3.dd
-* IDE DD descriptor (Master)
-*../MODULES/RBF/ddi0_ide.dd
-* IDE descriptors (master/slave)
-*../MODULES/RBF/i0_ide.dd
-*../MODULES/RBF/i1_ide.dd
-* IDE HDB-DOS descriptor
-*../MODULES/RBF/ih_ide.dd
-*
-* WD1773 floppy support for Tandy and compatible disk controllers
-../MODULES/RBF/rb1773.dr
-* WD1773 floppy support for Disto Super Controller II
-*../MODULES/RBF/rb1773_scii_ff74.dr
-*../MODULES/RBF/rb1773_scii_ff58.dr
-* Floppy device descriptors
-* DD - default device - choose one if needed
-*../MODULES/RBF/ddd0_35s.dd
-*../MODULES/RBF/ddd0_40d.dd
-*../MODULES/RBF/ddd0_80d.dd
-* D0 - drive 0 - choose one if needed
-*../MODULES/RBF/d0_35s.dd
-../MODULES/RBF/d0_40d.dd
-*../MODULES/RBF/d0_80d.dd
-* D1 - drive 1 - choose one if needed
-*../MODULES/RBF/d1_35s.dd
-../MODULES/RBF/d1_40d.dd
-*../MODULES/RBF/d1_80d.dd
-* D2 - drive 2 - choose one if needed
-*../MODULES/RBF/d2_35s.dd
-../MODULES/RBF/d2_40d.dd
-*../MODULES/RBF/d2_80d.dd
-* D3 - drive 3 - choose if needed
-*../MODULES/RBF/d3_35s.dd
-***************************************
-* SCF Section
-*
-../MODULES/SCF/scf.mn
-*
-* Video Terminal I/O driver and subroutine modules
-../MODULES/SCF/vtio.dr
-* Choose from CoVDG (32x16 VDG) or CoHR (Hi-Res 51x24 graphics screen)
-../MODULES/SCF/covdg.io
-*../MODULES/SCF/cohr.io
-*
-* Select only one term descriptor
-../MODULES/SCF/term32.dt
-*../MODULES/SCF/term51.dt
-*../MODULES/SCF/term_scbbt.dt
-*../MODULES/SCF/term_sc6551.dt
-*
-* Serial port drivers
-* CoCo Bit-Banger terminal port
-*../MODULES/SCF/scbbt.dr
-*../MODULES/SCF/t1_scbbt.dd
-* 6551 ACIA
-*../MODULES/SCF/sc6551.dr
-*../MODULES/SCF/t2_sc6551.dd
-*../MODULES/SCF/t3_sc6551.dd
-*
-* Printer drivers
-* ../MODULES/SCF/scbbp.dr
-* ../MODULES/SCF/p_scbbp.dd
-*
-* DriveWire 3 Printer drivers
-* ../MODULES/SCF/scdwp.dr
-* ../MODULES/SCF/p_scdwp.dd
-*
-* DriveWire Networking
-*../MODULES/SCF/scdwn.dr
-*../MODULES/SCF/term_scdwn.dt
-*../MODULES/SCF/n_scdwn.dd
-*../MODULES/SCF/n1_scdwn.dd
-*../MODULES/SCF/n2_scdwn.dd
-*../MODULES/SCF/n3_scdwn.dd
-*../MODULES/SCF/n4_scdwn.dd
-*../MODULES/SCF/n5_scdwn.dd
-*../MODULES/SCF/n6_scdwn.dd
-*../MODULES/SCF/n7_scdwn.dd
-*../MODULES/SCF/n8_scdwn.dd
-*../MODULES/SCF/n9_scdwn.dd
-*../MODULES/SCF/n10_scdwn.dd
-*../MODULES/SCF/n11_scdwn.dd
-*../MODULES/SCF/n12_scdwn.dd
-*../MODULES/SCF/n13_scdwn.dd
-*../MODULES/SCF/n14_scdwn.dd
-*
-***************************************
-* Pipe Section
-*
-* Pipes are a useful but optional part of a system.
-../MODULES/PIPE/pipeman.mn
-../MODULES/PIPE/piper.dr
-../MODULES/PIPE/pipe.dd
-*
-***************************************
-* Clock Section
-*
-* Select one clock module depending upon your power line frequency
-* (60Hz = USA/Canada; 50Hz = Europe, Australia)
-../MODULES/CLOCKS/clock_60hz
-*../MODULES/CLOCKS/clock_50hz
-* Select one clock2 module that supports your real-time clock, if any.
-* Besides support for the internal software clock, the following
-* hardware clocks are supported: Burke & Burke, Disto 2-N-1, Disto 4-N-1,
-* Eliminator, Harris, SmartWatch, Cloud-9, the MESS emulator, Jeff
-* Vavasour's CoCo emulator, and DriveWire.
-*../MODULES/CLOCKS/clock2_soft
-*../MODULES/CLOCKS/clock2_bnb
-*../MODULES/CLOCKS/clock2_disto2
-*../MODULES/CLOCKS/clock2_disto4
-*../MODULES/CLOCKS/clock2_elim
-*../MODULES/CLOCKS/clock2_harris
-*../MODULES/CLOCKS/clock2_smart
-*../MODULES/CLOCKS/clock2_jvemu
-*../MODULES/CLOCKS/clock2_messemu
-*../MODULES/CLOCKS/clock2_cloud9
-../MODULES/CLOCKS/clock2_dw3
-* 
-***************************************
-* System Kick-Start Module
-*
-* Choose which startup module you wish to use. (sysgo_dd is recommended
-* for most configurations.)
-../MODULES/SYSMODS/sysgo_dd
-*../MODULES/SYSMODS/sysgo_h0
--- a/level1/coco/bootlists/standard.bl	Wed Jul 18 20:28:37 2012 -0500
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,191 +0,0 @@
-***************************************
-* NitrOS-9 Level 1 CoCo Bootlist
-*
-* $Id$
-*
-* This bootlist is presented as an example for creating custom bootfiles.
-* A module may be excluded from the bootfile if an asterisk (*) is the
-* first character of the line.
-*
-***************************************
-* Kernel/System Section
-*
-* These modules are mandatory.
-../MODULES/SYSMODS/ioman
-*
-***************************************
-* CDF Section (HawkSoft)
-*
-*../MODULES/CDF/cdf.mn
-*
-* CDF descriptors - select as needed
-* SCSI descriptors (IDs 0-6)
-*../MODULES/CDF/sc0.dd
-*../MODULES/CDF/sc1.dd
-*../MODULES/CDF/sc2.dd
-*../MODULES/CDF/sc3.dd
-*../MODULES/CDF/sc4.dd
-*../MODULES/CDF/sc5.dd
-*../MODULES/CDF/sc6.dd
-* IDE descriptors (master/slave)
-*../MODULES/CDF/ic0.dd
-*../MODULES/CDF/ic1.dd
-*
-***************************************
-* RBF Section
-*
-../MODULES/RBF/rbf.mn
-*
-* DriveWire 3 RBF driver
-*../MODULES/RBF/rbdw3.dr
-*../MODULES/RBF/dw3.sb
-*../MODULES/RBF/dw3_coco1.sb
-* DriveWire descriptors - select as needed
-*../MODULES/RBF/ddx0.dd
-*../MODULES/RBF/x0.dd
-*../MODULES/RBF/x1.dd
-*../MODULES/RBF/x2.dd
-*../MODULES/RBF/x3.dd
-*
-* SuperDriver Package
-*../MODULES/RBF/rbsuper.dr
-* Select Low level SCSI and/or IDE driver
-*../MODULES/RBF/lltc3.dr
-*../MODULES/RBF/llide.dr
-* SuperDriver descriptors - select as needed
-* TC^3 SCSI DD Descriptor (ID 0)
-*../MODULES/RBF/dds0_tc3.dd
-* TC^3 SCSI descriptors (IDs 0-6)
-*../MODULES/RBF/s0_tc3.dd
-*../MODULES/RBF/s1_tc3.dd
-*../MODULES/RBF/s2_tc3.dd
-*../MODULES/RBF/s3_tc3.dd
-*../MODULES/RBF/s4_tc3.dd
-*../MODULES/RBF/s5_tc3.dd
-*../MODULES/RBF/s6_tc3.dd
-* TC^3 SCSI HDB-DOS descriptor
-*../MODULES/RBF/sh_tc3.dd
-* IDE DD descriptor (Master)
-*../MODULES/RBF/ddi0_ide.dd
-* IDE descriptors (master/slave)
-*../MODULES/RBF/i0_ide.dd
-*../MODULES/RBF/i1_ide.dd
-* IDE HDB-DOS descriptor
-*../MODULES/RBF/ih_ide.dd
-*
-* WD1773 floppy support for Tandy and compatible disk controllers
-../MODULES/RBF/rb1773.dr
-* WD1773 floppy support for Disto Super Controller II
-*../MODULES/RBF/rb1773_scii_ff74.dr
-*../MODULES/RBF/rb1773_scii_ff58.dr
-* Floppy device descriptors
-* DD - default device - choose one if needed
-*../MODULES/RBF/ddd0_35s.dd
-../MODULES/RBF/ddd0_40d.dd
-*../MODULES/RBF/ddd0_80d.dd
-* D0 - drive 0 - choose one if needed
-*../MODULES/RBF/d0_35s.dd
-../MODULES/RBF/d0_40d.dd
-*../MODULES/RBF/d0_80d.dd
-* D1 - drive 1 - choose one if needed
-*../MODULES/RBF/d1_35s.dd
-../MODULES/RBF/d1_40d.dd
-*../MODULES/RBF/d1_80d.dd
-* D2 - drive 2 - choose one if needed
-*../MODULES/RBF/d2_35s.dd
-../MODULES/RBF/d2_40d.dd
-*../MODULES/RBF/d2_80d.dd
-* D3 - drive 3 - choose if needed
-*../MODULES/RBF/d3_35s.dd
-***************************************
-* SCF Section
-*
-../MODULES/SCF/scf.mn
-*
-* Video Terminal I/O driver and subroutine modules
-../MODULES/SCF/vtio.dr
-* Choose from CoVDG (32x16 VDG) or CoHR (Hi-Res 51x24 graphics screen)
-../MODULES/SCF/covdg.io
-*../MODULES/SCF/cohr.io
-*
-* Select only one term descriptor
-../MODULES/SCF/term32.dt
-*../MODULES/SCF/term51.dt
-*../MODULES/SCF/term_scbbt.dt
-*../MODULES/SCF/term_sc6551.dt
-*
-* Serial port drivers
-* CoCo Bit-Banger terminal port
-*../MODULES/SCF/scbbt.dr
-*../MODULES/SCF/t1_scbbt.dd
-* 6551 ACIA
-*../MODULES/SCF/sc6551.dr
-*../MODULES/SCF/t2_sc6551.dd
-*../MODULES/SCF/t3_sc6551.dd
-*
-* Printer drivers
-* ../MODULES/SCF/scbbp.dr
-* ../MODULES/SCF/p_scbbp.dd
-*
-* DriveWire 3 Printer drivers
-* ../MODULES/SCF/scdwp.dr
-* ../MODULES/SCF/p_scdwp.dd
-*
-* DriveWire Networking
-*../MODULES/SCF/scdwn.dr
-*../MODULES/SCF/term_scdwn.dt
-*../MODULES/SCF/n_scdwn.dd
-*../MODULES/SCF/n1_scdwn.dd
-*../MODULES/SCF/n2_scdwn.dd
-*../MODULES/SCF/n3_scdwn.dd
-*../MODULES/SCF/n4_scdwn.dd
-*../MODULES/SCF/n5_scdwn.dd
-*../MODULES/SCF/n6_scdwn.dd
-*../MODULES/SCF/n7_scdwn.dd
-*../MODULES/SCF/n8_scdwn.dd
-*../MODULES/SCF/n9_scdwn.dd
-*../MODULES/SCF/n10_scdwn.dd
-*../MODULES/SCF/n11_scdwn.dd
-*../MODULES/SCF/n12_scdwn.dd
-*../MODULES/SCF/n13_scdwn.dd
-*../MODULES/SCF/n14_scdwn.dd
-*
-***************************************
-* Pipe Section
-*
-* Pipes are a useful but optional part of a system.
-../MODULES/PIPE/pipeman.mn
-../MODULES/PIPE/piper.dr
-../MODULES/PIPE/pipe.dd
-*
-***************************************
-* Clock Section
-*
-* Select one clock module depending upon your power line frequency
-* (60Hz = USA/Canada; 50Hz = Europe, Australia)
-../MODULES/CLOCKS/clock_60hz
-*../MODULES/CLOCKS/clock_50hz
-* Select one clock2 module that supports your real-time clock, if any.
-* Besides support for the internal software clock, the following
-* hardware clocks are supported: Burke & Burke, Disto 2-N-1, Disto 4-N-1,
-* Eliminator, Harris, SmartWatch, Cloud-9, the MESS emulator, Jeff
-* Vavasour's CoCo emulator, and DriveWire.
-../MODULES/CLOCKS/clock2_soft
-*../MODULES/CLOCKS/clock2_bnb
-*../MODULES/CLOCKS/clock2_disto2
-*../MODULES/CLOCKS/clock2_disto4
-*../MODULES/CLOCKS/clock2_elim
-*../MODULES/CLOCKS/clock2_harris
-*../MODULES/CLOCKS/clock2_smart
-*../MODULES/CLOCKS/clock2_jvemu
-*../MODULES/CLOCKS/clock2_messemu
-*../MODULES/CLOCKS/clock2_cloud9
-*../MODULES/CLOCKS/clock2_dw3
-* 
-***************************************
-* System Kick-Start Module
-*
-* Choose which startup module you wish to use. (sysgo_dd is recommended
-* for most configurations.)
-../MODULES/SYSMODS/sysgo_dd
-*../MODULES/SYSMODS/sysgo_h0
--- a/level1/coco/bootroms/makefile	Wed Jul 18 20:28:37 2012 -0500
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,42 +0,0 @@
-include $(NITROS9DIR)/rules.mak
-
-# Module directory
-MD		= ../modules
-# Commands directory
-CD		= ../cmds
-
-DEPENDS		= ./makefile
-
-KERNEL_ROM	= $(MD)/rel $(MD)/krn $(MD)/krnp2 $(MD)/init $(MD)/boot_rom
-
-BOOTFILE_ROM	= $(MD)/rominfo $(MD)/ioman \
-		$(MD)/scf.mn $(MD)/vtio.dr \
-		$(MD)/covdg.io \
-		$(MD)/term32.dt \
-		$(MD)/clock_60hz $(MD)/clock2_soft
-
-BOOTROMS	= nos96809l1.rom
-KERNELS		= kernel_rom
-
-ALLROMS		= $(BOOTROMS)
-
-all:	$(ALLROMS)
-
-# Bootfiles
-nos96809l1.rom: $(BOOTFILE_ROM) $(KERNEL_ROM) $(DEPENDS)
-	$(MERGE) $(BOOTFILE_ROM)>$@.tmp
-	$(PADROM) 11776 $@.tmp
-	$(MERGE) $(KERNEL_ROM)>kernel_rom
-	$(PADROM) 4592 kernel_rom
-	$(MERGE) $@.tmp kernel_rom>$@.tmp2
-	$(MERGE) $@.tmp2 $(MD)/vectors>$@
-	$(RM) $@.tmp $@.tmp2
-	
-
-# Kernels
-kernel_rom: $(KERNEL_ROM) $(DEPENDS)
-	$(MERGE) $(KERNEL_ROM)>$@
-
-clean:
-	$(RM) $(ALLROMS) $(KERNELS)
-
--- a/level1/coco/cmds/defsfile	Wed Jul 18 20:28:37 2012 -0500
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-          use    ../defsfile
--- a/level1/coco/cmds/makefile	Wed Jul 18 20:28:37 2012 -0500
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,59 +0,0 @@
-PORT = coco
-include $(NITROS9DIR)/rules.mak
-
-vpath %.a $(LEVEL1)/cmds
-vpath %.asm $(LEVEL1)/cmds:$(NITROS9DIR)/3rdparty/packages/basic09
-
-DEPENDS		= ./makefile
-
-AFLAGS		+= --includedir=$(NITROS9DIR)/3rdparty/packages/basic09
-LFLAGS		+= -l=$(NITROS9DIR)/lib/net.l -l=$(NITROS9DIR)/lib/alib.l -l=$(NITROS9DIR)/lib/sys6809l1.l
-
-BASIC09FILES	= basic09.asm runb.asm gfx.asm inkey.asm syscall.asm
-CMDS		= asm attr backup binex build calldbg cmp cobbler copy cputype \
-		date dcheck debug ded deiniz del deldir devs dir dirsort disasm \
-		display dmode dsave dump echo edit error exbin format \
-		free grfdrv help ident iniz irqs link list load login makdir \
-		megaread mdir merge mfree mpi os9gen padrom park printerr procs prompt pwd pxd \
-		rename save setime shellplus shell_21 sleep \
-		tee tmode touch tsmon tuneport unlink verify xmode
-
-CMDS_D2		= basic09 runb gfx inkey syscall copy del echo format \
-		merge os9gen prompt tmode
-
-CMDS_DW		= inetd telnet dw
-
-SUBS		= gfx inkey syscall
-ALLOBJS		= $(CMDS) $(CMDS_D2) $(CMDS_DW) $(SUBS)
-
-all:	$(ALLOBJS)
-
-pwd:	pd.asm
-	$(AS) $(AFLAGS) $< $(ASOUT)$@ -DPWD=1
-
-xmode:	xmode.asm
-	$(AS) $(AFLAGS) $< $(ASOUT)$@ -DXMODE=1
-
-tmode:	xmode.asm
-	$(AS) $(AFLAGS) $< $(ASOUT)$@ -DTMODE=1
-
-pxd:	pd.asm
-	$(AS) $(AFLAGS) $< $(ASOUT)$@ -DPXD=1
-	
-clean:
-	$(RM) $(ALLOBJS)
-
-identify:
-	$(IDENT_SHORT) $(ALLOBJS)
-
-showobjs:
-	@$(ECHO) $(CMDS)
-
-showobjs_d2:
-	@$(ECHO) $(CMDS_D2)
-
-showobjs_dw:
-	@$(ECHO) $(CMDS) $(CMDS_DW)
-
-showallobjs:
-	@$(ECHO) $(ALLOBJS)
--- a/level1/coco/defs/defsfile.asm	Wed Jul 18 20:28:37 2012 -0500
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,8 +0,0 @@
-Level equ 1
-
- ifp1
- use /dd/defs/os9.d
- use /dd/defs/rbf.d
- use /dd/defs/scf.d
- use /dd/defs/coco.d
- endc
--- a/level1/coco/defs/makefile	Wed Jul 18 20:28:37 2012 -0500
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,35 +0,0 @@
-PORT = coco
-include $(NITROS9DIR)/rules.mak
-
-DEPENDS		= ./makefile
-
-DEFOPTS		= --preprocess -DLevel=1
-DEFSDIR		= ../../../defs
-DEFS		= defsfile os9.d rbf.d scf.d coco.d cocovtio.d
-ALLOBJS		= $(DEFS)
-
-all:	$(ALLOBJS)
-
-defsfile: defsfile.asm
-	$(AS) $(DEFOPTS)  $< > $@
-
-os9.d: $(DEFSDIR)/os9.d
-	$(AS) $(DEFOPTS) -DOS9.D=0 $< > $@
-
-rbf.d: $(DEFSDIR)/rbf.d
-	$(AS) $(DEFOPTS) -DRBF.D=0 $< > $@
-
-scf.d: $(DEFSDIR)/scf.d
-	$(AS) $(DEFOPTS) -DSCF.D=0 $< > $@
-
-coco.d: $(DEFSDIR)/coco.d
-	$(AS) $(DEFOPTS) -DCOCO.D=0 $< > $@
-
-cocovtio.d: $(DEFSDIR)/cocovtio.d
-	$(AS) $(DEFOPTS) -DCOCOVTIO.D=0 $< > $@
-
-clean:
-	$(RM) $(DEFS)
-
-showobjs:
-	@$(ECHO) $(ALLOBJS)
--- a/level1/coco/defsfile	Wed Jul 18 20:28:37 2012 -0500
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,6 +0,0 @@
-Level    equ   1
-
-         use   os9.d
-         use   scf.d
-         use   rbf.d
-         use   coco.d
--- a/level1/coco/diskfix.pat	Wed Jul 18 20:28:37 2012 -0500
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,124 +0,0 @@
-* Patches Level I Ver. 2
-* CCDisk to read, write
-* and format both single
-* and double sided disks
-* Rainbow, Oct '88, p 157
-t
-tmode .1 -pause
-save /d0/ccdisk ccdisk
-debug
-lccdisk
-. .+7
-=80
-$load /d0/ccdisk
-lccdisk
-. .+3
-=82
-lccdisk
-. .+1c9
-=16
-=01
-=84
-lccdisk
-. .+1f8
-=5f
-=17
-=01
-=76
-lccdisk
-. .+2ae
-=e6
-=c9
-=00
-=a9
-=16
-=00
-=8c
-=12
-=23
-=02
-lccdisk
-. .+2dd
-=40
-=12
-=12
-=12
-=17
-=00
-=90
-. .+3
-=5f
-=16
-=00
-=81
-lccdisk
-. .+341
-=a6
-=07
-=85
-=01
-=26
-=02
-=ca
-=40
-=a6
-=09
-=81
-=15
-=16
-=ff
-=66
-=a6
-=88
-=10
-=85
-=01
-=27
-=0e
-=64
-=e4
-=24
-=0a
-=a6
-=c9
-=00
-=a9
-=8a
-=40
-=a7
-=c9
-=00
-=a9
-=35
-=02
-=81
-=15
-=16
-=fe
-=61
-=ea
-=a8
-=22
-=16
-=ff
-=01
-=cb
-=10
-=ea
-=a8
-=22
-=34
-=02
-=17
-=fe
-=f7
-=35
-=02
-=39
-q
-del /d0/ccdisk
-save /d0/temp ccdisk
-verify u</d0/temp >/d0/ccdisk
-del temp
-tmode .1 pause
--t
--- a/level1/coco/makefile	Wed Jul 18 20:28:37 2012 -0500
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,312 +0,0 @@
-PORT = coco
-include $(NITROS9DIR)/rules.mak
-
-CPU		= 6809
-LEVEL		= 1
-
-# Level 1 - Specify which shell should be used
-#WHICHSHELL	= shellplus
-WHICHSHELL	= shell_21
-
-DISTRO		= $(CPU)L$(LEVEL)
-DISTRONAME	= nos9$(CPU)l$(LEVEL)
-DISTROVER	= $(DISTRONAME)$(NITROS9VER)$(PORT)
-BOOTFILE_COVDG	= bootfiles/bootfile_covdg
-BOOTFILE_COHR	= bootfiles/bootfile_cohr
-BOOTFILE_COVDG_DS80	= bootfiles/bootfile_covdg_ds80
-BOOTFILE_HEADLESS_DW3_COCO1	= bootfiles/bootfile_headless_dw3_coco1
-BOOTFILE_HEADLESS_DW3_COCO2	= bootfiles/bootfile_headless_dw3_coco2
-BOOTFILE_COVDG_DW3_COCO1	= bootfiles/bootfile_covdg_dw3_coco1
-BOOTFILE_COVDG_DW3_COCO2	= bootfiles/bootfile_covdg_dw3_coco2
-BOOTFILE_COHR_DS80	= bootfiles/bootfile_cohr_ds80
-BOOTFILE_COHR_DW3_COCO1	= bootfiles/bootfile_cohr_dw3_coco1
-BOOTFILE_COHR_DW3_COCO2	= bootfiles/bootfile_cohr_dw3_coco2
-KERNELFILE	= bootfiles/kernel_1773
-KERNELFILE_DW3_COCO1	= bootfiles/kernel_dw3_coco1
-KERNELFILE_DW3_COCO2	= bootfiles/kernel_dw3_coco2
-DIRS		= cmds modules defs sys bootfiles
-
-
-CMDS		= $(shell $(CD) cmds; make --no-print-directory showobjs)
-CMDS_D2		= $(shell $(CD) cmds; make --no-print-directory showobjs_d2)
-CMDS_DW		= $(shell $(CD) cmds; make --no-print-directory showobjs_dw)
-BOOTTRACK	= $(shell $(CD) modules; make --no-print-directory showboottrack)
-KERNEL		= $(shell $(CD) modules; make --no-print-directory showkernel)
-SYSMODS		= $(shell $(CD) modules; make --no-print-directory showsysmods)
-CLOCKS		= $(shell $(CD) modules; make --no-print-directory showclocks)
-RBF		= $(shell $(CD) modules; make --no-print-directory showrbf)
-SCF		= $(shell $(CD) modules; make --no-print-directory showscf)
-PIPE		= $(shell $(CD) modules; make --no-print-directory showpipe)
-MODULECMDS	= $(WHICHSHELL) del echo format makdir merge os9gen prompt tmode
-
-SYS		= $(shell $(CD) sys; make --no-print-directory showobjs)
-DEFS		= $(shell $(CD) defs; make --no-print-directory showobjs)
-STARTUP		= startup
-STARTUP_DW	= startup.dw
-
-PACKAGENAME	= $(DISTROVER).zip
-DSKDW3COCO1     = $(DISTROVER)1_dw3.dsk
-LDSKDW3COCO1    = $(DISTRONAME)coco1_dw3.dsk
-DSKDW3COCO2     = $(DISTROVER)2_dw3.dsk
-LDSKDW3COCO2    = $(DISTRONAME)coco2_dw3.dsk
-DSK360K_1       = $(DISTROVER)_40d_1.dsk
-LDSK360K_1      = $(DISTRONAME)_40d_1.dsk
-DSK360K_2       = $(DISTROVER)_40d_2.dsk
-LDSK360K_2      = $(DISTRONAME)_40d_2.dsk
-DSK720K         = $(DISTROVER)_80d.dsk
-LDSK720K        = $(DISTRONAME)_80d.dsk
-
-
-DSKS		= $(DSKDW3COCO1) $(DSKDW3COCO2) $(DSK360K_1) $(DSK360K_2) $(DSK720K)
-LDSKS		= $(LDSKDW3COCO1) $(LDSKDW3COCO2) $(LDSK360K_1) $(LDSK360K_2) $(LDSK720K)
-
-# Make all components
-all:
-	@$(ECHO) "**************************************************"
-	@$(ECHO) "*                                                *"
-	@$(ECHO) "*         NitrOS-9/$(CPU) Level 1 CoCo Port        *"
-	@$(ECHO) "*                                                *"
-	@$(ECHO) "**************************************************"
-	$(foreach dir, $(DIRS), ($(CD) $(dir); make);)
-
-# Clean all components
-clean:	dskclean
-	$(foreach dir, $(DIRS), ($(CD) $(dir); make clean);)
-
-dskclean:
-	-$(RM) $(PACKAGENAME) $(DSKS) $(LDSKS)
-
-dsk: all $(PACKAGENAME)
-
-dskcopy: dsk
-	$(CP) $(DSKS) $(DSKDIR)
-
-scp: dsk
-	scp $(PACKAGENAME) boisy@cvs.nitros9.org:/home/nitros9/public_html
-
-$(PACKAGENAME): $(DSKS) ../../ReadMe ../../ChangeLog
-	$(ARCHIVE) $@ $^
-
-$(DSKDW3COCO1):
-	$(RM) $@
-	$(OS9FORMAT_DW3) -q $@ -n"NitrOS-9/$(CPU) Level 1"
-	$(OS9GEN) $@ -b=$(BOOTFILE_COVDG_DW3_COCO1) -t=$(KERNELFILE_DW3_COCO1)
-	$(MAKDIR) $@,CMDS
-	$(MAKDIR) $@,SYS
-	$(MAKDIR) $@,DEFS
-	$(CD) cmds; $(CP) $(CMDS_DW) ../$@,CMDS
-	$(foreach file, $(CMDS_DW), $(OS9ATTR_EXEC) $@,CMDS/$(file);)
-	$(CD) cmds; $(CP) $(CMDS_D2) ../$@,CMDS
-	$(foreach file, $(CMDS_D2), $(OS9ATTR_EXEC) $@,CMDS/$(file);)
-	$(OS9RENAME) $@,CMDS/$(WHICHSHELL) shell
-	$(CD) sys; $(CPL) $(SYS) ../$@,SYS
-	$(foreach file, $(SYS), $(OS9ATTR_TEXT) $@,SYS/$(file);)
-	$(CD) defs; $(CPL) $(DEFS) ../$@,DEFS
-	$(foreach file, $(DEFS), $(OS9ATTR_TEXT) $@,DEFS/$(file);)
-	$(CPL) $(STARTUP_DW) $@,startup
-	$(OS9ATTR_TEXT) $@,startup
-	$(MAKDIR) $@,NITROS9
-	$(MAKDIR) $@,NITROS9/6809L1
-	$(MAKDIR) $@,NITROS9/6809L1/CMDS
-	$(CD) cmds; $(CP) $(MODULECMDS) ../$@,NITROS9/6809L1/CMDS
-	$(foreach file, $(MODULECMDS), $(OS9ATTR_EXEC) $@,NITROS9/6809L1/CMDS/$(file);)
-	$(OS9RENAME) $@,NITROS9/6809L1/CMDS/$(WHICHSHELL) shell
-	$(MAKDIR) $@,NITROS9/6809L1/MODULES
-	$(MAKDIR) $@,NITROS9/6809L1/MODULES/BOOTTRACK
-	$(CD) modules; $(CP) $(BOOTTRACK) ../$@,NITROS9/6809L1/MODULES/BOOTTRACK
-	$(foreach file, $(BOOTTRACK), $(OS9ATTR_EXEC) $@,NITROS9/6809L1/MODULES/BOOTTRACK/$(file);)
-	$(MAKDIR) $@,NITROS9/6809L1/MODULES/KERNEL
-	$(CD) modules; $(CP) $(KERNEL) ../$@,NITROS9/6809L1/MODULES/KERNEL
-	$(foreach file, $(KERNEL), $(OS9ATTR_EXEC) $@,NITROS9/6809L1/MODULES/KERNEL/$(file);)
-	$(MAKDIR) $@,NITROS9/6809L1/MODULES/SYSMODS
-	$(CD) modules; $(CP) $(SYSMODS) ../$@,NITROS9/6809L1/MODULES/SYSMODS
-	$(foreach file, $(SYSMODS), $(OS9ATTR_EXEC) $@,NITROS9/6809L1/MODULES/SYSMODS/$(file);)
-	$(MAKDIR) $@,NITROS9/6809L1/MODULES/CLOCKS
-	$(CD) modules; $(CP) $(CLOCKS) ../$@,NITROS9/6809L1/MODULES/CLOCKS
-	$(foreach file, $(CLOCKS), $(OS9ATTR_EXEC) $@,NITROS9/6809L1/MODULES/CLOCKS/$(file);)
-	$(MAKDIR) $@,NITROS9/6809L1/MODULES/RBF
-	$(CD) modules; $(CP) $(RBF) ../$@,NITROS9/6809L1/MODULES/RBF
-	$(foreach file, $(RBF), $(OS9ATTR_EXEC) $@,NITROS9/6809L1/MODULES/RBF/$(file);)
-	$(MAKDIR) $@,NITROS9/6809L1/MODULES/SCF
-	$(CD) modules; $(CP) $(SCF) ../$@,NITROS9/6809L1/MODULES/SCF
-	$(foreach file, $(SCF), $(OS9ATTR_EXEC) $@,NITROS9/6809L1/MODULES/SCF/$(file);)
-	$(MAKDIR) $@,NITROS9/6809L1/MODULES/PIPE
-	$(CD) modules; $(CP) $(PIPE) ../$@,NITROS9/6809L1/MODULES/PIPE
-	$(foreach file, $(PIPE), $(OS9ATTR_EXEC) $@,NITROS9/6809L1/MODULES/PIPE/$(file);)
-	$(MAKDIR) $@,NITROS9/6809L1/BOOTLISTS
-	$(CD) bootlists; $(CPL) *.bl ../$@,NITROS9/6809L1/BOOTLISTS
-	$(MAKDIR) $@,NITROS9/6809L1/SCRIPTS
-	$(CD) scripts; $(CPL) mb* ../$@,NITROS9/6809L1/SCRIPTS
-	$(RM) $(LDSKDW3COCO1)
-	$(SOFTLINK) $@ $(LDSKDW3COCO1)
-
-$(DSKDW3COCO2):
-	$(RM) $@
-	$(OS9FORMAT_DW3) -q $@ -n"NitrOS-9/6809 Level 1"
-	$(OS9GEN) $@ -b=$(BOOTFILE_COVDG_DW3_COCO2) -t=$(KERNELFILE_DW3_COCO2)
-	$(MAKDIR) $@,CMDS
-	$(MAKDIR) $@,SYS
-	$(MAKDIR) $@,DEFS
-	$(CD) cmds; $(CP) $(CMDS_DW) ../$@,CMDS
-	$(foreach file, $(CMDS_DW), $(OS9ATTR_EXEC) $@,CMDS/$(file);)
-	$(CD) cmds; $(CP) $(CMDS_D2) ../$@,CMDS
-	$(foreach file, $(CMDS_D2), $(OS9ATTR_EXEC) $@,CMDS/$(file);)
-	$(OS9RENAME) $@,CMDS/$(WHICHSHELL) shell
-	$(CD) sys; $(CPL) $(SYS) ../$@,SYS
-	$(foreach file, $(SYS), $(OS9ATTR_TEXT) $@,SYS/$(file);)
-	$(CD) defs; $(CPL) $(DEFS) ../$@,DEFS
-	$(foreach file, $(DEFS), $(OS9ATTR_TEXT) $@,DEFS/$(file);)
-	$(CPL) $(STARTUP_DW) $@,startup
-	$(OS9ATTR_TEXT) $@,startup
-	$(MAKDIR) $@,NITROS9
-	$(MAKDIR) $@,NITROS9/6809L1
-	$(MAKDIR) $@,NITROS9/6809L1/CMDS
-	$(CD) cmds; $(CP) $(MODULECMDS) ../$@,NITROS9/6809L1/CMDS
-	$(foreach file, $(MODULECMDS), $(OS9ATTR_EXEC) $@,NITROS9/6809L1/CMDS/$(file);)
-	$(OS9RENAME) $@,NITROS9/6809L1/CMDS/$(WHICHSHELL) shell
-	$(MAKDIR) $@,NITROS9/6809L1/MODULES
-	$(MAKDIR) $@,NITROS9/6809L1/MODULES/BOOTTRACK
-	$(CD) modules; $(CP) $(BOOTTRACK) ../$@,NITROS9/6809L1/MODULES/BOOTTRACK
-	$(foreach file, $(BOOTTRACK), $(OS9ATTR_EXEC) $@,NITROS9/6809L1/MODULES/BOOTTRACK/$(file);)
-	$(MAKDIR) $@,NITROS9/6809L1/MODULES/KERNEL
-	$(CD) modules; $(CP) $(KERNEL) ../$@,NITROS9/6809L1/MODULES/KERNEL
-	$(foreach file, $(KERNEL), $(OS9ATTR_EXEC) $@,NITROS9/6809L1/MODULES/KERNEL/$(file);)
-	$(MAKDIR) $@,NITROS9/6809L1/MODULES/SYSMODS
-	$(CD) modules; $(CP) $(SYSMODS) ../$@,NITROS9/6809L1/MODULES/SYSMODS
-	$(foreach file, $(SYSMODS), $(OS9ATTR_EXEC) $@,NITROS9/6809L1/MODULES/SYSMODS/$(file);)
-	$(MAKDIR) $@,NITROS9/6809L1/MODULES/CLOCKS
-	$(CD) modules; $(CP) $(CLOCKS) ../$@,NITROS9/6809L1/MODULES/CLOCKS
-	$(foreach file, $(CLOCKS), $(OS9ATTR_EXEC) $@,NITROS9/6809L1/MODULES/CLOCKS/$(file);)
-	$(MAKDIR) $@,NITROS9/6809L1/MODULES/RBF
-	$(CD) modules; $(CP) $(RBF) ../$@,NITROS9/6809L1/MODULES/RBF
-	$(foreach file, $(RBF), $(OS9ATTR_EXEC) $@,NITROS9/6809L1/MODULES/RBF/$(file);)
-	$(MAKDIR) $@,NITROS9/6809L1/MODULES/SCF
-	$(CD) modules; $(CP) $(SCF) ../$@,NITROS9/6809L1/MODULES/SCF
-	$(foreach file, $(SCF), $(OS9ATTR_EXEC) $@,NITROS9/6809L1/MODULES/SCF/$(file);)
-	$(MAKDIR) $@,NITROS9/6809L1/MODULES/PIPE
-	$(CD) modules; $(CP) $(PIPE) ../$@,NITROS9/6809L1/MODULES/PIPE
-	$(foreach file, $(PIPE), $(OS9ATTR_EXEC) $@,NITROS9/6809L1/MODULES/PIPE/$(file);)
-	$(MAKDIR) $@,NITROS9/6809L1/BOOTLISTS
-	$(CD) bootlists; $(CPL) *.bl ../$@,NITROS9/6809L1/BOOTLISTS
-	$(MAKDIR) $@,NITROS9/6809L1/SCRIPTS
-	$(CD) scripts; $(CPL) mb* ../$@,NITROS9/6809L1/SCRIPTS
-	$(RM) $(LDSKDW3COCO2)
-	$(SOFTLINK) $@ $(LDSKDW3COCO2)
-
-$(DSK360K_1):
-	$(RM) $@
-	$(OS9FORMAT_DS40) -q $@ -n"NitrOS-9/6809 Level 1 Disk 1"
-	$(OS9GEN) $@ -b=$(BOOTFILE_COVDG) -t=$(KERNELFILE)
-	$(MAKDIR) $@,CMDS
-	$(MAKDIR) $@,SYS
-	$(CD) cmds; $(CP) $(CMDS) ../$@,CMDS
-	$(foreach file, $(CMDS), $(OS9ATTR_EXEC) $@,CMDS/$(file);)
-	$(OS9RENAME) $@,CMDS/$(WHICHSHELL) shell
-	$(CD) sys; $(CPL) $(SYS) ../$@,SYS
-	$(foreach file, $(SYS), $(OS9ATTR_TEXT) $@,SYS/$(file);)
-	$(MAKDIR) $@,DEFS
-	$(CD) defs; $(CPL) $(DEFS) ../$@,DEFS
-	$(foreach file, $(DEFS), $(OS9ATTR_TEXT) $@,DEFS/$(file);)
-	$(CPL) $(STARTUP) $@,startup
-	$(OS9ATTR_TEXT) $@,startup
-	$(RM) $(LDSK360K_1)
-	$(SOFTLINK) $@ $(LDSK360K_1)
-
-$(DSK360K_2):
-	$(RM) $@
-	$(OS9FORMAT_DS40) -q $@ -n"NitrOS-9/6809 Level 1 Disk 2"
-	$(MAKDIR) $@,CMDS
-	$(CD) cmds; $(CP) $(CMDS_D2) ../$@,CMDS
-	$(foreach file, $(CMDS_D2), $(OS9ATTR_EXEC) $@,CMDS/$(file);)
-	$(MAKDIR) $@,NITROS9
-	$(MAKDIR) $@,NITROS9/6809L1
-	$(MAKDIR) $@,NITROS9/6809L1/CMDS
-	$(CD) cmds; $(CP) $(MODULECMDS) ../$@,NITROS9/6809L1/CMDS
-	$(foreach file, $(MODULECMDS), $(OS9ATTR_EXEC) $@,NITROS9/6809L1/CMDS/$(file);)
-	$(OS9RENAME) $@,NITROS9/6809L1/CMDS//$(WHICHSHELL) shell
-	$(MAKDIR) $@,NITROS9/6809L1/MODULES
-	$(MAKDIR) $@,NITROS9/6809L1/MODULES/BOOTTRACK
-	$(CD) modules; $(CP) $(BOOTTRACK) ../$@,NITROS9/6809L1/MODULES/BOOTTRACK
-	$(foreach file, $(BOOTTRACK), $(OS9ATTR_EXEC) $@,NITROS9/6809L1/MODULES/BOOTTRACK/$(file);)
-	$(MAKDIR) $@,NITROS9/6809L1/MODULES/KERNEL
-	$(CD) modules; $(CP) $(KERNEL) ../$@,NITROS9/6809L1/MODULES/KERNEL
-	$(foreach file, $(KERNEL), $(OS9ATTR_EXEC) $@,NITROS9/6809L1/MODULES/KERNEL/$(file);)
-	$(MAKDIR) $@,NITROS9/6809L1/MODULES/SYSMODS
-	$(CD) modules; $(CP) $(SYSMODS) ../$@,NITROS9/6809L1/MODULES/SYSMODS
-	$(foreach file, $(SYSMODS), $(OS9ATTR_EXEC) $@,NITROS9/6809L1/MODULES/SYSMODS/$(file);)
-	$(MAKDIR) $@,NITROS9/6809L1/MODULES/CLOCKS
-	$(CD) modules; $(CP) $(CLOCKS) ../$@,NITROS9/6809L1/MODULES/CLOCKS
-	$(foreach file, $(CLOCKS), $(OS9ATTR_EXEC) $@,NITROS9/6809L1/MODULES/CLOCKS/$(file);)
-	$(MAKDIR) $@,NITROS9/6809L1/MODULES/RBF
-	$(CD) modules; $(CP) $(RBF) ../$@,NITROS9/6809L1/MODULES/RBF
-	$(foreach file, $(RBF), $(OS9ATTR_EXEC) $@,NITROS9/6809L1/MODULES/RBF/$(file);)
-	$(MAKDIR) $@,NITROS9/6809L1/MODULES/SCF
-	$(CD) modules; $(CP) $(SCF) ../$@,NITROS9/6809L1/MODULES/SCF
-	$(foreach file, $(SCF), $(OS9ATTR_EXEC) $@,NITROS9/6809L1/MODULES/SCF/$(file);)
-	$(MAKDIR) $@,NITROS9/6809L1/MODULES/PIPE
-	$(CD) modules; $(CP) $(PIPE) ../$@,NITROS9/6809L1/MODULES/PIPE
-	$(foreach file, $(PIPE), $(OS9ATTR_EXEC) $@,NITROS9/6809L1/MODULES/PIPE/$(file);)
-	$(MAKDIR) $@,NITROS9/6809L1/BOOTLISTS
-	$(CD) bootlists; $(CPL) *.bl ../$@,NITROS9/6809L1/BOOTLISTS
-	$(MAKDIR) $@,NITROS9/6809L1/SCRIPTS
-	$(CD) scripts; $(CPL) mb* ../$@,NITROS9/6809L1/SCRIPTS
-	$(RM) $(LDSK360K_2)
-	$(SOFTLINK) $@ $(LDSK360K_2)
-
-$(DSK720K):
-	$(RM) $@
-	$(OS9FORMAT_DS80) -q $@ -n"NitrOS-9/6809 Level 1"
-	$(OS9GEN) $@ -b=$(BOOTFILE_COVDG_DS80) -t=$(KERNELFILE)
-	$(MAKDIR) $@,CMDS
-	$(MAKDIR) $@,SYS
-	$(MAKDIR) $@,DEFS
-	$(CD) cmds; $(CP) $(CMDS) ../$@,CMDS
-	$(foreach file, $(CMDS), $(OS9ATTR_EXEC) $@,CMDS/$(file);)
-	$(CD) cmds; $(CP) $(CMDS_D2) ../$@,CMDS
-	$(foreach file, $(CMDS_D2), $(OS9ATTR_EXEC) $@,CMDS/$(file);)
-	$(OS9RENAME) $@,CMDS/$(WHICHSHELL) shell
-	$(CD) sys; $(CPL) $(SYS) ../$@,SYS
-	$(foreach file, $(SYS), $(OS9ATTR_TEXT) $@,SYS/$(file);)
-	$(CD) defs; $(CPL) $(DEFS) ../$@,DEFS
-	$(foreach file, $(DEFS), $(OS9ATTR_TEXT) $@,DEFS/$(file);)
-	$(CPL) $(STARTUP) $@,startup
-	$(OS9ATTR_TEXT) $@,startup
-	$(MAKDIR) $@,NITROS9
-	$(MAKDIR) $@,NITROS9/6809L1
-	$(MAKDIR) $@,NITROS9/6809L1/CMDS
-	$(CD) cmds; $(CP) $(MODULECMDS) ../$@,NITROS9/6809L1/CMDS
-	$(foreach file, $(MODULECMDS), $(OS9ATTR_EXEC) $@,NITROS9/6809L1/CMDS/$(file);)
-	$(OS9RENAME) $@,NITROS9/6809L1/CMDS/$(WHICHSHELL) shell
-	$(MAKDIR) $@,NITROS9/6809L1/MODULES
-	$(MAKDIR) $@,NITROS9/6809L1/MODULES/BOOTTRACK
-	$(CD) modules; $(CP) $(BOOTTRACK) ../$@,NITROS9/6809L1/MODULES/BOOTTRACK
-	$(foreach file, $(BOOTTRACK), $(OS9ATTR_EXEC) $@,NITROS9/6809L1/MODULES/BOOTTRACK/$(file);)
-	$(MAKDIR) $@,NITROS9/6809L1/MODULES/KERNEL
-	$(CD) modules; $(CP) $(KERNEL) ../$@,NITROS9/6809L1/MODULES/KERNEL
-	$(foreach file, $(KERNEL), $(OS9ATTR_EXEC) $@,NITROS9/6809L1/MODULES/KERNEL/$(file);)
-	$(MAKDIR) $@,NITROS9/6809L1/MODULES/SYSMODS
-	$(CD) modules; $(CP) $(SYSMODS) ../$@,NITROS9/6809L1/MODULES/SYSMODS
-	$(foreach file, $(SYSMODS), $(OS9ATTR_EXEC) $@,NITROS9/6809L1/MODULES/SYSMODS/$(file);)
-	$(MAKDIR) $@,NITROS9/6809L1/MODULES/CLOCKS
-	$(CD) modules; $(CP) $(CLOCKS) ../$@,NITROS9/6809L1/MODULES/CLOCKS
-	$(foreach file, $(CLOCKS), $(OS9ATTR_EXEC) $@,NITROS9/6809L1/MODULES/CLOCKS/$(file);)
-	$(MAKDIR) $@,NITROS9/6809L1/MODULES/RBF
-	$(CD) modules; $(CP) $(RBF) ../$@,NITROS9/6809L1/MODULES/RBF
-	$(foreach file, $(RBF), $(OS9ATTR_EXEC) $@,NITROS9/6809L1/MODULES/RBF/$(file);)
-	$(MAKDIR) $@,NITROS9/6809L1/MODULES/SCF
-	$(CD) modules; $(CP) $(SCF) ../$@,NITROS9/6809L1/MODULES/SCF
-	$(foreach file, $(SCF), $(OS9ATTR_EXEC) $@,NITROS9/6809L1/MODULES/SCF/$(file);)
-	$(MAKDIR) $@,NITROS9/6809L1/MODULES/PIPE
-	$(CD) modules; $(CP) $(PIPE) ../$@,NITROS9/6809L1/MODULES/PIPE
-	$(foreach file, $(PIPE), $(OS9ATTR_EXEC) $@,NITROS9/6809L1/MODULES/PIPE/$(file);)
-	$(MAKDIR) $@,NITROS9/6809L1/BOOTLISTS
-	$(CD) bootlists; $(CPL) *.bl ../$@,NITROS9/6809L1/BOOTLISTS
-	$(MAKDIR) $@,NITROS9/6809L1/SCRIPTS
-	$(CD) scripts; $(CPL) mb* ../$@,NITROS9/6809L1/SCRIPTS
-	$(RM) $(LDSK720K)
-	$(SOFTLINK) $@ $(LDSK720K)
-
-info:
-	@echo "*** NitrOS-9/6809 Level 1 for the Tandy Color Computer ***" 
-	@$(foreach dsk, $(DSKS), $(ECHO) $(dsk);)
-	
--- a/level1/coco/modules/defsfile	Wed Jul 18 20:28:37 2012 -0500
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-         use   ../defsfile
--- a/level1/coco/modules/kernel/defsfile	Wed Jul 18 20:28:37 2012 -0500
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-         use   ../../defsfile
--- a/level1/coco/modules/kernel/makefile	Wed Jul 18 20:28:37 2012 -0500
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,32 +0,0 @@
-PORT = coco
-include $(NITROS9DIR)/rules.mak
-
-vpath %.asm $(LEVEL1)/modules/kernel
-
-DEPENDS		= ./makefile
-
-KERNEL		= krn
-KERNELP2	= krnp2
-SYSCALLS	= fcmpnam.asm fprsnam.asm
-
-AFLAGS		+= -I$(LEVEL1)/modules/kernel
-
-ALLOBJS		= $(KERNEL) $(KERNELP2)
-
-all:	$(ALLOBJS)
-
-$(KERNEL):	krn.asm $(SYSCALLS)
-
-$(KERNELP2):	krnp2.asm $(SYSCALLS)
-
-clean:
-	$(RM) $(ALLOBJS)
-
-showobjs:
-	@$(ECHO) $(ALLOBJS)
-
-showcopyobjs:
-	@$(ECHO) $(COPYOBJS)
-
-identify:
-	$(IDENT_SHORT) $(ALLOBJS)
--- a/level1/coco/modules/makefile	Wed Jul 18 20:28:37 2012 -0500
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,331 +0,0 @@
-PORT = coco
-include $(NITROS9DIR)/rules.mak
-
-vpath %.asm $(LEVEL1)/modules
-
-AFLAGS		+= -I$(LEVEL1)/modules
-
-CLOCKELIM       = -DRTCElim=1
-CLOCKDISTO2     = -DRTCDsto2=1
-CLOCKDISTO4     = -DRTCDsto4=1
-CLOCKBNB        = -DRTCBB=1
-CLOCKSMART      = -DRTCSmart=1 -DMPIFlag=1
-CLOCKHARRIS     = -DRTCHarrs=1
-CLOCKCLOUD9     = -DRTCCloud9=1
-CLOCKSOFT       = -DRTCSoft=1
-CLOCKMESSEMU    = -DRTCMessEmu=1
-CLOCKJVEMU      = -DRTCJVEmu=1
-TC3FLAGS        = $(AFLAGS) -DTC3=1 $(FLAGS)
-IDEFLAGS        = $(AFLAGS) -DIDE=1 $(FLAGS)
-
-DEPENDS		= ./makefile
-TPB		= $(3RDPARTY)/booters
-
-BOOTERS		= boot_1773_6ms boot_1773_30ms \
-		boot_burke boot_rampak boot_wd1002 boot_dw3 boot_dw3_coco1 \
-		boot_tc3 boot_ide boot_rom
-BOOTTRACK	= rel $(BOOTERS)
-KERNEL		= krn krnp2 wbug
-SYSMODS		= ioman init sysgo_dd sysgo_h0 rominfo vectors
-CLOCKS          = clock_60hz clock_50hz \
-		clock2_elim clock2_disto2 clock2_disto4 clock2_bnb \
-                clock2_smart clock2_harris clock2_cloud9 clock2_soft \
-		clock2_messemu clock2_jvemu clock2_dw3
-
-RBF		= rbf.mn \
-		rbdw3.dr dw3.sb dw3_coco1.sb \
-		rb1773.dr rb1773_scii_ff74.dr rb1773_scii_ff58.dr \
-		ddd0_35s.dd d0_35s.dd d1_35s.dd d2_35s.dd d3_35s.dd \
-		ddd0_40d.dd d0_40d.dd d1_40d.dd d2_40d.dd \
-		ddd0_80d.dd d0_80d.dd d1_80d.dd d2_80d.dd \
-		ddx0.dd x0.dd x1.dd x2.dd x3.dd \
-		rbsuper.dr lltc3.dr llide.dr \
-		ddi0_ide.dd i0_ide.dd i1_ide.dd ih_ide.dd \
-		dds0_tc3.dd s0_tc3.dd s1_tc3.dd s2_tc3.dd s3_tc3.dd s4_tc3.dd \
-                s5_tc3.dd s6_tc3.dd sh_tc3.dd
-
-SCF		= scf.mn \
-		sc6551.dr vrn.dr scbbp.dr scbbt.dr scdwp.dr sspak.dr vtio.dr \
-		covdg.io cohr.io \
-		nil.dd p_scbbp.dd p_scdwp.dd pipe.dd ssp.dd \
-		term_scbbt.dt term_sc6551.dt t1_scbbt.dd t2_sc6551.dd t3_sc6551.dd \
-		term32.dt term51.dt \
-		scdwn.dr term_scdwn.dt n_scdwn.dd n1_scdwn.dd n2_scdwn.dd \
-		n3_scdwn.dd n4_scdwn.dd n5_scdwn.dd n6_scdwn.dd n7_scdwn.dd \
-		n8_scdwn.dd n9_scdwn.dd n10_scdwn.dd n11_scdwn.dd n12_scdwn.dd \
-		n13_scdwn.dd midi_scdwn.dd
-
-PIPE		= pipeman.mn \
-		piper.dr \
-		pipe.dd
-
-RFM		= rfm.mn rfmdrv.dr ddy0.dd y0.dd y1.dd y2.dd y3.dd
-
-ALLOBJS		= $(BOOTTRACK) $(KERNEL) $(SYSMODS) $(CLOCKS) $(RBF) $(SCF) $(PIPE) $(RFM)
-
-all:	$(ALLOBJS)
-
-# Kernel
-krn krnp2:
-	$(CD) kernel; make $@
-	$(CP) kernel/$@ .
-
-# Special cases
-# TC^3 SCSI Booter
-boot_tc3: boot_scsi.asm
-	$(AS) $(ASOUT)$@ $< $(TC3FLAGS)
-
-# SuperIDE/Glenside IDE Booter
-boot_ide: boot_ide.asm
-	$(AS) $(ASOUT)$@ $< $(IDEFLAGS)
-
-# DriveWire 3
-boot_dw3_coco1: boot_dw3.asm
-	$(AS) $< $(ASOUT)$@ $(AFLAGS) -DBAUD38400=1
-
-dw3_coco1.sb: dw3.asm
-	$(AS) $< $(ASOUT)$@ $(AFLAGS) -DBAUD38400=1
-
-boot_1773_6ms:	boot_1773.asm
-	$(AS) $< $(ASOUT)$@ $(AFLAGS) -DDNum=0 -DSTEP=0
-
-boot_1773_30ms:	boot_1773.asm
-	$(AS) $< $(ASOUT)$@ $(AFLAGS) -DDNum=0 -DSTEP=3
-
-rb1773_scii_ff74.dr:	rb1773.asm
-	$(AS) $< $(ASOUT)$@ $(AFLAGS) -DSCII=1
-
-rb1773_scii_ff58.dr:	rb1773.asm
-	$(AS) $< $(ASOUT)$@ $(AFLAGS) -DSCII=1 -DSCIIALT=1
-
-# TC^3 SCSI Driver
-lltc3.dr: llscsi.asm
-	$(AS) $(ASOUT)$@ $< $(TC3FLAGS)
-
-# IDE Driver
-llide.dr: llide.asm
-	$(AS) $(ASOUT)$@ $< $(IDEFLAGS)
-
-# Floppy descriptors
-SSDD35		= -DCyls=35 -DSides=1 -DSectTrk=18 -DSectTrk0=18 \
-		-DInterlv=3 -DSAS=8 -DDensity=1
-DSDD40		= -DCyls=40 -DSides=2 -DSectTrk=18 -DSectTrk0=18 \
-		-DInterlv=3 -DSAS=8 -DDensity=1
-DSDD80		= -DCyls=80 -DSides=2 -DSectTrk=18 -DSectTrk0=18 \
-		-DInterlv=3 -DSAS=8 -DDensity=1 -DD35
-
-ddd0_35s.dd: rb1773desc.asm
-	$(AS) $< $(ASOUT)$@ $(AFLAGS) $(SSDD35) -DDNum=0 -DDD=1
-
-d0_35s.dd: rb1773desc.asm
-	$(AS) $< $(ASOUT)$@ $(AFLAGS) $(SSDD35) -DDNum=0
-
-d1_35s.dd: rb1773desc.asm
-	$(AS) $< $(ASOUT)$@ $(AFLAGS) $(SSDD35) -DDNum=1
-
-d2_35s.dd: rb1773desc.asm
-	$(AS) $< $(ASOUT)$@ $(AFLAGS) $(SSDD35) -DDNum=2
-
-d3_35s.dd: rb1773desc.asm
-	$(AS) $< $(ASOUT)$@ $(AFLAGS) $(SSDD35) -DDNum=3
-
-ddd0_40d.dd: rb1773desc.asm
-	$(AS) $< $(ASOUT)$@ $(AFLAGS) $(DSDD40) -DDNum=0 -DDD=1
-
-d0_40d.dd: rb1773desc.asm
-	$(AS) $< $(ASOUT)$@ $(AFLAGS) $(DSDD40) -DDNum=0
-
-d1_40d.dd: rb1773desc.asm
-	$(AS) $< $(ASOUT)$@ $(AFLAGS) $(DSDD40) -DDNum=1
-
-d2_40d.dd: rb1773desc.asm
-	$(AS) $< $(ASOUT)$@ $(AFLAGS) $(DSDD40) -DDNum=2
-
-ddd0_80d.dd: rb1773desc.asm
-	$(AS) $< $(ASOUT)$@ $(AFLAGS) $(DSDD80) -DDNum=0 -DDD=1
-
-d0_80d.dd: rb1773desc.asm
-	$(AS) $< $(ASOUT)$@ $(AFLAGS) $(DSDD80) -DDNum=0
-
-d1_80d.dd: rb1773desc.asm
-	$(AS) $< $(ASOUT)$@ $(AFLAGS) $(DSDD80) -DDNum=1
-
-d2_80d.dd: rb1773desc.asm
-	$(AS) $< $(ASOUT)$@ $(AFLAGS) $(DSDD80) -DDNum=2
-
-# DriveWire 3 SCF descriptors
-term_scdwn.dt: scdwndesc.asm
-	$(AS) $< $(ASOUT)$@ $(AFLAGS) -DAddr=0
-
-n_scdwn.dd: scdwndesc.asm
-	$(AS) $< $(ASOUT)$@ $(AFLAGS) -DAddr=255
-
-n1_scdwn.dd: scdwndesc.asm
-	$(AS) $< $(ASOUT)$@ $(AFLAGS) -DAddr=1
-
-n2_scdwn.dd: scdwndesc.asm
-	$(AS) $< $(ASOUT)$@ $(AFLAGS) -DAddr=2
-
-n3_scdwn.dd: scdwndesc.asm
-	$(AS) $< $(ASOUT)$@ $(AFLAGS) -DAddr=3
-
-n4_scdwn.dd: scdwndesc.asm
-	$(AS) $< $(ASOUT)$@ $(AFLAGS) -DAddr=4
-
-n5_scdwn.dd: scdwndesc.asm
-	$(AS) $< $(ASOUT)$@ $(AFLAGS) -DAddr=5
-
-n6_scdwn.dd: scdwndesc.asm
-	$(AS) $< $(ASOUT)$@ $(AFLAGS) -DAddr=6
-
-n7_scdwn.dd: scdwndesc.asm
-	$(AS) $< $(ASOUT)$@ $(AFLAGS) -DAddr=7
-
-n8_scdwn.dd: scdwndesc.asm
-	$(AS) $< $(ASOUT)$@ $(AFLAGS) -DAddr=8
-
-n9_scdwn.dd: scdwndesc.asm
-	$(AS) $< $(ASOUT)$@ $(AFLAGS) -DAddr=9
-
-n10_scdwn.dd: scdwndesc.asm
-	$(AS) $< $(ASOUT)$@ $(AFLAGS) -DAddr=10
-
-n11_scdwn.dd: scdwndesc.asm
-	$(AS) $< $(ASOUT)$@ $(AFLAGS) -DAddr=11
-
-n12_scdwn.dd: scdwndesc.asm
-	$(AS) $< $(ASOUT)$@ $(AFLAGS) -DAddr=12
-
-n13_scdwn.dd: scdwndesc.asm
-	$(AS) $< $(ASOUT)$@ $(AFLAGS) -DAddr=13
-
-midi_scdwn.dd: scdwndesc.asm
-	$(AS) $< $(ASOUT)$@ $(AFLAGS) -DAddr=14
-
-# DriveWire 3 RBF descriptors
-ddx0.dd: dwdesc.asm
-	$(AS) $< $(ASOUT)$@ $(AFLAGS) -DDD=1 -DDNum=0
-
-x0.dd: dwdesc.asm
-	$(AS) $< $(ASOUT)$@ $(AFLAGS) -DDNum=0
-
-x1.dd: dwdesc.asm
-	$(AS) $< $(ASOUT)$@ $(AFLAGS) -DDNum=1
-
-x2.dd: dwdesc.asm
-	$(AS) $< $(ASOUT)$@ $(AFLAGS) -DDNum=2
-
-x3.dd: dwdesc.asm
-	$(AS) $< $(ASOUT)$@ $(AFLAGS) -DDNum=3
-
-# TC^3 SCSI Descriptors
-dds0_tc3.dd: superdesc.asm
-	$(AS) $(ASOUT)$@ $< $(TC3FLAGS) $(ID0) -DDD=1
-
-s0_tc3.dd: superdesc.asm
-	$(AS) $(ASOUT)$@ $< $(TC3FLAGS) $(ID0) $(SCSI_HD)
-
-s1_tc3.dd: superdesc.asm
-	$(AS) $(ASOUT)$@ $< $(TC3FLAGS) $(ID1) $(SCSI_HD)
-
-s2_tc3.dd: superdesc.asm
-	$(AS) $(ASOUT)$@ $< $(TC3FLAGS) $(ID2) $(SCSI_HD)
-
-s3_tc3.dd: superdesc.asm
-	$(AS) $(ASOUT)$@ $< $(TC3FLAGS) $(ID3) $(SCSI_HD)
-
-s4_tc3.dd: superdesc.asm
-	$(AS) $(ASOUT)$@ $< $(TC3FLAGS) $(ID4) $(SCSI_HD)
-
-s5_tc3.dd: superdesc.asm
-	$(AS) $(ASOUT)$@ $< $(TC3FLAGS) $(ID5) $(SCSI_HD)
-
-s6_tc3.dd: superdesc.asm
-	$(AS) $(ASOUT)$@ $< $(TC3FLAGS) $(ID6) $(SCSI_HD)
-
-sh_tc3.dd: superdesc.asm
-	$(AS) $(ASOUT)$@ $< $(TC3FLAGS) $(HDBDOS)
-
-# IDE Descriptors
-ddi0_ide.dd: superdesc.asm
-	$(AS) $(ASOUT)$@ $< $(IDEFLAGS) $(MASTER) -DDD=1
-
-i0_ide.dd: superdesc.asm
-	$(AS) $(ASOUT)$@ $< $(IDEFLAGS) $(MASTER)
-
-i1_ide.dd: superdesc.asm
-	$(AS) $(ASOUT)$@ $< $(IDEFLAGS) $(SLAVE)
-
-ih_ide.dd: superdesc.asm
-	$(AS) $(ASOUT)$@ $< $(IDEFLAGS) $(HDBDOS)
-
-# RFM descriptors
-ddy0.dd: rfmdesc.asm
-	$(AS) $< $(ASOUT)$@ $(AFLAGS) -DDD=1 -DDNum=0
-
-y0.dd: rfmdesc.asm
-	$(AS) $< $(ASOUT)$@ $(AFLAGS) -DDNum=0
-
-y1.dd: rfmdesc.asm
-	$(AS) $< $(ASOUT)$@ $(AFLAGS) -DDNum=1
-
-y2.dd: rfmdesc.asm
-	$(AS) $< $(ASOUT)$@ $(AFLAGS) -DDNum=2
-
-y3.dd: rfmdesc.asm
-	$(AS) $< $(ASOUT)$@ $(AFLAGS) -DDNum=3
-
-rel: rel.asm
-	$(AS) $(AFLAGS) $(ASOUT)$@ $< -DDragon64=0
-
-sysgo_dd: sysgo.asm
-	$(AS) $(AFLAGS) $(ASOUT)$@ $< -DDD=1
-
-sysgo_h0: sysgo.asm
-	$(AS) $(AFLAGS) $(ASOUT)$@ $<
-
-# Clocks
-clock_60hz: clock.asm
-	$(AS) $(AFLAGS) $(ASOUT)$@ $< -DPwrLnFrq=60
-
-clock_50hz: clock.asm
-	$(AS) $(AFLAGS) $(ASOUT)$@ $< -DPwrLnFrq=50
-
-clock2_bnb: clock2_ds1315.asm
-	$(AS) $(AFLAGS) $(ASOUT)$@ $< -DBNB=1
-
-clock2_cloud9: clock2_ds1315.asm
-	$(AS) $(AFLAGS) $(ASOUT)$@ $< -DCLOUD9=1
-
-clean:
-	$(CD) kernel; make $@
-	$(RM) $(ALLOBJS)
-
-showobjs:
-	@$(ECHO) $(ALLOBJS)
-
-showboottrack:
-	@$(ECHO) $(BOOTTRACK)
-
-showkernel:
-	@$(ECHO) $(KERNEL)
-
-showsysmods:
-	@$(ECHO) $(SYSMODS)
-
-showclocks:
-	@$(ECHO) $(CLOCKS)
-
-showrbf:
-	@$(ECHO) $(RBF)
-
-showscf:
-	@$(ECHO) $(SCF)
-
-showpipe:
-	@$(ECHO) $(PIPE)
-
-identify:
-	$(IDENT_SHORT) $(ALLOBJS)
-
-
--- a/level1/coco/scripts/mb.dw3	Wed Jul 18 20:28:37 2012 -0500
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,30 +0,0 @@
--t
--x
-tmode .1 pau=0
-echo * NitrOS-9 Level 1 Boot Creation Script
-echo *
-echo * This script creates a bootable DriveWire 3 disk image
-echo * using the dw3.bl bootlist file.
-echo *
-echo * The resulting disk will boot NitrOS-9 from DriveWire drive 0.
-echo *
-prompt Insert a blank disk in /x1 and press a key:
-echo *
-echo * Step 1: Format disk in /x1
-format /x1 "NitrOS-9 Level 1 Boot Disk" r
-ynn
-echo *
-echo * Step 2: Create a custom boot track
-del bttemp
-merge ../MODULES/BOOTTRACK/rel ../MODULES/KERNEL/krn ../MODULES/KERNEL/krnp2 ../MODULES/SYSMODS/init ../MODULES/BOOTTRACK/boot_dw3>bttemp
-echo *
-echo * Step 3: Create the bootfile and boot track
-os9gen /x1 -t=bttemp<../BOOTLISTS/dw3.bl
-del bttemp
-echo *
-echo * Step 4: Populate the disk with essential files
-copy ../MODULES/SYSMODS/sysgo_dd /x1/sysgo
-makdir /x1/CMDS
-copy -w=/x1/CMDS ../CMDS/shell
-echo *
-echo * We're done
--- a/level1/coco/scripts/mb.dw3_coco1	Wed Jul 18 20:28:37 2012 -0500
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,30 +0,0 @@
--t
--x
-tmode .1 pau=0
-echo * NitrOS-9 Level 1 Boot Creation Script
-echo *
-echo * This script creates a bootable DriveWire 3 disk image
-echo * using the dw3_coco1.bl bootlist file.
-echo *
-echo * The resulting disk will boot NitrOS-9 from DriveWire disk 0.
-echo *
-echo "Please type the destination device (e.g. /x0, /x1)"
-var.1
-prompt Insert a blank disk in %1 and press a key:
-echo *
-echo * Step 1: Format disk in %1
-format %1 "NitrOS-9 Level 1 Boot Disk" r
-echo *
-echo * Step 2: Create a custom boot track
-merge ../MODULES/BOOTTRACK/rel ../MODULES/KERNEL/krn ../MODULES/KERNEL/krnp2 ../MODULES/SYSMODS/init ../MODULES/BOOTTRACK/boot_dw3_coco1>-bttemp
-echo *
-echo * Step 3: Create the bootfile and boot track
-os9gen %1 -t=bttemp<../BOOTLISTS/dw3_coco1.bl
-del bttemp
-echo *
-echo * Step 4: Populate the disk with essential files
-copy ../MODULES/SYSMODS/sysgo_dd %1/sysgo
-makdir %1/CMDS
-copy -w=%1/CMDS ../CMDS/shell
-echo *
-echo * We're done
--- a/level1/coco/scripts/mb.floppy	Wed Jul 18 20:28:37 2012 -0500
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,29 +0,0 @@
--t
--x
-tmode .1 pau=0
-echo * NitrOS-9 Level 1 Boot Creation Script
-echo *
-echo * This script creates a bootable floppy disk
-echo * using the standard.bl bootlist file.
-echo *
-echo * The resulting disk will boot NitrOS-9 from drive 0.
-echo *
-prompt Insert a blank disk in /d0 and press a key:
-echo *
-echo * Step 1: Format disk in /d0
-format /d0 "NitrOS-9 Level 1 Boot Disk" r
-echo *
-echo * Step 2: Create a custom boot track
-del bttemp
-merge ../MODULES/BOOTTRACK/rel ../MODULES/KERNEL/krn ../MODULES/KERNEL/krnp2 ../MODULES/SYSMODS/init ../MODULES/BOOTTRACK/boot_1773_6ms>bttemp
-echo *
-echo * Step 3: Create the bootfile and boot track
-os9gen /d0 -t=bttemp<../BOOTLISTS/standard.bl
-del bttemp
-echo *
-echo * Step 4: Populate the disk with essential files
-copy ../MODULES/SYSMODS/sysgo_dd /d0/sysgo
-makdir /d0/CMDS
-copy -w=/d0/CMDS ../CMDS/shell
-echo *
-echo * We're done
--- a/level1/coco/startup	Wed Jul 18 20:28:37 2012 -0500
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,7 +0,0 @@
-* Echo welcome message
-echo * Welcome to NitrOS-9 Level 1 *
-echo *    on the Color Computer    *
-* Start system time from keyboard
-setime </term
-date -t
-
--- a/level1/coco/startup.dw	Wed Jul 18 20:28:37 2012 -0500
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,6 +0,0 @@
-* Echo welcome message
-echo * Welcome to NitrOS-9 Level 1 *
-echo *      with DriveWire 4       *
-echo *    on the Color Computer    *
-date -t
-
--- a/level1/coco/sys/makefile	Wed Jul 18 20:28:37 2012 -0500
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,36 +0,0 @@
-PORT = coco
-include $(NITROS9DIR)/rules.mak
-
-vpath %.hp	$(LEVEL1)/sys
-
-DEPENDS		= ./makefile
-
-SYSFILES	= ../../sys/errmsg ../../sys/motd ../../sys/password ../../sys/inetd.conf
-HELPFILES	= asm.hp attr.hp backup.hp binex.hp build.hp chd.hp \
-		chx.hp cmp.hp cobbler.hp config.hp copy.hp cputype.hp date.hp \
-		dcheck.hp debug.hp ded.hp deiniz.hp del.hp deldir.hp devs.hp \
-		dir.hp dirsort.hp disasm.hp display.hp dmode.hp dsave.hp dump.hp echo.hp \
-		edit.hp error.hp ex.hp exbin.hp format.hp free.hp gfx.hp \
-		help.hp ident.hp iniz.hp inkey.hp irqs.hp kill.hp link.hp \
-		list.hp load.hp login.hp makdir.hp \
-		mdir.hp megaread.hp merge.hp mpi.hp mfree.hp os9gen.hp \
-		padrom.hp park.hp procs.hp prompt.hp pwd.hp pxd.hp \
-	 	rename.hp save.hp setime.hp \
-		setpr.hp shell.hp sleep.hp tee.hp tmode.hp touch.hp tsmon.hp \
-		tuneport.hp unlink.hp verify.hp xmode.hp
-HELPMSG		= helpmsg
-ALLOBJS		= $(SYSFILES) $(HELPMSG)
-
-
-all:	$(ALLOBJS) $(DEPENDS)
-
-alldragon: $(ALLOBJS)
-
-helpmsg: $(HELPFILES)
-	$(MERGE) $^ > $@
-
-clean:
-	$(RM) $(HELPMSG)
-
-showobjs:
-	@$(ECHO) $(ALLOBJS)
--- a/level1/coco/v2bugs.txt	Wed Jul 18 20:28:37 2012 -0500
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,143 +0,0 @@
-From: Pete_Lyall (pete@wlbreng1.UUCP)
-Subject: COCO OS9 2.00.00 bugs 
-Newsgroups: net.micro.6809
-Date: 1986-07-03 09:43:11 PST 
-
-COCO OS9 2.00.00 BUGS LIST
-===========================
-
-As with the 2.00.00 CCio patch, I'm merely passing this on to those that 
-are interested. Pete Lyall
-
-
-
-Description of bugs (and most fixes) in CoCo OS9 ver 2.00.00:
- From Kevin Darling and Kent Meyers. 08 Apr 86, rev: 13 Jun 86
- (Be sure to re-verify a module after a change)
- ------------------------------------
-
- MODULE: RS232 
- PROBLEM: Returns no error for bad type mode.
- SPECIFICS: Original src missing '#' for 'ldb #E$BMode'. Causes B reg to be
-loaded from $00CB, which is normally = $00. 
- SOLUTION: Change byte at offset $0180 from $D6 to $C6.
-
- MODULE: CCHDisk 
- PROBLEM: Returns no error on write verification failure. 
- SPECIFICS: Similiar to RS232 bug above, for E$Write.
- SOLUTION: Change byte at offset $00FC from $D6 to $C6.
-
- MODULE: Clock 
- PROBLEM: Day increments by two at midnite.
- SPECIFICS: Result of 'fix' to 1.XX bug. Extra increment intended for Feb 28
-hits all days instead.
- SOLUTION: Several patches in DL, including 'Official Tandy Patch', which also
-fixes Virq bug. Or use the following short patch from ??: (and re-verify
-module)
- Offset Old New
-  001A  00  1D
-  001C  1D  1C
-  0057  08  09
-  005A  27  C4
-  005B  04  03
-  005C  C4  26
-  005E  27  5F
-  005F  01  20
-  0060  4C  02
-
- MODULE: Clock 
- PROBLEM: Undo F$Virq call fails. 
- SPECIFICS: When a call is made to delete a F$Virq entry, the X register is
-pointed to a stack address, instead of loading X with the virq register entry
-off the stack.
- SOLUTION: Change byte at offset $0119 from $30 to $AE. 
-
- MODULE: IOMan 
- PROBLEM: F$IOQU code mistake.
- SPECIFICS: Major code change in IOMan. Idea was to sort queuing processes by
-age. Wrong register used for comparison.
- SOLUTION: Change the following bytes:
- Offset Old New
-  06BB  10  12
-  06BC  A3  E1
-
- MODULE: OS9p2 
- PROBLEM: F$UnLink does not terminate devices.
- SPECIFICS: Unlink of a filemgr, driver or desc, that is NOT in tbe bootfile
-but is in use, should return E$ModBsy error from a internal UnLink call to
-F$IODel. A wrong register was used, and a loaded mgr, driver, or desc module's
-space will be returned to the free mem pool.
- SOLUTI.dON: None at this time to fit within module. Hang on.
-
- MODULE: CCIO  
- PROBLEM: Failure to recognize CoCo keyboard Break keys.
- SPECIFICS: Because the order of IRQ was changed so that CCIO keyboard check
-follows Clock, the DP reg is set to $00. The Break or Shift-Break keys (signals
-2 and 3) sent to processes while in OS9 non-system state are ignored (the
-internal keyboard should've been an IRQ or VIRQ device). The bug will appear if
-the receiving program (Basic09 or otherwise) does not do much output, such as
-math routines, or using Inkey.
- SOLUTION: Use CCIOP files elsewhere in DL. Or instead, if doing a lot of
-internal processing, send a char to the screen within loops. This will increase
-the chance OS9 will be in a system state and will correctly handle the Break
-Sends. 
-
- MODULE: CCIO, CO80, CO32
- PROBLEM: Co-module terminate routines not called, etc.
- SPECIFICS: Termination of CCIO does not result in a call to codrivers'
-termination code. Worse, once you do a 'tmode type=xx' and change video
-codrivers, CCIO will still believe the other one is in memory. If it was NOT in
-the bootfile, a crash may result.
- SOLUTION: Until rewrite of CCIO - NEVER change to a different COXX, unlink the
-loaded one, then 'tmode type' back to the first. Instead of loading it from the
-exec directory, CCIO will jump into never-never land, if that space has been
-reused.
-
- MODULE: ACIAPAK 
- PROBLEM: Not fully reentrant.
- SPECIFICS: Each new incarnation saves current D.Firq vector; that vector
-restored upon termination. Use of this driver for more than one FIRQ device,
-and terminating their use in wrong order could result in FIRQ's going to bad
-address.
- SOLUTION: None yet. Perhaps driver was not intended to be used for more than
-one FIRQ device. Should be in docs. Decent solution would be for Clock or OS9
-or separate module to change firq's to irq's, instead of ACIAPAK.
-
- ---------------------------------- 
- Other 'bugs' and things of interest:
-
- MODULE: Unknown (?)
- PROBLEM: Machine locks up after using a new OS9Boot. 
- SPECIFICS: Unfound bug. Programs fail. Drives continue to run.  
- SOLUTION: Change order of OS9gen bootlist.
-
- MODULE: CCIO
- PROBLEM: Incompatibility with previous escape code drivers.
- SPECIFICS: New CCIO shunts all <esc> ($1B) (27) codes to GRFO module. This
-means original Wordpak software (Dynastar and Stylo for example) won't work. 
- SOLUTION: See C82KD.DOC in DL6. If you don't need OPak c&
-.YYCO80 drivers
-by Bill Dickhaus or Rick Johnson in DL6.
-
- MODULE: PRINTER
- PROBLEM: Delay for 'printer ready' too short for some devices.
- Sorry, don't have details now. I think Bernie Pluth and others may have a
-solution. 
-
- ----------------------
- Differences of interest:
-
- : Be careful using old Password files. Sysgo 2.0 sets default startup priority
-at 128, vs 1.XX's 0. If login seems very sluggish, check your SYS/Password
-parameters.
-
- : ACIAPAK 2.0 always assumes FIRQ device in first MPI slot. To use RS232 pak,
-etc in another slot, change the byte at offset $0080 (or $007F?) in ACIAPAK
-from 03 to:
- SLOT BYTE
-   1   03
-   2   13
-   3   23
-   4   --  Floppy controller slot
- ----------------------
- END OF FILE
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/level1/coco1/bootfiles/defsfile	Thu Jul 19 10:09:15 2012 -0500
@@ -0,0 +1,2 @@
+          use    ../defsfile
+          use    scfdefs
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/level1/coco1/bootfiles/makefile	Thu Jul 19 10:09:15 2012 -0500
@@ -0,0 +1,184 @@
+PORT = coco1
+include $(NITROS9DIR)/rules.mak
+
+# Module directory
+MD		= ../modules
+# Commands directory
+CD		= ../cmds
+
+DEPENDS		= ./makefile
+
+KERNEL_1773	= $(MD)/rel $(MD)/krn $(MD)/krnp2 $(MD)/init \
+		$(MD)/boot_1773_6ms
+
+KERNEL_DW3	= $(MD)/rel $(MD)/krn $(MD)/krnp2 $(MD)/init \
+		$(MD)/boot_dw3
+
+IDE		= $(3PD)/ide
+SCSI		= $(3PD)/scsisys
+
+FLOPPY_40D = $(MD)/rb1773.dr $(MD)/d0_40d.dd $(MD)/d1_40d.dd $(MD)/d2_40d.dd \
+          $(MD)/ddd0_40d.dd
+FLOPPY_80D = $(MD)/rb1773.dr $(MD)/d0_40d.dd $(MD)/d1_40d.dd $(MD)/d2_40d.dd \
+          $(MD)/ddd0_80d.dd
+VTIO_32COL = $(MD)/vtio.dr $(MD)/covdg.io $(MD)/term_vdg.dt
+VTIO_51COL = $(MD)/vtio.dr $(MD)/cohr.io $(MD)/term_hr.dt
+VTIO_80COL = $(MD)/vtio.dr $(MD)/co80.io $(MD)/term_80.dt
+PIPE       = $(MD)/pipeman.mn $(MD)/piper.dr $(MD)/pipe.dd
+CLOCK60HZ   = $(MD)/clock_60hz $(MD)/clock2_soft
+CLOCK60HZDW = $(MD)/clock_60hz $(MD)/clock2_dw3
+RBDW3      = $(MD)/rbdw3.dr $(MD)/dw3.sb \
+		$(MD)/ddx0.dd $(MD)/x1.dd $(MD)/x2.dd $(MD)/x3.dd
+SCDWV_NET  = $(MD)/n_scdwv.dd $(MD)/n1_scdwv.dd $(MD)/n2_scdwv.dd \
+		$(MD)/n3_scdwv.dd $(MD)/n4_scdwv.dd $(MD)/n5_scdwv.dd \
+		$(MD)/n6_scdwv.dd $(MD)/n7_scdwv.dd $(MD)/n8_scdwv.dd \
+		$(MD)/n9_scdwv.dd $(MD)/n10_scdwv.dd $(MD)/n11_scdwv.dd \
+		$(MD)/n12_scdwv.dd $(MD)/n13_scdwv.dd $(MD)/midi_scdwv.dd
+SCDWV_WIN  = $(MD)/n_scdwv.dd $(MD)/n1_scdwv.dd $(MD)/n2_scdwv.dd \
+		$(MD)/n3_scdwv.dd $(MD)/n4_scdwv.dd $(MD)/n5_scdwv.dd \
+		$(MD)/n6_scdwv.dd $(MD)/n7_scdwv.dd $(MD)/n8_scdwv.dd \
+		$(MD)/n9_scdwv.dd $(MD)/n10_scdwv.dd $(MD)/n11_scdwv.dd \
+		$(MD)/n12_scdwv.dd $(MD)/n13_scdwv.dd $(MD)/midi_scdwv.dd
+SCDWP     = $(MD)/scdwp.dr $(MD)/p_scdwp.dd
+		
+BOOTFILE_COVDG	= $(MD)/ioman \
+		$(MD)/rbf.mn \
+		$(FLOPPY_40D) \
+		$(MD)/scf.mn \
+		$(VTIO_32COL) \
+		$(MD)/scbbp.dr $(MD)/p_scbbp.dd \
+		$(MD)/scbbt.dr $(MD)/t1_scbbt.dd \
+		$(PIPE) \
+		$(CLOCK60HZ) \
+		$(MD)/sysgo_dd
+
+BOOTFILE_COHR	= $(MD)/ioman \
+		$(MD)/rbf.mn \
+		$(FLOPPY_40D) \
+		$(MD)/scf.mn \
+		$(VTIO_51COL) \
+		$(MD)/scbbp.dr $(MD)/p_scbbp.dd \
+		$(MD)/scbbt.dr $(MD)/t1_scbbt.dd \
+		$(PIPE) \
+		$(CLOCK60HZ) \
+		$(MD)/sysgo_dd
+
+BOOTFILE_CO80	= $(MD)/ioman \
+		$(MD)/rbf.mn \
+		$(FLOPPY_40D) \
+		$(MD)/scf.mn \
+		$(VTIO_80COL) \
+		$(MD)/scbbp.dr $(MD)/p_scbbp.dd \
+		$(MD)/scbbt.dr $(MD)/t1_scbbt.dd \
+		$(PIPE) \
+		$(CLOCK60HZ) \
+		$(MD)/sysgo_dd
+
+BOOTFILE_HEADLESS_DW3	= $(MD)/ioman \
+		$(MD)/rbf.mn \
+		$(RBDW3) \
+		$(MD)/scf.mn \
+		$(MD)/scdwv.dr \
+		$(SCDWV_NET) \
+		$(MD)/term_z_scdwv.dt \
+		$(SCDWV_WIN) \
+		$(SCDWP)\
+		$(PIPE) \
+		$(CLOCK60HZDW) \
+		$(MD)/sysgo_dd
+
+BOOTFILE_COVDG_DW3	= $(MD)/ioman \
+		$(MD)/rbf.mn \
+		$(FLOPPY_40D) \
+		$(RBDW3) \
+		$(MD)/scf.mn \
+		$(VTIO_32COL) \
+		$(MD)/scdwv.dr \
+		$(SCDWV_NET) \
+		$(SCDWV_WIN) \
+		$(SCDWP)\
+		$(PIPE) \
+		$(CLOCK60HZDW) \
+		$(MD)/sysgo_dd
+		
+BOOTFILE_COVDG_DS80	= $(MD)/ioman \
+		$(MD)/rbf.mn \
+		$(FLOPPY_80D) \
+		$(MD)/scf.mn \
+		$(VTIO_32COL) \
+		$(MD)/scbbp.dr $(MD)/p_scbbp.dd \
+		$(MD)/scbbt.dr $(MD)/t1_scbbt.dd \
+		$(PIPE) \
+		$(CLOCK60HZ) \
+		$(MD)/sysgo_dd
+
+BOOTFILE_COHR_DW3	= $(MD)/ioman \
+		$(MD)/rbf.mn \
+		$(FLOPPY_40D) \
+		$(RBDW3) \
+		$(MD)/scf.mn \
+		$(VTIO_51COL) \
+		$(MD)/scdwv.dr \
+		$(SCDWV_NET) \
+		$(SCDWP)\
+		$(PIPE) \
+		$(CLOCK60HZDW) \
+		$(MD)/sysgo_dd
+
+BOOTFILE_COHR_DS80	= $(MD)/ioman \
+		$(MD)/rbf.mn \
+		$(FLOPPY_80D) \
+		$(MD)/scf.mn \
+		$(VTIO_80COL) \
+		$(MD)/scbbp.dr $(MD)/p_scbbp.dd \
+		$(MD)/scbbt.dr $(MD)/t1_scbbt.dd \
+		$(PIPE) \
+		$(CLOCK60HZ) \
+		$(MD)/sysgo_dd
+
+BOOTFILES	= bootfile_covdg bootfile_cohr bootfile_covdg_dw3 \
+		bootfile_headless_dw3 \
+		bootfile_cohr_dw3 bootfile_covdg_ds80 bootfile_cohr_ds80
+KERNELS		= kernel_1773 kernel_dw3
+
+ALLOBJS		= $(BOOTFILES) $(KERNELS)
+
+all:	$(ALLOBJS)
+
+bootfile_covdg: $(BOOTFILE_COVDG) $(DEPENDS)
+	$(MERGE) $(BOOTFILE_COVDG)>$@
+
+bootfile_cohr: $(BOOTFILE_COHR) $(DEPENDS)
+	$(MERGE) $(BOOTFILE_COHR)>$@
+
+bootfile_co80: $(BOOTFILE_CO80) $(DEPENDS)
+	$(MERGE) $(BOOTFILE_CO80)>$@
+
+bootfile_covdg_ds80: $(BOOTFILE_COVDG_DS80) $(DEPENDS)
+	$(MERGE) $(BOOTFILE_COVDG_DS80)>$@
+
+bootfile_headless_dw3: $(BOOTFILE_HEADLESS_DW3) $(DEPENDS)
+	$(MERGE) $(BOOTFILE_HEADLESS_DW3)>$@
+
+bootfile_covdg_dw3: $(BOOTFILE_COVDG_DW3) $(DEPENDS)
+	$(MERGE) $(BOOTFILE_COVDG_DW3)>$@
+
+bootfile_cohr_ds80: $(BOOTFILE_COHR_DS80) $(DEPENDS)
+	$(MERGE) $(BOOTFILE_COHR_DS80)>$@
+
+bootfile_cohr_dw3: $(BOOTFILE_COHR_DW3) $(DEPENDS)
+	$(MERGE) $(BOOTFILE_COHR_DW3)>$@
+
+# WD1773 Kernel
+kernel_1773: $(KERNEL_1773) $(DEPENDS)
+	$(MERGE) $(KERNEL_1773)>$@
+	$(PADROM) 4608 $@
+
+# DriveWire 3 Kernel
+kernel_dw3: $(KERNEL_DW3) $(DEPENDS)
+	$(MERGE) $(KERNEL_DW3)>$@
+	$(PADROM) 4608 $@
+
+clean:
+	$(RM) $(ALLOBJS)
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/level1/coco1/bootlists/dw3.bl	Thu Jul 19 10:09:15 2012 -0500
@@ -0,0 +1,200 @@
+***************************************
+* NitrOS-9 Level 1 CoCo Bootlist
+*
+* $Id$
+*
+* This bootlist is presented as an example for creating custom bootfiles.
+* A module may be excluded from the bootfile if an asterisk (*) is the
+* first character of the line.
+*
+***************************************
+* Kernel/System Section
+*
+* These modules are mandatory.
+../MODULES/SYSMODS/ioman
+*
+***************************************
+* CDF Section (HawkSoft)
+*
+*../MODULES/CDF/cdf.mn
+*
+* CDF descriptors - select as needed
+* SCSI descriptors (IDs 0-6)
+*../MODULES/CDF/sc0.dd
+*../MODULES/CDF/sc1.dd
+*../MODULES/CDF/sc2.dd
+*../MODULES/CDF/sc3.dd
+*../MODULES/CDF/sc4.dd
+*../MODULES/CDF/sc5.dd
+*../MODULES/CDF/sc6.dd
+* IDE descriptors (master/slave)
+*../MODULES/CDF/ic0.dd
+*../MODULES/CDF/ic1.dd
+*
+***************************************
+* RBF Section
+*
+../MODULES/RBF/rbf.mn
+*
+* DriveWire 3 RBF driver 
+../MODULES/RBF/rbdw3.dr
+../MODULES/RBF/dw3.sb
+* DriveWire descriptors - select as needed
+../MODULES/RBF/ddx0.dd
+*../MODULES/RBF/x0.dd
+../MODULES/RBF/x1.dd
+../MODULES/RBF/x2.dd
+../MODULES/RBF/x3.dd
+*
+* SuperDriver Package
+*../MODULES/RBF/rbsuper.dr
+* Select Low level SCSI and/or IDE driver
+*../MODULES/RBF/lltc3.dr
+*../MODULES/RBF/llide.dr
+* SuperDriver descriptors - select as needed
+* TC^3 SCSI DD Descriptor (ID 0)
+*../MODULES/RBF/dds0_tc3.dd
+* TC^3 SCSI descriptors (IDs 0-6)
+*../MODULES/RBF/s0_tc3.dd
+*../MODULES/RBF/s1_tc3.dd
+*../MODULES/RBF/s2_tc3.dd
+*../MODULES/RBF/s3_tc3.dd
+*../MODULES/RBF/s4_tc3.dd
+*../MODULES/RBF/s5_tc3.dd
+*../MODULES/RBF/s6_tc3.dd
+* TC^3 SCSI HDB-DOS descriptor
+*../MODULES/RBF/sh_tc3.dd
+* IDE DD descriptor (Master)
+*../MODULES/RBF/ddi0_ide.dd
+* IDE descriptors (master/slave)
+*../MODULES/RBF/i0_ide.dd
+*../MODULES/RBF/i1_ide.dd
+* IDE HDB-DOS descriptor
+*../MODULES/RBF/ih_ide.dd
+*
+* WD1773 floppy support for Tandy and compatible disk controllers
+../MODULES/RBF/rb1773.dr
+* WD1773 floppy support for Disto Super Controller II
+*../MODULES/RBF/rb1773_scii_ff74.dr
+*../MODULES/RBF/rb1773_scii_ff58.dr
+* Floppy device descriptors
+* DD - default device - choose one if needed
+*../MODULES/RBF/ddd0_35s.dd
+*../MODULES/RBF/ddd0_40d.dd
+*../MODULES/RBF/ddd0_80d.dd
+* D0 - drive 0 - choose one if needed
+*../MODULES/RBF/d0_35s.dd
+../MODULES/RBF/d0_40d.dd
+*../MODULES/RBF/d0_80d.dd
+* D1 - drive 1 - choose one if needed
+*../MODULES/RBF/d1_35s.dd
+../MODULES/RBF/d1_40d.dd
+*../MODULES/RBF/d1_80d.dd
+* D2 - drive 2 - choose one if needed
+*../MODULES/RBF/d2_35s.dd
+../MODULES/RBF/d2_40d.dd
+*../MODULES/RBF/d2_80d.dd
+* D3 - drive 3 - choose if needed
+*../MODULES/RBF/d3_35s.dd
+***************************************
+* SCF Section
+*
+../MODULES/SCF/scf.mn
+*
+* Video Terminal I/O driver and subroutine modules
+../MODULES/SCF/vtio.dr
+* Choose from CoVDG (32x16 VDG), CoHR (Hi-Res 51x24 graphics screen) or Co80 (Word-Pak)
+../MODULES/SCF/covdg.io
+*../MODULES/SCF/cohr.io
+*../MODULES/SCF/co80.io
+*
+* Select only one term descriptor
+../MODULES/SCF/term_vdg.dt
+*../MODULES/SCF/term_hr.dt
+*../MODULES/SCF/term_80.dt
+*../MODULES/SCF/term_scbbt.dt
+*../MODULES/SCF/term_sc6551.dt
+*
+* Serial port drivers
+* CoCo Bit-Banger terminal port
+*../MODULES/SCF/scbbt.dr
+*../MODULES/SCF/t1_scbbt.dd
+* 6551 ACIA
+*../MODULES/SCF/sc6551.dr
+*../MODULES/SCF/t2_sc6551.dd
+*../MODULES/SCF/t3_sc6551.dd
+*
+* Printer drivers
+* ../MODULES/SCF/scbbp.dr
+* ../MODULES/SCF/p_scbbp.dd
+*
+* DriveWire 3 Printer drivers
+* ../MODULES/SCF/scdwp.dr
+* ../MODULES/SCF/p_scdwp.dd
+*
+* DriveWire Virtual Channel Driver
+*../MODULES/SCF/scdwv.dr
+*../MODULES/SCF/term_scdwv.dt
+*../MODULES/SCF/n_scdwv.dd
+*../MODULES/SCF/n1_scdwv.dd
+*../MODULES/SCF/n2_scdwv.dd
+*../MODULES/SCF/n3_scdwv.dd
+*../MODULES/SCF/n4_scdwv.dd
+*../MODULES/SCF/n5_scdwv.dd
+*../MODULES/SCF/n6_scdwv.dd
+*../MODULES/SCF/n7_scdwv.dd
+*../MODULES/SCF/n8_scdwv.dd
+*../MODULES/SCF/n9_scdwv.dd
+*../MODULES/SCF/n10_scdwv.dd
+*../MODULES/SCF/n11_scdwv.dd
+*../MODULES/SCF/n12_scdwv.dd
+*../MODULES/SCF/n13_scdwv.dd
+*../MODULES/SCF/n14_scdwv.dd
+*../MODULES/SCF/term_z_scdwv.dt
+*../MODULES/SCF/z1_scdwv.dd
+*../MODULES/SCF/z2_scdwv.dd
+*../MODULES/SCF/z3_scdwv.dd
+*../MODULES/SCF/z4_scdwv.dd
+*../MODULES/SCF/z5_scdwv.dd
+*../MODULES/SCF/z6_scdwv.dd
+*../MODULES/SCF/z7_scdwv.dd
+*
+***************************************
+* Pipe Section
+*
+* Pipes are a useful but optional part of a system.
+../MODULES/PIPE/pipeman.mn
+../MODULES/PIPE/piper.dr
+../MODULES/PIPE/pipe.dd
+*
+***************************************
+* Clock Section
+*
+* Select one clock module depending upon your power line frequency
+* (60Hz = USA/Canada; 50Hz = Europe, Australia)
+../MODULES/CLOCKS/clock_60hz
+*../MODULES/CLOCKS/clock_50hz
+* Select one clock2 module that supports your real-time clock, if any.
+* Besides support for the internal software clock, the following
+* hardware clocks are supported: Burke & Burke, Disto 2-N-1, Disto 4-N-1,
+* Eliminator, Harris, SmartWatch, Cloud-9, the MESS emulator, Jeff
+* Vavasour's CoCo emulator, and DriveWire.
+*../MODULES/CLOCKS/clock2_soft
+*../MODULES/CLOCKS/clock2_bnb
+*../MODULES/CLOCKS/clock2_disto2
+*../MODULES/CLOCKS/clock2_disto4
+*../MODULES/CLOCKS/clock2_elim
+*../MODULES/CLOCKS/clock2_harris
+*../MODULES/CLOCKS/clock2_smart
+*../MODULES/CLOCKS/clock2_jvemu
+*../MODULES/CLOCKS/clock2_messemu
+*../MODULES/CLOCKS/clock2_cloud9
+../MODULES/CLOCKS/clock2_dw3
+* 
+***************************************
+* System Kick-Start Module
+*
+* Choose which startup module you wish to use. (sysgo_dd is recommended
+* for most configurations.)
+../MODULES/SYSMODS/sysgo_dd
+*../MODULES/SYSMODS/sysgo_h0
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/level1/coco1/bootlists/standard.bl	Thu Jul 19 10:09:15 2012 -0500
@@ -0,0 +1,199 @@
+***************************************
+* NitrOS-9 Level 1 CoCo Bootlist
+*
+* $Id$
+*
+* This bootlist is presented as an example for creating custom bootfiles.
+* A module may be excluded from the bootfile if an asterisk (*) is the
+* first character of the line.
+*
+***************************************
+* Kernel/System Section
+*
+* These modules are mandatory.
+../MODULES/SYSMODS/ioman
+*
+***************************************
+* CDF Section (HawkSoft)
+*
+*../MODULES/CDF/cdf.mn
+*
+* CDF descriptors - select as needed
+* SCSI descriptors (IDs 0-6)
+*../MODULES/CDF/sc0.dd
+*../MODULES/CDF/sc1.dd
+*../MODULES/CDF/sc2.dd
+*../MODULES/CDF/sc3.dd
+*../MODULES/CDF/sc4.dd
+*../MODULES/CDF/sc5.dd
+*../MODULES/CDF/sc6.dd
+* IDE descriptors (master/slave)
+*../MODULES/CDF/ic0.dd
+*../MODULES/CDF/ic1.dd
+*
+***************************************
+* RBF Section
+*
+../MODULES/RBF/rbf.mn
+*
+* DriveWire 3 RBF driver
+*../MODULES/RBF/rbdw3.dr
+*../MODULES/RBF/dw3.sb
+* DriveWire descriptors - select as needed
+*../MODULES/RBF/ddx0.dd
+*../MODULES/RBF/x0.dd
+*../MODULES/RBF/x1.dd
+*../MODULES/RBF/x2.dd
+*../MODULES/RBF/x3.dd
+*
+* SuperDriver Package
+*../MODULES/RBF/rbsuper.dr
+* Select Low level SCSI and/or IDE driver
+*../MODULES/RBF/lltc3.dr
+*../MODULES/RBF/llide.dr
+* SuperDriver descriptors - select as needed
+* TC^3 SCSI DD Descriptor (ID 0)
+*../MODULES/RBF/dds0_tc3.dd
+* TC^3 SCSI descriptors (IDs 0-6)
+*../MODULES/RBF/s0_tc3.dd
+*../MODULES/RBF/s1_tc3.dd
+*../MODULES/RBF/s2_tc3.dd
+*../MODULES/RBF/s3_tc3.dd
+*../MODULES/RBF/s4_tc3.dd
+*../MODULES/RBF/s5_tc3.dd
+*../MODULES/RBF/s6_tc3.dd
+* TC^3 SCSI HDB-DOS descriptor
+*../MODULES/RBF/sh_tc3.dd
+* IDE DD descriptor (Master)
+*../MODULES/RBF/ddi0_ide.dd
+* IDE descriptors (master/slave)
+*../MODULES/RBF/i0_ide.dd
+*../MODULES/RBF/i1_ide.dd
+* IDE HDB-DOS descriptor
+*../MODULES/RBF/ih_ide.dd
+*
+* WD1773 floppy support for Tandy and compatible disk controllers
+../MODULES/RBF/rb1773.dr
+* WD1773 floppy support for Disto Super Controller II
+*../MODULES/RBF/rb1773_scii_ff74.dr
+*../MODULES/RBF/rb1773_scii_ff58.dr
+* Floppy device descriptors
+* DD - default device - choose one if needed
+*../MODULES/RBF/ddd0_35s.dd
+../MODULES/RBF/ddd0_40d.dd
+*../MODULES/RBF/ddd0_80d.dd
+* D0 - drive 0 - choose one if needed
+*../MODULES/RBF/d0_35s.dd
+../MODULES/RBF/d0_40d.dd
+*../MODULES/RBF/d0_80d.dd
+* D1 - drive 1 - choose one if needed
+*../MODULES/RBF/d1_35s.dd
+../MODULES/RBF/d1_40d.dd
+*../MODULES/RBF/d1_80d.dd
+* D2 - drive 2 - choose one if needed
+*../MODULES/RBF/d2_35s.dd
+../MODULES/RBF/d2_40d.dd
+*../MODULES/RBF/d2_80d.dd
+* D3 - drive 3 - choose if needed
+*../MODULES/RBF/d3_35s.dd
+***************************************
+* SCF Section
+*
+../MODULES/SCF/scf.mn
+*
+* Video Terminal I/O driver and subroutine modules
+../MODULES/SCF/vtio.dr
+* Choose from CoVDG (32x16 VDG), CoHR (Hi-Res 51x24 graphics screen) or Co80 (WordPak)
+../MODULES/SCF/covdg.io
+*../MODULES/SCF/cohr.io
+*
+* Select only one term descriptor
+../MODULES/SCF/term_vdg.dt
+*../MODULES/SCF/term_hr.dt
+*../MODULES/SCF/term_80.dt
+*../MODULES/SCF/term_scbbt.dt
+*../MODULES/SCF/term_sc6551.dt
+*
+* Serial port drivers
+* CoCo Bit-Banger terminal port
+*../MODULES/SCF/scbbt.dr
+*../MODULES/SCF/t1_scbbt.dd
+* 6551 ACIA
+*../MODULES/SCF/sc6551.dr
+*../MODULES/SCF/t2_sc6551.dd
+*../MODULES/SCF/t3_sc6551.dd
+*
+* Printer drivers
+* ../MODULES/SCF/scbbp.dr
+* ../MODULES/SCF/p_scbbp.dd
+*
+* DriveWire 3 Printer drivers
+* ../MODULES/SCF/scdwp.dr
+* ../MODULES/SCF/p_scdwp.dd
+*
+* DriveWire Virtual Channel Driver
+*../MODULES/SCF/scdwv.dr
+*../MODULES/SCF/term_scdwv.dt
+*../MODULES/SCF/n_scdwv.dd
+*../MODULES/SCF/n1_scdwv.dd
+*../MODULES/SCF/n2_scdwv.dd
+*../MODULES/SCF/n3_scdwv.dd
+*../MODULES/SCF/n4_scdwv.dd
+*../MODULES/SCF/n5_scdwv.dd
+*../MODULES/SCF/n6_scdwv.dd
+*../MODULES/SCF/n7_scdwv.dd
+*../MODULES/SCF/n8_scdwv.dd
+*../MODULES/SCF/n9_scdwv.dd
+*../MODULES/SCF/n10_scdwv.dd
+*../MODULES/SCF/n11_scdwv.dd
+*../MODULES/SCF/n12_scdwv.dd
+*../MODULES/SCF/n13_scdwv.dd
+*../MODULES/SCF/n14_scdwv.dd
+*../MODULES/SCF/term_z_scdwv.dt
+*../MODULES/SCF/z1_scdwv.dd
+*../MODULES/SCF/z2_scdwv.dd
+*../MODULES/SCF/z3_scdwv.dd
+*../MODULES/SCF/z4_scdwv.dd
+*../MODULES/SCF/z5_scdwv.dd
+*../MODULES/SCF/z6_scdwv.dd
+*../MODULES/SCF/z7_scdwv.dd
+*
+***************************************
+* Pipe Section
+*
+* Pipes are a useful but optional part of a system.
+../MODULES/PIPE/pipeman.mn
+../MODULES/PIPE/piper.dr
+../MODULES/PIPE/pipe.dd
+*
+***************************************
+* Clock Section
+*
+* Select one clock module depending upon your power line frequency
+* (60Hz = USA/Canada; 50Hz = Europe, Australia)
+../MODULES/CLOCKS/clock_60hz
+*../MODULES/CLOCKS/clock_50hz
+* Select one clock2 module that supports your real-time clock, if any.
+* Besides support for the internal software clock, the following
+* hardware clocks are supported: Burke & Burke, Disto 2-N-1, Disto 4-N-1,
+* Eliminator, Harris, SmartWatch, Cloud-9, the MESS emulator, Jeff
+* Vavasour's CoCo emulator, and DriveWire.
+../MODULES/CLOCKS/clock2_soft
+*../MODULES/CLOCKS/clock2_bnb
+*../MODULES/CLOCKS/clock2_disto2
+*../MODULES/CLOCKS/clock2_disto4
+*../MODULES/CLOCKS/clock2_elim
+*../MODULES/CLOCKS/clock2_harris
+*../MODULES/CLOCKS/clock2_smart
+*../MODULES/CLOCKS/clock2_jvemu
+*../MODULES/CLOCKS/clock2_messemu
+*../MODULES/CLOCKS/clock2_cloud9
+*../MODULES/CLOCKS/clock2_dw3
+* 
+***************************************
+* System Kick-Start Module
+*
+* Choose which startup module you wish to use. (sysgo_dd is recommended
+* for most configurations.)
+../MODULES/SYSMODS/sysgo_dd
+*../MODULES/SYSMODS/sysgo_h0
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/level1/coco1/bootroms/makefile	Thu Jul 19 10:09:15 2012 -0500
@@ -0,0 +1,42 @@
+include $(NITROS9DIR)/rules.mak
+
+# Module directory
+MD		= ../modules
+# Commands directory
+CD		= ../cmds
+
+DEPENDS		= ./makefile
+
+KERNEL_ROM	= $(MD)/rel $(MD)/krn $(MD)/krnp2 $(MD)/init $(MD)/boot_rom
+
+BOOTFILE_ROM	= $(MD)/rominfo $(MD)/ioman \
+		$(MD)/scf.mn $(MD)/vtio.dr \
+		$(MD)/covdg.io \
+		$(MD)/term_vdg.dt \
+		$(MD)/clock_60hz $(MD)/clock2_soft
+
+BOOTROMS	= nos96809l1.rom
+KERNELS		= kernel_rom
+
+ALLROMS		= $(BOOTROMS)
+
+all:	$(ALLROMS)
+
+# Bootfiles
+nos96809l1.rom: $(BOOTFILE_ROM) $(KERNEL_ROM) $(DEPENDS)
+	$(MERGE) $(BOOTFILE_ROM)>$@.tmp
+	$(PADROM) 11776 $@.tmp
+	$(MERGE) $(KERNEL_ROM)>kernel_rom
+	$(PADROM) 4592 kernel_rom
+	$(MERGE) $@.tmp kernel_rom>$@.tmp2
+	$(MERGE) $@.tmp2 $(MD)/vectors>$@
+	$(RM) $@.tmp $@.tmp2
+	
+
+# Kernels
+kernel_rom: $(KERNEL_ROM) $(DEPENDS)
+	$(MERGE) $(KERNEL_ROM)>$@
+
+clean:
+	$(RM) $(ALLROMS) $(KERNELS)
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/level1/coco1/cmds/defsfile	Thu Jul 19 10:09:15 2012 -0500
@@ -0,0 +1,1 @@
+          use    ../defsfile
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/level1/coco1/cmds/makefile	Thu Jul 19 10:09:15 2012 -0500
@@ -0,0 +1,59 @@
+PORT = coco
+include $(NITROS9DIR)/rules.mak
+
+vpath %.a $(LEVEL1)/cmds
+vpath %.asm $(LEVEL1)/cmds:$(NITROS9DIR)/3rdparty/packages/basic09
+
+DEPENDS		= ./makefile
+
+AFLAGS		+= --includedir=$(NITROS9DIR)/3rdparty/packages/basic09
+LFLAGS		+= -l=$(NITROS9DIR)/lib/net.l -l=$(NITROS9DIR)/lib/alib.l -l=$(NITROS9DIR)/lib/sys6809l1.l
+
+BASIC09FILES	= basic09.asm runb.asm gfx.asm inkey.asm syscall.asm
+CMDS		= asm attr backup binex build calldbg cmp cobbler copy cputype \
+		date dcheck debug ded deiniz del deldir devs dir dirsort disasm \
+		display dmode dsave dump echo edit error exbin format \
+		free grfdrv help ident iniz irqs link list load login makdir \
+		megaread mdir merge mfree mpi os9gen padrom park printerr procs prompt pwd pxd \
+		rename save setime shellplus shell_21 sleep \
+		tee tmode touch tsmon tuneport unlink verify xmode
+
+CMDS_D2		= basic09 runb gfx inkey syscall copy del echo format \
+		merge os9gen prompt tmode
+
+CMDS_DW		= inetd telnet dw
+
+SUBS		= gfx inkey syscall
+ALLOBJS		= $(CMDS) $(CMDS_D2) $(CMDS_DW) $(SUBS)
+
+all:	$(ALLOBJS)
+
+pwd:	pd.asm
+	$(AS) $(AFLAGS) $< $(ASOUT)$@ -DPWD=1
+
+xmode:	xmode.asm
+	$(AS) $(AFLAGS) $< $(ASOUT)$@ -DXMODE=1
+
+tmode:	xmode.asm
+	$(AS) $(AFLAGS) $< $(ASOUT)$@ -DTMODE=1
+
+pxd:	pd.asm
+	$(AS) $(AFLAGS) $< $(ASOUT)$@ -DPXD=1
+	
+clean:
+	$(RM) $(ALLOBJS)
+
+identify:
+	$(IDENT_SHORT) $(ALLOBJS)
+
+showobjs:
+	@$(ECHO) $(CMDS)
+
+showobjs_d2:
+	@$(ECHO) $(CMDS_D2)
+
+showobjs_dw:
+	@$(ECHO) $(CMDS) $(CMDS_DW)
+
+showallobjs:
+	@$(ECHO) $(ALLOBJS)
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/level1/coco1/defs/defsfile.asm	Thu Jul 19 10:09:15 2012 -0500
@@ -0,0 +1,8 @@
+Level equ 1
+
+ ifp1
+ use /dd/defs/os9.d
+ use /dd/defs/rbf.d
+ use /dd/defs/scf.d
+ use /dd/defs/coco.d
+ endc
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/level1/coco1/defs/makefile	Thu Jul 19 10:09:15 2012 -0500
@@ -0,0 +1,35 @@
+PORT = coco
+include $(NITROS9DIR)/rules.mak
+
+DEPENDS		= ./makefile
+
+DEFOPTS		= --preprocess -DLevel=1
+DEFSDIR		= ../../../defs
+DEFS		= defsfile os9.d rbf.d scf.d coco.d cocovtio.d
+ALLOBJS		= $(DEFS)
+
+all:	$(ALLOBJS)
+
+defsfile: defsfile.asm
+	$(AS) $(DEFOPTS)  $< > $@
+
+os9.d: $(DEFSDIR)/os9.d
+	$(AS) $(DEFOPTS) -DOS9.D=0 $< > $@
+
+rbf.d: $(DEFSDIR)/rbf.d
+	$(AS) $(DEFOPTS) -DRBF.D=0 $< > $@
+
+scf.d: $(DEFSDIR)/scf.d
+	$(AS) $(DEFOPTS) -DSCF.D=0 $< > $@
+
+coco.d: $(DEFSDIR)/coco.d
+	$(AS) $(DEFOPTS) -DCOCO.D=0 $< > $@
+
+cocovtio.d: $(DEFSDIR)/cocovtio.d
+	$(AS) $(DEFOPTS) -DCOCOVTIO.D=0 $< > $@
+
+clean:
+	$(RM) $(DEFS)
+
+showobjs:
+	@$(ECHO) $(ALLOBJS)
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/level1/coco1/defsfile	Thu Jul 19 10:09:15 2012 -0500
@@ -0,0 +1,6 @@
+Level    equ   1
+
+         use   os9.d
+         use   scf.d
+         use   rbf.d
+         use   coco.d
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/level1/coco1/makefile	Thu Jul 19 10:09:15 2012 -0500
@@ -0,0 +1,253 @@
+PORT = coco1
+include $(NITROS9DIR)/rules.mak
+
+CPU		= 6809
+LEVEL		= 1
+
+# Level 1 - Specify which shell should be used
+#WHICHSHELL	= shellplus
+WHICHSHELL	= shell_21
+
+DISTRO		= $(CPU)L$(LEVEL)
+DISTRONAME	= nos9$(CPU)l$(LEVEL)
+DISTROVER	= $(DISTRONAME)$(NITROS9VER)$(PORT)
+BOOTFILE_COVDG	= bootfiles/bootfile_covdg
+BOOTFILE_COHR	= bootfiles/bootfile_cohr
+BOOTFILE_COVDG_DS80	= bootfiles/bootfile_covdg_ds80
+BOOTFILE_HEADLESS_DW3	= bootfiles/bootfile_headless_dw3
+BOOTFILE_COVDG_DW3	= bootfiles/bootfile_covdg_dw3
+BOOTFILE_COHR_DS80	= bootfiles/bootfile_cohr_ds80
+BOOTFILE_COHR_DW3	= bootfiles/bootfile_cohr_dw3
+KERNELFILE	= bootfiles/kernel_1773
+KERNELFILE_DW3	= bootfiles/kernel_dw3
+DIRS		= cmds modules defs sys bootfiles bootroms
+
+
+CMDS		= $(shell $(CD) cmds; make --no-print-directory showobjs)
+CMDS_D2		= $(shell $(CD) cmds; make --no-print-directory showobjs_d2)
+CMDS_DW		= $(shell $(CD) cmds; make --no-print-directory showobjs_dw)
+BOOTTRACK	= $(shell $(CD) modules; make --no-print-directory showboottrack)
+KERNEL		= $(shell $(CD) modules; make --no-print-directory showkernel)
+SYSMODS		= $(shell $(CD) modules; make --no-print-directory showsysmods)
+CLOCKS		= $(shell $(CD) modules; make --no-print-directory showclocks)
+RBF		= $(shell $(CD) modules; make --no-print-directory showrbf)
+SCF		= $(shell $(CD) modules; make --no-print-directory showscf)
+PIPE		= $(shell $(CD) modules; make --no-print-directory showpipe)
+MODULECMDS	= $(WHICHSHELL) del echo format makdir merge os9gen prompt tmode
+
+SYS		= $(shell $(CD) sys; make --no-print-directory showobjs)
+DEFS		= $(shell $(CD) defs; make --no-print-directory showobjs)
+STARTUP		= startup
+STARTUP_DW	= startup.dw
+
+PACKAGENAME	= $(DISTROVER).zip
+DSKDW3         = $(DISTROVER)_dw3.dsk
+LDSKDW3        = $(DISTRONAME)$(PORT)_dw3.dsk
+DSK360K_1       = $(DISTROVER)_40d_1.dsk
+LDSK360K_1      = $(DISTRONAME)_40d_1.dsk
+DSK360K_2       = $(DISTROVER)_40d_2.dsk
+LDSK360K_2      = $(DISTRONAME)_40d_2.dsk
+DSK720K         = $(DISTROVER)_80d.dsk
+LDSK720K        = $(DISTRONAME)_80d.dsk
+
+
+DSKS		= $(DSKDW3) $(DSK360K_1) $(DSK360K_2) $(DSK720K)
+LDSKS		= $(LDSKDW3) $(LDSK360K_1) $(LDSK360K_2) $(LDSK720K)
+
+# Make all components
+all:
+	@$(ECHO) "**************************************************"
+	@$(ECHO) "*                                                *"
+	@$(ECHO) "*         NitrOS-9/$(CPU) Level 1 CoCo Port        *"
+	@$(ECHO) "*                                                *"
+	@$(ECHO) "**************************************************"
+	$(foreach dir, $(DIRS), ($(CD) $(dir); make);)
+
+# Clean all components
+clean:	dskclean
+	$(foreach dir, $(DIRS), ($(CD) $(dir); make clean);)
+
+dskclean:
+	-$(RM) $(PACKAGENAME) $(DSKS) $(LDSKS)
+
+dsk: all $(PACKAGENAME)
+
+dskcopy: dsk
+	$(CP) $(DSKS) $(DSKDIR)
+
+scp: dsk
+	scp $(PACKAGENAME) boisy@cvs.nitros9.org:/home/nitros9/public_html
+
+$(PACKAGENAME): $(DSKS) ../../ReadMe ../../ChangeLog
+	$(ARCHIVE) $@ $^
+
+$(DSKDW3):
+	$(RM) $@
+	$(OS9FORMAT_DW3) -q $@ -n"NitrOS-9/$(CPU) Level 1"
+	$(OS9GEN) $@ -b=$(BOOTFILE_COVDG_DW3) -t=$(KERNELFILE_DW3)
+	$(MAKDIR) $@,CMDS
+	$(MAKDIR) $@,SYS
+	$(MAKDIR) $@,DEFS
+	$(CD) cmds; $(CP) $(CMDS_DW) ../$@,CMDS
+	$(foreach file, $(CMDS_DW), $(OS9ATTR_EXEC) $@,CMDS/$(file);)
+	$(CD) cmds; $(CP) $(CMDS_D2) ../$@,CMDS
+	$(foreach file, $(CMDS_D2), $(OS9ATTR_EXEC) $@,CMDS/$(file);)
+	$(OS9RENAME) $@,CMDS/$(WHICHSHELL) shell
+	$(CD) sys; $(CPL) $(SYS) ../$@,SYS
+	$(foreach file, $(SYS), $(OS9ATTR_TEXT) $@,SYS/$(file);)
+	$(CD) defs; $(CPL) $(DEFS) ../$@,DEFS
+	$(foreach file, $(DEFS), $(OS9ATTR_TEXT) $@,DEFS/$(file);)
+	$(CPL) $(STARTUP_DW) $@,startup
+	$(OS9ATTR_TEXT) $@,startup
+	$(MAKDIR) $@,NITROS9
+	$(MAKDIR) $@,NITROS9/6809L1
+	$(MAKDIR) $@,NITROS9/6809L1/CMDS
+	$(CD) cmds; $(CP) $(MODULECMDS) ../$@,NITROS9/6809L1/CMDS
+	$(foreach file, $(MODULECMDS), $(OS9ATTR_EXEC) $@,NITROS9/6809L1/CMDS/$(file);)
+	$(OS9RENAME) $@,NITROS9/6809L1/CMDS/$(WHICHSHELL) shell
+	$(MAKDIR) $@,NITROS9/6809L1/MODULES
+	$(MAKDIR) $@,NITROS9/6809L1/MODULES/BOOTTRACK
+	$(CD) modules; $(CP) $(BOOTTRACK) ../$@,NITROS9/6809L1/MODULES/BOOTTRACK
+	$(foreach file, $(BOOTTRACK), $(OS9ATTR_EXEC) $@,NITROS9/6809L1/MODULES/BOOTTRACK/$(file);)
+	$(MAKDIR) $@,NITROS9/6809L1/MODULES/KERNEL
+	$(CD) modules; $(CP) $(KERNEL) ../$@,NITROS9/6809L1/MODULES/KERNEL
+	$(foreach file, $(KERNEL), $(OS9ATTR_EXEC) $@,NITROS9/6809L1/MODULES/KERNEL/$(file);)
+	$(MAKDIR) $@,NITROS9/6809L1/MODULES/SYSMODS
+	$(CD) modules; $(CP) $(SYSMODS) ../$@,NITROS9/6809L1/MODULES/SYSMODS
+	$(foreach file, $(SYSMODS), $(OS9ATTR_EXEC) $@,NITROS9/6809L1/MODULES/SYSMODS/$(file);)
+	$(MAKDIR) $@,NITROS9/6809L1/MODULES/CLOCKS
+	$(CD) modules; $(CP) $(CLOCKS) ../$@,NITROS9/6809L1/MODULES/CLOCKS
+	$(foreach file, $(CLOCKS), $(OS9ATTR_EXEC) $@,NITROS9/6809L1/MODULES/CLOCKS/$(file);)
+	$(MAKDIR) $@,NITROS9/6809L1/MODULES/RBF
+	$(CD) modules; $(CP) $(RBF) ../$@,NITROS9/6809L1/MODULES/RBF
+	$(foreach file, $(RBF), $(OS9ATTR_EXEC) $@,NITROS9/6809L1/MODULES/RBF/$(file);)
+	$(MAKDIR) $@,NITROS9/6809L1/MODULES/SCF
+	$(CD) modules; $(CP) $(SCF) ../$@,NITROS9/6809L1/MODULES/SCF
+	$(foreach file, $(SCF), $(OS9ATTR_EXEC) $@,NITROS9/6809L1/MODULES/SCF/$(file);)
+	$(MAKDIR) $@,NITROS9/6809L1/MODULES/PIPE
+	$(CD) modules; $(CP) $(PIPE) ../$@,NITROS9/6809L1/MODULES/PIPE
+	$(foreach file, $(PIPE), $(OS9ATTR_EXEC) $@,NITROS9/6809L1/MODULES/PIPE/$(file);)
+	$(MAKDIR) $@,NITROS9/6809L1/BOOTLISTS
+	$(CD) bootlists; $(CPL) *.bl ../$@,NITROS9/6809L1/BOOTLISTS
+	$(MAKDIR) $@,NITROS9/6809L1/SCRIPTS
+	$(CD) scripts; $(CPL) mb* ../$@,NITROS9/6809L1/SCRIPTS
+	$(RM) $(LDSKDW3)
+	$(SOFTLINK) $@ $(LDSKDW3)
+
+$(DSK360K_1):
+	$(RM) $@
+	$(OS9FORMAT_DS40) -q $@ -n"NitrOS-9/6809 Level 1 Disk 1"
+	$(OS9GEN) $@ -b=$(BOOTFILE_COVDG) -t=$(KERNELFILE)
+	$(MAKDIR) $@,CMDS
+	$(MAKDIR) $@,SYS
+	$(CD) cmds; $(CP) $(CMDS) ../$@,CMDS
+	$(foreach file, $(CMDS), $(OS9ATTR_EXEC) $@,CMDS/$(file);)
+	$(OS9RENAME) $@,CMDS/$(WHICHSHELL) shell
+	$(CD) sys; $(CPL) $(SYS) ../$@,SYS
+	$(foreach file, $(SYS), $(OS9ATTR_TEXT) $@,SYS/$(file);)
+	$(MAKDIR) $@,DEFS
+	$(CD) defs; $(CPL) $(DEFS) ../$@,DEFS
+	$(foreach file, $(DEFS), $(OS9ATTR_TEXT) $@,DEFS/$(file);)
+	$(CPL) $(STARTUP) $@,startup
+	$(OS9ATTR_TEXT) $@,startup
+	$(RM) $(LDSK360K_1)
+	$(SOFTLINK) $@ $(LDSK360K_1)
+
+$(DSK360K_2):
+	$(RM) $@
+	$(OS9FORMAT_DS40) -q $@ -n"NitrOS-9/6809 Level 1 Disk 2"
+	$(MAKDIR) $@,CMDS
+	$(CD) cmds; $(CP) $(CMDS_D2) ../$@,CMDS
+	$(foreach file, $(CMDS_D2), $(OS9ATTR_EXEC) $@,CMDS/$(file);)
+	$(MAKDIR) $@,NITROS9
+	$(MAKDIR) $@,NITROS9/6809L1
+	$(MAKDIR) $@,NITROS9/6809L1/CMDS
+	$(CD) cmds; $(CP) $(MODULECMDS) ../$@,NITROS9/6809L1/CMDS
+	$(foreach file, $(MODULECMDS), $(OS9ATTR_EXEC) $@,NITROS9/6809L1/CMDS/$(file);)
+	$(OS9RENAME) $@,NITROS9/6809L1/CMDS//$(WHICHSHELL) shell
+	$(MAKDIR) $@,NITROS9/6809L1/MODULES
+	$(MAKDIR) $@,NITROS9/6809L1/MODULES/BOOTTRACK
+	$(CD) modules; $(CP) $(BOOTTRACK) ../$@,NITROS9/6809L1/MODULES/BOOTTRACK
+	$(foreach file, $(BOOTTRACK), $(OS9ATTR_EXEC) $@,NITROS9/6809L1/MODULES/BOOTTRACK/$(file);)
+	$(MAKDIR) $@,NITROS9/6809L1/MODULES/KERNEL
+	$(CD) modules; $(CP) $(KERNEL) ../$@,NITROS9/6809L1/MODULES/KERNEL
+	$(foreach file, $(KERNEL), $(OS9ATTR_EXEC) $@,NITROS9/6809L1/MODULES/KERNEL/$(file);)
+	$(MAKDIR) $@,NITROS9/6809L1/MODULES/SYSMODS
+	$(CD) modules; $(CP) $(SYSMODS) ../$@,NITROS9/6809L1/MODULES/SYSMODS
+	$(foreach file, $(SYSMODS), $(OS9ATTR_EXEC) $@,NITROS9/6809L1/MODULES/SYSMODS/$(file);)
+	$(MAKDIR) $@,NITROS9/6809L1/MODULES/CLOCKS
+	$(CD) modules; $(CP) $(CLOCKS) ../$@,NITROS9/6809L1/MODULES/CLOCKS
+	$(foreach file, $(CLOCKS), $(OS9ATTR_EXEC) $@,NITROS9/6809L1/MODULES/CLOCKS/$(file);)
+	$(MAKDIR) $@,NITROS9/6809L1/MODULES/RBF
+	$(CD) modules; $(CP) $(RBF) ../$@,NITROS9/6809L1/MODULES/RBF
+	$(foreach file, $(RBF), $(OS9ATTR_EXEC) $@,NITROS9/6809L1/MODULES/RBF/$(file);)
+	$(MAKDIR) $@,NITROS9/6809L1/MODULES/SCF
+	$(CD) modules; $(CP) $(SCF) ../$@,NITROS9/6809L1/MODULES/SCF
+	$(foreach file, $(SCF), $(OS9ATTR_EXEC) $@,NITROS9/6809L1/MODULES/SCF/$(file);)
+	$(MAKDIR) $@,NITROS9/6809L1/MODULES/PIPE
+	$(CD) modules; $(CP) $(PIPE) ../$@,NITROS9/6809L1/MODULES/PIPE
+	$(foreach file, $(PIPE), $(OS9ATTR_EXEC) $@,NITROS9/6809L1/MODULES/PIPE/$(file);)
+	$(MAKDIR) $@,NITROS9/6809L1/BOOTLISTS
+	$(CD) bootlists; $(CPL) *.bl ../$@,NITROS9/6809L1/BOOTLISTS
+	$(MAKDIR) $@,NITROS9/6809L1/SCRIPTS
+	$(CD) scripts; $(CPL) mb* ../$@,NITROS9/6809L1/SCRIPTS
+	$(RM) $(LDSK360K_2)
+	$(SOFTLINK) $@ $(LDSK360K_2)
+
+$(DSK720K):
+	$(RM) $@
+	$(OS9FORMAT_DS80) -q $@ -n"NitrOS-9/6809 Level 1"
+	$(OS9GEN) $@ -b=$(BOOTFILE_COVDG_DS80) -t=$(KERNELFILE)
+	$(MAKDIR) $@,CMDS
+	$(MAKDIR) $@,SYS
+	$(MAKDIR) $@,DEFS
+	$(CD) cmds; $(CP) $(CMDS) ../$@,CMDS
+	$(foreach file, $(CMDS), $(OS9ATTR_EXEC) $@,CMDS/$(file);)
+	$(CD) cmds; $(CP) $(CMDS_D2) ../$@,CMDS
+	$(foreach file, $(CMDS_D2), $(OS9ATTR_EXEC) $@,CMDS/$(file);)
+	$(OS9RENAME) $@,CMDS/$(WHICHSHELL) shell
+	$(CD) sys; $(CPL) $(SYS) ../$@,SYS
+	$(foreach file, $(SYS), $(OS9ATTR_TEXT) $@,SYS/$(file);)
+	$(CD) defs; $(CPL) $(DEFS) ../$@,DEFS
+	$(foreach file, $(DEFS), $(OS9ATTR_TEXT) $@,DEFS/$(file);)
+	$(CPL) $(STARTUP) $@,startup
+	$(OS9ATTR_TEXT) $@,startup
+	$(MAKDIR) $@,NITROS9
+	$(MAKDIR) $@,NITROS9/6809L1
+	$(MAKDIR) $@,NITROS9/6809L1/CMDS
+	$(CD) cmds; $(CP) $(MODULECMDS) ../$@,NITROS9/6809L1/CMDS
+	$(foreach file, $(MODULECMDS), $(OS9ATTR_EXEC) $@,NITROS9/6809L1/CMDS/$(file);)
+	$(OS9RENAME) $@,NITROS9/6809L1/CMDS/$(WHICHSHELL) shell
+	$(MAKDIR) $@,NITROS9/6809L1/MODULES
+	$(MAKDIR) $@,NITROS9/6809L1/MODULES/BOOTTRACK
+	$(CD) modules; $(CP) $(BOOTTRACK) ../$@,NITROS9/6809L1/MODULES/BOOTTRACK
+	$(foreach file, $(BOOTTRACK), $(OS9ATTR_EXEC) $@,NITROS9/6809L1/MODULES/BOOTTRACK/$(file);)
+	$(MAKDIR) $@,NITROS9/6809L1/MODULES/KERNEL
+	$(CD) modules; $(CP) $(KERNEL) ../$@,NITROS9/6809L1/MODULES/KERNEL
+	$(foreach file, $(KERNEL), $(OS9ATTR_EXEC) $@,NITROS9/6809L1/MODULES/KERNEL/$(file);)
+	$(MAKDIR) $@,NITROS9/6809L1/MODULES/SYSMODS
+	$(CD) modules; $(CP) $(SYSMODS) ../$@,NITROS9/6809L1/MODULES/SYSMODS
+	$(foreach file, $(SYSMODS), $(OS9ATTR_EXEC) $@,NITROS9/6809L1/MODULES/SYSMODS/$(file);)
+	$(MAKDIR) $@,NITROS9/6809L1/MODULES/CLOCKS
+	$(CD) modules; $(CP) $(CLOCKS) ../$@,NITROS9/6809L1/MODULES/CLOCKS
+	$(foreach file, $(CLOCKS), $(OS9ATTR_EXEC) $@,NITROS9/6809L1/MODULES/CLOCKS/$(file);)
+	$(MAKDIR) $@,NITROS9/6809L1/MODULES/RBF
+	$(CD) modules; $(CP) $(RBF) ../$@,NITROS9/6809L1/MODULES/RBF
+	$(foreach file, $(RBF), $(OS9ATTR_EXEC) $@,NITROS9/6809L1/MODULES/RBF/$(file);)
+	$(MAKDIR) $@,NITROS9/6809L1/MODULES/SCF
+	$(CD) modules; $(CP) $(SCF) ../$@,NITROS9/6809L1/MODULES/SCF
+	$(foreach file, $(SCF), $(OS9ATTR_EXEC) $@,NITROS9/6809L1/MODULES/SCF/$(file);)
+	$(MAKDIR) $@,NITROS9/6809L1/MODULES/PIPE
+	$(CD) modules; $(CP) $(PIPE) ../$@,NITROS9/6809L1/MODULES/PIPE
+	$(foreach file, $(PIPE), $(OS9ATTR_EXEC) $@,NITROS9/6809L1/MODULES/PIPE/$(file);)
+	$(MAKDIR) $@,NITROS9/6809L1/BOOTLISTS
+	$(CD) bootlists; $(CPL) *.bl ../$@,NITROS9/6809L1/BOOTLISTS
+	$(MAKDIR) $@,NITROS9/6809L1/SCRIPTS
+	$(CD) scripts; $(CPL) mb* ../$@,NITROS9/6809L1/SCRIPTS
+	$(RM) $(LDSK720K)
+	$(SOFTLINK) $@ $(LDSK720K)
+
+info:
+	@echo "*** NitrOS-9/6809 Level 1 for the Tandy Color Computer ***" 
+	@$(foreach dsk, $(DSKS), $(ECHO) $(dsk);)
+	
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/level1/coco1/modules/defsfile	Thu Jul 19 10:09:15 2012 -0500
@@ -0,0 +1,1 @@
+         use   ../defsfile
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/level1/coco1/modules/kernel/defsfile	Thu Jul 19 10:09:15 2012 -0500
@@ -0,0 +1,1 @@
+         use   ../../defsfile
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/level1/coco1/modules/kernel/makefile	Thu Jul 19 10:09:15 2012 -0500
@@ -0,0 +1,32 @@
+PORT = coco
+include $(NITROS9DIR)/rules.mak
+
+vpath %.asm $(LEVEL1)/modules/kernel
+
+DEPENDS		= ./makefile
+
+KERNEL		= krn
+KERNELP2	= krnp2
+SYSCALLS	= fcmpnam.asm fprsnam.asm
+
+AFLAGS		+= -I$(LEVEL1)/modules/kernel
+
+ALLOBJS		= $(KERNEL) $(KERNELP2)
+
+all:	$(ALLOBJS)
+
+$(KERNEL):	krn.asm $(SYSCALLS)
+
+$(KERNELP2):	krnp2.asm $(SYSCALLS)
+
+clean:
+	$(RM) $(ALLOBJS)
+
+showobjs:
+	@$(ECHO) $(ALLOBJS)
+
+showcopyobjs:
+	@$(ECHO) $(COPYOBJS)
+
+identify:
+	$(IDENT_SHORT) $(ALLOBJS)
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/level1/coco1/modules/makefile	Thu Jul 19 10:09:15 2012 -0500
@@ -0,0 +1,352 @@
+PORT = coco1
+include $(NITROS9DIR)/rules.mak
+
+vpath %.asm $(LEVEL1)/modules
+
+AFLAGS		+= -I$(LEVEL1)/modules
+
+CLOCKELIM       = -DRTCElim=1
+CLOCKDISTO2     = -DRTCDsto2=1
+CLOCKDISTO4     = -DRTCDsto4=1
+CLOCKBNB        = -DRTCBB=1
+CLOCKSMART      = -DRTCSmart=1 -DMPIFlag=1
+CLOCKHARRIS     = -DRTCHarrs=1
+CLOCKCLOUD9     = -DRTCCloud9=1
+CLOCKSOFT       = -DRTCSoft=1
+CLOCKMESSEMU    = -DRTCMessEmu=1
+CLOCKJVEMU      = -DRTCJVEmu=1
+TC3FLAGS        = $(AFLAGS) -DTC3=1 $(FLAGS)
+IDEFLAGS        = $(AFLAGS) -DIDE=1 $(FLAGS)
+
+DEPENDS		= ./makefile
+TPB		= $(3RDPARTY)/booters
+
+BOOTERS		= boot_1773_6ms boot_1773_30ms \
+		boot_burke boot_rampak boot_wd1002 boot_dw3 \
+		boot_tc3 boot_ide boot_rom
+BOOTTRACK	= rel $(BOOTERS)
+KERNEL		= krn krnp2 wbug
+SYSMODS		= ioman init sysgo_dd sysgo_h0 rominfo vectors
+CLOCKS          = clock_60hz clock_50hz \
+		clock2_elim clock2_disto2 clock2_disto4 clock2_bnb \
+                clock2_smart clock2_harris clock2_cloud9 clock2_soft \
+		clock2_messemu clock2_jvemu clock2_dw3
+
+RBF		= rbf.mn \
+		rbdw3.dr dw3.sb \
+		rb1773.dr rb1773_scii_ff74.dr rb1773_scii_ff58.dr \
+		ddd0_35s.dd d0_35s.dd d1_35s.dd d2_35s.dd d3_35s.dd \
+		ddd0_40d.dd d0_40d.dd d1_40d.dd d2_40d.dd \
+		ddd0_80d.dd d0_80d.dd d1_80d.dd d2_80d.dd \
+		ddx0.dd x0.dd x1.dd x2.dd x3.dd \
+		rbsuper.dr lltc3.dr llide.dr \
+		ddi0_ide.dd i0_ide.dd i1_ide.dd ih_ide.dd \
+		dds0_tc3.dd s0_tc3.dd s1_tc3.dd s2_tc3.dd s3_tc3.dd s4_tc3.dd \
+                s5_tc3.dd s6_tc3.dd sh_tc3.dd
+
+SCF		= scf.mn \
+		sc6551.dr vrn.dr scbbp.dr scbbt.dr scdwp.dr sspak.dr vtio.dr \
+		covdg.io cohr.io co80.io \
+		nil.dd p_scbbp.dd p_scdwp.dd pipe.dd ssp.dd \
+		term_scbbt.dt term_sc6551.dt t1_scbbt.dd t2_sc6551.dd t3_sc6551.dd \
+		term_vdg.dt term_hr.dt term_80.dt \
+		scdwv.dr term_scdwv.dt n_scdwv.dd n1_scdwv.dd n2_scdwv.dd \
+		n3_scdwv.dd n4_scdwv.dd n5_scdwv.dd n6_scdwv.dd n7_scdwv.dd \
+		n8_scdwv.dd n9_scdwv.dd n10_scdwv.dd n11_scdwv.dd n12_scdwv.dd \
+		n13_scdwv.dd midi_scdwv.dd \
+		term_z_scdwv.dt \
+		z1_scdwv.dd z2_scdwv.dd z3_scdwv.dd z4_scdwv.dd z5_scdwv.dd \
+		z6_scdwv.dd z7_scdwv.dd
+
+PIPE		= pipeman.mn \
+		piper.dr \
+		pipe.dd
+
+RFM		= rfm.mn rfmdrv.dr ddy0.dd y0.dd y1.dd y2.dd y3.dd
+
+ALLOBJS		= $(BOOTTRACK) $(KERNEL) $(SYSMODS) $(CLOCKS) $(RBF) $(SCF) $(PIPE) $(RFM)
+
+all:	$(ALLOBJS)
+
+# Kernel
+krn krnp2:
+	$(CD) kernel; make $@
+	$(CP) kernel/$@ .
+
+# Special cases
+# TC^3 SCSI Booter
+boot_tc3: boot_scsi.asm
+	$(AS) $(ASOUT)$@ $< $(TC3FLAGS)
+
+# SuperIDE/Glenside IDE Booter
+boot_ide: boot_ide.asm
+	$(AS) $(ASOUT)$@ $< $(IDEFLAGS)
+
+# DriveWire 3
+boot_1773_6ms:	boot_1773.asm
+	$(AS) $< $(ASOUT)$@ $(AFLAGS) -DDNum=0 -DSTEP=0
+
+boot_1773_30ms:	boot_1773.asm
+	$(AS) $< $(ASOUT)$@ $(AFLAGS) -DDNum=0 -DSTEP=3
+
+rb1773_scii_ff74.dr:	rb1773.asm
+	$(AS) $< $(ASOUT)$@ $(AFLAGS) -DSCII=1
+
+rb1773_scii_ff58.dr:	rb1773.asm
+	$(AS) $< $(ASOUT)$@ $(AFLAGS) -DSCII=1 -DSCIIALT=1
+
+# TC^3 SCSI Driver
+lltc3.dr: llscsi.asm
+	$(AS) $(ASOUT)$@ $< $(TC3FLAGS)
+
+# IDE Driver
+llide.dr: llide.asm
+	$(AS) $(ASOUT)$@ $< $(IDEFLAGS)
+
+# Floppy descriptors
+SSDD35		= -DCyls=35 -DSides=1 -DSectTrk=18 -DSectTrk0=18 \
+		-DInterlv=3 -DSAS=8 -DDensity=1
+DSDD40		= -DCyls=40 -DSides=2 -DSectTrk=18 -DSectTrk0=18 \
+		-DInterlv=3 -DSAS=8 -DDensity=1
+DSDD80		= -DCyls=80 -DSides=2 -DSectTrk=18 -DSectTrk0=18 \
+		-DInterlv=3 -DSAS=8 -DDensity=1 -DD35
+
+ddd0_35s.dd: rb1773desc.asm
+	$(AS) $< $(ASOUT)$@ $(AFLAGS) $(SSDD35) -DDNum=0 -DDD=1
+
+d0_35s.dd: rb1773desc.asm
+	$(AS) $< $(ASOUT)$@ $(AFLAGS) $(SSDD35) -DDNum=0
+
+d1_35s.dd: rb1773desc.asm
+	$(AS) $< $(ASOUT)$@ $(AFLAGS) $(SSDD35) -DDNum=1
+
+d2_35s.dd: rb1773desc.asm
+	$(AS) $< $(ASOUT)$@ $(AFLAGS) $(SSDD35) -DDNum=2
+
+d3_35s.dd: rb1773desc.asm
+	$(AS) $< $(ASOUT)$@ $(AFLAGS) $(SSDD35) -DDNum=3
+
+ddd0_40d.dd: rb1773desc.asm
+	$(AS) $< $(ASOUT)$@ $(AFLAGS) $(DSDD40) -DDNum=0 -DDD=1
+
+d0_40d.dd: rb1773desc.asm
+	$(AS) $< $(ASOUT)$@ $(AFLAGS) $(DSDD40) -DDNum=0
+
+d1_40d.dd: rb1773desc.asm
+	$(AS) $< $(ASOUT)$@ $(AFLAGS) $(DSDD40) -DDNum=1
+
+d2_40d.dd: rb1773desc.asm
+	$(AS) $< $(ASOUT)$@ $(AFLAGS) $(DSDD40) -DDNum=2
+
+ddd0_80d.dd: rb1773desc.asm
+	$(AS) $< $(ASOUT)$@ $(AFLAGS) $(DSDD80) -DDNum=0 -DDD=1
+
+d0_80d.dd: rb1773desc.asm
+	$(AS) $< $(ASOUT)$@ $(AFLAGS) $(DSDD80) -DDNum=0
+
+d1_80d.dd: rb1773desc.asm
+	$(AS) $< $(ASOUT)$@ $(AFLAGS) $(DSDD80) -DDNum=1
+
+d2_80d.dd: rb1773desc.asm
+	$(AS) $< $(ASOUT)$@ $(AFLAGS) $(DSDD80) -DDNum=2
+
+# DriveWire 3 SCF descriptors
+term_scdwv.dt: scdwvdesc.asm
+	$(AS) $< $(ASOUT)$@ $(AFLAGS) -DAddr=0
+
+n_scdwv.dd: scdwvdesc.asm
+	$(AS) $< $(ASOUT)$@ $(AFLAGS) -DAddr=255
+
+n1_scdwv.dd: scdwvdesc.asm
+	$(AS) $< $(ASOUT)$@ $(AFLAGS) -DAddr=1
+
+n2_scdwv.dd: scdwvdesc.asm
+	$(AS) $< $(ASOUT)$@ $(AFLAGS) -DAddr=2
+
+n3_scdwv.dd: scdwvdesc.asm
+	$(AS) $< $(ASOUT)$@ $(AFLAGS) -DAddr=3
+
+n4_scdwv.dd: scdwvdesc.asm
+	$(AS) $< $(ASOUT)$@ $(AFLAGS) -DAddr=4
+
+n5_scdwv.dd: scdwvdesc.asm
+	$(AS) $< $(ASOUT)$@ $(AFLAGS) -DAddr=5
+
+n6_scdwv.dd: scdwvdesc.asm
+	$(AS) $< $(ASOUT)$@ $(AFLAGS) -DAddr=6
+
+n7_scdwv.dd: scdwvdesc.asm
+	$(AS) $< $(ASOUT)$@ $(AFLAGS) -DAddr=7
+
+n8_scdwv.dd: scdwvdesc.asm
+	$(AS) $< $(ASOUT)$@ $(AFLAGS) -DAddr=8
+
+n9_scdwv.dd: scdwvdesc.asm
+	$(AS) $< $(ASOUT)$@ $(AFLAGS) -DAddr=9
+
+n10_scdwv.dd: scdwvdesc.asm
+	$(AS) $< $(ASOUT)$@ $(AFLAGS) -DAddr=10
+
+n11_scdwv.dd: scdwvdesc.asm
+	$(AS) $< $(ASOUT)$@ $(AFLAGS) -DAddr=11
+
+n12_scdwv.dd: scdwvdesc.asm
+	$(AS) $< $(ASOUT)$@ $(AFLAGS) -DAddr=12
+
+n13_scdwv.dd: scdwvdesc.asm
+	$(AS) $< $(ASOUT)$@ $(AFLAGS) -DAddr=13
+
+midi_scdwv.dd: scdwvdesc.asm
+	$(AS) $< $(ASOUT)$@ $(AFLAGS) -DAddr=14
+
+term_z_scdwv.dt: scdwvdesc.asm
+	$(AS) $< $(ASOUT)$@ $(AFLAGS) -DAddr=16
+
+z1_scdwv.dd: scdwvdesc.asm
+	$(AS) $< $(ASOUT)$@ $(AFLAGS) -DAddr=17
+
+z2_scdwv.dd: scdwvdesc.asm
+	$(AS) $< $(ASOUT)$@ $(AFLAGS) -DAddr=18
+
+z3_scdwv.dd: scdwvdesc.asm
+	$(AS) $< $(ASOUT)$@ $(AFLAGS) -DAddr=19
+
+z4_scdwv.dd: scdwvdesc.asm
+	$(AS) $< $(ASOUT)$@ $(AFLAGS) -DAddr=20
+
+z5_scdwv.dd: scdwvdesc.asm
+	$(AS) $< $(ASOUT)$@ $(AFLAGS) -DAddr=21
+
+z6_scdwv.dd: scdwvdesc.asm
+	$(AS) $< $(ASOUT)$@ $(AFLAGS) -DAddr=22
+
+z7_scdwv.dd: scdwvdesc.asm
+	$(AS) $< $(ASOUT)$@ $(AFLAGS) -DAddr=23
+
+# DriveWire 3 RBF descriptors
+ddx0.dd: dwdesc.asm
+	$(AS) $< $(ASOUT)$@ $(AFLAGS) -DDD=1 -DDNum=0
+
+x0.dd: dwdesc.asm
+	$(AS) $< $(ASOUT)$@ $(AFLAGS) -DDNum=0
+
+x1.dd: dwdesc.asm
+	$(AS) $< $(ASOUT)$@ $(AFLAGS) -DDNum=1
+
+x2.dd: dwdesc.asm
+	$(AS) $< $(ASOUT)$@ $(AFLAGS) -DDNum=2
+
+x3.dd: dwdesc.asm
+	$(AS) $< $(ASOUT)$@ $(AFLAGS) -DDNum=3
+
+# TC^3 SCSI Descriptors
+dds0_tc3.dd: superdesc.asm
+	$(AS) $(ASOUT)$@ $< $(TC3FLAGS) $(ID0) -DDD=1
+
+s0_tc3.dd: superdesc.asm
+	$(AS) $(ASOUT)$@ $< $(TC3FLAGS) $(ID0) $(SCSI_HD)
+
+s1_tc3.dd: superdesc.asm
+	$(AS) $(ASOUT)$@ $< $(TC3FLAGS) $(ID1) $(SCSI_HD)
+
+s2_tc3.dd: superdesc.asm
+	$(AS) $(ASOUT)$@ $< $(TC3FLAGS) $(ID2) $(SCSI_HD)
+
+s3_tc3.dd: superdesc.asm
+	$(AS) $(ASOUT)$@ $< $(TC3FLAGS) $(ID3) $(SCSI_HD)
+
+s4_tc3.dd: superdesc.asm
+	$(AS) $(ASOUT)$@ $< $(TC3FLAGS) $(ID4) $(SCSI_HD)
+
+s5_tc3.dd: superdesc.asm
+	$(AS) $(ASOUT)$@ $< $(TC3FLAGS) $(ID5) $(SCSI_HD)
+
+s6_tc3.dd: superdesc.asm
+	$(AS) $(ASOUT)$@ $< $(TC3FLAGS) $(ID6) $(SCSI_HD)
+
+sh_tc3.dd: superdesc.asm
+	$(AS) $(ASOUT)$@ $< $(TC3FLAGS) $(HDBDOS)
+
+# IDE Descriptors
+ddi0_ide.dd: superdesc.asm
+	$(AS) $(ASOUT)$@ $< $(IDEFLAGS) $(MASTER) -DDD=1
+
+i0_ide.dd: superdesc.asm
+	$(AS) $(ASOUT)$@ $< $(IDEFLAGS) $(MASTER)
+
+i1_ide.dd: superdesc.asm
+	$(AS) $(ASOUT)$@ $< $(IDEFLAGS) $(SLAVE)
+
+ih_ide.dd: superdesc.asm
+	$(AS) $(ASOUT)$@ $< $(IDEFLAGS) $(HDBDOS)
+
+# RFM descriptors
+ddy0.dd: rfmdesc.asm
+	$(AS) $< $(ASOUT)$@ $(AFLAGS) -DDD=1 -DDNum=0
+
+y0.dd: rfmdesc.asm
+	$(AS) $< $(ASOUT)$@ $(AFLAGS) -DDNum=0
+
+y1.dd: rfmdesc.asm
+	$(AS) $< $(ASOUT)$@ $(AFLAGS) -DDNum=1
+
+y2.dd: rfmdesc.asm
+	$(AS) $< $(ASOUT)$@ $(AFLAGS) -DDNum=2
+
+y3.dd: rfmdesc.asm
+	$(AS) $< $(ASOUT)$@ $(AFLAGS) -DDNum=3
+
+rel: rel.asm
+	$(AS) $(AFLAGS) $(ASOUT)$@ $< -DDragon64=0
+
+sysgo_dd: sysgo.asm
+	$(AS) $(AFLAGS) $(ASOUT)$@ $< -DDD=1
+
+sysgo_h0: sysgo.asm
+	$(AS) $(AFLAGS) $(ASOUT)$@ $<
+
+# Clocks
+clock_60hz: clock.asm
+	$(AS) $(AFLAGS) $(ASOUT)$@ $< -DPwrLnFrq=60
+
+clock_50hz: clock.asm
+	$(AS) $(AFLAGS) $(ASOUT)$@ $< -DPwrLnFrq=50
+
+clock2_bnb: clock2_ds1315.asm
+	$(AS) $(AFLAGS) $(ASOUT)$@ $< -DBNB=1
+
+clock2_cloud9: clock2_ds1315.asm
+	$(AS) $(AFLAGS) $(ASOUT)$@ $< -DCLOUD9=1
+
+clean:
+	$(CD) kernel; make $@
+	$(RM) $(ALLOBJS)
+
+showobjs:
+	@$(ECHO) $(ALLOBJS)
+
+showboottrack:
+	@$(ECHO) $(BOOTTRACK)
+
+showkernel:
+	@$(ECHO) $(KERNEL)
+
+showsysmods:
+	@$(ECHO) $(SYSMODS)
+
+showclocks:
+	@$(ECHO) $(CLOCKS)
+
+showrbf:
+	@$(ECHO) $(RBF)
+
+showscf:
+	@$(ECHO) $(SCF)
+
+showpipe:
+	@$(ECHO) $(PIPE)
+
+identify:
+	$(IDENT_SHORT) $(ALLOBJS)
+
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/level1/coco1/scripts/mb.dw3	Thu Jul 19 10:09:15 2012 -0500
@@ -0,0 +1,30 @@
+-t
+-x
+tmode .1 pau=0
+echo * NitrOS-9 Level 1 Boot Creation Script
+echo *
+echo * This script creates a bootable DriveWire 3 disk image
+echo * using the dw3.bl bootlist file.
+echo *
+echo * The resulting disk will boot NitrOS-9 from DriveWire drive 0.
+echo *
+prompt Insert a blank disk in /x1 and press a key:
+echo *
+echo * Step 1: Format disk in /x1
+format /x1 "NitrOS-9 Level 1 Boot Disk" r
+ynn
+echo *
+echo * Step 2: Create a custom boot track
+del bttemp
+merge ../MODULES/BOOTTRACK/rel ../MODULES/KERNEL/krn ../MODULES/KERNEL/krnp2 ../MODULES/SYSMODS/init ../MODULES/BOOTTRACK/boot_dw3>bttemp
+echo *
+echo * Step 3: Create the bootfile and boot track
+os9gen /x1 -t=bttemp<../BOOTLISTS/dw3.bl
+del bttemp
+echo *
+echo * Step 4: Populate the disk with essential files
+copy ../MODULES/SYSMODS/sysgo_dd /x1/sysgo
+makdir /x1/CMDS
+copy -w=/x1/CMDS ../CMDS/shell
+echo *
+echo * We're done
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/level1/coco1/scripts/mb.floppy	Thu Jul 19 10:09:15 2012 -0500
@@ -0,0 +1,29 @@
+-t
+-x
+tmode .1 pau=0
+echo * NitrOS-9 Level 1 Boot Creation Script
+echo *
+echo * This script creates a bootable floppy disk
+echo * using the standard.bl bootlist file.
+echo *
+echo * The resulting disk will boot NitrOS-9 from drive 0.
+echo *
+prompt Insert a blank disk in /d0 and press a key:
+echo *
+echo * Step 1: Format disk in /d0
+format /d0 "NitrOS-9 Level 1 Boot Disk" r
+echo *
+echo * Step 2: Create a custom boot track
+del bttemp
+merge ../MODULES/BOOTTRACK/rel ../MODULES/KERNEL/krn ../MODULES/KERNEL/krnp2 ../MODULES/SYSMODS/init ../MODULES/BOOTTRACK/boot_1773_6ms>bttemp
+echo *
+echo * Step 3: Create the bootfile and boot track
+os9gen /d0 -t=bttemp<../BOOTLISTS/standard.bl
+del bttemp
+echo *
+echo * Step 4: Populate the disk with essential files
+copy ../MODULES/SYSMODS/sysgo_dd /d0/sysgo
+makdir /d0/CMDS
+copy -w=/d0/CMDS ../CMDS/shell
+echo *
+echo * We're done
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/level1/coco1/startup	Thu Jul 19 10:09:15 2012 -0500
@@ -0,0 +1,7 @@
+* Echo welcome message
+echo * Welcome to NitrOS-9 Level 1 *
+echo *    on the Color Computer    *
+* Start system time from keyboard
+setime </term
+date -t
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/level1/coco1/startup.dw	Thu Jul 19 10:09:15 2012 -0500
@@ -0,0 +1,6 @@
+* Echo welcome message
+echo * Welcome to NitrOS-9 Level 1 *
+echo *      with DriveWire 4       *
+echo *    on the Color Computer    *
+date -t
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/level1/coco1/sys/makefile	Thu Jul 19 10:09:15 2012 -0500
@@ -0,0 +1,36 @@
+PORT = coco
+include $(NITROS9DIR)/rules.mak
+
+vpath %.hp	$(LEVEL1)/sys
+
+DEPENDS		= ./makefile
+
+SYSFILES	= ../../sys/errmsg ../../sys/motd ../../sys/password ../../sys/inetd.conf
+HELPFILES	= asm.hp attr.hp backup.hp binex.hp build.hp chd.hp \
+		chx.hp cmp.hp cobbler.hp config.hp copy.hp cputype.hp date.hp \
+		dcheck.hp debug.hp ded.hp deiniz.hp del.hp deldir.hp devs.hp \
+		dir.hp dirsort.hp disasm.hp display.hp dmode.hp dsave.hp dump.hp echo.hp \
+		edit.hp error.hp ex.hp exbin.hp format.hp free.hp gfx.hp \
+		help.hp ident.hp iniz.hp inkey.hp irqs.hp kill.hp link.hp \
+		list.hp load.hp login.hp makdir.hp \
+		mdir.hp megaread.hp merge.hp mpi.hp mfree.hp os9gen.hp \
+		padrom.hp park.hp procs.hp prompt.hp pwd.hp pxd.hp \
+	 	rename.hp save.hp setime.hp \
+		setpr.hp shell.hp sleep.hp tee.hp tmode.hp touch.hp tsmon.hp \
+		tuneport.hp unlink.hp verify.hp xmode.hp
+HELPMSG		= helpmsg
+ALLOBJS		= $(SYSFILES) $(HELPMSG)
+
+
+all:	$(ALLOBJS) $(DEPENDS)
+
+alldragon: $(ALLOBJS)
+
+helpmsg: $(HELPFILES)
+	$(MERGE) $^ > $@
+
+clean:
+	$(RM) $(HELPMSG)
+
+showobjs:
+	@$(ECHO) $(ALLOBJS)
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/level1/coco2/bootfiles/defsfile	Thu Jul 19 10:09:15 2012 -0500
@@ -0,0 +1,2 @@
+          use    ../defsfile
+          use    scfdefs
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/level1/coco2/bootfiles/makefile	Thu Jul 19 10:09:15 2012 -0500
@@ -0,0 +1,209 @@
+PORT = coco2
+include $(NITROS9DIR)/rules.mak
+
+# Module directory
+MD		= ../modules
+# Commands directory
+CD		= ../cmds
+
+DEPENDS		= ./makefile
+
+KERNEL_1773	= $(MD)/rel $(MD)/krn $(MD)/krnp2 $(MD)/init \
+		$(MD)/boot_1773_6ms
+
+KERNEL_DW3	= $(MD)/rel $(MD)/krn $(MD)/krnp2 $(MD)/init \
+		$(MD)/boot_dw3
+
+IDE		= $(3PD)/ide
+SCSI		= $(3PD)/scsisys
+
+FLOPPY_40D = $(MD)/rb1773.dr $(MD)/d0_40d.dd $(MD)/d1_40d.dd $(MD)/d2_40d.dd \
+          $(MD)/ddd0_40d.dd
+FLOPPY_80D = $(MD)/rb1773.dr $(MD)/d0_40d.dd $(MD)/d1_40d.dd $(MD)/d2_40d.dd \
+          $(MD)/ddd0_80d.dd
+VTIO_32COL = $(MD)/vtio.dr $(MD)/covdg.io $(MD)/term_vdg.dt
+VTIO_51COL = $(MD)/vtio.dr $(MD)/cohr.io $(MD)/term_hr.dt
+VTIO_80COL = $(MD)/vtio.dr $(MD)/co80.io $(MD)/term_80.dt
+PIPE       = $(MD)/pipeman.mn $(MD)/piper.dr $(MD)/pipe.dd
+CLOCK60HZ   = $(MD)/clock_60hz $(MD)/clock2_soft
+CLOCK60HZDW = $(MD)/clock_60hz $(MD)/clock2_dw3
+RBDW3       = $(MD)/rbdw3.dr $(MD)/dw3.sb \
+		$(MD)/ddx0.dd $(MD)/x1.dd $(MD)/x2.dd $(MD)/x3.dd
+SCDWV_NET  = $(MD)/n_scdwv.dd $(MD)/n1_scdwv.dd $(MD)/n2_scdwv.dd \
+		$(MD)/n3_scdwv.dd $(MD)/n4_scdwv.dd $(MD)/n5_scdwv.dd \
+		$(MD)/n6_scdwv.dd $(MD)/n7_scdwv.dd $(MD)/n8_scdwv.dd \
+		$(MD)/n9_scdwv.dd $(MD)/n10_scdwv.dd $(MD)/n11_scdwv.dd \
+		$(MD)/n12_scdwv.dd $(MD)/n13_scdwv.dd $(MD)/midi_scdwv.dd
+SCDWV_WIN  = $(MD)/n_scdwv.dd $(MD)/n1_scdwv.dd $(MD)/n2_scdwv.dd \
+		$(MD)/n3_scdwv.dd $(MD)/n4_scdwv.dd $(MD)/n5_scdwv.dd \
+		$(MD)/n6_scdwv.dd $(MD)/n7_scdwv.dd $(MD)/n8_scdwv.dd \
+		$(MD)/n9_scdwv.dd $(MD)/n10_scdwv.dd $(MD)/n11_scdwv.dd \
+		$(MD)/n12_scdwv.dd $(MD)/n13_scdwv.dd $(MD)/midi_scdwv.dd
+SCDWP     = $(MD)/scdwp.dr $(MD)/p_scdwp.dd
+		
+BOOTFILE_COVDG	= $(MD)/ioman \
+		$(MD)/rbf.mn \
+		$(FLOPPY_40D) \
+		$(MD)/scf.mn \
+		$(VTIO_32COL) \
+		$(MD)/scbbp.dr $(MD)/p_scbbp.dd \
+		$(MD)/scbbt.dr $(MD)/t1_scbbt.dd \
+		$(PIPE) \
+		$(CLOCK60HZ) \
+		$(MD)/sysgo_dd
+
+BOOTFILE_COHR	= $(MD)/ioman \
+		$(MD)/rbf.mn \
+		$(FLOPPY_40D) \
+		$(MD)/scf.mn \
+		$(VTIO_51COL) \
+		$(MD)/scbbp.dr $(MD)/p_scbbp.dd \
+		$(MD)/scbbt.dr $(MD)/t1_scbbt.dd \
+		$(PIPE) \
+		$(CLOCK60HZ) \
+		$(MD)/sysgo_dd
+
+BOOTFILE_CO80	= $(MD)/ioman \
+		$(MD)/rbf.mn \
+		$(FLOPPY_40D) \
+		$(MD)/scf.mn \
+		$(VTIO_80COL) \
+		$(MD)/scbbp.dr $(MD)/p_scbbp.dd \
+		$(MD)/scbbt.dr $(MD)/t1_scbbt.dd \
+		$(PIPE) \
+		$(CLOCK60HZ) \
+		$(MD)/sysgo_dd
+
+BOOTFILE_HEADLESS_DW3_COCO1	= $(MD)/ioman \
+		$(MD)/rbf.mn \
+		$(RBDW3_COCO1) \
+		$(MD)/scf.mn \
+		$(MD)/scdwv.dr \
+		$(SCDWV_NET) \
+		$(MD)/term_z_scdwv.dt \
+		$(SCDWV_WIN) \
+		$(SCDWP)\
+		$(PIPE) \
+		$(CLOCK60HZDW) \
+		$(MD)/sysgo_dd
+
+BOOTFILE_HEADLESS_DW3	= $(MD)/ioman \
+		$(MD)/rbf.mn \
+		$(RBDW3) \
+		$(MD)/scf.mn \
+		$(MD)/scdwv.dr \
+		$(SCDWV_NET) \
+		$(MD)/term_z_scdwv.dt \
+		$(SCDWV_WIN) \
+		$(PIPE) \
+		$(CLOCK60HZDW) \
+		$(MD)/sysgo_dd
+
+BOOTFILE_COVDG_DW3	= $(MD)/ioman \
+		$(MD)/rbf.mn \
+		$(FLOPPY_40D) \
+		$(RBDW3) \
+		$(MD)/scf.mn \
+		$(VTIO_32COL) \
+		$(MD)/scdwv.dr \
+		$(SCDWV_NET) \
+		$(SCDWV_WIN) \
+		$(SCDWP)\
+		$(PIPE) \
+		$(CLOCK60HZDW) \
+		$(MD)/sysgo_dd
+
+BOOTFILE_COVDG_DS80	= $(MD)/ioman \
+		$(MD)/rbf.mn \
+		$(FLOPPY_80D) \
+		$(MD)/scf.mn \
+		$(VTIO_32COL) \
+		$(MD)/scbbp.dr $(MD)/p_scbbp.dd \
+		$(MD)/scbbt.dr $(MD)/t1_scbbt.dd \
+		$(PIPE) \
+		$(CLOCK60HZ) \
+		$(MD)/sysgo_dd
+
+BOOTFILE_COHR_DW3_COCO1	= $(MD)/ioman \
+		$(MD)/rbf.mn \
+		$(FLOPPY_40D) \
+		$(RBDW3_COCO1) \
+		$(MD)/scf.mn \
+		$(VTIO_51COL) \
+		$(MD)/scdwv.dr \
+		$(SCDWV_NET) \
+		$(SCDWP)\
+		$(PIPE) \
+		$(CLOCK60HZDW) \
+		$(MD)/sysgo_dd
+
+BOOTFILE_COHR_DW3	= $(MD)/ioman \
+		$(MD)/rbf.mn \
+		$(FLOPPY_40D) \
+		$(RBDW3) \
+		$(MD)/scf.mn \
+		$(VTIO_51COL) \
+		$(MD)/scdwv.dr \
+		$(SCDWV_NET) \
+		$(SCDWP)\
+		$(PIPE) \
+		$(CLOCK60HZDW) \
+		$(MD)/sysgo_dd
+
+BOOTFILE_COHR_DS80	= $(MD)/ioman \
+		$(MD)/rbf.mn \
+		$(FLOPPY_80D) \
+		$(MD)/scf.mn \
+		$(VTIO_80COL) \
+		$(MD)/scbbp.dr $(MD)/p_scbbp.dd \
+		$(MD)/scbbt.dr $(MD)/t1_scbbt.dd \
+		$(PIPE) \
+		$(CLOCK60HZ) \
+		$(MD)/sysgo_dd
+
+BOOTFILES	= bootfile_covdg bootfile_cohr bootfile_covdg_dw3 \
+          bootfile_headless_dw3 \
+          bootfile_cohr_dw3 bootfile_covdg_ds80 bootfile_cohr_ds80
+KERNELS		= kernel_1773 kernel_dw3
+
+ALLOBJS		= $(BOOTFILES) $(KERNELS)
+
+all:	$(ALLOBJS)
+
+bootfile_covdg: $(BOOTFILE_COVDG) $(DEPENDS)
+	$(MERGE) $(BOOTFILE_COVDG)>$@
+
+bootfile_cohr: $(BOOTFILE_COHR) $(DEPENDS)
+	$(MERGE) $(BOOTFILE_COHR)>$@
+
+bootfile_co80: $(BOOTFILE_CO80) $(DEPENDS)
+	$(MERGE) $(BOOTFILE_CO80)>$@
+
+bootfile_covdg_ds80: $(BOOTFILE_COVDG_DS80) $(DEPENDS)
+	$(MERGE) $(BOOTFILE_COVDG_DS80)>$@
+
+bootfile_headless_dw3: $(BOOTFILE_HEADLESS_DW3) $(DEPENDS)
+	$(MERGE) $(BOOTFILE_HEADLESS_DW3)>$@
+
+bootfile_covdg_dw3: $(BOOTFILE_COVDG_DW3) $(DEPENDS)
+	$(MERGE) $(BOOTFILE_COVDG_DW3)>$@
+
+bootfile_cohr_ds80: $(BOOTFILE_COHR_DS80) $(DEPENDS)
+	$(MERGE) $(BOOTFILE_COHR_DS80)>$@
+
+bootfile_cohr_dw3: $(BOOTFILE_COHR_DW3) $(DEPENDS)
+	$(MERGE) $(BOOTFILE_COHR_DW3)>$@
+
+# WD1773 Kernel
+kernel_1773: $(KERNEL_1773) $(DEPENDS)
+	$(MERGE) $(KERNEL_1773)>$@
+	$(PADROM) 4608 $@
+
+# DriveWire 3 Kernel
+kernel_dw3: $(KERNEL_DW3) $(DEPENDS)
+	$(MERGE) $(KERNEL_DW3)>$@
+	$(PADROM) 4608 $@
+
+clean:
+	$(RM) $(ALLOBJS)
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/level1/coco2/bootlists/dw3.bl	Thu Jul 19 10:09:15 2012 -0500
@@ -0,0 +1,200 @@
+***************************************
+* NitrOS-9 Level 1 CoCo Bootlist
+*
+* $Id$
+*
+* This bootlist is presented as an example for creating custom bootfiles.
+* A module may be excluded from the bootfile if an asterisk (*) is the
+* first character of the line.
+*
+***************************************
+* Kernel/System Section
+*
+* These modules are mandatory.
+../MODULES/SYSMODS/ioman
+*
+***************************************
+* CDF Section (HawkSoft)
+*
+*../MODULES/CDF/cdf.mn
+*
+* CDF descriptors - select as needed
+* SCSI descriptors (IDs 0-6)
+*../MODULES/CDF/sc0.dd
+*../MODULES/CDF/sc1.dd
+*../MODULES/CDF/sc2.dd
+*../MODULES/CDF/sc3.dd
+*../MODULES/CDF/sc4.dd
+*../MODULES/CDF/sc5.dd
+*../MODULES/CDF/sc6.dd
+* IDE descriptors (master/slave)
+*../MODULES/CDF/ic0.dd
+*../MODULES/CDF/ic1.dd
+*
+***************************************
+* RBF Section
+*
+../MODULES/RBF/rbf.mn
+*
+* DriveWire 3 RBF driver 
+../MODULES/RBF/rbdw3.dr
+../MODULES/RBF/dw3.sb
+* DriveWire descriptors - select as needed
+../MODULES/RBF/ddx0.dd
+*../MODULES/RBF/x0.dd
+../MODULES/RBF/x1.dd
+../MODULES/RBF/x2.dd
+../MODULES/RBF/x3.dd
+*
+* SuperDriver Package
+*../MODULES/RBF/rbsuper.dr
+* Select Low level SCSI and/or IDE driver
+*../MODULES/RBF/lltc3.dr
+*../MODULES/RBF/llide.dr
+* SuperDriver descriptors - select as needed
+* TC^3 SCSI DD Descriptor (ID 0)
+*../MODULES/RBF/dds0_tc3.dd
+* TC^3 SCSI descriptors (IDs 0-6)
+*../MODULES/RBF/s0_tc3.dd
+*../MODULES/RBF/s1_tc3.dd
+*../MODULES/RBF/s2_tc3.dd
+*../MODULES/RBF/s3_tc3.dd
+*../MODULES/RBF/s4_tc3.dd
+*../MODULES/RBF/s5_tc3.dd
+*../MODULES/RBF/s6_tc3.dd
+* TC^3 SCSI HDB-DOS descriptor
+*../MODULES/RBF/sh_tc3.dd
+* IDE DD descriptor (Master)
+*../MODULES/RBF/ddi0_ide.dd
+* IDE descriptors (master/slave)
+*../MODULES/RBF/i0_ide.dd
+*../MODULES/RBF/i1_ide.dd
+* IDE HDB-DOS descriptor
+*../MODULES/RBF/ih_ide.dd
+*
+* WD1773 floppy support for Tandy and compatible disk controllers
+../MODULES/RBF/rb1773.dr
+* WD1773 floppy support for Disto Super Controller II
+*../MODULES/RBF/rb1773_scii_ff74.dr
+*../MODULES/RBF/rb1773_scii_ff58.dr
+* Floppy device descriptors
+* DD - default device - choose one if needed
+*../MODULES/RBF/ddd0_35s.dd
+*../MODULES/RBF/ddd0_40d.dd
+*../MODULES/RBF/ddd0_80d.dd
+* D0 - drive 0 - choose one if needed
+*../MODULES/RBF/d0_35s.dd
+../MODULES/RBF/d0_40d.dd
+*../MODULES/RBF/d0_80d.dd
+* D1 - drive 1 - choose one if needed
+*../MODULES/RBF/d1_35s.dd
+../MODULES/RBF/d1_40d.dd
+*../MODULES/RBF/d1_80d.dd
+* D2 - drive 2 - choose one if needed
+*../MODULES/RBF/d2_35s.dd
+../MODULES/RBF/d2_40d.dd
+*../MODULES/RBF/d2_80d.dd
+* D3 - drive 3 - choose if needed
+*../MODULES/RBF/d3_35s.dd
+***************************************
+* SCF Section
+*
+../MODULES/SCF/scf.mn
+*
+* Video Terminal I/O driver and subroutine modules
+../MODULES/SCF/vtio.dr
+* Choose from CoVDG (32x16 VDG), CoHR (Hi-Res 51x24 graphics screen), or Co80 (WordPak)
+../MODULES/SCF/covdg.io
+*../MODULES/SCF/cohr.io
+*../MODULES/SCF/co80.io
+*
+* Select only one term descriptor
+../MODULES/SCF/term_vdg.dt
+*../MODULES/SCF/term_hr.dt
+*../MODULES/SCF/term_51.dt
+*../MODULES/SCF/term_scbbt.dt
+*../MODULES/SCF/term_sc6551.dt
+*
+* Serial port drivers
+* CoCo Bit-Banger terminal port
+*../MODULES/SCF/scbbt.dr
+*../MODULES/SCF/t1_scbbt.dd
+* 6551 ACIA
+*../MODULES/SCF/sc6551.dr
+*../MODULES/SCF/t2_sc6551.dd
+*../MODULES/SCF/t3_sc6551.dd
+*
+* Printer drivers
+* ../MODULES/SCF/scbbp.dr
+* ../MODULES/SCF/p_scbbp.dd
+*
+* DriveWire 3 Printer drivers
+* ../MODULES/SCF/scdwp.dr
+* ../MODULES/SCF/p_scdwp.dd
+*
+* DriveWire Virtual Channel Driver
+*../MODULES/SCF/scdwv.dr
+*../MODULES/SCF/term_scdwv.dt
+*../MODULES/SCF/n_scdwv.dd
+*../MODULES/SCF/n1_scdwv.dd
+*../MODULES/SCF/n2_scdwv.dd
+*../MODULES/SCF/n3_scdwv.dd
+*../MODULES/SCF/n4_scdwv.dd
+*../MODULES/SCF/n5_scdwv.dd
+*../MODULES/SCF/n6_scdwv.dd
+*../MODULES/SCF/n7_scdwv.dd
+*../MODULES/SCF/n8_scdwv.dd
+*../MODULES/SCF/n9_scdwv.dd
+*../MODULES/SCF/n10_scdwv.dd
+*../MODULES/SCF/n11_scdwv.dd
+*../MODULES/SCF/n12_scdwv.dd
+*../MODULES/SCF/n13_scdwv.dd
+*../MODULES/SCF/n14_scdwv.dd
+*../MODULES/SCF/term_z_scdwv.dt
+*../MODULES/SCF/z1_scdwv.dd
+*../MODULES/SCF/z2_scdwv.dd
+*../MODULES/SCF/z3_scdwv.dd
+*../MODULES/SCF/z4_scdwv.dd
+*../MODULES/SCF/z5_scdwv.dd
+*../MODULES/SCF/z6_scdwv.dd
+*../MODULES/SCF/z7_scdwv.dd
+*
+***************************************
+* Pipe Section
+*
+* Pipes are a useful but optional part of a system.
+../MODULES/PIPE/pipeman.mn
+../MODULES/PIPE/piper.dr
+../MODULES/PIPE/pipe.dd
+*
+***************************************
+* Clock Section
+*
+* Select one clock module depending upon your power line frequency
+* (60Hz = USA/Canada; 50Hz = Europe, Australia)
+../MODULES/CLOCKS/clock_60hz
+*../MODULES/CLOCKS/clock_50hz
+* Select one clock2 module that supports your real-time clock, if any.
+* Besides support for the internal software clock, the following
+* hardware clocks are supported: Burke & Burke, Disto 2-N-1, Disto 4-N-1,
+* Eliminator, Harris, SmartWatch, Cloud-9, the MESS emulator, Jeff
+* Vavasour's CoCo emulator, and DriveWire.
+*../MODULES/CLOCKS/clock2_soft
+*../MODULES/CLOCKS/clock2_bnb
+*../MODULES/CLOCKS/clock2_disto2
+*../MODULES/CLOCKS/clock2_disto4
+*../MODULES/CLOCKS/clock2_elim
+*../MODULES/CLOCKS/clock2_harris
+*../MODULES/CLOCKS/clock2_smart
+*../MODULES/CLOCKS/clock2_jvemu
+*../MODULES/CLOCKS/clock2_messemu
+*../MODULES/CLOCKS/clock2_cloud9
+../MODULES/CLOCKS/clock2_dw3
+* 
+***************************************
+* System Kick-Start Module
+*
+* Choose which startup module you wish to use. (sysgo_dd is recommended
+* for most configurations.)
+../MODULES/SYSMODS/sysgo_dd
+*../MODULES/SYSMODS/sysgo_h0
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/level1/coco2/bootlists/standard.bl	Thu Jul 19 10:09:15 2012 -0500
@@ -0,0 +1,200 @@
+***************************************
+* NitrOS-9 Level 1 CoCo Bootlist
+*
+* $Id$
+*
+* This bootlist is presented as an example for creating custom bootfiles.
+* A module may be excluded from the bootfile if an asterisk (*) is the
+* first character of the line.
+*
+***************************************
+* Kernel/System Section
+*
+* These modules are mandatory.
+../MODULES/SYSMODS/ioman
+*
+***************************************
+* CDF Section (HawkSoft)
+*
+*../MODULES/CDF/cdf.mn
+*
+* CDF descriptors - select as needed
+* SCSI descriptors (IDs 0-6)
+*../MODULES/CDF/sc0.dd
+*../MODULES/CDF/sc1.dd
+*../MODULES/CDF/sc2.dd
+*../MODULES/CDF/sc3.dd
+*../MODULES/CDF/sc4.dd
+*../MODULES/CDF/sc5.dd
+*../MODULES/CDF/sc6.dd
+* IDE descriptors (master/slave)
+*../MODULES/CDF/ic0.dd
+*../MODULES/CDF/ic1.dd
+*
+***************************************
+* RBF Section
+*
+../MODULES/RBF/rbf.mn
+*
+* DriveWire 3 RBF driver
+*../MODULES/RBF/rbdw3.dr
+*../MODULES/RBF/dw3.sb
+* DriveWire descriptors - select as needed
+*../MODULES/RBF/ddx0.dd
+*../MODULES/RBF/x0.dd
+*../MODULES/RBF/x1.dd
+*../MODULES/RBF/x2.dd
+*../MODULES/RBF/x3.dd
+*
+* SuperDriver Package
+*../MODULES/RBF/rbsuper.dr
+* Select Low level SCSI and/or IDE driver
+*../MODULES/RBF/lltc3.dr
+*../MODULES/RBF/llide.dr
+* SuperDriver descriptors - select as needed
+* TC^3 SCSI DD Descriptor (ID 0)
+*../MODULES/RBF/dds0_tc3.dd
+* TC^3 SCSI descriptors (IDs 0-6)
+*../MODULES/RBF/s0_tc3.dd
+*../MODULES/RBF/s1_tc3.dd
+*../MODULES/RBF/s2_tc3.dd
+*../MODULES/RBF/s3_tc3.dd
+*../MODULES/RBF/s4_tc3.dd
+*../MODULES/RBF/s5_tc3.dd
+*../MODULES/RBF/s6_tc3.dd
+* TC^3 SCSI HDB-DOS descriptor
+*../MODULES/RBF/sh_tc3.dd
+* IDE DD descriptor (Master)
+*../MODULES/RBF/ddi0_ide.dd
+* IDE descriptors (master/slave)
+*../MODULES/RBF/i0_ide.dd
+*../MODULES/RBF/i1_ide.dd
+* IDE HDB-DOS descriptor
+*../MODULES/RBF/ih_ide.dd
+*
+* WD1773 floppy support for Tandy and compatible disk controllers
+../MODULES/RBF/rb1773.dr
+* WD1773 floppy support for Disto Super Controller II
+*../MODULES/RBF/rb1773_scii_ff74.dr
+*../MODULES/RBF/rb1773_scii_ff58.dr
+* Floppy device descriptors
+* DD - default device - choose one if needed
+*../MODULES/RBF/ddd0_35s.dd
+../MODULES/RBF/ddd0_40d.dd
+*../MODULES/RBF/ddd0_80d.dd
+* D0 - drive 0 - choose one if needed
+*../MODULES/RBF/d0_35s.dd
+../MODULES/RBF/d0_40d.dd
+*../MODULES/RBF/d0_80d.dd
+* D1 - drive 1 - choose one if needed
+*../MODULES/RBF/d1_35s.dd
+../MODULES/RBF/d1_40d.dd
+*../MODULES/RBF/d1_80d.dd
+* D2 - drive 2 - choose one if needed
+*../MODULES/RBF/d2_35s.dd
+../MODULES/RBF/d2_40d.dd
+*../MODULES/RBF/d2_80d.dd
+* D3 - drive 3 - choose if needed
+*../MODULES/RBF/d3_35s.dd
+***************************************
+* SCF Section
+*
+../MODULES/SCF/scf.mn
+*
+* Video Terminal I/O driver and subroutine modules
+../MODULES/SCF/vtio.dr
+* Choose from CoVDG (32x16 VDG),  CoHR (Hi-Res 51x24 graphics screen), or Co80 (WordPak)
+../MODULES/SCF/covdg.io
+*../MODULES/SCF/cohr.io
+*../MODULES/SCF/co80.io
+*
+* Select only one term descriptor
+../MODULES/SCF/term_vdg.dt
+*../MODULES/SCF/term_hr.dt
+*../MODULES/SCF/term_80.dt
+*../MODULES/SCF/term_scbbt.dt
+*../MODULES/SCF/term_sc6551.dt
+*
+* Serial port drivers
+* CoCo Bit-Banger terminal port
+*../MODULES/SCF/scbbt.dr
+*../MODULES/SCF/t1_scbbt.dd
+* 6551 ACIA
+*../MODULES/SCF/sc6551.dr
+*../MODULES/SCF/t2_sc6551.dd
+*../MODULES/SCF/t3_sc6551.dd
+*
+* Printer drivers
+* ../MODULES/SCF/scbbp.dr
+* ../MODULES/SCF/p_scbbp.dd
+*
+* DriveWire 3 Printer drivers
+* ../MODULES/SCF/scdwp.dr
+* ../MODULES/SCF/p_scdwp.dd
+*
+* DriveWire Virtual Channel Driver
+*../MODULES/SCF/scdwv.dr
+*../MODULES/SCF/term_scdwv.dt
+*../MODULES/SCF/n_scdwv.dd
+*../MODULES/SCF/n1_scdwv.dd
+*../MODULES/SCF/n2_scdwv.dd
+*../MODULES/SCF/n3_scdwv.dd
+*../MODULES/SCF/n4_scdwv.dd
+*../MODULES/SCF/n5_scdwv.dd
+*../MODULES/SCF/n6_scdwv.dd
+*../MODULES/SCF/n7_scdwv.dd
+*../MODULES/SCF/n8_scdwv.dd
+*../MODULES/SCF/n9_scdwv.dd
+*../MODULES/SCF/n10_scdwv.dd
+*../MODULES/SCF/n11_scdwv.dd
+*../MODULES/SCF/n12_scdwv.dd
+*../MODULES/SCF/n13_scdwv.dd
+*../MODULES/SCF/n14_scdwv.dd
+*../MODULES/SCF/term_z_scdwv.dt
+*../MODULES/SCF/z1_scdwv.dd
+*../MODULES/SCF/z2_scdwv.dd
+*../MODULES/SCF/z3_scdwv.dd
+*../MODULES/SCF/z4_scdwv.dd
+*../MODULES/SCF/z5_scdwv.dd
+*../MODULES/SCF/z6_scdwv.dd
+*../MODULES/SCF/z7_scdwv.dd
+*
+***************************************
+* Pipe Section
+*
+* Pipes are a useful but optional part of a system.
+../MODULES/PIPE/pipeman.mn
+../MODULES/PIPE/piper.dr
+../MODULES/PIPE/pipe.dd
+*
+***************************************
+* Clock Section
+*
+* Select one clock module depending upon your power line frequency
+* (60Hz = USA/Canada; 50Hz = Europe, Australia)
+../MODULES/CLOCKS/clock_60hz
+*../MODULES/CLOCKS/clock_50hz
+* Select one clock2 module that supports your real-time clock, if any.
+* Besides support for the internal software clock, the following
+* hardware clocks are supported: Burke & Burke, Disto 2-N-1, Disto 4-N-1,
+* Eliminator, Harris, SmartWatch, Cloud-9, the MESS emulator, Jeff
+* Vavasour's CoCo emulator, and DriveWire.
+../MODULES/CLOCKS/clock2_soft
+*../MODULES/CLOCKS/clock2_bnb
+*../MODULES/CLOCKS/clock2_disto2
+*../MODULES/CLOCKS/clock2_disto4
+*../MODULES/CLOCKS/clock2_elim
+*../MODULES/CLOCKS/clock2_harris
+*../MODULES/CLOCKS/clock2_smart
+*../MODULES/CLOCKS/clock2_jvemu
+*../MODULES/CLOCKS/clock2_messemu
+*../MODULES/CLOCKS/clock2_cloud9
+*../MODULES/CLOCKS/clock2_dw3
+* 
+***************************************
+* System Kick-Start Module
+*
+* Choose which startup module you wish to use. (sysgo_dd is recommended
+* for most configurations.)
+../MODULES/SYSMODS/sysgo_dd
+*../MODULES/SYSMODS/sysgo_h0
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/level1/coco2/bootroms/makefile	Thu Jul 19 10:09:15 2012 -0500
@@ -0,0 +1,42 @@
+include $(NITROS9DIR)/rules.mak
+
+# Module directory
+MD		= ../modules
+# Commands directory
+CD		= ../cmds
+
+DEPENDS		= ./makefile
+
+KERNEL_ROM	= $(MD)/rel $(MD)/krn $(MD)/krnp2 $(MD)/init $(MD)/boot_rom
+
+BOOTFILE_ROM	= $(MD)/rominfo $(MD)/ioman \
+		$(MD)/scf.mn $(MD)/vtio.dr \
+		$(MD)/covdg.io \
+		$(MD)/term_vdg.dt \
+		$(MD)/clock_60hz $(MD)/clock2_soft
+
+BOOTROMS	= nos96809l1.rom
+KERNELS		= kernel_rom
+
+ALLROMS		= $(BOOTROMS)
+
+all:	$(ALLROMS)
+
+# Bootfiles
+nos96809l1.rom: $(BOOTFILE_ROM) $(KERNEL_ROM) $(DEPENDS)
+	$(MERGE) $(BOOTFILE_ROM)>$@.tmp
+	$(PADROM) 11776 $@.tmp
+	$(MERGE) $(KERNEL_ROM)>kernel_rom
+	$(PADROM) 4592 kernel_rom
+	$(MERGE) $@.tmp kernel_rom>$@.tmp2
+	$(MERGE) $@.tmp2 $(MD)/vectors>$@
+	$(RM) $@.tmp $@.tmp2
+	
+
+# Kernels
+kernel_rom: $(KERNEL_ROM) $(DEPENDS)
+	$(MERGE) $(KERNEL_ROM)>$@
+
+clean:
+	$(RM) $(ALLROMS) $(KERNELS)
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/level1/coco2/cmds/defsfile	Thu Jul 19 10:09:15 2012 -0500
@@ -0,0 +1,1 @@
+          use    ../defsfile
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/level1/coco2/cmds/makefile	Thu Jul 19 10:09:15 2012 -0500
@@ -0,0 +1,59 @@
+PORT = coco2
+include $(NITROS9DIR)/rules.mak
+
+vpath %.a $(LEVEL1)/cmds
+vpath %.asm $(LEVEL1)/cmds:$(NITROS9DIR)/3rdparty/packages/basic09
+
+DEPENDS		= ./makefile
+
+AFLAGS		+= --includedir=$(NITROS9DIR)/3rdparty/packages/basic09
+LFLAGS		+= -l=$(NITROS9DIR)/lib/net.l -l=$(NITROS9DIR)/lib/alib.l -l=$(NITROS9DIR)/lib/sys6809l1.l
+
+BASIC09FILES	= basic09.asm runb.asm gfx.asm inkey.asm syscall.asm
+CMDS		= asm attr backup binex build calldbg cmp cobbler copy cputype \
+		date dcheck debug ded deiniz del deldir devs dir dirsort disasm \
+		display dmode dsave dump echo edit error exbin format \
+		free grfdrv help ident iniz irqs link list load login makdir \
+		megaread mdir merge mfree mpi os9gen padrom park printerr procs prompt pwd pxd \
+		rename save setime shellplus shell_21 sleep \
+		tee tmode touch tsmon tuneport unlink verify xmode
+
+CMDS_D2		= basic09 runb gfx inkey syscall copy del echo format \
+		merge os9gen prompt tmode
+
+CMDS_DW		= inetd telnet dw
+
+SUBS		= gfx inkey syscall
+ALLOBJS		= $(CMDS) $(CMDS_D2) $(CMDS_DW) $(SUBS)
+
+all:	$(ALLOBJS)
+
+pwd:	pd.asm
+	$(AS) $(AFLAGS) $< $(ASOUT)$@ -DPWD=1
+
+xmode:	xmode.asm
+	$(AS) $(AFLAGS) $< $(ASOUT)$@ -DXMODE=1
+
+tmode:	xmode.asm
+	$(AS) $(AFLAGS) $< $(ASOUT)$@ -DTMODE=1
+
+pxd:	pd.asm
+	$(AS) $(AFLAGS) $< $(ASOUT)$@ -DPXD=1
+	
+clean:
+	$(RM) $(ALLOBJS)
+
+identify:
+	$(IDENT_SHORT) $(ALLOBJS)
+
+showobjs:
+	@$(ECHO) $(CMDS)
+
+showobjs_d2:
+	@$(ECHO) $(CMDS_D2)
+
+showobjs_dw:
+	@$(ECHO) $(CMDS) $(CMDS_DW)
+
+showallobjs:
+	@$(ECHO) $(ALLOBJS)
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/level1/coco2/defs/defsfile.asm	Thu Jul 19 10:09:15 2012 -0500
@@ -0,0 +1,8 @@
+Level equ 1
+
+ ifp1
+ use /dd/defs/os9.d
+ use /dd/defs/rbf.d
+ use /dd/defs/scf.d
+ use /dd/defs/coco.d
+ endc
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/level1/coco2/defs/makefile	Thu Jul 19 10:09:15 2012 -0500
@@ -0,0 +1,35 @@
+PORT = coco2
+include $(NITROS9DIR)/rules.mak
+
+DEPENDS		= ./makefile
+
+DEFOPTS		= --preprocess -DLevel=1
+DEFSDIR		= ../../../defs
+DEFS		= defsfile os9.d rbf.d scf.d coco.d cocovtio.d
+ALLOBJS		= $(DEFS)
+
+all:	$(ALLOBJS)
+
+defsfile: defsfile.asm
+	$(AS) $(DEFOPTS)  $< > $@
+
+os9.d: $(DEFSDIR)/os9.d
+	$(AS) $(DEFOPTS) -DOS9.D=0 $< > $@
+
+rbf.d: $(DEFSDIR)/rbf.d
+	$(AS) $(DEFOPTS) -DRBF.D=0 $< > $@
+
+scf.d: $(DEFSDIR)/scf.d
+	$(AS) $(DEFOPTS) -DSCF.D=0 $< > $@
+
+coco.d: $(DEFSDIR)/coco.d
+	$(AS) $(DEFOPTS) -DCOCO.D=0 $< > $@
+
+cocovtio.d: $(DEFSDIR)/cocovtio.d
+	$(AS) $(DEFOPTS) -DCOCOVTIO.D=0 $< > $@
+
+clean:
+	$(RM) $(DEFS)
+
+showobjs:
+	@$(ECHO) $(ALLOBJS)
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/level1/coco2/defsfile	Thu Jul 19 10:09:15 2012 -0500
@@ -0,0 +1,6 @@
+Level    equ   1
+
+         use   os9.d
+         use   scf.d
+         use   rbf.d
+         use   coco.d
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/level1/coco2/makefile	Thu Jul 19 10:09:15 2012 -0500
@@ -0,0 +1,253 @@
+PORT = coco2
+include $(NITROS9DIR)/rules.mak
+
+CPU		= 6809
+LEVEL		= 1
+
+# Level 1 - Specify which shell should be used
+#WHICHSHELL	= shellplus
+WHICHSHELL	= shell_21
+
+DISTRO		= $(CPU)L$(LEVEL)
+DISTRONAME	= nos9$(CPU)l$(LEVEL)
+DISTROVER	= $(DISTRONAME)$(NITROS9VER)$(PORT)
+BOOTFILE_COVDG	= bootfiles/bootfile_covdg
+BOOTFILE_COHR	= bootfiles/bootfile_cohr
+BOOTFILE_COVDG_DS80	= bootfiles/bootfile_covdg_ds80
+BOOTFILE_HEADLESS_DW3	= bootfiles/bootfile_headless_dw3
+BOOTFILE_COVDG_DW3	= bootfiles/bootfile_covdg_dw3
+BOOTFILE_COHR_DS80	= bootfiles/bootfile_cohr_ds80
+BOOTFILE_COHR_DW3	= bootfiles/bootfile_cohr_dw3
+KERNELFILE	= bootfiles/kernel_1773
+KERNELFILE_DW3	= bootfiles/kernel_dw3
+DIRS		= cmds modules defs sys bootfiles bootroms
+
+
+CMDS		= $(shell $(CD) cmds; make --no-print-directory showobjs)
+CMDS_D2		= $(shell $(CD) cmds; make --no-print-directory showobjs_d2)
+CMDS_DW		= $(shell $(CD) cmds; make --no-print-directory showobjs_dw)
+BOOTTRACK	= $(shell $(CD) modules; make --no-print-directory showboottrack)
+KERNEL		= $(shell $(CD) modules; make --no-print-directory showkernel)
+SYSMODS		= $(shell $(CD) modules; make --no-print-directory showsysmods)
+CLOCKS		= $(shell $(CD) modules; make --no-print-directory showclocks)
+RBF		= $(shell $(CD) modules; make --no-print-directory showrbf)
+SCF		= $(shell $(CD) modules; make --no-print-directory showscf)
+PIPE		= $(shell $(CD) modules; make --no-print-directory showpipe)
+MODULECMDS	= $(WHICHSHELL) del echo format makdir merge os9gen prompt tmode
+
+SYS		= $(shell $(CD) sys; make --no-print-directory showobjs)
+DEFS		= $(shell $(CD) defs; make --no-print-directory showobjs)
+STARTUP		= startup
+STARTUP_DW	= startup.dw
+
+PACKAGENAME	= $(DISTROVER).zip
+DSKDW3         = $(DISTROVER)_dw3.dsk
+LDSKDW3        = $(DISTRONAME)$(PORT).dsk
+DSK360K_1       = $(DISTROVER)_40d_1.dsk
+LDSK360K_1      = $(DISTRONAME)_40d_1.dsk
+DSK360K_2       = $(DISTROVER)_40d_2.dsk
+LDSK360K_2      = $(DISTRONAME)_40d_2.dsk
+DSK720K         = $(DISTROVER)_80d.dsk
+LDSK720K        = $(DISTRONAME)_80d.dsk
+
+
+DSKS		= $(DSKDW3) $(DSK360K_1) $(DSK360K_2) $(DSK720K)
+LDSKS		= $(LDSKDW3) $(LDSK360K_1) $(LDSK360K_2) $(LDSK720K)
+
+# Make all components
+all:
+	@$(ECHO) "**************************************************"
+	@$(ECHO) "*                                                *"
+	@$(ECHO) "*         NitrOS-9/$(CPU) Level 1 CoCo Port        *"
+	@$(ECHO) "*                                                *"
+	@$(ECHO) "**************************************************"
+	$(foreach dir, $(DIRS), ($(CD) $(dir); make);)
+
+# Clean all components
+clean:	dskclean
+	$(foreach dir, $(DIRS), ($(CD) $(dir); make clean);)
+
+dskclean:
+	-$(RM) $(PACKAGENAME) $(DSKS) $(LDSKS)
+
+dsk: all $(PACKAGENAME)
+
+dskcopy: dsk
+	$(CP) $(DSKS) $(DSKDIR)
+
+scp: dsk
+	scp $(PACKAGENAME) boisy@cvs.nitros9.org:/home/nitros9/public_html
+
+$(PACKAGENAME): $(DSKS) ../../ReadMe ../../ChangeLog
+	$(ARCHIVE) $@ $^
+
+$(DSKDW3):
+	$(RM) $@
+	$(OS9FORMAT_DW3) -q $@ -n"NitrOS-9/6809 Level 1"
+	$(OS9GEN) $@ -b=$(BOOTFILE_COVDG_DW3) -t=$(KERNELFILE_DW3)
+	$(MAKDIR) $@,CMDS
+	$(MAKDIR) $@,SYS
+	$(MAKDIR) $@,DEFS
+	$(CD) cmds; $(CP) $(CMDS_DW) ../$@,CMDS
+	$(foreach file, $(CMDS_DW), $(OS9ATTR_EXEC) $@,CMDS/$(file);)
+	$(CD) cmds; $(CP) $(CMDS_D2) ../$@,CMDS
+	$(foreach file, $(CMDS_D2), $(OS9ATTR_EXEC) $@,CMDS/$(file);)
+	$(OS9RENAME) $@,CMDS/$(WHICHSHELL) shell
+	$(CD) sys; $(CPL) $(SYS) ../$@,SYS
+	$(foreach file, $(SYS), $(OS9ATTR_TEXT) $@,SYS/$(file);)
+	$(CD) defs; $(CPL) $(DEFS) ../$@,DEFS
+	$(foreach file, $(DEFS), $(OS9ATTR_TEXT) $@,DEFS/$(file);)
+	$(CPL) $(STARTUP_DW) $@,startup
+	$(OS9ATTR_TEXT) $@,startup
+	$(MAKDIR) $@,NITROS9
+	$(MAKDIR) $@,NITROS9/6809L1
+	$(MAKDIR) $@,NITROS9/6809L1/CMDS
+	$(CD) cmds; $(CP) $(MODULECMDS) ../$@,NITROS9/6809L1/CMDS
+	$(foreach file, $(MODULECMDS), $(OS9ATTR_EXEC) $@,NITROS9/6809L1/CMDS/$(file);)
+	$(OS9RENAME) $@,NITROS9/6809L1/CMDS/$(WHICHSHELL) shell
+	$(MAKDIR) $@,NITROS9/6809L1/MODULES
+	$(MAKDIR) $@,NITROS9/6809L1/MODULES/BOOTTRACK
+	$(CD) modules; $(CP) $(BOOTTRACK) ../$@,NITROS9/6809L1/MODULES/BOOTTRACK
+	$(foreach file, $(BOOTTRACK), $(OS9ATTR_EXEC) $@,NITROS9/6809L1/MODULES/BOOTTRACK/$(file);)
+	$(MAKDIR) $@,NITROS9/6809L1/MODULES/KERNEL
+	$(CD) modules; $(CP) $(KERNEL) ../$@,NITROS9/6809L1/MODULES/KERNEL
+	$(foreach file, $(KERNEL), $(OS9ATTR_EXEC) $@,NITROS9/6809L1/MODULES/KERNEL/$(file);)
+	$(MAKDIR) $@,NITROS9/6809L1/MODULES/SYSMODS
+	$(CD) modules; $(CP) $(SYSMODS) ../$@,NITROS9/6809L1/MODULES/SYSMODS
+	$(foreach file, $(SYSMODS), $(OS9ATTR_EXEC) $@,NITROS9/6809L1/MODULES/SYSMODS/$(file);)
+	$(MAKDIR) $@,NITROS9/6809L1/MODULES/CLOCKS
+	$(CD) modules; $(CP) $(CLOCKS) ../$@,NITROS9/6809L1/MODULES/CLOCKS
+	$(foreach file, $(CLOCKS), $(OS9ATTR_EXEC) $@,NITROS9/6809L1/MODULES/CLOCKS/$(file);)
+	$(MAKDIR) $@,NITROS9/6809L1/MODULES/RBF
+	$(CD) modules; $(CP) $(RBF) ../$@,NITROS9/6809L1/MODULES/RBF
+	$(foreach file, $(RBF), $(OS9ATTR_EXEC) $@,NITROS9/6809L1/MODULES/RBF/$(file);)
+	$(MAKDIR) $@,NITROS9/6809L1/MODULES/SCF
+	$(CD) modules; $(CP) $(SCF) ../$@,NITROS9/6809L1/MODULES/SCF
+	$(foreach file, $(SCF), $(OS9ATTR_EXEC) $@,NITROS9/6809L1/MODULES/SCF/$(file);)
+	$(MAKDIR) $@,NITROS9/6809L1/MODULES/PIPE
+	$(CD) modules; $(CP) $(PIPE) ../$@,NITROS9/6809L1/MODULES/PIPE
+	$(foreach file, $(PIPE), $(OS9ATTR_EXEC) $@,NITROS9/6809L1/MODULES/PIPE/$(file);)
+	$(MAKDIR) $@,NITROS9/6809L1/BOOTLISTS
+	$(CD) bootlists; $(CPL) *.bl ../$@,NITROS9/6809L1/BOOTLISTS
+	$(MAKDIR) $@,NITROS9/6809L1/SCRIPTS
+	$(CD) scripts; $(CPL) mb* ../$@,NITROS9/6809L1/SCRIPTS
+	$(RM) $(LDSKDW3)
+	$(SOFTLINK) $@ $(LDSKDW3)
+
+$(DSK360K_1):
+	$(RM) $@
+	$(OS9FORMAT_DS40) -q $@ -n"NitrOS-9/6809 Level 1 Disk 1"
+	$(OS9GEN) $@ -b=$(BOOTFILE_COVDG) -t=$(KERNELFILE)
+	$(MAKDIR) $@,CMDS
+	$(MAKDIR) $@,SYS
+	$(CD) cmds; $(CP) $(CMDS) ../$@,CMDS
+	$(foreach file, $(CMDS), $(OS9ATTR_EXEC) $@,CMDS/$(file);)
+	$(OS9RENAME) $@,CMDS/$(WHICHSHELL) shell
+	$(CD) sys; $(CPL) $(SYS) ../$@,SYS
+	$(foreach file, $(SYS), $(OS9ATTR_TEXT) $@,SYS/$(file);)
+	$(MAKDIR) $@,DEFS
+	$(CD) defs; $(CPL) $(DEFS) ../$@,DEFS
+	$(foreach file, $(DEFS), $(OS9ATTR_TEXT) $@,DEFS/$(file);)
+	$(CPL) $(STARTUP) $@,startup
+	$(OS9ATTR_TEXT) $@,startup
+	$(RM) $(LDSK360K_1)
+	$(SOFTLINK) $@ $(LDSK360K_1)
+
+$(DSK360K_2):
+	$(RM) $@
+	$(OS9FORMAT_DS40) -q $@ -n"NitrOS-9/6809 Level 1 Disk 2"
+	$(MAKDIR) $@,CMDS
+	$(CD) cmds; $(CP) $(CMDS_D2) ../$@,CMDS
+	$(foreach file, $(CMDS_D2), $(OS9ATTR_EXEC) $@,CMDS/$(file);)
+	$(MAKDIR) $@,NITROS9
+	$(MAKDIR) $@,NITROS9/6809L1
+	$(MAKDIR) $@,NITROS9/6809L1/CMDS
+	$(CD) cmds; $(CP) $(MODULECMDS) ../$@,NITROS9/6809L1/CMDS
+	$(foreach file, $(MODULECMDS), $(OS9ATTR_EXEC) $@,NITROS9/6809L1/CMDS/$(file);)
+	$(OS9RENAME) $@,NITROS9/6809L1/CMDS//$(WHICHSHELL) shell
+	$(MAKDIR) $@,NITROS9/6809L1/MODULES
+	$(MAKDIR) $@,NITROS9/6809L1/MODULES/BOOTTRACK
+	$(CD) modules; $(CP) $(BOOTTRACK) ../$@,NITROS9/6809L1/MODULES/BOOTTRACK
+	$(foreach file, $(BOOTTRACK), $(OS9ATTR_EXEC) $@,NITROS9/6809L1/MODULES/BOOTTRACK/$(file);)
+	$(MAKDIR) $@,NITROS9/6809L1/MODULES/KERNEL
+	$(CD) modules; $(CP) $(KERNEL) ../$@,NITROS9/6809L1/MODULES/KERNEL
+	$(foreach file, $(KERNEL), $(OS9ATTR_EXEC) $@,NITROS9/6809L1/MODULES/KERNEL/$(file);)
+	$(MAKDIR) $@,NITROS9/6809L1/MODULES/SYSMODS
+	$(CD) modules; $(CP) $(SYSMODS) ../$@,NITROS9/6809L1/MODULES/SYSMODS
+	$(foreach file, $(SYSMODS), $(OS9ATTR_EXEC) $@,NITROS9/6809L1/MODULES/SYSMODS/$(file);)
+	$(MAKDIR) $@,NITROS9/6809L1/MODULES/CLOCKS
+	$(CD) modules; $(CP) $(CLOCKS) ../$@,NITROS9/6809L1/MODULES/CLOCKS
+	$(foreach file, $(CLOCKS), $(OS9ATTR_EXEC) $@,NITROS9/6809L1/MODULES/CLOCKS/$(file);)
+	$(MAKDIR) $@,NITROS9/6809L1/MODULES/RBF
+	$(CD) modules; $(CP) $(RBF) ../$@,NITROS9/6809L1/MODULES/RBF
+	$(foreach file, $(RBF), $(OS9ATTR_EXEC) $@,NITROS9/6809L1/MODULES/RBF/$(file);)
+	$(MAKDIR) $@,NITROS9/6809L1/MODULES/SCF
+	$(CD) modules; $(CP) $(SCF) ../$@,NITROS9/6809L1/MODULES/SCF
+	$(foreach file, $(SCF), $(OS9ATTR_EXEC) $@,NITROS9/6809L1/MODULES/SCF/$(file);)
+	$(MAKDIR) $@,NITROS9/6809L1/MODULES/PIPE
+	$(CD) modules; $(CP) $(PIPE) ../$@,NITROS9/6809L1/MODULES/PIPE
+	$(foreach file, $(PIPE), $(OS9ATTR_EXEC) $@,NITROS9/6809L1/MODULES/PIPE/$(file);)
+	$(MAKDIR) $@,NITROS9/6809L1/BOOTLISTS
+	$(CD) bootlists; $(CPL) *.bl ../$@,NITROS9/6809L1/BOOTLISTS
+	$(MAKDIR) $@,NITROS9/6809L1/SCRIPTS
+	$(CD) scripts; $(CPL) mb* ../$@,NITROS9/6809L1/SCRIPTS
+	$(RM) $(LDSK360K_2)
+	$(SOFTLINK) $@ $(LDSK360K_2)
+
+$(DSK720K):
+	$(RM) $@
+	$(OS9FORMAT_DS80) -q $@ -n"NitrOS-9/6809 Level 1"
+	$(OS9GEN) $@ -b=$(BOOTFILE_COVDG_DS80) -t=$(KERNELFILE)
+	$(MAKDIR) $@,CMDS
+	$(MAKDIR) $@,SYS
+	$(MAKDIR) $@,DEFS
+	$(CD) cmds; $(CP) $(CMDS) ../$@,CMDS
+	$(foreach file, $(CMDS), $(OS9ATTR_EXEC) $@,CMDS/$(file);)
+	$(CD) cmds; $(CP) $(CMDS_D2) ../$@,CMDS
+	$(foreach file, $(CMDS_D2), $(OS9ATTR_EXEC) $@,CMDS/$(file);)
+	$(OS9RENAME) $@,CMDS/$(WHICHSHELL) shell
+	$(CD) sys; $(CPL) $(SYS) ../$@,SYS
+	$(foreach file, $(SYS), $(OS9ATTR_TEXT) $@,SYS/$(file);)
+	$(CD) defs; $(CPL) $(DEFS) ../$@,DEFS
+	$(foreach file, $(DEFS), $(OS9ATTR_TEXT) $@,DEFS/$(file);)
+	$(CPL) $(STARTUP) $@,startup
+	$(OS9ATTR_TEXT) $@,startup
+	$(MAKDIR) $@,NITROS9
+	$(MAKDIR) $@,NITROS9/6809L1
+	$(MAKDIR) $@,NITROS9/6809L1/CMDS
+	$(CD) cmds; $(CP) $(MODULECMDS) ../$@,NITROS9/6809L1/CMDS
+	$(foreach file, $(MODULECMDS), $(OS9ATTR_EXEC) $@,NITROS9/6809L1/CMDS/$(file);)
+	$(OS9RENAME) $@,NITROS9/6809L1/CMDS/$(WHICHSHELL) shell
+	$(MAKDIR) $@,NITROS9/6809L1/MODULES
+	$(MAKDIR) $@,NITROS9/6809L1/MODULES/BOOTTRACK
+	$(CD) modules; $(CP) $(BOOTTRACK) ../$@,NITROS9/6809L1/MODULES/BOOTTRACK
+	$(foreach file, $(BOOTTRACK), $(OS9ATTR_EXEC) $@,NITROS9/6809L1/MODULES/BOOTTRACK/$(file);)
+	$(MAKDIR) $@,NITROS9/6809L1/MODULES/KERNEL
+	$(CD) modules; $(CP) $(KERNEL) ../$@,NITROS9/6809L1/MODULES/KERNEL
+	$(foreach file, $(KERNEL), $(OS9ATTR_EXEC) $@,NITROS9/6809L1/MODULES/KERNEL/$(file);)
+	$(MAKDIR) $@,NITROS9/6809L1/MODULES/SYSMODS
+	$(CD) modules; $(CP) $(SYSMODS) ../$@,NITROS9/6809L1/MODULES/SYSMODS
+	$(foreach file, $(SYSMODS), $(OS9ATTR_EXEC) $@,NITROS9/6809L1/MODULES/SYSMODS/$(file);)
+	$(MAKDIR) $@,NITROS9/6809L1/MODULES/CLOCKS
+	$(CD) modules; $(CP) $(CLOCKS) ../$@,NITROS9/6809L1/MODULES/CLOCKS
+	$(foreach file, $(CLOCKS), $(OS9ATTR_EXEC) $@,NITROS9/6809L1/MODULES/CLOCKS/$(file);)
+	$(MAKDIR) $@,NITROS9/6809L1/MODULES/RBF
+	$(CD) modules; $(CP) $(RBF) ../$@,NITROS9/6809L1/MODULES/RBF
+	$(foreach file, $(RBF), $(OS9ATTR_EXEC) $@,NITROS9/6809L1/MODULES/RBF/$(file);)
+	$(MAKDIR) $@,NITROS9/6809L1/MODULES/SCF
+	$(CD) modules; $(CP) $(SCF) ../$@,NITROS9/6809L1/MODULES/SCF
+	$(foreach file, $(SCF), $(OS9ATTR_EXEC) $@,NITROS9/6809L1/MODULES/SCF/$(file);)
+	$(MAKDIR) $@,NITROS9/6809L1/MODULES/PIPE
+	$(CD) modules; $(CP) $(PIPE) ../$@,NITROS9/6809L1/MODULES/PIPE
+	$(foreach file, $(PIPE), $(OS9ATTR_EXEC) $@,NITROS9/6809L1/MODULES/PIPE/$(file);)
+	$(MAKDIR) $@,NITROS9/6809L1/BOOTLISTS
+	$(CD) bootlists; $(CPL) *.bl ../$@,NITROS9/6809L1/BOOTLISTS
+	$(MAKDIR) $@,NITROS9/6809L1/SCRIPTS
+	$(CD) scripts; $(CPL) mb* ../$@,NITROS9/6809L1/SCRIPTS
+	$(RM) $(LDSK720K)
+	$(SOFTLINK) $@ $(LDSK720K)
+
+info:
+	@echo "*** NitrOS-9/6809 Level 1 for the Tandy Color Computer ***" 
+	@$(foreach dsk, $(DSKS), $(ECHO) $(dsk);)
+	
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/level1/coco2/modules/defsfile	Thu Jul 19 10:09:15 2012 -0500
@@ -0,0 +1,1 @@
+         use   ../defsfile
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/level1/coco2/modules/kernel/defsfile	Thu Jul 19 10:09:15 2012 -0500
@@ -0,0 +1,1 @@
+         use   ../../defsfile
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/level1/coco2/modules/kernel/makefile	Thu Jul 19 10:09:15 2012 -0500
@@ -0,0 +1,32 @@
+PORT = coco
+include $(NITROS9DIR)/rules.mak
+
+vpath %.asm $(LEVEL1)/modules/kernel
+
+DEPENDS		= ./makefile
+
+KERNEL		= krn
+KERNELP2	= krnp2
+SYSCALLS	= fcmpnam.asm fprsnam.asm
+
+AFLAGS		+= -I$(LEVEL1)/modules/kernel
+
+ALLOBJS		= $(KERNEL) $(KERNELP2)
+
+all:	$(ALLOBJS)
+
+$(KERNEL):	krn.asm $(SYSCALLS)
+
+$(KERNELP2):	krnp2.asm $(SYSCALLS)
+
+clean:
+	$(RM) $(ALLOBJS)
+
+showobjs:
+	@$(ECHO) $(ALLOBJS)
+
+showcopyobjs:
+	@$(ECHO) $(COPYOBJS)
+
+identify:
+	$(IDENT_SHORT) $(ALLOBJS)
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/level1/coco2/modules/makefile	Thu Jul 19 10:09:15 2012 -0500
@@ -0,0 +1,352 @@
+PORT = coco2
+include $(NITROS9DIR)/rules.mak
+
+vpath %.asm $(LEVEL1)/modules
+
+AFLAGS		+= -I$(LEVEL1)/modules
+
+CLOCKELIM       = -DRTCElim=1
+CLOCKDISTO2     = -DRTCDsto2=1
+CLOCKDISTO4     = -DRTCDsto4=1
+CLOCKBNB        = -DRTCBB=1
+CLOCKSMART      = -DRTCSmart=1 -DMPIFlag=1
+CLOCKHARRIS     = -DRTCHarrs=1
+CLOCKCLOUD9     = -DRTCCloud9=1
+CLOCKSOFT       = -DRTCSoft=1
+CLOCKMESSEMU    = -DRTCMessEmu=1
+CLOCKJVEMU      = -DRTCJVEmu=1
+TC3FLAGS        = $(AFLAGS) -DTC3=1 $(FLAGS)
+IDEFLAGS        = $(AFLAGS) -DIDE=1 $(FLAGS)
+
+DEPENDS		= ./makefile
+TPB		= $(3RDPARTY)/booters
+
+BOOTERS		= boot_1773_6ms boot_1773_30ms \
+		boot_burke boot_rampak boot_wd1002 boot_dw3 \
+		boot_tc3 boot_ide boot_rom
+BOOTTRACK	= rel $(BOOTERS)
+KERNEL		= krn krnp2 wbug
+SYSMODS		= ioman init sysgo_dd sysgo_h0 rominfo vectors
+CLOCKS          = clock_60hz clock_50hz \
+		clock2_elim clock2_disto2 clock2_disto4 clock2_bnb \
+                clock2_smart clock2_harris clock2_cloud9 clock2_soft \
+		clock2_messemu clock2_jvemu clock2_dw3
+
+RBF		= rbf.mn \
+		rbdw3.dr dw3.sb \
+		rb1773.dr rb1773_scii_ff74.dr rb1773_scii_ff58.dr \
+		ddd0_35s.dd d0_35s.dd d1_35s.dd d2_35s.dd d3_35s.dd \
+		ddd0_40d.dd d0_40d.dd d1_40d.dd d2_40d.dd \
+		ddd0_80d.dd d0_80d.dd d1_80d.dd d2_80d.dd \
+		ddx0.dd x0.dd x1.dd x2.dd x3.dd \
+		rbsuper.dr lltc3.dr llide.dr \
+		ddi0_ide.dd i0_ide.dd i1_ide.dd ih_ide.dd \
+		dds0_tc3.dd s0_tc3.dd s1_tc3.dd s2_tc3.dd s3_tc3.dd s4_tc3.dd \
+                s5_tc3.dd s6_tc3.dd sh_tc3.dd
+
+SCF		= scf.mn \
+		sc6551.dr vrn.dr scbbp.dr scbbt.dr scdwp.dr sspak.dr vtio.dr \
+		covdg.io cohr.io co80.io \
+		nil.dd p_scbbp.dd p_scdwp.dd pipe.dd ssp.dd \
+		term_scbbt.dt term_sc6551.dt t1_scbbt.dd t2_sc6551.dd t3_sc6551.dd \
+		term_vdg.dt term_51.dt term_80.dt \
+		scdwv.dr term_scdwv.dt n_scdwv.dd n1_scdwv.dd n2_scdwv.dd \
+		n3_scdwv.dd n4_scdwv.dd n5_scdwv.dd n6_scdwv.dd n7_scdwv.dd \
+		n8_scdwv.dd n9_scdwv.dd n10_scdwv.dd n11_scdwv.dd n12_scdwv.dd \
+		n13_scdwv.dd midi_scdwv.dd \
+		term_z_scdwv.dt \
+		z1_scdwv.dd z2_scdwv.dd z3_scdwv.dd z4_scdwv.dd z5_scdwv.dd \
+		z6_scdwv.dd z7_scdwv.dd
+
+PIPE		= pipeman.mn \
+		piper.dr \
+		pipe.dd
+
+RFM		= rfm.mn rfmdrv.dr ddy0.dd y0.dd y1.dd y2.dd y3.dd
+
+ALLOBJS		= $(BOOTTRACK) $(KERNEL) $(SYSMODS) $(CLOCKS) $(RBF) $(SCF) $(PIPE) $(RFM)
+
+all:	$(ALLOBJS)
+
+# Kernel
+krn krnp2:
+	$(CD) kernel; make $@
+	$(CP) kernel/$@ .
+
+# Special cases
+# TC^3 SCSI Booter
+boot_tc3: boot_scsi.asm
+	$(AS) $(ASOUT)$@ $< $(TC3FLAGS)
+
+# SuperIDE/Glenside IDE Booter
+boot_ide: boot_ide.asm
+	$(AS) $(ASOUT)$@ $< $(IDEFLAGS)
+
+# DriveWire 3
+boot_1773_6ms:	boot_1773.asm
+	$(AS) $< $(ASOUT)$@ $(AFLAGS) -DDNum=0 -DSTEP=0
+
+boot_1773_30ms:	boot_1773.asm
+	$(AS) $< $(ASOUT)$@ $(AFLAGS) -DDNum=0 -DSTEP=3
+
+rb1773_scii_ff74.dr:	rb1773.asm
+	$(AS) $< $(ASOUT)$@ $(AFLAGS) -DSCII=1
+
+rb1773_scii_ff58.dr:	rb1773.asm
+	$(AS) $< $(ASOUT)$@ $(AFLAGS) -DSCII=1 -DSCIIALT=1
+
+# TC^3 SCSI Driver
+lltc3.dr: llscsi.asm
+	$(AS) $(ASOUT)$@ $< $(TC3FLAGS)
+
+# IDE Driver
+llide.dr: llide.asm
+	$(AS) $(ASOUT)$@ $< $(IDEFLAGS)
+
+# Floppy descriptors
+SSDD35		= -DCyls=35 -DSides=1 -DSectTrk=18 -DSectTrk0=18 \
+		-DInterlv=3 -DSAS=8 -DDensity=1
+DSDD40		= -DCyls=40 -DSides=2 -DSectTrk=18 -DSectTrk0=18 \
+		-DInterlv=3 -DSAS=8 -DDensity=1
+DSDD80		= -DCyls=80 -DSides=2 -DSectTrk=18 -DSectTrk0=18 \
+		-DInterlv=3 -DSAS=8 -DDensity=1 -DD35
+
+ddd0_35s.dd: rb1773desc.asm
+	$(AS) $< $(ASOUT)$@ $(AFLAGS) $(SSDD35) -DDNum=0 -DDD=1
+
+d0_35s.dd: rb1773desc.asm
+	$(AS) $< $(ASOUT)$@ $(AFLAGS) $(SSDD35) -DDNum=0
+
+d1_35s.dd: rb1773desc.asm
+	$(AS) $< $(ASOUT)$@ $(AFLAGS) $(SSDD35) -DDNum=1
+
+d2_35s.dd: rb1773desc.asm
+	$(AS) $< $(ASOUT)$@ $(AFLAGS) $(SSDD35) -DDNum=2
+
+d3_35s.dd: rb1773desc.asm
+	$(AS) $< $(ASOUT)$@ $(AFLAGS) $(SSDD35) -DDNum=3
+
+ddd0_40d.dd: rb1773desc.asm
+	$(AS) $< $(ASOUT)$@ $(AFLAGS) $(DSDD40) -DDNum=0 -DDD=1
+
+d0_40d.dd: rb1773desc.asm
+	$(AS) $< $(ASOUT)$@ $(AFLAGS) $(DSDD40) -DDNum=0
+
+d1_40d.dd: rb1773desc.asm
+	$(AS) $< $(ASOUT)$@ $(AFLAGS) $(DSDD40) -DDNum=1
+
+d2_40d.dd: rb1773desc.asm
+	$(AS) $< $(ASOUT)$@ $(AFLAGS) $(DSDD40) -DDNum=2
+
+ddd0_80d.dd: rb1773desc.asm
+	$(AS) $< $(ASOUT)$@ $(AFLAGS) $(DSDD80) -DDNum=0 -DDD=1
+
+d0_80d.dd: rb1773desc.asm
+	$(AS) $< $(ASOUT)$@ $(AFLAGS) $(DSDD80) -DDNum=0
+
+d1_80d.dd: rb1773desc.asm
+	$(AS) $< $(ASOUT)$@ $(AFLAGS) $(DSDD80) -DDNum=1
+
+d2_80d.dd: rb1773desc.asm
+	$(AS) $< $(ASOUT)$@ $(AFLAGS) $(DSDD80) -DDNum=2
+
+# DriveWire 3 SCF descriptors
+term_scdwv.dt: scdwvdesc.asm
+	$(AS) $< $(ASOUT)$@ $(AFLAGS) -DAddr=0
+
+n_scdwv.dd: scdwvdesc.asm
+	$(AS) $< $(ASOUT)$@ $(AFLAGS) -DAddr=255
+
+n1_scdwv.dd: scdwvdesc.asm
+	$(AS) $< $(ASOUT)$@ $(AFLAGS) -DAddr=1
+
+n2_scdwv.dd: scdwvdesc.asm
+	$(AS) $< $(ASOUT)$@ $(AFLAGS) -DAddr=2
+
+n3_scdwv.dd: scdwvdesc.asm
+	$(AS) $< $(ASOUT)$@ $(AFLAGS) -DAddr=3
+
+n4_scdwv.dd: scdwvdesc.asm
+	$(AS) $< $(ASOUT)$@ $(AFLAGS) -DAddr=4
+
+n5_scdwv.dd: scdwvdesc.asm
+	$(AS) $< $(ASOUT)$@ $(AFLAGS) -DAddr=5
+
+n6_scdwv.dd: scdwvdesc.asm
+	$(AS) $< $(ASOUT)$@ $(AFLAGS) -DAddr=6
+
+n7_scdwv.dd: scdwvdesc.asm
+	$(AS) $< $(ASOUT)$@ $(AFLAGS) -DAddr=7
+
+n8_scdwv.dd: scdwvdesc.asm
+	$(AS) $< $(ASOUT)$@ $(AFLAGS) -DAddr=8
+
+n9_scdwv.dd: scdwvdesc.asm
+	$(AS) $< $(ASOUT)$@ $(AFLAGS) -DAddr=9
+
+n10_scdwv.dd: scdwvdesc.asm
+	$(AS) $< $(ASOUT)$@ $(AFLAGS) -DAddr=10
+
+n11_scdwv.dd: scdwvdesc.asm
+	$(AS) $< $(ASOUT)$@ $(AFLAGS) -DAddr=11
+
+n12_scdwv.dd: scdwvdesc.asm
+	$(AS) $< $(ASOUT)$@ $(AFLAGS) -DAddr=12
+
+n13_scdwv.dd: scdwvdesc.asm
+	$(AS) $< $(ASOUT)$@ $(AFLAGS) -DAddr=13
+
+midi_scdwv.dd: scdwvdesc.asm
+	$(AS) $< $(ASOUT)$@ $(AFLAGS) -DAddr=14
+
+term_z_scdwv.dt: scdwvdesc.asm
+	$(AS) $< $(ASOUT)$@ $(AFLAGS) -DAddr=16
+
+z1_scdwv.dd: scdwvdesc.asm
+	$(AS) $< $(ASOUT)$@ $(AFLAGS) -DAddr=17
+
+z2_scdwv.dd: scdwvdesc.asm
+	$(AS) $< $(ASOUT)$@ $(AFLAGS) -DAddr=18
+
+z3_scdwv.dd: scdwvdesc.asm
+	$(AS) $< $(ASOUT)$@ $(AFLAGS) -DAddr=19
+
+z4_scdwv.dd: scdwvdesc.asm
+	$(AS) $< $(ASOUT)$@ $(AFLAGS) -DAddr=20
+
+z5_scdwv.dd: scdwvdesc.asm
+	$(AS) $< $(ASOUT)$@ $(AFLAGS) -DAddr=21
+
+z6_scdwv.dd: scdwvdesc.asm
+	$(AS) $< $(ASOUT)$@ $(AFLAGS) -DAddr=22
+
+z7_scdwv.dd: scdwvdesc.asm
+	$(AS) $< $(ASOUT)$@ $(AFLAGS) -DAddr=23
+
+# DriveWire 3 RBF descriptors
+ddx0.dd: dwdesc.asm
+	$(AS) $< $(ASOUT)$@ $(AFLAGS) -DDD=1 -DDNum=0
+
+x0.dd: dwdesc.asm
+	$(AS) $< $(ASOUT)$@ $(AFLAGS) -DDNum=0
+
+x1.dd: dwdesc.asm
+	$(AS) $< $(ASOUT)$@ $(AFLAGS) -DDNum=1
+
+x2.dd: dwdesc.asm
+	$(AS) $< $(ASOUT)$@ $(AFLAGS) -DDNum=2
+
+x3.dd: dwdesc.asm
+	$(AS) $< $(ASOUT)$@ $(AFLAGS) -DDNum=3
+
+# TC^3 SCSI Descriptors
+dds0_tc3.dd: superdesc.asm
+	$(AS) $(ASOUT)$@ $< $(TC3FLAGS) $(ID0) -DDD=1
+
+s0_tc3.dd: superdesc.asm
+	$(AS) $(ASOUT)$@ $< $(TC3FLAGS) $(ID0) $(SCSI_HD)
+
+s1_tc3.dd: superdesc.asm
+	$(AS) $(ASOUT)$@ $< $(TC3FLAGS) $(ID1) $(SCSI_HD)
+
+s2_tc3.dd: superdesc.asm
+	$(AS) $(ASOUT)$@ $< $(TC3FLAGS) $(ID2) $(SCSI_HD)
+
+s3_tc3.dd: superdesc.asm
+	$(AS) $(ASOUT)$@ $< $(TC3FLAGS) $(ID3) $(SCSI_HD)
+
+s4_tc3.dd: superdesc.asm
+	$(AS) $(ASOUT)$@ $< $(TC3FLAGS) $(ID4) $(SCSI_HD)
+
+s5_tc3.dd: superdesc.asm
+	$(AS) $(ASOUT)$@ $< $(TC3FLAGS) $(ID5) $(SCSI_HD)
+
+s6_tc3.dd: superdesc.asm
+	$(AS) $(ASOUT)$@ $< $(TC3FLAGS) $(ID6) $(SCSI_HD)
+
+sh_tc3.dd: superdesc.asm
+	$(AS) $(ASOUT)$@ $< $(TC3FLAGS) $(HDBDOS)
+
+# IDE Descriptors
+ddi0_ide.dd: superdesc.asm
+	$(AS) $(ASOUT)$@ $< $(IDEFLAGS) $(MASTER) -DDD=1
+
+i0_ide.dd: superdesc.asm
+	$(AS) $(ASOUT)$@ $< $(IDEFLAGS) $(MASTER)
+
+i1_ide.dd: superdesc.asm
+	$(AS) $(ASOUT)$@ $< $(IDEFLAGS) $(SLAVE)
+
+ih_ide.dd: superdesc.asm
+	$(AS) $(ASOUT)$@ $< $(IDEFLAGS) $(HDBDOS)
+
+# RFM descriptors
+ddy0.dd: rfmdesc.asm
+	$(AS) $< $(ASOUT)$@ $(AFLAGS) -DDD=1 -DDNum=0
+
+y0.dd: rfmdesc.asm
+	$(AS) $< $(ASOUT)$@ $(AFLAGS) -DDNum=0
+
+y1.dd: rfmdesc.asm
+	$(AS) $< $(ASOUT)$@ $(AFLAGS) -DDNum=1
+
+y2.dd: rfmdesc.asm
+	$(AS) $< $(ASOUT)$@ $(AFLAGS) -DDNum=2
+
+y3.dd: rfmdesc.asm
+	$(AS) $< $(ASOUT)$@ $(AFLAGS) -DDNum=3
+
+rel: rel.asm
+	$(AS) $(AFLAGS) $(ASOUT)$@ $< -DDragon64=0
+
+sysgo_dd: sysgo.asm
+	$(AS) $(AFLAGS) $(ASOUT)$@ $< -DDD=1
+
+sysgo_h0: sysgo.asm
+	$(AS) $(AFLAGS) $(ASOUT)$@ $<
+
+# Clocks
+clock_60hz: clock.asm
+	$(AS) $(AFLAGS) $(ASOUT)$@ $< -DPwrLnFrq=60
+
+clock_50hz: clock.asm
+	$(AS) $(AFLAGS) $(ASOUT)$@ $< -DPwrLnFrq=50
+
+clock2_bnb: clock2_ds1315.asm
+	$(AS) $(AFLAGS) $(ASOUT)$@ $< -DBNB=1
+
+clock2_cloud9: clock2_ds1315.asm
+	$(AS) $(AFLAGS) $(ASOUT)$@ $< -DCLOUD9=1
+
+clean:
+	$(CD) kernel; make $@
+	$(RM) $(ALLOBJS)
+
+showobjs:
+	@$(ECHO) $(ALLOBJS)
+
+showboottrack:
+	@$(ECHO) $(BOOTTRACK)
+
+showkernel:
+	@$(ECHO) $(KERNEL)
+
+showsysmods:
+	@$(ECHO) $(SYSMODS)
+
+showclocks:
+	@$(ECHO) $(CLOCKS)
+
+showrbf:
+	@$(ECHO) $(RBF)
+
+showscf:
+	@$(ECHO) $(SCF)
+
+showpipe:
+	@$(ECHO) $(PIPE)
+
+identify:
+	$(IDENT_SHORT) $(ALLOBJS)
+
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/level1/coco2/scripts/mb.dw3	Thu Jul 19 10:09:15 2012 -0500
@@ -0,0 +1,30 @@
+-t
+-x
+tmode .1 pau=0
+echo * NitrOS-9 Level 1 Boot Creation Script
+echo *
+echo * This script creates a bootable DriveWire 3 disk image
+echo * using the dw3.bl bootlist file.
+echo *
+echo * The resulting disk will boot NitrOS-9 from DriveWire drive 0.
+echo *
+prompt Insert a blank disk in /x1 and press a key:
+echo *
+echo * Step 1: Format disk in /x1
+format /x1 "NitrOS-9 Level 1 Boot Disk" r
+ynn
+echo *
+echo * Step 2: Create a custom boot track
+del bttemp
+merge ../MODULES/BOOTTRACK/rel ../MODULES/KERNEL/krn ../MODULES/KERNEL/krnp2 ../MODULES/SYSMODS/init ../MODULES/BOOTTRACK/boot_dw3>bttemp
+echo *
+echo * Step 3: Create the bootfile and boot track
+os9gen /x1 -t=bttemp<../BOOTLISTS/dw3.bl
+del bttemp
+echo *
+echo * Step 4: Populate the disk with essential files
+copy ../MODULES/SYSMODS/sysgo_dd /x1/sysgo
+makdir /x1/CMDS
+copy -w=/x1/CMDS ../CMDS/shell
+echo *
+echo * We're done
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/level1/coco2/scripts/mb.floppy	Thu Jul 19 10:09:15 2012 -0500
@@ -0,0 +1,29 @@
+-t
+-x
+tmode .1 pau=0
+echo * NitrOS-9 Level 1 Boot Creation Script
+echo *
+echo * This script creates a bootable floppy disk
+echo * using the standard.bl bootlist file.
+echo *
+echo * The resulting disk will boot NitrOS-9 from drive 0.
+echo *
+prompt Insert a blank disk in /d0 and press a key:
+echo *
+echo * Step 1: Format disk in /d0
+format /d0 "NitrOS-9 Level 1 Boot Disk" r
+echo *
+echo * Step 2: Create a custom boot track
+del bttemp
+merge ../MODULES/BOOTTRACK/rel ../MODULES/KERNEL/krn ../MODULES/KERNEL/krnp2 ../MODULES/SYSMODS/init ../MODULES/BOOTTRACK/boot_1773_6ms>bttemp
+echo *
+echo * Step 3: Create the bootfile and boot track
+os9gen /d0 -t=bttemp<../BOOTLISTS/standard.bl
+del bttemp
+echo *
+echo * Step 4: Populate the disk with essential files
+copy ../MODULES/SYSMODS/sysgo_dd /d0/sysgo
+makdir /d0/CMDS
+copy -w=/d0/CMDS ../CMDS/shell
+echo *
+echo * We're done
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/level1/coco2/startup	Thu Jul 19 10:09:15 2012 -0500
@@ -0,0 +1,7 @@
+* Echo welcome message
+echo * Welcome to NitrOS-9 Level 1 *
+echo *   on the Color Computer 2   *
+* Start system time from keyboard
+setime </term
+date -t
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/level1/coco2/startup.dw	Thu Jul 19 10:09:15 2012 -0500
@@ -0,0 +1,6 @@
+* Echo welcome message
+echo * Welcome to NitrOS-9 Level 1 *
+echo *      with DriveWire 4       *
+echo *   on the Color Computer 2   *
+date -t
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/level1/coco2/sys/makefile	Thu Jul 19 10:09:15 2012 -0500
@@ -0,0 +1,36 @@
+PORT = coco2
+include $(NITROS9DIR)/rules.mak
+
+vpath %.hp	$(LEVEL1)/sys
+
+DEPENDS		= ./makefile
+
+SYSFILES	= ../../sys/errmsg ../../sys/motd ../../sys/password ../../sys/inetd.conf
+HELPFILES	= asm.hp attr.hp backup.hp binex.hp build.hp chd.hp \
+		chx.hp cmp.hp cobbler.hp config.hp copy.hp cputype.hp date.hp \
+		dcheck.hp debug.hp ded.hp deiniz.hp del.hp deldir.hp devs.hp \
+		dir.hp dirsort.hp disasm.hp display.hp dmode.hp dsave.hp dump.hp echo.hp \
+		edit.hp error.hp ex.hp exbin.hp format.hp free.hp gfx.hp \
+		help.hp ident.hp iniz.hp inkey.hp irqs.hp kill.hp link.hp \
+		list.hp load.hp login.hp makdir.hp \
+		mdir.hp megaread.hp merge.hp mpi.hp mfree.hp os9gen.hp \
+		padrom.hp park.hp procs.hp prompt.hp pwd.hp pxd.hp \
+	 	rename.hp save.hp setime.hp \
+		setpr.hp shell.hp sleep.hp tee.hp tmode.hp touch.hp tsmon.hp \
+		tuneport.hp unlink.hp verify.hp xmode.hp
+HELPMSG		= helpmsg
+ALLOBJS		= $(SYSFILES) $(HELPMSG)
+
+
+all:	$(ALLOBJS) $(DEPENDS)
+
+alldragon: $(ALLOBJS)
+
+helpmsg: $(HELPFILES)
+	$(MERGE) $^ > $@
+
+clean:
+	$(RM) $(HELPMSG)
+
+showobjs:
+	@$(ECHO) $(ALLOBJS)
--- a/level1/d64/bootfiles/makefile	Wed Jul 18 20:28:37 2012 -0500
+++ b/level1/d64/bootfiles/makefile	Thu Jul 19 10:09:15 2012 -0500
@@ -40,7 +40,7 @@
 		$(MD)/d0_40d.dd $(MD)/d1_40d.dd \
 		$(MD)/d2_40d.dd $(MD)/d3_40d.dd\
 		$(MD)/scf.mn \
-		$(MD)/vtio.dr $(MD)/covdg.io $(MD)/term32.dt \
+		$(MD)/vtio.dr $(MD)/covdg.io $(MD)/term_vdg.dt \
 		$(MD)/scdpp.dr $(MD)/p_dpp.dd \
 		$(MD)/pipeman.mn $(MD)/piper.dr $(MD)/pipe.dd \
 		$(MD)/clock_60hz $(MD)/clock2_soft \
@@ -52,7 +52,7 @@
 		$(MD)/d0_40d.dd $(MD)/d1_40d.dd \
 		$(MD)/d2_40d.dd $(MD)/d3_40d.dd\
 		$(MD)/scf.mn \
-		$(MD)/vtio.dr $(MD)/cohr.io $(MD)/term51.dt \
+		$(MD)/vtio.dr $(MD)/cohr.io $(MD)/term_hr.dt \
 		$(MD)/scdpp.dr $(MD)/p_dpp.dd \
 		$(MD)/pipeman.mn $(MD)/piper.dr $(MD)/pipe.dd \
 		$(MD)/clock_60hz $(MD)/clock2_soft \
@@ -64,7 +64,7 @@
 		$(MD)/d0_80d.dd $(MD)/d1_80d.dd \
 		$(MD)/d2_80d.dd $(MD)/d3_80d.dd \
 		$(MD)/scf.mn \
-		$(MD)/vtio.dr $(MD)/covdg.io $(MD)/term32.dt \
+		$(MD)/vtio.dr $(MD)/covdg.io $(MD)/term_vdg.dt \
 		$(MD)/scdpp.dr $(MD)/p_dpp.dd \
 		$(MD)/pipeman.mn $(MD)/piper.dr $(MD)/pipe.dd \
 		$(MD)/clock_60hz $(MD)/clock2_soft \
@@ -76,7 +76,7 @@
 		$(MD)/d0_80d.dd $(MD)/d1_80d.dd \
 		$(MD)/d2_80d.dd $(MD)/d3_80d.dd\
 		$(MD)/scf.mn \
-		$(MD)/vtio.dr $(MD)/cohr.io $(MD)/term51.dt \
+		$(MD)/vtio.dr $(MD)/cohr.io $(MD)/term_hr.dt \
 		$(MD)/scdpp.dr $(MD)/p_dpp.dd \
 		$(MD)/pipeman.mn $(MD)/piper.dr $(MD)/pipe.dd \
 		$(MD)/clock_60hz $(MD)/clock2_soft \
@@ -88,7 +88,7 @@
 		$(MD)/d0_40s.dd $(MD)/d1_40s.dd \
 		$(MD)/d2_40s.dd $(MD)/d3_40s.dd\
 		$(MD)/scf.mn \
-		$(MD)/vtio.dr $(MD)/covdg.io $(MD)/term32.dt \
+		$(MD)/vtio.dr $(MD)/covdg.io $(MD)/term_vdg.dt \
 		$(MD)/scdpp.dr $(MD)/p_dpp.dd \
 		$(MD)/pipeman.mn $(MD)/piper.dr $(MD)/pipe.dd \
 		$(MD)/clock_60hz $(MD)/clock2_soft \
@@ -100,7 +100,7 @@
 		$(MD)/d0_40s.dd $(MD)/d1_40s.dd \
 		$(MD)/d2_40s.dd $(MD)/d3_40s.dd\
 		$(MD)/scf.mn \
-		$(MD)/vtio.dr $(MD)/cohr.io $(MD)/term51.dt \
+		$(MD)/vtio.dr $(MD)/cohr.io $(MD)/term_hr.dt \
 		$(MD)/scdpp.dr $(MD)/p_dpp.dd \
 		$(MD)/pipeman.mn $(MD)/piper.dr $(MD)/pipe.dd \
 		$(MD)/clock_60hz $(MD)/clock2_soft \
--- a/level1/d64/bootlists/standard.bl	Wed Jul 18 20:28:37 2012 -0500
+++ b/level1/d64/bootlists/standard.bl	Thu Jul 19 10:09:15 2012 -0500
@@ -103,8 +103,8 @@
 *../MODULES/SCF/cohr.io
 *
 * Select only one term descriptor
-../MODULES/SCF/term32.dt
-*../MODULES/SCF/term51.dt
+../MODULES/SCF/term_vdg.dt
+*../MODULES/SCF/term_hr.dt
 *../MODULES/SCF/term_bbt.dt
 *../MODULES/SCF/term_sc6551.dt
 *
--- a/level1/d64/modules/makefile	Wed Jul 18 20:28:37 2012 -0500
+++ b/level1/d64/modules/makefile	Thu Jul 19 10:09:15 2012 -0500
@@ -63,7 +63,7 @@
 		covdg.io cohr.io\
 		nil.dd p_dpp.dd pipe.dd ssp.dd \
 		term_sc6551.dt t2_sc6551.dt t3_sc6551.dt \
-		term32.dt term51.dt term80.dt p1_sc6551dragon.dd
+		term_vdg.dt term_hr.dt term_80.dt p1_sc6551dragon.dd
 
 PIPE		= pipeman.mn \
 		piper.dr \
--- a/level1/dalpha/bootfiles/makefile	Wed Jul 18 20:28:37 2012 -0500
+++ b/level1/dalpha/bootfiles/makefile	Thu Jul 19 10:09:15 2012 -0500
@@ -33,7 +33,7 @@
 #Dragon Alpha Bootfiles
 
 BOOTFILE_COVDG_SS80 = $(MD)/ioman \
-		$(MD)/vtio.dr $(MD)/covdg.io $(MD)/term32.dt \
+		$(MD)/vtio.dr $(MD)/covdg.io $(MD)/term_vdg.dt \
 		$(MD)/rbf.mn $(MD)/adisk.dr \
 		$(MD)/ddd0_80s.dd\
                 $(MD)/d0_80s.dd $(MD)/d1_80s.dd \
@@ -45,7 +45,7 @@
 		$(MD)/sysgo_dd
 
 BOOTFILE_COHR_SS80 = $(MD)/ioman \
-		$(MD)/vtio.dr $(MD)/cohr.io $(MD)/term51.dt \
+		$(MD)/vtio.dr $(MD)/cohr.io $(MD)/term_hr.dt \
 		$(MD)/rbf.mn $(MD)/adisk.dr \
 		$(MD)/ddd0_80s.dd\
                 $(MD)/d0_80s.dd $(MD)/d1_80s.dd \
@@ -57,7 +57,7 @@
 		$(MD)/sysgo_dd
 
 BOOTFILE_COVDG_DS80 = $(MD)/ioman \
-		$(MD)/vtio.dr $(MD)/covdg.io $(MD)/term32.dt \
+		$(MD)/vtio.dr $(MD)/covdg.io $(MD)/term_vdg.dt \
 		$(MD)/rbf.mn $(MD)/adisk.dr \
 		$(MD)/ddd0_80d.dd \
 		$(MD)/d0_80d.dd $(MD)/d1_80d.dd \
@@ -69,7 +69,7 @@
 		$(MD)/sysgo_dd
 
 BOOTFILE_COHR_DS80 = $(MD)/ioman \
-		$(MD)/vtio.dr $(MD)/cohr.io $(MD)/term51.dt \
+		$(MD)/vtio.dr $(MD)/cohr.io $(MD)/term_hr.dt \
 		$(MD)/rbf.mn $(MD)/adisk.dr \
 		$(MD)/ddd0_80d.dd \
 		$(MD)/d0_80d.dd $(MD)/d1_80d.dd \
--- a/level1/dalpha/bootlists/standard.bl	Wed Jul 18 20:28:37 2012 -0500
+++ b/level1/dalpha/bootlists/standard.bl	Thu Jul 19 10:09:15 2012 -0500
@@ -103,8 +103,8 @@
 *../MODULES/SCF/cohr.io
 *
 * Select only one term descriptor
-../MODULES/SCF/term32.dt
-*../MODULES/SCF/term51.dt
+../MODULES/SCF/term_vdg.dt
+*../MODULES/SCF/term_hr.dt
 *../MODULES/SCF/term_bbt.dt
 *../MODULES/SCF/term_sc6551.dt
 *
--- a/level1/dalpha/modules/makefile	Wed Jul 18 20:28:37 2012 -0500
+++ b/level1/dalpha/modules/makefile	Thu Jul 19 10:09:15 2012 -0500
@@ -62,7 +62,7 @@
 		covdg.io cohr.io\
 		nil.dd p_dpp.dd pipe.dd ssp.dd \
 		term_sc6551.dt t2_sc6551.dt t3_sc6551.dt \
-		term32.dt term51.dt term80.dt p1_sc6551dragon.dd
+		term_vdg.dt term_hr.dt term_80.dt p1_sc6551dragon.dd
 
 PIPE		= pipeman.mn \
 		piper.dr \
--- a/level1/makefile	Wed Jul 18 20:28:37 2012 -0500
+++ b/level1/makefile	Thu Jul 19 10:09:15 2012 -0500
@@ -1,6 +1,6 @@
 include $(NITROS9DIR)/rules.mak
 
-dirs	= coco tano d64 dalpha atari
+dirs	= coco1 coco2 tano d64 dalpha atari
 
 # Make all components
 all:
--- a/level1/modules/co80.asm	Wed Jul 18 20:28:37 2012 -0500
+++ b/level1/modules/co80.asm	Thu Jul 19 10:09:15 2012 -0500
@@ -22,7 +22,7 @@
 
          ifp1
          use   defsfile
-         use   vtiodefs
+         use   cocovtio.d
          endc
 
 tylg     set   Systm+Objct   
@@ -62,11 +62,11 @@
          ldd   #80*25
          lbsr  L0189
          ldb   <V.COLoad,u
-         orb   #ModCo80
+         orb   #ModCoWP
          bra   L004F
 * Term
 Term     ldb   <V.COLoad,u
-         andb  #~ModCo80
+         andb  #~ModCoWP
 L004F    stb   <V.COLoad,u
          clrb  
          rts   
--- a/level1/modules/rel.asm	Wed Jul 18 20:28:37 2012 -0500
+++ b/level1/modules/rel.asm	Thu Jul 19 10:09:15 2012 -0500
@@ -36,7 +36,7 @@
 ********************************************************************
 * Any changes to the next 3 lines requires changes in XX.Size, above
          fcc   /OS/       sync bytes
-         bra   Start+XX.Size  execution start
+         bra   Start+XX.Size+4  execution start
          fdb   $1205      filler bytes
 
 Begin    mod   eom,name,tylg,atrv,start,size
@@ -278,7 +278,7 @@
 
          ELSE
 
-start    clr   PIA0Base+3
+Start    clr   PIA0Base+3
 
          IFNE  (tano+d64+dalpha)
          clr   PIA0Base+1		added for Dragon, works on CoCo
--- a/level1/modules/scdwn.asm	Wed Jul 18 20:28:37 2012 -0500
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,650 +0,0 @@
-********************************************************************
-* scdwn - DriveWire Network Driver
-*
-* $Id$
-*
-* How this wildcard /N stuff works:
-* A process interested in obtaining a path to a network device
-* can open any /Nx descriptor but it may be in use by another process.
-* The safest way to obtain a new network device is to open the wildcard
-* descriptor /N. This works similarly to the way /W works in the CoCo 3
-* VTIO driver.
-*
-* When /N is open, the INIT routine is called but most of it is bypassed
-* because it detects the wildcard device (which has an address of $FFFF). 
-*
-* The SS.Open I$SetStat entry point is called. That routine also detects
-* the wildcard is used, so the hunt is on for the next available /Nx
-* descriptor (it does this by checking the DW static storage for each /Nx
-* in the DW static storage page).  If it finds a free page, it notes the
-* offset as a number, then builds a descriptor name (ex: /N4) and then
-* F$Links to it.  It then takes the descriptor module address and sticks it
-* in the device table entry for /N.  It also takes the V.PORT address and sticks
-* it in the static storage memory allocated for /N.
-* Afer that, SS.Open does something really sneaky: it branches into the
-* Init routine which detects via the static storage that this is not a /N 
-* descriptor but a /N4 descriptor.  Init then sends the SERINIT and initializes
-* the DW static storage for /N4.  Control is returned to the SS.Open code which
-* then advertises the SS.Open to the server.
-*
-* Edt/Rev  YYYY/MM/DD  Modified by
-* Comment
-* ------------------------------------------------------------------
-*   1      2009/11/30  Aaron Wolfe
-* Started
-*
-*          2009/12/28  Boisy G. Pitre
-* Modified so that F$STime is called if we get an error on calling
-* F$VIRQ (which means the clock module has not be initialized)
-*
-*          2009/12/31  Boisy G. Pitre
-* Fixed crash in Init where F$Link failure would not clean up stack
-*
-*          2010/01/03  Boisy G. Pitre
-* Moved IRQ stuff into DW3 subroutine module
-*
-*   2      2010/01/23  Boisy G. Pitre
-* Added code in SS.Open to use /N wildcard device (tricky stuff!)
-*
-*		   2010/05/28  Aaron Wolfe	  
-* Added FASTSERWRITE support
-*
-               nam       scdwn
-               ttl       DriveWire Network Driver
-
-               ifp1      
-               use       defsfile
-               use       drivewire.d
-               endc      
-
-tylg           set       Drivr+Objct
-atrv           set       ReEnt+Rev
-rev            set       $00
-edition        set       2
-
-* Note: driver memory defined in dwdefs.d
-               mod       eom,name,tylg,atrv,start,SCFDrvMemSz
-
-* module info         	
-               fcb       UPDAT.+SHARE.       ;driver access modes
-name           fcs       /scdwn/             ;driver name
-               fcb       edition             ;driver edition 
-
-* dispatch calls            
-start          equ       *
-               lbra      Init
-               lbra      Read
-               lbra      Write
-               lbra      GetStat
-               lbra      SetStat
-
-***********************************************************************
-* Term
-*
-* shut down the driver.
-* should close only the correct port, tell server to close the port,
-* and remove irq handler when no ports are left 
-*
-* Entry:
-*    U  = address of device memory area
-*
-* Exit:
-*    CC = carry set on error
-*    B  = error code   
-Term           equ       *
-               lda       <V.PORT+1,u         get our port #
-               bmi       termbye			if this is wildcard, skip TERM
-               pshs      a                   port # on stack
-* clear statics table entry
-               ifgt      Level-1
-               ldx       <D.DWStat
-               else      
-               ldx       >D.DWStat
-               endc      
-               beq       tell
-* cheat: we know DW.StatTbl is at offset $00 from D.DWStat, do not bother with leax
-*	           leax      DW.StatTbl,x
-               clr       a,x                 clear out
-
-* tell server
-tell                     
-               lda       #OP_SERTERM         load command
-               pshs      a                   command store on stack
-               leax      ,s                  point X to stack 
-               ldy       #2                  2 bytes to send 
-
-               pshs      u
-
-               ifgt      Level-1
-               ldu       <D.DWSubAddr
-               else      
-               ldu       >D.DWSubAddr
-               endc      
-               beq       nosub
-               jsr       6,u                 call DWrite
-
-nosub                    
-               puls      u
-               leas      2,s                 clean 3 DWsub args from stack 
-termbye        clrb      
-               rts       
-
-***********************************************************************
-* Init
-*
-* Entry:
-*    Y  = address of device descriptor
-*    U  = address of device memory area
-*
-* Exit:
-*    CC = carry set on error
-*    B  = error code
-*
-
-Init           equ       *
-
-; link to subroutine module
-; has the link already been done?
-               ifgt      Level-1
-               ldx       <D.DWSubAddr
-               else      
-               ldx       >D.DWSubAddr
-               endc      
-               bne       already             ; if so, do not bother
-
-               pshs      u                   ; preserve u since os9 link is coming up
-
-               ifgt      Level-1
-               ldx       <D.Proc
-               pshs      x
-               ldx       <D.SysPrc
-               stx       <D.Proc
-               endc      
-               clra      
-
-               leax      dw3name,pcr
-               os9       F$Link
-               ifgt      Level-1
-               puls      x
-               stx       <D.Proc
-               endc      
-               bcs       InitEx2
-               ifgt      Level-1
-               sty       <D.DWSubAddr
-               else      
-               sty       >D.DWSubAddr
-               endc      
-               jsr       ,y                  ; call DW init routine
-
-               puls      u                   ; restore u
-
-already                  
-; tell DW we have a new port opening (port mode already on stack)
-               ldb       <V.PORT+1,u         ; get our port #	
-* if /N wildcard, skip advertising via SERINIT
-               bmi       initEx
-               lda       #OP_SERINIT         ; command 
-               pshs      d                   ; command + port # on stack
-               leax      ,s                  ; point X to stack 
-               ldy       #2                  ; # of bytes to send
-
-               pshs      u
-               ifgt      Level-1
-               ldu       <D.DWSubAddr
-               else      
-               ldu       >D.DWSubAddr
-               endc      
-               jsr       6,u                 ; call DWrite
-               puls      u
-
-; set up local buffer
-               ldb       #RxBufDSz           ; default Rx buffer size
-               leax      RxBuff,u            ; default Rx buffer address
-               stb       RxBufSiz,u          ; save Rx buffer size
-               stx       RxBufPtr,u          ; save Rx buffer address
-               stx       RxBufGet,u          ; set initial Rx buffer input address
-               stx       RxBufPut,u          ; set initial Rx buffer output address
-               abx                           ; add buffer size to buffer start..
-               stx       RxBufEnd,u          ; save Rx buffer end address
-
-               tfr       u,d                 ; (A = high page of statics)
-               puls      b
-               puls      b                   ; (B = port number)
-               ifgt      Level-1
-               ldx       <D.DWStat
-               else      
-               ldx       >D.DWStat
-               endc      
-; cheat: we know DW.StatTbl is at offset $00 from D.DWStat, do not bother with leax
-;		leax      DW.StatTbl,x
-               sta       b,x
-InitEx         equ       *
-               rts       
-InitEx2                  
-               puls      u
-               rts       
-
-; drivewire info
-dw3name        fcs       /dw3/
-
-
-*****************************************************************************
-* Write
-*
-* Entry:
-*    A  = character to write
-*    Y  = address of path descriptor
-*    U  = address of device memory area
-*
-* Exit:
-*    CC = carry set on error
-*    B  = error code
-* 
-Write          equ       *
-               pshs      a                   ; character to send on stack
-               lda       <V.PORT+1,u         ; port number into a
-               adda      #128    ; add base of command into A
-               pshs      a
-               leax      ,s
-               ldy       #$0002              ; 3 bytes to send.. ugh.  need WRITEM (data mode)
-               ifgt      Level-1
-               ldu       <D.DWSubAddr
-               else      
-               ldu       >D.DWSubAddr
-               endc      
-               jsr       6,u
-WriteOK        clrb      
-WriteExit      puls      x,pc              ; clean stack, return
-
-
-NotReady       comb      
-               ldb       #E$NotRdy
-               rts       
-
-*************************************************************************************
-* Read
-*
-* Entry:
-*    Y  = address of path descriptor
-*    U  = address of device memory area
-*
-* Exit:
-*    A  = character read
-*    CC = carry set on error
-*    B  = error code
-*
-Read           equ       *
-* Check to see if there is a signal-on-data-ready set for this path.
-* If so, we return a Not Ready error.
-               lda       <SSigID,u           data ready signal trap set up?
-               bne       NotReady            yes, exit with not ready error
-               pshs      cc,dp               ; save IRQ/Carry status, system DP
-
-ReadChr        orcc      #IntMasks           ; mask interrupts
-
-               lda       RxDatLen,u          ; get our Rx buffer count
-               beq       ReadSlp             ; no data, go sleep while waiting for new Rx data...
-
-          ; we have data waiting
-               deca                          ; one less byte in buffer
-               sta       RxDatLen,u          ; save new Rx data count
-
-               ldx       RxBufGet,u          ; current Rx buffer pickup position
-               lda       ,x+                 ; get Rx character, set up next pickup position
-
-               cmpx      RxBufEnd,u          ; end of Rx buffer?
-               blo       ReadChr1            ; no, keep pickup pointer
-               ldx       RxBufPtr,u          ; get Rx buffer start address
-ReadChr1       stx       RxBufGet,u          ; set new Rx data pickup pointer
-
-          ; return to caller
-               puls      cc,dp,pc            ; recover IRQ/Carry status, system DP, return with character in A
-
-ReadSlp        equ       *
-
-               ifeq      Level-1
-ReadSlp2       lda       <V.BUSY,u
-               sta       <V.WAKE,u           ; store process id in this port's entry in the waiter table
-               lbsr      Sleep0              ; sleep level 1 style
-               else      
-ReadSlp2       lda       >D.Proc             ; process descriptor address MSB
-               sta       <V.WAKE,u           ; save MSB in V.WAKE
-               clrb      
-               tfr       d,x                 ; process descriptor address
-               ifne      H6309
-               oim       #Suspend,P$State,x  ; suspend
-               else      
-               ldb       P$State,x
-               orb       #Suspend
-               stb       P$State,x           ; suspend
-               endc      
-               bsr       Sleep1              ; sleep level 2 style
-               endc      
-
-          ; we have been awakened..
-
-          ; check for signals
-               ldx       >D.Proc             ; process descriptor address
-               ldb       P$Signal,x          ; pending signal for this process?
-               beq       ChkState            ; no, go check process state...
-               cmpb      #S$HUP              ; (S$HUP or lower)
-               bls       ErrExit             ; yes, go do it...
-
-ChkState       equ       *
-          ; have we been condemned to die?
-               ifne      H6309
-               tim       #Condem,P$State,x
-               else      
-               ldb       P$State,x
-               bitb      #Condem
-               endc      
-               bne       PrAbtErr            ; yes, go do it...
-
-          ; check that our waiter byte was cleared by ISR instance
-               tst       <V.WAKE,u           ; our waiter byte
-               beq       ReadChr             ; 0 = its our turn, go get a character 
-               bra       ReadSlp             ; false alarm, go back to sleep
-
-PrAbtErr       ldb       #E$PrcAbt           ; set error code
-
-ErrExit        equ       *
-               ifne      H6309
-               oim       #Carry,,s           ; set carry
-               else      
-               lda       ,s
-               ora       #Carry
-               sta       ,s
-               endc      
-               puls      cc,dp,pc            ; restore CC, system DP, return
-
-               ifeq      Level-1
-Sleep0         ldx       #$0                 ; sleep till ISR wakes us
-               bra       TimedSlp
-               endc      
-
-Sleep1         ldx       #$1                 ; just sleep till end of slice, we are suspended (level 2)             
-TimedSlp       andcc     #^Intmasks          ; enable IRQs
-               os9       F$Sleep
-               clr       <V.WAKE,u
-               rts                           ; return
-
-
-**********************************************************************
-* GetStat - heavily borrowed from sc6551
-*
-* Entry:
-*    A  = function code
-*    Y  = address of path descriptor
-*    U  = address of device memory area
-*
-* Exit:
-*    CC = carry set on error
-*    B  = error code 
-*
-GetStat                  
-               clrb                          ; default to no error...
-               pshs      cc,dp               ; save IRQ/Carry status,system DP
-
-               ldx       PD.RGS,y            ; caller's register stack pointer
-               cmpa      #SS.EOF
-               beq       GSExitOK            ; SCF devices never return EOF
-
-               cmpa      #SS.Ready
-               bne       Advertise           ; next check
-
-        	; SS.Ready
-               lda       RxDatLen,u          ; get Rx data length
-               beq       NRdyErr             ; none, go report error
-               sta       R$B,x               ; set Rx data available in caller's [B]
-GSExitOK       puls      cc,dp,pc            ; restore Carry status, system DP, return         
-
-NRdyErr        ldb       #E$NotRdy
-               bra       ErrExit             ; return error code 
-
-UnSvcErr       ldb       #E$UnkSvc
-               bra       ErrExit             ; return error code			
-
-; We advertise all of our SERGETSTAT calls (except SS.Ready) to the server
-Advertise                
-               ldb       #OP_SERGETSTAT
-               bsr       SendStat
-
-; Note: Here we could somehow obtain the size of the terminal window from the server
-GetScSiz       cmpa      #SS.ScSiz
-               bne       GetComSt            ; next check
-               ldu       PD.DEV,y
-               ldu       V$DESC,u            ; device descriptor
-               clra      
-               ldb       IT.COL,u            ; return screen size
-               std       R$X,x
-               ldb       IT.ROW,u
-               std       R$Y,x
-               puls      cc,dp,pc            ; restore Carry status, system DP, return
-
-GetComSt       cmpa      #SS.ComSt
-               bne       GetKySns            ; no, we have no more answers, report error
-               ldd       #$0000              ; not used, return $0000
-               std       R$Y,x
-               sta       R$B,x
-               puls      cc,dp,pc            ; restore Carry status, system DP, return			
-
-GetKySns
-               cmpa      #SS.KySns
-               bne       GetSSMntr           ; no, we have no more answers, report error
-* Get key sense byte from server and return to caller
-               pshs      a,x,u
-               leax      ,s
-               ldy       #$001
-               ifgt      Level-1
-               ldu       <D.DWSubAddr
-               else      
-               ldu       >D.DWSubAddr
-               jsr       DW$Read,u
-               endc      
-               puls      a,x,u
-               sta       R$A,x
-               puls      cc,dp,pc            ; restore Carry status, system DP, return			
-
-GetSSMntr      cmpa      #SS.Montr
-               bne       UnSvcErr            ; no, we have no more answers, report error
-               lda       #$01
-               sta       R$A,x
-               puls      cc,dp,pc            ; restore Carry status, system DP, return			
-
-* Advertise Stat Code to server
-* A = Function Code
-* B = OP_SERGETSTAT or OP_SERSETSTAT
-SendStat                 
-; advertise our GetStt code to the server
-               pshs      a,y,x,u
-               leas      -3,s
-               leax      ,s
-               stb       ,x
-               sta       2,x
-               ldb       V.PORT+1,u
-               stb       1,x
-               ldy       #$0003
-               ifgt      LEVEL-1
-               ldu       <D.DWSubAddr
-               else      
-               ldu       >D.DWSubAddr
-               endc      
-               jsr       DW$Write,u
-               leas      3,s
-               puls      a,y,x,u,pc
-
-*************************************************************************         
-* SetStat
-*
-* Entry:
-*    A  = function code
-*    Y  = address of path descriptor
-*    U  = address of device memory area
-*
-* Exit:
-*    CC = carry set on error
-*    B  = error code 
-*
-SetStat                  
-               cmpa      #SS.Open
-               bne       isitcomst
-               bsr       open
-               bcs       ssbye
-               ldd       #SS.Open*256+OP_SERSETSTAT
-               bra       SendStat
-isitcomst                
-               ldb       #OP_SERSETSTAT
-               bsr       SendStat
-               cmpa      #SS.ComSt
-               beq       comst
-               cmpa      #SS.Close
-               beq       ex
-               cmpa      #SS.SSig
-               beq       ssig
-               cmpa      #SS.Montr
-               beq       ex
-               cmpa      #SS.Relea
-               bne       donebad
-relea          lda       PD.CPR,y            get curr proc #
-               cmpa      <SSigID,u           same?
-               bne       ex
-               clr       <SSigID,u           clear process id
-ex             rts       
-sskysns        
-               rts
-ssig           pshs      cc
-               orcc      #IntMasks
-               lda       PD.CPR,y            ; get curr proc #
-               ldx       PD.RGS,y
-               ldb       R$X+1,x             ; get user signal code
-               tst       RxDatLen,u          ; get Rx data length
-               beq       ssigsetup           ; branch if no data in buffer
-* if here, we have data so send signal immediately
-               os9       F$Send
-               puls      cc,pc
-ssigsetup      std       <SSigID,u           ; save process ID & signal
-               puls      cc,pc
-
-donebad        comb      
-               ldb       #E$UnkSvc
-               rts       
-
-comst          leax      PD.OPT,y
-               ldy       #OPTCNT
-               ifgt      LEVEL-1
-               ldu       <D.DWSubAddr
-               else      
-               ldu       >D.DWSubAddr
-               endc      
-               jsr       DW$Write,u
-               clrb      
-ssbye          rts       
-
-* SS.Open processor
-* Entry: X=Register stack pointer
-*        U=Static memory pointer
-*        Y=Path descriptor pointer
-open           tst       <V.PORT+1,u         check if this is $FFFF (wildcard)
-               bpl       ssbye               if not, we have nothing to do
-               pshs      u,y                 preserve registers
-               ldx       PD.DEV,y            get pointer to device table entry
-               ldx       V$DESC,x            get pointer to /N descriptor
-               pshs      x                   save device descriptor pointer
-* start at /N1
-               ldb       #1
-L0B58          equ       *
-               ifgt      Level-1
-               ldx       <D.DWStat
-               else      
-               ldx       >D.DWStat
-               endc      
-; cheat: we know DW.StatTbl is at offset $00 from D.DWStat, do not bother with leax
-;		leax      DW.StatTbl,x
-next           cmpb      #DW.StatCnt
-               bge       opexer
-               tst       b,x
-               beq       found
-               incb      
-               bra       next
-opexer         comb                          set carry
-               ldb       #E$MNF              get module not found error
-               puls      x,y,u,pc            purge stack and return
-
-* Found a free spot
-found          pshs      b                   save # of free entry
-               leas      -5,s
-               leay      ,s
-               ldb       #'N                 get netdev name prefix
-               stb       ,y+                 put it in buffer
-               ldb       5,s                 get netdev # that was free
-* Convert netdev # in B to ASCII eqivalent with high bit set
-
-               ifne      H6309
-               clra
-               divd      #10                 divide it by 10
-               else      
-               lda       #-1
-L0B87b         inca      
-               subb      #10
-               bcc       L0B87b
-               addb      #10
-               exg       a,b
-               cmpb      #0
-               endc      
-               beq       L0B87               if answer is 0 there is only 1 digit, skip ahead 
-               orb       #$30                make first digit ASCII
-               stb       ,y+                 put it in buffer
-L0B87          ora       #$B0                make remainder ASCII with high bit set
-               sta       ,y+                 put it in buffer
-L0B92          leas      -2,s                make a buffer for process decriptor pointer
-               ifgt      Level-1
-               lbsr      L0238               switch to system process descriptor
-               endc      
-               leax      2,s                 Point to calculated dsc. name
-               lda       #Devic+Objct        get module type
-               os9       F$Link              try & link it
-               ifgt      Level-1
-               lbsr      L0244               switch back to current process
-               endc      
-               leas      7,s                 purge stack
-               bcc       L0BAB               it's linked, skip ahead
-L0BA7          puls      b                   get original number
-               incb      
-               bra       L0B58               go find another free space
-
-               ifgt      Level-1
-* Switch to system process descriptor
-L0238          pshs      d                   Preserve D
-               ldd       <D.Proc             Get current process dsc. ptr
-               std       4,s                 Preserve on stack
-               ldd       <D.SysPrc           Get system process dsc. ptr
-               std       <D.Proc             Make it the current process
-               puls      d,pc                Restore D & return
-
-* Switch back to current process
-L0244          pshs      d                   Preserve D
-               ldd       4,s                 Get current process ptr
-               std       <D.Proc             Make it the current process
-               puls      d,pc                Restore D & return
-               endc      
-
-* Got a device descriptor, put into device table & save netdev # into static
-L0BAB                    
-               lda       M$PORT+2,u          get MSB of port byte of newly linked /N? descriptor
-               ldy       3,s                 get path descriptor pointer
-               ldx       PD.DEV,y            get pointer to device table
-               stu       V$DESC,x            save pointer to descriptor into it
-               ldu       1,s                 get pointer to /N descriptor
-               os9       F$UnLink            unlink it from system map
-               ldu       5,s                 get static mem pointer
-               sta       V.PORT+1,u
-               leas      7,s                 purge stack
-* Load Y with address of descriptor and U with address of memory area
-               ldy       V$DESC,x
-               pshs      x,y,u
-               lbsr      Init                call Init to setup dw statics
-               puls      x,y,u,pc
-
-               emod      
-eom            equ       *
-               end       
--- a/level1/modules/scdwndesc.asm	Wed Jul 18 20:28:37 2012 -0500
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,136 +0,0 @@
-********************************************************************
-* scdwdesc - Drivewire Network Device Descriptor
-*
-* $Id$
-*
-* Edt/Rev  YYYY/MM/DD  Modified by
-* Comment
-* ------------------------------------------------------------------
-*   0.3    2009/12/??  Aaron Wolfe
-* Added SHARE. bit to mode.
-*
-*   0.4    2009/12/27  Boisy G. Pitre
-* Removed SHARE. bit from mode because of tsmon issues.
-*
-*   0.5    2009/12/29  Boisy G. Pitre
-* Made U and T descriptor templates. Backspace is now $7F for
-* telnet clients which are likely to access the T ports.
-*
-* This descriptor has slightly different defaults, intended to be used as 
-* the channel for the DriveWire utilities
-*
-*   0.6    2010/01/12  Boisy G. Pitre
-* Renamed.
-*
-*   0.7    2010/01/20  Boisy G. Pitre
-* No more /N0.  /Term is /N0.
-*
-*   0.8    2010/05/28  Aaron Wolfe
-* /N14 is now /MIDI
-
-         nam   scdwdesc
-         ttl   DriveWire network Device Descriptor
-
-         ifp1  
-         use   defsfile
-         endc  
-
-tylg     set   Devic+Objct
-atrv     set   ReEnt+rev
-rev      set   $07
-
-         mod   eom,name,tylg,atrv,mgrnam,drvnam
-
-         fcb   SHARE.+UPDAT.   	mode byte
-         fcb   HW.Page    extended controller address
-         fdb   $FF00+Addr      physical controller address
-         fcb   initsize-*-1 initilization table size
-         fcb   DT.SCF     device type:0=scf,1=rbf,2=pipe,3=scf
-         fcb   $00        case:0=up&lower,1=upper only
-         fcb   $01        backspace:0=bsp,1=bsp then sp & bsp
-         fcb   $00        delete:0=bsp over line,1=return
-         IFEQ  Addr-0
-         fcb   $01        echo:0=no echo
-         fcb   $01        auto line feed:0=off
-         ELSE
-         IFGT  Addr-14
-         fcb   $01        echo:0=no echo
-         fcb   $01        auto line feed:0=off
-         ELSE
-         fcb   $00        echo:0=no echo
-         fcb   $00        auto line feed:0=off
-         ENDC
-         ENDC
-         fcb   $00        end of line null count
-         fcb   $00        pause:0=no end of page pause
-         fcb   24         lines per page (not a safe assumption anymore!)
-         IFEQ  Addr-14
-         fcb   0      backspace character (on most telnet clients)
-         fcb   0      delete line character
-         fcb   0       end of record character
-         fcb   0      end of file character
-         fcb   0     reprint line character
-         fcb   0     duplicate last line character
-         fcb   0     pause character
-         fcb   0     interrupt character
-         fcb   0     quit character
-         fcb   0      backspace echo character
-         fcb   0     line overflow character (bell)
-         ELSE
-         fcb   C$BSP      backspace character (on most telnet clients)
-         fcb   C$DEL      delete line character
-         fcb   C$CR       end of record character
-         fcb   C$EOF      end of file character
-         fcb   C$RPRT     reprint line character
-         fcb   C$RPET     duplicate last line character
-         fcb   C$PAUS     pause character
-         fcb   C$INTR     interrupt character
-         fcb   C$QUIT     quit character
-         fcb   C$BSP      backspace echo character
-         fcb   C$BELL     line overflow character (bell)
-         ENDC
-         fcb   $00        mode byte for terminal descriptor
-         fcb   B600       baud rate (not used, maybe future assignment?)
-         fdb   name       copy of descriptor name address
-         fcb   $00        acia xon char (not used, maybe future assignment?)
-         fcb   $00        acia xoff char (not used, maybe future assignment?)
-         fcb   80         (szx) number of columns for display
-         fcb   24         (szy) number of rows for display
-initsize equ   *
-
-name     equ   *
-         IFEQ  Addr-0
-         fcs   /Term/
-         ELSE
-         IFEQ  Addr-14
-         fcs  /MIDI/
-         ELSE
-         IFEQ  Addr-255
-         fcs   'N'
-         ELSE
-         IFGT  Addr-15
-         IFEQ  Addr-16
-         fcs   /Term/
-         ELSE
-         fcc   /Z/
-         fcb   176+Addr-16
-         ENDC
-         ELSE
-         fcc   /N/
-         IFGT  Addr-9
-         fcc   '1'
-         fcb   176+Addr-10
-         ELSE
-         fcb   176+Addr
-         ENDC
-         ENDC
-         ENDC
-         ENDC
-         ENDC
-mgrnam   fcs   /SCF/
-drvnam   fcs   /scdwn/
-
-         emod  
-eom      equ   *
-         end   
-
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/level1/modules/scdwv.asm	Thu Jul 19 10:09:15 2012 -0500
@@ -0,0 +1,650 @@
+********************************************************************
+* scdwv - DriveWire Virtual Channel Driver
+*
+* $Id$
+*
+* How this wildcard /N stuff works:
+* A process interested in obtaining a path to a network device
+* can open any /Nx descriptor but it may be in use by another process.
+* The safest way to obtain a new network device is to open the wildcard
+* descriptor /N. This works similarly to the way /W works in the CoCo 3
+* VTIO driver.
+*
+* When /N is open, the INIT routine is called but most of it is bypassed
+* because it detects the wildcard device (which has an address of $FFFF). 
+*
+* The SS.Open I$SetStat entry point is called. That routine also detects
+* the wildcard is used, so the hunt is on for the next available /Nx
+* descriptor (it does this by checking the DW static storage for each /Nx
+* in the DW static storage page).  If it finds a free page, it notes the
+* offset as a number, then builds a descriptor name (ex: /N4) and then
+* F$Links to it.  It then takes the descriptor module address and sticks it
+* in the device table entry for /N.  It also takes the V.PORT address and sticks
+* it in the static storage memory allocated for /N.
+* Afer that, SS.Open does something really sneaky: it branches into the
+* Init routine which detects via the static storage that this is not a /N 
+* descriptor but a /N4 descriptor.  Init then sends the SERINIT and initializes
+* the DW static storage for /N4.  Control is returned to the SS.Open code which
+* then advertises the SS.Open to the server.
+*
+* Edt/Rev  YYYY/MM/DD  Modified by
+* Comment
+* ------------------------------------------------------------------
+*   1      2009/11/30  Aaron Wolfe
+* Started
+*
+*          2009/12/28  Boisy G. Pitre
+* Modified so that F$STime is called if we get an error on calling
+* F$VIRQ (which means the clock module has not be initialized)
+*
+*          2009/12/31  Boisy G. Pitre
+* Fixed crash in Init where F$Link failure would not clean up stack
+*
+*          2010/01/03  Boisy G. Pitre
+* Moved IRQ stuff into DW3 subroutine module
+*
+*   2      2010/01/23  Boisy G. Pitre
+* Added code in SS.Open to use /N wildcard device (tricky stuff!)
+*
+*		   2010/05/28  Aaron Wolfe	  
+* Added FASTSERWRITE support
+*
+               nam       scdwv
+               ttl       DriveWire Network Driver
+
+               ifp1      
+               use       defsfile
+               use       drivewire.d
+               endc      
+
+tylg           set       Drivr+Objct
+atrv           set       ReEnt+Rev
+rev            set       $00
+edition        set       2
+
+* Note: driver memory defined in dwdefs.d
+               mod       eom,name,tylg,atrv,start,SCFDrvMemSz
+
+* module info         	
+               fcb       UPDAT.+SHARE.       ;driver access modes
+name           fcs       /scdwv/             ;driver name
+               fcb       edition             ;driver edition 
+
+* dispatch calls            
+start          equ       *
+               lbra      Init
+               lbra      Read
+               lbra      Write
+               lbra      GetStat
+               lbra      SetStat
+
+***********************************************************************
+* Term
+*
+* shut down the driver.
+* should close only the correct port, tell server to close the port,
+* and remove irq handler when no ports are left 
+*
+* Entry:
+*    U  = address of device memory area
+*
+* Exit:
+*    CC = carry set on error
+*    B  = error code   
+Term           equ       *
+               lda       <V.PORT+1,u         get our port #
+               bmi       termbye			if this is wildcard, skip TERM
+               pshs      a                   port # on stack
+* clear statics table entry
+               ifgt      Level-1
+               ldx       <D.DWStat
+               else      
+               ldx       >D.DWStat
+               endc      
+               beq       tell
+* cheat: we know DW.StatTbl is at offset $00 from D.DWStat, do not bother with leax
+*	           leax      DW.StatTbl,x
+               clr       a,x                 clear out
+
+* tell server
+tell                     
+               lda       #OP_SERTERM         load command
+               pshs      a                   command store on stack
+               leax      ,s                  point X to stack 
+               ldy       #2                  2 bytes to send 
+
+               pshs      u
+
+               ifgt      Level-1
+               ldu       <D.DWSubAddr
+               else      
+               ldu       >D.DWSubAddr
+               endc      
+               beq       nosub
+               jsr       6,u                 call DWrite
+
+nosub                    
+               puls      u
+               leas      2,s                 clean 3 DWsub args from stack 
+termbye        clrb      
+               rts       
+
+***********************************************************************
+* Init
+*
+* Entry:
+*    Y  = address of device descriptor
+*    U  = address of device memory area
+*
+* Exit:
+*    CC = carry set on error
+*    B  = error code
+*
+
+Init           equ       *
+
+; link to subroutine module
+; has the link already been done?
+               ifgt      Level-1
+               ldx       <D.DWSubAddr
+               else      
+               ldx       >D.DWSubAddr
+               endc      
+               bne       already             ; if so, do not bother
+
+               pshs      u                   ; preserve u since os9 link is coming up
+
+               ifgt      Level-1
+               ldx       <D.Proc
+               pshs      x
+               ldx       <D.SysPrc
+               stx       <D.Proc
+               endc      
+               clra      
+
+               leax      dw3name,pcr
+               os9       F$Link
+               ifgt      Level-1
+               puls      x
+               stx       <D.Proc
+               endc      
+               bcs       InitEx2
+               ifgt      Level-1
+               sty       <D.DWSubAddr
+               else      
+               sty       >D.DWSubAddr
+               endc      
+               jsr       ,y                  ; call DW init routine
+
+               puls      u                   ; restore u
+
+already                  
+; tell DW we have a new port opening (port mode already on stack)
+               ldb       <V.PORT+1,u         ; get our port #	
+* if /N wildcard, skip advertising via SERINIT
+               bmi       initEx
+               lda       #OP_SERINIT         ; command 
+               pshs      d                   ; command + port # on stack
+               leax      ,s                  ; point X to stack 
+               ldy       #2                  ; # of bytes to send
+
+               pshs      u
+               ifgt      Level-1
+               ldu       <D.DWSubAddr
+               else      
+               ldu       >D.DWSubAddr
+               endc      
+               jsr       6,u                 ; call DWrite
+               puls      u
+
+; set up local buffer
+               ldb       #RxBufDSz           ; default Rx buffer size
+               leax      RxBuff,u            ; default Rx buffer address
+               stb       RxBufSiz,u          ; save Rx buffer size
+               stx       RxBufPtr,u          ; save Rx buffer address
+               stx       RxBufGet,u          ; set initial Rx buffer input address
+               stx       RxBufPut,u          ; set initial Rx buffer output address
+               abx                           ; add buffer size to buffer start..
+               stx       RxBufEnd,u          ; save Rx buffer end address
+
+               tfr       u,d                 ; (A = high page of statics)
+               puls      b
+               puls      b                   ; (B = port number)
+               ifgt      Level-1
+               ldx       <D.DWStat
+               else      
+               ldx       >D.DWStat
+               endc      
+; cheat: we know DW.StatTbl is at offset $00 from D.DWStat, do not bother with leax
+;		leax      DW.StatTbl,x
+               sta       b,x
+InitEx         equ       *
+               rts       
+InitEx2                  
+               puls      u
+               rts       
+
+; drivewire info
+dw3name        fcs       /dw3/
+
+
+*****************************************************************************
+* Write
+*
+* Entry:
+*    A  = character to write
+*    Y  = address of path descriptor
+*    U  = address of device memory area
+*
+* Exit:
+*    CC = carry set on error
+*    B  = error code
+* 
+Write          equ       *
+               pshs      a                   ; character to send on stack
+               lda       <V.PORT+1,u         ; port number into a
+               adda      #128    ; add base of command into A
+               pshs      a
+               leax      ,s
+               ldy       #$0002              ; 3 bytes to send.. ugh.  need WRITEM (data mode)
+               ifgt      Level-1
+               ldu       <D.DWSubAddr
+               else      
+               ldu       >D.DWSubAddr
+               endc      
+               jsr       6,u
+WriteOK        clrb      
+WriteExit      puls      x,pc              ; clean stack, return
+
+
+NotReady       comb      
+               ldb       #E$NotRdy
+               rts       
+
+*************************************************************************************
+* Read
+*
+* Entry:
+*    Y  = address of path descriptor
+*    U  = address of device memory area
+*
+* Exit:
+*    A  = character read
+*    CC = carry set on error
+*    B  = error code
+*
+Read           equ       *
+* Check to see if there is a signal-on-data-ready set for this path.
+* If so, we return a Not Ready error.
+               lda       <SSigID,u           data ready signal trap set up?
+               bne       NotReady            yes, exit with not ready error
+               pshs      cc,dp               ; save IRQ/Carry status, system DP
+
+ReadChr        orcc      #IntMasks           ; mask interrupts
+
+               lda       RxDatLen,u          ; get our Rx buffer count
+               beq       ReadSlp             ; no data, go sleep while waiting for new Rx data...
+
+          ; we have data waiting
+               deca                          ; one less byte in buffer
+               sta       RxDatLen,u          ; save new Rx data count
+
+               ldx       RxBufGet,u          ; current Rx buffer pickup position
+               lda       ,x+                 ; get Rx character, set up next pickup position
+
+               cmpx      RxBufEnd,u          ; end of Rx buffer?
+               blo       ReadChr1            ; no, keep pickup pointer
+               ldx       RxBufPtr,u          ; get Rx buffer start address
+ReadChr1       stx       RxBufGet,u          ; set new Rx data pickup pointer
+
+          ; return to caller
+               puls      cc,dp,pc            ; recover IRQ/Carry status, system DP, return with character in A
+
+ReadSlp        equ       *
+
+               ifeq      Level-1
+ReadSlp2       lda       <V.BUSY,u
+               sta       <V.WAKE,u           ; store process id in this port's entry in the waiter table
+               lbsr      Sleep0              ; sleep level 1 style
+               else      
+ReadSlp2       lda       >D.Proc             ; process descriptor address MSB
+               sta       <V.WAKE,u           ; save MSB in V.WAKE
+               clrb      
+               tfr       d,x                 ; process descriptor address
+               ifne      H6309
+               oim       #Suspend,P$State,x  ; suspend
+               else      
+               ldb       P$State,x
+               orb       #Suspend
+               stb       P$State,x           ; suspend
+               endc      
+               bsr       Sleep1              ; sleep level 2 style
+               endc      
+
+          ; we have been awakened..
+
+          ; check for signals
+               ldx       >D.Proc             ; process descriptor address
+               ldb       P$Signal,x          ; pending signal for this process?
+               beq       ChkState            ; no, go check process state...
+               cmpb      #S$HUP              ; (S$HUP or lower)
+               bls       ErrExit             ; yes, go do it...
+
+ChkState       equ       *
+          ; have we been condemned to die?
+               ifne      H6309
+               tim       #Condem,P$State,x
+               else      
+               ldb       P$State,x
+               bitb      #Condem
+               endc      
+               bne       PrAbtErr            ; yes, go do it...
+
+          ; check that our waiter byte was cleared by ISR instance
+               tst       <V.WAKE,u           ; our waiter byte
+               beq       ReadChr             ; 0 = its our turn, go get a character 
+               bra       ReadSlp             ; false alarm, go back to sleep
+
+PrAbtErr       ldb       #E$PrcAbt           ; set error code
+
+ErrExit        equ       *
+               ifne      H6309
+               oim       #Carry,,s           ; set carry
+               else      
+               lda       ,s
+               ora       #Carry
+               sta       ,s
+               endc      
+               puls      cc,dp,pc            ; restore CC, system DP, return
+
+               ifeq      Level-1
+Sleep0         ldx       #$0                 ; sleep till ISR wakes us
+               bra       TimedSlp
+               endc      
+
+Sleep1         ldx       #$1                 ; just sleep till end of slice, we are suspended (level 2)             
+TimedSlp       andcc     #^Intmasks          ; enable IRQs
+               os9       F$Sleep
+               clr       <V.WAKE,u
+               rts                           ; return
+
+
+**********************************************************************
+* GetStat - heavily borrowed from sc6551
+*
+* Entry:
+*    A  = function code
+*    Y  = address of path descriptor
+*    U  = address of device memory area
+*
+* Exit:
+*    CC = carry set on error
+*    B  = error code 
+*
+GetStat                  
+               clrb                          ; default to no error...
+               pshs      cc,dp               ; save IRQ/Carry status,system DP
+
+               ldx       PD.RGS,y            ; caller's register stack pointer
+               cmpa      #SS.EOF
+               beq       GSExitOK            ; SCF devices never return EOF
+
+               cmpa      #SS.Ready
+               bne       Advertise           ; next check
+
+        	; SS.Ready
+               lda       RxDatLen,u          ; get Rx data length
+               beq       NRdyErr             ; none, go report error
+               sta       R$B,x               ; set Rx data available in caller's [B]
+GSExitOK       puls      cc,dp,pc            ; restore Carry status, system DP, return         
+
+NRdyErr        ldb       #E$NotRdy
+               bra       ErrExit             ; return error code 
+
+UnSvcErr       ldb       #E$UnkSvc
+               bra       ErrExit             ; return error code			
+
+; We advertise all of our SERGETSTAT calls (except SS.Ready) to the server
+Advertise                
+               ldb       #OP_SERGETSTAT
+               bsr       SendStat
+
+; Note: Here we could somehow obtain the size of the terminal window from the server
+GetScSiz       cmpa      #SS.ScSiz
+               bne       GetComSt            ; next check
+               ldu       PD.DEV,y
+               ldu       V$DESC,u            ; device descriptor
+               clra      
+               ldb       IT.COL,u            ; return screen size
+               std       R$X,x
+               ldb       IT.ROW,u
+               std       R$Y,x
+               puls      cc,dp,pc            ; restore Carry status, system DP, return
+
+GetComSt       cmpa      #SS.ComSt
+               bne       GetKySns            ; no, we have no more answers, report error
+               ldd       #$0000              ; not used, return $0000
+               std       R$Y,x
+               sta       R$B,x
+               puls      cc,dp,pc            ; restore Carry status, system DP, return			
+
+GetKySns
+               cmpa      #SS.KySns
+               bne       GetSSMntr           ; no, we have no more answers, report error
+* Get key sense byte from server and return to caller
+               pshs      a,x,u
+               leax      ,s
+               ldy       #$001
+               ifgt      Level-1
+               ldu       <D.DWSubAddr
+               else      
+               ldu       >D.DWSubAddr
+               jsr       DW$Read,u
+               endc      
+               puls      a,x,u
+               sta       R$A,x
+               puls      cc,dp,pc            ; restore Carry status, system DP, return			
+
+GetSSMntr      cmpa      #SS.Montr
+               bne       UnSvcErr            ; no, we have no more answers, report error
+               lda       #$01
+               sta       R$A,x
+               puls      cc,dp,pc            ; restore Carry status, system DP, return			
+
+* Advertise Stat Code to server
+* A = Function Code
+* B = OP_SERGETSTAT or OP_SERSETSTAT
+SendStat                 
+; advertise our GetStt code to the server
+               pshs      a,y,x,u
+               leas      -3,s
+               leax      ,s
+               stb       ,x
+               sta       2,x
+               ldb       V.PORT+1,u
+               stb       1,x
+               ldy       #$0003
+               ifgt      LEVEL-1
+               ldu       <D.DWSubAddr
+               else      
+               ldu       >D.DWSubAddr
+               endc      
+               jsr       DW$Write,u
+               leas      3,s
+               puls      a,y,x,u,pc
+
+*************************************************************************         
+* SetStat
+*
+* Entry:
+*    A  = function code
+*    Y  = address of path descriptor
+*    U  = address of device memory area
+*
+* Exit:
+*    CC = carry set on error
+*    B  = error code 
+*
+SetStat                  
+               cmpa      #SS.Open
+               bne       isitcomst
+               bsr       open
+               bcs       ssbye
+               ldd       #SS.Open*256+OP_SERSETSTAT
+               bra       SendStat
+isitcomst                
+               ldb       #OP_SERSETSTAT
+               bsr       SendStat
+               cmpa      #SS.ComSt
+               beq       comst
+               cmpa      #SS.Close
+               beq       ex
+               cmpa      #SS.SSig
+               beq       ssig
+               cmpa      #SS.Montr
+               beq       ex
+               cmpa      #SS.Relea
+               bne       donebad
+relea          lda       PD.CPR,y            get curr proc #
+               cmpa      <SSigID,u           same?
+               bne       ex
+               clr       <SSigID,u           clear process id
+ex             rts       
+sskysns        
+               rts
+ssig           pshs      cc
+               orcc      #IntMasks
+               lda       PD.CPR,y            ; get curr proc #
+               ldx       PD.RGS,y
+               ldb       R$X+1,x             ; get user signal code
+               tst       RxDatLen,u          ; get Rx data length
+               beq       ssigsetup           ; branch if no data in buffer
+* if here, we have data so send signal immediately
+               os9       F$Send
+               puls      cc,pc
+ssigsetup      std       <SSigID,u           ; save process ID & signal
+               puls      cc,pc
+
+donebad        comb      
+               ldb       #E$UnkSvc
+               rts       
+
+comst          leax      PD.OPT,y
+               ldy       #OPTCNT
+               ifgt      LEVEL-1
+               ldu       <D.DWSubAddr
+               else      
+               ldu       >D.DWSubAddr
+               endc      
+               jsr       DW$Write,u
+               clrb      
+ssbye          rts       
+
+* SS.Open processor
+* Entry: X=Register stack pointer
+*        U=Static memory pointer
+*        Y=Path descriptor pointer
+open           tst       <V.PORT+1,u         check if this is $FFFF (wildcard)
+               bpl       ssbye               if not, we have nothing to do
+               pshs      u,y                 preserve registers
+               ldx       PD.DEV,y            get pointer to device table entry
+               ldx       V$DESC,x            get pointer to /N descriptor
+               pshs      x                   save device descriptor pointer
+* start at /N1
+               ldb       #1
+L0B58          equ       *
+               ifgt      Level-1
+               ldx       <D.DWStat
+               else      
+               ldx       >D.DWStat
+               endc      
+; cheat: we know DW.StatTbl is at offset $00 from D.DWStat, do not bother with leax
+;		leax      DW.StatTbl,x
+next           cmpb      #DW.StatCnt
+               bge       opexer
+               tst       b,x
+               beq       found
+               incb      
+               bra       next
+opexer         comb                          set carry
+               ldb       #E$MNF              get module not found error
+               puls      x,y,u,pc            purge stack and return
+
+* Found a free spot
+found          pshs      b                   save # of free entry
+               leas      -5,s
+               leay      ,s
+               ldb       #'N                 get netdev name prefix
+               stb       ,y+                 put it in buffer
+               ldb       5,s                 get netdev # that was free
+* Convert netdev # in B to ASCII eqivalent with high bit set
+
+               ifne      H6309
+               clra
+               divd      #10                 divide it by 10
+               else      
+               lda       #-1
+L0B87b         inca      
+               subb      #10
+               bcc       L0B87b
+               addb      #10
+               exg       a,b
+               cmpb      #0
+               endc      
+               beq       L0B87               if answer is 0 there is only 1 digit, skip ahead 
+               orb       #$30                make first digit ASCII
+               stb       ,y+                 put it in buffer
+L0B87          ora       #$B0                make remainder ASCII with high bit set
+               sta       ,y+                 put it in buffer
+L0B92          leas      -2,s                make a buffer for process decriptor pointer
+               ifgt      Level-1
+               lbsr      L0238               switch to system process descriptor
+               endc      
+               leax      2,s                 Point to calculated dsc. name
+               lda       #Devic+Objct        get module type
+               os9       F$Link              try & link it
+               ifgt      Level-1
+               lbsr      L0244               switch back to current process
+               endc      
+               leas      7,s                 purge stack
+               bcc       L0BAB               it's linked, skip ahead
+L0BA7          puls      b                   get original number
+               incb      
+               bra       L0B58               go find another free space
+
+               ifgt      Level-1
+* Switch to system process descriptor
+L0238          pshs      d                   Preserve D
+               ldd       <D.Proc             Get current process dsc. ptr
+               std       4,s                 Preserve on stack
+               ldd       <D.SysPrc           Get system process dsc. ptr
+               std       <D.Proc             Make it the current process
+               puls      d,pc                Restore D & return
+
+* Switch back to current process
+L0244          pshs      d                   Preserve D
+               ldd       4,s                 Get current process ptr
+               std       <D.Proc             Make it the current process
+               puls      d,pc                Restore D & return
+               endc      
+
+* Got a device descriptor, put into device table & save netdev # into static
+L0BAB                    
+               lda       M$PORT+2,u          get MSB of port byte of newly linked /N? descriptor
+               ldy       3,s                 get path descriptor pointer
+               ldx       PD.DEV,y            get pointer to device table
+               stu       V$DESC,x            save pointer to descriptor into it
+               ldu       1,s                 get pointer to /N descriptor
+               os9       F$UnLink            unlink it from system map
+               ldu       5,s                 get static mem pointer
+               sta       V.PORT+1,u
+               leas      7,s                 purge stack
+* Load Y with address of descriptor and U with address of memory area
+               ldy       V$DESC,x
+               pshs      x,y,u
+               lbsr      Init                call Init to setup dw statics
+               puls      x,y,u,pc
+
+               emod      
+eom            equ       *
+               end       
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/level1/modules/scdwvdesc.asm	Thu Jul 19 10:09:15 2012 -0500
@@ -0,0 +1,136 @@
+********************************************************************
+* scdwvdesc - Drivewire Virtual Device Descriptor
+*
+* $Id$
+*
+* Edt/Rev  YYYY/MM/DD  Modified by
+* Comment
+* ------------------------------------------------------------------
+*   0.3    2009/12/??  Aaron Wolfe
+* Added SHARE. bit to mode.
+*
+*   0.4    2009/12/27  Boisy G. Pitre
+* Removed SHARE. bit from mode because of tsmon issues.
+*
+*   0.5    2009/12/29  Boisy G. Pitre
+* Made U and T descriptor templates. Backspace is now $7F for
+* telnet clients which are likely to access the T ports.
+*
+* This descriptor has slightly different defaults, intended to be used as 
+* the channel for the DriveWire utilities
+*
+*   0.6    2010/01/12  Boisy G. Pitre
+* Renamed.
+*
+*   0.7    2010/01/20  Boisy G. Pitre
+* No more /N0.  /Term is /N0.
+*
+*   0.8    2010/05/28  Aaron Wolfe
+* /N14 is now /MIDI
+
+         nam   scdwdesc
+         ttl   DriveWire Virtual Device Descriptor
+
+         ifp1  
+         use   defsfile
+         endc  
+
+tylg     set   Devic+Objct
+atrv     set   ReEnt+rev
+rev      set   $07
+
+         mod   eom,name,tylg,atrv,mgrnam,drvnam
+
+         fcb   SHARE.+UPDAT.   	mode byte
+         fcb   HW.Page    extended controller address
+         fdb   $FF00+Addr      physical controller address
+         fcb   initsize-*-1 initilization table size
+         fcb   DT.SCF     device type:0=scf,1=rbf,2=pipe,3=scf
+         fcb   $00        case:0=up&lower,1=upper only
+         fcb   $01        backspace:0=bsp,1=bsp then sp & bsp
+         fcb   $00        delete:0=bsp over line,1=return
+         IFEQ  Addr-0
+         fcb   $01        echo:0=no echo
+         fcb   $01        auto line feed:0=off
+         ELSE
+         IFGT  Addr-14
+         fcb   $01        echo:0=no echo
+         fcb   $01        auto line feed:0=off
+         ELSE
+         fcb   $00        echo:0=no echo
+         fcb   $00        auto line feed:0=off
+         ENDC
+         ENDC
+         fcb   $00        end of line null count
+         fcb   $00        pause:0=no end of page pause
+         fcb   24         lines per page (not a safe assumption anymore!)
+         IFEQ  Addr-14
+         fcb   0      backspace character (on most telnet clients)
+         fcb   0      delete line character
+         fcb   0       end of record character
+         fcb   0      end of file character
+         fcb   0     reprint line character
+         fcb   0     duplicate last line character
+         fcb   0     pause character
+         fcb   0     interrupt character
+         fcb   0     quit character
+         fcb   0      backspace echo character
+         fcb   0     line overflow character (bell)
+         ELSE
+         fcb   C$BSP      backspace character (on most telnet clients)
+         fcb   C$DEL      delete line character
+         fcb   C$CR       end of record character
+         fcb   C$EOF      end of file character
+         fcb   C$RPRT     reprint line character
+         fcb   C$RPET     duplicate last line character
+         fcb   C$PAUS     pause character
+         fcb   C$INTR     interrupt character
+         fcb   C$QUIT     quit character
+         fcb   C$BSP      backspace echo character
+         fcb   C$BELL     line overflow character (bell)
+         ENDC
+         fcb   $00        mode byte for terminal descriptor
+         fcb   B600       baud rate (not used, maybe future assignment?)
+         fdb   name       copy of descriptor name address
+         fcb   $00        acia xon char (not used, maybe future assignment?)
+         fcb   $00        acia xoff char (not used, maybe future assignment?)
+         fcb   80         (szx) number of columns for display
+         fcb   24         (szy) number of rows for display
+initsize equ   *
+
+name     equ   *
+         IFEQ  Addr-0
+         fcs   /Term/
+         ELSE
+         IFEQ  Addr-14
+         fcs  /MIDI/
+         ELSE
+         IFEQ  Addr-255
+         fcs   'N'
+         ELSE
+         IFGT  Addr-15
+         IFEQ  Addr-16
+         fcs   /Term/
+         ELSE
+         fcc   /Z/
+         fcb   176+Addr-16
+         ENDC
+         ELSE
+         fcc   /N/
+         IFGT  Addr-9
+         fcc   '1'
+         fcb   176+Addr-10
+         ELSE
+         fcb   176+Addr
+         ENDC
+         ENDC
+         ENDC
+         ENDC
+         ENDC
+mgrnam   fcs   /SCF/
+drvnam   fcs   /scdwv/
+
+         emod  
+eom      equ   *
+         end   
+
--- a/level1/modules/term32.asm	Wed Jul 18 20:28:37 2012 -0500
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,69 +0,0 @@
-********************************************************************
-* TERM - VDG Screen Device Descriptor
-*
-* $Id$
-*
-* Edt/Rev  YYYY/MM/DD  Modified by
-* Comment
-* ------------------------------------------------------------------
-*          ????/??/??
-* From Tandy OS-9 Level One VR 02.00.00
-
-         nam   TERM
-         ttl   VDG Screen Device Descriptor
-
-* Disassembled 98/08/23 17:19:25 by Disasm v1.6 (C) 1988 by RML
-
-         ifp1
-         use   defsfile
-;         use   scfdefs
-         use   cocovtio.d
-         endc
-
-tylg     set   Devic+Objct   
-atrv     set   ReEnt+rev
-rev      set   $00
-
-         mod   eom,name,tylg,atrv,mgrnam,drvnam
-
-         fcb   UPDAT.         mode byte
-         fcb   HW.Page        extended controller address
-         fdb   $C000          physical controller address
-         fcb   initsize-*-1   initilization table size
-         fcb   DT.SCF         device type:0=scf,1=rbf,2=pipe,3=scf
-         fcb   $01            case:0=up&lower,1=upper only
-         fcb   $01            backspace:0=bsp,1=bsp then sp & bsp
-         fcb   $00            delete:0=bsp over line,1=return
-         fcb   $01            echo:0=no echo
-         fcb   $01            auto line feed:0=off
-         fcb   $00            end of line null count
-         fcb   $01            pause:0=no end of page pause
-         fcb   16             lines per page
-         fcb   C$BSP          backspace character
-         fcb   C$DEL          delete line character
-         fcb   C$CR           end of record character
-         fcb   C$EOF          end of file character
-         fcb   C$RPRT         reprint line character
-         fcb   C$RPET         duplicate last line character
-         fcb   C$PAUS         pause character
-         fcb   C$INTR         interrupt character
-         fcb   C$QUIT         quit character
-         fcb   C$BSP          backspace echo character
-         fcb   C$BELL         line overflow character (bell)
-         fcb   ModCoVDG       init value for dev ctl reg
-         fcb   $00            baud rate
-         fdb   name           copy of descriptor name address
-         fcb   $00            acia xon char
-         fcb   $00            acia xoff char
-         fcb   32             (szx) number of columns for display
-         fcb   16             (szy) number of rows for display
-initsize equ   *
-
-name     fcs   /TERM/
-mgrnam   fcs   /SCF/
-drvnam   fcs   /VTIO/
-
-         emod
-eom      equ   *
-         end
-
--- a/level1/modules/term51.asm	Wed Jul 18 20:28:37 2012 -0500
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,74 +0,0 @@
-********************************************************************
-* TERM - Hi-Res 51x24 Device Descriptor
-*
-* $Id$
-*
-* Edt/Rev  YYYY/MM/DD  Modified by
-* Comment
-* ------------------------------------------------------------------
-*          ????/??/??
-* From Tandy OS-9 Level One VR 02.00.00
-*
-* Modified from 80 col driver to suit 51 column software 
-* driver from Dragon Data OS-9, 2004-12-02 P.Harvey-Smith.
-*
-
-
-
-         nam   TERM
-         ttl   Hi-Res 51x24 Device Descriptor
-
-* Disassembled 98/08/23 17:19:25 by Disasm v1.6 (C) 1988 by RML
-
-         ifp1
-         use   defsfile
-;         use   scfdefs
-         use   cocovtio.d
-         endc
-
-tylg     set   Devic+Objct   
-atrv     set   ReEnt+rev
-rev      set   $00
-
-         mod   eom,name,tylg,atrv,mgrnam,drvnam
-
-         fcb   UPDAT.         mode byte
-         fcb   HW.Page        extended controller address
-         fdb   $C000          physical controller address
-         fcb   initsize-*-1   initilization table size
-         fcb   DT.SCF         device type:0=scf,1=rbf,2=pipe,3=scf
-         fcb   $00            case:0=up&lower,1=upper only
-         fcb   $01            backspace:0=bsp,1=bsp then sp & bsp
-         fcb   $00            delete:0=bsp over line,1=return
-         fcb   $01            echo:0=no echo
-         fcb   $01            auto line feed:0=off
-         fcb   $00            end of line null count
-         fcb   $01            pause:0=no end of page pause
-         fcb   24             lines per page
-         fcb   C$BSP          backspace character
-         fcb   C$DEL          delete line character
-         fcb   C$CR           end of record character
-         fcb   C$EOF          end of file character
-         fcb   C$RPRT         reprint line character
-         fcb   C$RPET         duplicate last line character
-         fcb   C$PAUS         pause character
-         fcb   C$INTR         interrupt character
-         fcb   C$QUIT         quit character
-         fcb   C$BSP          backspace echo character
-         fcb   C$BELL         line overflow character (bell)
-         fcb   ModCoHR        init value for dev ctl reg
-         fcb   $00            baud rate
-         fdb   name           copy of descriptor name address
-         fcb   $00            acia xon char
-         fcb   $00            acia xoff char
-         fcb   51             (szx) number of columns for display
-         fcb   24             (szy) number of rows for display
-initsize equ   *
-
-name     fcs   /TERM/
-mgrnam   fcs   /SCF/
-drvnam   fcs   /VTIO/
-
-         emod
-eom      equ   *
-         end
--- a/level1/modules/term80.asm	Wed Jul 18 20:28:37 2012 -0500
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,69 +0,0 @@
-********************************************************************
-* TERM - Word-Pak Device Descriptor
-*
-* $Id$
-*
-* Edt/Rev  YYYY/MM/DD  Modified by
-* Comment
-* ------------------------------------------------------------------
-*          ????/??/??
-* From Tandy OS-9 Level One VR 02.00.00
-
-         nam   TERM
-         ttl   Word-Pak Device Descriptor
-
-* Disassembled 98/08/23 17:19:25 by Disasm v1.6 (C) 1988 by RML
-
-         ifp1
-         use   defsfile
-;         use   scfdefs
-         use   cocovtio.d
-         endc
-
-tylg     set   Devic+Objct   
-atrv     set   ReEnt+rev
-rev      set   $00
-
-         mod   eom,name,tylg,atrv,mgrnam,drvnam
-
-         fcb   UPDAT.         mode byte
-         fcb   HW.Page        extended controller address
-         fdb   $C000          physical controller address
-         fcb   initsize-*-1   initilization table size
-         fcb   DT.SCF         device type:0=scf,1=rbf,2=pipe,3=scf
-         fcb   $00            case:0=up&lower,1=upper only
-         fcb   $01            backspace:0=bsp,1=bsp then sp & bsp
-         fcb   $00            delete:0=bsp over line,1=return
-         fcb   $01            echo:0=no echo
-         fcb   $01            auto line feed:0=off
-         fcb   $00            end of line null count
-         fcb   $01            pause:0=no end of page pause
-         fcb   24             lines per page
-         fcb   C$BSP          backspace character
-         fcb   C$DEL          delete line character
-         fcb   C$CR           end of record character
-         fcb   C$EOF          end of file character
-         fcb   C$RPRT         reprint line character
-         fcb   C$RPET         duplicate last line character
-         fcb   C$PAUS         pause character
-         fcb   C$INTR         interrupt character
-         fcb   C$QUIT         quit character
-         fcb   C$BSP          backspace echo character
-         fcb   C$BELL         line overflow character (bell)
-         fcb   ModCoWP        init value for dev ctl reg
-         fcb   $00            baud rate
-         fdb   name           copy of descriptor name address
-         fcb   $00            acia xon char
-         fcb   $00            acia xoff char
-         fcb   80             (szx) number of columns for display
-         fcb   24             (szy) number of rows for display
-initsize equ   *
-
-name     fcs   /TERM/
-mgrnam   fcs   /SCF/
-drvnam   fcs   /VTIO/
-
-         emod
-eom      equ   *
-         end
-
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/level1/modules/term_80.asm	Thu Jul 19 10:09:15 2012 -0500
@@ -0,0 +1,69 @@
+********************************************************************
+* TERM - Word-Pak Device Descriptor
+*
+* $Id$
+*
+* Edt/Rev  YYYY/MM/DD  Modified by
+* Comment
+* ------------------------------------------------------------------
+*          ????/??/??
+* From Tandy OS-9 Level One VR 02.00.00
+
+         nam   TERM
+         ttl   Word-Pak Device Descriptor
+
+* Disassembled 98/08/23 17:19:25 by Disasm v1.6 (C) 1988 by RML
+
+         ifp1
+         use   defsfile
+;         use   scfdefs
+         use   cocovtio.d
+         endc
+
+tylg     set   Devic+Objct   
+atrv     set   ReEnt+rev
+rev      set   $00
+
+         mod   eom,name,tylg,atrv,mgrnam,drvnam
+
+         fcb   UPDAT.         mode byte
+         fcb   HW.Page        extended controller address
+         fdb   $C000          physical controller address
+         fcb   initsize-*-1   initilization table size
+         fcb   DT.SCF         device type:0=scf,1=rbf,2=pipe,3=scf
+         fcb   $00            case:0=up&lower,1=upper only
+         fcb   $01            backspace:0=bsp,1=bsp then sp & bsp
+         fcb   $00            delete:0=bsp over line,1=return
+         fcb   $01            echo:0=no echo
+         fcb   $01            auto line feed:0=off
+         fcb   $00            end of line null count
+         fcb   $01            pause:0=no end of page pause
+         fcb   24             lines per page
+         fcb   C$BSP          backspace character
+         fcb   C$DEL          delete line character
+         fcb   C$CR           end of record character
+         fcb   C$EOF          end of file character
+         fcb   C$RPRT         reprint line character
+         fcb   C$RPET         duplicate last line character
+         fcb   C$PAUS         pause character
+         fcb   C$INTR         interrupt character
+         fcb   C$QUIT         quit character
+         fcb   C$BSP          backspace echo character
+         fcb   C$BELL         line overflow character (bell)
+         fcb   ModCoWP        init value for dev ctl reg
+         fcb   $00            baud rate
+         fdb   name           copy of descriptor name address
+         fcb   $00            acia xon char
+         fcb   $00            acia xoff char
+         fcb   80             (szx) number of columns for display
+         fcb   24             (szy) number of rows for display
+initsize equ   *
+
+name     fcs   /TERM/
+mgrnam   fcs   /SCF/
+drvnam   fcs   /VTIO/
+
+         emod
+eom      equ   *
+         end
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/level1/modules/term_hr.asm	Thu Jul 19 10:09:15 2012 -0500
@@ -0,0 +1,74 @@
+********************************************************************
+* TERM - Hi-Res 51x24 Device Descriptor
+*
+* $Id$
+*
+* Edt/Rev  YYYY/MM/DD  Modified by
+* Comment
+* ------------------------------------------------------------------
+*          ????/??/??
+* From Tandy OS-9 Level One VR 02.00.00
+*
+* Modified from 80 col driver to suit 51 column software 
+* driver from Dragon Data OS-9, 2004-12-02 P.Harvey-Smith.
+*
+
+
+
+         nam   TERM
+         ttl   Hi-Res 51x24 Device Descriptor
+
+* Disassembled 98/08/23 17:19:25 by Disasm v1.6 (C) 1988 by RML
+
+         ifp1
+         use   defsfile
+;         use   scfdefs
+         use   cocovtio.d
+         endc
+
+tylg     set   Devic+Objct   
+atrv     set   ReEnt+rev
+rev      set   $00
+
+         mod   eom,name,tylg,atrv,mgrnam,drvnam
+
+         fcb   UPDAT.         mode byte
+         fcb   HW.Page        extended controller address
+         fdb   $C000          physical controller address
+         fcb   initsize-*-1   initilization table size
+         fcb   DT.SCF         device type:0=scf,1=rbf,2=pipe,3=scf
+         fcb   $00            case:0=up&lower,1=upper only
+         fcb   $01            backspace:0=bsp,1=bsp then sp & bsp
+         fcb   $00            delete:0=bsp over line,1=return
+         fcb   $01            echo:0=no echo
+         fcb   $01            auto line feed:0=off
+         fcb   $00            end of line null count
+         fcb   $01            pause:0=no end of page pause
+         fcb   24             lines per page
+         fcb   C$BSP          backspace character
+         fcb   C$DEL          delete line character
+         fcb   C$CR           end of record character
+         fcb   C$EOF          end of file character
+         fcb   C$RPRT         reprint line character
+         fcb   C$RPET         duplicate last line character
+         fcb   C$PAUS         pause character
+         fcb   C$INTR         interrupt character
+         fcb   C$QUIT         quit character
+         fcb   C$BSP          backspace echo character
+         fcb   C$BELL         line overflow character (bell)
+         fcb   ModCoHR        init value for dev ctl reg
+         fcb   $00            baud rate
+         fdb   name           copy of descriptor name address
+         fcb   $00            acia xon char
+         fcb   $00            acia xoff char
+         fcb   51             (szx) number of columns for display
+         fcb   24             (szy) number of rows for display
+initsize equ   *
+
+name     fcs   /TERM/
+mgrnam   fcs   /SCF/
+drvnam   fcs   /VTIO/
+
+         emod
+eom      equ   *
+         end
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/level1/modules/term_vdg.asm	Thu Jul 19 10:09:15 2012 -0500
@@ -0,0 +1,91 @@
+********************************************************************
+* Term - VTIO VDG Device Descriptor
+*
+* $Id$
+*
+* Edt/Rev  YYYY/MM/DD  Modified by
+* Comment
+* ------------------------------------------------------------------
+
+         nam   Term
+         ttl   VTIO VDG Device Descriptor
+
+         ifp1  
+         use   defsfile
+         use   cocovtio.d
+         endc  
+
+tylg     set   Devic+Objct
+atrv     set   ReEnt+rev
+rev      set   $00
+
+* Window descriptor definitions
+szx      set   32         number of columns for display
+szy      set   16         number for rows for display
+         IFGT  Level-1
+wnum     set   0          window number
+sty      set   1          window type
+cpx      set   0          x cursor position
+cpy      set   0          y cursor position
+prn1     set   Black.     foreground color
+prn2     set   Green.     background color
+prn3     set   Black.     border color
+         ENDC
+
+         mod   eom,name,tylg,atrv,mgrnam,drvnam
+
+         fcb   UPDAT.     mode byte
+         fcb   HW.Page    extended controller address
+         fdb   A.TermV    physical controller address
+         fcb   initsize-*-1 initilization table size
+         fcb   DT.SCF     device type:0=scf,1=rbf,2=pipe,3=scf
+         fcb   $00        case:0=up&lower,1=upper only
+         fcb   $01        backspace:0=bsp,1=bsp then sp & bsp
+         fcb   $00        delete:0=bsp over line,1=return
+         fcb   $01        echo:0=no echo
+         fcb   $01        auto line feed:0=off
+         fcb   $00        end of line null count
+         fcb   $01        pause:0=no end of page pause
+         fcb   szy        lines per page
+         fcb   C$BSP      backspace character
+         fcb   C$DEL      delete line character
+         fcb   C$CR       end of record character
+         fcb   C$EOF      end of file character
+         fcb   C$RARR     reprint line character
+         fcb   C$SHRARR   duplicate last line character
+         fcb   C$PAUS     pause character
+         fcb   C$INTR     interrupt character
+         fcb   C$QUIT     quit character
+         fcb   C$BSP      backspace echo character
+         fcb   C$BELL     line overflow character (bell)
+         IFGT  Level-1
+         fcb   $01        init value for dev ctl reg
+         ELSE
+         fcb   ModCoVDG   init value for dev ctl reg
+         ENDC
+         fcb   $00        baud rate
+         fdb   name       copy of descriptor name address
+         fcb   $00        acia xon char
+         fcb   $00        acia xoff char
+         fcb   szx        (szx) number of columns for display
+         fcb   szy        (szy) number of rows for display
+         IFGT  Level-1
+         fcb   wnum       window number
+         fcb   $01        data in rest of descriptor valid
+         fcb   sty        (sty) window type
+         fcb   cpx        (cpx) x cursor position
+         fcb   cpy        (cpy) y cursor position
+         fcb   prn1       (prn1) foreground color
+         fcb   prn2       (prn2) background color
+         fcb   prn3       (prn3) border color
+         ENDC
+initsize equ   *
+
+name     fcs   /Term/
+mgrnam   fcs   /SCF/
+drvnam   fcs   /VTIO/
+
+         emod  
+eom      equ   *
+         end   
+
--- a/level1/tano/bootfiles/makefile	Wed Jul 18 20:28:37 2012 -0500
+++ b/level1/tano/bootfiles/makefile	Thu Jul 19 10:09:15 2012 -0500
@@ -40,7 +40,7 @@
 		$(MD)/d0_40d.dd $(MD)/d1_40d.dd \
 		$(MD)/d2_40d.dd \
 		$(MD)/scf.mn \
-		$(MD)/vtio.dr $(MD)/covdg.io $(MD)/term32.dt \
+		$(MD)/vtio.dr $(MD)/covdg.io $(MD)/term_vdg.dt \
 		$(MD)/scdpp.dr $(MD)/p_dpp.dd \
 		$(MD)/pipeman.mn $(MD)/piper.dr $(MD)/pipe.dd \
 		$(MD)/clock_60hz $(MD)/clock2_soft \
@@ -52,7 +52,7 @@
 		$(MD)/d0_40d.dd $(MD)/d1_40d.dd \
 		$(MD)/d2_40d.dd \
 		$(MD)/scf.mn \
-		$(MD)/vtio.dr $(MD)/cohr.io $(MD)/term51.dt \
+		$(MD)/vtio.dr $(MD)/cohr.io $(MD)/term_hr.dt \
 		$(MD)/scdpp.dr $(MD)/p_dpp.dd \
 		$(MD)/pipeman.mn $(MD)/piper.dr $(MD)/pipe.dd \
 		$(MD)/clock_60hz $(MD)/clock2_soft \
@@ -63,7 +63,7 @@
 		$(MD)/d0_80d.dd $(MD)/d1_80d.dd \
 		$(MD)/d2_80d.dd \
 		$(MD)/scf.mn \
-		$(MD)/vtio.dr $(MD)/covdg.io $(MD)/term32.dt \
+		$(MD)/vtio.dr $(MD)/covdg.io $(MD)/term_vdg.dt \
 		$(MD)/scdpp.dr $(MD)/p_dpp.dd \
 		$(MD)/pipeman.mn $(MD)/piper.dr $(MD)/pipe.dd \
 		$(MD)/clock_60hz $(MD)/clock2_soft \
@@ -75,7 +75,7 @@
 		$(MD)/d0_80d.dd $(MD)/d1_80d.dd \
 		$(MD)/d2_80d.dd \
 		$(MD)/scf.mn \
-		$(MD)/vtio.dr $(MD)/cohr.io $(MD)/term51.dt \
+		$(MD)/vtio.dr $(MD)/cohr.io $(MD)/term_hr.dt \
 		$(MD)/scdpp.dr $(MD)/p_dpp.dd \
 		$(MD)/pipeman.mn $(MD)/piper.dr $(MD)/pipe.dd \
 		$(MD)/clock_60hz $(MD)/clock2_soft \
--- a/level1/tano/bootlists/standard.bl	Wed Jul 18 20:28:37 2012 -0500
+++ b/level1/tano/bootlists/standard.bl	Thu Jul 19 10:09:15 2012 -0500
@@ -103,8 +103,8 @@
 *../MODULES/SCF/cohr.io
 *
 * Select only one term descriptor
-../MODULES/SCF/term32.dt
-*../MODULES/SCF/term51.dt
+../MODULES/SCF/term_vdg.dt
+*../MODULES/SCF/term_hr.dt
 *../MODULES/SCF/term_sc6551.dt
 *
 * Serial port drivers
--- a/level1/tano/modules/makefile	Wed Jul 18 20:28:37 2012 -0500
+++ b/level1/tano/modules/makefile	Thu Jul 19 10:09:15 2012 -0500
@@ -40,7 +40,7 @@
 		covdg.io cohr.io \
 		nil.dd p_dpp.dd p1_sc6551dragon.dd pipe.dd ssp.dd \
 		term_sc6551.dt t2_sc6551.dd t3_sc6551.dd \
-		term32.dt term51.dt
+		term_vdg.dt term_hr.dt
 
 PIPE		= pipeman.mn \
 		piper.dr \
--- a/level2/modules/term_vdg.asm	Wed Jul 18 20:28:37 2012 -0500
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,91 +0,0 @@
-********************************************************************
-* Term - VTIO VDG Device Descriptor
-*
-* $Id$
-*
-* Edt/Rev  YYYY/MM/DD  Modified by
-* Comment
-* ------------------------------------------------------------------
-
-         nam   Term
-         ttl   VTIO VDG Device Descriptor
-
-         ifp1  
-         use   defsfile
-         use   cocovtio.d
-         endc  
-
-tylg     set   Devic+Objct
-atrv     set   ReEnt+rev
-rev      set   $00
-
-* Window descriptor definitions
-szx      set   32         number of columns for display
-szy      set   16         number for rows for display
-         IFGT  Level-1
-wnum     set   0          window number
-sty      set   1          window type
-cpx      set   0          x cursor position
-cpy      set   0          y cursor position
-prn1     set   Black.     foreground color
-prn2     set   Green.     background color
-prn3     set   Black.     border color
-         ENDC
-
-         mod   eom,name,tylg,atrv,mgrnam,drvnam
-
-         fcb   UPDAT.     mode byte
-         fcb   HW.Page    extended controller address
-         fdb   A.TermV    physical controller address
-         fcb   initsize-*-1 initilization table size
-         fcb   DT.SCF     device type:0=scf,1=rbf,2=pipe,3=scf
-         fcb   $00        case:0=up&lower,1=upper only
-         fcb   $01        backspace:0=bsp,1=bsp then sp & bsp
-         fcb   $00        delete:0=bsp over line,1=return
-         fcb   $01        echo:0=no echo
-         fcb   $01        auto line feed:0=off
-         fcb   $00        end of line null count
-         fcb   $01        pause:0=no end of page pause
-         fcb   szy        lines per page
-         fcb   C$BSP      backspace character
-         fcb   C$DEL      delete line character
-         fcb   C$CR       end of record character
-         fcb   C$EOF      end of file character
-         fcb   C$RARR     reprint line character
-         fcb   C$SHRARR   duplicate last line character
-         fcb   C$PAUS     pause character
-         fcb   C$INTR     interrupt character
-         fcb   C$QUIT     quit character
-         fcb   C$BSP      backspace echo character
-         fcb   C$BELL     line overflow character (bell)
-         IFGT  Level-1
-         fcb   $01        init value for dev ctl reg
-         ELSE
-         fcb   ModCoVDG   init value for dev ctl reg
-         ENDC
-         fcb   $00        baud rate
-         fdb   name       copy of descriptor name address
-         fcb   $00        acia xon char
-         fcb   $00        acia xoff char
-         fcb   szx        (szx) number of columns for display
-         fcb   szy        (szy) number of rows for display
-         IFGT  Level-1
-         fcb   wnum       window number
-         fcb   $01        data in rest of descriptor valid
-         fcb   sty        (sty) window type
-         fcb   cpx        (cpx) x cursor position
-         fcb   cpy        (cpy) y cursor position
-         fcb   prn1       (prn1) foreground color
-         fcb   prn2       (prn2) background color
-         fcb   prn3       (prn3) border color
-         ENDC
-initsize equ   *
-
-name     fcs   /Term/
-mgrnam   fcs   /SCF/
-drvnam   fcs   /VTIO/
-
-         emod  
-eom      equ   *
-         end   
-