changeset 2624:b8c7b7fbf3c9

Major changes: o os9defs, rbfdefs, scfdefs now os9.d, rbf.d, and scf.d o vtiodefs now broken into cocovtio.d (for coco and dragon) and atarivtio.d o systype now broken into coco.d, dragon.d and atari.d o all references to the above in other files have changed
author Boisy Pitre <boisy.pitre@nuance.com>
date Fri, 24 Feb 2012 08:51:08 -0600
parents b00ba2e2f691
children d1ea3dc90082
files 3rdparty/booters/defsfile 3rdparty/drivers/burke/defsfile 3rdparty/drivers/disto/cc3disk_sc2_irq.asm 3rdparty/drivers/disto/defsfile 3rdparty/drivers/emudsk/ddh0.asm 3rdparty/drivers/emudsk/emudsk.asm 3rdparty/drivers/emudsk/h0.asm 3rdparty/drivers/emudsk/h1.asm 3rdparty/drivers/ide/defsfile 3rdparty/drivers/makefile 3rdparty/drivers/mmc/defsfile 3rdparty/drivers/s16550/defsfile 3rdparty/drivers/s16550/s16550_large.asm 3rdparty/drivers/s16550/t2_s16550.asm 3rdparty/drivers/sdisk/defsfile 3rdparty/drivers/sdisk3/defsfile 3rdparty/drivers/tccc/defsfile 3rdparty/fmgrs/msf/defsfile 3rdparty/fmgrs/msf/msfdesc.asm 3rdparty/p2mods/defsfile 3rdparty/p2mods/noice/defsfile 3rdparty/p2mods/sayhi.asm 3rdparty/p2mods/tdatmod.asm 3rdparty/p2mods/tsayhi.asm 3rdparty/packages/basic09/defsfile 3rdparty/packages/basic09/gfx2.asm 3rdparty/packages/cc/defsfile 3rdparty/packages/koronis/defsfile 3rdparty/packages/multivue/cmds_6309/defsfile 3rdparty/packages/multivue/cmds_6809/defsfile 3rdparty/packages/rof/defsfile 3rdparty/packages/sierra/blackcauldron/defsfile 3rdparty/packages/sierra/christmas86/defsfile 3rdparty/packages/sierra/goldrush/defsfile 3rdparty/packages/sierra/kingsquest1/defsfile 3rdparty/packages/sierra/kingsquest2/defsfile 3rdparty/packages/sierra/kingsquest3/defsfile 3rdparty/packages/sierra/kingsquest4/defsfile 3rdparty/packages/sierra/leisuresuitlarry/defsfile 3rdparty/packages/sierra/manhunter1/defsfile 3rdparty/packages/sierra/manhunter2/defsfile 3rdparty/packages/sierra/policequest1/defsfile 3rdparty/packages/sierra/spacequest0/defsfile 3rdparty/packages/sierra/spacequest1/defsfile 3rdparty/packages/sierra/spacequest2/defsfile 3rdparty/packages/subsim/defsfile 3rdparty/packages/uucpbb/cmds_6309/defsfile 3rdparty/packages/uucpbb/cmds_6809/defsfile 3rdparty/subrtns/defsfile 3rdparty/subrtns/hires.asm 3rdparty/subrtns/joystk.asm 3rdparty/utils/boisy/defsfile 3rdparty/utils/dasm/dasm.asm 3rdparty/utils/smartwatch/defsfile 3rdparty/utils/smartwatch/getclk.asm 3rdparty/utils/smartwatch/swset.asm 3rdparty/utils/supercomm/defsfile 3rdparty/utils/winfo/defsfile defs/atari.d defs/atarivtio.d defs/coco.d defs/cocovtio.d defs/dgndefs defs/dragon.d defs/drivewire.d defs/dwdefs.d defs/ide.d defs/os9.d defs/os9defs defs/rbf.d defs/rbfdefs defs/rbsuper.d defs/scf.d defs/scfdefs defs/scsi.d defs/systype defs/vtiodefs defs/vtiodefs_cc3 level1/atari/bootroms/makefile level1/atari/defs/defsfile.asm level1/atari/defs/makefile level1/atari/defsfile level1/atari/makefile level1/atari/modules/clock.asm level1/atari/modules/makefile level1/atari/modules/term.asm level1/atari/modules/vtio.asm level1/cmds/grfdrv.asm level1/coco/defs/defsfile.asm level1/coco/defs/makefile level1/coco/defsfile level1/d64/defs/defsfile.asm level1/d64/defs/makefile level1/d64/defsfile level1/dalpha/defs/defsfile.asm level1/dalpha/defs/makefile level1/dalpha/defsfile level1/makefile level1/modules/boot_dw3.asm level1/modules/clock.asm level1/modules/cohr.asm level1/modules/covdg.asm level1/modules/dw3.asm level1/modules/init.asm level1/modules/kernel/krn.asm level1/modules/rbdw3.asm level1/modules/rfm.asm level1/modules/scdwn.asm level1/modules/scdwp.asm level1/modules/scf.asm level1/modules/term32.asm level1/modules/term51.asm level1/modules/term80.asm level1/modules/vtio.asm level1/modules/wbug.asm level1/tano/defs/defsfile.asm level1/tano/defs/makefile level1/tano/defsfile level1/tano/modules/makefile level2/cmds/grfdrv.asm level2/coco3/defs/Defsfile level2/coco3/defs/makefile level2/coco3/defsfile level2/coco3_6309/defs/Defsfile level2/coco3_6309/defs/makefile level2/coco3_6309/defsfile level2/defs/makefile level2/modules/covdg.asm level2/modules/cowin.asm level2/modules/joydrv_joy.asm level2/modules/kernel/krnp2.asm level2/modules/keydrv_cc3.asm level2/modules/snddrv_cc3.asm level2/modules/term_vdg.asm level2/modules/term_win40.asm level2/modules/term_win80.asm level2/modules/v1.asm level2/modules/v2.asm level2/modules/v3.asm level2/modules/v4.asm level2/modules/v5.asm level2/modules/v6.asm level2/modules/v7.asm level2/modules/vi.asm level2/modules/vtio.asm level2/modules/w.asm level2/modules/w1.asm level2/modules/w10.asm level2/modules/w11.asm level2/modules/w12.asm level2/modules/w13.asm level2/modules/w14.asm level2/modules/w15.asm level2/modules/w2.asm level2/modules/w3.asm level2/modules/w4.asm level2/modules/w5.asm level2/modules/w6.asm level2/modules/w7.asm level2/modules/w8.asm level2/modules/w9.asm level3/coco3/defsfile level3/coco3_6309/defsfile
diffstat 163 files changed, 3772 insertions(+), 3664 deletions(-) [+]
line wrap: on
line diff
--- a/3rdparty/booters/defsfile	Fri Feb 24 06:41:48 2012 -0600
+++ b/3rdparty/booters/defsfile	Fri Feb 24 08:51:08 2012 -0600
@@ -1,4 +1,2 @@
-	use	os9defs
-	use	systype
-        use     scfdefs
-	use	rbfdefs
+	use	os9.d
+	use	rbf.d
--- a/3rdparty/drivers/burke/defsfile	Fri Feb 24 06:41:48 2012 -0600
+++ b/3rdparty/drivers/burke/defsfile	Fri Feb 24 08:51:08 2012 -0600
@@ -1,3 +1,3 @@
 Level	equ	2
-	use	os9defs
-	use	rbfdefs
+	use	os9.d
+	use	rbf.d
--- a/3rdparty/drivers/disto/cc3disk_sc2_irq.asm	Fri Feb 24 06:41:48 2012 -0600
+++ b/3rdparty/drivers/disto/cc3disk_sc2_irq.asm	Fri Feb 24 08:51:08 2012 -0600
@@ -24,8 +24,9 @@
 nh_data  equ   nh_base+2
 
          ifp1
-         use   os9defs
+         use   defsfile
          endc
+
 tylg     set   Drivr+Objct   
 atrv     set   ReEnt+rev
 rev      set   $02
--- a/3rdparty/drivers/disto/defsfile	Fri Feb 24 06:41:48 2012 -0600
+++ b/3rdparty/drivers/disto/defsfile	Fri Feb 24 08:51:08 2012 -0600
@@ -1,4 +1,4 @@
-	use	os9defs
-	use	scfdefs
-        use     rbfdefs
-        use     systype
+	use	os9.d
+	use	scf.d
+        use     rbf.d
+	use     coco.d
--- a/3rdparty/drivers/emudsk/ddh0.asm	Fri Feb 24 06:41:48 2012 -0600
+++ b/3rdparty/drivers/emudsk/ddh0.asm	Fri Feb 24 08:51:08 2012 -0600
@@ -10,7 +10,7 @@
 *        Address not used by driver but still ....
 
  IFP1
- USE os9defs
+ USE os9.d
  ENDC
 
 type SET Devic+Objct
--- a/3rdparty/drivers/emudsk/emudsk.asm	Fri Feb 24 06:41:48 2012 -0600
+++ b/3rdparty/drivers/emudsk/emudsk.asm	Fri Feb 24 08:51:08 2012 -0600
@@ -65,8 +65,8 @@
          ttl   os9 device driver    
 
          ifp1
-         use   os9defs
-         use   rbfdefs
+         use   os9.d
+         use   rbf.d
          endc
 
 tylg     set   Drivr+Objct   
--- a/3rdparty/drivers/emudsk/h0.asm	Fri Feb 24 06:41:48 2012 -0600
+++ b/3rdparty/drivers/emudsk/h0.asm	Fri Feb 24 08:51:08 2012 -0600
@@ -10,7 +10,7 @@
 *        Address not used by driver but still ....
 
  IFP1
- USE os9defs
+ USE os9.d
  ENDC
 
 type SET Devic+Objct
--- a/3rdparty/drivers/emudsk/h1.asm	Fri Feb 24 06:41:48 2012 -0600
+++ b/3rdparty/drivers/emudsk/h1.asm	Fri Feb 24 08:51:08 2012 -0600
@@ -10,7 +10,7 @@
 *        Address not used by driver but still ....
 
  IFP1
- USE os9defs
+ USE os9.d
  ENDC
 
 type SET Devic+Objct
--- a/3rdparty/drivers/ide/defsfile	Fri Feb 24 06:41:48 2012 -0600
+++ b/3rdparty/drivers/ide/defsfile	Fri Feb 24 08:51:08 2012 -0600
@@ -1,4 +1,3 @@
-    use os9defs
-    use rbfdefs
-    use systype
-
+    use os9.d
+    use rbf.d
+    use coco.d
--- a/3rdparty/drivers/makefile	Fri Feb 24 06:41:48 2012 -0600
+++ b/3rdparty/drivers/makefile	Fri Feb 24 08:51:08 2012 -0600
@@ -1,6 +1,6 @@
 include ../../rules.mak
 
-dirs	= burke disto emudsk ide s16550 sdisk sdisk3 tccc
+dirs	= burke disto emudsk ide mmc s16550 sdisk sdisk3 tccc
 
 # Make all components
 all:
--- a/3rdparty/drivers/mmc/defsfile	Fri Feb 24 06:41:48 2012 -0600
+++ b/3rdparty/drivers/mmc/defsfile	Fri Feb 24 08:51:08 2012 -0600
@@ -1,4 +1,3 @@
-    use os9defs
-    use rbfdefs
-    use systype
-
+    use os9.d
+    use rbf.d
+    use coco.d
--- a/3rdparty/drivers/s16550/defsfile	Fri Feb 24 06:41:48 2012 -0600
+++ b/3rdparty/drivers/s16550/defsfile	Fri Feb 24 08:51:08 2012 -0600
@@ -1,2 +1,3 @@
 Level  equ 2
-       use os9defs
+       use os9.d
+       use scf.d
--- a/3rdparty/drivers/s16550/s16550_large.asm	Fri Feb 24 06:41:48 2012 -0600
+++ b/3rdparty/drivers/s16550/s16550_large.asm	Fri Feb 24 08:51:08 2012 -0600
@@ -15,7 +15,6 @@
 
          ifp1
          use   defsfile
-         use   scfdefs
          endc
 
 tylg     set   Drivr+Objct   
--- a/3rdparty/drivers/s16550/t2_s16550.asm	Fri Feb 24 06:41:48 2012 -0600
+++ b/3rdparty/drivers/s16550/t2_s16550.asm	Fri Feb 24 08:51:08 2012 -0600
@@ -5,7 +5,6 @@
 
          ifp1  
          use   defsfile
-         use   scfdefs
          endc  
 
 tylg     set   Devic+Objct
--- a/3rdparty/drivers/sdisk/defsfile	Fri Feb 24 06:41:48 2012 -0600
+++ b/3rdparty/drivers/sdisk/defsfile	Fri Feb 24 08:51:08 2012 -0600
@@ -1,5 +1,5 @@
 Level   equ 1
-	use os9defs
-        use systype
-        use scfdefs
-        use rbfdefs
+	use os9.d
+	use scf.d
+	use rbf.d
+        use coco.d
--- a/3rdparty/drivers/sdisk3/defsfile	Fri Feb 24 06:41:48 2012 -0600
+++ b/3rdparty/drivers/sdisk3/defsfile	Fri Feb 24 08:51:08 2012 -0600
@@ -1,5 +1,5 @@
 Level   equ 2
 
-	use os9defs
-        use rbfdefs
-        use systype
+	use os9.d
+        use rbf.d
+        use coco.d
--- a/3rdparty/drivers/tccc/defsfile	Fri Feb 24 06:41:48 2012 -0600
+++ b/3rdparty/drivers/tccc/defsfile	Fri Feb 24 08:51:08 2012 -0600
@@ -1,4 +1,4 @@
 Level	equ	2
-	use	os9defs
-        use     rbfdefs
-        use     systype
+	use	os9.d
+        use     rbf.d
+        use     coco.d
--- a/3rdparty/fmgrs/msf/defsfile	Fri Feb 24 06:41:48 2012 -0600
+++ b/3rdparty/fmgrs/msf/defsfile	Fri Feb 24 08:51:08 2012 -0600
@@ -1,6 +1,6 @@
 Level equ 2
 
- use os9defs
- use systype
- use rbfdefs
+ use os9.d
+ use rbf.d
+ use coco.d
  use msfdefs
--- a/3rdparty/fmgrs/msf/msfdesc.asm	Fri Feb 24 06:41:48 2012 -0600
+++ b/3rdparty/fmgrs/msf/msfdesc.asm	Fri Feb 24 08:51:08 2012 -0600
@@ -1,8 +1,6 @@
          IFP1            
 Level    set   2         
-         use   os9defs   
-         use   rbfdefs   
-         use   msfdefs   
+         use   defsfile   
          ENDC            
 
 **************************************************************
--- a/3rdparty/p2mods/defsfile	Fri Feb 24 06:41:48 2012 -0600
+++ b/3rdparty/p2mods/defsfile	Fri Feb 24 08:51:08 2012 -0600
@@ -2,5 +2,5 @@
 Level   equ     2
         ENDC
 
-	use	os9defs
-        use     systype
+	use	os9.d
+        use     coco.d
--- a/3rdparty/p2mods/noice/defsfile	Fri Feb 24 06:41:48 2012 -0600
+++ b/3rdparty/p2mods/noice/defsfile	Fri Feb 24 08:51:08 2012 -0600
@@ -1,3 +1,3 @@
- use os9defs
- use scfdefs
- use systype
+ use os9.d
+ use scf.d
+ use coco.d
--- a/3rdparty/p2mods/sayhi.asm	Fri Feb 24 06:41:48 2012 -0600
+++ b/3rdparty/p2mods/sayhi.asm	Fri Feb 24 08:51:08 2012 -0600
@@ -1,5 +1,5 @@
          ifp1
-         use   os9defs
+         use   defsfile
          endc
 
 Type     set   Prgrm+Objct
--- a/3rdparty/p2mods/tdatmod.asm	Fri Feb 24 06:41:48 2012 -0600
+++ b/3rdparty/p2mods/tdatmod.asm	Fri Feb 24 08:51:08 2012 -0600
@@ -1,5 +1,5 @@
          ifp1
-         use   os9defs
+         use   defsfile
          endc
 
 F$DatMod equ   $25
--- a/3rdparty/p2mods/tsayhi.asm	Fri Feb 24 06:41:48 2012 -0600
+++ b/3rdparty/p2mods/tsayhi.asm	Fri Feb 24 08:51:08 2012 -0600
@@ -1,5 +1,5 @@
          ifp1
-         use   os9defs
+         use   defsfile
          endc
 
 Type     set   Prgrm+Objct
--- a/3rdparty/packages/basic09/defsfile	Fri Feb 24 06:41:48 2012 -0600
+++ b/3rdparty/packages/basic09/defsfile	Fri Feb 24 08:51:08 2012 -0600
@@ -1,2 +1,2 @@
-         use   os9defs   
-         use   scfdefs   
+         use   os9.d   
+         use   scf.d   
--- a/3rdparty/packages/basic09/gfx2.asm	Fri Feb 24 06:41:48 2012 -0600
+++ b/3rdparty/packages/basic09/gfx2.asm	Fri Feb 24 08:51:08 2012 -0600
@@ -15,7 +15,7 @@
 * Disassembled 02/07/06 13:10:09 by Disasm v1.6 (C) 1988 by RML
 
          ifp1
-         use   os9defs
+         use   os9.d
          endc
 
 tylg     set   Sbrtn+Objct   
--- a/3rdparty/packages/cc/defsfile	Fri Feb 24 06:41:48 2012 -0600
+++ b/3rdparty/packages/cc/defsfile	Fri Feb 24 08:51:08 2012 -0600
@@ -1,2 +1,2 @@
-          use    os9defs
-          use    scfdefs
+          use    os9.d
+          use    scf.d
--- a/3rdparty/packages/koronis/defsfile	Fri Feb 24 06:41:48 2012 -0600
+++ b/3rdparty/packages/koronis/defsfile	Fri Feb 24 08:51:08 2012 -0600
@@ -1,3 +1,3 @@
 Level    equ   2
-         use   os9defs   
-         use   scfdefs   
+         use   os9.d   
+         use   scf.d   
--- a/3rdparty/packages/multivue/cmds_6309/defsfile	Fri Feb 24 06:41:48 2012 -0600
+++ b/3rdparty/packages/multivue/cmds_6309/defsfile	Fri Feb 24 08:51:08 2012 -0600
@@ -1,5 +1,5 @@
 H6309    equ   1
 Level    equ   2
-         use   os9defs   
-         use   scfdefs   
-         use   rbfdefs   
+         use   os9.d   
+         use   scf.d   
+         use   rbf.d   
--- a/3rdparty/packages/multivue/cmds_6809/defsfile	Fri Feb 24 06:41:48 2012 -0600
+++ b/3rdparty/packages/multivue/cmds_6809/defsfile	Fri Feb 24 08:51:08 2012 -0600
@@ -1,4 +1,4 @@
 Level    equ   2
-         use   os9defs   
-         use   scfdefs   
-         use   rbfdefs   
+         use   os9.d   
+         use   scf.d   
+         use   rbf.d   
--- a/3rdparty/packages/rof/defsfile	Fri Feb 24 06:41:48 2012 -0600
+++ b/3rdparty/packages/rof/defsfile	Fri Feb 24 08:51:08 2012 -0600
@@ -1,4 +1,4 @@
 Level   equ 2
 
-	use os9defs
-	use scfdefs
+	use os9.d
+	use scf.d
--- a/3rdparty/packages/sierra/blackcauldron/defsfile	Fri Feb 24 06:41:48 2012 -0600
+++ b/3rdparty/packages/sierra/blackcauldron/defsfile	Fri Feb 24 08:51:08 2012 -0600
@@ -1,6 +1,6 @@
 Level	equ	2
 
-	use	os9defs
-	use	scfdefs
-        use     systype
-        use     vtiodefs_cc3
+	use	os9.d
+	use	scf.d
+        use     coco.d
+        use     cocovtio.d
--- a/3rdparty/packages/sierra/christmas86/defsfile	Fri Feb 24 06:41:48 2012 -0600
+++ b/3rdparty/packages/sierra/christmas86/defsfile	Fri Feb 24 08:51:08 2012 -0600
@@ -1,6 +1,6 @@
 Level	equ	2
 
-	use	os9defs
-	use	scfdefs
-        use     systype
-        use     vtiodefs_cc3
+	use	os9.d
+	use	scf.d
+        use     coco.d
+        use     cocovtio.d
--- a/3rdparty/packages/sierra/goldrush/defsfile	Fri Feb 24 06:41:48 2012 -0600
+++ b/3rdparty/packages/sierra/goldrush/defsfile	Fri Feb 24 08:51:08 2012 -0600
@@ -1,6 +1,6 @@
 Level	equ	2
 
-	use	os9defs
-	use	scfdefs
-        use     systype
-        use     vtiodefs_cc3
+	use	os9.d
+	use	scf.d
+        use     coco.d
+        use     cocovtio.d
--- a/3rdparty/packages/sierra/kingsquest1/defsfile	Fri Feb 24 06:41:48 2012 -0600
+++ b/3rdparty/packages/sierra/kingsquest1/defsfile	Fri Feb 24 08:51:08 2012 -0600
@@ -1,6 +1,6 @@
 Level	equ	2
 
-	use	os9defs
-	use	scfdefs
-        use     systype
-        use     vtiodefs_cc3
+	use	os9.d
+	use	scf.d
+        use     coco.d
+        use     cocovtio.d
--- a/3rdparty/packages/sierra/kingsquest2/defsfile	Fri Feb 24 06:41:48 2012 -0600
+++ b/3rdparty/packages/sierra/kingsquest2/defsfile	Fri Feb 24 08:51:08 2012 -0600
@@ -1,6 +1,6 @@
 Level	equ	2
 
-	use	os9defs
-	use	scfdefs
-        use     systype
-        use     vtiodefs_cc3
+	use	os9.d
+	use	scf.d
+        use     coco.d
+        use     cocovtio.d
--- a/3rdparty/packages/sierra/kingsquest3/defsfile	Fri Feb 24 06:41:48 2012 -0600
+++ b/3rdparty/packages/sierra/kingsquest3/defsfile	Fri Feb 24 08:51:08 2012 -0600
@@ -1,6 +1,6 @@
 Level	equ	2
 
-	use	os9defs
-	use	scfdefs
-        use     systype
-        use     vtiodefs_cc3
+	use	os9.d
+	use	scf.d
+        use     coco.d
+        use     cocovtio.d
--- a/3rdparty/packages/sierra/kingsquest4/defsfile	Fri Feb 24 06:41:48 2012 -0600
+++ b/3rdparty/packages/sierra/kingsquest4/defsfile	Fri Feb 24 08:51:08 2012 -0600
@@ -1,6 +1,6 @@
 Level	equ	2
 
-	use	os9defs
-	use	scfdefs
-        use     systype
-        use     vtiodefs_cc3
+	use	os9.d
+	use	scf.d
+        use     coco.d
+        use     cocovtio.d
--- a/3rdparty/packages/sierra/leisuresuitlarry/defsfile	Fri Feb 24 06:41:48 2012 -0600
+++ b/3rdparty/packages/sierra/leisuresuitlarry/defsfile	Fri Feb 24 08:51:08 2012 -0600
@@ -1,5 +1,6 @@
 Level	equ	2
 
-	use	os9defs
-	use	scfdefs
-        use     vtiodefs_cc3
+	use	os9.d
+	use	scf.d
+        use     coco.d
+        use     cocovtio.d
--- a/3rdparty/packages/sierra/manhunter1/defsfile	Fri Feb 24 06:41:48 2012 -0600
+++ b/3rdparty/packages/sierra/manhunter1/defsfile	Fri Feb 24 08:51:08 2012 -0600
@@ -1,6 +1,6 @@
 Level	equ	2
 
-	use	os9defs
-	use	scfdefs
-        use     systype
-        use     vtiodefs_cc3
+	use	os9.d
+	use	scf.d
+        use     coco.d
+        use     cocovtio.d
--- a/3rdparty/packages/sierra/manhunter2/defsfile	Fri Feb 24 06:41:48 2012 -0600
+++ b/3rdparty/packages/sierra/manhunter2/defsfile	Fri Feb 24 08:51:08 2012 -0600
@@ -1,6 +1,6 @@
 Level	equ	2
 
-	use	os9defs
-	use	scfdefs
-        use     systype
-        use     vtiodefs_cc3
+	use	os9.d
+	use	scf.d
+        use     coco.d
+        use     cocovtio.d
--- a/3rdparty/packages/sierra/policequest1/defsfile	Fri Feb 24 06:41:48 2012 -0600
+++ b/3rdparty/packages/sierra/policequest1/defsfile	Fri Feb 24 08:51:08 2012 -0600
@@ -1,6 +1,6 @@
 Level	equ	2
 
-	use	os9defs
-	use	scfdefs
-        use     systype
-        use     vtiodefs_cc3
+	use	os9.d
+	use	scf.d
+        use     coco.d
+        use     cocovtio.d
--- a/3rdparty/packages/sierra/spacequest0/defsfile	Fri Feb 24 06:41:48 2012 -0600
+++ b/3rdparty/packages/sierra/spacequest0/defsfile	Fri Feb 24 08:51:08 2012 -0600
@@ -1,6 +1,6 @@
 Level	equ	2
 
-	use	os9defs
-	use	scfdefs
-        use     systype
-        use     vtiodefs_cc3
+	use	os9.d
+	use	scf.d
+        use     coco.d
+        use     cocovtio.d
--- a/3rdparty/packages/sierra/spacequest1/defsfile	Fri Feb 24 06:41:48 2012 -0600
+++ b/3rdparty/packages/sierra/spacequest1/defsfile	Fri Feb 24 08:51:08 2012 -0600
@@ -1,6 +1,6 @@
 Level	equ	2
 
-	use	os9defs
-	use	scfdefs
-        use     systype
-        use     vtiodefs_cc3
+	use	os9.d
+	use	scf.d
+        use     coco.d
+        use     cocovtio.d
--- a/3rdparty/packages/sierra/spacequest2/defsfile	Fri Feb 24 06:41:48 2012 -0600
+++ b/3rdparty/packages/sierra/spacequest2/defsfile	Fri Feb 24 08:51:08 2012 -0600
@@ -1,6 +1,6 @@
 Level	equ	2
 
-	use	os9defs
-	use	scfdefs
-        use     systype
-        use     vtiodefs_cc3
+	use	os9.d
+	use	scf.d
+        use     coco.d
+        use     cocovtio.d
--- a/3rdparty/packages/subsim/defsfile	Fri Feb 24 06:41:48 2012 -0600
+++ b/3rdparty/packages/subsim/defsfile	Fri Feb 24 08:51:08 2012 -0600
@@ -1,3 +1,3 @@
 Level   equ   2
-        use   os9defs   
-        use   scfdefs   
+        use   os9.d   
+        use   scf.d   
--- a/3rdparty/packages/uucpbb/cmds_6309/defsfile	Fri Feb 24 06:41:48 2012 -0600
+++ b/3rdparty/packages/uucpbb/cmds_6309/defsfile	Fri Feb 24 08:51:08 2012 -0600
@@ -1,5 +1,5 @@
 Level	equ	2
 
-	use	os9defs
-	use	scfdefs
-        use     systype
+	use	os9.d
+	use	scf.d
+        use     coco.d
--- a/3rdparty/packages/uucpbb/cmds_6809/defsfile	Fri Feb 24 06:41:48 2012 -0600
+++ b/3rdparty/packages/uucpbb/cmds_6809/defsfile	Fri Feb 24 08:51:08 2012 -0600
@@ -1,5 +1,5 @@
 Level	equ	2
 
-	use	os9defs
-	use	scfdefs
-        use     systype
+	use	os9.d
+	use	scf.d
+        use     coco.d
--- a/3rdparty/subrtns/defsfile	Fri Feb 24 06:41:48 2012 -0600
+++ b/3rdparty/subrtns/defsfile	Fri Feb 24 08:51:08 2012 -0600
@@ -1,1 +1,1 @@
-    use   os9defs
+    use   os9.d
--- a/3rdparty/subrtns/hires.asm	Fri Feb 24 06:41:48 2012 -0600
+++ b/3rdparty/subrtns/hires.asm	Fri Feb 24 08:51:08 2012 -0600
@@ -11,7 +11,7 @@
          ttl   HiRes Joystick Subroutine Module
 
          ifp1  
-         use   os9defs
+         use   defsfile
          endc  
 
 edition  set   1
--- a/3rdparty/subrtns/joystk.asm	Fri Feb 24 06:41:48 2012 -0600
+++ b/3rdparty/subrtns/joystk.asm	Fri Feb 24 08:51:08 2012 -0600
@@ -11,7 +11,7 @@
          ttl   Joystick Subroutine Module
 
          ifp1  
-         use   os9defs
+         use   defsfile
          endc  
 
 edition  set   1
--- a/3rdparty/utils/boisy/defsfile	Fri Feb 24 06:41:48 2012 -0600
+++ b/3rdparty/utils/boisy/defsfile	Fri Feb 24 08:51:08 2012 -0600
@@ -1,2 +1,2 @@
-	use	os9defs
-	use	scfdefs
+	use	os9.d
+	use	scf.d
--- a/3rdparty/utils/dasm/dasm.asm	Fri Feb 24 06:41:48 2012 -0600
+++ b/3rdparty/utils/dasm/dasm.asm	Fri Feb 24 08:51:08 2012 -0600
@@ -4,7 +4,7 @@
 *****************************
 
          ifp1
-         use  os9defs
+         use  os9.d
          endc
 
 begin    mod  len,name,prgrm+objct,reent+1,entry,dsize
--- a/3rdparty/utils/smartwatch/defsfile	Fri Feb 24 06:41:48 2012 -0600
+++ b/3rdparty/utils/smartwatch/defsfile	Fri Feb 24 08:51:08 2012 -0600
@@ -1,3 +1,4 @@
 Level   equ     2
-	use	os9defs
-        use     scfdefs
+	use	os9.d
+        use     scf.d
+	use     coco.d
--- a/3rdparty/utils/smartwatch/getclk.asm	Fri Feb 24 06:41:48 2012 -0600
+++ b/3rdparty/utils/smartwatch/getclk.asm	Fri Feb 24 08:51:08 2012 -0600
@@ -3,9 +3,8 @@
 
 * Disassembled 98/06/01 09:08:21 by Disasm v1.5 (C) 1988 by RML
 
-Level    equ   2
          ifp1
-         use   os9defs
+         use   defsfile
          endc
 
 * MPI slot selection code
--- a/3rdparty/utils/smartwatch/swset.asm	Fri Feb 24 06:41:48 2012 -0600
+++ b/3rdparty/utils/smartwatch/swset.asm	Fri Feb 24 08:51:08 2012 -0600
@@ -21,7 +21,6 @@
 
          ifp1  
          use   defsfile
-         use   systype
          endc  
 
 type     set   prgrm+objct
--- a/3rdparty/utils/supercomm/defsfile	Fri Feb 24 06:41:48 2012 -0600
+++ b/3rdparty/utils/supercomm/defsfile	Fri Feb 24 08:51:08 2012 -0600
@@ -1,4 +1,4 @@
 Level	equ	2
-	use	os9defs
-	use	scfdefs
-	use	systype
+	use	os9.d
+	use	scf.d
+	use	coco.d
--- a/3rdparty/utils/winfo/defsfile	Fri Feb 24 06:41:48 2012 -0600
+++ b/3rdparty/utils/winfo/defsfile	Fri Feb 24 08:51:08 2012 -0600
@@ -1,3 +1,3 @@
 Level	equ	2
-	use	os9defs
-	use	scfdefs
+	use	os9.d
+	use	scf.d
--- a/defs/atari.d	Fri Feb 24 06:41:48 2012 -0600
+++ b/defs/atari.d	Fri Feb 24 08:51:08 2012 -0600
@@ -1,6 +1,5 @@
-          IFNE      ATARIDEFS-1
-
-ATARIDEFS SET       1
+          IFNE      ATARI.D-1
+ATARI.D   SET       1
 
 ********************************************************************
 * AtariDefs - NitrOS-9 System Definitions for the Atari XE/XL
@@ -18,6 +17,33 @@
 
 
 
+**********************************
+* Power Line Frequency Definitions
+*
+Hz50           EQU       1                   Assemble clock for 50 hz power
+Hz60           EQU       2                   Assemble clock for 60 hz power
+PwrLnFrq       SET       Hz60                Set to Appropriate freq
+
+
+**********************************
+* Ticks per second
+*
+               IFEQ      PwrLnFrq-Hz50
+TkPerSec       SET       50
+               ELSE      
+TkPerSec       SET       60
+               ENDC      
+
+
+*************************************************
+*
+* NitrOS-9 Level 1 Section
+*
+*************************************************
+
+HW.Page        SET       $FF                 Device descriptor hardware page
+
+
 ********************************************************************
 * NitrOS-9 Memory Definitions for the Atari XE/XL
 *
@@ -45,8 +71,6 @@
 D.IRQENShdw    EQU       D.WDBtDr
 
 
-
-
 ********************************************************************
 * Atari XE/XL Hardware Definitions
 *
@@ -207,26 +231,4 @@
 NMIRES	EQU	$D40F	;NMI interrupt status reset
 
 
-
-********************************************************************
-* VTIO Defs for the Atari XE/XL
-* Everything that the VTIO driver needs is defined here, including
-* static memory definitions
-
-* Constant Definitions
-KBufSz    EQU       8                   circular buffer size
-
-
-* Driver Static Memory
-          ORG       V.SCF
-V.CurRow  RMB       1
-V.CurCol  RMB       1
-V.CurChr  RMB       1                   character under the cursor
-V.KySns   RMB       1                   key sense flags
-V.IBufH   RMB       1                   input buffer head
-V.IBufT   RMB       1                   input buffer tail
-V.InBuf   RMB       KBufSz              input buffer
-          RMB       250-.
-V.Last    EQU       .
-
           ENDC
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/defs/atarivtio.d	Fri Feb 24 08:51:08 2012 -0600
@@ -0,0 +1,25 @@
+              IFNE      ATARIVTIO.D-1
+ATARIVTIO.D   SET       1
+
+********************************************************************
+* VTIO Defs for the Atari XE/XL
+* Everything that the VTIO driver needs is defined here, including
+* static memory definitions
+
+* Constant Definitions
+KBufSz    EQU       8                   circular buffer size
+
+
+* Driver Static Memory
+          ORG       V.SCF
+V.CurRow  RMB       1
+V.CurCol  RMB       1
+V.CurChr  RMB       1                   character under the cursor
+V.KySns   RMB       1                   key sense flags
+V.IBufH   RMB       1                   input buffer head
+V.IBufT   RMB       1                   input buffer tail
+V.InBuf   RMB       KBufSz              input buffer
+          RMB       250-.
+V.Last    EQU       .
+
+          ENDC
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/defs/coco.d	Fri Feb 24 08:51:08 2012 -0600
@@ -0,0 +1,209 @@
+               IFNE      COCO.D-1
+COCO.D         SET       1
+
+********************************************************************
+* CoCoDefs - NitrOS-9 System Definitions for the Tandy Color Computer
+*
+* $Id$
+*
+* Edt/Rev  YYYY/MM/DD  Modified by
+* Comment
+* ------------------------------------------------------------------
+*          1998/10/13  Boisy G. Pitre
+* Added defs by Bruce Isted from his Eliminator archive.
+*
+*          1998/10/31  Boisy G. Pitre
+* Merged cc3global.defs into this file.
+*
+*          2002/04/30  Boisy G. Pitre
+* Merged Level One and Level Two sysdefs.
+*
+*          2002/06/22  Boisy G. Pitre
+* Removed PIA.U4 and PIA.U8, improved comments
+*
+*          2003/11/05  Robert Gault
+* Made changes in window globals and grfdrv memory to handle regW
+* in 6809 systems.
+*
+*          2003/11/30  Boisy G. Pitre
+* Statics now are prefaced with V. to identify them easier in source.
+*
+*          2004/07/18  Boisy G. Pitre
+* Moved CoCo 3 Window stuff into cc3iodefs
+*
+*          2012/02/24  Boisy G. Pitre
+* Consolidated all CoCo-specific defs files into here.
+
+               NAM       CoCoDefs
+               IFEQ      Level-1
+               TTL       NitrOS-9 System Definitions for the Tandy Color Computer
+               ELSE      
+               IFEQ      Level-2
+               TTL       NitrOS-9 Level 2 System Type Definitions
+               ELSE      
+               IFEQ      Level-3
+               TTL       NitrOS-9 Level 3 System Type Definitions
+               ENDC      
+               ENDC      
+               ENDC      
+
+
+**********************
+* CPU Type Definitions
+*
+Color          SET       1
+Color3         SET       2
+               IFEQ      Level-1
+CPUType        SET       Color
+               ELSE      
+CPUType        SET       Color3
+               ENDC      
+
+
+******************************
+* Clock Speed Type Definitions
+*
+OneMHz         EQU       1
+TwoMHz         EQU       2
+               IFEQ      CPUType-Color
+CPUSpeed       SET       OneMHz
+               ELSE      
+CPUSpeed       SET       TwoMHz
+               ENDC      
+
+
+**********************************
+* Power Line Frequency Definitions
+*
+Hz50           EQU       1                   Assemble clock for 50 hz power
+Hz60           EQU       2                   Assemble clock for 60 hz power
+PwrLnFrq       SET       Hz60                Set to Appropriate freq
+
+
+**********************************
+* Ticks per second
+*
+               IFEQ      PwrLnFrq-Hz50
+TkPerSec       SET       50
+               ELSE      
+TkPerSec       SET       60
+               ENDC      
+
+
+******************
+* ACIA type set up
+*
+               ORG       1
+ACIA6850       RMB       1                   MC6850 acia.
+ACIA6551       RMB       1                   SY6551 acia.
+ACIA2661       RMB       1                   SC2661 acia.
+ACIATYPE       SET       ACIA6551
+
+
+****************************************
+* Special character Bit position equates
+*
+SHIFTBIT       EQU       %00000001
+CNTRLBIT       EQU       %00000010
+ALTERBIT       EQU       %00000100
+UPBIT          EQU       %00001000
+DOWNBIT        EQU       %00010000
+LEFTBIT        EQU       %00100000
+RIGHTBIT       EQU       %01000000
+SPACEBIT       EQU       %10000000
+
+
+******************
+* Device addresses for miscellaneous hardware
+*
+A.AciaP        SET       $FF68               Aciapak Address
+A.ModP         SET       $FF6C               ModPak Address
+DPort          SET       $FF40               Disk controller base address
+MPI.Slct       SET       $FF7F               Multi-Pak slot select
+MPI.Slot       SET       $03                 Multi-Pak default slot
+PIA0Base       EQU       $FF00
+PIA1Base       EQU       $FF20
+
+
+******************
+* 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
+
+
+               IFEQ      Level-1
+
+*************************************************
+*
+* NitrOS-9 Level 1 Section
+*
+*************************************************
+
+HW.Page        SET       $FF                 Device descriptor hardware page
+
+               ELSE      
+
+*************************************************
+*
+* NitrOS-9 Level 2 Section
+*
+*************************************************
+
+****************************************
+* Dynamic Address Translator Definitions
+*
+DAT.BlCt       EQU       8                   D.A.T. blocks/address space
+DAT.BlSz       EQU       (256/DAT.BlCt)*256  D.A.T. block size
+DAT.ImSz       EQU       DAT.BlCt*2          D.A.T. Image size
+DAT.Addr       EQU       -(DAT.BlSz/256)     D.A.T. MSB Address bits
+DAT.Task       EQU       $FF91               Task Register address
+DAT.TkCt       EQU       32                  Number of DAT Tasks
+DAT.Regs       EQU       $FFA0               DAT Block Registers base address
+DAT.Free       EQU       $333E               Free Block Number
+DAT.BlMx       EQU       $3F                 Maximum Block number
+DAT.BMSz       EQU       $40                 Memory Block Map size
+DAT.WrPr       EQU       0                   no write protect
+DAT.WrEn       EQU       0                   no write enable
+SysTask        EQU       0                   Coco System Task number
+IOBlock        EQU       $3F
+ROMBlock       EQU       $3F
+IOAddr         EQU       $7F
+ROMCount       EQU       1                   number of blocks of ROM (High RAM Block)
+RAMCount       EQU       1                   initial blocks of RAM
+MoveBlks       EQU       DAT.BlCt-ROMCount-2 Block numbers used for copies
+BlockTyp       EQU       1                   chk only first bytes of RAM block
+ByteType       EQU       2                   chk entire block of RAM
+Limited        EQU       1                   chk only upper memory for ROM modules
+UnLimitd       EQU       2                   chk all NotRAM for modules
+* NOTE: this check assumes any NotRAM with a module will
+*       always start with $87CD in first two bytes of block
+RAMCheck       EQU       BlockTyp            chk only beg bytes of block
+ROMCheck       EQU       Limited             chk only upper few blocks for ROM
+LastRAM        EQU       IOBlock             maximum RAM block number
+
+***************************
+* Color Computer 3 Specific
+*
+MappedIO       EQU       true                (Actually False but it works better this way)
+
+********************
+* Hardware addresses
+*
+GIMERegs       EQU       $FF00               Base address of GIME registers
+IrqEnR         EQU       $FF92               GIME IRQ enable/status register
+BordReg        EQU       $FF9A               Border color register
+PalAdr         EQU       $FFB0               Palette registers
+
+HW.Page        SET       $07                 Device descriptor hardware page
+
+               ENDC
+               
+               ENDC      
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/defs/cocovtio.d	Fri Feb 24 08:51:08 2012 -0600
@@ -0,0 +1,906 @@
+               IFNE      COCOVTIO.D-1
+COCOVTIO.D     SET       1
+
+               IFEQ      Level-1
+
+********************************************************************
+* VTIODefs - Video Terminal I/O Definitions for CoCo 1/2
+*
+* $Id$
+*
+* Edt/Rev  YYYY/MM/DD  Modified by
+* Comment
+* ------------------------------------------------------------------
+*          2004/11/29  P.Harvey-Smith.
+* Added symbolic defines for bits in V.CoLoad.
+*
+*          2004/12/02  P.Harvey-Smith.
+* Moved over all variables from co51.asm
+*
+*          2005/04/09  P.Harvey-Smith.
+* Decoded rest of the CoHR memory locations.
+*
+*	       2005/04/24  P.Harvey-Smith.
+* Added variables for cursor flash, currently only implemented in co51
+*
+               NAM       VTIODefs  
+               TTL       Video Terminal I/O Definitions for CoCo 1/2
+
+********************
+* VTIO Static Memory
+*
+               ORG       V.SCF
+V.ScrnA        RMB       2                   (2) screen start address in system memory
+V.ScrnE        RMB       2                   (2) address of end of screen
+V.CrsrA        RMB       1                   (2) cursor address
+V.CrsAL        RMB       1                   cursor address low
+V.CChar        RMB       1                   value of character under cursor
+V.Mode         RMB       1                   mode: 0=256x192 x2, 1=128x192 x4
+V.NGChr        RMB       1                   number of additional characters to get
+V.RTAdd        RMB       2                   (2) return address after getting characters
+V.NChar        RMB       1                   character to process
+V.NChr2        RMB       1                   and the next one
+               RMB       1
+V.Chr1         RMB       1                   same as under cursor character
+V.CColr        RMB       1                   cursor color
+V.Col          RMB       1                   number of columns for this screen
+V.Row          RMB       1                   number of rows
+V.Alpha        RMB       1                   0 when in alpha mode
+V.PIA1         RMB       1                   PIA1Base value
+V.Rdy          RMB       1                   device ready (see SS.DStat 0=not ready)
+V.CFlg1        RMB       1                   VDG display code values
+V.SBAdd        RMB       2                   (2) address of block screen is in
+V.GBuff        RMB       2                   allocation for graphics buffers (block#)
+V.AGBuf        RMB       4                   (2) additional graphics buffer
+V.FFMem        RMB       2                   Flood fill alloc'ed mem
+V.FFSPt        RMB       2                   Flood fill current stack pointer
+V.FFSTp        RMB       1                   Flood fill stack top
+V.FF6          RMB       1                   flood fill flag
+V.FFFlag       RMB       1                   ??
+V.MTabl        RMB       2                   (2) address of mask table for pixels in byte
+V.PixBt        RMB       1                   bit mask for modes (0=$07, 1=$03 )#pixels/byte
+V.GCrsX        RMB       1                   graphics cursor X value
+V.GCrsY        RMB       1                   graphics cursor Y
+V.Msk1         RMB       1                   mask byte 1
+V.Msk2         RMB       1                   mask byte 2 (00,55,AA,FF)
+V.MCol         RMB       1                   color? (C003,8001)
+V.4A           RMB       1
+V.PMask        RMB       1                   pixel mask for colors (i.e. $55, $CC etc)
+V.4C           RMB       1
+V.4D           RMB       1
+V.4E           RMB       1
+V.4F           RMB       1
+V.Caps         RMB       1                   caps lock info: $00=lower $FF=upper
+V.ClkCnt       RMB       1                   clock count ??
+V.WrChr        RMB       1                   character to write
+V.CurCo        RMB       1                   current CO-module in use
+* start of CoWP-specific static memory
+V.Co80X        RMB       1                   V.54
+V.Co80Y        RMB       1                   V.55
+V.ColPtr       RMB       1                   V.56
+V.RowPtr       RMB       1                   V.57
+V.C80X         RMB       1                   CoWP X position
+V.C80Y         RMB       1                   CoWP Y position
+V.Invers       RMB       1
+* end of CoWP-specific static memory
+V.DspVct       RMB       2                   vector to display screen
+V.CnvVct       RMB       2                   vector to X/Y to address conversion
+V.LKeyCd       RMB       1                   last key code
+V.2Key1        RMB       1                   2nd Key 1
+V.2Key2        RMB       1                   2nd Key 2
+V.2Key3        RMB       1                   2nd Key 3
+V.Key1         RMB       1                   Key 1
+V.Key2         RMB       1                   Key 2
+V.Key3         RMB       1                   Key 3
+V.ShftDn       RMB       1                   SHIFT/CTRL state
+V.CtrlDn       RMB       1                   CTRL key down
+V.KeyFlg       RMB       1                   key flag
+V.AltDwn       RMB       1                   ALT key down
+V.KySns        RMB       1                   key sense flags
+V.KySame       RMB       1                   key same as last flag
+V.KySnsF       RMB       1                   key sense flag
+V.Spcl         RMB       1
+V.KTblLC       RMB       1                   key table entry #
+V.6F           RMB       1                   ???
+V.COLoad       RMB       1                   CO-module loaded flags
+V.CFlag        RMB       1                   true lowercase flag $10=true, $00=false
+V.GrfDrvE      RMB       2                   GrfDrv entry point
+V.CoVDGE       RMB       2                   CoVDG entry point
+V.CoWPE        RMB       2                   CoWP entry point
+V.CoHRE        RMB       2                   CoHR entry point
+
+V.Flash        RMB       2                   Cursor flash routine address.
+v.FlashCount   RMB       1                   Cursor flash count
+V.NoFlash      RMB       1                   When this is non-zero do not flash cursor
+
+* CoHR vars
+
+V.51ScrnA      RMB       2                   * Screen address.
+V.51XPos       RMB       1                   * X co-ordinate
+V.51YPos       RMB       1                   * Y co-ordinate
+V.51EscSeq     RMB       1                   * In escape sequence
+V.51ReverseFlag RMB       1                   * Reverse video flag
+V.51UnderlineFlag RMB       1                   * Underline flag
+V.51CtrlDispatch RMB       2                   * Ctrl char dispatch address, currently processing
+V.51BytePixOffset RMB       1                   * byte offset in screen line, of character X position        
+V.51OldCursorPosX RMB       1                   * Position of old cursor before update        
+V.51OldCursorPosY RMB       1
+V.51CursorChanged RMB       1                   * Has cursor position changed ? 1=yes,0=no
+V.51CursorOn   RMB       1                   * Is cursor on ? 1=yes 0=no		         
+V.51XORFlag    RMB       1                   * and data to screen (0) or Xor (1)  		       
+V.51ScreenMask1 RMB       1                   * screen masks for drawing characters on screen         
+V.51ScreenMask2 RMB       1
+* End of CoHR vars
+**** Note these have to come at the end of the defs, or the keyboard ****
+**** code can clobber variables defined after these !                ****
+V.IBufH        RMB       1                   input buffer head
+V.IBufT        RMB       1                   input buffer tail
+V.InBuf        RMB       1                   input buffer ptr
+V.51End        RMB       1
+               RMB       250-.
+V.Last         EQU       .
+
+
+* Unknown for now
+*VD.FFMem rmb   2  (2) bottom of stack for flood fill
+*VD.FFSPt rmb   2  (2) flood fill stack pointer
+*VD.FFSTp rmb   2  (2) flood fill stack top pointer
+*VD.FF6   rmb   1   flood fill flag
+*VD.MCol2 rmb   1  color
+*VD.FF1   rmb   1  data for flood fill
+*VD.FF2   rmb   1  data for flood fill
+*VD.FFMsk rmb   1  flood fill mask
+*VD.FFFlg rmb   1  flood fill flag
+*VD.Palet rmb   16 (16) current palette values
+*VD.PlFlg rmb   1  initialized to $08 by L00DB, and then unused!
+
+*
+* Defs for V.COLoad flags.
+* 
+
+ModCoVDG       EQU       %00000010           CoVDG, Built-in VDG 32x16.
+ModCoWP        EQU       %00000100           CoWP, WordPak, 80x25
+ModCoHR        EQU       %00001000           CoHR, PMODE 4 51x25 text
+
+*
+* Defs for cursor flash counter
+*
+
+CFlash50hz     EQU       25                  * 50Hz flash counter
+CFlash60Hz     EQU       30                  * 60Hz flash counter
+
+               ELSE
+               
+********************************************************************
+* VTIODefs - Video Terminal I/O Definitions for CoCo 3
+*
+* $Id$
+*
+* Edt/Rev  YYYY/MM/DD  Modified by
+* Comment
+* ------------------------------------------------------------------
+*          2004/07/18  Boisy G. Pitre
+* Started from systype
+
+               NAM       VTIODefs
+               TTL       Video Terminal I/O Definitions for CoCo 3
+
+****************
+* Window Devices
+*
+               ORG       $FF9F
+A.W            RMB       1                   $FF9F Generic Window Descriptor
+A.TermW        RMB       1                   $FFA0 Windowing Term
+A.W1           RMB       1                   $FFA1
+A.W2           RMB       1                   $FFA2
+A.W3           RMB       1                   $FFA3
+A.W4           RMB       1                   $FFA4
+A.W5           RMB       1                   $FFA5
+A.W6           RMB       1                   $FFA6
+A.W7           RMB       1                   $FFA7
+A.W8           RMB       1                   $FFA8
+A.W9           RMB       1                   $FFA9
+A.W10          RMB       1                   $FFAA
+A.W11          RMB       1                   $FFAB
+A.W12          RMB       1                   $FFAC
+A.W13          RMB       1                   $FFAD
+A.W14          RMB       1                   $FFAE
+A.W15          RMB       1                   $FFAF
+
+**********************************
+* Pointer Device Packet Definition
+*
+               ORG       0
+Pt.Valid       RMB       1                   Is returned info valid (0=no/1=yes)
+Pt.Actv        RMB       1                   Active Side 0=off/1=Right/2=left
+Pt.ToTm        RMB       1                   Time out Initial value
+               RMB       2                   reserved
+Pt.TTTo        RMB       1                   Time Till Timeout
+Pt.TSSt        RMB       2                   Time Since Start Counter
+Pt.CBSA        RMB       1                   Current Button State Button A
+Pt.CBSB        RMB       1                   Current Button State Button B
+Pt.CCtA        RMB       1                   Click Count Button A
+Pt.CCtB        RMB       1                   Click Count Button B
+Pt.TTSA        RMB       1                   Time This State Counter Button A
+Pt.TTSB        RMB       1                   Time This State Counter Button B
+Pt.TLSA        RMB       1                   Time Last State Counter Button A
+Pt.TLSB        RMB       1                   Time Last State Counter Button B
+               RMB       2                   Reserved
+Pt.BDX         RMB       2                   Button down X value EXPERIMENTAL
+Pt.BDY         RMB       2                   Button down Y value
+Pt.Stat        RMB       1                   Window Pointer type location
+Pt.Res         RMB       1                   Resolution (0..640 by: 0=ten/1=one)
+Pt.AcX         RMB       2                   Actual X Value
+Pt.AcY         RMB       2                   Actual Y Value
+Pt.WRX         RMB       2                   Window Relative X
+Pt.WRY         RMB       2                   Window Relative Y
+Pt.Siz         EQU       .                   Packet Size 32 bytes
+
+**************************
+* window regions for mouse
+*
+WR.Cntnt       EQU       0                   content region
+WR.Cntrl       EQU       1                   control region
+WR.OfWin       EQU       2                   off window
+
+*************************************
+* Standard system get/put buffer defs
+*
+*
+* system group numbers
+*
+               ORG       200
+Grp.Fnt        RMB       1                   font group
+Grp.Clip       RMB       1                   clipboard group
+Grp.Ptr        RMB       1                   pointer group
+Grp.Pat2       RMB       1                   pattern group 2 color
+Grp.Pat4       RMB       1                   pattern group 4 color
+Grp.Pat6       RMB       1                   pattern group 16 color
+*
+* font buffer numbers
+*
+               ORG       1
+Fnt.S8x8       RMB       1                   standard 8x8 font
+Fnt.S6x8       RMB       1                   standard 6x8 font
+Fnt.G8x8       RMB       1                   standard graphics 8x8 font
+*
+* pattern buffer numbers
+*
+               ORG       1
+Pat.Dot        RMB       1
+Pat.Vrt        RMB       1
+Pat.Hrz        RMB       1
+Pat.XHtc       RMB       1
+Pat.LSnt       RMB       1
+Pat.RSnt       RMB       1
+Pat.SDot       RMB       1
+Pat.BDot       RMB       1
+*
+* pointer buffer numbers
+*
+               ORG       1
+Ptr.Arr        RMB       1                   Arrow pointer
+Ptr.Pen        RMB       1                   Pencil pointer
+Ptr.LCH        RMB       1                   Large cross hair pointer
+Ptr.Slp        RMB       1                   Wait timer pointer
+Ptr.Ill        RMB       1                   Illegal action pointer
+Ptr.Txt        RMB       1                   Text pointer
+Ptr.SCH        RMB       1                   Small cross hair pointer
+
+**********************
+* KeyDrv Entry Points
+               ORG       0
+K$Init         RMB       3                   joystick initialization
+K$Term         RMB       3                   joystick termination
+K$FnKey        RMB       3                   get function key states
+K$RdKey        RMB       3                   get key states
+
+**********************
+* JoyDrv Entry Points
+               ORG       0
+J$Init         RMB       3                   joystick initialization
+J$Term         RMB       3                   joystick termination
+J$MsBtn        RMB       3                   get mouse button states
+J$MsXY         RMB       3                   get mouse X/Y coordinates
+J$JyBtn        RMB       3                   get joystick button states
+J$JyXY         RMB       3                   get joystick X/Y coordinates
+
+**********************
+* SndDrv Entry Points
+               ORG       0
+S$Init         RMB       3                   joystick initialization
+S$GetStt       RMB       3                   joystick termination
+S$SetStt       RMB       3                   joystick termination
+S$Term         RMB       3                   get joystick X/Y coordinates
+
+********************************
+* Window/Menu Bar Data Structure
+*
+* To be used in SS.WnSet SETSTAT to set up a Framed Window
+* for use in the high level windowing package.
+*
+NUMMENS        EQU       10                  maximum number of menus on menu bar
+NUMITMS        EQU       20                  maximum number of items in a menu
+MXTTLEN        EQU       15                  max chars for menu and item names
+WINSYNC        EQU       $C0C0               synch bytes for window validation
+*
+* Menu Item Descriptor : (MN.ITEMS)
+* one required for each item within the menu
+*
+               ORG       0
+MI.TTL         RMB       MXTTLEN             item name
+MI.ENBL        RMB       1                   enable flag
+MI.RES         RMB       5                   reserved bytes
+MI.SIZ         EQU       .                   size of menu item descriptor
+*
+* Menu Descriptor :
+* one for each menu on the manu bar
+* each is pointed to by MB.MPTR below
+*
+               ORG       0
+MN.TTL         RMB       MXTTLEN             menu title
+MN.ID          RMB       1                   menu id number (1-255)
+MN.XSIZ        RMB       1                   horiz. size of desired pull down
+MN.NITS        RMB       1                   number of items in menu
+MN.ENBL        RMB       1                   enable flag
+MN.RES         RMB       2                   reserved bytes
+MN.ITEMS       RMB       2                   pointer to array of menu items
+MN.SIZ         EQU       .                   size of menu descriptor
+*
+* Window Descriptor:
+* one required for each application in a framed window
+*
+               ORG       0
+WN.TTL         RMB       20                  title of window for title bar
+WN.NMNS        RMB       1                   number of menus in menu bar
+WN.XMIN        RMB       1                   minimal horiz. size for application to run
+WN.YMIN        RMB       1                   minimal vert. size for application to run
+WN.SYNC        RMB       2                   synch bytes ($C0C0)
+WN.RES         RMB       7                   reserved bytes
+WN.BAR         RMB       2                   pointer to arry of menu descriptors
+WN.SIZ         EQU       .                   size of window/menu bar descriptor
+
+*************************
+* Window Type Definitions
+*
+* To be used in setting up the border of the window in
+* the SS.WnSel SETSTAT
+*
+               ORG       0
+WT.NBox        RMB       1                   No Box
+WT.FWin        RMB       1                   Framed Window
+WT.FSWin       RMB       1                   Framed Window w/Scroll Bars
+WT.SBox        RMB       1                   Shadowed Box
+WT.DBox        RMB       1                   Double Box
+WT.PBox        RMB       1                   Plain Box
+
+*************************************
+* Pre-Defined Menu IDs for the system
+*
+               ORG       1
+MId.Mov        RMB       1                   move box
+MId.Cls        RMB       1                   close box
+MId.Grw        RMB       1                   grow box
+MId.SUp        RMB       1                   scroll up
+MId.SDn        RMB       1                   scroll down
+MId.SRt        RMB       1                   scroll right
+MId.SLt        RMB       1                   scroll left
+MId.Chr        RMB       1                   character was depressed
+               ORG       20
+MId.Tdy        RMB       1                   Tandy menu
+MId.Fil        RMB       1                   Files Menu
+MId.Edt        RMB       1                   Edit Menu
+MId.Sty        RMB       1                   Styles menu
+MId.Fnt        RMB       1                   Font menu
+
+
+******************************************************************************
+******************************************************************************
+**                                                                          **
+** NitrOS-9 Windowing system Global data definitions                        **
+**                                                                          **
+******************************************************************************
+******************************************************************************
+**                                                                          **
+** System memory block 0 layout:                                            **
+**                                                                          **
+** $0000-$0001 : FHL/Isted WD 1002-05 - interface base address              **
+** $0002       : FHL/Isted WD 1002-05 - boot device physical drive #        **
+** $0008       : Bruce Isted Serial mouse - button counter & rx count       **
+** $0009-$000B : Bruce Isted Serial mouse - RX buffer                       **
+** $000C-$000D : Bruce Isted Serial mouse - Current X position              **
+** $000E-$000F : Bruce Isted Serial mouse - Current Y position              **
+** $0010-$001F : unused (User definable)                                    **
+** $0020-$00FF : system direct page & some IRQ vectors                      **
+** $0100-$011F : Task usage table                                           **
+** $0120-$01FF : Virtual DAT tasks (pointed to by <D.TskIPt)                **
+** $0200-$02FF : memory block usage map ($80=Not RAM,$01=in use,$02=module) **
+** $0300-$03FF : system's system call dispatch table                        **
+** $0400-$04FF : user's sysem call dispatch table                           **
+** $0500-$05FF : process descriptor pointer table                           **
+** $0600-$07FF : System task (Task 0, ID 1) process descriptor              **
+** $0800-$08FF : System's stack space (initial ptr is $0900)                **
+** $0900-$09FF : SMAP table ($01=in used, $80=NOT RAM)                      **
+** $0A00-$0FFF : module directory DAT Images (8 bytes each)                 **
+** $1000-$10FF : System Global memory (pointed to by D.CCMem)               **
+** $1100-$11FF : GRFDRV global memory (DP=$11 in GRFDRV)                    **
+** $1200-$1247 : shared buffer between Grf/WindInt & GRFDRV (GP buffers)    **
+** $1248-$127F : ????                                                       **
+** $1280-$1A7F : the window tables (32 of $40 bytes each)                   **
+** $1A80-$1C7F : the screen tables (16 of $20 bytes each)                   **
+** $1C80-$2000 : the CC3 global mem stack (for windowing)                   **
+**                                                                          **
+******************************************************************************
+******************************************************************************
+
+* User settable values for VTIO/TC9IO/GrfInt/WindInt & GrfDrv
+MaxLines       EQU       25                  Max. Y coord text value
+Meg            SET       false               "true" if 1 or 2 meg machine
+
+COMP           EQU       0                   composite monitor
+RGB            EQU       1                   RGB Analog monitor 
+MONO           EQU       2                   monochrome monitor
+
+Monitor        SET       RGB
+
+* Global definitions
+KeyMse         EQU       %00000001           keyboard mouse enabled
+NumLck         EQU       %00000010           Numlock enabled (TC-9 use only)
+CapsLck        EQU       %00000100           Capslock enabled
+MaxRows        EQU       640                 maximum X co-ordinate allowed on mouse
+               IFEQ      MaxLines-25
+MaxLine        EQU       198                 maximum Y co-ordinate allowed on mouse
+               ELSE      
+MaxLine        EQU       191                 maximum Y co-ordinate allowed on mouse
+               ENDC      
+
+*****************************************************************************
+* Static memory area for each window (VTIO/TC9IO)
+* Should set up a write buffer (using parm area?) between SCF, VTIO & Grfdrv
+* so we can 'burst mode' text output (copy up to 48 chars to Grfdrv's parm
+* area, and have grfdrv loop through & write all 48 chars to screen in 1 loop
+* May have to have smaller limit for text to gfx screens, as it will run much
+* slower, unless GrfDrv is made Partially/Fully Re-Entrant
+*
+* STRONG CAUTION:  scfdefs MUST be included first before this file if
+* V.SCF is to be resolved properly in pass 1!!
+               ORG       V.SCF
+V.WinType      RMB       1                   window type (0=Windint/GrfInt,2=VDGInt)      $1D
+V.InfVld       RMB       1                   Rest of info here valid? (0=NO, >0 = YES)    $1E
+V.DevPar       RMB       2                   high bit=window device                       $1F
+V.ULCase       RMB       1                   special key flags (Capslck & keyboard mouse) $21
+V.KySnsFlg     RMB       1                   flag for key sense setstat                   $22
+V.ScrChg       RMB       1                   screen change flag                           $23
+V.SSigID       RMB       1                   data ready process ID                        $24
+V.SSigSg       RMB       1                   data ready signal code                       $25
+V.MSigID       RMB       1                   mouse signal process ID                      $26
+V.MSigSg       RMB       1                   mouse signal signal code                     $27
+V.MSmpl        RMB       1                   mouse sample rate                            $28
+V.MTime        RMB       1                   mouse timeout value                          $29
+               RMB       1                   unused                                       $2A
+V.MAutoF       RMB       1                   auto follow mouse flag                       $2B
+V.ParmCnt      RMB       1                   parameter count                              $2C
+V.ParmVct      RMB       2                   parameter vector                             $2D
+V.PrmStrt      RMB       2                   pointer to params start                      $2F
+V.NxtPrm       RMB       2                   pointer to next param storage                $31
+V.EndPtr       RMB       1                   last character read offset                   $33
+V.InpPtr       RMB       1                   next character read offset                   $34
+V.WinNum       RMB       1                   window table entry #                         $35
+V.DWNum        RMB       1                   dwnum from descriptor                        $36
+V.CallCde      RMB       1                   internal comod call code #                   $37
+CC3Parm        RMB       128-.               global parameter area
+ReadBuf        RMB       256-.               read input buffer (keyboard)
+CC3DSiz        EQU       .
+
+*****************************************************************************
+* GrfInt/WindInt global memory area
+* This area sits in system block 0 from $1000 to $10ff
+WGlobal        EQU       $1000               useful value (points to address starting below)
+               ORG       0
+G.CurTik       RMB       1                   Constant - # Clock ticks/cursor updates (2)
+G.CntTik       RMB       1                   Current tick count for cursor updates
+G.GfBusy       RMB       1                   Grfdrv is busy flag (1=busy)
+G.OrgAlt       RMB       2                   Place to store D.AltIRQ before altering
+*g0003    rmb   2          NEW: UNUSED
+g0005          RMB       2                   Temp save in Windint RG
+G.GrfStk       RMB       2                   grfdrv stack pointer ($07)
+G.MonTyp       RMB       1                   monitor type
+g000A          EQU       .                   Old label for compatibility
+G.CrDvFl       RMB       1                   Are we current device flag (only set when all
+*                           Parms have been moved to Dev Mem)
+*                           0=We are not on our device
+*                           1=We are the current device
+*                           (Used by comod (GRF/WIND/VDGInt) to determine
+*                            whether or not to update GIME regs themselves
+*                            If not current device, they don't.)
+G.WinType      RMB       1                   current device's V.TYPE
+G.CurDvM       RMB       2                   current device memory pointer for co-module use
+G.WIBusy       RMB       1                   WindInt is busy flag (1=busy)
+G.AlPckt       RMB       6                   F$Alarm time packet
+G.AlPID        RMB       1                   F$Alarm proc ID ($15)
+G.AlSig        RMB       1                   F$Alarm signal code ($16)
+G.BelVec       RMB       2                   BELL routine vector
+G.DefPal       RMB       2                   pointer to default palette data in global mem
+G.TnCnt        RMB       1                   SS.Tone duration counter
+G.BelTnF       RMB       1                   BELL tone flag
+g001D          RMB       3
+G.CurDev       RMB       2                   current device's static memory pointer ($20)
+G.PrWMPt       RMB       2                   previous window static mem pointer $(22)
+G.BCFFlg       RMB       1                   bit coded co-module found flags ($24)
+*                           00000010 : VDGInt found
+*                           10000000 : GrfDrv found
+g0025          RMB       1
+G.KTblLC       RMB       1                   Key table entry# last checked (1-3)
+*         IFEQ  TC9-true
+*CurLght  rmb   1          current keyboard light settings
+*         ELSE  
+G.LastCh       RMB       1                   last keyboard character (ASCII value)
+*         ENDC  
+G.LKeyCd       RMB       1                   last keyboard code
+G.KyRept       RMB       1                   key repeat counter
+* A secondary 3 key table (same format as g002D below)
+G.2Key1        RMB       1                   $2A
+G.2Key2        RMB       1                   $2B
+G.2Key3        RMB       1
+* Up to 3 keys can be registerd at once, and they are stored here. If more
+* than 3 are hit, the last key is overwritten with the very last key down that
+* was checked. Format for all three is the same as the PIA column/row byte @
+* KeyFlag below.
+G.Key1         RMB       1                   Key 1 being held down (Row/Column #)
+G.Key2         RMB       1                   Key 2 being held down (Row/Column #)
+G.Key3         RMB       1                   Key 3 being held down (Row/Column #)
+G.ShftDn       RMB       1                   SHIFT key down flag (COM'd) ($30)
+G.CntlDn       RMB       1                   CTRL key down flag (0=NO)
+G.KeyFlg       RMB       1                   Keyboard PIA bit #'s for columns/rows
+*                           %00000111-Column # (Output, 0-7)
+*                           %00111000-Row # (Input, 0-6)
+G.AltDwn       RMB       1                   ALT key down flag (0=NO)
+G.KySns        RMB       1                   key sense byte
+G.KySame       RMB       1                   same key flag
+G.CapLok       RMB       1                   CapsLock/SysRq key down flag
+               RMB       1
+g0038          RMB       1                   grfdrv initialized flag
+               RMB       2
+G.MSmpRt       RMB       1                   Current mouse sample # (# ticks till next read)
+G.Mouse        RMB       Pt.Siz              mouse packet ($3C)
+g005C          RMB       2                   Temp for relative mouse X coord calculation
+g005E          RMB       2                   Temp for relative mouse Y coord calculation
+G.MSmpRV       RMB       1                   Mouse sample reset value (# ticks till next read)
+G.KyDly        RMB       1                   initial key repeat delay constant ($61)
+G.KySpd        RMB       1                   secondary key repeat delay constant
+*         IFEQ  TC9-true
+*KeyParm  rmb   1          keyboard command parameter byte
+*         ELSE  
+G.KyMse        RMB       1                   keyboard mouse flag ($63)
+*         ENDC  
+G.Clear        RMB       1                   "one-shot" CapsLock/SysRq key flag ($64)
+G.KyButt       RMB       1                   keyboard F1 and F2 "fire" button info ($65)
+G.AutoMs       RMB       1                   Auto-follow mouse flag for current device (0=NO)
+G.MseMv        RMB       1                   mouse moved flag ($67)
+G.CoTble       RMB       6                   co-module table ($68)
+G.GrfEnt       RMB       2                   GRFDRV Entry address ($6E)
+g0070          RMB       1                   # bytes to move in 1 block (1-72)
+G.WUseTb       RMB       4                   windows in use bit table (0=unused, 32 windows) ($71)
+G.GfxTbl       RMB       2                   Pointer to GFX tables ($75)
+G.WrkWTb       RMB       $40                 Work window table. WindInt only ($77)
+g00B7          RMB       2                   Current Device static mem ptr for WindInt
+g00B9          RMB       2                   Current window table ptr for WindInt
+g00BB          RMB       2                   Pointer to work window table (g0077+$10)
+g00BD          RMB       1                   Current screen type for work window table
+g00BE          RMB       1                   Topmost overlay window # when check for title bars
+g00BF          RMB       1                   Flag for keypress while processing menu select
+g00C0          RMB       2                   Ptr to current path descriptor
+G.WindBk       RMB       2                   shift-clear routine vector
+G.MsInit       RMB       2                   set mouse routine vector
+G.MsSig        RMB       1                   mouse signal flag
+G.DefPls       RMB       16                  Default palettes (2 repeats of 8 is default) ($C7)
+g00D7          RMB       9
+G.KeyEnt       RMB       2                   entry to keydrv subroutine module ($E0)
+G.KeyMem       RMB       8                   static memory for keydrv subroutine module
+G.JoyEnt       RMB       2                   entry to joydrv subroutine module ($EA)
+G.JoyMem       RMB       8                   static memory for joydrv subroutine module
+G.SndEnt       RMB       2                   entry to snddrv subroutine module ($F4)
+G.SndMem       RMB       8                   static memory for snddrv subroutine module
+
+*****************************************************************************
+* GrfDrv global memory data definitions
+* This area sits in system block 0 from $1100 to $119E
+GrfMem         EQU       $1100               useful label used to point to mem starting below
+               ORG       0
+gr0000         RMB       1                   Pixel mask for 1st byte of GP line
+gr0001         RMB       1                   Pixel mask for last byte of a GP line
+gr0002         RMB       2                   Ptr to table of bit masks for colors
+gr0004         RMB       1                   # of bytes wide GP buffer is (including partials)
+gr0005         RMB       1                   # pixels per byte in GP Buffer
+gr0006         RMB       1                   # of pixels used in 1st byte of GP buffer line
+gr0007         RMB       1                   # of pixels used in last byte of GP buffer line
+gr0008         RMB       1                   Bit mask that is common to both screen & GP buffer
+gr0009         RMB       1                   # bytes for width of overlay window
+gr000A         RMB       1                   # bytes to offset to get to next line after
+*                             overlay width has been copied
+gr000B         RMB       1
+gr000C         RMB       2                   Cursor address for proportional spacing?
+gr000E         RMB       1
+gr000F         RMB       1                   Left-based bit mask for proportional spacing?
+gr0010         RMB       2                   Vector for text to gfx screen (either prop. or normal)
+gr0012         RMB       6
+gr0018         RMB       2                   Working Center X coord for Circle/Ellipse
+gr001A         RMB       2                   Working Center Y coord for Circle/Ellipse
+gr001C         RMB       2                   Some variable for Circle/Ellipse (initially 0)
+gr001E         RMB       2                   Working Y radius value for Circle/Ellipse
+gr0020         RMB       2                   Arc 'clip line' X01
+gr0022         RMB       2                   Arc 'clip line' Y01
+gr0024         RMB       2                   Arc 'clip line' X02
+gr0026         RMB       2                   Arc 'clip line' Y02
+gr0028         RMB       1                   full-byte background color to FFILL on mask
+gr0029         RMB       1                   pixels per byte: set up by FFILL
+gr002A         RMB       1                   Flag for FFill: 1=no error, 0=Stack overflow error
+gr002B         RMB       1                   current Y-direction to travel in FFILL
+gr002C         RMB       2
+gr002E         RMB       2                   current window table entry
+gr0030         RMB       2                   current screen table ptr
+gr0032         RMB       1                   Last block # we used for buffers
+gr0033         RMB       2                   Last offset we used for buffers
+gr0035         RMB       1                   group
+gr0036         RMB       2                   offset
+gr0038         RMB       1                   group returned (new)
+gr0039         RMB       1                   0=Text cursor inverted off, >0 is inverted on
+gr003A         RMB       1                   0=Graphics cursor XOR'd off,>0 is XOR'd on scrn
+gr003B         RMB       2                   end of vars ptr?
+gr003D         RMB       2                   Last X coordinate Graphics cursor was ON at
+gr003F         RMB       2                   Last Y coordinate Graphics cursor was ON at
+gr0041         RMB       2                   Screen address for start of current gfx cursor
+gr0043         RMB       1                   Pixel mask for start of gfx cursor
+gr0044         RMB       1                   Block # Graphics cursor is in
+gr0045         RMB       2                   Offset in block Graphics cursor is in
+gr0047         RMB       2                   'Working' X coordinate
+gr0049         RMB       2                   'Working' Y coordinate
+gr004B         RMB       2                   current X
+gr004D         RMB       2                   current Y
+gr004F         RMB       2                   X Size (in bytes)
+gr0051         RMB       2                   Y Size (in bytes)
+gr0053         RMB       2                   Horizontal radius (circle/ellipse/arc)
+gr0055         RMB       2                   Vertical radius (circle/ellipse/arc)
+gr0057         RMB       1                   group
+gr0058         RMB       1                   buffer #
+gr0059         RMB       1                   save switch for overlay
+gr005A         RMB       1                   PRN
+gr005B         RMB       2                   X coordinate of Graphics cursor
+gr005D         RMB       2                   Y coordinate of Graphics cursor
+gr005F         RMB       1                   ATD: new video mode for 24/25/28-line windows
+Gr.STYMk       RMB       1                   STY marker
+gr0061         RMB       1                   foreground RGB data
+gr0062         RMB       1                   background RGB data
+gr0063         RMB       1                   bytes/row (on current screen...not window)
+gr0064         RMB       2                   PSet vector
+gr0066         RMB       2                   pset offset
+gr0068         RMB       2                   LSet vector
+gr006A         RMB       2                   max X co-ordinate
+gr006C         RMB       2                   max Y co-ordinate
+gr006E         RMB       2                   X pixel count
+gr0070         RMB       2                   Y pixel count
+gr0072         RMB       2                   Screen address of pixel we are doing
+gr0074         RMB       1                   Pixel mask for pixel we are doing
+gr0075         RMB       2                   ??? Pixel mask for last byte of GP buffer?
+gr0077         RMB       2                   Vector for right direction FFill
+gr0079         RMB       1                   bit mask for 1st pixel in byte for right dir. FFill
+gr007A         RMB       2                   Vector for left direction FFill
+gr007C         RMB       1                   bit mask for last pixel in byte for left dir. FFill
+gr007D         RMB       1                   buffer block #
+gr007E         RMB       2                   buffer offset #
+gr0080         RMB       2                   Buffer length (in bytes)
+gr0082         RMB       3                   3 byte extended screen address
+gr0085         RMB       2                   temp
+gr0087         RMB       16                  grfdrv (sysmap 1) DAT image
+gr0097         RMB       1                   temp
+gr0098         RMB       1                   temp
+* In ARC, 97-98 is the width of the clip line in pixels (after scaling)
+gr0099         RMB       2                   temp
+* In ARC, 99-9A is the height of the clip line in pixels (after scaling)
+gr009B         RMB       1                   counter temp
+gr009C         RMB       1
+gr009D         RMB       2                   offset to buffer in block
+gr009F         RMB       1
+gr00A0         RMB       1                   # lines left to do of GP buffer onto screen
+gr00A1         RMB       2                   vector routine for (changes lots)
+* In ARC A1-A2 is the vector to the proper clipping routine
+gr00A3         RMB       2                   Vector for shifting GP buffers
+gr00A5         RMB       2                   Vector for shifting GP buffers (can dupe A1)
+gr00A7         RMB       2
+gr00A9         RMB       2                   NEW: Window tbl ptr for last window GRFDRV used
+grBigFnt       RMB       2                   Flag for 224 char font/gfx mode on (0=No) V2.00a
+gr00AD         RMB       2                   FFill:orig. start X coord|Circ/Ell saved start X
+gr00AF         RMB       2                   FFill:orig. start Y coord|Circ/Ell saved end X
+gr00B1         RMB       1                   Flag in FFill: 1=1st time through, 0=not 1st time
+gr00B2         RMB       1                   Filled (circle,ellipse) flag 0=Not filled
+*gr00B3   rmb    256-.       ??? UNUSED
+gr00B3         RMB       1                   temp veriable grfdrv
+gr00B4         RMB       1                   temp veriable grfdrv
+gr00B5         RMB       1                   regW for grfdrv
+gr00B6         RMB       1
+gr00B7         RMB       2
+gr00B9         RMB       2                   previously used in grfdrv at $B2 but not for Filled Flag
+gr00BB         RMB       2                   previously used in grfdrv at $B4
+gr00BD         RMB       2                   previously used in grfdrv at $B6
+gr00BF         RMB       256-.
+* GPLoad buffer - $1200 in system block 0
+GPBuf          RMB       72                  common move buffer for gpload/get/put
+gb0000         EQU       72                  Size of get/put buffer ($48)
+
+*****************************************************************************
+* Window table entry structure
+* These tables sit in system block 0 and there is 1 for every window init'd
+* including any overlay windows.
+MaxWind        EQU       32                  maximum allowable window tables
+WinBase        EQU       $1290               base address to start of window tables
+               ORG       -$10
+Wt.STbl        RMB       2                   Screen table pointer ($FFFF=Not used)       -$10
+Wt.BLnk        RMB       1                   overlay window parent entry # ($FF=base)    -$0E
+Wt.LStrt       RMB       2                   screen logical start address                -$0D
+Wt.CPX         RMB       1                   current X coord. start                      -$0B
+Wt.CPY         RMB       1                   current Y coord. start                      -$0A
+Wt.SZX         RMB       1                   current X size (CWArea)                     -$09
+Wt.SZY         RMB       1                   current Y size (CWArea)                     -$08
+Wt.SXFct       RMB       1                   X scaling factor                            -$07
+Wt.SYFct       RMB       1                   Y scaling factor (0=no scaling)             -$06
+Wt.Cur         RMB       2                   cursor physical address on screen           -$05
+Wt.FMsk        RMB       1                   font bit mask (based from left)             -$03
+Wt.CurX        RMB       2                   X coord of cursor                           -$02
+Wt.CurY        RMB       2                   Y Coord of cursor                            $00
+Wt.XBCnt       RMB       1                   width of window (in bytes)                   $02
+Wt.CWTmp       RMB       1                   bytes wide each text chr (1,2,4)             $03
+Wt.BRow        RMB       2                   bytes/text row (8x width in gfx)             $04
+Wt.Fore        RMB       1                   foreground palette #                         $06
+Wt.Back        RMB       1                   background palette #                         $07
+Wt.Attr        RMB       1                   default attributes (FUTTTBBB)                $08
+Wt.BSW         RMB       1                   character BSW switches                       $09
+Wt.LSet        RMB       1                   LSet type                                    $0A
+Wt.FBlk        RMB       1                   Font memory block #                          $0B
+Wt.FOff        RMB       2                   Font offset in block                         $0C
+Wt.PBlk        RMB       1                   PSet memory block #                          $0E
+Wt.POff        RMB       2                   PSet offset in block                         $0F
+Wt.OBlk        RMB       1                   Overlay memory block #                       $11
+Wt.OOff        RMB       2                   Overlay offset in block                      $12
+Wt.LVec        RMB       2                   LSet vector                                  $14
+Wt.PVec        RMB       2                   PSet vector                                  $16
+Wt.GBlk        RMB       1                   GCursor memory block #                       $18
+Wt.GOff        RMB       2                   GCursor offset in block                      $19
+Wt.MaxX        RMB       2                   Maximum X cord. (0-79,0-639)                 $1B
+Wt.MaxY        RMB       2                   Maximum Y cord. (0-24,0-191)                 $1D
+Wt.BLen        RMB       2                   bytes left in GPLoad block below             $1F
+Wt.NBlk        RMB       1                   memory block # for next GPLoad               $21
+Wt.NOff        RMB       2                   Offset in block for next GPLoad              $22
+Wt.LStDf       RMB       2                   screen logical start default                 $24
+* NOTE: The following default settings are what the window was initialized
+*       with, and thus are the MAXIMUM start/size the window can handle
+*       until it is restarted (DWEnd & DWSet)
+*       They also appear to be used in WindInt to determine the coords &
+*       sizes for control+content regions
+Wt.DfCPX       RMB       1                   default X cord. start                        $26
+Wt.DfCPY       RMB       1                   default Y cord. start                        $27
+Wt.DfSZX       RMB       1                   default X size                               $28
+Wt.DfSZY       RMB       1                   default Y size                               $29
+Wt.Res         RMB       6                   unused                                   $2A-$2F
+Wt.Siz         EQU       .+$10
+
+*****************************************************************************
+* Screen table entrys
+* These tables sit in system block 0 base=$1A80
+
+STblMax        EQU       16                  Maximum number of screen tables
+STblBse        EQU       $1A80               base address of screen tables
+               ORG       0
+St.Sty         RMB       1                   Screen type                         $00
+St.SBlk        RMB       1                   Ram block start #                   $01
+St.LStrt       RMB       2                   Screen logical start (for GIME)     $02
+St.BRow        RMB       1                   Bytes per row                       $04
+St.Brdr        RMB       1                   Border palette register #           $05
+St.Fore        RMB       1                   Foreground palette register #       $06
+St.Back        RMB       1                   Background palette register #       $07
+St.ScSiz       RMB       1                   screen size: 24..28 lines           $08
+St.Res         RMB       7                   UNUSED???                           $09
+* NOTE: SHOULD USE ONE OF THESE UNUSED BYTES TO KEEP THE # OF DEVICE WINDOW
+* TABLES THAT ARE USING THIS SCREEN TABLE. DWSET & DWEND WOULD KEEP TRACK OF
+* THESE, AND THE WINDINT TITLE BAR ROUTINE WOULD CHECK IT. IF IT IS ONLY 1,
+* IT WON'T BOTHER CHANGING THE TITLE BAR WHEN SELECTING WINDOWS
+St.Pals        RMB       16                  Palette register contents           $10
+St.Siz         EQU       .
+
+*****************************************************************************
+* Graphics buffer tables
+* They contain a 20 byte header (shown below), followed by the raw pixel
+* data.
+               ORG       0
+Grf.Bck        RMB       1                   back block link #                   $00
+Grf.Off        RMB       2                   back block header offset            $01
+Grf.Grp        RMB       1                   group #                             $03
+Grf.Buff       RMB       1                   buffer #                            $04
+Grf.BSz        RMB       2                   buffer size (not including header)  $05
+Grf.XSz        RMB       2                   X size (in pixels)                  $07
+Grf.YSz        RMB       2                   Y size (in pixels/bytes)            $09
+Grf.XBSz       RMB       1                   X size in bytes                     $0B
+Grf.LfPx       RMB       1                   # pixels used in first byte of line $0C
+Grf.RtPx       RMB       1                   # pixels used in last byte of line  $0D
+Grf.STY        RMB       1                   Screen type buffer intended for     $0E
+Grf.NBlk       RMB       1                   number blocks used                  $0F
+Grf.Pal        RMB       16                  Copy of palette registers?          $10
+Grf.Siz        EQU       .                   $20
+
+*****************************************************************************
+* GFX tables (1 for each window, 18 ($12) bytes each) pointed to by
+* $1075-$0176
+* GRFINT only uses gt0001-gt0004, the rest is exclusive to WINDINT
+               ORG       0
+Gt.WTyp        RMB       1                   WindInt window type (Framed, Scroll Bar, etc.) $00
+Gt.GXCur       RMB       2                   X coord of graphics cursor                     $01
+Gt.GYCur       RMB       2                   Y coord of graphics cursor                     $03
+Gt.DPtr        RMB       2                   Ptr to WindInt window descriptor               $05
+Gt.FClr        RMB       1                   Foreground color                               $07
+Gt.BClr        RMB       1                   Background color                               $08
+Gt.FMsk        RMB       1                   Foreground mask                                $09
+Gt.BMsk        RMB       1                   Background mask                                $0A
+Gt.GBlk        RMB       1                   Block # of graphics cursor                     $0B
+Gt.GOff        RMB       2                   Offset into block of graphics cursor           $0C
+Gt.Proc        RMB       1                   Process # of window creator                    $0E
+Gt.PBlk        RMB       1                   Process descriptor block # of creator          $0F
+Gt.Res         RMB       2                   ??? RESERVED ???                               $10
+GTabSz         EQU       .
+
+*****************************************************************************
+* This table is located in the graphics table memory and is offset from
+* graphics table pointer stored at $1075-$1076. This is used exclusively by
+* WindInt.
+* NOTE: USING UNUSED BYTES IN CC3 GLOBAL MEM, SET UP SEPARATE PTRS FOR EACH
+*  OF THE BELOW SO WE CAN SPEED UP ACCESS BY NOT HAVING TO DO A LOAD/LEAx
+*  COMBINATION EVERY TIME
+               ORG       $0240
+               RMB       WN.SIZ              copy of last accessed window descriptor
+               RMB       MN.SIZ              copy of last accessed menu descriptor
+               RMB       MI.SIZ              copy of last accessed item descriptor
+               RMB       65                  menu handling table (16 entrys of 4 bytes)
+
+*****************************************************************************
+* WindInt menu handling table entry definition
+               ORG       0
+MnuXNum        RMB       1                   menu #
+MnuXStrt       RMB       1                   X start text co-ordinate
+MnuXEnd        RMB       1                   X end text co-ordinate
+               RMB       1                   unused?
+MnuHSiz        EQU       .
+
+*****************************************************************************
+* Character binary switches
+TChr           EQU       %10000000           transparent characters
+Under          EQU       %01000000           underline characters
+Bold           EQU       %00100000           bold characters
+Prop           EQU       %00010000           proportional spacing of characters
+Scale          EQU       %00001000           automatic window scaling
+Invers         EQU       %00000100           inverse characters
+NoCurs         EQU       %00000010           no cursor display
+Protect        EQU       %00000001           device window protection
+
+*****************************************************************************
+* Screen types (high bit set=hardware text, else graphics) in GRFDRV
+Current        EQU       $ff                 Current screen
+*         equ   1          640x200x2
+*         equ   2          320x200x4
+*         equ   3          640x200x4
+*         equ   4          320x200x16
+*         equ   $85        80 column text
+*         equ   $86        40 column text
+
+*************************************
+* Window default palette color codes
+*
+               ORG       0
+White.         RMB       1
+Blue.          RMB       1
+Black.         RMB       1
+Green.         RMB       1
+Red.           RMB       1
+Yellow.        RMB       1
+Magenta.       RMB       1
+Cyan.          RMB       1
+
+               ENDC      
+               ENDC      
--- a/defs/dgndefs	Fri Feb 24 06:41:48 2012 -0600
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,182 +0,0 @@
-	IFNE	DGNDEFS-1
-                         
-DGNDEFS set   1         
-                         
-********************************************************************
-* DgnDefs - Dragon I/O Definitions
-*
-* $Id$
-*
-* Edt/Rev  YYYY/MM/DD  Modified by
-* Comment
-* ------------------------------------------------------------------
-*          2004/11/16  P.Harvey-Smith.
-* Fixed the stupid error I made in the defines below that made all the
-* non DPxxxxx defines equal to FF00 !!!
-*
-*	   2005/04/14  P.Harvey-Smith
-* Added non DP defines for ACIA on Dragon 64/Alpha
-*
-*	   2005/04/21  P.Harvey-Smith
-* Fixed errors in defines for WD2797 non-DP registers.
-*
-
-         nam   DgnDefs  
-         ttl   Dragon I/O Definitions
-                         
-********************
-* VTIO Static Memory
-*
-* Definitions for ports on Dragon 32/64/Alpha.
-*
-*
-IO		equ		$ff00		IO page on Dragon
-
-*
-* Most of these symbols will be defined twice, as some 
-* of the Dragon code, sets DP=$FF, and uses direct page
-* addressing to access the io ports, whilst some of it
-* uses absolute addressing.
-* The versions starting DP must be used with DP=$FF.
-*
-
-* PIA 0 and 1 standard on all Dragons.
-DPPIA0DA	EQU		$00		Side A Data/DDR
-DPPIA0CRA	EQU		$01		Side A Control.
-DPPIA0DB	EQU		$02		Side B Data/DDR
-DPPIA0CRB	EQU		$03		Side B Control.
-
-PIA0DA		EQU		DPPIA0DA+IO	Side A Data/DDR
-PIA0CRA		EQU		DPPIA0CRA+IO	Side A Control.
-PIA0DB		EQU		DPPIA0DB+IO	Side A Data/DDR
-PIA0CRB		EQU		DPPIA0CRB+IO	Side A Control.
-
-DPPIA1DA	EQU		$20		Side A Data/DDR
-DPPIA1CRA	EQU		$21		Side A Control.
-DPPIA1DB	EQU		$22		Side B Data/DDR
-DPPIA1CRB	EQU		$23		Side B Control.
-
-PIA1DA		EQU		DPPIA1DA+IO	Side A Data/DDR
-PIA1CRA		EQU		DPPIA1CRA+IO	Side A Control.
-PIA1DB		EQU		DPPIA1DB+IO	Side A Data/DDR
-PIA1CRB		EQU		DPPIA1CRB+IO	Side A Control.
-
-* Dragon Alpha has a third PIA at $FF24.
-DPPIA2DA	EQU		$24		Side A Data/DDR
-DPPIA2CRA	EQU		$25		Side A Control.
-DPPIA2DB	EQU		$26		Side B Data/DDR
-DPPIA2CRB	EQU		$27		Side B Control.
-
-PIA2DA		EQU		DPPIA2DA+IO	Side A Data/DDR
-PIA2CRA		EQU		DPPIA2CRA+IO	Side A Control.
-PIA2DB		EQU		DPPIA2DB+IO	Side A Data/DDR
-PIA2CRB		EQU		DPPIA2CRB+IO	Side A Control.
-
-* WD2797 Floppy disk controler, used in Alpha Note registers in reverse order !
-DPCmdRegA	EQU		$2F		command/status			
-DPTrkRegA	EQU		$2E		Track register
-DPSecRegA	EQU		$2D		Sector register
-DPDataRegA	EQU		$2C		Data register
-
-CmdRegA		EQU		DPCMDREGA+IO	command/status			
-TrkRegA		EQU		DPTRKREGA+IO	Track register
-SecRegA		EQU		DPSECREGA+IO	Sector register
-DataRegA	EQU		DPDATAREGA+IO	Data register
-
-* Constants for Alpha AY-8912 sound chip, which is used to control
-* Drive select and motor on the Alpha
-AYIOREG		EQU		$0E		AY-8912, IO Register number.
-AYIdle		EQU		$00		Make AY Idle.
-AYWriteReg	EQU		$01		Write AY Register
-AYReadReg	EQU		$02		Read AY Register
-AYREGLatch	EQU		$03		Latch register into AY
-
-DSMask		EQU		$03		Drive select mask.
-MotorMask	EQU		$04		Motor enable mask
-DDENMask	EQU		$08		DDEN Mask
-ENPMask		EQU		$10		Enable Precomp mask
-NMIMask		EQU		$20		NMI enable Mask
-
-* Dragon 64/Alpha Serial port.
-DPAciaData	EQU		$04		ACIA Rx/Tx Register
-DPAciaStat	EQU		$05		ACIA status register
-DPAciaCmd	EQU		$06		ACIA command register
-DPAciaCtrl	EQU		$07		ACIA control register
-
-AciaData	EQU		DPAciaData+IO	ACIA Rx/Tx Register
-AciaStat	EQU		DPAciaStat+IO	ACIA status register
-AciaCmd		EQU		DPAciaCmd+IO	ACIA command register
-AciaCtrl	EQU		DPAciaCtrl+IO	ACIA control register
-
-* DragonDos Cartrage IO for WD2797
-* WD2797 Floppy disk controler, used in DragonDos.
-DPCmdRegD	EQU		$40		command/status			
-DPTrkRegD	EQU		$41		Track register
-DPSecRegD	EQU		$42		Sector register
-DPDataRegD	EQU		$43		Data register
-
-CmdRegD		EQU		DPCMDREGD+IO	command/status			
-TrkRegD		EQU		DPTRKREGD+IO	Track register
-SecRegD		EQU		DPSECREGD+IO	Sector register
-DataRegD	EQU		DPDATAREGD+IO	Data register
-
-DPDSKCTL	EQU		$48		Disk DS/motor control reg
-DSKCTL		EQU		DPDSKCTL+IO		
-
-* Disk IO bitmasks (DragonDos).
-NMIEnD    	EQU		%00100000 
-WPCEnD    	EQU   		%00010000 
-SDensEnD  	EQU   		%00001000 
-MotorOnD  	EQU   		%00000100 
-Drive0D		EQU		%00000000
-Drive1D		EQU		%00000001
-Drive2D		EQU		%00000010
-Drive3D		EQU		%00000011
-DDosDriveMask	EQU		%00000011	Mask out all non drive select bits
-DDosCtrlMask	EQU		%11111100	Mask in all non drive select bits
-
-
-* Disk IO bitmasks (Dragon Alpha).
-PIANMIEnA    	EQU		%00001000	PIA2, CA2, used to enable/disable NMI 
-PIANMIDisA	EQU		%11110111	Bitmask to force CA2 off, and disable NMI
-
-NMIEnA		EQU		%10000000	Flag to enable disable NMI, passed to AlphaDskCtl
-WPCEnA    	EQU   		%01000000 	According to circuit trace by R.Harding.
-SDensEnA  	EQU   		%00100000 	DDen, from circuit trace on R.Harding's machine.
-MotorOnA  	EQU   		%00010000 	
-Drive0A		EQU		%00000001
-Drive1A		EQU		%00000010
-Drive2A		EQU		%00000100
-Drive3A		EQU		%00001000
-AlphaDrvMask	EQU		%00001111	Mask out all non drive select bits
-AlphaCtrlMask	EQU		%11110000	Mask in all non drive select bits
-
-Mask58		EQU		%01111111	And mask to make sure 5.25" clock selected by WD2797
-
-NMICA2En	EQU		$3C		Value for PIA CRA to enable NMI
-NMICA2Dis	EQU		$34		Value for PIA CRA to disable NMI
-
-* Disk Commands
-FrcInt   	EQU   	%11010000 
-ReadCmnd 	EQU   	%10001000 
-RestCmnd 	EQU   	%00000000 
-SeekCmnd 	EQU   	%00010000 
-StpICmnd 	EQU   	%01000000 
-WritCmnd 	EQU   	%10101000 
-WtTkCmnd 	EQU   	%11110000 
-Sid2Sel  	EQU   	%00000010 
-
-* Disk Status Bits
-BusyMask 	EQU   	%00000001 
-LostMask 	EQU   	%00000100 
-ErrMask  	EQU   	%11111000 
-CRCMask  	EQU   	%00001000 
-RNFMask  	EQU   	%00010000 
-RTypMask 	EQU   	%00100000 
-WPMask   	EQU   	%01000000 
-NotRMask 	EQU   	%10000000 
-
-DensMask 	EQU   	%00000001 
-T80Mask  	EQU   	%00000010 
-
-		ENDC
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/defs/dragon.d	Fri Feb 24 08:51:08 2012 -0600
@@ -0,0 +1,223 @@
+         IFNE	DRAGON.D-1
+DRAGON.D set   1         
+                         
+********************************************************************
+* DgnDefs - Dragon I/O Definitions
+*
+* $Id$
+*
+* Edt/Rev  YYYY/MM/DD  Modified by
+* Comment
+* ------------------------------------------------------------------
+*          2004/11/16  P.Harvey-Smith.
+* Fixed the stupid error I made in the defines below that made all the
+* non DPxxxxx defines equal to FF00 !!!
+*
+*	   2005/04/14  P.Harvey-Smith
+* Added non DP defines for ACIA on Dragon 64/Alpha
+*
+*	   2005/04/21  P.Harvey-Smith
+* Fixed errors in defines for WD2797 non-DP registers.
+*
+
+         nam   DgnDefs  
+         ttl   Dragon I/O Definitions
+                         
+*************************************************
+*
+* NitrOS-9 Level 1 Section
+*
+*************************************************
+
+HW.Page        SET       $FF                 Device descriptor hardware page
+
+**********************************
+* Power Line Frequency Definitions
+*
+Hz50           EQU       1                   Assemble clock for 50 hz power
+Hz60           EQU       2                   Assemble clock for 60 hz power
+PwrLnFrq       SET       Hz60                Set to Appropriate freq
+
+
+**********************************
+* Ticks per second
+*
+               IFEQ      PwrLnFrq-Hz50
+TkPerSec       SET       50
+               ELSE      
+TkPerSec       SET       60
+               ENDC      
+
+
+****************************************
+* Special character Bit position equates
+*
+SHIFTBIT       EQU       %00000001
+CNTRLBIT       EQU       %00000010
+ALTERBIT       EQU       %00000100
+UPBIT          EQU       %00001000
+DOWNBIT        EQU       %00010000
+LEFTBIT        EQU       %00100000
+RIGHTBIT       EQU       %01000000
+SPACEBIT       EQU       %10000000
+
+********************
+* VTIO Static Memory
+*
+* Definitions for ports on Dragon 32/64/Alpha.
+*
+*
+IO		equ		$ff00		IO page on Dragon
+
+*
+* Most of these symbols will be defined twice, as some 
+* of the Dragon code, sets DP=$FF, and uses direct page
+* addressing to access the io ports, whilst some of it
+* uses absolute addressing.
+* The versions starting DP must be used with DP=$FF.
+*
+
+* PIA 0 and 1 standard on all Dragons.
+DPPIA0DA	EQU		$00		Side A Data/DDR
+PIA0Base  EQU       DPPIA0DA
+DPPIA0CRA	EQU		$01		Side A Control.
+DPPIA0DB	EQU		$02		Side B Data/DDR
+DPPIA0CRB	EQU		$03		Side B Control.
+
+PIA0DA		EQU		DPPIA0DA+IO	Side A Data/DDR
+PIA0CRA		EQU		DPPIA0CRA+IO	Side A Control.
+PIA0DB		EQU		DPPIA0DB+IO	Side A Data/DDR
+PIA0CRB		EQU		DPPIA0CRB+IO	Side A Control.
+
+DPPIA1DA	EQU		$20		Side A Data/DDR
+PIA1Base  EQU       DPPIA1DA
+DPPIA1CRA	EQU		$21		Side A Control.
+DPPIA1DB	EQU		$22		Side B Data/DDR
+DPPIA1CRB	EQU		$23		Side B Control.
+
+PIA1DA		EQU		DPPIA1DA+IO	Side A Data/DDR
+PIA1CRA		EQU		DPPIA1CRA+IO	Side A Control.
+PIA1DB		EQU		DPPIA1DB+IO	Side A Data/DDR
+PIA1CRB		EQU		DPPIA1CRB+IO	Side A Control.
+
+* Dragon Alpha has a third PIA at $FF24.
+DPPIA2DA	EQU		$24		Side A Data/DDR
+DPPIA2CRA	EQU		$25		Side A Control.
+DPPIA2DB	EQU		$26		Side B Data/DDR
+DPPIA2CRB	EQU		$27		Side B Control.
+
+PIA2DA		EQU		DPPIA2DA+IO	Side A Data/DDR
+PIA2CRA		EQU		DPPIA2CRA+IO	Side A Control.
+PIA2DB		EQU		DPPIA2DB+IO	Side A Data/DDR
+PIA2CRB		EQU		DPPIA2CRB+IO	Side A Control.
+
+* WD2797 Floppy disk controler, used in Alpha Note registers in reverse order !
+DPCmdRegA	EQU		$2F		command/status			
+DPTrkRegA	EQU		$2E		Track register
+DPSecRegA	EQU		$2D		Sector register
+DPDataRegA	EQU		$2C		Data register
+
+CmdRegA		EQU		DPCMDREGA+IO	command/status			
+TrkRegA		EQU		DPTRKREGA+IO	Track register
+SecRegA		EQU		DPSECREGA+IO	Sector register
+DataRegA	EQU		DPDATAREGA+IO	Data register
+
+DPort          SET       $DataRegA               Disk controller base address
+
+* Constants for Alpha AY-8912 sound chip, which is used to control
+* Drive select and motor on the Alpha
+AYIOREG		EQU		$0E		AY-8912, IO Register number.
+AYIdle		EQU		$00		Make AY Idle.
+AYWriteReg	EQU		$01		Write AY Register
+AYReadReg	EQU		$02		Read AY Register
+AYREGLatch	EQU		$03		Latch register into AY
+
+DSMask		EQU		$03		Drive select mask.
+MotorMask	EQU		$04		Motor enable mask
+DDENMask	EQU		$08		DDEN Mask
+ENPMask		EQU		$10		Enable Precomp mask
+NMIMask		EQU		$20		NMI enable Mask
+
+* Dragon 64/Alpha Serial port.
+DPAciaData	EQU		$04		ACIA Rx/Tx Register
+DPAciaStat	EQU		$05		ACIA status register
+DPAciaCmd	EQU		$06		ACIA command register
+DPAciaCtrl	EQU		$07		ACIA control register
+
+AciaData	EQU		DPAciaData+IO	ACIA Rx/Tx Register
+AciaStat	EQU		DPAciaStat+IO	ACIA status register
+AciaCmd		EQU		DPAciaCmd+IO	ACIA command register
+AciaCtrl	EQU		DPAciaCtrl+IO	ACIA control register
+
+* DragonDos Cartrage IO for WD2797
+* WD2797 Floppy disk controler, used in DragonDos.
+DPCmdRegD	EQU		$40		command/status			
+DPTrkRegD	EQU		$41		Track register
+DPSecRegD	EQU		$42		Sector register
+DPDataRegD	EQU		$43		Data register
+
+CmdRegD		EQU		DPCMDREGD+IO	command/status			
+TrkRegD		EQU		DPTRKREGD+IO	Track register
+SecRegD		EQU		DPSECREGD+IO	Sector register
+DataRegD	EQU		DPDATAREGD+IO	Data register
+
+DPDSKCTL	EQU		$48		Disk DS/motor control reg
+DSKCTL		EQU		DPDSKCTL+IO		
+
+* Disk IO bitmasks (DragonDos).
+NMIEnD    	EQU		%00100000 
+WPCEnD    	EQU   		%00010000 
+SDensEnD  	EQU   		%00001000 
+MotorOnD  	EQU   		%00000100 
+Drive0D		EQU		%00000000
+Drive1D		EQU		%00000001
+Drive2D		EQU		%00000010
+Drive3D		EQU		%00000011
+DDosDriveMask	EQU		%00000011	Mask out all non drive select bits
+DDosCtrlMask	EQU		%11111100	Mask in all non drive select bits
+
+
+* Disk IO bitmasks (Dragon Alpha).
+PIANMIEnA    	EQU		%00001000	PIA2, CA2, used to enable/disable NMI 
+PIANMIDisA	EQU		%11110111	Bitmask to force CA2 off, and disable NMI
+
+NMIEnA		EQU		%10000000	Flag to enable disable NMI, passed to AlphaDskCtl
+WPCEnA    	EQU   		%01000000 	According to circuit trace by R.Harding.
+SDensEnA  	EQU   		%00100000 	DDen, from circuit trace on R.Harding's machine.
+MotorOnA  	EQU   		%00010000 	
+Drive0A		EQU		%00000001
+Drive1A		EQU		%00000010
+Drive2A		EQU		%00000100
+Drive3A		EQU		%00001000
+AlphaDrvMask	EQU		%00001111	Mask out all non drive select bits
+AlphaCtrlMask	EQU		%11110000	Mask in all non drive select bits
+
+Mask58		EQU		%01111111	And mask to make sure 5.25" clock selected by WD2797
+
+NMICA2En	EQU		$3C		Value for PIA CRA to enable NMI
+NMICA2Dis	EQU		$34		Value for PIA CRA to disable NMI
+
+* Disk Commands
+FrcInt   	EQU   	%11010000 
+ReadCmnd 	EQU   	%10001000 
+RestCmnd 	EQU   	%00000000 
+SeekCmnd 	EQU   	%00010000 
+StpICmnd 	EQU   	%01000000 
+WritCmnd 	EQU   	%10101000 
+WtTkCmnd 	EQU   	%11110000 
+Sid2Sel  	EQU   	%00000010 
+
+* Disk Status Bits
+BusyMask 	EQU   	%00000001 
+LostMask 	EQU   	%00000100 
+ErrMask  	EQU   	%11111000 
+CRCMask  	EQU   	%00001000 
+RNFMask  	EQU   	%00010000 
+RTypMask 	EQU   	%00100000 
+WPMask   	EQU   	%01000000 
+NotRMask 	EQU   	%10000000 
+
+DensMask 	EQU   	%00000001 
+T80Mask  	EQU   	%00000010 
+
+		ENDC
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/defs/drivewire.d	Fri Feb 24 08:51:08 2012 -0600
@@ -0,0 +1,94 @@
+          IFNE      DRIVEWIRE.D-1
+DRIVEWIRE.D   SET       1
+********************************************************************
+* drivewire.d - DriveWire Definitions File
+*
+* $Id$
+*
+* Ed.    Comments                                       Who YY/MM/DD
+* ------------------------------------------------------------------
+*   1    Started                                        BGP 03/04/03
+*   2    Added DWGLOBS area                             BGP 09/12/27
+
+         nam   drivewire.d
+         ttl   DriveWire Definitions File
+
+* Addresses
+BBOUT       equ    $FF20
+BBIN        equ    $FF22
+
+* Opcodes
+OP_NOP      equ    $00		No-Op
+OP_RESET1   equ    $FE		Server Reset
+OP_RESET2   equ    $FF		Server Reset
+OP_RESET3   equ    $F8		Server Reset
+OP_DWINIT	equ	   'Z		DriveWire dw3 init/OS9 boot
+OP_TIME     equ    '#	 	Current time requested
+OP_INIT     equ    'I		Init routine called
+OP_READ     equ    'R		Read one sector
+OP_REREAD   equ    'r		Re-read one sector
+OP_READEX   equ    'R+128	Read one sector
+OP_REREADEX equ    'r+128	Re-read one sector
+OP_WRITE    equ    'W		Write one sector
+OP_REWRIT   equ    'w		Re-write one sector
+OP_GETSTA   equ    'G		GetStat routine called
+OP_SETSTA   equ    'S		SetStat routine called
+OP_TERM     equ    'T		Term routine called
+OP_SERINIT  equ    'E
+OP_SERTERM  equ    'E+128
+
+* Printer opcodes
+OP_PRINT    equ    'P		Print byte to the print buffer
+OP_PRINTFLUSH equ  'F		Flush the server print buffer
+
+* Serial opcodes
+OP_SERREAD equ 'C
+OP_SERREADM equ 'c
+OP_SERWRITE equ 'C+128
+OP_SERGETSTAT equ 'D
+OP_SERSETSTAT equ 'D+128
+
+* for dw vfm
+OP_VFM equ 'V+128
+
+* WireBug opcodes (Server-initiated)
+OP_WIREBUG_MODE  equ   'B
+* WireBug opcodes (Server-initiated)
+OP_WIREBUG_READREGS   equ  'R	Read the CoCo's registers
+OP_WIREBUG_WRITEREGS  equ  'r	Write the CoCo's registers
+OP_WIREBUG_READMEM    equ  'M	Read the CoCo's memory
+OP_WIREBUG_WRITEMEM   equ  'm	Write the CoCo's memory
+OP_WIREBUG_GO         equ  'G	Tell CoCo to get out of WireBug mode and continue execution
+
+* VPort opcodes (CoCo-initiated)
+OP_VPORT_READ         equ  'V
+OP_VPORT_WRITE        equ  'v
+
+* Error definitions
+E_CRC      equ   $F3            Same as NitrOS-9 E$CRC
+
+* DW Globals Page Definitions (must be 256 bytes max)
+DW.StatCnt equ   15
+           org   $00
+DW.StatTbl rmb   DW.StatCnt     page pointers for terminal device static storage
+DW.VIRQPkt rmb   Vi.PkSz
+DW.VIRQNOP rmb   1
+
+* SCF Multi Terminal Driver Definitions
+
+         	org   	        V.SCF      	;V.SCF: free memory for driver to use
+SSigID          rmb             1              ;process ID for signal on data ready
+SSigSg          rmb             1              ;signal on data ready code
+RxDatLen	rmb		1              ;current length of data in Rx buffer
+RxBufSiz	rmb		1              ;Rx buffer size
+RxBufEnd	rmb		2              ;end of Rx buffer
+RxBufGet	rmb		2              ;Rx buffer output pointer
+RxBufPut	rmb		2              ;Rx buffer input pointer
+RxGrab		rmb		1              ;bytes to grab in multiread
+RxBufPtr	rmb		2              ;pointer to Rx buffer
+RxBufDSz	equ		256-.          ;default Rx buffer gets remainder of page...
+RxBuff		rmb		RxBufDSz       ;default Rx buffer
+SCFDrvMemSz     equ             .
+
+                ENDC
+
--- a/defs/dwdefs.d	Fri Feb 24 06:41:48 2012 -0600
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,89 +0,0 @@
-********************************************************************
-* dwdefs - DriveWire Definitions File
-*
-* $Id$
-*
-* Ed.    Comments                                       Who YY/MM/DD
-* ------------------------------------------------------------------
-*   1    Started                                        BGP 03/04/03
-*   2    Added DWGLOBS area                             BGP 09/12/27
-
-         nam   dwdefs
-         ttl   DriveWire Definitions File
-
-* Addresses
-BBOUT       equ    $FF20
-BBIN        equ    $FF22
-
-* Opcodes
-OP_NOP      equ    $00		No-Op
-OP_RESET1   equ    $FE		Server Reset
-OP_RESET2   equ    $FF		Server Reset
-OP_RESET3   equ    $F8		Server Reset
-OP_DWINIT	equ	   'Z		DriveWire dw3 init/OS9 boot
-OP_TIME     equ    '#	 	Current time requested
-OP_INIT     equ    'I		Init routine called
-OP_READ     equ    'R		Read one sector
-OP_REREAD   equ    'r		Re-read one sector
-OP_READEX   equ    'R+128	Read one sector
-OP_REREADEX equ    'r+128	Re-read one sector
-OP_WRITE    equ    'W		Write one sector
-OP_REWRIT   equ    'w		Re-write one sector
-OP_GETSTA   equ    'G		GetStat routine called
-OP_SETSTA   equ    'S		SetStat routine called
-OP_TERM     equ    'T		Term routine called
-OP_SERINIT  equ    'E
-OP_SERTERM  equ    'E+128
-
-* Printer opcodes
-OP_PRINT    equ    'P		Print byte to the print buffer
-OP_PRINTFLUSH equ  'F		Flush the server print buffer
-
-* Serial opcodes
-OP_SERREAD equ 'C
-OP_SERREADM equ 'c
-OP_SERWRITE equ 'C+128
-OP_SERGETSTAT equ 'D
-OP_SERSETSTAT equ 'D+128
-
-* for dw vfm
-OP_VFM equ 'V+128
-
-* WireBug opcodes (Server-initiated)
-OP_WIREBUG_MODE  equ   'B
-* WireBug opcodes (Server-initiated)
-OP_WIREBUG_READREGS   equ  'R	Read the CoCo's registers
-OP_WIREBUG_WRITEREGS  equ  'r	Write the CoCo's registers
-OP_WIREBUG_READMEM    equ  'M	Read the CoCo's memory
-OP_WIREBUG_WRITEMEM   equ  'm	Write the CoCo's memory
-OP_WIREBUG_GO         equ  'G	Tell CoCo to get out of WireBug mode and continue execution
-
-* VPort opcodes (CoCo-initiated)
-OP_VPORT_READ         equ  'V
-OP_VPORT_WRITE        equ  'v
-
-* Error definitions
-E_CRC      equ   $F3            Same as NitrOS-9 E$CRC
-
-* DW Globals Page Definitions (must be 256 bytes max)
-DW.StatCnt equ   15
-           org   $00
-DW.StatTbl rmb   DW.StatCnt     page pointers for terminal device static storage
-DW.VIRQPkt rmb   Vi.PkSz
-DW.VIRQNOP rmb   1
-
-* SCF Multi Terminal Driver Definitions
-
-         	org   	        V.SCF      	;V.SCF: free memory for driver to use
-SSigID          rmb             1              ;process ID for signal on data ready
-SSigSg          rmb             1              ;signal on data ready code
-RxDatLen	rmb		1              ;current length of data in Rx buffer
-RxBufSiz	rmb		1              ;Rx buffer size
-RxBufEnd	rmb		2              ;end of Rx buffer
-RxBufGet	rmb		2              ;Rx buffer output pointer
-RxBufPut	rmb		2              ;Rx buffer input pointer
-RxGrab		rmb		1              ;bytes to grab in multiread
-RxBufPtr	rmb		2              ;pointer to Rx buffer
-RxBufDSz	equ		256-.          ;default Rx buffer gets remainder of page...
-RxBuff		rmb		RxBufDSz       ;default Rx buffer
-SCFDrvMemSz     equ             .
--- a/defs/ide.d	Fri Feb 24 06:41:48 2012 -0600
+++ b/defs/ide.d	Fri Feb 24 08:51:08 2012 -0600
@@ -1,3 +1,5 @@
+          IFNE      IDE.D-1
+IDE.D    SET       1
 ********************************************************************
 * ide.d - IDE definitions
 *
@@ -53,3 +55,6 @@
                IFNE      IDE
 SDAddr         SET       $FF50
                ENDC      
+
+               ENDC      
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/defs/os9.d	Fri Feb 24 08:51:08 2012 -0600
@@ -0,0 +1,1293 @@
+               IFNE      OS9.D-1
+
+OS9.D        SET       1
+
+********************************************************************
+* os9.d - NitrOS-9 System Definitions
+*
+* $Id$
+*
+* Edt/Rev  YYYY/MM/DD  Modified by
+* Comment
+* ------------------------------------------------------------------
+*          1985/08/29  KMZ
+* Fixed DT.SBF/NFM values to 3/4
+*
+*          1985/09/01  KMZ
+* Added SS.FDInf, SS.Attr to accept 68K request thru NET.
+*
+*          1985/09/03  KMZ/Robert F. Doggett
+* Eliminated E$BPrcID, made Error #238 become E$DNE for
+* 68000 compatability.
+*
+*          1986/04/15  Mark G. Hawkins
+* F$AlHRAM System call added for COCO.
+*
+*          1986/09/08  Mark G. Hawkins
+* F$Alarm for COCO Clock Module.
+*
+*          1986/09/17  Mark G. Hawkins
+* SS.Tone For COCO.
+*
+*          1986/09/23  Mark G. Hawkins
+* Added F$NMLink and F$NMLoad for COCO.
+*
+*          1986/09/30  Mark G. Hawkins
+* Added Reserved User $70 to $7f in sytem calls.
+*
+*          1986/09/30  Mark G. Hawkins
+* Created Color Computer 3 Version of OS9Defs.
+*
+*          1998/10/03  Boisy G. Pitre
+* Consoldated Level 1/Level 2 os9defs.
+*
+*          2002/04/04  Boisy G. Pitre
+* Consoldated Level 2/Level 2 V3 os9defs.
+*
+*          2002/04/30  Boisy G. Pitre
+* Added NitrOS-9 definitions.
+*
+*          2003/05/30  Boisy G. Pitre
+* Added WD1002 sys vars to Level One section.
+*
+*          2003/06/02  Boisy G. Pitre
+* Fixed incorrectly ordered D.X*** system globals for OS-9 Level One and
+* changed the sizes from 2 to 3 bytes.
+* DT.NFM is now the same for both Level One and Level Two.
+* Added DT.CDFM type for future CD-ROM file manager
+*
+*          2003/11/05  Robert Gault
+* Fixed MouseInf. Made it rmb 2 as it should be. Also changes to init and cc3io.
+*
+*	       2005/11/02  P.Harvey-Smith
+* Added definitions for boot areas on Dragon computers.
+*
+*	       2006/03/03  Boisy G. Pitre
+* Added F$Debug and D.DbgMem areas, common to all levels of NitrOS-9
+
+               NAM       os9.d
+               IFEQ      Level-1
+               TTL       NitrOS-9 Level 1 System Symbol Definitions
+               ELSE      
+               IFEQ      Level-2
+               TTL       NitrOS-9 Level 2 System Symbol Definitions
+               ELSE      
+               TTL       NitrOS-9 Level 3 System Symbol Definitions
+               ENDC      
+               ENDC      
+
+* Common definitions
+true           EQU       1                   useful name
+false          EQU       0                   useful name
+
+               PAG       
+*****************************************
+* System Service Request Code Definitions
+*
+               ORG       0
+F$Link         RMB       1                   Link to Module
+F$Load         RMB       1                   Load Module from File
+F$UnLink       RMB       1                   Unlink Module
+F$Fork         RMB       1                   Start New Process
+F$Wait         RMB       1                   Wait for Child Process to Die
+F$Chain        RMB       1                   Chain Process to New Module
+F$Exit         RMB       1                   Terminate Process
+F$Mem          RMB       1                   Set Memory Size
+F$Send         RMB       1                   Send Signal to Process
+F$Icpt         RMB       1                   Set Signal Intercept
+F$Sleep        RMB       1                   Suspend Process
+F$SSpd         RMB       1                   Suspend Process
+F$ID           RMB       1                   Return Process ID
+F$SPrior       RMB       1                   Set Process Priority
+F$SSWI         RMB       1                   Set Software Interrupt
+F$PErr         RMB       1                   Print Error
+F$PrsNam       RMB       1                   Parse Pathlist Name
+F$CmpNam       RMB       1                   Compare Two Names
+F$SchBit       RMB       1                   Search Bit Map
+F$AllBit       RMB       1                   Allocate in Bit Map
+F$DelBit       RMB       1                   Deallocate in Bit Map
+F$Time         RMB       1                   Get Current Time
+F$STime        RMB       1                   Set Current Time
+F$CRC          RMB       1                   Generate CRC ($17)
+
+               IFGT      Level-1
+
+* NitrOS-9 Level 2 system calls
+F$GPrDsc       RMB       1                   Get Process Descriptor copy ($18)
+F$GBlkMp       RMB       1                   Get System Block Map copy ($19)
+F$GModDr       RMB       1                   Get Module Directory copy ($1A)
+F$CpyMem       RMB       1                   Copy External Memory ($1B)
+F$SUser        RMB       1                   Set User ID number ($1C)
+F$UnLoad       RMB       1                   Unlink Module by name ($1D)
+F$Alarm        RMB       1                   Color Computer 3 Alarm Call ($1E)
+               RMB       2                   Reserved - For overlap of other systems ($1F)
+F$NMLink       RMB       1                   Color Computer 3 Non-Mapping Link ($21)
+F$NMLoad       RMB       1                   Color Computer 3 Non-Mapping Load ($22)
+
+               ELSE      
+
+* NitrOS-9 Level 1 system call padding
+               RMB       11
+
+               ENDC      
+
+F$Debug        RMB       1                   Drop the system into the debugger ($23)
+
+               IFGT      Level-1
+
+               ORG       $25
+F$TPS          RMB       1                   Return System's Ticks Per Second
+F$TimAlm       RMB       1                   CoCo individual process alarm call
+
+               ENDC      
+
+               ORG       $27                 Beginning of System Reserved Calls
+* NitrOS-9 common system calls
+F$VIRQ         RMB       1                   Install/Delete Virtual IRQ
+F$SRqMem       RMB       1                   System Memory Request
+F$SRtMem       RMB       1                   System Memory Return
+F$IRQ          RMB       1                   Enter IRQ Polling Table
+F$IOQu         RMB       1                   Enter I/O Queue
+F$AProc        RMB       1                   Enter Active Process Queue
+F$NProc        RMB       1                   Start Next Process
+F$VModul       RMB       1                   Validate Module
+F$Find64       RMB       1                   Find Process/Path Descriptor
+F$All64        RMB       1                   Allocate Process/Path Descriptor
+F$Ret64        RMB       1                   Return Process/Path Descriptor
+F$SSvc         RMB       1                   Service Request Table Initialization
+F$IODel        RMB       1                   Delete I/O Module
+
+               IFGT      Level-1
+
+F$SLink        RMB       1                   System Link
+F$Boot         RMB       1                   Bootstrap System
+F$BtMem        RMB       1                   Bootstrap Memory Request
+F$GProcP       RMB       1                   Get Process ptr
+F$Move         RMB       1                   Move Data (low bound first)
+F$AllRAM       RMB       1                   Allocate RAM blocks
+F$AllImg       RMB       1                   Allocate Image RAM blocks
+F$DelImg       RMB       1                   Deallocate Image RAM blocks
+F$SetImg       RMB       1                   Set Process DAT Image
+F$FreeLB       RMB       1                   Get Free Low Block
+F$FreeHB       RMB       1                   Get Free High Block
+F$AllTsk       RMB       1                   Allocate Process Task number
+F$DelTsk       RMB       1                   Deallocate Process Task number
+F$SetTsk       RMB       1                   Set Process Task DAT registers
+F$ResTsk       RMB       1                   Reserve Task number
+F$RelTsk       RMB       1                   Release Task number
+F$DATLog       RMB       1                   Convert DAT Block/Offset to Logical
+F$DATTmp       RMB       1                   Make temporary DAT image (Obsolete)
+F$LDAXY        RMB       1                   Load A [X,[Y]]
+F$LDAXYP       RMB       1                   Load A [X+,[Y]]
+F$LDDDXY       RMB       1                   Load D [D+X,[Y]]
+F$LDABX        RMB       1                   Load A from 0,X in task B
+F$STABX        RMB       1                   Store A at 0,X in task B
+F$AllPrc       RMB       1                   Allocate Process Descriptor
+F$DelPrc       RMB       1                   Deallocate Process Descriptor
+F$ELink        RMB       1                   Link using Module Directory Entry
+F$FModul       RMB       1                   Find Module Directory Entry
+F$MapBlk       RMB       1                   Map Specific Block
+F$ClrBlk       RMB       1                   Clear Specific Block
+F$DelRAM       RMB       1                   Deallocate RAM blocks
+F$GCMDir       RMB       1                   Pack module directory
+F$AlHRAM       RMB       1                   Allocate HIGH RAM Blocks
+
+* Alan DeKok additions
+F$ReBoot       RMB       1                   Reboot machine (reload OS9Boot) or drop to RSDOS
+F$CRCMod       RMB       1                   CRC mode, toggle or report current status
+F$XTime        RMB       1                   Get Extended time packet from RTC (fractions of second)
+F$VBlock       RMB       1                   Verify modules in a block of memory, add to module directory
+
+               ENDC      
+
+*
+* Numbers $70 through $7F are reserved for user definitions
+*
+               ORG       $70
+
+               IFEQ      Level-1
+
+               RMB       16                  Reserved for user definition
+
+               ELSE      
+
+F$RegDmp       RMB       1                   Ron Lammardo's debugging register dump
+F$NVRAM        RMB       1                   Non Volatile RAM (RTC battery backed static) read/write
+
+               RMB       $80-.               Reserved for user definitions
+               ENDC      
+
+               PAG       
+**************************************
+* I/O Service Request Code Definitions
+*
+               ORG       $80
+I$Attach       RMB       1                   Attach I/O Device
+I$Detach       RMB       1                   Detach I/O Device
+I$Dup          RMB       1                   Duplicate Path
+I$Create       RMB       1                   Create New File
+I$Open         RMB       1                   Open Existing File
+I$MakDir       RMB       1                   Make Directory File
+I$ChgDir       RMB       1                   Change Default Directory
+I$Delete       RMB       1                   Delete File
+I$Seek         RMB       1                   Change Current Position
+I$Read         RMB       1                   Read Data
+I$Write        RMB       1                   Write Data
+I$ReadLn       RMB       1                   Read Line of ASCII Data
+I$WritLn       RMB       1                   Write Line of ASCII Data
+I$GetStt       RMB       1                   Get Path Status
+I$SetStt       RMB       1                   Set Path Status
+I$Close        RMB       1                   Close Path
+I$DeletX       RMB       1                   Delete from current exec dir
+
+*******************
+* File Access Modes
+*
+READ.          EQU       %00000001
+WRITE.         EQU       %00000010
+UPDAT.         EQU       READ.+WRITE.
+EXEC.          EQU       %00000100
+PREAD.         EQU       %00001000
+PWRIT.         EQU       %00010000
+PEXEC.         EQU       %00100000
+SHARE.         EQU       %01000000
+DIR.           EQU       %10000000
+ISIZ.          EQU       %00100000
+
+**************
+* Signal Codes
+*
+               ORG       0
+S$Kill         RMB       1                   Non-Interceptable Abort
+S$Wake         RMB       1                   Wake-up Sleeping Process
+S$Abort        RMB       1                   Keyboard Abort
+S$Intrpt       RMB       1                   Keyboard Interrupt
+S$Window       RMB       1                   Window Change
+S$HUP          EQU       S$Window            Hang Up
+S$Alarm        RMB       1                   CoCo individual process' alarm signal
+
+               PAG       
+**********************************
+* Status Codes for GetStat/GetStat
+*
+               ORG       0
+SS.Opt         RMB       1                   Read/Write PD Options
+SS.Ready       RMB       1                   Check for Device Ready
+SS.Size        RMB       1                   Read/Write File Size
+SS.Reset       RMB       1                   Device Restore
+SS.WTrk        RMB       1                   Device Write Track
+SS.Pos         RMB       1                   Get File Current Position
+SS.EOF         RMB       1                   Test for End of File
+SS.Link        RMB       1                   Link to Status routines
+SS.ULink       RMB       1                   Unlink Status routines
+SS.Feed        RMB       1                   Issue form feed
+SS.Frz         RMB       1                   Freeze DD. information
+SS.SPT         RMB       1                   Set DD.TKS to given value
+SS.SQD         RMB       1                   Sequence down hard disk
+SS.DCmd        RMB       1                   Send direct command to disk
+SS.DevNm       RMB       1                   Return Device name (32-bytes at [X])
+SS.FD          RMB       1                   Return File Descriptor (Y-bytes at [X])
+SS.Ticks       RMB       1                   Set Lockout honor duration
+SS.Lock        RMB       1                   Lock/Release record
+SS.DStat       RMB       1                   Return Display Status (CoCo)
+SS.Joy         RMB       1                   Return Joystick Value (CoCo)
+SS.BlkRd       RMB       1                   Block Read
+SS.BlkWr       RMB       1                   Block Write
+SS.Reten       RMB       1                   Retension cycle
+SS.WFM         RMB       1                   Write File Mark
+SS.RFM         RMB       1                   Read past File Mark
+SS.ELog        RMB       1                   Read Error Log
+SS.SSig        RMB       1                   Send signal on data ready
+SS.Relea       RMB       1                   Release device
+SS.AlfaS       RMB       1                   Return Alfa Display Status (CoCo, SCF/GetStat)
+SS.Attr        EQU       SS.AlfaS            To serve 68K/RBF/SetStat only, thru NET
+SS.Break       RMB       1                   Send break signal out acia
+SS.RsBit       RMB       1                   Reserve bitmap sector (do not allocate in) LSB(X)=sct#
+               RMB       1                   Reserved
+SS.FDInf       EQU       $20                 To serve 68K/RBF/GetStat only, thru NET
+               RMB       4                   Reserve $20-$23 for Japanese version (Hoshi)
+SS.SetMF       RMB       1                   Reserve $24 for Gimix G68 (Flex compatability?)
+SS.Cursr       RMB       1                   Cursor information for COCO
+SS.ScSiz       RMB       1                   Return screen size for COCO
+SS.KySns       RMB       1                   Getstat/SetStat for COCO keyboard
+SS.ComSt       RMB       1                   Getstat/SetStat for Baud/Parity
+SS.Open        RMB       1                   SetStat to tell driver a path was opened
+SS.Close       RMB       1                   SetStat to tell driver a path was closed
+SS.HngUp       RMB       1                   SetStat to tell driver to hangup phone
+SS.FSig        RMB       1                   New signal for temp locked files
+SS.DSize       EQU       SS.ScSiz            Return disk size (RBF GetStat)
+SS.VarSect     EQU       SS.DStat            Variable Sector Size (RBF GetStat)
+
+* System Specific and User defined codes above $80
+               ORG       $80
+SS.AAGBf       RMB       1                   SetStat to Allocate Additional Graphic Buffer
+SS.SLGBf       RMB       1                   SetStat to Select a different Graphic Buffer
+SS.Mount       RMB       1                   Network 4 Mount Setstat
+SS.RdNet       RMB       1                   Read Raw Sector from Network 4 Omnidrive
+SS.MpGPB       RMB       1                   SetStat to request a Get/Put Buffer be mapped in workspace
+SS.Slots       RMB       1                   Network 4 slots? getstat
+
+               IFGT      Level-1
+
+* Level 2 Windowing
+SS.WnSet       RMB       1                   Set up High Level Windowing Information
+SS.MnSel       RMB       1                   Request High level Menu Handler take determine next event
+SS.SBar        RMB       1                   SetStat to set position block on Window scroll bars
+SS.Mouse       RMB       1                   Return Mouse information packet (COCO)
+SS.MsSig       RMB       1                   SetStat to tell driver to send signal on mouse event
+SS.AScrn       RMB       1                   Allocate a screen for application poking
+SS.DScrn       RMB       1                   Display a screen allocated by SS.AScrn
+SS.FScrn       RMB       1                   Free a screen allocated by SS.AScrn
+SS.PScrn       RMB       1                   Polymorph Screen into different screen type
+SS.ScInf       RMB       1                   Get Current screen info for direct writes
+               RMB       1                   Reserved
+SS.Palet       RMB       1                   Return palette information
+SS.Montr       RMB       1                   Get and Set Monitor Type
+SS.ScTyp       RMB       1                   Get screen type information
+SS.GIP         RMB       1                   Global Input Parameters (SetStat)
+SS.UMBar       RMB       1                   update menu bar (SetStat)
+SS.FBRgs       RMB       1                   return color registers (GetStat)
+SS.DfPal       RMB       1                   set/return default palette registers (Getstat/Setstat)
+SS.Tone        RMB       1                   Generate a tone using 6 bit sound
+SS.GIP2        RMB       1                   Global Input Params #2 (L2V3)
+SS.AnPal       RMB       1                   Animate palettes (L2V3)
+SS.FndBf       RMB       1                   Find named buffer (L2V3)
+
+* sc6551 defined
+SS.CDSta       EQU       SS.GIP2
+SS.CDSig       EQU       SS.AnPal
+SS.CDRel       EQU       SS.FndBf
+               ELSE      
+* These are wide open in Level 1
+               RMB       19
+
+* sc6551 defined
+SS.CDSta       RMB       1
+SS.CDSig       RMB       1
+SS.CDRel       RMB       1
+               ENDC      
+
+               ORG       $A0
+*
+* New Default SCF input buffer Set status call
+SS.Fill        RMB       1                   Pre-load SCF device input buffer
+SS.Hist        RMB       1                   Enable command-line history easily
+
+
+               ORG       $B0
+*
+* New WDDisk get/set status calls
+SS.ECC         RMB       1                   ECC corrected data error enable/disable (GetStat/SetStat)
+
+*
+               IFGT      Level-1
+
+* VRN get/set status calls.  Named by Alan DeKok.
+SS.VCtr        EQU       $80                 Return FS2 total VIRQ counter
+SS.VSig        EQU       $81                 Return FS2 number of signals sent
+
+SS.FClr        EQU       $81                 Set/clear FS2 VIRQ
+SS.FSet        EQU       $C7                 Set FS2+ VIRQ
+SS.KSet        EQU       $C8                 Set KQ3 VIRQ
+SS.KClr        EQU       $C9                 Clr KQ3 VIRQ
+SS.ARAM        EQU       $CA                 Allocate RAM blocks
+SS.DRAM        EQU       $CB                 De-allocate RAM blocks
+
+* SDisk 3 Definition Equates
+SS.DRead       EQU       SS.AAGBf            SDisk3 Direct Sector Read ($80)
+SS.DWrit       EQU       SS.DRead            SDisk3 Direct sector Write ($80)
+SS.UnFrz       EQU       SS.SLGBf            SDisk3 UNFreeze DD info ($81)
+SS.MOFF        EQU       SS.Mount            SDisk3 fast motor off call ($82)
+SS.MoTim       EQU       SS.RdNet            SDisk3 Set motor shut off time ($83)
+SS.SDRD        EQU       SS.MpGPB            SDisk3 System direct read ($84)
+SS.SDWRT       EQU       SS.SDRD             SDisk3 System direct writes ($84)
+SS.Sleep       EQU       SS.Slots            SDisk3 (DMC ONLY) Enable/disable F$Sleep calls in read/write 1773 I/O ($85)
+SS.DrvCh       EQU       SS.WnSet            SDisk3 (DMC ONLY) Set drive number to cache, or return drive number being cached ($86)
+
+               ENDC      
+
+               TTL       Direct Page Definitions
+               PAG       
+
+**********************************
+* Direct Page Variable Definitions
+*
+               ORG       $00
+D.WDAddr       RMB       2                   FHL/Isted WD1002-05 interface base address
+D.WDBtDr       RMB       1                   FHL/Isted WD1002-05 boot physical device drive num.
+D.SWPage       RMB       1                   SmartWatch page # (see clock2_smart)
+               RMB       5
+D.COCOXT       RMB       1                   Busy flag for CoCo-XT driver (one drive at a time)
+D.DbgMem       RMB       2                   Debug memory pointer
+D.DWSubAddr    RMB  	 2                   DriveWire subroutine module pointer
+D.DWStat       RMB  	 2                   DriveWire statics page
+
+               ORG       $20
+
+               IFEQ      Level-1
+
+* Level 1 DP vars
+D.FMBM         RMB       4                   Free memory bit map pointers
+D.MLIM         RMB       2                   Memory limit $24
+D.ModDir       RMB       4                   Module directory $26
+D.Init         RMB       2                   Rom base address $2A
+D.SWI3         RMB       2                   Swi3 vector $2C
+D.SWI2         RMB       2                   Swi2 vector $2E
+D.FIRQ         RMB       2                   Firq vector $30
+D.IRQ          RMB       2                   Irq vector $32
+D.SWI          RMB       2                   Swi vector $34
+D.NMI          RMB       2                   Nmi vector $36
+D.SvcIRQ       RMB       2                   Interrupt service entry $38
+D.Poll         RMB       2                   Interrupt polling routine $3A
+D.UsrIRQ       RMB       2                   User irq routine $3C
+D.SysIRQ       RMB       2                   System irq routine $3E
+D.UsrSvc       RMB       2                   User service request routine $40
+D.SysSvc       RMB       2                   System service request routine $42
+D.UsrDis       RMB       2                   User service request dispatch table
+D.SysDis       RMB       2                   System service reuest dispatch table
+D.Slice        RMB       1                   Process time slice count $48
+D.PrcDBT       RMB       2                   Process descriptor block address  $49
+D.Proc         RMB       2                   Process descriptor address $4B
+D.AProcQ       RMB       2                   Active process queue $4D
+D.WProcQ       RMB       2                   Waiting process queue $4F
+D.SProcQ       RMB       2                   Sleeping process queue $51
+D.Time         EQU       .                   Time
+D.Year         RMB       1                   $53
+D.Month        RMB       1                   $54
+D.Day          RMB       1                   $55
+D.Hour         RMB       1                   $56
+D.Min          RMB       1                   $57
+D.Sec          RMB       1                   $58
+D.Tick         RMB       1                   $59
+D.TSec         RMB       1                   Ticks / second $5A
+D.TSlice       RMB       1                   Ticks / time-slice $5B
+D.IOML         RMB       2                   I/O mgr free memory low bound $5C
+D.IOMH         RMB       2                   I/O mgr free memory hi  bound $5E
+D.DevTbl       RMB       2                   Device driver table addr $60
+D.PolTbl       RMB       2                   Irq polling table addr $62
+D.PthDBT       RMB       2                   Path descriptor block table addr $64
+D.BTLO         RMB       2                   Bootstrap low address $66
+D.BTHI         RMB       2                   Bootstrap hi address $68
+D.DMAReq       RMB       1                   DMA in use flag $6A
+D.AltIRQ       RMB       2                   Alternate IRQ vector (CC) $6B
+D.KbdSta       RMB       2                   Keyboard scanner static storage (CC) $6D
+D.DskTmr       RMB       2                   Disk Motor Timer (CC) $6F
+D.CBStrt       RMB       16                  reserved for CC warmstart ($71)
+D.Clock        RMB       2                   Address of Clock Tick Routine (CC) $81
+D.Boot         RMB       1                   Bootstrap attempted flag
+D.URtoSs       RMB       2                   address of user to system routine (VIRQ) $84
+D.CLTb         RMB       2                   Pointer to clock interrupt table (VIRQ) $86
+D.MDREG        RMB       1                   6309 MD (mode) shadow register $88 (added in V2.01.00)
+D.CRC          RMB       1                   CRC checking mode flag $89 (added in V2.01.00)
+D.Clock2       RMB       2                   CC Clock2 entry address
+
+               ORG       $100
+D.XSWI3        RMB       3
+D.XSWI2        RMB       3
+D.XFIRQ        RMB       3
+D.XIRQ         RMB       3
+D.XSWI         RMB       3
+D.XNMI         RMB       3
+
+* Table Sizes
+BMAPSZ         EQU       32                  Bitmap table size
+SVCTNM         EQU       2                   Number of service request tables
+SVCTSZ         EQU       (256-BMAPSZ)/SVCTNM-2 Service request table size
+
+               ELSE      
+
+* Level 2 DP vars
+D.Tasks        RMB       2                   Task User Table
+D.TmpDAT       RMB       2                   Temporary DAT Image stack
+D.Init         RMB       2                   Initialization Module ptr
+D.Poll         RMB       2                   Interrupt Polling Routine ptr
+D.Time         EQU       .                   System Time
+D.Year         RMB       1
+D.Month        RMB       1
+D.Day          RMB       1
+D.Hour         RMB       1
+D.Min          RMB       1
+D.Sec          RMB       1
+D.Tick         RMB       1
+D.Slice        RMB       1                   current slice remaining
+D.TSlice       RMB       1                   Ticks per Slice
+D.Boot         RMB       1                   Bootstrap attempted flag
+D.MotOn        RMB       1                   Floppy Disk Motor-On time out
+D.ErrCod       RMB       1                   Reset Error Code
+D.Daywk        RMB       1                   day of week, com-trol clock
+D.TkCnt        RMB       1                   Tick Counter
+D.BtPtr        RMB       2                   Address of Boot in System Address space
+D.BtSz         RMB       2                   Size of Boot
+
+               IFNE      H6309
+D.MDREG        RMB       1                   6309 MD (mode) shadow register
+               ELSE      
+               RMB       1                   Currently unused in NitrOS-9/6809
+               ENDC      
+
+D.CRC          RMB       1                   CRC checking mode flag
+
+D.Tenths       RMB       1                   Tenths and hundredths of second for F$Xtime
+D.Task1N       RMB       1                   Map type 1 task number*2 - offset into [D.TskIPt]
+D.Quick        RMB       1                   Quick system call return flag - 0 =stack is at $FEE1
+D.QIRQ         RMB       1                   Quick IRQ flag - 0 =IRQ wasn't clock, so quick return
+
+               ORG       $40
+D.BlkMap       RMB       4                   Memory Block Map ptr
+D.ModDir       RMB       4                   Module Directory ptrs
+D.PrcDBT       RMB       2                   Process Descriptor Block Table ptr
+D.SysPrc       RMB       2                   System Process Descriptor ptr
+D.SysDAT       RMB       2                   System DAT Image ptr
+D.SysMem       RMB       2                   System Memory Map ptr
+D.Proc         RMB       2                   Current Process ptr
+D.AProcQ       RMB       2                   Active Process Queue
+D.WProcQ       RMB       2                   Waiting Process Queue
+D.SProcQ       RMB       2                   Sleeping Process Queue
+D.ModEnd       RMB       2                   Module Directory end ptr
+D.ModDAT       RMB       2                   Module Dir DAT image end ptr
+D.CldRes       RMB       2                   Cold Restart vector
+D.BtBug        RMB       3                   Boot debug information
+D.Pipe         RMB       2
+
+               ORG       $6B
+D.Crash        RMB       6                   Pointer to CC Crash Routine
+D.CBStrt       RMB       $B                  Reserved for CC warmstart ($71)
+D.QCnt         RMB       1                   Count of number of quick system calls performed
+
+               ORG       $80
+D.DevTbl       RMB       2                   I/O Device Table
+D.PolTbl       RMB       2                   I/O Polling Table
+               RMB       4                   reserved
+D.PthDBT       RMB       2                   Path Descriptor Block Table ptr
+D.DMAReq       RMB       1                   DMA Request flag
+
+********
+* CoCo 3 STUFF COMES NEXT
+* This area is used for the CoCo Hardware Registers
+*
+               ORG       $90
+D.HINIT        RMB       1                   GIME INIT0 register (hardware setup $FF90)
+D.TINIT        RMB       1                   GIME INIT1 register (timer/task register $FF91)
+D.IRQER        RMB       1                   Interrupt enable regsiter ($FF92)
+D.FRQER        RMB       1                   Fast Interrupt enable register ($FF93)
+D.TIMMS        RMB       1                   Timer most significant nibble ($FF94)
+D.TIMLS        RMB       1                   Timer least significant byte ($FF95)
+D.RESV1        RMB       1                   reserved register ($FF96)
+D.RESV2        RMB       1                   reserved register ($FF97)
+D.VIDMD        RMB       1                   video mode register ($FF98)
+D.VIDRS        RMB       1                   video resolution register ($FF99)
+D.BORDR        RMB       1                   border register ($FF9A)
+D.RESV3        RMB       1                   reserved register ($FF9B)
+D.VOFF2        RMB       1                   vertical scroll/offset 2 register ($FF9C)
+D.VOFF1        RMB       1                   vertical offset 1 register ($FF9D)
+D.VOFF0        RMB       1                   vertical offset 0 register ($FF9E)
+D.HOFF0        RMB       1                   horizontal offset 0 register ($FF9F)
+D.Speed        RMB       1                   Speed of COCO CPU 0=slow,1=fast ($A0)
+D.TskIPt       RMB       2                   Task image Pointer table (CC) ($A1)
+D.MemSz        RMB       1                   128/512K memory flag (CC) ($A3)
+D.SSTskN       RMB       1                   System State Task Number (COCO) ($A4)
+D.CCMem        RMB       2                   Pointer to beginning of CC Memory ($A5)
+D.CCStk        RMB       2                   Pointer to top of CC Memory ($A7)
+D.Flip0        RMB       2                   Change to Task 0 ($A9)
+D.Flip1        RMB       2                   Change to reserved Task 1 ($AB)
+D.VIRQ         RMB       2                   VIRQ Polling routine ($AD)
+D.IRQS         RMB       1                   IRQ shadow register (CC Temporary) ($AF)
+D.CLTb         RMB       2                   VIRQ Table address ($B0)
+D.AltIRQ       RMB       2                   Alternate IRQ Vector (CC) ($B2)
+D.GPoll        RMB       2                   CC GIME IRQ enable/disable toggle
+D.Clock2       RMB       2                   CC Clock2 entry address
+               ORG       $C0
+D.SysSvc       RMB       2                   System Service Routine entry
+D.SysDis       RMB       2                   System Service Dispatch Table ptr
+D.SysIRQ       RMB       2                   System IRQ Routine entry
+D.UsrSvc       RMB       2                   User Service Routine entry
+D.UsrDis       RMB       2                   User Service Dispatch Table ptr
+D.UsrIRQ       RMB       2                   User IRQ Routine entry
+D.SysStk       RMB       2                   System stack
+D.SvcIRQ       RMB       2                   In-System IRQ service
+D.SysTsk       RMB       1                   System Task number
+               ORG       $E0
+D.Clock        RMB       2
+D.XSWI3        RMB       2
+D.XSWI2        RMB       2
+D.XFIRQ        RMB       2
+D.XIRQ         RMB       2
+D.XSWI         RMB       2
+D.XNMI         RMB       2
+D.ErrRst       RMB       2
+D.SysVec       RMB       2                   F$xxx system call vector for NitrOS-9 Level 3
+D.SWI3         RMB       2
+D.SWI2         RMB       2
+D.FIRQ         RMB       2
+D.IRQ          RMB       2
+D.SWI          RMB       2
+D.NMI          RMB       2
+
+*************************
+* Level 2 Block Map flags
+*
+NotRAM         EQU       %10000000           Block Not RAM flag
+VidRAM         EQU       %00000100           Block is being used as Video RAM
+ModBlock       EQU       %00000010           Module in Block
+RAMinUse       EQU       %00000001           RAM Block in use flag
+*
+* Service Dispatch Table special entries
+*
+IOEntry        EQU       254
+
+               ENDC      
+
+               TTL       Structure Formats
+               PAG       
+************************************
+* Module Directory Entry Definitions
+*
+               ORG       0
+               IFGT      Level-1
+MD$MPDAT       RMB       2                   Module DAT Image ptr
+MD$MBSiz       RMB       2                   Memory Block size
+               ENDC      
+MD$MPtr        RMB       2                   Module ptr
+MD$Link        RMB       2                   Module Link count
+MD$ESize       EQU       .                   Module Directory Entry size
+
+************************************
+* Module Definitions
+*
+* Universal Module Offsets
+*
+               ORG       0
+M$ID           RMB       2                   ID Code
+M$Size         RMB       2                   Module Size
+M$Name         RMB       2                   Module Name
+M$Type         RMB       1                   Type / Language
+M$Revs         RMB       1                   Attributes / Revision Level
+M$Parity       RMB       1                   Header Parity
+M$IDSize       EQU       .                   Module ID Size
+*
+* Type-Dependent Module Offsets
+*
+* System, File Manager, Device Driver, Program Module
+*
+M$Exec         RMB       2                   Execution Entry Offset
+*
+* Device Driver, Program Module
+*
+M$Mem          RMB       2                   Stack Requirement
+*
+* Device Driver, Device Descriptor Module
+*
+M$Mode         RMB       1                   Device Driver Mode Capabilities
+*
+* Device Descriptor Module
+*
+               ORG       M$IDSize
+M$FMgr         RMB       2                   File Manager Name Offset
+M$PDev         RMB       2                   Device Driver Name Offset
+               RMB       1                   M$Mode (defined above)
+M$Port         RMB       3                   Port Address
+M$Opt          RMB       1                   Device Default Options
+M$DTyp         RMB       1                   Device Type
+IT.DTP         EQU       M$DTyp              Descriptor type offset
+*
+* Configuration Module Entry Offsets
+*
+               ORG       M$IDSize
+MaxMem         RMB       3                   Maximum Free Memory
+PollCnt        RMB       1                   Entries in Interrupt Polling Table
+DevCnt         RMB       1                   Entries in Device Table
+InitStr        RMB       2                   Initial Module Name
+SysStr         RMB       2                   System Device Name
+StdStr         RMB       2                   Standard I/O Pathlist
+BootStr        RMB       2                   Bootstrap Module name
+ProtFlag       RMB       1                   Write protect enable flag
+
+OSLevel        RMB       1                   OS level
+OSVer          RMB       1                   OS version
+OSMajor        RMB       1                   OS major
+OSMinor        RMB       1                   OS minor
+Feature1       RMB       1                   feature byte 1
+Feature2       RMB       1                   feature byte 2
+OSName         RMB       2                   OS revision name string (nul terminated)
+InstallName    RMB       2                   installation name string (nul terminated)
+               RMB       4                   reserved for future use
+
+               IFGT      Level-1
+* -- VTIO area -- (NitrOS-9 Level 2 and above) *
+MonType        RMB       1                   Monitor type (0=CMP,1=RGB,2=MONO)
+MouseInf       RMB       2                   Mouse resolution/Mouse port; was 1, major error RG.
+KeyRptS        RMB       1                   Key repeat start constant
+KeyRptD        RMB       1                   Key repeat delay constant
+               ENDC      
+
+* Feature1 byte definitions
+CRCOn          EQU       %00000001           CRC checking on
+CRCOff         EQU       %00000000           CRC checking off
+Proc6809       EQU       %00000000           6809 procesor
+Proc6309       EQU       %00000010           6309 procesor
+
+               PAG       
+**************************
+* Module Field Definitions
+*
+* ID Field - First two bytes of a NitrOS-9 module
+*
+M$ID1          EQU       $87                 Module ID code byte one
+M$ID2          EQU       $CD                 Module ID code byte two
+M$ID12         EQU       M$ID1*256+M$ID2
+
+*
+* Module Type/Language Field Masks
+*
+TypeMask       EQU       %11110000           Type Field
+LangMask       EQU       %00001111           Language Field
+
+*
+* Module Type Values
+*
+Devic          EQU       $F0                 Device Descriptor Module
+Drivr          EQU       $E0                 Physical Device Driver
+FlMgr          EQU       $D0                 File Manager
+Systm          EQU       $C0                 System Module
+ShellSub       EQU       $50                 Shell+ shell sub module
+Data           EQU       $40                 Data Module
+Multi          EQU       $30                 Multi-Module
+Sbrtn          EQU       $20                 Subroutine Module
+Prgrm          EQU       $10                 Program Module
+
+*
+* Module Language Values
+*
+Objct          EQU       1                   6809 Object Code Module
+ICode          EQU       2                   Basic09 I-code
+PCode          EQU       3                   Pascal P-code
+CCode          EQU       4                   C I-code
+CblCode        EQU       5                   Cobol I-code
+FrtnCode       EQU       6                   Fortran I-code
+Obj6309        EQU       7                   6309 object code
+*
+* Module Attributes / Revision byte
+*
+* Field Masks
+*
+AttrMask       EQU       %11110000           Attributes Field
+RevsMask       EQU       %00001111           Revision Level Field
+*
+* Attribute Flags
+*
+ReEnt          EQU       %10000000           Re-Entrant Module
+ModProt        EQU       %01000000           Gimix Module protect bit (0=protected, 1=write enable)
+ModNat         EQU       %00100000           6309 native mode attribute
+
+********************
+* Device Type Values
+*
+* These values define various classes of devices, which are
+* managed by a file manager module.  The Device Type is embedded
+* in a device's device descriptor.
+*
+DT.SCF         EQU       0                   Sequential Character File Manager
+DT.RBF         EQU       1                   Random Block File Manager
+DT.Pipe        EQU       2                   Pipe File Manager
+DT.SBF         EQU       3                   Sequential Block File Manager
+DT.NFM         EQU       4                   Network File Manager
+DT.CDFM        EQU       5                   CD-ROM File Manager
+DT.RFM			EQU		6					Remote File Manager
+
+*********************
+* CRC Result Constant
+*
+CRCCon1        EQU       $80
+CRCCon23       EQU       $0FE3
+
+               TTL       Process Information
+               PAG       
+********************************
+* Process Descriptor Definitions
+*
+               IFEQ      Level-1
+
+* Level 1 process descriptor defs
+DefIOSiz       EQU       12
+NumPaths       EQU       16                  Number of Local Paths
+
+               ORG       0
+P$ID           RMB       1                   Process ID
+P$PID          RMB       1                   Parent's ID
+P$SID          RMB       1                   Sibling's ID
+P$CID          RMB       1                   Child's ID
+P$SP           RMB       2                   Stack ptr
+P$CHAP         RMB       1                   process chapter number
+P$ADDR         RMB       1                   user address beginning page number
+P$PagCnt       RMB       1                   Memory Page Count
+P$User         RMB       2                   User Index $09
+P$Prior        RMB       1                   Priority $0B
+P$Age          RMB       1                   Age $0C
+P$State        RMB       1                   Status $0D
+P$Queue        RMB       2                   Queue Link (Process ptr) $0E
+P$IOQP         RMB       1                   Previous I/O Queue Link (Process ID) $10
+P$IOQN         RMB       1                   Next     I/O Queue Link (Process ID)
+P$PModul       RMB       2                   Primary Module
+P$SWI          RMB       2                   SWI Entry Point
+P$SWI2         RMB       2                   SWI2 Entry Point
+P$SWI3         RMB       2                   SWI3 Entry Point $18
+P$DIO          RMB       DefIOSiz            default I/O ptrs $1A
+P$PATH         RMB       NumPaths            I/O path table $26
+P$Signal       RMB       1                   Signal Code $36
+P$SigVec       RMB       2                   Signal Intercept Vector
+P$SigDat       RMB       2                   Signal Intercept Data Address
+P$NIO          RMB       4                   additional dio pointers for net
+               RMB       $40-.               unused
+P$Size         EQU       .                   Size of Process Descriptor
+
+*
+* Process State Flags
+*
+SysState       EQU       %10000000
+TimSleep       EQU       %01000000
+TimOut         EQU       %00100000
+ImgChg         EQU       %00010000
+Condem         EQU       %00000010
+Dead           EQU       %00000001
+
+               ELSE      
+
+* Level 2 process descriptor defs
+DefIOSiz       EQU       16                  Default I/O Data Length
+NefIOSiz       EQU       12                  On-Net Default I/O Data Length
+NumPaths       EQU       16                  Number of Local Paths
+
+               ORG       0
+P$ID           RMB       1                   Process ID
+P$PID          RMB       1                   Parent's ID
+P$SID          RMB       1                   Sibling's ID
+P$CID          RMB       1                   Child's ID
+P$SP           RMB       2                   Stack ptr
+P$Task         RMB       1                   Task Number
+P$PagCnt       RMB       1                   Memory Page Count
+P$User         RMB       2                   User Index
+P$Prior        RMB       1                   Priority
+P$Age          RMB       1                   Age
+P$State        RMB       1                   Status
+P$Queue        RMB       2                   Queue Link (Process ptr)
+P$IOQP         RMB       1                   Previous I/O Queue Link (Process ID)
+P$IOQN         RMB       1                   Next I/O Queue Link (Process ID)
+P$PModul       RMB       2                   Primary Module
+P$SWI          RMB       2                   SWI Entry Point
+P$SWI2         RMB       2                   SWI2 Entry Point
+P$SWI3         RMB       2                   SWI3 Entry Point
+P$Signal       RMB       1                   Signal Code
+P$SigVec       RMB       2                   Signal Intercept Vector
+P$SigDat       RMB       2                   Signal Intercept Data Address
+P$DeadLk       RMB       1                   Dominant proc ID if I/O locked
+               RMB       $20-.               unused
+P$DIO          RMB       DefIOSiz            Default I/O ptrs
+P$Path         RMB       NumPaths            I/O Path Table
+P$DATImg       RMB       64                  DAT Image
+P$Links        RMB       32                  Block Link counts
+P$NIO          RMB       6*2                 additional DIO ptrs for net, compatible  with 68k
+P$SelP         RMB       1                   Selected Path for COCO Windows (Default 0)
+P$UTicks       RMB       4                   proc User Tick counter        (L2V3)
+P$STicks       RMB       4                   proc System Tick counter      (L2V3)
+P$FCalls       RMB       4                   proc F$ call counter          (L2V3)
+P$ICalls       RMB       4                   proc I$ call counter          (L2V3)
+P$DatBeg       RMB       3                   proc Date of creation (Y/M/D) (L2V3)
+P$TimBeg       RMB       3                   proc Time of creation (H/M/S) (L2V3)
+P$Alarm        RMB       6
+               RMB       $200-.              Local stack
+P$Stack        EQU       .                   Top of Stack
+P$Size         EQU       .                   Size of Process Descriptor
+
+*
+* Process State Flags
+*
+SysState       EQU       %10000000
+TimSleep       EQU       %01000000
+TimOut         EQU       %00100000
+ImgChg         EQU       %00010000
+Suspend        EQU       %00001000
+Condem         EQU       %00000010
+Dead           EQU       %00000001
+
+               ENDC      
+
+               TTL       NitrOS-9 I/O Symbolic Definitions
+               PAG       
+*************************
+* Path Descriptor Offsets
+*
+               ORG       0
+PD.PD          RMB       1                   Path Number
+PD.MOD         RMB       1                   Mode (Read/Write/Update)
+PD.CNT         RMB       1                   Number of Open Images
+PD.DEV         RMB       2                   Device Table Entry Address
+PD.CPR         RMB       1                   Current Process
+PD.RGS         RMB       2                   Caller's Register Stack
+PD.BUF         RMB       2                   Buffer Address
+PD.FST         RMB       32-.                File Manager's Storage
+PD.OPT         EQU       .                   PD GetSts(0) Options
+PD.DTP         RMB       1                   Device Type
+               RMB       64-.                Path options
+PDSIZE         EQU       .
+
+*
+* Pathlist Special Symbols
+*
+PDELIM         EQU       '/                  Pathlist Name Separator
+PDIR           EQU       '.                  Directory
+PENTIR         EQU       '@                  Entire Device
+
+               PAG       
+****************************
+* File Manager Entry Offsets
+*
+               ORG       0
+FMCREA         RMB       3                   Create (Open New) File
+FMOPEN         RMB       3                   Open File
+FMMDIR         RMB       3                   Make Directory
+FMCDIR         RMB       3                   Change Directory
+FMDLET         RMB       3                   Delete File
+FMSEEK         RMB       3                   Position File
+FMREAD         RMB       3                   Read from File
+FMWRIT         RMB       3                   Write to File
+FMRDLN         RMB       3                   ReadLn
+FMWRLN         RMB       3                   WritLn
+FMGSTA         RMB       3                   Get File Status
+FMSSTA         RMB       3                   Set File Status
+FMCLOS         RMB       3                   Close File
+
+*****************************
+* Device Driver Entry Offsets
+*
+               ORG       0
+D$INIT         RMB       3                   Device Initialization
+D$READ         RMB       3                   Read from Device
+D$WRIT         RMB       3                   Write to Device
+D$GSTA         RMB       3                   Get Device Status
+D$PSTA         RMB       3                   Put Device Status
+D$TERM         RMB       3                   Device Termination
+
+*********************
+* Device Table Format
+*
+               ORG       0
+V$DRIV         RMB       2                   Device Driver module
+V$STAT         RMB       2                   Device Driver Static storage
+V$DESC         RMB       2                   Device Descriptor module
+V$FMGR         RMB       2                   File Manager module
+V$USRS         RMB       1                   use count
+               IFGT      Level-1
+V$DRIVEX       RMB       2                   Device Driver execution address
+V$FMGREX       RMB       2                   File Manager execution address
+               ENDC      
+DEVSIZ         EQU       .
+
+*******************************
+* Device Static Storage Offsets
+*
+               ORG       0
+V.PAGE         RMB       1                   Port Extended Address
+V.PORT         RMB       2                   Device 'Base' Port Address
+V.LPRC         RMB       1                   Last Active Process ID
+V.BUSY         RMB       1                   Active Process ID (0=UnBusy)
+V.WAKE         RMB       1                   Active PD if Driver MUST Wake-up
+V.USER         EQU       .                   Driver Allocation Origin
+
+********************************
+* Interrupt Polling Table Format
+*
+               ORG       0
+Q$POLL         RMB       2                   Absolute Polling Address
+Q$FLIP         RMB       1                   Flip (EOR) Byte ..normally Zero
+Q$MASK         RMB       1                   Polling Mask (after Flip)
+Q$SERV         RMB       2                   Absolute Service routine Address
+Q$STAT         RMB       2                   Static Storage Address
+Q$PRTY         RMB       1                   Priority (Low Numbers=Top Priority)
+               IFGT      Level-1
+Q$MAP          RMB       2                   NitrOS-9 Level 2 and above
+               ENDC      
+POLSIZ         EQU       .
+
+********************
+* VIRQ packet format
+*
+               ORG       0
+Vi.Cnt         RMB       2                   count down counter
+Vi.Rst         RMB       2                   reset value for counter
+Vi.Stat        RMB       1                   status byte
+Vi.PkSz        EQU       .
+
+Vi.IFlag       EQU       %00000001           status byte virq flag
+
+               PAG       
+*************************************
+* Machine Characteristics Definitions
+*
+R$CC           EQU       0                   Condition Codes register
+R$A            EQU       1                   A Accumulator
+R$B            EQU       2                   B Accumulator
+R$D            EQU       R$A                 Combined A:B Accumulator
+               IFNE      H6309
+R$E            EQU       3                   E Accumulator
+R$F            EQU       4                   F Accumulator
+R$W            EQU       R$E                 Combined E:F Accumulator
+R$Q            EQU       R$A                 Combined A:B:E:F Accumulator
+R$DP           EQU       5                   Direct Page register
+R$X            EQU       6                   X Index register
+R$Y            EQU       8                   Y Index register
+R$U            EQU       10                  User Stack register
+R$PC           EQU       12                  Program Counter register
+R$Size         EQU       14                  Total register package size
+               ELSE      
+R$DP           EQU       3                   Direct Page register
+R$X            EQU       4                   X Index register
+R$Y            EQU       6                   Y Index register
+R$U            EQU       8                   User Stack register
+R$PC           EQU       10                  Program Counter register
+R$Size         EQU       12                  Total register package size
+               ENDC      
+
+* MD register masks
+* 6309 definitions
+DIV0           EQU       %10000000           division by 0 trap flag       : 1 = trap occured
+badinstr       EQU       %01000000           illegal instruction trap flag : 1 = trap occured
+
+Entire         EQU       %10000000           Full Register Stack flag
+FIRQMask       EQU       %01000000           Fast-Interrupt Mask bit
+HalfCrry       EQU       %00100000           Half Carry flag
+IRQMask        EQU       %00010000           Interrupt Mask bit
+Negative       EQU       %00001000           Negative flag
+Zero           EQU       %00000100           Zero flag
+TwosOvfl       EQU       %00000010           Two's Comp Overflow flag
+Carry          EQU       %00000001           Carry bit
+IntMasks       EQU       IRQMask+FIRQMask
+Sign           EQU       %10000000           sign bit
+
+               TTL       Error Code Definitions
+               PAG       
+************************
+* Error Code Definitions
+*
+* Basic09 Error Codes
+*
+               ORG       10
+E$UnkSym       RMB       1                   Unknown symbol
+E$ExcVrb       RMB       1                   Excessive verbage
+E$IllStC       RMB       1                   Illegal statement construction
+E$ICOvf        RMB       1                   I-code overflow
+E$IChRef       RMB       1                   Illegal channel reference
+E$IllMod       RMB       1                   Illegal mode
+E$IllNum       RMB       1                   Illegal number
+E$IllPrf       RMB       1                   Illegal prefix
+E$IllOpd       RMB       1                   Illegal operand
+E$IllOpr       RMB       1                   Illegal operator
+E$IllRFN       RMB       1                   Illegal record field name
+E$IllDim       RMB       1                   Illegal dimension
+E$IllLit       RMB       1                   Illegal literal
+E$IllRet       RMB       1                   Illegal relational
+E$IllSfx       RMB       1                   Illegal type suffix
+E$DimLrg       RMB       1                   Dimension too large
+E$LinLrg       RMB       1                   Line number too large
+E$NoAssg       RMB       1                   Missing assignment statement
+E$NoPath       RMB       1                   Missing path number
+E$NoComa       RMB       1                   Missing coma
+E$NoDim        RMB       1                   Missing dimension
+E$NoDO         RMB       1                   Missing DO statement
+E$MFull        RMB       1                   Memory full
+E$NoGoto       RMB       1                   Missing GOTO
+E$NoLPar       RMB       1                   Missing left parenthesis
+E$NoLRef       RMB       1                   Missing line reference
+E$NoOprd       RMB       1                   Missing operand
+E$NoRPar       RMB       1                   Missing right parenthesis
+E$NoTHEN       RMB       1                   Missing THEN statement
+E$NoTO         RMB       1                   Missing TO statement
+E$NoVRef       RMB       1                   Missing variable reference
+E$EndQou       RMB       1                   Missing end quote
+E$SubLrg       RMB       1                   Too many subscripts
+E$UnkPrc       RMB       1                   Unknown procedure
+E$MulPrc       RMB       1                   Multiply defined procedure
+E$DivZer       RMB       1                   Divice by zero
+E$TypMis       RMB       1                   Operand type mismatch
+E$StrOvf       RMB       1                   String stack overflow
+E$NoRout       RMB       1                   Unimplemented routine
+E$UndVar       RMB       1                   Undefined variable
+E$FltOvf       RMB       1                   Floating Overflow
+E$LnComp       RMB       1                   Line with compiler error
+E$ValRng       RMB       1                   Value out of range for destination
+E$SubOvf       RMB       1                   Subroutine stack overflow
+E$SubUnd       RMB       1                   Subroutine stack underflow
+E$SubRng       RMB       1                   Subscript out of range
+E$ParmEr       RMB       1                   Paraemter error
+E$SysOvf       RMB       1                   System stack overflow
+E$IOMism       RMB       1                   I/O type mismatch
+E$IONum        RMB       1                   I/O numeric input format bad
+E$IOConv       RMB       1                   I/O conversion: number out of range
+E$IllInp       RMB       1                   Illegal input format
+E$IOFRpt       RMB       1                   I/O format repeat error
+E$IOFSyn       RMB       1                   I/O format syntax error
+E$IllPNm       RMB       1                   Illegal path number
+E$WrSub        RMB       1                   Wrong number of subscripts
+E$NonRcO       RMB       1                   Non-record type operand
+E$IllA         RMB       1                   Illegal argument
+E$IllCnt       RMB       1                   Illegal control structure
+E$UnmCnt       RMB       1                   Unmatched control structure
+E$IllFOR       RMB       1                   Illegal FOR variable
+E$IllExp       RMB       1                   Illegal expression type
+E$IllDec       RMB       1                   Illegal declarative statement
+E$ArrOvf       RMB       1                   Array size overflow
+E$UndLin       RMB       1                   Undefined line number
+E$MltLin       RMB       1                   Multiply defined line number
+E$MltVar       RMB       1                   Multiply defined variable
+E$IllIVr       RMB       1                   Illegal input variable
+E$SeekRg       RMB       1                   Seek out of range
+E$NoData       RMB       1                   Missing data statement
+
+*
+* System Dependent Error Codes
+*
+
+* Level 2 windowing error codes
+               ORG       183
+E$IWTyp        RMB       1                   Illegal window type
+E$WADef        RMB       1                   Window already defined
+E$NFont        RMB       1                   Font not found
+E$StkOvf       RMB       1                   Stack overflow
+E$IllArg       RMB       1                   Illegal argument
+               RMB       1                   reserved
+E$ICoord       RMB       1                   Illegal coordinates
+E$Bug          RMB       1                   Bug (should never be returned)
+E$BufSiz       RMB       1                   Buffer size is too small
+E$IllCmd       RMB       1                   Illegal command
+E$TblFul       RMB       1                   Screen or window table is full
+E$BadBuf       RMB       1                   Bad/Undefined buffer number
+E$IWDef        RMB       1                   Illegal window definition
+E$WUndef       RMB       1                   Window undefined
+
+E$Up           RMB       1                   Up arrow pressed on SCF I$ReadLn with PD.UP enabled
+E$Dn           RMB       1                   Down arrow pressed on SCF I$ReadLn with PD.DOWN enabled
+E$Alias        RMB       1
+
+
+*
+* Standard NitrOS-9 Error Codes
+*
+               ORG       200
+E$PthFul       RMB       1                   Path Table full
+E$BPNum        RMB       1                   Bad Path Number
+E$Poll         RMB       1                   Polling Table Full
+E$BMode        RMB       1                   Bad Mode
+E$DevOvf       RMB       1                   Device Table Overflow
+E$BMID         RMB       1                   Bad Module ID
+E$DirFul       RMB       1                   Module Directory Full
+E$MemFul       RMB       1                   Process Memory Full
+E$UnkSvc       RMB       1                   Unknown Service Code
+E$ModBsy       RMB       1                   Module Busy
+E$BPAddr       RMB       1                   Bad Page Address
+E$EOF          RMB       1                   End of File
+               RMB       1
+E$NES          RMB       1                   Non-Existing Segment
+E$FNA          RMB       1                   File Not Accesible
+E$BPNam        RMB       1                   Bad Path Name
+E$PNNF         RMB       1                   Path Name Not Found
+E$SLF          RMB       1                   Segment List Full
+E$CEF          RMB       1                   Creating Existing File
+E$IBA          RMB       1                   Illegal Block Address
+E$HangUp       RMB       1                   Carrier Detect Lost
+E$MNF          RMB       1                   Module Not Found
+               RMB       1
+E$DelSP        RMB       1                   Deleting Stack Pointer memory
+E$IPrcID       RMB       1                   Illegal Process ID
+E$BPrcID       EQU       E$IPrcID            Bad Process ID (formerly #238)
+               RMB       1
+E$NoChld       RMB       1                   No Children
+E$ISWI         RMB       1                   Illegal SWI code
+E$PrcAbt       RMB       1                   Process Aborted
+E$PrcFul       RMB       1                   Process Table Full
+E$IForkP       RMB       1                   Illegal Fork Parameter
+E$KwnMod       RMB       1                   Known Module
+E$BMCRC        RMB       1                   Bad Module CRC
+E$USigP        RMB       1                   Unprocessed Signal Pending
+E$NEMod        RMB       1                   Non Existing Module
+E$BNam         RMB       1                   Bad Name
+E$BMHP         RMB       1                   (bad module header parity)
+E$NoRAM        RMB       1                   No (System) RAM Available
+E$DNE          RMB       1                   Directory not empty
+E$NoTask       RMB       1                   No available Task number
+               RMB       $F0-.               reserved
+E$Unit         RMB       1                   Illegal Unit (drive)
+E$Sect         RMB       1                   Bad Sector number
+E$WP           RMB       1                   Write Protect
+E$CRC          RMB       1                   Bad Check Sum
+E$Read         RMB       1                   Read Error
+E$Write        RMB       1                   Write Error
+E$NotRdy       RMB       1                   Device Not Ready
+E$Seek         RMB       1                   Seek Error
+E$Full         RMB       1                   Media Full
+E$BTyp         RMB       1                   Bad Type (incompatable) media
+E$DevBsy       RMB       1                   Device Busy
+E$DIDC         RMB       1                   Disk ID Change
+E$Lock         RMB       1                   Record is busy (locked out)
+E$Share        RMB       1                   Non-sharable file busy
+E$DeadLk       RMB       1                   I/O Deadlock error
+
+
+               IFEQ      Level-1
+
+********************************
+* Boot defs for NitrOS-9 Level 1
+*
+* These defs are not strictly for 'Boot', but are for booting the
+* system.
+*
+Bt.Start       EQU       $EE00               Start address of the boot track in memory
+
+* Boot area size on Dragon is only 16 sectors=4K
+               IFNE      DRAGON
+Bt.Size        EQU       $1000               Max size of boot file
+               ELSE      
+Bt.Size        EQU       $1080               Maximum size of bootfile
+               ENDC      
+
+               ELSE      
+
+******************************************
+* Boot defs for NitrOS-9 Level 2 and above
+*
+* These defs are not strictly for 'Boot', but are for booting the
+* system.
+*
+Bt.Block       EQU       $3B                 Block to map in for the 'OS9BOOT' screen
+Bt.Flag        EQU       $8A34               Flag in Bt.Block to verify that it's unchanged
+Bt.Offst       EQU       2                   Offset into the screen where the current ptr is
+Bt.Start       EQU       $ED00               Start address of the boot track in memory
+
+               ENDC      
+
+* Boot area on the Dragon starts on track 0 sector 2, imediatly 
+* after the blockmap.
+* On the CoCo, the boot track is all of track 34
+
+               IFNE      DRAGON
+Bt.Track       EQU       0                   Boot track
+Bt.Sec         EQU       2                   Start LSN of boot area on boot track
+               ELSE      
+Bt.Track       EQU       34                  Boot track
+Bt.Sec         EQU       0                   Start LSN of boot area on boot track
+               ENDC      
+
+
+               IFGT      Level-2
+***************************
+* Level 3 Defs
+*
+* These definitions apply to NitrOS-9 Level 3
+*
+L3.Start       EQU       $2000               Start off at slot 1
+L3.Size        EQU       $40                 Go for 64 pages: 2 slots total
+L3.Blks        EQU       L3.Size/$20         Number of slots
+L3.End         EQU       L3.Start+L3.Size*$0100 end of L3 memory
+L3.SCF         EQU       $0660               SCF block ptr
+L3.RBF         EQU       L3.SCF+1            RBF block ptr
+               ENDC      
+
+               ENDC      
--- a/defs/os9defs	Fri Feb 24 06:41:48 2012 -0600
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1293 +0,0 @@
-               IFNE      OS9DEFS-1
-
-OS9DEFS        SET       1
-
-********************************************************************
-* OS9Defs - NitrOS-9 System Definitions
-*
-* $Id$
-*
-* Edt/Rev  YYYY/MM/DD  Modified by
-* Comment
-* ------------------------------------------------------------------
-*          1985/08/29  KMZ
-* Fixed DT.SBF/NFM values to 3/4
-*
-*          1985/09/01  KMZ
-* Added SS.FDInf, SS.Attr to accept 68K request thru NET.
-*
-*          1985/09/03  KMZ/Robert F. Doggett
-* Eliminated E$BPrcID, made Error #238 become E$DNE for
-* 68000 compatability.
-*
-*          1986/04/15  Mark G. Hawkins
-* F$AlHRAM System call added for COCO.
-*
-*          1986/09/08  Mark G. Hawkins
-* F$Alarm for COCO Clock Module.
-*
-*          1986/09/17  Mark G. Hawkins
-* SS.Tone For COCO.
-*
-*          1986/09/23  Mark G. Hawkins
-* Added F$NMLink and F$NMLoad for COCO.
-*
-*          1986/09/30  Mark G. Hawkins
-* Added Reserved User $70 to $7f in sytem calls.
-*
-*          1986/09/30  Mark G. Hawkins
-* Created Color Computer 3 Version of OS9Defs.
-*
-*          1998/10/03  Boisy G. Pitre
-* Consoldated Level 1/Level 2 os9defs.
-*
-*          2002/04/04  Boisy G. Pitre
-* Consoldated Level 2/Level 2 V3 os9defs.
-*
-*          2002/04/30  Boisy G. Pitre
-* Added NitrOS-9 definitions.
-*
-*          2003/05/30  Boisy G. Pitre
-* Added WD1002 sys vars to Level One section.
-*
-*          2003/06/02  Boisy G. Pitre
-* Fixed incorrectly ordered D.X*** system globals for OS-9 Level One and
-* changed the sizes from 2 to 3 bytes.
-* DT.NFM is now the same for both Level One and Level Two.
-* Added DT.CDFM type for future CD-ROM file manager
-*
-*          2003/11/05  Robert Gault
-* Fixed MouseInf. Made it rmb 2 as it should be. Also changes to init and cc3io.
-*
-*	       2005/11/02  P.Harvey-Smith
-* Added definitions for boot areas on Dragon computers.
-*
-*	       2006/03/03  Boisy G. Pitre
-* Added F$Debug and D.DbgMem areas, common to all levels of NitrOS-9
-
-               NAM       OS9Defs
-               IFEQ      Level-1
-               TTL       NitrOS-9 Level 1 System Symbol Definitions
-               ELSE      
-               IFEQ      Level-2
-               TTL       NitrOS-9 Level 2 System Symbol Definitions
-               ELSE      
-               TTL       NitrOS-9 Level 3 System Symbol Definitions
-               ENDC      
-               ENDC      
-
-* Common definitions
-true           EQU       1                   useful name
-false          EQU       0                   useful name
-
-               PAG       
-*****************************************
-* System Service Request Code Definitions
-*
-               ORG       0
-F$Link         RMB       1                   Link to Module
-F$Load         RMB       1                   Load Module from File
-F$UnLink       RMB       1                   Unlink Module
-F$Fork         RMB       1                   Start New Process
-F$Wait         RMB       1                   Wait for Child Process to Die
-F$Chain        RMB       1                   Chain Process to New Module
-F$Exit         RMB       1                   Terminate Process
-F$Mem          RMB       1                   Set Memory Size
-F$Send         RMB       1                   Send Signal to Process
-F$Icpt         RMB       1                   Set Signal Intercept
-F$Sleep        RMB       1                   Suspend Process
-F$SSpd         RMB       1                   Suspend Process
-F$ID           RMB       1                   Return Process ID
-F$SPrior       RMB       1                   Set Process Priority
-F$SSWI         RMB       1                   Set Software Interrupt
-F$PErr         RMB       1                   Print Error
-F$PrsNam       RMB       1                   Parse Pathlist Name
-F$CmpNam       RMB       1                   Compare Two Names
-F$SchBit       RMB       1                   Search Bit Map
-F$AllBit       RMB       1                   Allocate in Bit Map
-F$DelBit       RMB       1                   Deallocate in Bit Map
-F$Time         RMB       1                   Get Current Time
-F$STime        RMB       1                   Set Current Time
-F$CRC          RMB       1                   Generate CRC ($17)
-
-               IFGT      Level-1
-
-* NitrOS-9 Level 2 system calls
-F$GPrDsc       RMB       1                   Get Process Descriptor copy ($18)
-F$GBlkMp       RMB       1                   Get System Block Map copy ($19)
-F$GModDr       RMB       1                   Get Module Directory copy ($1A)
-F$CpyMem       RMB       1                   Copy External Memory ($1B)
-F$SUser        RMB       1                   Set User ID number ($1C)
-F$UnLoad       RMB       1                   Unlink Module by name ($1D)
-F$Alarm        RMB       1                   Color Computer 3 Alarm Call ($1E)
-               RMB       2                   Reserved - For overlap of other systems ($1F)
-F$NMLink       RMB       1                   Color Computer 3 Non-Mapping Link ($21)
-F$NMLoad       RMB       1                   Color Computer 3 Non-Mapping Load ($22)
-
-               ELSE      
-
-* NitrOS-9 Level 1 system call padding
-               RMB       11
-
-               ENDC      
-
-F$Debug        RMB       1                   Drop the system into the debugger ($23)
-
-               IFGT      Level-1
-
-               ORG       $25
-F$TPS          RMB       1                   Return System's Ticks Per Second
-F$TimAlm       RMB       1                   CoCo individual process alarm call
-
-               ENDC      
-
-               ORG       $27                 Beginning of System Reserved Calls
-* NitrOS-9 common system calls
-F$VIRQ         RMB       1                   Install/Delete Virtual IRQ
-F$SRqMem       RMB       1                   System Memory Request
-F$SRtMem       RMB       1                   System Memory Return
-F$IRQ          RMB       1                   Enter IRQ Polling Table
-F$IOQu         RMB       1                   Enter I/O Queue
-F$AProc        RMB       1                   Enter Active Process Queue
-F$NProc        RMB       1                   Start Next Process
-F$VModul       RMB       1                   Validate Module
-F$Find64       RMB       1                   Find Process/Path Descriptor
-F$All64        RMB       1                   Allocate Process/Path Descriptor
-F$Ret64        RMB       1                   Return Process/Path Descriptor
-F$SSvc         RMB       1                   Service Request Table Initialization
-F$IODel        RMB       1                   Delete I/O Module
-
-               IFGT      Level-1
-
-F$SLink        RMB       1                   System Link
-F$Boot         RMB       1                   Bootstrap System
-F$BtMem        RMB       1                   Bootstrap Memory Request
-F$GProcP       RMB       1                   Get Process ptr
-F$Move         RMB       1                   Move Data (low bound first)
-F$AllRAM       RMB       1                   Allocate RAM blocks
-F$AllImg       RMB       1                   Allocate Image RAM blocks
-F$DelImg       RMB       1                   Deallocate Image RAM blocks
-F$SetImg       RMB       1                   Set Process DAT Image
-F$FreeLB       RMB       1                   Get Free Low Block
-F$FreeHB       RMB       1                   Get Free High Block
-F$AllTsk       RMB       1                   Allocate Process Task number
-F$DelTsk       RMB       1                   Deallocate Process Task number
-F$SetTsk       RMB       1                   Set Process Task DAT registers
-F$ResTsk       RMB       1                   Reserve Task number
-F$RelTsk       RMB       1                   Release Task number
-F$DATLog       RMB       1                   Convert DAT Block/Offset to Logical
-F$DATTmp       RMB       1                   Make temporary DAT image (Obsolete)
-F$LDAXY        RMB       1                   Load A [X,[Y]]
-F$LDAXYP       RMB       1                   Load A [X+,[Y]]
-F$LDDDXY       RMB       1                   Load D [D+X,[Y]]
-F$LDABX        RMB       1                   Load A from 0,X in task B
-F$STABX        RMB       1                   Store A at 0,X in task B
-F$AllPrc       RMB       1                   Allocate Process Descriptor
-F$DelPrc       RMB       1                   Deallocate Process Descriptor
-F$ELink        RMB       1                   Link using Module Directory Entry
-F$FModul       RMB       1                   Find Module Directory Entry
-F$MapBlk       RMB       1                   Map Specific Block
-F$ClrBlk       RMB       1                   Clear Specific Block
-F$DelRAM       RMB       1                   Deallocate RAM blocks
-F$GCMDir       RMB       1                   Pack module directory
-F$AlHRAM       RMB       1                   Allocate HIGH RAM Blocks
-
-* Alan DeKok additions
-F$ReBoot       RMB       1                   Reboot machine (reload OS9Boot) or drop to RSDOS
-F$CRCMod       RMB       1                   CRC mode, toggle or report current status
-F$XTime        RMB       1                   Get Extended time packet from RTC (fractions of second)
-F$VBlock       RMB       1                   Verify modules in a block of memory, add to module directory
-
-               ENDC      
-
-*
-* Numbers $70 through $7F are reserved for user definitions
-*
-               ORG       $70
-
-               IFEQ      Level-1
-
-               RMB       16                  Reserved for user definition
-
-               ELSE      
-
-F$RegDmp       RMB       1                   Ron Lammardo's debugging register dump
-F$NVRAM        RMB       1                   Non Volatile RAM (RTC battery backed static) read/write
-
-               RMB       $80-.               Reserved for user definitions
-               ENDC      
-
-               PAG       
-**************************************
-* I/O Service Request Code Definitions
-*
-               ORG       $80
-I$Attach       RMB       1                   Attach I/O Device
-I$Detach       RMB       1                   Detach I/O Device
-I$Dup          RMB       1                   Duplicate Path
-I$Create       RMB       1                   Create New File
-I$Open         RMB       1                   Open Existing File
-I$MakDir       RMB       1                   Make Directory File
-I$ChgDir       RMB       1                   Change Default Directory
-I$Delete       RMB       1                   Delete File
-I$Seek         RMB       1                   Change Current Position
-I$Read         RMB       1                   Read Data
-I$Write        RMB       1                   Write Data
-I$ReadLn       RMB       1                   Read Line of ASCII Data
-I$WritLn       RMB       1                   Write Line of ASCII Data
-I$GetStt       RMB       1                   Get Path Status
-I$SetStt       RMB       1                   Set Path Status
-I$Close        RMB       1                   Close Path
-I$DeletX       RMB       1                   Delete from current exec dir
-
-*******************
-* File Access Modes
-*
-READ.          EQU       %00000001
-WRITE.         EQU       %00000010
-UPDAT.         EQU       READ.+WRITE.
-EXEC.          EQU       %00000100
-PREAD.         EQU       %00001000
-PWRIT.         EQU       %00010000
-PEXEC.         EQU       %00100000
-SHARE.         EQU       %01000000
-DIR.           EQU       %10000000
-ISIZ.          EQU       %00100000
-
-**************
-* Signal Codes
-*
-               ORG       0
-S$Kill         RMB       1                   Non-Interceptable Abort
-S$Wake         RMB       1                   Wake-up Sleeping Process
-S$Abort        RMB       1                   Keyboard Abort
-S$Intrpt       RMB       1                   Keyboard Interrupt
-S$Window       RMB       1                   Window Change
-S$HUP          EQU       S$Window            Hang Up
-S$Alarm        RMB       1                   CoCo individual process' alarm signal
-
-               PAG       
-**********************************
-* Status Codes for GetStat/GetStat
-*
-               ORG       0
-SS.Opt         RMB       1                   Read/Write PD Options
-SS.Ready       RMB       1                   Check for Device Ready
-SS.Size        RMB       1                   Read/Write File Size
-SS.Reset       RMB       1                   Device Restore
-SS.WTrk        RMB       1                   Device Write Track
-SS.Pos         RMB       1                   Get File Current Position
-SS.EOF         RMB       1                   Test for End of File
-SS.Link        RMB       1                   Link to Status routines
-SS.ULink       RMB       1                   Unlink Status routines
-SS.Feed        RMB       1                   Issue form feed
-SS.Frz         RMB       1                   Freeze DD. information
-SS.SPT         RMB       1                   Set DD.TKS to given value
-SS.SQD         RMB       1                   Sequence down hard disk
-SS.DCmd        RMB       1                   Send direct command to disk
-SS.DevNm       RMB       1                   Return Device name (32-bytes at [X])
-SS.FD          RMB       1                   Return File Descriptor (Y-bytes at [X])
-SS.Ticks       RMB       1                   Set Lockout honor duration
-SS.Lock        RMB       1                   Lock/Release record
-SS.DStat       RMB       1                   Return Display Status (CoCo)
-SS.Joy         RMB       1                   Return Joystick Value (CoCo)
-SS.BlkRd       RMB       1                   Block Read
-SS.BlkWr       RMB       1                   Block Write
-SS.Reten       RMB       1                   Retension cycle
-SS.WFM         RMB       1                   Write File Mark
-SS.RFM         RMB       1                   Read past File Mark
-SS.ELog        RMB       1                   Read Error Log
-SS.SSig        RMB       1                   Send signal on data ready
-SS.Relea       RMB       1                   Release device
-SS.AlfaS       RMB       1                   Return Alfa Display Status (CoCo, SCF/GetStat)
-SS.Attr        EQU       SS.AlfaS            To serve 68K/RBF/SetStat only, thru NET
-SS.Break       RMB       1                   Send break signal out acia
-SS.RsBit       RMB       1                   Reserve bitmap sector (do not allocate in) LSB(X)=sct#
-               RMB       1                   Reserved
-SS.FDInf       EQU       $20                 To serve 68K/RBF/GetStat only, thru NET
-               RMB       4                   Reserve $20-$23 for Japanese version (Hoshi)
-SS.SetMF       RMB       1                   Reserve $24 for Gimix G68 (Flex compatability?)
-SS.Cursr       RMB       1                   Cursor information for COCO
-SS.ScSiz       RMB       1                   Return screen size for COCO
-SS.KySns       RMB       1                   Getstat/SetStat for COCO keyboard
-SS.ComSt       RMB       1                   Getstat/SetStat for Baud/Parity
-SS.Open        RMB       1                   SetStat to tell driver a path was opened
-SS.Close       RMB       1                   SetStat to tell driver a path was closed
-SS.HngUp       RMB       1                   SetStat to tell driver to hangup phone
-SS.FSig        RMB       1                   New signal for temp locked files
-SS.DSize       EQU       SS.ScSiz            Return disk size (RBF GetStat)
-SS.VarSect     EQU       SS.DStat            Variable Sector Size (RBF GetStat)
-
-* System Specific and User defined codes above $80
-               ORG       $80
-SS.AAGBf       RMB       1                   SetStat to Allocate Additional Graphic Buffer
-SS.SLGBf       RMB       1                   SetStat to Select a different Graphic Buffer
-SS.Mount       RMB       1                   Network 4 Mount Setstat
-SS.RdNet       RMB       1                   Read Raw Sector from Network 4 Omnidrive
-SS.MpGPB       RMB       1                   SetStat to request a Get/Put Buffer be mapped in workspace
-SS.Slots       RMB       1                   Network 4 slots? getstat
-
-               IFGT      Level-1
-
-* Level 2 Windowing
-SS.WnSet       RMB       1                   Set up High Level Windowing Information
-SS.MnSel       RMB       1                   Request High level Menu Handler take determine next event
-SS.SBar        RMB       1                   SetStat to set position block on Window scroll bars
-SS.Mouse       RMB       1                   Return Mouse information packet (COCO)
-SS.MsSig       RMB       1                   SetStat to tell driver to send signal on mouse event
-SS.AScrn       RMB       1                   Allocate a screen for application poking
-SS.DScrn       RMB       1                   Display a screen allocated by SS.AScrn
-SS.FScrn       RMB       1                   Free a screen allocated by SS.AScrn
-SS.PScrn       RMB       1                   Polymorph Screen into different screen type
-SS.ScInf       RMB       1                   Get Current screen info for direct writes
-               RMB       1                   Reserved
-SS.Palet       RMB       1                   Return palette information
-SS.Montr       RMB       1                   Get and Set Monitor Type
-SS.ScTyp       RMB       1                   Get screen type information
-SS.GIP         RMB       1                   Global Input Parameters (SetStat)
-SS.UMBar       RMB       1                   update menu bar (SetStat)
-SS.FBRgs       RMB       1                   return color registers (GetStat)
-SS.DfPal       RMB       1                   set/return default palette registers (Getstat/Setstat)
-SS.Tone        RMB       1                   Generate a tone using 6 bit sound
-SS.GIP2        RMB       1                   Global Input Params #2 (L2V3)
-SS.AnPal       RMB       1                   Animate palettes (L2V3)
-SS.FndBf       RMB       1                   Find named buffer (L2V3)
-
-* sc6551 defined
-SS.CDSta       EQU       SS.GIP2
-SS.CDSig       EQU       SS.AnPal
-SS.CDRel       EQU       SS.FndBf
-               ELSE      
-* These are wide open in Level 1
-               RMB       19
-
-* sc6551 defined
-SS.CDSta       RMB       1
-SS.CDSig       RMB       1
-SS.CDRel       RMB       1
-               ENDC      
-
-               ORG       $A0
-*
-* New Default SCF input buffer Set status call
-SS.Fill        RMB       1                   Pre-load SCF device input buffer
-SS.Hist        RMB       1                   Enable command-line history easily
-
-
-               ORG       $B0
-*
-* New WDDisk get/set status calls
-SS.ECC         RMB       1                   ECC corrected data error enable/disable (GetStat/SetStat)
-
-*
-               IFGT      Level-1
-
-* VRN get/set status calls.  Named by Alan DeKok.
-SS.VCtr        EQU       $80                 Return FS2 total VIRQ counter
-SS.VSig        EQU       $81                 Return FS2 number of signals sent
-
-SS.FClr        EQU       $81                 Set/clear FS2 VIRQ
-SS.FSet        EQU       $C7                 Set FS2+ VIRQ
-SS.KSet        EQU       $C8                 Set KQ3 VIRQ
-SS.KClr        EQU       $C9                 Clr KQ3 VIRQ
-SS.ARAM        EQU       $CA                 Allocate RAM blocks
-SS.DRAM        EQU       $CB                 De-allocate RAM blocks
-
-* SDisk 3 Definition Equates
-SS.DRead       EQU       SS.AAGBf            SDisk3 Direct Sector Read ($80)
-SS.DWrit       EQU       SS.DRead            SDisk3 Direct sector Write ($80)
-SS.UnFrz       EQU       SS.SLGBf            SDisk3 UNFreeze DD info ($81)
-SS.MOFF        EQU       SS.Mount            SDisk3 fast motor off call ($82)
-SS.MoTim       EQU       SS.RdNet            SDisk3 Set motor shut off time ($83)
-SS.SDRD        EQU       SS.MpGPB            SDisk3 System direct read ($84)
-SS.SDWRT       EQU       SS.SDRD             SDisk3 System direct writes ($84)
-SS.Sleep       EQU       SS.Slots            SDisk3 (DMC ONLY) Enable/disable F$Sleep calls in read/write 1773 I/O ($85)
-SS.DrvCh       EQU       SS.WnSet            SDisk3 (DMC ONLY) Set drive number to cache, or return drive number being cached ($86)
-
-               ENDC      
-
-               TTL       Direct Page Definitions
-               PAG       
-
-**********************************
-* Direct Page Variable Definitions
-*
-               ORG       $00
-D.WDAddr       RMB       2                   FHL/Isted WD1002-05 interface base address
-D.WDBtDr       RMB       1                   FHL/Isted WD1002-05 boot physical device drive num.
-D.SWPage       RMB       1                   SmartWatch page # (see clock2_smart)
-               RMB       5
-D.COCOXT       RMB       1                   Busy flag for CoCo-XT driver (one drive at a time)
-D.DbgMem       RMB       2                   Debug memory pointer
-D.DWSubAddr    RMB  	 2                   DriveWire subroutine module pointer
-D.DWStat       RMB  	 2                   DriveWire statics page
-
-               ORG       $20
-
-               IFEQ      Level-1
-
-* Level 1 DP vars
-D.FMBM         RMB       4                   Free memory bit map pointers
-D.MLIM         RMB       2                   Memory limit $24
-D.ModDir       RMB       4                   Module directory $26
-D.Init         RMB       2                   Rom base address $2A
-D.SWI3         RMB       2                   Swi3 vector $2C
-D.SWI2         RMB       2                   Swi2 vector $2E
-D.FIRQ         RMB       2                   Firq vector $30
-D.IRQ          RMB       2                   Irq vector $32
-D.SWI          RMB       2                   Swi vector $34
-D.NMI          RMB       2                   Nmi vector $36
-D.SvcIRQ       RMB       2                   Interrupt service entry $38
-D.Poll         RMB       2                   Interrupt polling routine $3A
-D.UsrIRQ       RMB       2                   User irq routine $3C
-D.SysIRQ       RMB       2                   System irq routine $3E
-D.UsrSvc       RMB       2                   User service request routine $40
-D.SysSvc       RMB       2                   System service request routine $42
-D.UsrDis       RMB       2                   User service request dispatch table
-D.SysDis       RMB       2                   System service reuest dispatch table
-D.Slice        RMB       1                   Process time slice count $48
-D.PrcDBT       RMB       2                   Process descriptor block address  $49
-D.Proc         RMB       2                   Process descriptor address $4B
-D.AProcQ       RMB       2                   Active process queue $4D
-D.WProcQ       RMB       2                   Waiting process queue $4F
-D.SProcQ       RMB       2                   Sleeping process queue $51
-D.Time         EQU       .                   Time
-D.Year         RMB       1                   $53
-D.Month        RMB       1                   $54
-D.Day          RMB       1                   $55
-D.Hour         RMB       1                   $56
-D.Min          RMB       1                   $57
-D.Sec          RMB       1                   $58
-D.Tick         RMB       1                   $59
-D.TSec         RMB       1                   Ticks / second $5A
-D.TSlice       RMB       1                   Ticks / time-slice $5B
-D.IOML         RMB       2                   I/O mgr free memory low bound $5C
-D.IOMH         RMB       2                   I/O mgr free memory hi  bound $5E
-D.DevTbl       RMB       2                   Device driver table addr $60
-D.PolTbl       RMB       2                   Irq polling table addr $62
-D.PthDBT       RMB       2                   Path descriptor block table addr $64
-D.BTLO         RMB       2                   Bootstrap low address $66
-D.BTHI         RMB       2                   Bootstrap hi address $68
-D.DMAReq       RMB       1                   DMA in use flag $6A
-D.AltIRQ       RMB       2                   Alternate IRQ vector (CC) $6B
-D.KbdSta       RMB       2                   Keyboard scanner static storage (CC) $6D
-D.DskTmr       RMB       2                   Disk Motor Timer (CC) $6F
-D.CBStrt       RMB       16                  reserved for CC warmstart ($71)
-D.Clock        RMB       2                   Address of Clock Tick Routine (CC) $81
-D.Boot         RMB       1                   Bootstrap attempted flag
-D.URtoSs       RMB       2                   address of user to system routine (VIRQ) $84
-D.CLTb         RMB       2                   Pointer to clock interrupt table (VIRQ) $86
-D.MDREG        RMB       1                   6309 MD (mode) shadow register $88 (added in V2.01.00)
-D.CRC          RMB       1                   CRC checking mode flag $89 (added in V2.01.00)
-D.Clock2       RMB       2                   CC Clock2 entry address
-
-               ORG       $100
-D.XSWI3        RMB       3
-D.XSWI2        RMB       3
-D.XFIRQ        RMB       3
-D.XIRQ         RMB       3
-D.XSWI         RMB       3
-D.XNMI         RMB       3
-
-* Table Sizes
-BMAPSZ         EQU       32                  Bitmap table size
-SVCTNM         EQU       2                   Number of service request tables
-SVCTSZ         EQU       (256-BMAPSZ)/SVCTNM-2 Service request table size
-
-               ELSE      
-
-* Level 2 DP vars
-D.Tasks        RMB       2                   Task User Table
-D.TmpDAT       RMB       2                   Temporary DAT Image stack
-D.Init         RMB       2                   Initialization Module ptr
-D.Poll         RMB       2                   Interrupt Polling Routine ptr
-D.Time         EQU       .                   System Time
-D.Year         RMB       1
-D.Month        RMB       1
-D.Day          RMB       1
-D.Hour         RMB       1
-D.Min          RMB       1
-D.Sec          RMB       1
-D.Tick         RMB       1
-D.Slice        RMB       1                   current slice remaining
-D.TSlice       RMB       1                   Ticks per Slice
-D.Boot         RMB       1                   Bootstrap attempted flag
-D.MotOn        RMB       1                   Floppy Disk Motor-On time out
-D.ErrCod       RMB       1                   Reset Error Code
-D.Daywk        RMB       1                   day of week, com-trol clock
-D.TkCnt        RMB       1                   Tick Counter
-D.BtPtr        RMB       2                   Address of Boot in System Address space
-D.BtSz         RMB       2                   Size of Boot
-
-               IFNE      H6309
-D.MDREG        RMB       1                   6309 MD (mode) shadow register
-               ELSE      
-               RMB       1                   Currently unused in NitrOS-9/6809
-               ENDC      
-
-D.CRC          RMB       1                   CRC checking mode flag
-
-D.Tenths       RMB       1                   Tenths and hundredths of second for F$Xtime
-D.Task1N       RMB       1                   Map type 1 task number*2 - offset into [D.TskIPt]
-D.Quick        RMB       1                   Quick system call return flag - 0 =stack is at $FEE1
-D.QIRQ         RMB       1                   Quick IRQ flag - 0 =IRQ wasn't clock, so quick return
-
-               ORG       $40
-D.BlkMap       RMB       4                   Memory Block Map ptr
-D.ModDir       RMB       4                   Module Directory ptrs
-D.PrcDBT       RMB       2                   Process Descriptor Block Table ptr
-D.SysPrc       RMB       2                   System Process Descriptor ptr
-D.SysDAT       RMB       2                   System DAT Image ptr
-D.SysMem       RMB       2                   System Memory Map ptr
-D.Proc         RMB       2                   Current Process ptr
-D.AProcQ       RMB       2                   Active Process Queue
-D.WProcQ       RMB       2                   Waiting Process Queue
-D.SProcQ       RMB       2                   Sleeping Process Queue
-D.ModEnd       RMB       2                   Module Directory end ptr
-D.ModDAT       RMB       2                   Module Dir DAT image end ptr
-D.CldRes       RMB       2                   Cold Restart vector
-D.BtBug        RMB       3                   Boot debug information
-D.Pipe         RMB       2
-
-               ORG       $6B
-D.Crash        RMB       6                   Pointer to CC Crash Routine
-D.CBStrt       RMB       $B                  Reserved for CC warmstart ($71)
-D.QCnt         RMB       1                   Count of number of quick system calls performed
-
-               ORG       $80
-D.DevTbl       RMB       2                   I/O Device Table
-D.PolTbl       RMB       2                   I/O Polling Table
-               RMB       4                   reserved
-D.PthDBT       RMB       2                   Path Descriptor Block Table ptr
-D.DMAReq       RMB       1                   DMA Request flag
-
-********
-* CoCo 3 STUFF COMES NEXT
-* This area is used for the CoCo Hardware Registers
-*
-               ORG       $90
-D.HINIT        RMB       1                   GIME INIT0 register (hardware setup $FF90)
-D.TINIT        RMB       1                   GIME INIT1 register (timer/task register $FF91)
-D.IRQER        RMB       1                   Interrupt enable regsiter ($FF92)
-D.FRQER        RMB       1                   Fast Interrupt enable register ($FF93)
-D.TIMMS        RMB       1                   Timer most significant nibble ($FF94)
-D.TIMLS        RMB       1                   Timer least significant byte ($FF95)
-D.RESV1        RMB       1                   reserved register ($FF96)
-D.RESV2        RMB       1                   reserved register ($FF97)
-D.VIDMD        RMB       1                   video mode register ($FF98)
-D.VIDRS        RMB       1                   video resolution register ($FF99)
-D.BORDR        RMB       1                   border register ($FF9A)
-D.RESV3        RMB       1                   reserved register ($FF9B)
-D.VOFF2        RMB       1                   vertical scroll/offset 2 register ($FF9C)
-D.VOFF1        RMB       1                   vertical offset 1 register ($FF9D)
-D.VOFF0        RMB       1                   vertical offset 0 register ($FF9E)
-D.HOFF0        RMB       1                   horizontal offset 0 register ($FF9F)
-D.Speed        RMB       1                   Speed of COCO CPU 0=slow,1=fast ($A0)
-D.TskIPt       RMB       2                   Task image Pointer table (CC) ($A1)
-D.MemSz        RMB       1                   128/512K memory flag (CC) ($A3)
-D.SSTskN       RMB       1                   System State Task Number (COCO) ($A4)
-D.CCMem        RMB       2                   Pointer to beginning of CC Memory ($A5)
-D.CCStk        RMB       2                   Pointer to top of CC Memory ($A7)
-D.Flip0        RMB       2                   Change to Task 0 ($A9)
-D.Flip1        RMB       2                   Change to reserved Task 1 ($AB)
-D.VIRQ         RMB       2                   VIRQ Polling routine ($AD)
-D.IRQS         RMB       1                   IRQ shadow register (CC Temporary) ($AF)
-D.CLTb         RMB       2                   VIRQ Table address ($B0)
-D.AltIRQ       RMB       2                   Alternate IRQ Vector (CC) ($B2)
-D.GPoll        RMB       2                   CC GIME IRQ enable/disable toggle
-D.Clock2       RMB       2                   CC Clock2 entry address
-               ORG       $C0
-D.SysSvc       RMB       2                   System Service Routine entry
-D.SysDis       RMB       2                   System Service Dispatch Table ptr
-D.SysIRQ       RMB       2                   System IRQ Routine entry
-D.UsrSvc       RMB       2                   User Service Routine entry
-D.UsrDis       RMB       2                   User Service Dispatch Table ptr
-D.UsrIRQ       RMB       2                   User IRQ Routine entry
-D.SysStk       RMB       2                   System stack
-D.SvcIRQ       RMB       2                   In-System IRQ service
-D.SysTsk       RMB       1                   System Task number
-               ORG       $E0
-D.Clock        RMB       2
-D.XSWI3        RMB       2
-D.XSWI2        RMB       2
-D.XFIRQ        RMB       2
-D.XIRQ         RMB       2
-D.XSWI         RMB       2
-D.XNMI         RMB       2
-D.ErrRst       RMB       2
-D.SysVec       RMB       2                   F$xxx system call vector for NitrOS-9 Level 3
-D.SWI3         RMB       2
-D.SWI2         RMB       2
-D.FIRQ         RMB       2
-D.IRQ          RMB       2
-D.SWI          RMB       2
-D.NMI          RMB       2
-
-*************************
-* Level 2 Block Map flags
-*
-NotRAM         EQU       %10000000           Block Not RAM flag
-VidRAM         EQU       %00000100           Block is being used as Video RAM
-ModBlock       EQU       %00000010           Module in Block
-RAMinUse       EQU       %00000001           RAM Block in use flag
-*
-* Service Dispatch Table special entries
-*
-IOEntry        EQU       254
-
-               ENDC      
-
-               TTL       Structure Formats
-               PAG       
-************************************
-* Module Directory Entry Definitions
-*
-               ORG       0
-               IFGT      Level-1
-MD$MPDAT       RMB       2                   Module DAT Image ptr
-MD$MBSiz       RMB       2                   Memory Block size
-               ENDC      
-MD$MPtr        RMB       2                   Module ptr
-MD$Link        RMB       2                   Module Link count
-MD$ESize       EQU       .                   Module Directory Entry size
-
-************************************
-* Module Definitions
-*
-* Universal Module Offsets
-*
-               ORG       0
-M$ID           RMB       2                   ID Code
-M$Size         RMB       2                   Module Size
-M$Name         RMB       2                   Module Name
-M$Type         RMB       1                   Type / Language
-M$Revs         RMB       1                   Attributes / Revision Level
-M$Parity       RMB       1                   Header Parity
-M$IDSize       EQU       .                   Module ID Size
-*
-* Type-Dependent Module Offsets
-*
-* System, File Manager, Device Driver, Program Module
-*
-M$Exec         RMB       2                   Execution Entry Offset
-*
-* Device Driver, Program Module
-*
-M$Mem          RMB       2                   Stack Requirement
-*
-* Device Driver, Device Descriptor Module
-*
-M$Mode         RMB       1                   Device Driver Mode Capabilities
-*
-* Device Descriptor Module
-*
-               ORG       M$IDSize
-M$FMgr         RMB       2                   File Manager Name Offset
-M$PDev         RMB       2                   Device Driver Name Offset
-               RMB       1                   M$Mode (defined above)
-M$Port         RMB       3                   Port Address
-M$Opt          RMB       1                   Device Default Options
-M$DTyp         RMB       1                   Device Type
-IT.DTP         EQU       M$DTyp              Descriptor type offset
-*
-* Configuration Module Entry Offsets
-*
-               ORG       M$IDSize
-MaxMem         RMB       3                   Maximum Free Memory
-PollCnt        RMB       1                   Entries in Interrupt Polling Table
-DevCnt         RMB       1                   Entries in Device Table
-InitStr        RMB       2                   Initial Module Name
-SysStr         RMB       2                   System Device Name
-StdStr         RMB       2                   Standard I/O Pathlist
-BootStr        RMB       2                   Bootstrap Module name
-ProtFlag       RMB       1                   Write protect enable flag
-
-OSLevel        RMB       1                   OS level
-OSVer          RMB       1                   OS version
-OSMajor        RMB       1                   OS major
-OSMinor        RMB       1                   OS minor
-Feature1       RMB       1                   feature byte 1
-Feature2       RMB       1                   feature byte 2
-OSName         RMB       2                   OS revision name string (nul terminated)
-InstallName    RMB       2                   installation name string (nul terminated)
-               RMB       4                   reserved for future use
-
-               IFGT      Level-1
-* -- VTIO area -- (NitrOS-9 Level 2 and above) *
-MonType        RMB       1                   Monitor type (0=CMP,1=RGB,2=MONO)
-MouseInf       RMB       2                   Mouse resolution/Mouse port; was 1, major error RG.
-KeyRptS        RMB       1                   Key repeat start constant
-KeyRptD        RMB       1                   Key repeat delay constant
-               ENDC      
-
-* Feature1 byte definitions
-CRCOn          EQU       %00000001           CRC checking on
-CRCOff         EQU       %00000000           CRC checking off
-Proc6809       EQU       %00000000           6809 procesor
-Proc6309       EQU       %00000010           6309 procesor
-
-               PAG       
-**************************
-* Module Field Definitions
-*
-* ID Field - First two bytes of a NitrOS-9 module
-*
-M$ID1          EQU       $87                 Module ID code byte one
-M$ID2          EQU       $CD                 Module ID code byte two
-M$ID12         EQU       M$ID1*256+M$ID2
-
-*
-* Module Type/Language Field Masks
-*
-TypeMask       EQU       %11110000           Type Field
-LangMask       EQU       %00001111           Language Field
-
-*
-* Module Type Values
-*
-Devic          EQU       $F0                 Device Descriptor Module
-Drivr          EQU       $E0                 Physical Device Driver
-FlMgr          EQU       $D0                 File Manager
-Systm          EQU       $C0                 System Module
-ShellSub       EQU       $50                 Shell+ shell sub module
-Data           EQU       $40                 Data Module
-Multi          EQU       $30                 Multi-Module
-Sbrtn          EQU       $20                 Subroutine Module
-Prgrm          EQU       $10                 Program Module
-
-*
-* Module Language Values
-*
-Objct          EQU       1                   6809 Object Code Module
-ICode          EQU       2                   Basic09 I-code
-PCode          EQU       3                   Pascal P-code
-CCode          EQU       4                   C I-code
-CblCode        EQU       5                   Cobol I-code
-FrtnCode       EQU       6                   Fortran I-code
-Obj6309        EQU       7                   6309 object code
-*
-* Module Attributes / Revision byte
-*
-* Field Masks
-*
-AttrMask       EQU       %11110000           Attributes Field
-RevsMask       EQU       %00001111           Revision Level Field
-*
-* Attribute Flags
-*
-ReEnt          EQU       %10000000           Re-Entrant Module
-ModProt        EQU       %01000000           Gimix Module protect bit (0=protected, 1=write enable)
-ModNat         EQU       %00100000           6309 native mode attribute
-
-********************
-* Device Type Values
-*
-* These values define various classes of devices, which are
-* managed by a file manager module.  The Device Type is embedded
-* in a device's device descriptor.
-*
-DT.SCF         EQU       0                   Sequential Character File Manager
-DT.RBF         EQU       1                   Random Block File Manager
-DT.Pipe        EQU       2                   Pipe File Manager
-DT.SBF         EQU       3                   Sequential Block File Manager
-DT.NFM         EQU       4                   Network File Manager
-DT.CDFM        EQU       5                   CD-ROM File Manager
-DT.RFM			EQU		6					Remote File Manager
-
-*********************
-* CRC Result Constant
-*
-CRCCon1        EQU       $80
-CRCCon23       EQU       $0FE3
-
-               TTL       Process Information
-               PAG       
-********************************
-* Process Descriptor Definitions
-*
-               IFEQ      Level-1
-
-* Level 1 process descriptor defs
-DefIOSiz       EQU       12
-NumPaths       EQU       16                  Number of Local Paths
-
-               ORG       0
-P$ID           RMB       1                   Process ID
-P$PID          RMB       1                   Parent's ID
-P$SID          RMB       1                   Sibling's ID
-P$CID          RMB       1                   Child's ID
-P$SP           RMB       2                   Stack ptr
-P$CHAP         RMB       1                   process chapter number
-P$ADDR         RMB       1                   user address beginning page number
-P$PagCnt       RMB       1                   Memory Page Count
-P$User         RMB       2                   User Index $09
-P$Prior        RMB       1                   Priority $0B
-P$Age          RMB       1                   Age $0C
-P$State        RMB       1                   Status $0D
-P$Queue        RMB       2                   Queue Link (Process ptr) $0E
-P$IOQP         RMB       1                   Previous I/O Queue Link (Process ID) $10
-P$IOQN         RMB       1                   Next     I/O Queue Link (Process ID)
-P$PModul       RMB       2                   Primary Module
-P$SWI          RMB       2                   SWI Entry Point
-P$SWI2         RMB       2                   SWI2 Entry Point
-P$SWI3         RMB       2                   SWI3 Entry Point $18
-P$DIO          RMB       DefIOSiz            default I/O ptrs $1A
-P$PATH         RMB       NumPaths            I/O path table $26
-P$Signal       RMB       1                   Signal Code $36
-P$SigVec       RMB       2                   Signal Intercept Vector
-P$SigDat       RMB       2                   Signal Intercept Data Address
-P$NIO          RMB       4                   additional dio pointers for net
-               RMB       $40-.               unused
-P$Size         EQU       .                   Size of Process Descriptor
-
-*
-* Process State Flags
-*
-SysState       EQU       %10000000
-TimSleep       EQU       %01000000
-TimOut         EQU       %00100000
-ImgChg         EQU       %00010000
-Condem         EQU       %00000010
-Dead           EQU       %00000001
-
-               ELSE      
-
-* Level 2 process descriptor defs
-DefIOSiz       EQU       16                  Default I/O Data Length
-NefIOSiz       EQU       12                  On-Net Default I/O Data Length
-NumPaths       EQU       16                  Number of Local Paths
-
-               ORG       0
-P$ID           RMB       1                   Process ID
-P$PID          RMB       1                   Parent's ID
-P$SID          RMB       1                   Sibling's ID
-P$CID          RMB       1                   Child's ID
-P$SP           RMB       2                   Stack ptr
-P$Task         RMB       1                   Task Number
-P$PagCnt       RMB       1                   Memory Page Count
-P$User         RMB       2                   User Index
-P$Prior        RMB       1                   Priority
-P$Age          RMB       1                   Age
-P$State        RMB       1                   Status
-P$Queue        RMB       2                   Queue Link (Process ptr)
-P$IOQP         RMB       1                   Previous I/O Queue Link (Process ID)
-P$IOQN         RMB       1                   Next I/O Queue Link (Process ID)
-P$PModul       RMB       2                   Primary Module
-P$SWI          RMB       2                   SWI Entry Point
-P$SWI2         RMB       2                   SWI2 Entry Point
-P$SWI3         RMB       2                   SWI3 Entry Point
-P$Signal       RMB       1                   Signal Code
-P$SigVec       RMB       2                   Signal Intercept Vector
-P$SigDat       RMB       2                   Signal Intercept Data Address
-P$DeadLk       RMB       1                   Dominant proc ID if I/O locked
-               RMB       $20-.               unused
-P$DIO          RMB       DefIOSiz            Default I/O ptrs
-P$Path         RMB       NumPaths            I/O Path Table
-P$DATImg       RMB       64                  DAT Image
-P$Links        RMB       32                  Block Link counts
-P$NIO          RMB       6*2                 additional DIO ptrs for net, compatible  with 68k
-P$SelP         RMB       1                   Selected Path for COCO Windows (Default 0)
-P$UTicks       RMB       4                   proc User Tick counter        (L2V3)
-P$STicks       RMB       4                   proc System Tick counter      (L2V3)
-P$FCalls       RMB       4                   proc F$ call counter          (L2V3)
-P$ICalls       RMB       4                   proc I$ call counter          (L2V3)
-P$DatBeg       RMB       3                   proc Date of creation (Y/M/D) (L2V3)
-P$TimBeg       RMB       3                   proc Time of creation (H/M/S) (L2V3)
-P$Alarm        RMB       6
-               RMB       $200-.              Local stack
-P$Stack        EQU       .                   Top of Stack
-P$Size         EQU       .                   Size of Process Descriptor
-
-*
-* Process State Flags
-*
-SysState       EQU       %10000000
-TimSleep       EQU       %01000000
-TimOut         EQU       %00100000
-ImgChg         EQU       %00010000
-Suspend        EQU       %00001000
-Condem         EQU       %00000010
-Dead           EQU       %00000001
-
-               ENDC      
-
-               TTL       NitrOS-9 I/O Symbolic Definitions
-               PAG       
-*************************
-* Path Descriptor Offsets
-*
-               ORG       0
-PD.PD          RMB       1                   Path Number
-PD.MOD         RMB       1                   Mode (Read/Write/Update)
-PD.CNT         RMB       1                   Number of Open Images
-PD.DEV         RMB       2                   Device Table Entry Address
-PD.CPR         RMB       1                   Current Process
-PD.RGS         RMB       2                   Caller's Register Stack
-PD.BUF         RMB       2                   Buffer Address
-PD.FST         RMB       32-.                File Manager's Storage
-PD.OPT         EQU       .                   PD GetSts(0) Options
-PD.DTP         RMB       1                   Device Type
-               RMB       64-.                Path options
-PDSIZE         EQU       .
-
-*
-* Pathlist Special Symbols
-*
-PDELIM         EQU       '/                  Pathlist Name Separator
-PDIR           EQU       '.                  Directory
-PENTIR         EQU       '@                  Entire Device
-
-               PAG       
-****************************
-* File Manager Entry Offsets
-*
-               ORG       0
-FMCREA         RMB       3                   Create (Open New) File
-FMOPEN         RMB       3                   Open File
-FMMDIR         RMB       3                   Make Directory
-FMCDIR         RMB       3                   Change Directory
-FMDLET         RMB       3                   Delete File
-FMSEEK         RMB       3                   Position File
-FMREAD         RMB       3                   Read from File
-FMWRIT         RMB       3                   Write to File
-FMRDLN         RMB       3                   ReadLn
-FMWRLN         RMB       3                   WritLn
-FMGSTA         RMB       3                   Get File Status
-FMSSTA         RMB       3                   Set File Status
-FMCLOS         RMB       3                   Close File
-
-*****************************
-* Device Driver Entry Offsets
-*
-               ORG       0
-D$INIT         RMB       3                   Device Initialization
-D$READ         RMB       3                   Read from Device
-D$WRIT         RMB       3                   Write to Device
-D$GSTA         RMB       3                   Get Device Status
-D$PSTA         RMB       3                   Put Device Status
-D$TERM         RMB       3                   Device Termination
-
-*********************
-* Device Table Format
-*
-               ORG       0
-V$DRIV         RMB       2                   Device Driver module
-V$STAT         RMB       2                   Device Driver Static storage
-V$DESC         RMB       2                   Device Descriptor module
-V$FMGR         RMB       2                   File Manager module
-V$USRS         RMB       1                   use count
-               IFGT      Level-1
-V$DRIVEX       RMB       2                   Device Driver execution address
-V$FMGREX       RMB       2                   File Manager execution address
-               ENDC      
-DEVSIZ         EQU       .
-
-*******************************
-* Device Static Storage Offsets
-*
-               ORG       0
-V.PAGE         RMB       1                   Port Extended Address
-V.PORT         RMB       2                   Device 'Base' Port Address
-V.LPRC         RMB       1                   Last Active Process ID
-V.BUSY         RMB       1                   Active Process ID (0=UnBusy)
-V.WAKE         RMB       1                   Active PD if Driver MUST Wake-up
-V.USER         EQU       .                   Driver Allocation Origin
-
-********************************
-* Interrupt Polling Table Format
-*
-               ORG       0
-Q$POLL         RMB       2                   Absolute Polling Address
-Q$FLIP         RMB       1                   Flip (EOR) Byte ..normally Zero
-Q$MASK         RMB       1                   Polling Mask (after Flip)
-Q$SERV         RMB       2                   Absolute Service routine Address
-Q$STAT         RMB       2                   Static Storage Address
-Q$PRTY         RMB       1                   Priority (Low Numbers=Top Priority)
-               IFGT      Level-1
-Q$MAP          RMB       2                   NitrOS-9 Level 2 and above
-               ENDC      
-POLSIZ         EQU       .
-
-********************
-* VIRQ packet format
-*
-               ORG       0
-Vi.Cnt         RMB       2                   count down counter
-Vi.Rst         RMB       2                   reset value for counter
-Vi.Stat        RMB       1                   status byte
-Vi.PkSz        EQU       .
-
-Vi.IFlag       EQU       %00000001           status byte virq flag
-
-               PAG       
-*************************************
-* Machine Characteristics Definitions
-*
-R$CC           EQU       0                   Condition Codes register
-R$A            EQU       1                   A Accumulator
-R$B            EQU       2                   B Accumulator
-R$D            EQU       R$A                 Combined A:B Accumulator
-               IFNE      H6309
-R$E            EQU       3                   E Accumulator
-R$F            EQU       4                   F Accumulator
-R$W            EQU       R$E                 Combined E:F Accumulator
-R$Q            EQU       R$A                 Combined A:B:E:F Accumulator
-R$DP           EQU       5                   Direct Page register
-R$X            EQU       6                   X Index register
-R$Y            EQU       8                   Y Index register
-R$U            EQU       10                  User Stack register
-R$PC           EQU       12                  Program Counter register
-R$Size         EQU       14                  Total register package size
-               ELSE      
-R$DP           EQU       3                   Direct Page register
-R$X            EQU       4                   X Index register
-R$Y            EQU       6                   Y Index register
-R$U            EQU       8                   User Stack register
-R$PC           EQU       10                  Program Counter register
-R$Size         EQU       12                  Total register package size
-               ENDC      
-
-* MD register masks
-* 6309 definitions
-DIV0           EQU       %10000000           division by 0 trap flag       : 1 = trap occured
-badinstr       EQU       %01000000           illegal instruction trap flag : 1 = trap occured
-
-Entire         EQU       %10000000           Full Register Stack flag
-FIRQMask       EQU       %01000000           Fast-Interrupt Mask bit
-HalfCrry       EQU       %00100000           Half Carry flag
-IRQMask        EQU       %00010000           Interrupt Mask bit
-Negative       EQU       %00001000           Negative flag
-Zero           EQU       %00000100           Zero flag
-TwosOvfl       EQU       %00000010           Two's Comp Overflow flag
-Carry          EQU       %00000001           Carry bit
-IntMasks       EQU       IRQMask+FIRQMask
-Sign           EQU       %10000000           sign bit
-
-               TTL       Error Code Definitions
-               PAG       
-************************
-* Error Code Definitions
-*
-* Basic09 Error Codes
-*
-               ORG       10
-E$UnkSym       RMB       1                   Unknown symbol
-E$ExcVrb       RMB       1                   Excessive verbage
-E$IllStC       RMB       1                   Illegal statement construction
-E$ICOvf        RMB       1                   I-code overflow
-E$IChRef       RMB       1                   Illegal channel reference
-E$IllMod       RMB       1                   Illegal mode
-E$IllNum       RMB       1                   Illegal number
-E$IllPrf       RMB       1                   Illegal prefix
-E$IllOpd       RMB       1                   Illegal operand
-E$IllOpr       RMB       1                   Illegal operator
-E$IllRFN       RMB       1                   Illegal record field name
-E$IllDim       RMB       1                   Illegal dimension
-E$IllLit       RMB       1                   Illegal literal
-E$IllRet       RMB       1                   Illegal relational
-E$IllSfx       RMB       1                   Illegal type suffix
-E$DimLrg       RMB       1                   Dimension too large
-E$LinLrg       RMB       1                   Line number too large
-E$NoAssg       RMB       1                   Missing assignment statement
-E$NoPath       RMB       1                   Missing path number
-E$NoComa       RMB       1                   Missing coma
-E$NoDim        RMB       1                   Missing dimension
-E$NoDO         RMB       1                   Missing DO statement
-E$MFull        RMB       1                   Memory full
-E$NoGoto       RMB       1                   Missing GOTO
-E$NoLPar       RMB       1                   Missing left parenthesis
-E$NoLRef       RMB       1                   Missing line reference
-E$NoOprd       RMB       1                   Missing operand
-E$NoRPar       RMB       1                   Missing right parenthesis
-E$NoTHEN       RMB       1                   Missing THEN statement
-E$NoTO         RMB       1                   Missing TO statement
-E$NoVRef       RMB       1                   Missing variable reference
-E$EndQou       RMB       1                   Missing end quote
-E$SubLrg       RMB       1                   Too many subscripts
-E$UnkPrc       RMB       1                   Unknown procedure
-E$MulPrc       RMB       1                   Multiply defined procedure
-E$DivZer       RMB       1                   Divice by zero
-E$TypMis       RMB       1                   Operand type mismatch
-E$StrOvf       RMB       1                   String stack overflow
-E$NoRout       RMB       1                   Unimplemented routine
-E$UndVar       RMB       1                   Undefined variable
-E$FltOvf       RMB       1                   Floating Overflow
-E$LnComp       RMB       1                   Line with compiler error
-E$ValRng       RMB       1                   Value out of range for destination
-E$SubOvf       RMB       1                   Subroutine stack overflow
-E$SubUnd       RMB       1                   Subroutine stack underflow
-E$SubRng       RMB       1                   Subscript out of range
-E$ParmEr       RMB       1                   Paraemter error
-E$SysOvf       RMB       1                   System stack overflow
-E$IOMism       RMB       1                   I/O type mismatch
-E$IONum        RMB       1                   I/O numeric input format bad
-E$IOConv       RMB       1                   I/O conversion: number out of range
-E$IllInp       RMB       1                   Illegal input format
-E$IOFRpt       RMB       1                   I/O format repeat error
-E$IOFSyn       RMB       1                   I/O format syntax error
-E$IllPNm       RMB       1                   Illegal path number
-E$WrSub        RMB       1                   Wrong number of subscripts
-E$NonRcO       RMB       1                   Non-record type operand
-E$IllA         RMB       1                   Illegal argument
-E$IllCnt       RMB       1                   Illegal control structure
-E$UnmCnt       RMB       1                   Unmatched control structure
-E$IllFOR       RMB       1                   Illegal FOR variable
-E$IllExp       RMB       1                   Illegal expression type
-E$IllDec       RMB       1                   Illegal declarative statement
-E$ArrOvf       RMB       1                   Array size overflow
-E$UndLin       RMB       1                   Undefined line number
-E$MltLin       RMB       1                   Multiply defined line number
-E$MltVar       RMB       1                   Multiply defined variable
-E$IllIVr       RMB       1                   Illegal input variable
-E$SeekRg       RMB       1                   Seek out of range
-E$NoData       RMB       1                   Missing data statement
-
-*
-* System Dependent Error Codes
-*
-
-* Level 2 windowing error codes
-               ORG       183
-E$IWTyp        RMB       1                   Illegal window type
-E$WADef        RMB       1                   Window already defined
-E$NFont        RMB       1                   Font not found
-E$StkOvf       RMB       1                   Stack overflow
-E$IllArg       RMB       1                   Illegal argument
-               RMB       1                   reserved
-E$ICoord       RMB       1                   Illegal coordinates
-E$Bug          RMB       1                   Bug (should never be returned)
-E$BufSiz       RMB       1                   Buffer size is too small
-E$IllCmd       RMB       1                   Illegal command
-E$TblFul       RMB       1                   Screen or window table is full
-E$BadBuf       RMB       1                   Bad/Undefined buffer number
-E$IWDef        RMB       1                   Illegal window definition
-E$WUndef       RMB       1                   Window undefined
-
-E$Up           RMB       1                   Up arrow pressed on SCF I$ReadLn with PD.UP enabled
-E$Dn           RMB       1                   Down arrow pressed on SCF I$ReadLn with PD.DOWN enabled
-E$Alias        RMB       1
-
-
-*
-* Standard NitrOS-9 Error Codes
-*
-               ORG       200
-E$PthFul       RMB       1                   Path Table full
-E$BPNum        RMB       1                   Bad Path Number
-E$Poll         RMB       1                   Polling Table Full
-E$BMode        RMB       1                   Bad Mode
-E$DevOvf       RMB       1                   Device Table Overflow
-E$BMID         RMB       1                   Bad Module ID
-E$DirFul       RMB       1                   Module Directory Full
-E$MemFul       RMB       1                   Process Memory Full
-E$UnkSvc       RMB       1                   Unknown Service Code
-E$ModBsy       RMB       1                   Module Busy
-E$BPAddr       RMB       1                   Bad Page Address
-E$EOF          RMB       1                   End of File
-               RMB       1
-E$NES          RMB       1                   Non-Existing Segment
-E$FNA          RMB       1                   File Not Accesible
-E$BPNam        RMB       1                   Bad Path Name
-E$PNNF         RMB       1                   Path Name Not Found
-E$SLF          RMB       1                   Segment List Full
-E$CEF          RMB       1                   Creating Existing File
-E$IBA          RMB       1                   Illegal Block Address
-E$HangUp       RMB       1                   Carrier Detect Lost
-E$MNF          RMB       1                   Module Not Found
-               RMB       1
-E$DelSP        RMB       1                   Deleting Stack Pointer memory
-E$IPrcID       RMB       1                   Illegal Process ID
-E$BPrcID       EQU       E$IPrcID            Bad Process ID (formerly #238)
-               RMB       1
-E$NoChld       RMB       1                   No Children
-E$ISWI         RMB       1                   Illegal SWI code
-E$PrcAbt       RMB       1                   Process Aborted
-E$PrcFul       RMB       1                   Process Table Full
-E$IForkP       RMB       1                   Illegal Fork Parameter
-E$KwnMod       RMB       1                   Known Module
-E$BMCRC        RMB       1                   Bad Module CRC
-E$USigP        RMB       1                   Unprocessed Signal Pending
-E$NEMod        RMB       1                   Non Existing Module
-E$BNam         RMB       1                   Bad Name
-E$BMHP         RMB       1                   (bad module header parity)
-E$NoRAM        RMB       1                   No (System) RAM Available
-E$DNE          RMB       1                   Directory not empty
-E$NoTask       RMB       1                   No available Task number
-               RMB       $F0-.               reserved
-E$Unit         RMB       1                   Illegal Unit (drive)
-E$Sect         RMB       1                   Bad Sector number
-E$WP           RMB       1                   Write Protect
-E$CRC          RMB       1                   Bad Check Sum
-E$Read         RMB       1                   Read Error
-E$Write        RMB       1                   Write Error
-E$NotRdy       RMB       1                   Device Not Ready
-E$Seek         RMB       1                   Seek Error
-E$Full         RMB       1                   Media Full
-E$BTyp         RMB       1                   Bad Type (incompatable) media
-E$DevBsy       RMB       1                   Device Busy
-E$DIDC         RMB       1                   Disk ID Change
-E$Lock         RMB       1                   Record is busy (locked out)
-E$Share        RMB       1                   Non-sharable file busy
-E$DeadLk       RMB       1                   I/O Deadlock error
-
-
-               IFEQ      Level-1
-
-********************************
-* Boot defs for NitrOS-9 Level 1
-*
-* These defs are not strictly for 'Boot', but are for booting the
-* system.
-*
-Bt.Start       EQU       $EE00               Start address of the boot track in memory
-
-* Boot area size on Dragon is only 16 sectors=4K
-               IFNE      DRAGON
-Bt.Size        EQU       $1000               Max size of boot file
-               ELSE      
-Bt.Size        EQU       $1080               Maximum size of bootfile
-               ENDC      
-
-               ELSE      
-
-******************************************
-* Boot defs for NitrOS-9 Level 2 and above
-*
-* These defs are not strictly for 'Boot', but are for booting the
-* system.
-*
-Bt.Block       EQU       $3B                 Block to map in for the 'OS9BOOT' screen
-Bt.Flag        EQU       $8A34               Flag in Bt.Block to verify that it's unchanged
-Bt.Offst       EQU       2                   Offset into the screen where the current ptr is
-Bt.Start       EQU       $ED00               Start address of the boot track in memory
-
-               ENDC      
-
-* Boot area on the Dragon starts on track 0 sector 2, imediatly 
-* after the blockmap.
-* On the CoCo, the boot track is all of track 34
-
-               IFNE      DRAGON
-Bt.Track       EQU       0                   Boot track
-Bt.Sec         EQU       2                   Start LSN of boot area on boot track
-               ELSE      
-Bt.Track       EQU       34                  Boot track
-Bt.Sec         EQU       0                   Start LSN of boot area on boot track
-               ENDC      
-
-
-               IFGT      Level-2
-***************************
-* Level 3 Defs
-*
-* These definitions apply to NitrOS-9 Level 3
-*
-L3.Start       EQU       $2000               Start off at slot 1
-L3.Size        EQU       $40                 Go for 64 pages: 2 slots total
-L3.Blks        EQU       L3.Size/$20         Number of slots
-L3.End         EQU       L3.Start+L3.Size*$0100 end of L3 memory
-L3.SCF         EQU       $0660               SCF block ptr
-L3.RBF         EQU       L3.SCF+1            RBF block ptr
-               ENDC      
-
-               ENDC      
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/defs/rbf.d	Fri Feb 24 08:51:08 2012 -0600
@@ -0,0 +1,362 @@
+               IFNE      RBF.D-1
+
+RBF.D          SET       1
+
+********************************************************************
+* rbf.d - Random Block File Manager Definitions
+*
+* $Id$
+*
+* RBF stands for 'Random Block Filemanager' and is a package of subroutines
+* that define the logical structure of a disk and allows access to the files
+* in that structure.
+*
+* The data structures in this file give RBF its 'personality' and are used
+* by RBF itself, as well as applications that will require disk I/O.
+*
+* Edt/Rev  YYYY/MM/DD  Modified by
+* Comment
+* ------------------------------------------------------------------
+*          1982/07/13  Robert F. Doggett
+* PD.Exten added to path descriptor and PE Entries defined.
+*
+*          1982/07/15  Robert F. Doggett
+* V.FileHd inserted in driver static storage.
+*
+*          1982/09/10  WGP
+* Level One/Level Two condionals added.
+*
+*          1982/09/17  WGP
+*
+*          1982/09/17  Robert F. Doggett
+* PD.SLE renamed to PD.Creat.
+*
+*          1982/09/17  Robert F. Doggett
+* V.DiskID, V.BMapSz, V.MapSct added for smart multi-sector bitmap searching.
+*
+*          1982/09/20  Robert F. Doggett
+* Reserved areas added in static storage.
+
+*          1983/06/07  Robert F. Doggett
+* Added InDriver flag in PD.SMF.
+*
+*          1983/06/13  Robert F. Doggett
+* Added PE.Req tmp save for PE.Lock.
+*
+*          1983/08/08  Robert F. Doggett
+* Reserved PD.SToff for Japanese.
+*
+*          1983/11/19  Robert F. Doggett
+* Added V.ResBit in drive tables.
+*
+*          1983/12/12  Robert F. Doggett
+* Added PE.Prior to save process priority.
+*
+*          1983/12/13  Robert F. Doggett
+* Added BufBusy bit in state flag (PD.SMF).
+*
+*          1984/07/06  Mark G. Hawkins
+* Added Bit Definitions for DD.FMT.
+*
+*          1987/06/23  Kevin K. Darling
+* Updated with Dev Desc Info
+*
+*          2003/06/02  Boisy G. Pitre
+* Updated comments for clarity.
+* Added TYP.256-TYP.2048 definitions for future expansion.
+*
+*          2004/04/14  Boisy G. Pitre
+* Added new entries to device descriptor as per OS-9 Level One V2.00.00
+* addendum.  Pointed out by Rodney Hamilton.
+*
+*	       2005/05/31  P.Harvey-Smith.
+* Added defines for bit 2 of IT.DNS, which the format command uses to 
+* determine if a drive should have it's track 0 as single or double density
+*
+*          2005/11/23  Robert Gault
+* Added IT.MPI giving it duplicate location with IT.TFM. This will not be
+* transferred to the path descriptor, thus the  equ *  rahter than  rmb 1.
+*
+*          2005/12/11  Boisy G. Pitre
+* Added IT.SOFF1-ITSOFF3 and IT.LLDRV for SuperDrivers.
+
+               NAM       rbf.d
+               TTL       Random Block File Manager Definitions
+
+               PAG       
+*******************************
+* RBF Device Descriptor Offsets
+*
+* These definitions are for RBF device descriptors.
+
+               ORG       M$DTyp
+               RMB       1                   Device type (DT.RBF)
+IT.DRV         RMB       1                   Drive number
+IT.STP         RMB       1                   Step rate
+IT.TYP         RMB       1                   Disk device type information
+IT.DNS         RMB       1                   Density capability
+IT.CYL         RMB       2                   Number of cylinders
+IT.SID         RMB       1                   Number of surfaces
+IT.VFY         RMB       1                   Verify disk writes (0 = verify, 1 = don't)
+IT.SCT         RMB       2                   Default sectors/track
+IT.T0S         RMB       2                   Default sectors/track for track 0 sector 0
+IT.ILV         RMB       1                   Sector interleave offset
+IT.SAS         RMB       1                   Segment allocation size
+* The following fields are from the OS-9 Level One V2.00.00 Addendum
+IT.TFM         RMB       1                   DMA Transfer Mode
+IT.Exten       RMB       2                   Path Extension (PE) for record locking
+IT.SToff       RMB       1                   Sector/Track offsets (for "foreign" disk formats)
+* The following fields are not copied to the path descriptor
+IT.WPC         RMB       1                   Write precomp cyl/4 (HD)
+IT.OFS         RMB       2                   Starting cylinder offset (HD)
+IT.RWC         RMB       2                   Reduced write current cylinder (HD)
+* These fields have been added because of SuperDriver.  They probably
+* can be used in other drivers
+               ORG       IT.WPC
+IT.SOFF1       RMB       1
+IT.SOFF2       RMB       1
+IT.SOFF3       RMB       1
+IT.LLDRV       RMB       2
+IT.MPI         RMB       1
+
+
+* IT.TYP Definitions
+*
+TYP.HARD       EQU       %10000000           Hard disk
+TYP.FLP        EQU       %00000000           Floppy disk
+TYP.NSF        EQU       %01000000           Non-standard format
+TYP.SOF        EQU       %00000000           Standard NitrOS-9 format
+
+* IT.TYP bit definitions if bit 7 of IT.TYP is set (hard disk)
+TYPH.256       EQU       %00000000           256 byte sector media
+TYPH.512       EQU       %00000001           512 byte sector media
+TYPH.1024      EQU       %00000010           1024 byte sector media
+TYPH.2048      EQU       %00000011           2048 byte sector media
+TYPH.SSM       EQU       %00000011           Sector size mask
+TYPH.DRSV      EQU       %00001100           Driver-reserved bits
+TYPH.DSQ       EQU       %00010000           Drive size query flag
+
+* IT.TYP bit definitions if bit 7 of IT.TYP is clear (floppy disk)
+TYP.5          EQU       %00000000           5" media
+TYP.3          EQU       %00000001           3.5" media
+TYP.SBO        EQU       %00000010           Sector base offset (clear = 0; sect = 1)
+TYP.256        EQU       %00000000           256 byte sector media
+TYP.512        EQU       %00000100           512 byte sector media
+TYP.CCF        EQU       %00100000           CoCo format
+TYP.NCCF       EQU       %00000000           Non-CoCo format
+
+* IT.DNS Definitions
+*
+
+* If bit 7 of IT.TYP is set, IT.DNS is driver-dependent
+
+* IT.DNS bit definitions if bit 7 of IT.TYP is clear (floppy disk)
+DNS.FM         EQU       %00000000           Single-density (FM)
+DNS.MFM        EQU       %00000001           Double-density (MFM)
+DNS.STD        EQU       %00000000           Single track distance (48/135 tpi)
+DNS.DTD        EQU       %00000010           Double track distance (96 tpi)
+
+* Added PHS,2005-05-31, as format seems to use these
+DNS.FM0        EQU       %00000000           Single density track 0
+DNS.MFM0       EQU       %00000100           Double density track 0
+
+* Floppy disk step rate definitions
+STP.30ms       EQU       0                   30ms step rate
+STP.20ms       EQU       1                   20ms step rate
+STP.12ms       EQU       2                   12ms step rate
+STP.6ms        EQU       3                   6ms step rate
+
+               PAG       
+*************************************
+* Random Block Path Descriptor Format
+*
+* A path descriptor is created for every new path that is open
+* via the I$Open system call (processed by IOMan).  Process
+* descriptors track state information of a path.
+*
+               ORG       PD.FST
+PD.SMF         RMB       1                   State flags
+PD.CP          RMB       4                   Current logical byte position
+PD.SIZ         RMB       4                   File size
+PD.SBL         RMB       3                   Segment beginning lsn
+PD.SBP         RMB       3                   Segment beginning psn
+PD.SSZ         RMB       3                   Segment size
+PD.DSK         RMB       2                   Disk id
+PD.DTB         RMB       2                   Drive table ptr
+               ORG       PD.OPT
+               RMB       1                   Device type
+PD.DRV         RMB       1                   Drive number
+PD.STP         RMB       1                   Step rate
+PD.TYP         RMB       1                   Disk device type (5" 8" other)
+PD.DNS         RMB       1                   Density capability
+PD.CYL         RMB       2                   Number of cylinders
+PD.SID         RMB       1                   Number of surfaces
+PD.VFY         RMB       1                   0=verify disk writes
+PD.SCT         RMB       2                   Default sectors/track
+PD.T0S         RMB       2                   Default sectors/track tr00,s0
+PD.ILV         RMB       1                   Sector interleave offset
+PD.SAS         RMB       1                   Segment allocation size
+PD.TFM         RMB       1                   DMA Transfer Mode
+PD.Exten       RMB       2                   Path Extension (PE) for record locking
+PD.SToff       RMB       1                   Sector/Track offsets (for "foreign" disk formats)
+PD.ATT         RMB       1                   File attributes
+PD.FD          RMB       3                   File descriptor psn
+PD.DFD         RMB       3                   Directory file descriptor psn
+PD.DCP         RMB       4                   File directory entry ptr
+PD.DVT         RMB       2                   User readable dev tbl ptr
+
+* State Flags
+BUFMOD         EQU       $01                 Buffer modified
+SINBUF         EQU       $02                 Sector in buffer
+FDBUF          EQU       $04                 File descriptor in buffer
+*EOFSEC equ $08 End of file sector
+*EOF equ $10 End of file
+InDriver       EQU       $20                 Currently in Disk Driver, or queued
+BufBusy        EQU       $40                 Buffer is currently busy
+
+               IFNE      Level-1
+************************************
+* Random Block Path Extension Format
+*
+* RBF paths under Level Two have additional information that
+* is referenced by the path extension area.
+*
+               ORG       0
+PE.PE          RMB       1                   PE path number
+PE.PDptr       RMB       2                   Back ptr to this PE's Path Descriptor
+PE.NxFil       RMB       2                   Drive Open-File list ptr
+PE.Confl       RMB       2                   Circular File Conflict list
+PE.Lock        RMB       1                   Path lockout status
+PE.LoLck       RMB       4                   Low Locked Logical addr
+PE.HiLck       RMB       4                   High Locked Logical addr
+PE.Wait        RMB       2                   PE ptr to (next) locked-out PE
+PE.TmOut       RMB       2                   Max ticks to wait for locked segment
+PE.Owner       RMB       1                   Process ID of owner of locked segment
+PE.Req         RMB       1                   Temp for PE.Lock in GAIN when LockSeg fails
+PE.Prior       RMB       1                   Temp for process priority while in driver
+PE.SigSg       RMB       1                   Signal code to send
+PE.SigID       RMB       1                   Process ID to send the signal to
+               RMB       32-.                Reserved
+PE.FilNm       RMB       32                  Temp for filename during directory search
+
+* PE.Lock status codes
+Unlocked       EQU       0                   No portion of file is locked
+RcdLock        EQU       1                   Record from LoLck to HiLck locked
+FileLock       EQU       2                   Entire file locked
+EofLock        EQU       4                   End of file is locked
+               ENDC      
+
+
+               PAG       
+***********************
+* LSN0 Disk Data Format
+*
+* Logical Sector Number 0 is the first sector on an RBF formatted device
+* and contains information about the device's size and format.
+*
+               ORG       0
+DD.TOT         RMB       3                   Total number of sectors
+DD.TKS         RMB       1                   Track size in sectors
+DD.MAP         RMB       2                   Number of bytes in allocation bit map
+DD.BIT         RMB       2                   Number of sectors/bit
+DD.DIR         RMB       3                   Address of root directory fd
+DD.OWN         RMB       2                   Owner
+DD.ATT         RMB       1                   Attributes
+DD.DSK         RMB       2                   Disk ID
+DD.FMT         RMB       1                   Disk format; density/sides
+DD.SPT         RMB       2                   Sectors/track
+DD.RES         RMB       2                   Reserved for future use
+DD.SIZ         EQU       .                   Device descriptor minimum size
+DD.BT          RMB       3                   System bootstrap sector
+DD.BSZ         RMB       2                   Size of system bootstrap
+DD.DAT         RMB       5                   Creation date
+DD.NAM         RMB       32                  Volume name
+DD.OPT         RMB       32                  Option area
+
+* DD.FMT Bit Definitions - valid only if device is a floppy disk
+FMT.SIDE       EQU       %00000001           Single Sided=0, Double Sided=1
+FMT.DNS        EQU       %00000010           Single Density=0, Double Density=1
+FMT.TDNS       EQU       %00000100           Track Density: 48/135 TPI=0, 96 TPI=1
+FMT.T0DN       EQU       %00100000           Track 0 Density, see FMT.DNS
+
+
+               PAG       
+************************
+* File Descriptor Format
+*
+* The file descriptor is a sector that is present for every file
+* on an RBF device.  It contains attributes, modification dates,
+* and segment information on a file.
+*
+               ORG       0
+FD.ATT         RMB       1                   Attributes
+FD.OWN         RMB       2                   Owner
+FD.DAT         RMB       5                   Date last modified
+FD.LNK         RMB       1                   Link count
+FD.SIZ         RMB       4                   File size
+FD.Creat       RMB       3                   File creation date (YY/MM/DD)
+FD.SEG         EQU       .                   Beginning of segment list
+* Segment List Entry Format
+               ORG       0
+FDSL.A         RMB       3                   Segment beginning physical sector number
+FDSL.B         RMB       2                   Segment size
+FDSL.S         EQU       .                   Segment list entry size
+FD.LS1         EQU       FD.SEG+((256-FD.SEG)/FDSL.S-1)*FDSL.S
+FD.LS2         EQU       (256/FDSL.S-1)*FDSL.S
+MINSEC         SET       16
+
+
+               PAG       
+************************
+* Directory Entry Format
+*
+* Directory entries are part of a directory and define the name
+* of the file, as well as a pointer to its file descriptor.
+*
+               ORG       0
+DIR.NM         RMB       29                  File name
+DIR.FD         RMB       3                   File descriptor physical sector number
+DIR.SZ         EQU       .                   Directory record size
+
+
+               PAG       
+********************
+* RBF Static Storage
+*
+* Overall Disk Static Storage
+*
+* Note:  This does not reserve any memory for drive tables.  Each
+*        driver is responsible for reserving sufficient memory for
+*        the appropriate number of tables.
+*
+               ORG       V.USER              Reserve required           ($06)
+V.NDRV         RMB       1                   Number of drives           ($07)
+               RMB       8                   reserved                   ($08)
+DRVBEG         EQU       .                   Beginning of drive tables  ($10)
+
+
+               PAG       
+****************
+* Global Storage For Disk Drive Tables
+*
+* Each table contains the first 'DD.SIZ' bytes from
+* LSN 0, and the current track, stepping rate,
+* bitmap use flag, and disk type.
+*
+               ORG       0
+               RMB       DD.SIZ              Device descriptor, LSN 0
+V.TRAK         RMB       2                   Current track
+V.BMB          RMB       1                   Bit-map use flag
+V.FileHd       RMB       2                   Open file list for this drive
+V.DiskID       RMB       2                   Disk ID
+V.BMapSz       RMB       1                   Bitmap Size
+V.MapSct       RMB       1                   Lowest reasonable bitmap sector
+V.ResBit       RMB       1                   Reserved bitmap sector (for compaction)
+V.ScTkOf       RMB       1                   Sector/Track byte (Combined from descriptor)
+V.ScOfst       RMB       1                   Sector offset split from byte above
+V.TkOfst       RMB       1                   Track offset split from byte above
+               RMB       4                   Reserved
+DRVMEM         EQU       .
+
+               ENDC      
+
--- a/defs/rbfdefs	Fri Feb 24 06:41:48 2012 -0600
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,362 +0,0 @@
-               IFNE      RBFDEFS-1
-
-RBFDEFS        SET       1
-
-********************************************************************
-* RBFDefs - Random Block File Manager Definitions
-*
-* $Id$
-*
-* RBF stands for 'Random Block Filemanager' and is a package of subroutines
-* that define the logical structure of a disk and allows access to the files
-* in that structure.
-*
-* The data structures in this file give RBF its 'personality' and are used
-* by RBF itself, as well as applications that will require disk I/O.
-*
-* Edt/Rev  YYYY/MM/DD  Modified by
-* Comment
-* ------------------------------------------------------------------
-*          1982/07/13  Robert F. Doggett
-* PD.Exten added to path descriptor and PE Entries defined.
-*
-*          1982/07/15  Robert F. Doggett
-* V.FileHd inserted in driver static storage.
-*
-*          1982/09/10  WGP
-* Level One/Level Two condionals added.
-*
-*          1982/09/17  WGP
-*
-*          1982/09/17  Robert F. Doggett
-* PD.SLE renamed to PD.Creat.
-*
-*          1982/09/17  Robert F. Doggett
-* V.DiskID, V.BMapSz, V.MapSct added for smart multi-sector bitmap searching.
-*
-*          1982/09/20  Robert F. Doggett
-* Reserved areas added in static storage.
-
-*          1983/06/07  Robert F. Doggett
-* Added InDriver flag in PD.SMF.
-*
-*          1983/06/13  Robert F. Doggett
-* Added PE.Req tmp save for PE.Lock.
-*
-*          1983/08/08  Robert F. Doggett
-* Reserved PD.SToff for Japanese.
-*
-*          1983/11/19  Robert F. Doggett
-* Added V.ResBit in drive tables.
-*
-*          1983/12/12  Robert F. Doggett
-* Added PE.Prior to save process priority.
-*
-*          1983/12/13  Robert F. Doggett
-* Added BufBusy bit in state flag (PD.SMF).
-*
-*          1984/07/06  Mark G. Hawkins
-* Added Bit Definitions for DD.FMT.
-*
-*          1987/06/23  Kevin K. Darling
-* Updated with Dev Desc Info
-*
-*          2003/06/02  Boisy G. Pitre
-* Updated comments for clarity.
-* Added TYP.256-TYP.2048 definitions for future expansion.
-*
-*          2004/04/14  Boisy G. Pitre
-* Added new entries to device descriptor as per OS-9 Level One V2.00.00
-* addendum.  Pointed out by Rodney Hamilton.
-*
-*	       2005/05/31  P.Harvey-Smith.
-* Added defines for bit 2 of IT.DNS, which the format command uses to 
-* determine if a drive should have it's track 0 as single or double density
-*
-*          2005/11/23  Robert Gault
-* Added IT.MPI giving it duplicate location with IT.TFM. This will not be
-* transferred to the path descriptor, thus the  equ *  rahter than  rmb 1.
-*
-*          2005/12/11  Boisy G. Pitre
-* Added IT.SOFF1-ITSOFF3 and IT.LLDRV for SuperDrivers.
-
-               NAM       RBFDefs
-               TTL       Random Block File Manager Definitions
-
-               PAG       
-*******************************
-* RBF Device Descriptor Offsets
-*
-* These definitions are for RBF device descriptors.
-
-               ORG       M$DTyp
-               RMB       1                   Device type (DT.RBF)
-IT.DRV         RMB       1                   Drive number
-IT.STP         RMB       1                   Step rate
-IT.TYP         RMB       1                   Disk device type information
-IT.DNS         RMB       1                   Density capability
-IT.CYL         RMB       2                   Number of cylinders
-IT.SID         RMB       1                   Number of surfaces
-IT.VFY         RMB       1                   Verify disk writes (0 = verify, 1 = don't)
-IT.SCT         RMB       2                   Default sectors/track
-IT.T0S         RMB       2                   Default sectors/track for track 0 sector 0
-IT.ILV         RMB       1                   Sector interleave offset
-IT.SAS         RMB       1                   Segment allocation size
-* The following fields are from the OS-9 Level One V2.00.00 Addendum
-IT.TFM         RMB       1                   DMA Transfer Mode
-IT.Exten       RMB       2                   Path Extension (PE) for record locking
-IT.SToff       RMB       1                   Sector/Track offsets (for "foreign" disk formats)
-* The following fields are not copied to the path descriptor
-IT.WPC         RMB       1                   Write precomp cyl/4 (HD)
-IT.OFS         RMB       2                   Starting cylinder offset (HD)
-IT.RWC         RMB       2                   Reduced write current cylinder (HD)
-* These fields have been added because of SuperDriver.  They probably
-* can be used in other drivers
-               ORG       IT.WPC
-IT.SOFF1       RMB       1
-IT.SOFF2       RMB       1
-IT.SOFF3       RMB       1
-IT.LLDRV       RMB       2
-IT.MPI         RMB       1
-
-
-* IT.TYP Definitions
-*
-TYP.HARD       EQU       %10000000           Hard disk
-TYP.FLP        EQU       %00000000           Floppy disk
-TYP.NSF        EQU       %01000000           Non-standard format
-TYP.SOF        EQU       %00000000           Standard NitrOS-9 format
-
-* IT.TYP bit definitions if bit 7 of IT.TYP is set (hard disk)
-TYPH.256       EQU       %00000000           256 byte sector media
-TYPH.512       EQU       %00000001           512 byte sector media
-TYPH.1024      EQU       %00000010           1024 byte sector media
-TYPH.2048      EQU       %00000011           2048 byte sector media
-TYPH.SSM       EQU       %00000011           Sector size mask
-TYPH.DRSV      EQU       %00001100           Driver-reserved bits
-TYPH.DSQ       EQU       %00010000           Drive size query flag
-
-* IT.TYP bit definitions if bit 7 of IT.TYP is clear (floppy disk)
-TYP.5          EQU       %00000000           5" media
-TYP.3          EQU       %00000001           3.5" media
-TYP.SBO        EQU       %00000010           Sector base offset (clear = 0; sect = 1)
-TYP.256        EQU       %00000000           256 byte sector media
-TYP.512        EQU       %00000100           512 byte sector media
-TYP.CCF        EQU       %00100000           CoCo format
-TYP.NCCF       EQU       %00000000           Non-CoCo format
-
-* IT.DNS Definitions
-*
-
-* If bit 7 of IT.TYP is set, IT.DNS is driver-dependent
-
-* IT.DNS bit definitions if bit 7 of IT.TYP is clear (floppy disk)
-DNS.FM         EQU       %00000000           Single-density (FM)
-DNS.MFM        EQU       %00000001           Double-density (MFM)
-DNS.STD        EQU       %00000000           Single track distance (48/135 tpi)
-DNS.DTD        EQU       %00000010           Double track distance (96 tpi)
-
-* Added PHS,2005-05-31, as format seems to use these
-DNS.FM0        EQU       %00000000           Single density track 0
-DNS.MFM0       EQU       %00000100           Double density track 0
-
-* Floppy disk step rate definitions
-STP.30ms       EQU       0                   30ms step rate
-STP.20ms       EQU       1                   20ms step rate
-STP.12ms       EQU       2                   12ms step rate
-STP.6ms        EQU       3                   6ms step rate
-
-               PAG       
-*************************************
-* Random Block Path Descriptor Format
-*
-* A path descriptor is created for every new path that is open
-* via the I$Open system call (processed by IOMan).  Process
-* descriptors track state information of a path.
-*
-               ORG       PD.FST
-PD.SMF         RMB       1                   State flags
-PD.CP          RMB       4                   Current logical byte position
-PD.SIZ         RMB       4                   File size
-PD.SBL         RMB       3                   Segment beginning lsn
-PD.SBP         RMB       3                   Segment beginning psn
-PD.SSZ         RMB       3                   Segment size
-PD.DSK         RMB       2                   Disk id
-PD.DTB         RMB       2                   Drive table ptr
-               ORG       PD.OPT
-               RMB       1                   Device type
-PD.DRV         RMB       1                   Drive number
-PD.STP         RMB       1                   Step rate
-PD.TYP         RMB       1                   Disk device type (5" 8" other)
-PD.DNS         RMB       1                   Density capability
-PD.CYL         RMB       2                   Number of cylinders
-PD.SID         RMB       1                   Number of surfaces
-PD.VFY         RMB       1                   0=verify disk writes
-PD.SCT         RMB       2                   Default sectors/track
-PD.T0S         RMB       2                   Default sectors/track tr00,s0
-PD.ILV         RMB       1                   Sector interleave offset
-PD.SAS         RMB       1                   Segment allocation size
-PD.TFM         RMB       1                   DMA Transfer Mode
-PD.Exten       RMB       2                   Path Extension (PE) for record locking
-PD.SToff       RMB       1                   Sector/Track offsets (for "foreign" disk formats)
-PD.ATT         RMB       1                   File attributes
-PD.FD          RMB       3                   File descriptor psn
-PD.DFD         RMB       3                   Directory file descriptor psn
-PD.DCP         RMB       4                   File directory entry ptr
-PD.DVT         RMB       2                   User readable dev tbl ptr
-
-* State Flags
-BUFMOD         EQU       $01                 Buffer modified
-SINBUF         EQU       $02                 Sector in buffer
-FDBUF          EQU       $04                 File descriptor in buffer
-*EOFSEC equ $08 End of file sector
-*EOF equ $10 End of file
-InDriver       EQU       $20                 Currently in Disk Driver, or queued
-BufBusy        EQU       $40                 Buffer is currently busy
-
-               IFNE      Level-1
-************************************
-* Random Block Path Extension Format
-*
-* RBF paths under Level Two have additional information that
-* is referenced by the path extension area.
-*
-               ORG       0
-PE.PE          RMB       1                   PE path number
-PE.PDptr       RMB       2                   Back ptr to this PE's Path Descriptor
-PE.NxFil       RMB       2                   Drive Open-File list ptr
-PE.Confl       RMB       2                   Circular File Conflict list
-PE.Lock        RMB       1                   Path lockout status
-PE.LoLck       RMB       4                   Low Locked Logical addr
-PE.HiLck       RMB       4                   High Locked Logical addr
-PE.Wait        RMB       2                   PE ptr to (next) locked-out PE
-PE.TmOut       RMB       2                   Max ticks to wait for locked segment
-PE.Owner       RMB       1                   Process ID of owner of locked segment
-PE.Req         RMB       1                   Temp for PE.Lock in GAIN when LockSeg fails
-PE.Prior       RMB       1                   Temp for process priority while in driver
-PE.SigSg       RMB       1                   Signal code to send
-PE.SigID       RMB       1                   Process ID to send the signal to
-               RMB       32-.                Reserved
-PE.FilNm       RMB       32                  Temp for filename during directory search
-
-* PE.Lock status codes
-Unlocked       EQU       0                   No portion of file is locked
-RcdLock        EQU       1                   Record from LoLck to HiLck locked
-FileLock       EQU       2                   Entire file locked
-EofLock        EQU       4                   End of file is locked
-               ENDC      
-
-
-               PAG       
-***********************
-* LSN0 Disk Data Format
-*
-* Logical Sector Number 0 is the first sector on an RBF formatted device
-* and contains information about the device's size and format.
-*
-               ORG       0
-DD.TOT         RMB       3                   Total number of sectors
-DD.TKS         RMB       1                   Track size in sectors
-DD.MAP         RMB       2                   Number of bytes in allocation bit map
-DD.BIT         RMB       2                   Number of sectors/bit
-DD.DIR         RMB       3                   Address of root directory fd
-DD.OWN         RMB       2                   Owner
-DD.ATT         RMB       1                   Attributes
-DD.DSK         RMB       2                   Disk ID
-DD.FMT         RMB       1                   Disk format; density/sides
-DD.SPT         RMB       2                   Sectors/track
-DD.RES         RMB       2                   Reserved for future use
-DD.SIZ         EQU       .                   Device descriptor minimum size
-DD.BT          RMB       3                   System bootstrap sector
-DD.BSZ         RMB       2                   Size of system bootstrap
-DD.DAT         RMB       5                   Creation date
-DD.NAM         RMB       32                  Volume name
-DD.OPT         RMB       32                  Option area
-
-* DD.FMT Bit Definitions - valid only if device is a floppy disk
-FMT.SIDE       EQU       %00000001           Single Sided=0, Double Sided=1
-FMT.DNS        EQU       %00000010           Single Density=0, Double Density=1
-FMT.TDNS       EQU       %00000100           Track Density: 48/135 TPI=0, 96 TPI=1
-FMT.T0DN       EQU       %00100000           Track 0 Density, see FMT.DNS
-
-
-               PAG       
-************************
-* File Descriptor Format
-*
-* The file descriptor is a sector that is present for every file
-* on an RBF device.  It contains attributes, modification dates,
-* and segment information on a file.
-*
-               ORG       0
-FD.ATT         RMB       1                   Attributes
-FD.OWN         RMB       2                   Owner
-FD.DAT         RMB       5                   Date last modified
-FD.LNK         RMB       1                   Link count
-FD.SIZ         RMB       4                   File size
-FD.Creat       RMB       3                   File creation date (YY/MM/DD)
-FD.SEG         EQU       .                   Beginning of segment list
-* Segment List Entry Format
-               ORG       0
-FDSL.A         RMB       3                   Segment beginning physical sector number
-FDSL.B         RMB       2                   Segment size
-FDSL.S         EQU       .                   Segment list entry size
-FD.LS1         EQU       FD.SEG+((256-FD.SEG)/FDSL.S-1)*FDSL.S
-FD.LS2         EQU       (256/FDSL.S-1)*FDSL.S
-MINSEC         SET       16
-
-
-               PAG       
-************************
-* Directory Entry Format
-*
-* Directory entries are part of a directory and define the name
-* of the file, as well as a pointer to its file descriptor.
-*
-               ORG       0
-DIR.NM         RMB       29                  File name
-DIR.FD         RMB       3                   File descriptor physical sector number
-DIR.SZ         EQU       .                   Directory record size
-
-
-               PAG       
-********************
-* RBF Static Storage
-*
-* Overall Disk Static Storage
-*
-* Note:  This does not reserve any memory for drive tables.  Each
-*        driver is responsible for reserving sufficient memory for
-*        the appropriate number of tables.
-*
-               ORG       V.USER              Reserve required           ($06)
-V.NDRV         RMB       1                   Number of drives           ($07)
-               RMB       8                   reserved                   ($08)
-DRVBEG         EQU       .                   Beginning of drive tables  ($10)
-
-
-               PAG       
-****************
-* Global Storage For Disk Drive Tables
-*
-* Each table contains the first 'DD.SIZ' bytes from
-* LSN 0, and the current track, stepping rate,
-* bitmap use flag, and disk type.
-*
-               ORG       0
-               RMB       DD.SIZ              Device descriptor, LSN 0
-V.TRAK         RMB       2                   Current track
-V.BMB          RMB       1                   Bit-map use flag
-V.FileHd       RMB       2                   Open file list for this drive
-V.DiskID       RMB       2                   Disk ID
-V.BMapSz       RMB       1                   Bitmap Size
-V.MapSct       RMB       1                   Lowest reasonable bitmap sector
-V.ResBit       RMB       1                   Reserved bitmap sector (for compaction)
-V.ScTkOf       RMB       1                   Sector/Track byte (Combined from descriptor)
-V.ScOfst       RMB       1                   Sector offset split from byte above
-V.TkOfst       RMB       1                   Track offset split from byte above
-               RMB       4                   Reserved
-DRVMEM         EQU       .
-
-               ENDC      
-
--- a/defs/rbsuper.d	Fri Feb 24 06:41:48 2012 -0600
+++ b/defs/rbsuper.d	Fri Feb 24 08:51:08 2012 -0600
@@ -1,3 +1,6 @@
+            IFNE      RBSUPER.D-1
+RBSUPER.D   SET       1
+
 ********************************************************************
 * rbsuper.d - rbsuper definitions
 *
@@ -77,3 +80,6 @@
 * zero when it really starts beyond DRVBEG+(DRVMEM*DrvCount).
                RMB       UOFFSET
 V.RBSuper      EQU       .                   end of RBSuper's (and ll driver's) memory requirements
+
+               ENDC
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/defs/scf.d	Fri Feb 24 08:51:08 2012 -0600
@@ -0,0 +1,244 @@
+               IFNE      SCF.D-1
+
+SCF.D          SET       1
+
+********************************************************************
+* scf.d - Sequential Character File Manager Definitions
+*
+* $Id$
+*
+* SCF stands for 'Sequential Character Filemanager' and is a package of subroutines
+* that define the logical structure of a serial device.
+*
+* The data structures in this file give SCF its 'personality' and are used
+* by SCF itself, as well as applications that will require disk I/O.
+*
+* Edt/Rev  YYYY/MM/DD  Modified by
+* Comment
+* ------------------------------------------------------------------
+*          1984/01/11  YO
+* Added V.KANJI, V.KBUF, V.MODADR for new kanji input process.
+*
+*          1985/04/20  Mark G. Hawkins
+* Added V.PDLHd Path Descriptor List Head.
+*
+*          1985/04/21  Mark G. Hawkins
+* Added PD.PLP and PD.PST for modem handling.
+*
+*          1987/06/23  Kevin K. Darling
+* Updated with Dev Desc info.
+*
+*          1998/10/03  Boisy G. Pitre
+* Consolidated L1/L2 scfdefs.
+*
+*          2003/01/21  Boisy G. Pitre
+* Added symbolics for enhanced SCF line editing.
+*
+*          2003/06/02  Boisy G. Pitre
+* Updated comments for clarity.
+*
+*          2004/05/17  Boisy G. Pitre
+* Added higher baud rates.
+
+               NAM       scf.d
+               TTL       Sequential File Manager Definitions
+
+               PAG       
+*******************************
+* SCF Device Descriptor Offsets
+*
+* These definitions are for SCF device descriptors.
+
+               ORG       M$DTyp
+IT.DVC         RMB       1                   Device type (DT.SCF)
+IT.UPC         RMB       1                   Uppercase flag
+IT.BSO         RMB       1                   Backspace behavior
+IT.DLO         RMB       1                   Delete behavior
+IT.EKO         RMB       1                   Echo flag
+IT.ALF         RMB       1                   Auto linefeed flag
+IT.NUL         RMB       1                   End-of-line null count
+IT.PAU         RMB       1                   Page pause flag
+IT.PAG         RMB       1                   Number of lines per page
+IT.BSP         RMB       1                   Backspace character
+IT.DEL         RMB       1                   Delete-line character
+IT.EOR         RMB       1                   End-of-record character
+IT.EOF         RMB       1                   End-of-file character
+IT.RPR         RMB       1                   Reprint-line character
+IT.DUP         RMB       1                   Duplicate-last-line character
+IT.PSC         RMB       1                   Pause character
+IT.INT         RMB       1                   Interrupt character
+IT.QUT         RMB       1                   Quit character
+IT.BSE         RMB       1                   Backspace echo character
+IT.OVF         RMB       1                   Bell character
+IT.PAR         RMB       1                   Parity
+IT.BAU         RMB       1                   Baud rate
+IT.D2P         RMB       2                   Attached device name string offset
+IT.XON         RMB       1                   X-ON character
+IT.XOFF        RMB       1                   X-OFF character
+IT.COL         RMB       1                   Number of columns for display
+IT.ROW         RMB       1                   Number of rows for display
+IT.XTYP        RMB       1                   Extended type (added by BRI)
+
+               IFGT      Level-1
+* Window Descriptor Additions
+* For CoCo window, where IT.PAR = $80
+               ORG       IT.ROW+1
+IT.WND         RMB       1                   Window number (matches device name) ($2E)
+IT.VAL         RMB       1                   Use defaults on Init (0=no, 1=yes)
+IT.STY         RMB       1                   Screen type default
+IT.CPX         RMB       1                   Column start default
+IT.CPY         RMB       1                   Row start default
+IT.FGC         RMB       1                   Foreground color default
+IT.BGC         RMB       1                   Background color default
+IT.BDC         RMB       1                   Border color default
+               ENDC      
+
+
+               PAG       
+********************
+* SCF Static Storage
+*
+* SCF devices must reserve this space for SCF
+*
+               ORG       V.USER
+V.TYPE         RMB       1                   Device type or parity
+V.LINE         RMB       1                   Lines left until end of page
+V.PAUS         RMB       1                   Immediate Pause request
+V.DEV2         RMB       2                   Attached device's static
+V.INTR         RMB       1                   Interrupt char
+V.QUIT         RMB       1                   Quit char
+V.PCHR         RMB       1                   Pause char
+V.ERR          RMB       1                   Accumulated errors
+V.XON          RMB       1                   X-On char
+V.XOFF         RMB       1                   X-Off char
+V.KANJI        RMB       1                   Kanji mode flag
+V.KBUF         RMB       2                   Kana - Kanji convert routine work address
+V.MODADR       RMB       2                   Kana - Kanji convert module address
+V.PDLHd        RMB       2                   Open path descriptor list head pointer
+V.RSV          RMB       5                   Reserve bytes for future expansion
+V.SCF          EQU       .                   Total SCF manager static overhead
+
+
+               PAG       
+***********************
+* Character Definitions
+*
+C$NULL         SET       0                   Null char
+C$RPET         SET       $01                 (CTRL-A - SOH) Repeat last input line
+C$INTR         SET       $03                 (CTRL-C - ETX) Keyboard interrupt
+C$RPRT         SET       $04                 (CTRL-D - EOT) Reprint current input line
+C$QUIT         SET       $05                 (CTRL-E - ENQ) Keyboard Abort
+C$BELL         SET       $07                 (CTRL-G - BEL) Line overflow warning
+C$BSP          SET       $08                 (CTRL-H - BS ) Back space
+C$RARR         SET       $09                 Right Arrow
+C$EL           SET       $05                 Erase Line
+C$LF           SET       $0A                 Line feed
+C$HOME         SET       $0B                 Home position Code
+C$Clsgr        SET       $15                 Graphic screen clear (use FM-11)
+C$Clsall       SET       $16                 Graphic & character clear (use FM-11)
+C$CR           SET       $0D                 Carriage return
+C$FORM         SET       $0C                 (CTRL-L - FF ) Form Feed ... screen clear
+C$SI           SET       $0F                 Shift IN Code
+C$SO           SET       $0E                 Shift OUT Code
+C$DELETE       SET       $10                 Delete char (for SCF enhanced line editing)
+C$XON          SET       $11                 (CTRL-Q - DC1) Transmit Enable
+C$INSERT       SET       C$XON               Insert char (for SCF enhanced line editing)
+C$XOFF         SET       $13                 (CTRL-S - DC3) Transmit Disable
+C$PLINE        SET       C$XOFF              Print remaining line (for SCF enhanced line editing)
+C$PAUS         SET       $17                 (CTRL-W - ETB) Pause character
+C$DEL          SET       $18                 (CTRL-X - CAN) Delete line
+C$SHRARR       SET       $19                 Shift Right-Arrow
+C$EOF          SET       $1B                 (CTRL-[ - ESC) END of file
+C$RGT          SET       $1C                 Cursor right
+C$LFT          SET       $1D                 Cursor left
+C$UP           SET       $1E                 Cursor up
+C$DWN          SET       $1F                 Cursor down
+C$SPAC         SET       $20                 Space
+C$PERD         SET       '.
+C$COMA         SET       ',
+
+
+               PAG       
+*********************************************
+* Sequential Character Path Descriptor Format
+*
+* A path descriptor is created for every new path that is open
+* via the I$Open system call (processed by IOMan).  Process
+* descriptors track state information of a path.
+*
+               ORG       PD.FST
+PD.DV2         RMB       2                   Output device table pointer
+PD.RAW         RMB       1                   Read/Write or ReadLn/WritLn mode
+PD.MAX         RMB       2                   ReadLn high byte count
+PD.MIN         RMB       1                   Devices are "mine" if clear
+PD.STS         RMB       2                   Status routine module addr
+PD.STM         RMB       2                   Reserved for status routine
+               ORG       PD.OPT
+               RMB       1                   Device type
+PD.UPC         RMB       1                   Case (0=both, 1=upper only)
+PD.BSO         RMB       1                   Backspace (0=BSE, 1=BSE,SP,BSE)
+PD.DLO         RMB       1                   Delete (0=BSE over line, 1=CRLF)
+PD.EKO         RMB       1                   Echo (0=No Echo)
+PD.ALF         RMB       1                   Auto linefeed (0=No auto LF)
+PD.NUL         RMB       1                   End of Line null count
+PD.PAU         RMB       1                   Page pause (0=No end of page pause)
+PD.PAG         RMB       1                   Lines per page
+PD.BSP         RMB       1                   Backspace character
+PD.DEL         RMB       1                   Delete Line character
+PD.EOR         RMB       1                   End of Record character (read only)
+PD.EOF         RMB       1                   End of File character
+PD.RPR         RMB       1                   Repront Line character
+PD.DUP         RMB       1                   Dup Last Line character
+PD.PSC         RMB       1                   Pause character
+PD.INT         RMB       1                   Keyboard interrupt character (CTRL-C)
+PD.QUT         RMB       1                   Keyboard quit character (CTRL-E)
+PD.BSE         RMB       1                   Backspace echo character
+PD.OVF         RMB       1                   Line overflow character (BELL)
+PD.PAR         RMB       1                   Parity code
+PD.BAU         RMB       1                   ACIA baud rate (Color Computer)
+PD.D2P         RMB       2                   Offset of DEV2 name
+PD.XON         RMB       1                   ACIA X-ON character
+PD.XOFF        RMB       1                   ACIA X-OFF character
+OPTCNT         EQU       .-PD.OPT            Total user settable options
+PD.ERR         RMB       1                   Most recent I/O error status
+PD.TBL         RMB       2                   Device table addr (copy)
+PD.PLP         RMB       2                   Path Descriptor List Pointer
+PD.PST         RMB       1                   Current path status
+
+
+* PD.PST values Path Descriptor Status byte
+*
+PST.DCD        EQU       %00000001           Set if DCD is lost on Serial port
+
+
+* PD.PAR definitions
+*
+* Parity
+PARNONE        EQU       %00000000
+PARODD         EQU       %00100000
+PAREVEN        EQU       %01100000
+PARMARK        EQU       %10100000
+PARSPACE       EQU       %11100000
+
+* PD.BAU definitions
+*
+* Baud rate
+B110           EQU       %00000000
+B300           EQU       %00000001
+B600           EQU       %00000010
+B1200          EQU       %00000011
+B2400          EQU       %00000100
+B4800          EQU       %00000101
+B9600          EQU       %00000110
+B19200         EQU       %00000111
+B38400         EQU       %00001000
+B57600         EQU       %00001001
+B115200        EQU       %00001010
+* Word size
+WORD8          EQU       %00000000
+WORD7          EQU       %00100000
+* Stop bits
+STOP1          EQU       %00000000
+STOP2          EQU       %00010000
+
+               ENDC      
--- a/defs/scfdefs	Fri Feb 24 06:41:48 2012 -0600
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,244 +0,0 @@
-               IFNE      SCFDEFS-1
-
-SCFDEFS        SET       1
-
-********************************************************************
-* SCFDefs - Sequential Character File Manager Definitions
-*
-* $Id$
-*
-* SCF stands for 'Sequential Character Filemanager' and is a package of subroutines
-* that define the logical structure of a serial device.
-*
-* The data structures in this file give SCF its 'personality' and are used
-* by SCF itself, as well as applications that will require disk I/O.
-*
-* Edt/Rev  YYYY/MM/DD  Modified by
-* Comment
-* ------------------------------------------------------------------
-*          1984/01/11  YO
-* Added V.KANJI, V.KBUF, V.MODADR for new kanji input process.
-*
-*          1985/04/20  Mark G. Hawkins
-* Added V.PDLHd Path Descriptor List Head.
-*
-*          1985/04/21  Mark G. Hawkins
-* Added PD.PLP and PD.PST for modem handling.
-*
-*          1987/06/23  Kevin K. Darling
-* Updated with Dev Desc info.
-*
-*          1998/10/03  Boisy G. Pitre
-* Consolidated L1/L2 scfdefs.
-*
-*          2003/01/21  Boisy G. Pitre
-* Added symbolics for enhanced SCF line editing.
-*
-*          2003/06/02  Boisy G. Pitre
-* Updated comments for clarity.
-*
-*          2004/05/17  Boisy G. Pitre
-* Added higher baud rates.
-
-               NAM       SCFDefs
-               TTL       Sequential File Manager Definitions
-
-               PAG       
-*******************************
-* SCF Device Descriptor Offsets
-*
-* These definitions are for SCF device descriptors.
-
-               ORG       M$DTyp
-IT.DVC         RMB       1                   Device type (DT.SCF)
-IT.UPC         RMB       1                   Uppercase flag
-IT.BSO         RMB       1                   Backspace behavior
-IT.DLO         RMB       1                   Delete behavior
-IT.EKO         RMB       1                   Echo flag
-IT.ALF         RMB       1                   Auto linefeed flag
-IT.NUL         RMB       1                   End-of-line null count
-IT.PAU         RMB       1                   Page pause flag
-IT.PAG         RMB       1                   Number of lines per page
-IT.BSP         RMB       1                   Backspace character
-IT.DEL         RMB       1                   Delete-line character
-IT.EOR         RMB       1                   End-of-record character
-IT.EOF         RMB       1                   End-of-file character
-IT.RPR         RMB       1                   Reprint-line character
-IT.DUP         RMB       1                   Duplicate-last-line character
-IT.PSC         RMB       1                   Pause character
-IT.INT         RMB       1                   Interrupt character
-IT.QUT         RMB       1                   Quit character
-IT.BSE         RMB       1                   Backspace echo character
-IT.OVF         RMB       1                   Bell character
-IT.PAR         RMB       1                   Parity
-IT.BAU         RMB       1                   Baud rate
-IT.D2P         RMB       2                   Attached device name string offset
-IT.XON         RMB       1                   X-ON character
-IT.XOFF        RMB       1                   X-OFF character
-IT.COL         RMB       1                   Number of columns for display
-IT.ROW         RMB       1                   Number of rows for display
-IT.XTYP        RMB       1                   Extended type (added by BRI)
-
-               IFGT      Level-1
-* Window Descriptor Additions
-* For CoCo window, where IT.PAR = $80
-               ORG       IT.ROW+1
-IT.WND         RMB       1                   Window number (matches device name) ($2E)
-IT.VAL         RMB       1                   Use defaults on Init (0=no, 1=yes)
-IT.STY         RMB       1                   Screen type default
-IT.CPX         RMB       1                   Column start default
-IT.CPY         RMB       1                   Row start default
-IT.FGC         RMB       1                   Foreground color default
-IT.BGC         RMB       1                   Background color default
-IT.BDC         RMB       1                   Border color default
-               ENDC      
-
-
-               PAG       
-********************
-* SCF Static Storage
-*
-* SCF devices must reserve this space for SCF
-*
-               ORG       V.USER
-V.TYPE         RMB       1                   Device type or parity
-V.LINE         RMB       1                   Lines left until end of page
-V.PAUS         RMB       1                   Immediate Pause request
-V.DEV2         RMB       2                   Attached device's static
-V.INTR         RMB       1                   Interrupt char
-V.QUIT         RMB       1                   Quit char
-V.PCHR         RMB       1                   Pause char
-V.ERR          RMB       1                   Accumulated errors
-V.XON          RMB       1                   X-On char
-V.XOFF         RMB       1                   X-Off char
-V.KANJI        RMB       1                   Kanji mode flag
-V.KBUF         RMB       2                   Kana - Kanji convert routine work address
-V.MODADR       RMB       2                   Kana - Kanji convert module address
-V.PDLHd        RMB       2                   Open path descriptor list head pointer
-V.RSV          RMB       5                   Reserve bytes for future expansion
-V.SCF          EQU       .                   Total SCF manager static overhead
-
-
-               PAG       
-***********************
-* Character Definitions
-*
-C$NULL         SET       0                   Null char
-C$RPET         SET       $01                 (CTRL-A - SOH) Repeat last input line
-C$INTR         SET       $03                 (CTRL-C - ETX) Keyboard interrupt
-C$RPRT         SET       $04                 (CTRL-D - EOT) Reprint current input line
-C$QUIT         SET       $05                 (CTRL-E - ENQ) Keyboard Abort
-C$BELL         SET       $07                 (CTRL-G - BEL) Line overflow warning
-C$BSP          SET       $08                 (CTRL-H - BS ) Back space
-C$RARR         SET       $09                 Right Arrow
-C$EL           SET       $05                 Erase Line
-C$LF           SET       $0A                 Line feed
-C$HOME         SET       $0B                 Home position Code
-C$Clsgr        SET       $15                 Graphic screen clear (use FM-11)
-C$Clsall       SET       $16                 Graphic & character clear (use FM-11)
-C$CR           SET       $0D                 Carriage return
-C$FORM         SET       $0C                 (CTRL-L - FF ) Form Feed ... screen clear
-C$SI           SET       $0F                 Shift IN Code
-C$SO           SET       $0E                 Shift OUT Code
-C$DELETE       SET       $10                 Delete char (for SCF enhanced line editing)
-C$XON          SET       $11                 (CTRL-Q - DC1) Transmit Enable
-C$INSERT       SET       C$XON               Insert char (for SCF enhanced line editing)
-C$XOFF         SET       $13                 (CTRL-S - DC3) Transmit Disable
-C$PLINE        SET       C$XOFF              Print remaining line (for SCF enhanced line editing)
-C$PAUS         SET       $17                 (CTRL-W - ETB) Pause character
-C$DEL          SET       $18                 (CTRL-X - CAN) Delete line
-C$SHRARR       SET       $19                 Shift Right-Arrow
-C$EOF          SET       $1B                 (CTRL-[ - ESC) END of file
-C$RGT          SET       $1C                 Cursor right
-C$LFT          SET       $1D                 Cursor left
-C$UP           SET       $1E                 Cursor up
-C$DWN          SET       $1F                 Cursor down
-C$SPAC         SET       $20                 Space
-C$PERD         SET       '.
-C$COMA         SET       ',
-
-
-               PAG       
-*********************************************
-* Sequential Character Path Descriptor Format
-*
-* A path descriptor is created for every new path that is open
-* via the I$Open system call (processed by IOMan).  Process
-* descriptors track state information of a path.
-*
-               ORG       PD.FST
-PD.DV2         RMB       2                   Output device table pointer
-PD.RAW         RMB       1                   Read/Write or ReadLn/WritLn mode
-PD.MAX         RMB       2                   ReadLn high byte count
-PD.MIN         RMB       1                   Devices are "mine" if clear
-PD.STS         RMB       2                   Status routine module addr
-PD.STM         RMB       2                   Reserved for status routine
-               ORG       PD.OPT
-               RMB       1                   Device type
-PD.UPC         RMB       1                   Case (0=both, 1=upper only)
-PD.BSO         RMB       1                   Backspace (0=BSE, 1=BSE,SP,BSE)
-PD.DLO         RMB       1                   Delete (0=BSE over line, 1=CRLF)
-PD.EKO         RMB       1                   Echo (0=No Echo)
-PD.ALF         RMB       1                   Auto linefeed (0=No auto LF)
-PD.NUL         RMB       1                   End of Line null count
-PD.PAU         RMB       1                   Page pause (0=No end of page pause)
-PD.PAG         RMB       1                   Lines per page
-PD.BSP         RMB       1                   Backspace character
-PD.DEL         RMB       1                   Delete Line character
-PD.EOR         RMB       1                   End of Record character (read only)
-PD.EOF         RMB       1                   End of File character
-PD.RPR         RMB       1                   Repront Line character
-PD.DUP         RMB       1                   Dup Last Line character
-PD.PSC         RMB       1                   Pause character
-PD.INT         RMB       1                   Keyboard interrupt character (CTRL-C)
-PD.QUT         RMB       1                   Keyboard quit character (CTRL-E)
-PD.BSE         RMB       1                   Backspace echo character
-PD.OVF         RMB       1                   Line overflow character (BELL)
-PD.PAR         RMB       1                   Parity code
-PD.BAU         RMB       1                   ACIA baud rate (Color Computer)
-PD.D2P         RMB       2                   Offset of DEV2 name
-PD.XON         RMB       1                   ACIA X-ON character
-PD.XOFF        RMB       1                   ACIA X-OFF character
-OPTCNT         EQU       .-PD.OPT            Total user settable options
-PD.ERR         RMB       1                   Most recent I/O error status
-PD.TBL         RMB       2                   Device table addr (copy)
-PD.PLP         RMB       2                   Path Descriptor List Pointer
-PD.PST         RMB       1                   Current path status
-
-
-* PD.PST values Path Descriptor Status byte
-*
-PST.DCD        EQU       %00000001           Set if DCD is lost on Serial port
-
-
-* PD.PAR definitions
-*
-* Parity
-PARNONE        EQU       %00000000
-PARODD         EQU       %00100000
-PAREVEN        EQU       %01100000
-PARMARK        EQU       %10100000
-PARSPACE       EQU       %11100000
-
-* PD.BAU definitions
-*
-* Baud rate
-B110           EQU       %00000000
-B300           EQU       %00000001
-B600           EQU       %00000010
-B1200          EQU       %00000011
-B2400          EQU       %00000100
-B4800          EQU       %00000101
-B9600          EQU       %00000110
-B19200         EQU       %00000111
-B38400         EQU       %00001000
-B57600         EQU       %00001001
-B115200        EQU       %00001010
-* Word size
-WORD8          EQU       %00000000
-WORD7          EQU       %00100000
-* Stop bits
-STOP1          EQU       %00000000
-STOP2          EQU       %00010000
-
-               ENDC      
--- a/defs/scsi.d	Fri Feb 24 06:41:48 2012 -0600
+++ b/defs/scsi.d	Fri Feb 24 08:51:08 2012 -0600
@@ -1,3 +1,6 @@
+          IFNE      SCSI.D-1
+SCSI.D    SET       1
+
 ********************************************************************
 * scsi.d - SCSI definitions
 *
@@ -97,3 +100,5 @@
 SDAddr         SET       $FF53
                ENDC      
                ENDC      
+
+               ENDC      
--- a/defs/systype	Fri Feb 24 06:41:48 2012 -0600
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,205 +0,0 @@
-               IFNE      SYSTYPE-1
-
-SYSTYPE        SET       1
-
-********************************************************************
-* SysType - NitrOS-9 System Specific Definitions
-*
-* $Id$
-*
-* Edt/Rev  YYYY/MM/DD  Modified by
-* Comment
-* ------------------------------------------------------------------
-*          1998/10/13  Boisy G. Pitre
-* Added defs by Bruce Isted from his Eliminator archive.
-*
-*          1998/10/31  Boisy G. Pitre
-* Merged cc3global.defs into this file.
-*
-*          2002/04/30  Boisy G. Pitre
-* Merged Level One and Level Two sysdefs.
-*
-*          2002/06/22  Boisy G. Pitre
-* Removed PIA.U4 and PIA.U8, improved comments
-*
-*          2003/11/05  Robert Gault
-* Made changes in window globals and grfdrv memory to handle regW
-* in 6809 systems.
-*
-*          2003/11/30  Boisy G. Pitre
-* Statics now are prefaced with V. to identify them easier in source.
-*
-*          2004/07/18  Boisy G. Pitre
-* Moved CoCo 3 Window stuff into cc3iodefs
-
-               NAM       SysType
-               IFEQ      Level-1
-               TTL       NitrOS-9 Level 1 System Type Definitions
-               ELSE      
-               IFEQ      Level-2
-               TTL       NitrOS-9 Level 2 System Type Definitions
-               ENDC      
-               IFEQ      Level-3
-               TTL       NitrOS-9 Level 3 System Type Definitions
-               ENDC      
-               ENDC      
-
-
-**********************
-* CPU Type Definitions
-*
-Color          SET       1
-Color3         SET       2
-               IFEQ      Level-1
-CPUType        SET       Color
-               ELSE      
-CPUType        SET       Color3
-               ENDC      
-
-
-******************************
-* Clock Speed Type Definitions
-*
-OneMHz         EQU       1
-TwoMHz         EQU       2
-               IFEQ      CPUType-Color
-CPUSpeed       SET       OneMHz
-               ELSE      
-CPUSpeed       SET       TwoMHz
-               ENDC      
-
-
-**********************************
-* Power Line Frequency Definitions
-*
-Hz50           EQU       1                   Assemble clock for 50 hz power
-Hz60           EQU       2                   Assemble clock for 60 hz power
-PwrLnFrq       SET       Hz60                Set to Appropriate freq
-
-
-**********************************
-* Ticks per second
-*
-               IFEQ      PwrLnFrq-Hz50
-TkPerSec       SET       50
-               ELSE      
-TkPerSec       SET       60
-               ENDC      
-
-
-******************
-* ACIA type set up
-*
-               ORG       1
-ACIA6850       RMB       1                   MC6850 acia.
-ACIA6551       RMB       1                   SY6551 acia.
-ACIA2661       RMB       1                   SC2661 acia.
-ACIATYPE       SET       ACIA6551
-
-
-****************************************
-* Special character Bit position equates
-*
-SHIFTBIT       EQU       %00000001
-CNTRLBIT       EQU       %00000010
-ALTERBIT       EQU       %00000100
-UPBIT          EQU       %00001000
-DOWNBIT        EQU       %00010000
-LEFTBIT        EQU       %00100000
-RIGHTBIT       EQU       %01000000
-SPACEBIT       EQU       %10000000
-
-
-******************
-* Device addresses for miscellaneous hardware
-*
-A.AciaP        SET       $FF68               Aciapak Address
-A.ModP         SET       $FF6C               ModPak Address
-DPort          SET       $FF40               Disk controller base address
-MPI.Slct       SET       $FF7F               Multi-Pak slot select
-MPI.Slot       SET       $03                 Multi-Pak default slot
-PIA0Base       EQU       $FF00
-PIA1Base       EQU       $FF20
-
-
-******************
-* 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
-
-
-               IFEQ      Level-1
-
-*************************************************
-*
-* NitrOS-9 Level 1 Section
-*
-*************************************************
-
-HW.Page        SET       $FF                 Device descriptor hardware page
-
-               ELSE      
-
-*************************************************
-*
-* NitrOS-9 Level 2 Section
-*
-*************************************************
-
-****************************************
-* Dynamic Address Translator Definitions
-*
-DAT.BlCt       EQU       8                   D.A.T. blocks/address space
-DAT.BlSz       EQU       (256/DAT.BlCt)*256  D.A.T. block size
-DAT.ImSz       EQU       DAT.BlCt*2          D.A.T. Image size
-DAT.Addr       EQU       -(DAT.BlSz/256)     D.A.T. MSB Address bits
-DAT.Task       EQU       $FF91               Task Register address
-DAT.TkCt       EQU       32                  Number of DAT Tasks
-DAT.Regs       EQU       $FFA0               DAT Block Registers base address
-DAT.Free       EQU       $333E               Free Block Number
-DAT.BlMx       EQU       $3F                 Maximum Block number
-DAT.BMSz       EQU       $40                 Memory Block Map size
-DAT.WrPr       EQU       0                   no write protect
-DAT.WrEn       EQU       0                   no write enable
-SysTask        EQU       0                   Coco System Task number
-IOBlock        EQU       $3F
-ROMBlock       EQU       $3F
-IOAddr         EQU       $7F
-ROMCount       EQU       1                   number of blocks of ROM (High RAM Block)
-RAMCount       EQU       1                   initial blocks of RAM
-MoveBlks       EQU       DAT.BlCt-ROMCount-2 Block numbers used for copies
-BlockTyp       EQU       1                   chk only first bytes of RAM block
-ByteType       EQU       2                   chk entire block of RAM
-Limited        EQU       1                   chk only upper memory for ROM modules
-UnLimitd       EQU       2                   chk all NotRAM for modules
-* NOTE: this check assumes any NotRAM with a module will
-*       always start with $87CD in first two bytes of block
-RAMCheck       EQU       BlockTyp            chk only beg bytes of block
-ROMCheck       EQU       Limited             chk only upper few blocks for ROM
-LastRAM        EQU       IOBlock             maximum RAM block number
-
-***************************
-* Color Computer 3 Specific
-*
-MappedIO       EQU       true                (Actually False but it works better this way)
-
-********************
-* Hardware addresses
-*
-GIMERegs       EQU       $FF00               Base address of GIME registers
-IrqEnR         EQU       $FF92               GIME IRQ enable/status register
-BordReg        EQU       $FF9A               Border color register
-PalAdr         EQU       $FFB0               Palette registers
-
-HW.Page        SET       $07                 Device descriptor hardware page
-
-               ENDC      
-               ENDC      
-
--- a/defs/vtiodefs	Fri Feb 24 06:41:48 2012 -0600
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,170 +0,0 @@
-               IFNE      VTIODEFS-1
-VTIODEFS       SET       1
-
-********************************************************************
-* VTIODefs - Video Terminal I/O Definitions for CoCo 1/2
-*
-* $Id$
-*
-* Edt/Rev  YYYY/MM/DD  Modified by
-* Comment
-* ------------------------------------------------------------------
-*          2004/11/29  P.Harvey-Smith.
-* Added symbolic defines for bits in V.CoLoad.
-*
-*          2004/12/02  P.Harvey-Smith.
-* Moved over all variables from co51.asm
-*
-*          2005/04/09  P.Harvey-Smith.
-* Decoded rest of the CoHR memory locations.
-*
-*	       2005/04/24  P.Harvey-Smith.
-* Added variables for cursor flash, currently only implemented in co51
-*
-               NAM       VTIODefs  
-               TTL       Video Terminal I/O Definitions for CoCo 1/2
-
-********************
-* VTIO Static Memory
-*
-               ORG       V.SCF
-V.ScrnA        RMB       2                   (2) screen start address in system memory
-V.ScrnE        RMB       2                   (2) address of end of screen
-V.CrsrA        RMB       1                   (2) cursor address
-V.CrsAL        RMB       1                   cursor address low
-V.CChar        RMB       1                   value of character under cursor
-V.Mode         RMB       1                   mode: 0=256x192 x2, 1=128x192 x4
-V.NGChr        RMB       1                   number of additional characters to get
-V.RTAdd        RMB       2                   (2) return address after getting characters
-V.NChar        RMB       1                   character to process
-V.NChr2        RMB       1                   and the next one
-               RMB       1
-V.Chr1         RMB       1                   same as under cursor character
-V.CColr        RMB       1                   cursor color
-V.Col          RMB       1                   number of columns for this screen
-V.Row          RMB       1                   number of rows
-V.Alpha        RMB       1                   0 when in alpha mode
-V.PIA1         RMB       1                   PIA1Base value
-V.Rdy          RMB       1                   device ready (see SS.DStat 0=not ready)
-V.CFlg1        RMB       1                   VDG display code values
-V.SBAdd        RMB       2                   (2) address of block screen is in
-V.GBuff        RMB       2                   allocation for graphics buffers (block#)
-V.AGBuf        RMB       4                   (2) additional graphics buffer
-V.FFMem        RMB       2                   Flood fill alloc'ed mem
-V.FFSPt        RMB       2                   Flood fill current stack pointer
-V.FFSTp        RMB       1                   Flood fill stack top
-V.FF6          RMB       1                   flood fill flag
-V.FFFlag       RMB       1                   ??
-V.MTabl        RMB       2                   (2) address of mask table for pixels in byte
-V.PixBt        RMB       1                   bit mask for modes (0=$07, 1=$03 )#pixels/byte
-V.GCrsX        RMB       1                   graphics cursor X value
-V.GCrsY        RMB       1                   graphics cursor Y
-V.Msk1         RMB       1                   mask byte 1
-V.Msk2         RMB       1                   mask byte 2 (00,55,AA,FF)
-V.MCol         RMB       1                   color? (C003,8001)
-V.4A           RMB       1
-V.PMask        RMB       1                   pixel mask for colors (i.e. $55, $CC etc)
-V.4C           RMB       1
-V.4D           RMB       1
-V.4E           RMB       1
-V.4F           RMB       1
-V.Caps         RMB       1                   caps lock info: $00=lower $FF=upper
-V.ClkCnt       RMB       1                   clock count ??
-V.WrChr        RMB       1                   character to write
-V.CurCo        RMB       1                   current CO-module in use
-* start of CoWP-specific static memory
-V.Co80X        RMB       1                   V.54
-V.Co80Y        RMB       1                   V.55
-V.ColPtr       RMB       1                   V.56
-V.RowPtr       RMB       1                   V.57
-V.C80X         RMB       1                   CoWP X position
-V.C80Y         RMB       1                   CoWP Y position
-V.Invers       RMB       1
-* end of CoWP-specific static memory
-V.DspVct       RMB       2                   vector to display screen
-V.CnvVct       RMB       2                   vector to X/Y to address conversion
-V.LKeyCd       RMB       1                   last key code
-V.2Key1        RMB       1                   2nd Key 1
-V.2Key2        RMB       1                   2nd Key 2
-V.2Key3        RMB       1                   2nd Key 3
-V.Key1         RMB       1                   Key 1
-V.Key2         RMB       1                   Key 2
-V.Key3         RMB       1                   Key 3
-V.ShftDn       RMB       1                   SHIFT/CTRL state
-V.CtrlDn       RMB       1                   CTRL key down
-V.KeyFlg       RMB       1                   key flag
-V.AltDwn       RMB       1                   ALT key down
-V.KySns        RMB       1                   key sense flags
-V.KySame       RMB       1                   key same as last flag
-V.KySnsF       RMB       1                   key sense flag
-V.Spcl         RMB       1
-V.KTblLC       RMB       1                   key table entry #
-V.6F           RMB       1                   ???
-V.COLoad       RMB       1                   CO-module loaded flags
-V.CFlag        RMB       1                   true lowercase flag $10=true, $00=false
-V.GrfDrvE      RMB       2                   GrfDrv entry point
-V.CoVDGE       RMB       2                   CoVDG entry point
-V.CoWPE        RMB       2                   CoWP entry point
-V.CoHRE        RMB       2                   CoHR entry point
-
-V.Flash        RMB       2                   Cursor flash routine address.
-v.FlashCount   RMB       1                   Cursor flash count
-V.NoFlash      RMB       1                   When this is non-zero do not flash cursor
-
-* CoHR vars
-
-V.51ScrnA      RMB       2                   * Screen address.
-V.51XPos       RMB       1                   * X co-ordinate
-V.51YPos       RMB       1                   * Y co-ordinate
-V.51EscSeq     RMB       1                   * In escape sequence
-V.51ReverseFlag RMB       1                   * Reverse video flag
-V.51UnderlineFlag RMB       1                   * Underline flag
-V.51CtrlDispatch RMB       2                   * Ctrl char dispatch address, currently processing
-V.51BytePixOffset RMB       1                   * byte offset in screen line, of character X position        
-V.51OldCursorPosX RMB       1                   * Position of old cursor before update        
-V.51OldCursorPosY RMB       1
-V.51CursorChanged RMB       1                   * Has cursor position changed ? 1=yes,0=no
-V.51CursorOn   RMB       1                   * Is cursor on ? 1=yes 0=no		         
-V.51XORFlag    RMB       1                   * and data to screen (0) or Xor (1)  		       
-V.51ScreenMask1 RMB       1                   * screen masks for drawing characters on screen         
-V.51ScreenMask2 RMB       1
-* End of CoHR vars
-**** Note these have to come at the end of the defs, or the keyboard ****
-**** code can clobber variables defined after these !                ****
-V.IBufH        RMB       1                   input buffer head
-V.IBufT        RMB       1                   input buffer tail
-V.InBuf        RMB       1                   input buffer ptr
-V.51End        RMB       1
-               RMB       250-.
-V.Last         EQU       .
-
-
-* Unknown for now
-*VD.FFMem rmb   2  (2) bottom of stack for flood fill
-*VD.FFSPt rmb   2  (2) flood fill stack pointer
-*VD.FFSTp rmb   2  (2) flood fill stack top pointer
-*VD.FF6   rmb   1   flood fill flag
-*VD.MCol2 rmb   1  color
-*VD.FF1   rmb   1  data for flood fill
-*VD.FF2   rmb   1  data for flood fill
-*VD.FFMsk rmb   1  flood fill mask
-*VD.FFFlg rmb   1  flood fill flag
-*VD.Palet rmb   16 (16) current palette values
-*VD.PlFlg rmb   1  initialized to $08 by L00DB, and then unused!
-
-*
-* Defs for V.COLoad flags.
-* 
-
-ModCoVDG       EQU       %00000010           CoVDG, Built-in VDG 32x16.
-ModCoWP        EQU       %00000100           CoWP, WordPak, 80x25
-ModCoHR        EQU       %00001000           CoHR, PMODE 4 51x25 text
-
-*
-* Defs for cursor flash counter
-*
-
-CFlash50hz     EQU       25                  * 50Hz flash counter
-CFlash60Hz     EQU       30                  * 60Hz flash counter
-
-               ENDC      
--- a/defs/vtiodefs_cc3	Fri Feb 24 06:41:48 2012 -0600
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,736 +0,0 @@
-               IFNE      VTIODEFS-1
-VTIODEFS       SET       1
-
-********************************************************************
-* VTIODefs - Video Terminal I/O Definitions for CoCo 3
-*
-* $Id$
-*
-* Edt/Rev  YYYY/MM/DD  Modified by
-* Comment
-* ------------------------------------------------------------------
-*          2004/07/18  Boisy G. Pitre
-* Started from systype
-
-               NAM       VTIODefs
-               TTL       Video Terminal I/O Definitions for CoCo 3
-
-****************
-* Window Devices
-*
-               ORG       $FF9F
-A.W            RMB       1                   $FF9F Generic Window Descriptor
-A.TermW        RMB       1                   $FFA0 Windowing Term
-A.W1           RMB       1                   $FFA1
-A.W2           RMB       1                   $FFA2
-A.W3           RMB       1                   $FFA3
-A.W4           RMB       1                   $FFA4
-A.W5           RMB       1                   $FFA5
-A.W6           RMB       1                   $FFA6
-A.W7           RMB       1                   $FFA7
-A.W8           RMB       1                   $FFA8
-A.W9           RMB       1                   $FFA9
-A.W10          RMB       1                   $FFAA
-A.W11          RMB       1                   $FFAB
-A.W12          RMB       1                   $FFAC
-A.W13          RMB       1                   $FFAD
-A.W14          RMB       1                   $FFAE
-A.W15          RMB       1                   $FFAF
-
-**********************************
-* Pointer Device Packet Definition
-*
-               ORG       0
-Pt.Valid       RMB       1                   Is returned info valid (0=no/1=yes)
-Pt.Actv        RMB       1                   Active Side 0=off/1=Right/2=left
-Pt.ToTm        RMB       1                   Time out Initial value
-               RMB       2                   reserved
-Pt.TTTo        RMB       1                   Time Till Timeout
-Pt.TSSt        RMB       2                   Time Since Start Counter
-Pt.CBSA        RMB       1                   Current Button State Button A
-Pt.CBSB        RMB       1                   Current Button State Button B
-Pt.CCtA        RMB       1                   Click Count Button A
-Pt.CCtB        RMB       1                   Click Count Button B
-Pt.TTSA        RMB       1                   Time This State Counter Button A
-Pt.TTSB        RMB       1                   Time This State Counter Button B
-Pt.TLSA        RMB       1                   Time Last State Counter Button A
-Pt.TLSB        RMB       1                   Time Last State Counter Button B
-               RMB       2                   Reserved
-Pt.BDX         RMB       2                   Button down X value EXPERIMENTAL
-Pt.BDY         RMB       2                   Button down Y value
-Pt.Stat        RMB       1                   Window Pointer type location
-Pt.Res         RMB       1                   Resolution (0..640 by: 0=ten/1=one)
-Pt.AcX         RMB       2                   Actual X Value
-Pt.AcY         RMB       2                   Actual Y Value
-Pt.WRX         RMB       2                   Window Relative X
-Pt.WRY         RMB       2                   Window Relative Y
-Pt.Siz         EQU       .                   Packet Size 32 bytes
-
-**************************
-* window regions for mouse
-*
-WR.Cntnt       EQU       0                   content region
-WR.Cntrl       EQU       1                   control region
-WR.OfWin       EQU       2                   off window
-
-*************************************
-* Standard system get/put buffer defs
-*
-*
-* system group numbers
-*
-               ORG       200
-Grp.Fnt        RMB       1                   font group
-Grp.Clip       RMB       1                   clipboard group
-Grp.Ptr        RMB       1                   pointer group
-Grp.Pat2       RMB       1                   pattern group 2 color
-Grp.Pat4       RMB       1                   pattern group 4 color
-Grp.Pat6       RMB       1                   pattern group 16 color
-*
-* font buffer numbers
-*
-               ORG       1
-Fnt.S8x8       RMB       1                   standard 8x8 font
-Fnt.S6x8       RMB       1                   standard 6x8 font
-Fnt.G8x8       RMB       1                   standard graphics 8x8 font
-*
-* pattern buffer numbers
-*
-               ORG       1
-Pat.Dot        RMB       1
-Pat.Vrt        RMB       1
-Pat.Hrz        RMB       1
-Pat.XHtc       RMB       1
-Pat.LSnt       RMB       1
-Pat.RSnt       RMB       1
-Pat.SDot       RMB       1
-Pat.BDot       RMB       1
-*
-* pointer buffer numbers
-*
-               ORG       1
-Ptr.Arr        RMB       1                   Arrow pointer
-Ptr.Pen        RMB       1                   Pencil pointer
-Ptr.LCH        RMB       1                   Large cross hair pointer
-Ptr.Slp        RMB       1                   Wait timer pointer
-Ptr.Ill        RMB       1                   Illegal action pointer
-Ptr.Txt        RMB       1                   Text pointer
-Ptr.SCH        RMB       1                   Small cross hair pointer
-
-**********************
-* KeyDrv Entry Points
-               ORG       0
-K$Init         RMB       3                   joystick initialization
-K$Term         RMB       3                   joystick termination
-K$FnKey        RMB       3                   get function key states
-K$RdKey        RMB       3                   get key states
-
-**********************
-* JoyDrv Entry Points
-               ORG       0
-J$Init         RMB       3                   joystick initialization
-J$Term         RMB       3                   joystick termination
-J$MsBtn        RMB       3                   get mouse button states
-J$MsXY         RMB       3                   get mouse X/Y coordinates
-J$JyBtn        RMB       3                   get joystick button states
-J$JyXY         RMB       3                   get joystick X/Y coordinates
-
-**********************
-* SndDrv Entry Points
-               ORG       0
-S$Init         RMB       3                   joystick initialization
-S$GetStt       RMB       3                   joystick termination
-S$SetStt       RMB       3                   joystick termination
-S$Term         RMB       3                   get joystick X/Y coordinates
-
-********************************
-* Window/Menu Bar Data Structure
-*
-* To be used in SS.WnSet SETSTAT to set up a Framed Window
-* for use in the high level windowing package.
-*
-NUMMENS        EQU       10                  maximum number of menus on menu bar
-NUMITMS        EQU       20                  maximum number of items in a menu
-MXTTLEN        EQU       15                  max chars for menu and item names
-WINSYNC        EQU       $C0C0               synch bytes for window validation
-*
-* Menu Item Descriptor : (MN.ITEMS)
-* one required for each item within the menu
-*
-               ORG       0
-MI.TTL         RMB       MXTTLEN             item name
-MI.ENBL        RMB       1                   enable flag
-MI.RES         RMB       5                   reserved bytes
-MI.SIZ         EQU       .                   size of menu item descriptor
-*
-* Menu Descriptor :
-* one for each menu on the manu bar
-* each is pointed to by MB.MPTR below
-*
-               ORG       0
-MN.TTL         RMB       MXTTLEN             menu title
-MN.ID          RMB       1                   menu id number (1-255)
-MN.XSIZ        RMB       1                   horiz. size of desired pull down
-MN.NITS        RMB       1                   number of items in menu
-MN.ENBL        RMB       1                   enable flag
-MN.RES         RMB       2                   reserved bytes
-MN.ITEMS       RMB       2                   pointer to array of menu items
-MN.SIZ         EQU       .                   size of menu descriptor
-*
-* Window Descriptor:
-* one required for each application in a framed window
-*
-               ORG       0
-WN.TTL         RMB       20                  title of window for title bar
-WN.NMNS        RMB       1                   number of menus in menu bar
-WN.XMIN        RMB       1                   minimal horiz. size for application to run
-WN.YMIN        RMB       1                   minimal vert. size for application to run
-WN.SYNC        RMB       2                   synch bytes ($C0C0)
-WN.RES         RMB       7                   reserved bytes
-WN.BAR         RMB       2                   pointer to arry of menu descriptors
-WN.SIZ         EQU       .                   size of window/menu bar descriptor
-
-*************************
-* Window Type Definitions
-*
-* To be used in setting up the border of the window in
-* the SS.WnSel SETSTAT
-*
-               ORG       0
-WT.NBox        RMB       1                   No Box
-WT.FWin        RMB       1                   Framed Window
-WT.FSWin       RMB       1                   Framed Window w/Scroll Bars
-WT.SBox        RMB       1                   Shadowed Box
-WT.DBox        RMB       1                   Double Box
-WT.PBox        RMB       1                   Plain Box
-
-*************************************
-* Pre-Defined Menu IDs for the system
-*
-               ORG       1
-MId.Mov        RMB       1                   move box
-MId.Cls        RMB       1                   close box
-MId.Grw        RMB       1                   grow box
-MId.SUp        RMB       1                   scroll up
-MId.SDn        RMB       1                   scroll down
-MId.SRt        RMB       1                   scroll right
-MId.SLt        RMB       1                   scroll left
-MId.Chr        RMB       1                   character was depressed
-               ORG       20
-MId.Tdy        RMB       1                   Tandy menu
-MId.Fil        RMB       1                   Files Menu
-MId.Edt        RMB       1                   Edit Menu
-MId.Sty        RMB       1                   Styles menu
-MId.Fnt        RMB       1                   Font menu
-
-
-******************************************************************************
-******************************************************************************
-**                                                                          **
-** NitrOS-9 Windowing system Global data definitions                        **
-**                                                                          **
-******************************************************************************
-******************************************************************************
-**                                                                          **
-** System memory block 0 layout:                                            **
-**                                                                          **
-** $0000-$0001 : FHL/Isted WD 1002-05 - interface base address              **
-** $0002       : FHL/Isted WD 1002-05 - boot device physical drive #        **
-** $0008       : Bruce Isted Serial mouse - button counter & rx count       **
-** $0009-$000B : Bruce Isted Serial mouse - RX buffer                       **
-** $000C-$000D : Bruce Isted Serial mouse - Current X position              **
-** $000E-$000F : Bruce Isted Serial mouse - Current Y position              **
-** $0010-$001F : unused (User definable)                                    **
-** $0020-$00FF : system direct page & some IRQ vectors                      **
-** $0100-$011F : Task usage table                                           **
-** $0120-$01FF : Virtual DAT tasks (pointed to by <D.TskIPt)                **
-** $0200-$02FF : memory block usage map ($80=Not RAM,$01=in use,$02=module) **
-** $0300-$03FF : system's system call dispatch table                        **
-** $0400-$04FF : user's sysem call dispatch table                           **
-** $0500-$05FF : process descriptor pointer table                           **
-** $0600-$07FF : System task (Task 0, ID 1) process descriptor              **
-** $0800-$08FF : System's stack space (initial ptr is $0900)                **
-** $0900-$09FF : SMAP table ($01=in used, $80=NOT RAM)                      **
-** $0A00-$0FFF : module directory DAT Images (8 bytes each)                 **
-** $1000-$10FF : System Global memory (pointed to by D.CCMem)               **
-** $1100-$11FF : GRFDRV global memory (DP=$11 in GRFDRV)                    **
-** $1200-$1247 : shared buffer between Grf/WindInt & GRFDRV (GP buffers)    **
-** $1248-$127F : ????                                                       **
-** $1280-$1A7F : the window tables (32 of $40 bytes each)                   **
-** $1A80-$1C7F : the screen tables (16 of $20 bytes each)                   **
-** $1C80-$2000 : the CC3 global mem stack (for windowing)                   **
-**                                                                          **
-******************************************************************************
-******************************************************************************
-
-* User settable values for VTIO/TC9IO/GrfInt/WindInt & GrfDrv
-MaxLines       EQU       25                  Max. Y coord text value
-Meg            SET       false               "true" if 1 or 2 meg machine
-
-COMP           EQU       0                   composite monitor
-RGB            EQU       1                   RGB Analog monitor 
-MONO           EQU       2                   monochrome monitor
-
-Monitor        SET       RGB
-
-* Global definitions
-KeyMse         EQU       %00000001           keyboard mouse enabled
-NumLck         EQU       %00000010           Numlock enabled (TC-9 use only)
-CapsLck        EQU       %00000100           Capslock enabled
-MaxRows        EQU       640                 maximum X co-ordinate allowed on mouse
-               IFEQ      MaxLines-25
-MaxLine        EQU       198                 maximum Y co-ordinate allowed on mouse
-               ELSE      
-MaxLine        EQU       191                 maximum Y co-ordinate allowed on mouse
-               ENDC      
-
-*****************************************************************************
-* Static memory area for each window (VTIO/TC9IO)
-* Should set up a write buffer (using parm area?) between SCF, VTIO & Grfdrv
-* so we can 'burst mode' text output (copy up to 48 chars to Grfdrv's parm
-* area, and have grfdrv loop through & write all 48 chars to screen in 1 loop
-* May have to have smaller limit for text to gfx screens, as it will run much
-* slower, unless GrfDrv is made Partially/Fully Re-Entrant
-*
-* STRONG CAUTION:  scfdefs MUST be included first before this file if
-* V.SCF is to be resolved properly in pass 1!!
-               ORG       V.SCF
-V.WinType      RMB       1                   window type (0=Windint/GrfInt,2=VDGInt)      $1D
-V.InfVld       RMB       1                   Rest of info here valid? (0=NO, >0 = YES)    $1E
-V.DevPar       RMB       2                   high bit=window device                       $1F
-V.ULCase       RMB       1                   special key flags (Capslck & keyboard mouse) $21
-V.KySnsFlg     RMB       1                   flag for key sense setstat                   $22
-V.ScrChg       RMB       1                   screen change flag                           $23
-V.SSigID       RMB       1                   data ready process ID                        $24
-V.SSigSg       RMB       1                   data ready signal code                       $25
-V.MSigID       RMB       1                   mouse signal process ID                      $26
-V.MSigSg       RMB       1                   mouse signal signal code                     $27
-V.MSmpl        RMB       1                   mouse sample rate                            $28
-V.MTime        RMB       1                   mouse timeout value                          $29
-               RMB       1                   unused                                       $2A
-V.MAutoF       RMB       1                   auto follow mouse flag                       $2B
-V.ParmCnt      RMB       1                   parameter count                              $2C
-V.ParmVct      RMB       2                   parameter vector                             $2D
-V.PrmStrt      RMB       2                   pointer to params start                      $2F
-V.NxtPrm       RMB       2                   pointer to next param storage                $31
-V.EndPtr       RMB       1                   last character read offset                   $33
-V.InpPtr       RMB       1                   next character read offset                   $34
-V.WinNum       RMB       1                   window table entry #                         $35
-V.DWNum        RMB       1                   dwnum from descriptor                        $36
-V.CallCde      RMB       1                   internal comod call code #                   $37
-CC3Parm        RMB       128-.               global parameter area
-ReadBuf        RMB       256-.               read input buffer (keyboard)
-CC3DSiz        EQU       .
-
-*****************************************************************************
-* GrfInt/WindInt global memory area
-* This area sits in system block 0 from $1000 to $10ff
-WGlobal        EQU       $1000               useful value (points to address starting below)
-               ORG       0
-G.CurTik       RMB       1                   Constant - # Clock ticks/cursor updates (2)
-G.CntTik       RMB       1                   Current tick count for cursor updates
-G.GfBusy       RMB       1                   Grfdrv is busy flag (1=busy)
-G.OrgAlt       RMB       2                   Place to store D.AltIRQ before altering
-*g0003    rmb   2          NEW: UNUSED
-g0005          RMB       2                   Temp save in Windint RG
-G.GrfStk       RMB       2                   grfdrv stack pointer ($07)
-G.MonTyp       RMB       1                   monitor type
-g000A          EQU       .                   Old label for compatibility
-G.CrDvFl       RMB       1                   Are we current device flag (only set when all
-*                           Parms have been moved to Dev Mem)
-*                           0=We are not on our device
-*                           1=We are the current device
-*                           (Used by comod (GRF/WIND/VDGInt) to determine
-*                            whether or not to update GIME regs themselves
-*                            If not current device, they don't.)
-G.WinType      RMB       1                   current device's V.TYPE
-G.CurDvM       RMB       2                   current device memory pointer for co-module use
-G.WIBusy       RMB       1                   WindInt is busy flag (1=busy)
-G.AlPckt       RMB       6                   F$Alarm time packet
-G.AlPID        RMB       1                   F$Alarm proc ID ($15)
-G.AlSig        RMB       1                   F$Alarm signal code ($16)
-G.BelVec       RMB       2                   BELL routine vector
-G.DefPal       RMB       2                   pointer to default palette data in global mem
-G.TnCnt        RMB       1                   SS.Tone duration counter
-G.BelTnF       RMB       1                   BELL tone flag
-g001D          RMB       3
-G.CurDev       RMB       2                   current device's static memory pointer ($20)
-G.PrWMPt       RMB       2                   previous window static mem pointer $(22)
-G.BCFFlg       RMB       1                   bit coded co-module found flags ($24)
-*                           00000010 : VDGInt found
-*                           10000000 : GrfDrv found
-g0025          RMB       1
-G.KTblLC       RMB       1                   Key table entry# last checked (1-3)
-*         IFEQ  TC9-true
-*CurLght  rmb   1          current keyboard light settings
-*         ELSE  
-G.LastCh       RMB       1                   last keyboard character (ASCII value)
-*         ENDC  
-G.LKeyCd       RMB       1                   last keyboard code
-G.KyRept       RMB       1                   key repeat counter
-* A secondary 3 key table (same format as g002D below)
-G.2Key1        RMB       1                   $2A
-G.2Key2        RMB       1                   $2B
-G.2Key3        RMB       1
-* Up to 3 keys can be registerd at once, and they are stored here. If more
-* than 3 are hit, the last key is overwritten with the very last key down that
-* was checked. Format for all three is the same as the PIA column/row byte @
-* KeyFlag below.
-G.Key1         RMB       1                   Key 1 being held down (Row/Column #)
-G.Key2         RMB       1                   Key 2 being held down (Row/Column #)
-G.Key3         RMB       1                   Key 3 being held down (Row/Column #)
-G.ShftDn       RMB       1                   SHIFT key down flag (COM'd) ($30)
-G.CntlDn       RMB       1                   CTRL key down flag (0=NO)
-G.KeyFlg       RMB       1                   Keyboard PIA bit #'s for columns/rows
-*                           %00000111-Column # (Output, 0-7)
-*                           %00111000-Row # (Input, 0-6)
-G.AltDwn       RMB       1                   ALT key down flag (0=NO)
-G.KySns        RMB       1                   key sense byte
-G.KySame       RMB       1                   same key flag
-G.CapLok       RMB       1                   CapsLock/SysRq key down flag
-               RMB       1
-g0038          RMB       1                   grfdrv initialized flag
-               RMB       2
-G.MSmpRt       RMB       1                   Current mouse sample # (# ticks till next read)
-G.Mouse        RMB       Pt.Siz              mouse packet ($3C)
-g005C          RMB       2                   Temp for relative mouse X coord calculation
-g005E          RMB       2                   Temp for relative mouse Y coord calculation
-G.MSmpRV       RMB       1                   Mouse sample reset value (# ticks till next read)
-G.KyDly        RMB       1                   initial key repeat delay constant ($61)
-G.KySpd        RMB       1                   secondary key repeat delay constant
-*         IFEQ  TC9-true
-*KeyParm  rmb   1          keyboard command parameter byte
-*         ELSE  
-G.KyMse        RMB       1                   keyboard mouse flag ($63)
-*         ENDC  
-G.Clear        RMB       1                   "one-shot" CapsLock/SysRq key flag ($64)
-G.KyButt       RMB       1                   keyboard F1 and F2 "fire" button info ($65)
-G.AutoMs       RMB       1                   Auto-follow mouse flag for current device (0=NO)
-G.MseMv        RMB       1                   mouse moved flag ($67)
-G.CoTble       RMB       6                   co-module table ($68)
-G.GrfEnt       RMB       2                   GRFDRV Entry address ($6E)
-g0070          RMB       1                   # bytes to move in 1 block (1-72)
-G.WUseTb       RMB       4                   windows in use bit table (0=unused, 32 windows) ($71)
-G.GfxTbl       RMB       2                   Pointer to GFX tables ($75)
-G.WrkWTb       RMB       $40                 Work window table. WindInt only ($77)
-g00B7          RMB       2                   Current Device static mem ptr for WindInt
-g00B9          RMB       2                   Current window table ptr for WindInt
-g00BB          RMB       2                   Pointer to work window table (g0077+$10)
-g00BD          RMB       1                   Current screen type for work window table
-g00BE          RMB       1                   Topmost overlay window # when check for title bars
-g00BF          RMB       1                   Flag for keypress while processing menu select
-g00C0          RMB       2                   Ptr to current path descriptor
-G.WindBk       RMB       2                   shift-clear routine vector
-G.MsInit       RMB       2                   set mouse routine vector
-G.MsSig        RMB       1                   mouse signal flag
-G.DefPls       RMB       16                  Default palettes (2 repeats of 8 is default) ($C7)
-g00D7          RMB       9
-G.KeyEnt       RMB       2                   entry to keydrv subroutine module ($E0)
-G.KeyMem       RMB       8                   static memory for keydrv subroutine module
-G.JoyEnt       RMB       2                   entry to joydrv subroutine module ($EA)
-G.JoyMem       RMB       8                   static memory for joydrv subroutine module
-G.SndEnt       RMB       2                   entry to snddrv subroutine module ($F4)
-G.SndMem       RMB       8                   static memory for snddrv subroutine module
-
-*****************************************************************************
-* GrfDrv global memory data definitions
-* This area sits in system block 0 from $1100 to $119E
-GrfMem         EQU       $1100               useful label used to point to mem starting below
-               ORG       0
-gr0000         RMB       1                   Pixel mask for 1st byte of GP line
-gr0001         RMB       1                   Pixel mask for last byte of a GP line
-gr0002         RMB       2                   Ptr to table of bit masks for colors
-gr0004         RMB       1                   # of bytes wide GP buffer is (including partials)
-gr0005         RMB       1                   # pixels per byte in GP Buffer
-gr0006         RMB       1                   # of pixels used in 1st byte of GP buffer line
-gr0007         RMB       1                   # of pixels used in last byte of GP buffer line
-gr0008         RMB       1                   Bit mask that is common to both screen & GP buffer
-gr0009         RMB       1                   # bytes for width of overlay window
-gr000A         RMB       1                   # bytes to offset to get to next line after
-*                             overlay width has been copied
-gr000B         RMB       1
-gr000C         RMB       2                   Cursor address for proportional spacing?
-gr000E         RMB       1
-gr000F         RMB       1                   Left-based bit mask for proportional spacing?
-gr0010         RMB       2                   Vector for text to gfx screen (either prop. or normal)
-gr0012         RMB       6
-gr0018         RMB       2                   Working Center X coord for Circle/Ellipse
-gr001A         RMB       2                   Working Center Y coord for Circle/Ellipse
-gr001C         RMB       2                   Some variable for Circle/Ellipse (initially 0)
-gr001E         RMB       2                   Working Y radius value for Circle/Ellipse
-gr0020         RMB       2                   Arc 'clip line' X01
-gr0022         RMB       2                   Arc 'clip line' Y01
-gr0024         RMB       2                   Arc 'clip line' X02
-gr0026         RMB       2                   Arc 'clip line' Y02
-gr0028         RMB       1                   full-byte background color to FFILL on mask
-gr0029         RMB       1                   pixels per byte: set up by FFILL
-gr002A         RMB       1                   Flag for FFill: 1=no error, 0=Stack overflow error
-gr002B         RMB       1                   current Y-direction to travel in FFILL
-gr002C         RMB       2
-gr002E         RMB       2                   current window table entry
-gr0030         RMB       2                   current screen table ptr
-gr0032         RMB       1                   Last block # we used for buffers
-gr0033         RMB       2                   Last offset we used for buffers
-gr0035         RMB       1                   group
-gr0036         RMB       2                   offset
-gr0038         RMB       1                   group returned (new)
-gr0039         RMB       1                   0=Text cursor inverted off, >0 is inverted on
-gr003A         RMB       1                   0=Graphics cursor XOR'd off,>0 is XOR'd on scrn
-gr003B         RMB       2                   end of vars ptr?
-gr003D         RMB       2                   Last X coordinate Graphics cursor was ON at
-gr003F         RMB       2                   Last Y coordinate Graphics cursor was ON at
-gr0041         RMB       2                   Screen address for start of current gfx cursor
-gr0043         RMB       1                   Pixel mask for start of gfx cursor
-gr0044         RMB       1                   Block # Graphics cursor is in
-gr0045         RMB       2                   Offset in block Graphics cursor is in
-gr0047         RMB       2                   'Working' X coordinate
-gr0049         RMB       2                   'Working' Y coordinate
-gr004B         RMB       2                   current X
-gr004D         RMB       2                   current Y
-gr004F         RMB       2                   X Size (in bytes)
-gr0051         RMB       2                   Y Size (in bytes)
-gr0053         RMB       2                   Horizontal radius (circle/ellipse/arc)
-gr0055         RMB       2                   Vertical radius (circle/ellipse/arc)
-gr0057         RMB       1                   group
-gr0058         RMB       1                   buffer #
-gr0059         RMB       1                   save switch for overlay
-gr005A         RMB       1                   PRN
-gr005B         RMB       2                   X coordinate of Graphics cursor
-gr005D         RMB       2                   Y coordinate of Graphics cursor
-gr005F         RMB       1                   ATD: new video mode for 24/25/28-line windows
-Gr.STYMk       RMB       1                   STY marker
-gr0061         RMB       1                   foreground RGB data
-gr0062         RMB       1                   background RGB data
-gr0063         RMB       1                   bytes/row (on current screen...not window)
-gr0064         RMB       2                   PSet vector
-gr0066         RMB       2                   pset offset
-gr0068         RMB       2                   LSet vector
-gr006A         RMB       2                   max X co-ordinate
-gr006C         RMB       2                   max Y co-ordinate
-gr006E         RMB       2                   X pixel count
-gr0070         RMB       2                   Y pixel count
-gr0072         RMB       2                   Screen address of pixel we are doing
-gr0074         RMB       1                   Pixel mask for pixel we are doing
-gr0075         RMB       2                   ??? Pixel mask for last byte of GP buffer?
-gr0077         RMB       2                   Vector for right direction FFill
-gr0079         RMB       1                   bit mask for 1st pixel in byte for right dir. FFill
-gr007A         RMB       2                   Vector for left direction FFill
-gr007C         RMB       1                   bit mask for last pixel in byte for left dir. FFill
-gr007D         RMB       1                   buffer block #
-gr007E         RMB       2                   buffer offset #
-gr0080         RMB       2                   Buffer length (in bytes)
-gr0082         RMB       3                   3 byte extended screen address
-gr0085         RMB       2                   temp
-gr0087         RMB       16                  grfdrv (sysmap 1) DAT image
-gr0097         RMB       1                   temp
-gr0098         RMB       1                   temp
-* In ARC, 97-98 is the width of the clip line in pixels (after scaling)
-gr0099         RMB       2                   temp
-* In ARC, 99-9A is the height of the clip line in pixels (after scaling)
-gr009B         RMB       1                   counter temp
-gr009C         RMB       1
-gr009D         RMB       2                   offset to buffer in block
-gr009F         RMB       1
-gr00A0         RMB       1                   # lines left to do of GP buffer onto screen
-gr00A1         RMB       2                   vector routine for (changes lots)
-* In ARC A1-A2 is the vector to the proper clipping routine
-gr00A3         RMB       2                   Vector for shifting GP buffers
-gr00A5         RMB       2                   Vector for shifting GP buffers (can dupe A1)
-gr00A7         RMB       2
-gr00A9         RMB       2                   NEW: Window tbl ptr for last window GRFDRV used
-grBigFnt       RMB       2                   Flag for 224 char font/gfx mode on (0=No) V2.00a
-gr00AD         RMB       2                   FFill:orig. start X coord|Circ/Ell saved start X
-gr00AF         RMB       2                   FFill:orig. start Y coord|Circ/Ell saved end X
-gr00B1         RMB       1                   Flag in FFill: 1=1st time through, 0=not 1st time
-gr00B2         RMB       1                   Filled (circle,ellipse) flag 0=Not filled
-*gr00B3   rmb    256-.       ??? UNUSED
-gr00B3         RMB       1                   temp veriable grfdrv
-gr00B4         RMB       1                   temp veriable grfdrv
-gr00B5         RMB       1                   regW for grfdrv
-gr00B6         RMB       1
-gr00B7         RMB       2
-gr00B9         RMB       2                   previously used in grfdrv at $B2 but not for Filled Flag
-gr00BB         RMB       2                   previously used in grfdrv at $B4
-gr00BD         RMB       2                   previously used in grfdrv at $B6
-gr00BF         RMB       256-.
-* GPLoad buffer - $1200 in system block 0
-GPBuf          RMB       72                  common move buffer for gpload/get/put
-gb0000         EQU       72                  Size of get/put buffer ($48)
-
-*****************************************************************************
-* Window table entry structure
-* These tables sit in system block 0 and there is 1 for every window init'd
-* including any overlay windows.
-MaxWind        EQU       32                  maximum allowable window tables
-WinBase        EQU       $1290               base address to start of window tables
-               ORG       -$10
-Wt.STbl        RMB       2                   Screen table pointer ($FFFF=Not used)       -$10
-Wt.BLnk        RMB       1                   overlay window parent entry # ($FF=base)    -$0E
-Wt.LStrt       RMB       2                   screen logical start address                -$0D
-Wt.CPX         RMB       1                   current X coord. start                      -$0B
-Wt.CPY         RMB       1                   current Y coord. start                      -$0A
-Wt.SZX         RMB       1                   current X size (CWArea)                     -$09
-Wt.SZY         RMB       1                   current Y size (CWArea)                     -$08
-Wt.SXFct       RMB       1                   X scaling factor                            -$07
-Wt.SYFct       RMB       1                   Y scaling factor (0=no scaling)             -$06
-Wt.Cur         RMB       2                   cursor physical address on screen           -$05
-Wt.FMsk        RMB       1                   font bit mask (based from left)             -$03
-Wt.CurX        RMB       2                   X coord of cursor                           -$02
-Wt.CurY        RMB       2                   Y Coord of cursor                            $00
-Wt.XBCnt       RMB       1                   width of window (in bytes)                   $02
-Wt.CWTmp       RMB       1                   bytes wide each text chr (1,2,4)             $03
-Wt.BRow        RMB       2                   bytes/text row (8x width in gfx)             $04
-Wt.Fore        RMB       1                   foreground palette #                         $06
-Wt.Back        RMB       1                   background palette #                         $07
-Wt.Attr        RMB       1                   default attributes (FUTTTBBB)                $08
-Wt.BSW         RMB       1                   character BSW switches                       $09
-Wt.LSet        RMB       1                   LSet type                                    $0A
-Wt.FBlk        RMB       1                   Font memory block #                          $0B
-Wt.FOff        RMB       2                   Font offset in block                         $0C
-Wt.PBlk        RMB       1                   PSet memory block #                          $0E
-Wt.POff        RMB       2                   PSet offset in block                         $0F
-Wt.OBlk        RMB       1                   Overlay memory block #                       $11
-Wt.OOff        RMB       2                   Overlay offset in block                      $12
-Wt.LVec        RMB       2                   LSet vector                                  $14
-Wt.PVec        RMB       2                   PSet vector                                  $16
-Wt.GBlk        RMB       1                   GCursor memory block #                       $18
-Wt.GOff        RMB       2                   GCursor offset in block                      $19
-Wt.MaxX        RMB       2                   Maximum X cord. (0-79,0-639)                 $1B
-Wt.MaxY        RMB       2                   Maximum Y cord. (0-24,0-191)                 $1D
-Wt.BLen        RMB       2                   bytes left in GPLoad block below             $1F
-Wt.NBlk        RMB       1                   memory block # for next GPLoad               $21
-Wt.NOff        RMB       2                   Offset in block for next GPLoad              $22
-Wt.LStDf       RMB       2                   screen logical start default                 $24
-* NOTE: The following default settings are what the window was initialized
-*       with, and thus are the MAXIMUM start/size the window can handle
-*       until it is restarted (DWEnd & DWSet)
-*       They also appear to be used in WindInt to determine the coords &
-*       sizes for control+content regions
-Wt.DfCPX       RMB       1                   default X cord. start                        $26
-Wt.DfCPY       RMB       1                   default Y cord. start                        $27
-Wt.DfSZX       RMB       1                   default X size                               $28
-Wt.DfSZY       RMB       1                   default Y size                               $29
-Wt.Res         RMB       6                   unused                                   $2A-$2F
-Wt.Siz         EQU       .+$10
-
-*****************************************************************************
-* Screen table entrys
-* These tables sit in system block 0 base=$1A80
-
-STblMax        EQU       16                  Maximum number of screen tables
-STblBse        EQU       $1A80               base address of screen tables
-               ORG       0
-St.Sty         RMB       1                   Screen type                         $00
-St.SBlk        RMB       1                   Ram block start #                   $01
-St.LStrt       RMB       2                   Screen logical start (for GIME)     $02
-St.BRow        RMB       1                   Bytes per row                       $04
-St.Brdr        RMB       1                   Border palette register #           $05
-St.Fore        RMB       1                   Foreground palette register #       $06
-St.Back        RMB       1                   Background palette register #       $07
-St.ScSiz       RMB       1                   screen size: 24..28 lines           $08
-St.Res         RMB       7                   UNUSED???                           $09
-* NOTE: SHOULD USE ONE OF THESE UNUSED BYTES TO KEEP THE # OF DEVICE WINDOW
-* TABLES THAT ARE USING THIS SCREEN TABLE. DWSET & DWEND WOULD KEEP TRACK OF
-* THESE, AND THE WINDINT TITLE BAR ROUTINE WOULD CHECK IT. IF IT IS ONLY 1,
-* IT WON'T BOTHER CHANGING THE TITLE BAR WHEN SELECTING WINDOWS
-St.Pals        RMB       16                  Palette register contents           $10
-St.Siz         EQU       .
-
-*****************************************************************************
-* Graphics buffer tables
-* They contain a 20 byte header (shown below), followed by the raw pixel
-* data.
-               ORG       0
-Grf.Bck        RMB       1                   back block link #                   $00
-Grf.Off        RMB       2                   back block header offset            $01
-Grf.Grp        RMB       1                   group #                             $03
-Grf.Buff       RMB       1                   buffer #                            $04
-Grf.BSz        RMB       2                   buffer size (not including header)  $05
-Grf.XSz        RMB       2                   X size (in pixels)                  $07
-Grf.YSz        RMB       2                   Y size (in pixels/bytes)            $09
-Grf.XBSz       RMB       1                   X size in bytes                     $0B
-Grf.LfPx       RMB       1                   # pixels used in first byte of line $0C
-Grf.RtPx       RMB       1                   # pixels used in last byte of line  $0D
-Grf.STY        RMB       1                   Screen type buffer intended for     $0E
-Grf.NBlk       RMB       1                   number blocks used                  $0F
-Grf.Pal        RMB       16                  Copy of palette registers?          $10
-Grf.Siz        EQU       .                   $20
-
-*****************************************************************************
-* GFX tables (1 for each window, 18 ($12) bytes each) pointed to by
-* $1075-$0176
-* GRFINT only uses gt0001-gt0004, the rest is exclusive to WINDINT
-               ORG       0
-Gt.WTyp        RMB       1                   WindInt window type (Framed, Scroll Bar, etc.) $00
-Gt.GXCur       RMB       2                   X coord of graphics cursor                     $01
-Gt.GYCur       RMB       2                   Y coord of graphics cursor                     $03
-Gt.DPtr        RMB       2                   Ptr to WindInt window descriptor               $05
-Gt.FClr        RMB       1                   Foreground color                               $07
-Gt.BClr        RMB       1                   Background color                               $08
-Gt.FMsk        RMB       1                   Foreground mask                                $09
-Gt.BMsk        RMB       1                   Background mask                                $0A
-Gt.GBlk        RMB       1                   Block # of graphics cursor                     $0B
-Gt.GOff        RMB       2                   Offset into block of graphics cursor           $0C
-Gt.Proc        RMB       1                   Process # of window creator                    $0E
-Gt.PBlk        RMB       1                   Process descriptor block # of creator          $0F
-Gt.Res         RMB       2                   ??? RESERVED ???                               $10
-GTabSz         EQU       .
-
-*****************************************************************************
-* This table is located in the graphics table memory and is offset from
-* graphics table pointer stored at $1075-$1076. This is used exclusively by
-* WindInt.
-* NOTE: USING UNUSED BYTES IN CC3 GLOBAL MEM, SET UP SEPARATE PTRS FOR EACH
-*  OF THE BELOW SO WE CAN SPEED UP ACCESS BY NOT HAVING TO DO A LOAD/LEAx
-*  COMBINATION EVERY TIME
-               ORG       $0240
-               RMB       WN.SIZ              copy of last accessed window descriptor
-               RMB       MN.SIZ              copy of last accessed menu descriptor
-               RMB       MI.SIZ              copy of last accessed item descriptor
-               RMB       65                  menu handling table (16 entrys of 4 bytes)
-
-*****************************************************************************
-* WindInt menu handling table entry definition
-               ORG       0
-MnuXNum        RMB       1                   menu #
-MnuXStrt       RMB       1                   X start text co-ordinate
-MnuXEnd        RMB       1                   X end text co-ordinate
-               RMB       1                   unused?
-MnuHSiz        EQU       .
-
-*****************************************************************************
-* Character binary switches
-TChr           EQU       %10000000           transparent characters
-Under          EQU       %01000000           underline characters
-Bold           EQU       %00100000           bold characters
-Prop           EQU       %00010000           proportional spacing of characters
-Scale          EQU       %00001000           automatic window scaling
-Invers         EQU       %00000100           inverse characters
-NoCurs         EQU       %00000010           no cursor display
-Protect        EQU       %00000001           device window protection
-
-*****************************************************************************
-* Screen types (high bit set=hardware text, else graphics) in GRFDRV
-Current        EQU       $ff                 Current screen
-*         equ   1          640x200x2
-*         equ   2          320x200x4
-*         equ   3          640x200x4
-*         equ   4          320x200x16
-*         equ   $85        80 column text
-*         equ   $86        40 column text
-
-*************************************
-* Window default palette color codes
-*
-               ORG       0
-White.         RMB       1
-Blue.          RMB       1
-Black.         RMB       1
-Green.         RMB       1
-Red.           RMB       1
-Yellow.        RMB       1
-Magenta.       RMB       1
-Cyan.          RMB       1
-
-               ENDC      
-
--- a/level1/atari/bootroms/makefile	Fri Feb 24 06:41:48 2012 -0600
+++ b/level1/atari/bootroms/makefile	Fri Feb 24 08:51:08 2012 -0600
@@ -29,7 +29,7 @@
 	$(PADROM) -b 12288 $@_p1
 	$(MERGE) $@_p2 $@_p1>$@
 	$(PADROM) -b 16384 $@
-#	$(RM) $@_p2 $@_p1
+	$(RM) $@_p2 $@_p1
 	
 clean:
 	$(RM) $(ALLROMS)
\ No newline at end of file
--- a/level1/atari/defs/defsfile.asm	Fri Feb 24 06:41:48 2012 -0600
+++ b/level1/atari/defs/defsfile.asm	Fri Feb 24 08:51:08 2012 -0600
@@ -1,8 +1,8 @@
 Level equ 1
 
  ifp1
- use /dd/defs/os9defs
- use /dd/defs/rbfdefs
- use /dd/defs/scfdefs
- use /dd/defs/systype
+ use /dd/defs/os9.d
+ use /dd/defs/rbf.d
+ use /dd/defs/scf.d
+ use /dd/defs/atari.d
  endc
--- a/level1/atari/defs/makefile	Fri Feb 24 06:41:48 2012 -0600
+++ b/level1/atari/defs/makefile	Fri Feb 24 08:51:08 2012 -0600
@@ -5,28 +5,28 @@
 
 DEFOPTS		= -ls -x -z -aLevel=1
 DEFSDIR		= ../../../defs
-DEFS		= Defsfile OS9Defs RBFDefs SCFDefs SysType VTIODefs
+DEFS		= defsfile os9.d rbf.d scf.d atari.d atarivtio.d
 ALLOBJS		= $(DEFS)
 
 all:	$(ALLOBJS)
 
-Defsfile: defsfile.asm
+defsfile: defsfile.asm
 	$(AS) $(DEFOPTS) -p $< > $@
 
-OS9Defs: $(DEFSDIR)/os9defs
-	$(AS) $(DEFOPTS) -aOS9DEFS=0 $< > $@
+os9.d: $(DEFSDIR)/os9.d
+	$(AS) $(DEFOPTS) -aOS9.D=0 $< > $@
 
-RBFDefs: $(DEFSDIR)/rbfdefs
-	$(AS) $(DEFOPTS) -aRBFDEFS=0 $< > $@
+rbf.d: $(DEFSDIR)/rbf.d
+	$(AS) $(DEFOPTS) -aRBF.D=0 $< > $@
 
-SCFDefs: $(DEFSDIR)/scfdefs
-	$(AS) $(DEFOPTS) -aSCFDEFS=0 $< > $@
+scf.d: $(DEFSDIR)/scf.d
+	$(AS) $(DEFOPTS) -aSCF.D=0 $< > $@
 
-SysType: $(DEFSDIR)/systype
-	$(AS) $(DEFOPTS) -aSYSTYPE=0 $< > $@
+atari.d: $(DEFSDIR)/atari.d
+	$(AS) $(DEFOPTS) -aATARI.D=0 $< > $@
 
-VTIODefs: $(DEFSDIR)/vtiodefs
-	$(AS) $(DEFOPTS) -aVTIODEFS=0 $< > $@
+atarivtio.d: $(DEFSDIR)/atarivtio.d
+	$(AS) $(DEFOPTS) -aATARIVTIO.D=0 $< > $@
 
 clean:
 	$(RM) $(DEFS)
--- a/level1/atari/defsfile	Fri Feb 24 06:41:48 2012 -0600
+++ b/level1/atari/defsfile	Fri Feb 24 08:51:08 2012 -0600
@@ -1,6 +1,6 @@
 Level    equ   1
 
-         use   os9defs
-         use   scfdefs
-         use   rbfdefs
-         use   systype
+         use   os9.d
+         use   scf.d
+         use   rbf.d
+         use   atari.d
--- a/level1/atari/makefile	Fri Feb 24 06:41:48 2012 -0600
+++ b/level1/atari/makefile	Fri Feb 24 08:51:08 2012 -0600
@@ -24,7 +24,7 @@
 KERNELFILE	= bootfiles/kernel_1773
 KERNELFILE_DW3_COCO1	= bootfiles/kernel_dw3_coco1
 KERNELFILE_DW3_COCO2	= bootfiles/kernel_dw3_coco2
-DIRS		= cmds modules defs sys bootfiles
+DIRS		= cmds modules defs sys bootroms
 
 
 CMDS		= $(shell $(CD) cmds; make --no-print-directory showobjs)
--- a/level1/atari/modules/clock.asm	Fri Feb 24 06:41:48 2012 -0600
+++ b/level1/atari/modules/clock.asm	Fri Feb 24 08:51:08 2012 -0600
@@ -6,7 +6,7 @@
 * Edt/Rev  YYYY/MM/DD  Modified by
 * Comment
 * ------------------------------------------------------------------
-*          2012/02/22  Boisy G. Pitre
+*   1      2012/02/22  Boisy G. Pitre
 * Created
  
          nam   Clock     
--- a/level1/atari/modules/makefile	Fri Feb 24 06:41:48 2012 -0600
+++ b/level1/atari/modules/makefile	Fri Feb 24 08:51:08 2012 -0600
@@ -5,18 +5,7 @@
 
 AFLAGS		+= -I$(LEVEL1)/modules
 
-CLOCKELIM       = -aRTCElim=1
-CLOCKDISTO2     = -aRTCDsto2=1
-CLOCKDISTO4     = -aRTCDsto4=1
-CLOCKBNB        = -aRTCBB=1
-CLOCKSMART      = -aRTCSmart=1 -aMPIFlag=1
-CLOCKHARRIS     = -aRTCHarrs=1
-CLOCKCLOUD9     = -aRTCCloud9=1
 CLOCKSOFT       = -aRTCSoft=1
-CLOCKMESSEMU    = -aRTCMessEmu=1
-CLOCKJVEMU      = -aRTCJVEmu=1
-TC3FLAGS        = $(AFLAGS) -aTC3=1 $(FLAGS)
-IDEFLAGS        = $(AFLAGS) -aIDE=1 $(FLAGS)
 
 DEPENDS		= ./makefile
 TPB		= $(3RDPARTY)/booters
@@ -29,7 +18,7 @@
 RBF		= rbf.mn
 
 SCF		= scf.mn \
-		sc6551.dr vrn.dr scbbp.dr scbbt.dr scdwp.dr vtio.dr \
+		vrn.dr vtio.dr \
 		nil.dd \
 		term.dt
 
@@ -37,7 +26,7 @@
 		piper.dr \
 		pipe.dd
 
-ALLOBJS		= $(BOOTTRACK) $(KERNEL) $(SYSMODS) $(CLOCKS) $(RBF) $(SCF) $(PIPE)
+ALLOBJS		= $(KERNEL) $(SYSMODS) $(CLOCKS) $(RBF) $(SCF) $(PIPE)
 
 all:	$(ALLOBJS)
 
@@ -64,9 +53,6 @@
 showobjs:
 	@$(ECHO) $(ALLOBJS)
 
-showboottrack:
-	@$(ECHO) $(BOOTTRACK)
-
 showkernel:
 	@$(ECHO) $(KERNEL)
 
--- a/level1/atari/modules/term.asm	Fri Feb 24 06:41:48 2012 -0600
+++ b/level1/atari/modules/term.asm	Fri Feb 24 08:51:08 2012 -0600
@@ -50,7 +50,7 @@
          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            init value for dev ctl reg
          fcb   $00            baud rate
          fdb   name           copy of descriptor name address
          fcb   $00            acia xon char
--- a/level1/atari/modules/vtio.asm	Fri Feb 24 06:41:48 2012 -0600
+++ b/level1/atari/modules/vtio.asm	Fri Feb 24 08:51:08 2012 -0600
@@ -15,7 +15,7 @@
          ifp1            
          use   defsfile  
          use   scfdefs   
-         use   atari.d
+         use   atarivtio.d
          endc            
                          
 tylg     set   Drivr+Objct
--- a/level1/cmds/grfdrv.asm	Fri Feb 24 06:41:48 2012 -0600
+++ b/level1/cmds/grfdrv.asm	Fri Feb 24 08:51:08 2012 -0600
@@ -16,7 +16,7 @@
 
          ifp1
          use   defsfile
-         use   vtiodefs
+         use   cocovtio.d
          endc
 
 tylg     set   Systm+Objct   
--- a/level1/coco/defs/defsfile.asm	Fri Feb 24 06:41:48 2012 -0600
+++ b/level1/coco/defs/defsfile.asm	Fri Feb 24 08:51:08 2012 -0600
@@ -1,8 +1,8 @@
 Level equ 1
 
  ifp1
- use /dd/defs/os9defs
- use /dd/defs/rbfdefs
- use /dd/defs/scfdefs
- use /dd/defs/systype
+ 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	Fri Feb 24 06:41:48 2012 -0600
+++ b/level1/coco/defs/makefile	Fri Feb 24 08:51:08 2012 -0600
@@ -5,28 +5,28 @@
 
 DEFOPTS		= -ls -x -z -aLevel=1
 DEFSDIR		= ../../../defs
-DEFS		= Defsfile OS9Defs RBFDefs SCFDefs SysType VTIODefs
+DEFS		= defsfile os9.d rbf.d scf.d coco.d cocovtio.d
 ALLOBJS		= $(DEFS)
 
 all:	$(ALLOBJS)
 
-Defsfile: defsfile.asm
+defsfile: defsfile.asm
 	$(AS) $(DEFOPTS) -p $< > $@
 
-OS9Defs: $(DEFSDIR)/os9defs
-	$(AS) $(DEFOPTS) -aOS9DEFS=0 $< > $@
+os9.d: $(DEFSDIR)/os9.d
+	$(AS) $(DEFOPTS) -aOS9.D=0 $< > $@
 
-RBFDefs: $(DEFSDIR)/rbfdefs
-	$(AS) $(DEFOPTS) -aRBFDEFS=0 $< > $@
+rbf.d: $(DEFSDIR)/rbf.d
+	$(AS) $(DEFOPTS) -aRBF.D=0 $< > $@
 
-SCFDefs: $(DEFSDIR)/scfdefs
-	$(AS) $(DEFOPTS) -aSCFDEFS=0 $< > $@
+scf.d: $(DEFSDIR)/scf.d
+	$(AS) $(DEFOPTS) -aSCF.D=0 $< > $@
 
-SysType: $(DEFSDIR)/systype
-	$(AS) $(DEFOPTS) -aSYSTYPE=0 $< > $@
+coco.d: $(DEFSDIR)/coco.d
+	$(AS) $(DEFOPTS) -aCOCO.D=0 $< > $@
 
-VTIODefs: $(DEFSDIR)/vtiodefs
-	$(AS) $(DEFOPTS) -aVTIODEFS=0 $< > $@
+cocovtio.d: $(DEFSDIR)/cocovtio.d
+	$(AS) $(DEFOPTS) -aCOCOVTIO.D=0 $< > $@
 
 clean:
 	$(RM) $(DEFS)
--- a/level1/coco/defsfile	Fri Feb 24 06:41:48 2012 -0600
+++ b/level1/coco/defsfile	Fri Feb 24 08:51:08 2012 -0600
@@ -1,6 +1,6 @@
 Level    equ   1
 
-         use   os9defs
-         use   scfdefs
-         use   rbfdefs
-         use   systype
+         use   os9.d
+         use   scf.d
+         use   rbf.d
+         use   coco.d
--- a/level1/d64/defs/defsfile.asm	Fri Feb 24 06:41:48 2012 -0600
+++ b/level1/d64/defs/defsfile.asm	Fri Feb 24 08:51:08 2012 -0600
@@ -1,8 +1,8 @@
 Level equ 1
 
  ifp1
- use /dd/defs/os9defs
- use /dd/defs/rbfdefs
- use /dd/defs/scfdefs
- use /dd/defs/systype
+ use /dd/defs/os9.d
+ use /dd/defs/rbf.d
+ use /dd/defs/scf.d
+ use /dd/defs/dragon.d
  endc
--- a/level1/d64/defs/makefile	Fri Feb 24 06:41:48 2012 -0600
+++ b/level1/d64/defs/makefile	Fri Feb 24 08:51:08 2012 -0600
@@ -5,28 +5,28 @@
 
 DEFOPTS		= -ls -x -z -aLevel=1
 DEFSDIR		= ../../../defs
-DEFS		= Defsfile OS9Defs RBFDefs SCFDefs SysType VTIODefs
+DEFS		= defsfile os9.d rbf.d scf.d dragon.d dragonvtio.d
 ALLOBJS		= $(DEFS)
 
 all:	$(ALLOBJS)
 
-Defsfile: defsfile.asm
+defsfile: defsfile.asm
 	$(AS) $(DEFOPTS) -p $< > $@
 
-OS9Defs: $(DEFSDIR)/os9defs
-	$(AS) $(DEFOPTS) -aOS9DEFS=0 $< > $@
+os9.d: $(DEFSDIR)/os9.d
+	$(AS) $(DEFOPTS) -aOS9.D=0 $< > $@
 
-RBFDefs: $(DEFSDIR)/rbfdefs
-	$(AS) $(DEFOPTS) -aRBFDEFS=0 $< > $@
+rbf.d: $(DEFSDIR)/rbf.d
+	$(AS) $(DEFOPTS) -aRBF.D=0 $< > $@
 
-SCFDefs: $(DEFSDIR)/scfdefs
-	$(AS) $(DEFOPTS) -aSCFDEFS=0 $< > $@
+scf.d: $(DEFSDIR)/scf.d
+	$(AS) $(DEFOPTS) -aSCF.D=0 $< > $@
 
-SysType: $(DEFSDIR)/systype
-	$(AS) $(DEFOPTS) -aSYSTYPE=0 $< > $@
+dragon.d: $(DEFSDIR)/dragon.d
+	$(AS) $(DEFOPTS) -aDRAGON.D=0 $< > $@
 
-VTIODefs: $(DEFSDIR)/vtiodefs
-	$(AS) $(DEFOPTS) -aVTIODEFS=0 $< > $@
+dragonvtio.d: $(DEFSDIR)/cocovtio.d
+	$(AS) $(DEFOPTS) -aDRAGONVTIO.D=0 $< > $@
 
 clean:
 	$(RM) $(DEFS)
--- a/level1/d64/defsfile	Fri Feb 24 06:41:48 2012 -0600
+++ b/level1/d64/defsfile	Fri Feb 24 08:51:08 2012 -0600
@@ -1,7 +1,6 @@
 Level    equ   1
 
-         use   os9defs
-         use   scfdefs
-         use   rbfdefs
-         use   systype
-         use   dgndefs
\ No newline at end of file
+         use   os9.d
+         use   scf.d
+         use   rbf.d
+         use   dragon.d
--- a/level1/dalpha/defs/defsfile.asm	Fri Feb 24 06:41:48 2012 -0600
+++ b/level1/dalpha/defs/defsfile.asm	Fri Feb 24 08:51:08 2012 -0600
@@ -1,8 +1,8 @@
 Level equ 1
 
  ifp1
- use /dd/defs/os9defs
- use /dd/defs/rbfdefs
- use /dd/defs/scfdefs
- use /dd/defs/systype
+ use /dd/defs/os9.d
+ use /dd/defs/rbf.d
+ use /dd/defs/scf.d
+ use /dd/defs/dragon.d
  endc
--- a/level1/dalpha/defs/makefile	Fri Feb 24 06:41:48 2012 -0600
+++ b/level1/dalpha/defs/makefile	Fri Feb 24 08:51:08 2012 -0600
@@ -1,32 +1,32 @@
-PORT = dalpha
+PORT = d64
 include $(NITROS9DIR)/rules.mak
 
 DEPENDS		= ./makefile
 
 DEFOPTS		= -ls -x -z -aLevel=1
 DEFSDIR		= ../../../defs
-DEFS		= Defsfile OS9Defs RBFDefs SCFDefs SysType VTIODefs
+DEFS		= defsfile os9.d rbf.d scf.d dragon.d dragonvtio.d
 ALLOBJS		= $(DEFS)
 
 all:	$(ALLOBJS)
 
-Defsfile: defsfile.asm
+defsfile: defsfile.asm
 	$(AS) $(DEFOPTS) -p $< > $@
 
-OS9Defs: $(DEFSDIR)/os9defs
-	$(AS) $(DEFOPTS) -aOS9DEFS=0 $< > $@
+os9.d: $(DEFSDIR)/os9.d
+	$(AS) $(DEFOPTS) -aOS9.D=0 $< > $@
 
-RBFDefs: $(DEFSDIR)/rbfdefs
-	$(AS) $(DEFOPTS) -aRBFDEFS=0 $< > $@
+rbf.d: $(DEFSDIR)/rbf.d
+	$(AS) $(DEFOPTS) -aRBF.D=0 $< > $@
 
-SCFDefs: $(DEFSDIR)/scfdefs
-	$(AS) $(DEFOPTS) -aSCFDEFS=0 $< > $@
+scf.d: $(DEFSDIR)/scf.d
+	$(AS) $(DEFOPTS) -aSCF.D=0 $< > $@
 
-SysType: $(DEFSDIR)/systype
-	$(AS) $(DEFOPTS) -aSYSTYPE=0 $< > $@
+dragon.d: $(DEFSDIR)/dragon.d
+	$(AS) $(DEFOPTS) -aDRAGON.D=0 $< > $@
 
-VTIODefs: $(DEFSDIR)/vtiodefs
-	$(AS) $(DEFOPTS) -aVTIODEFS=0 $< > $@
+dragonvtio.d: $(DEFSDIR)/cocovtio.d
+	$(AS) $(DEFOPTS) -aDRAGONVTIO.D=0 $< > $@
 
 clean:
 	$(RM) $(DEFS)
--- a/level1/dalpha/defsfile	Fri Feb 24 06:41:48 2012 -0600
+++ b/level1/dalpha/defsfile	Fri Feb 24 08:51:08 2012 -0600
@@ -1,7 +1,6 @@
 Level    equ   1
 
-         use   os9defs
-         use   scfdefs
-         use   rbfdefs
-         use   systype
-         use   dgndefs
\ No newline at end of file
+         use   os9.d
+         use   scf.d
+         use   rbf.d
+         use   dragon.d
--- a/level1/makefile	Fri Feb 24 06:41:48 2012 -0600
+++ b/level1/makefile	Fri Feb 24 08:51:08 2012 -0600
@@ -1,6 +1,6 @@
 include $(NITROS9DIR)/rules.mak
 
-dirs	= coco tano d64 dalpha
+dirs	= coco tano d64 dalpha atari
 
 # Make all components
 all:
--- a/level1/modules/boot_dw3.asm	Fri Feb 24 06:41:48 2012 -0600
+++ b/level1/modules/boot_dw3.asm	Fri Feb 24 08:51:08 2012 -0600
@@ -14,7 +14,7 @@
 
                IFP1      
                USE       defsfile
-               USE       dwdefs.d
+               USE       drivewire.d
                ENDC      
 
 tylg           SET       Systm+Objct
--- a/level1/modules/clock.asm	Fri Feb 24 06:41:48 2012 -0600
+++ b/level1/modules/clock.asm	Fri Feb 24 08:51:08 2012 -0600
@@ -47,7 +47,7 @@
          ifp1            
          use   defsfile  
          ifgt  Level-1   
-         use   vtiodefs_cc3
+         use   cocovtio.d
          endc            
          endc            
                          
--- a/level1/modules/cohr.asm	Fri Feb 24 06:41:48 2012 -0600
+++ b/level1/modules/cohr.asm	Fri Feb 24 08:51:08 2012 -0600
@@ -38,7 +38,7 @@
                          
          ifp1            
          use   defsfile
-         use   vtiodefs  
+         use   cocovtio.d  
          endc            
                          
 tylg     set   Systm+Objct
--- a/level1/modules/covdg.asm	Fri Feb 24 06:41:48 2012 -0600
+++ b/level1/modules/covdg.asm	Fri Feb 24 08:51:08 2012 -0600
@@ -19,7 +19,7 @@
 
          ifp1
          use   defsfile
-         use   vtiodefs
+         use   cocovtio.d
          endc
 
 tylg     set   Systm+Objct   
--- a/level1/modules/dw3.asm	Fri Feb 24 06:41:48 2012 -0600
+++ b/level1/modules/dw3.asm	Fri Feb 24 08:51:08 2012 -0600
@@ -20,7 +20,7 @@
 
                ifp1      
                use       defsfile
-               use       dwdefs.d
+               use       drivewire.d
                endc      
 
 tylg           set       Sbrtn+Objct
--- a/level1/modules/init.asm	Fri Feb 24 06:41:48 2012 -0600
+++ b/level1/modules/init.asm	Fri Feb 24 08:51:08 2012 -0600
@@ -34,6 +34,9 @@
 
          ifp1  
          use   defsfile
+         IFGT  Level-1
+         use	cocovtio.d
+         ENDC
          endc  
 
 tylg     set   Systm+$00
--- a/level1/modules/kernel/krn.asm	Fri Feb 24 06:41:48 2012 -0600
+++ b/level1/modules/kernel/krn.asm	Fri Feb 24 08:51:08 2012 -0600
@@ -70,7 +70,6 @@
 
          ifp1
          use   defsfile
-         use   scfdefs
          IFNE	atari
          use   atari.d
          ENDC
--- a/level1/modules/rbdw3.asm	Fri Feb 24 06:41:48 2012 -0600
+++ b/level1/modules/rbdw3.asm	Fri Feb 24 08:51:08 2012 -0600
@@ -37,7 +37,7 @@
 
          ifp1
          use   defsfile
-         use   dwdefs.d
+         use   drivewire.d
          endc
 
 NumDrvs  set   4
--- a/level1/modules/rfm.asm	Fri Feb 24 06:41:48 2012 -0600
+++ b/level1/modules/rfm.asm	Fri Feb 24 08:51:08 2012 -0600
@@ -15,7 +15,7 @@
                ifp1      
                use       defsfile
                use       rfmdefs
-               use       dwdefs.d
+               use       drivewire.d
                endc      
 
 tylg           set       FlMgr+Objct
--- a/level1/modules/scdwn.asm	Fri Feb 24 06:41:48 2012 -0600
+++ b/level1/modules/scdwn.asm	Fri Feb 24 08:51:08 2012 -0600
@@ -54,7 +54,7 @@
 
                ifp1      
                use       defsfile
-               use       dwdefs.d
+               use       drivewire.d
                endc      
 
 
--- a/level1/modules/scdwp.asm	Fri Feb 24 06:41:48 2012 -0600
+++ b/level1/modules/scdwp.asm	Fri Feb 24 08:51:08 2012 -0600
@@ -14,7 +14,7 @@
 
          ifp1
          use   defsfile
-         use   dwdefs.d
+         use   drivewire.d
          endc
 
 tylg     set   Drivr+Objct   
--- a/level1/modules/scf.asm	Fri Feb 24 06:41:48 2012 -0600
+++ b/level1/modules/scf.asm	Fri Feb 24 08:51:08 2012 -0600
@@ -200,6 +200,9 @@
          IFP1
          use   defsfile
          use   scfdefs
+         IFGT  Level-1
+         use   cocovtio.d
+         ENDC
          ENDC
 
 tylg     set   FlMgr+Objct
--- a/level1/modules/term32.asm	Fri Feb 24 06:41:48 2012 -0600
+++ b/level1/modules/term32.asm	Fri Feb 24 08:51:08 2012 -0600
@@ -17,7 +17,7 @@
          ifp1
          use   defsfile
          use   scfdefs
-	 use   vtiodefs
+         use   cocovtio.d
          endc
 
 tylg     set   Devic+Objct   
--- a/level1/modules/term51.asm	Fri Feb 24 06:41:48 2012 -0600
+++ b/level1/modules/term51.asm	Fri Feb 24 08:51:08 2012 -0600
@@ -23,7 +23,7 @@
          ifp1
          use   defsfile
          use   scfdefs
-	 use   vtiodefs	
+         use   cocovtio.d
          endc
 
 tylg     set   Devic+Objct   
--- a/level1/modules/term80.asm	Fri Feb 24 06:41:48 2012 -0600
+++ b/level1/modules/term80.asm	Fri Feb 24 08:51:08 2012 -0600
@@ -17,7 +17,7 @@
          ifp1
          use   defsfile
          use   scfdefs
-	 use   vtiodefs
+         use   cocovtio.d
          endc
 
 tylg     set   Devic+Objct   
--- a/level1/modules/vtio.asm	Fri Feb 24 06:41:48 2012 -0600
+++ b/level1/modules/vtio.asm	Fri Feb 24 08:51:08 2012 -0600
@@ -37,7 +37,7 @@
          ifp1            
          use   defsfile  
          use   scfdefs   
-         use   vtiodefs  
+         use   cocovtio.d
          endc            
                          
 tylg     set   Drivr+Objct
--- a/level1/modules/wbug.asm	Fri Feb 24 06:41:48 2012 -0600
+++ b/level1/modules/wbug.asm	Fri Feb 24 08:51:08 2012 -0600
@@ -27,7 +27,7 @@
 
                IFP1      
                USE       defsfile
-			   USE       dwdefs.d
+			   USE       drivewire.d
                ENDC      
 
                IFEQ      LEVEL-1
--- a/level1/tano/defs/defsfile.asm	Fri Feb 24 06:41:48 2012 -0600
+++ b/level1/tano/defs/defsfile.asm	Fri Feb 24 08:51:08 2012 -0600
@@ -1,8 +1,8 @@
 Level equ 1
 
  ifp1
- use /dd/defs/os9defs
- use /dd/defs/rbfdefs
- use /dd/defs/scfdefs
- use /dd/defs/systype
+ use /dd/defs/os9.d
+ use /dd/defs/rbf.d
+ use /dd/defs/scf.d
+ use /dd/defs/dragon.d
  endc
--- a/level1/tano/defs/makefile	Fri Feb 24 06:41:48 2012 -0600
+++ b/level1/tano/defs/makefile	Fri Feb 24 08:51:08 2012 -0600
@@ -1,32 +1,32 @@
-PORT = tano
+PORT = d64
 include $(NITROS9DIR)/rules.mak
 
 DEPENDS		= ./makefile
 
 DEFOPTS		= -ls -x -z -aLevel=1
 DEFSDIR		= ../../../defs
-DEFS		= Defsfile OS9Defs RBFDefs SCFDefs SysType VTIODefs
+DEFS		= defsfile os9.d rbf.d scf.d dragon.d dragonvtio.d
 ALLOBJS		= $(DEFS)
 
 all:	$(ALLOBJS)
 
-Defsfile: defsfile.asm
-	$(AS) $(AFLAGS) $(DEFOPTS) -p $< > $@
+defsfile: defsfile.asm
+	$(AS) $(DEFOPTS) -p $< > $@
 
-OS9Defs: $(DEFSDIR)/os9defs
-	$(AS) $(AFLAGS) $(DEFOPTS) -aOS9DEFS=0 $< > $@
+os9.d: $(DEFSDIR)/os9.d
+	$(AS) $(DEFOPTS) -aOS9.D=0 $< > $@
 
-RBFDefs: $(DEFSDIR)/rbfdefs
-	$(AS) $(AFLAGS) $(DEFOPTS) -aRBFDEFS=0 $< > $@
+rbf.d: $(DEFSDIR)/rbf.d
+	$(AS) $(DEFOPTS) -aRBF.D=0 $< > $@
 
-SCFDefs: $(DEFSDIR)/scfdefs
-	$(AS) $(AFLAGS) $(DEFOPTS) -aSCFDEFS=0 $< > $@
+scf.d: $(DEFSDIR)/scf.d
+	$(AS) $(DEFOPTS) -aSCF.D=0 $< > $@
 
-SysType: $(DEFSDIR)/systype
-	$(AS) $(AFLAGS) $(DEFOPTS) -aSYSTYPE=0 $< > $@
+dragon.d: $(DEFSDIR)/dragon.d
+	$(AS) $(DEFOPTS) -aDRAGON.D=0 $< > $@
 
-VTIODefs: $(DEFSDIR)/vtiodefs
-	$(AS) $(AFLAGS) $(DEFOPTS) -aVTIODEFS=0 $< > $@
+dragonvtio.d: $(DEFSDIR)/cocovtio.d
+	$(AS) $(DEFOPTS) -aDRAGONVTIO.D=0 $< > $@
 
 clean:
 	$(RM) $(DEFS)
--- a/level1/tano/defsfile	Fri Feb 24 06:41:48 2012 -0600
+++ b/level1/tano/defsfile	Fri Feb 24 08:51:08 2012 -0600
@@ -1,7 +1,6 @@
 Level    equ   1
 
-         use   os9defs
-         use   scfdefs
-         use   rbfdefs
-         use   systype
-         use   dgndefs
+         use   os9.d
+         use   scf.d
+         use   rbf.d
+         use   dragon.d
--- a/level1/tano/modules/makefile	Fri Feb 24 06:41:48 2012 -0600
+++ b/level1/tano/modules/makefile	Fri Feb 24 08:51:08 2012 -0600
@@ -19,8 +19,8 @@
 DEPENDS		= ./makefile
 TPB		= $(3RDPARTY)/booters
 
-BOOTERS		= boot_1773_6ms boot_1773_30ms \
-		boot_burke boot_rampak boot_wd1002
+BOOTERS		= boot_1773_6ms boot_1773_30ms
+#		boot_rampak boot_wd1002 boot_burke
 BOOTTRACK	= rel $(BOOTERS)
 KERNEL		= krn krnp2
 SYSMODS		= ioman init sysgo_dd sysgo_h0
--- a/level2/cmds/grfdrv.asm	Fri Feb 24 06:41:48 2012 -0600
+++ b/level2/cmds/grfdrv.asm	Fri Feb 24 08:51:08 2012 -0600
@@ -310,6 +310,7 @@
 
          ifp1
          use   defsfile
+         use   cocovtio.d
          endc
 
 GrfStrt  equ   $4000          Position of GRFDRV in it's own task
--- a/level2/coco3/defs/Defsfile	Fri Feb 24 06:41:48 2012 -0600
+++ b/level2/coco3/defs/Defsfile	Fri Feb 24 08:51:08 2012 -0600
@@ -1,8 +1,8 @@
 Level    equ   2         
 
          ifp1            
-         use   /dd/defs/os9defs
-         use   /dd/defs/rbfdefs
-         use   /dd/defs/scfdefs
-         use   /dd/defs/systype
+         use   /dd/defs/os9.d
+         use   /dd/defs/rbf.d
+         use   /dd/defs/scf.d
+         use   /dd/defs/coco3.d
          endc            
--- a/level2/coco3/defs/makefile	Fri Feb 24 06:41:48 2012 -0600
+++ b/level2/coco3/defs/makefile	Fri Feb 24 08:51:08 2012 -0600
@@ -5,25 +5,25 @@
 
 DEFOPTS		= -ls -x -z -aLevel=2
 PERMDEFS	= Defsfile
-DEFS		= OS9Defs RBFDefs SCFDefs SysType VTIODefs
+DEFS		= os9.d rbf.d scf.d coco.d coco3vtio.d
 ALLOBJS		= $(DEFS) $(PERMDEFS)
 
 all:	$(ALLOBJS)
 
-OS9Defs: $(DEFSDIR)/os9defs
-	$(AS) $(AFLAGS) $(DEFOPTS) -aOS9DEFS=0 $< > $@
+os9.d: $(DEFSDIR)/os9.d
+	$(AS) $(AFLAGS) $(DEFOPTS) -aOS9.D=0 $< > $@
 
-RBFDefs: $(DEFSDIR)/rbfdefs
-	$(AS) $(AFLAGS) $(DEFOPTS) -aRBFDEFS=0 $< > $@
+rbf.d: $(DEFSDIR)/rbf.d
+	$(AS) $(AFLAGS) $(DEFOPTS) -aRBF.D=0 $< > $@
 
-SCFDefs: $(DEFSDIR)/scfdefs
-	$(AS) $(AFLAGS) $(DEFOPTS) -aSCFDEFS=0 $< > $@
+scf.d: $(DEFSDIR)/scf.d
+	$(AS) $(AFLAGS) $(DEFOPTS) -aSCF.D=0 $< > $@
 
-SysType: $(DEFSDIR)/systype
-	$(AS) $(AFLAGS) $(DEFOPTS) -aSYSTYPE=0 $< > $@
+coco.d: $(DEFSDIR)/coco.d
+	$(AS) $(AFLAGS) $(DEFOPTS) -aCOCO.D=0 $< > $@
 
-VTIODefs: $(DEFSDIR)/vtiodefs_cc3
-	$(AS) $(AFLAGS) $(DEFOPTS) -aVTIODEFS=0 $< > $@
+coco3vtio.d: $(DEFSDIR)/cocovtio.d
+	$(AS) $(AFLAGS) $(DEFOPTS) -aCOCOVTIO.D=0 $< > $@
 
 clean:
 	$(RM) $(DEFS)
--- a/level2/coco3/defsfile	Fri Feb 24 06:41:48 2012 -0600
+++ b/level2/coco3/defsfile	Fri Feb 24 08:51:08 2012 -0600
@@ -1,7 +1,6 @@
 Level    equ   2
 
-         use   os9defs
-         use   scfdefs
-         use   rbfdefs
-         use   systype
-         use   vtiodefs_cc3
+         use   os9.d
+         use   scf.d
+         use   rbf.d
+         use   coco.d
--- a/level2/coco3_6309/defs/Defsfile	Fri Feb 24 06:41:48 2012 -0600
+++ b/level2/coco3_6309/defs/Defsfile	Fri Feb 24 08:51:08 2012 -0600
@@ -1,8 +1,8 @@
 Level    equ   2         
 
          ifp1            
-         use   /dd/defs/os9defs
-         use   /dd/defs/rbfdefs
-         use   /dd/defs/scfdefs
-         use   /dd/defs/systype
+         use   /dd/defs/os9.d
+         use   /dd/defs/rbf.d
+         use   /dd/defs/scf.d
+         use   /dd/defs/coco3.d
          endc            
--- a/level2/coco3_6309/defs/makefile	Fri Feb 24 06:41:48 2012 -0600
+++ b/level2/coco3_6309/defs/makefile	Fri Feb 24 08:51:08 2012 -0600
@@ -3,27 +3,27 @@
 
 DEPENDS		= ./makefile
 
-DEFOPTS		= -ls -x -z -aLevel=2 -aH6309=1
+DEFOPTS		= -ls -x -z -aLevel=2
 PERMDEFS	= Defsfile
-DEFS		= OS9Defs RBFDefs SCFDefs SysType VTIODefs
+DEFS		= os9.d rbf.d scf.d coco.d coco3vtio.d
 ALLOBJS		= $(DEFS) $(PERMDEFS)
 
 all:	$(ALLOBJS)
 
-OS9Defs: $(DEFSDIR)/os9defs
-	$(AS) $(AFLAGS) $(DEFOPTS) -aOS9DEFS=0 $< > $@
+os9.d: $(DEFSDIR)/os9.d
+	$(AS) $(AFLAGS) $(DEFOPTS) -aOS9.D=0 $< > $@
 
-RBFDefs: $(DEFSDIR)/rbfdefs
-	$(AS) $(AFLAGS) $(DEFOPTS) -aRBFDEFS=0 $< > $@
+rbf.d: $(DEFSDIR)/rbf.d
+	$(AS) $(AFLAGS) $(DEFOPTS) -aRBF.D=0 $< > $@
 
-SCFDefs: $(DEFSDIR)/scfdefs
-	$(AS) $(AFLAGS) $(DEFOPTS) -aSCFDEFS=0 $< > $@
+scf.d: $(DEFSDIR)/scf.d
+	$(AS) $(AFLAGS) $(DEFOPTS) -aSCF.D=0 $< > $@
 
-SysType: $(DEFSDIR)/systype
-	$(AS) $(AFLAGS) $(DEFOPTS) -aSYSTYPE=0 $< > $@
+coco.d: $(DEFSDIR)/coco.d
+	$(AS) $(AFLAGS) $(DEFOPTS) -aCOCO.D=0 $< > $@
 
-VTIODefs: $(DEFSDIR)/vtiodefs_cc3
-	$(AS) $(AFLAGS) $(DEFOPTS) -aVTIODEFS=0 $< > $@
+coco3vtio.d: $(DEFSDIR)/cocovtio.d
+	$(AS) $(AFLAGS) $(DEFOPTS) -aCOCOVTIO.D=0 $< > $@
 
 clean:
 	$(RM) $(DEFS)
--- a/level2/coco3_6309/defsfile	Fri Feb 24 06:41:48 2012 -0600
+++ b/level2/coco3_6309/defsfile	Fri Feb 24 08:51:08 2012 -0600
@@ -1,7 +1,6 @@
 Level    equ   2
 
-         use   os9defs
-         use   scfdefs
-         use   rbfdefs
-         use   systype
-         use   vtiodefs_cc3
+         use   os9.d
+         use   scf.d
+         use   rbf.d
+         use   coco.d
--- a/level2/defs/makefile	Fri Feb 24 06:41:48 2012 -0600
+++ b/level2/defs/makefile	Fri Feb 24 08:51:08 2012 -0600
@@ -1,29 +1,29 @@
 PORT = coco3
-include ../../rules.mak
+include $(NITROS9DIR)/rules.mak
 
 DEPENDS		= ./makefile
 
 DEFOPTS		= -ls -x -z -aLevel=2
 PERMDEFS	= Defsfile
-DEFS		= OS9Defs RBFDefs SCFDefs SysType VTIODefs
+DEFS		= os9.d rbf.d scf.d coco.d coco3vtio.d
 ALLOBJS		= $(DEFS) $(PERMDEFS)
 
 all:	$(ALLOBJS)
 
-OS9Defs: $(DEFSDIR)/os9defs
-	$(AS) $(DEFOPTS) -aOS9DEFS=0 $< > $@
+os9.d: $(DEFSDIR)/os9.d
+	$(AS) $(AFLAGS) $(DEFOPTS) -aOS9.D=0 $< > $@
 
-RBFDefs: $(DEFSDIR)/rbfdefs
-	$(AS) $(DEFOPTS) -aRBFDEFS=0 $< > $@
+rbf.d: $(DEFSDIR)/rbf.d
+	$(AS) $(AFLAGS) $(DEFOPTS) -aRBF.D=0 $< > $@
 
-SCFDefs: $(DEFSDIR)/scfdefs
-	$(AS) $(DEFOPTS) -aSCFDEFS=0 $< > $@
+scf.d: $(DEFSDIR)/scf.d
+	$(AS) $(AFLAGS) $(DEFOPTS) -aSCF.D=0 $< > $@
 
-SysType: $(DEFSDIR)/systype
-	$(AS) $(DEFOPTS) -aSYSTYPE=0 $< > $@
+coco.d: $(DEFSDIR)/coco.d
+	$(AS) $(AFLAGS) $(DEFOPTS) -aCOCO.D=0 $< > $@
 
-VTIODefs: $(DEFSDIR)/vtiodefs_cc3
-	$(AS) $(DEFOPTS) -aVTIODEFS=0 $< > $@
+coco3vtio.d: $(DEFSDIR)/cocovtio.d
+	$(AS) $(AFLAGS) $(DEFOPTS) -aCOCOVTIO.D=0 $< > $@
 
 clean:
 	$(RM) $(DEFS)
--- a/level2/modules/covdg.asm	Fri Feb 24 06:41:48 2012 -0600
+++ b/level2/modules/covdg.asm	Fri Feb 24 08:51:08 2012 -0600
@@ -39,6 +39,7 @@
 
          ifp1
          use   defsfile
+         use   cocovtio.d
          use   vdgdefs
          endc
 
--- a/level2/modules/cowin.asm	Fri Feb 24 06:41:48 2012 -0600
+++ b/level2/modules/cowin.asm	Fri Feb 24 08:51:08 2012 -0600
@@ -32,6 +32,7 @@
 
          ifp1  
          use   defsfile
+         use   cocovtio.d
          endc
   
 tylg     set   Systm+Objct
--- a/level2/modules/joydrv_joy.asm	Fri Feb 24 06:41:48 2012 -0600
+++ b/level2/modules/joydrv_joy.asm	Fri Feb 24 08:51:08 2012 -0600
@@ -19,6 +19,7 @@
 
          ifp1  
          use   defsfile
+         use   cocovtio.d
          endc  
 
 tylg     set   Systm+Objct
--- a/level2/modules/kernel/krnp2.asm	Fri Feb 24 06:41:48 2012 -0600
+++ b/level2/modules/kernel/krnp2.asm	Fri Feb 24 08:51:08 2012 -0600
@@ -69,6 +69,7 @@
 
          IFP1
          use    defsfile
+         use    cocovtio.d
          ENDC
 
 TC9      set    false       "true" use TC-9 6309 trap vector
--- a/level2/modules/keydrv_cc3.asm	Fri Feb 24 06:41:48 2012 -0600
+++ b/level2/modules/keydrv_cc3.asm	Fri Feb 24 08:51:08 2012 -0600
@@ -15,7 +15,8 @@
 * Disassembled 98/09/09 09:02:10 by Disasm v1.6 (C) 1988 by RML
 
          ifp1            
-         use   defsfile  
+         use   defsfile
+         use   cocovtio.d
          ENDC            
 
 tylg     set   Systm+Objct
--- a/level2/modules/snddrv_cc3.asm	Fri Feb 24 06:41:48 2012 -0600
+++ b/level2/modules/snddrv_cc3.asm	Fri Feb 24 08:51:08 2012 -0600
@@ -23,6 +23,7 @@
 
          ifp1  
          use   defsfile
+         use   cocovtio.d
          endc  
 
 * SYSTEM MAP GLOBALS:
--- a/level2/modules/term_vdg.asm	Fri Feb 24 06:41:48 2012 -0600
+++ b/level2/modules/term_vdg.asm	Fri Feb 24 08:51:08 2012 -0600
@@ -12,6 +12,7 @@
 
          ifp1  
          use   defsfile
+         use   cocovtio.d
          endc  
 
 tylg     set   Devic+Objct
--- a/level2/modules/term_win40.asm	Fri Feb 24 06:41:48 2012 -0600
+++ b/level2/modules/term_win40.asm	Fri Feb 24 08:51:08 2012 -0600
@@ -14,6 +14,7 @@
 
          ifp1  
          use   defsfile
+         use   cocovtio.d
          endc  
 
 tylg     set   Devic+Objct
--- a/level2/modules/term_win80.asm	Fri Feb 24 06:41:48 2012 -0600
+++ b/level2/modules/term_win80.asm	Fri Feb 24 08:51:08 2012 -0600
@@ -14,6 +14,7 @@
 
          ifp1  
          use   defsfile
+         use   cocovtio.d
          endc  
 
 tylg     set   Devic+Objct
--- a/level2/modules/v1.asm	Fri Feb 24 06:41:48 2012 -0600
+++ b/level2/modules/v1.asm	Fri Feb 24 08:51:08 2012 -0600
@@ -14,6 +14,7 @@
 
          ifp1  
          use   defsfile
+         use   cocovtio.d
          endc  
 
 tylg     set   Devic+Objct
--- a/level2/modules/v2.asm	Fri Feb 24 06:41:48 2012 -0600
+++ b/level2/modules/v2.asm	Fri Feb 24 08:51:08 2012 -0600
@@ -14,6 +14,7 @@
 
          ifp1  
          use   defsfile
+         use   cocovtio.d
          endc  
 
 tylg     set   Devic+Objct
--- a/level2/modules/v3.asm	Fri Feb 24 06:41:48 2012 -0600
+++ b/level2/modules/v3.asm	Fri Feb 24 08:51:08 2012 -0600
@@ -14,6 +14,7 @@
 
          ifp1  
          use   defsfile
+         use   cocovtio.d
          endc  
 
 tylg     set   Devic+Objct
--- a/level2/modules/v4.asm	Fri Feb 24 06:41:48 2012 -0600
+++ b/level2/modules/v4.asm	Fri Feb 24 08:51:08 2012 -0600
@@ -14,6 +14,7 @@
 
          ifp1  
          use   defsfile
+         use   cocovtio.d
          endc  
 
 tylg     set   Devic+Objct
--- a/level2/modules/v5.asm	Fri Feb 24 06:41:48 2012 -0600
+++ b/level2/modules/v5.asm	Fri Feb 24 08:51:08 2012 -0600
@@ -14,6 +14,7 @@
 
          ifp1  
          use   defsfile
+         use   cocovtio.d
          endc  
 
 tylg     set   Devic+Objct
--- a/level2/modules/v6.asm	Fri Feb 24 06:41:48 2012 -0600
+++ b/level2/modules/v6.asm	Fri Feb 24 08:51:08 2012 -0600
@@ -14,6 +14,7 @@
 
          ifp1  
          use   defsfile
+         use   cocovtio.d
          endc  
 
 tylg     set   Devic+Objct
--- a/level2/modules/v7.asm	Fri Feb 24 06:41:48 2012 -0600
+++ b/level2/modules/v7.asm	Fri Feb 24 08:51:08 2012 -0600
@@ -14,6 +14,7 @@
 
          ifp1  
          use   defsfile
+         use   cocovtio.d
          endc  
 
 tylg     set   Devic+Objct
--- a/level2/modules/vi.asm	Fri Feb 24 06:41:48 2012 -0600
+++ b/level2/modules/vi.asm	Fri Feb 24 08:51:08 2012 -0600
@@ -12,6 +12,7 @@
 
          ifp1  
          use   defsfile
+         use   cocovtio.d
          endc  
 
 Edtn     equ   1
--- a/level2/modules/vtio.asm	Fri Feb 24 06:41:48 2012 -0600
+++ b/level2/modules/vtio.asm	Fri Feb 24 08:51:08 2012 -0600
@@ -58,6 +58,7 @@
 
          ifp1  
          use   defsfile
+         use   cocovtio.d
          endc  
 
 tylg     set   Drivr+Objct
--- a/level2/modules/w.asm	Fri Feb 24 06:41:48 2012 -0600
+++ b/level2/modules/w.asm	Fri Feb 24 08:51:08 2012 -0600
@@ -14,6 +14,7 @@
 
          ifp1  
          use   defsfile
+         use   cocovtio.d
          endc  
 
 tylg     set   Devic+Objct
--- a/level2/modules/w1.asm	Fri Feb 24 06:41:48 2012 -0600
+++ b/level2/modules/w1.asm	Fri Feb 24 08:51:08 2012 -0600
@@ -14,6 +14,7 @@
 
          ifp1  
          use   defsfile
+         use   cocovtio.d
          endc  
 
 tylg     set   Devic+Objct
--- a/level2/modules/w10.asm	Fri Feb 24 06:41:48 2012 -0600
+++ b/level2/modules/w10.asm	Fri Feb 24 08:51:08 2012 -0600
@@ -14,6 +14,7 @@
 
          ifp1  
          use   defsfile
+         use   cocovtio.d
          endc  
 
 tylg     set   Devic+Objct
--- a/level2/modules/w11.asm	Fri Feb 24 06:41:48 2012 -0600
+++ b/level2/modules/w11.asm	Fri Feb 24 08:51:08 2012 -0600
@@ -14,6 +14,7 @@
 
          ifp1  
          use   defsfile
+         use   cocovtio.d
          endc  
 
 tylg     set   Devic+Objct
--- a/level2/modules/w12.asm	Fri Feb 24 06:41:48 2012 -0600
+++ b/level2/modules/w12.asm	Fri Feb 24 08:51:08 2012 -0600
@@ -14,6 +14,7 @@
 
          ifp1  
          use   defsfile
+         use   cocovtio.d
          endc  
 
 tylg     set   Devic+Objct
--- a/level2/modules/w13.asm	Fri Feb 24 06:41:48 2012 -0600
+++ b/level2/modules/w13.asm	Fri Feb 24 08:51:08 2012 -0600
@@ -14,6 +14,7 @@
 
          ifp1  
          use   defsfile
+         use   cocovtio.d
          endc  
 
 tylg     set   Devic+Objct
--- a/level2/modules/w14.asm	Fri Feb 24 06:41:48 2012 -0600
+++ b/level2/modules/w14.asm	Fri Feb 24 08:51:08 2012 -0600
@@ -14,6 +14,7 @@
 
          ifp1  
          use   defsfile
+         use   cocovtio.d
          endc  
 
 tylg     set   Devic+Objct
--- a/level2/modules/w15.asm	Fri Feb 24 06:41:48 2012 -0600
+++ b/level2/modules/w15.asm	Fri Feb 24 08:51:08 2012 -0600
@@ -14,6 +14,7 @@
 
          ifp1  
          use   defsfile
+         use   cocovtio.d
          endc  
 
 tylg     set   Devic+Objct
--- a/level2/modules/w2.asm	Fri Feb 24 06:41:48 2012 -0600
+++ b/level2/modules/w2.asm	Fri Feb 24 08:51:08 2012 -0600
@@ -14,6 +14,7 @@
 
          ifp1  
          use   defsfile
+         use   cocovtio.d
          endc  
 
 tylg     set   Devic+Objct
--- a/level2/modules/w3.asm	Fri Feb 24 06:41:48 2012 -0600
+++ b/level2/modules/w3.asm	Fri Feb 24 08:51:08 2012 -0600
@@ -14,6 +14,7 @@
 
          ifp1  
          use   defsfile
+         use   cocovtio.d
          endc  
 
 tylg     set   Devic+Objct
--- a/level2/modules/w4.asm	Fri Feb 24 06:41:48 2012 -0600
+++ b/level2/modules/w4.asm	Fri Feb 24 08:51:08 2012 -0600
@@ -14,6 +14,7 @@
 
          ifp1  
          use   defsfile
+         use   cocovtio.d
          endc  
 
 tylg     set   Devic+Objct
--- a/level2/modules/w5.asm	Fri Feb 24 06:41:48 2012 -0600
+++ b/level2/modules/w5.asm	Fri Feb 24 08:51:08 2012 -0600
@@ -14,6 +14,7 @@
 
          ifp1  
          use   defsfile
+         use   cocovtio.d
          endc  
 
 tylg     set   Devic+Objct
--- a/level2/modules/w6.asm	Fri Feb 24 06:41:48 2012 -0600
+++ b/level2/modules/w6.asm	Fri Feb 24 08:51:08 2012 -0600
@@ -14,6 +14,7 @@
 
          ifp1  
          use   defsfile
+         use   cocovtio.d
          endc  
 
 tylg     set   Devic+Objct
--- a/level2/modules/w7.asm	Fri Feb 24 06:41:48 2012 -0600
+++ b/level2/modules/w7.asm	Fri Feb 24 08:51:08 2012 -0600
@@ -14,6 +14,7 @@
 
          ifp1  
          use   defsfile
+         use   cocovtio.d
          endc  
 
 tylg     set   Devic+Objct
--- a/level2/modules/w8.asm	Fri Feb 24 06:41:48 2012 -0600
+++ b/level2/modules/w8.asm	Fri Feb 24 08:51:08 2012 -0600
@@ -14,6 +14,7 @@
 
          ifp1  
          use   defsfile
+         use   cocovtio.d
          endc  
 
 tylg     set   Devic+Objct
--- a/level2/modules/w9.asm	Fri Feb 24 06:41:48 2012 -0600
+++ b/level2/modules/w9.asm	Fri Feb 24 08:51:08 2012 -0600
@@ -14,6 +14,7 @@
 
          ifp1  
          use   defsfile
+         use   cocovtio.d
          endc  
 
 tylg     set   Devic+Objct
--- a/level3/coco3/defsfile	Fri Feb 24 06:41:48 2012 -0600
+++ b/level3/coco3/defsfile	Fri Feb 24 08:51:08 2012 -0600
@@ -1,7 +1,7 @@
 Level    equ   3
 
-         use   os9defs
-         use   scfdefs
-         use   rbfdefs
-         use   systype
-         use   vtiodefs_cc3
+         use   os9.d
+         use   scf.d
+         use   rbf.d
+         use   coco.d
+         use   cocovtio.d
--- a/level3/coco3_6309/defsfile	Fri Feb 24 06:41:48 2012 -0600
+++ b/level3/coco3_6309/defsfile	Fri Feb 24 08:51:08 2012 -0600
@@ -1,7 +1,7 @@
 Level    equ   3
 
-         use   os9defs
-         use   scfdefs
-         use   rbfdefs
-         use   systype
-         use   vtiodefs_cc3
+         use   os9.d
+         use   scf.d
+         use   rbf.d
+         use   coco.d
+         use   cocovtio.d