changeset 2805:dedf1ca5dc0a lwtools-port

Merge with drencor's changes
author Boisy Pitre <boisy.pitre@nuance.com>
date Fri, 01 Feb 2013 19:47:39 -0600
parents eee10f550b6b (diff) 5a3acdd1c7d6 (current diff)
children 2eefe79fafe4
files
diffstat 27 files changed, 227 insertions(+), 3261 deletions(-) [+]
line wrap: on
line diff
--- a/defs/drivewire.d	Tue Jan 29 01:08:53 2013 -0600
+++ b/defs/drivewire.d	Fri Feb 01 19:47:39 2013 -0600
@@ -51,6 +51,9 @@
 OP_SERGETSTAT equ 'D
 OP_SERSETSTAT equ 'D+128
 
+SS.Timer      equ   $81
+SS.EE         equ   $82
+
 * for dw vfm
 OP_VFM equ 'V+128
 
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/defs/pipe.d	Fri Feb 01 19:47:39 2013 -0600
@@ -0,0 +1,96 @@
+               IFNE      PIPE.D-1
+
+PIPE.D         SET       1
+
+********************************************************************
+* PipeDefs - Pipe File Manager Definitions
+*
+* $Id$
+*
+* Edt/Rev  YYYY/MM/DD  Modified by
+* Comment
+* ------------------------------------------------------------------
+*          1988/12/03  Chris J. Burke
+* Coded from new PIPEMAN comments.
+
+               NAM       PipeDefs
+               TTL       Pipe File Manager Definitions
+
+*
+*   IOMan equates duplicated for PipeMan use
+*
+
+NPATHS         SET       16                  ;Maximum local paths per task -- must match IOMan
+NameMax        SET       29                  ;Maximum length of a file name
+
+*
+*   Device Driver Static Storage Layout
+*
+               ORG       V.User
+V.List         RMB       2                   ;Pointer to 1st pipe's pipe buffer
+PManMem        EQU       .                   ;Device driver memory (drive table equivalent)
+
+*
+*   Pipe Buffer Data Structure
+*
+               ORG       0
+PP.PD          RMB       2                   ;Pointer to shared path descriptor
+PP.Next        RMB       2                   ;Pointer to next pipe buffer in system map
+PP.Prev        RMB       2                   ;Pointer to previous pipe buffer in system map
+PP.Rsrv        RMB       2                   ;Reserved
+PP.Data        EQU       .                   ;Data buffer begins at this offset
+
+*
+*   Unique Path Descriptor Variables
+*
+               ORG       PD.FST
+*** PP.Read must have bit 4 clear; PP.Writ must be PP.Read XOR 4
+PD.Read        EQU       .
+PD.RPID        RMB       1                   ;Process ID of reader waiting on signal
+PD.RCT         RMB       1                   ;Number of blocked readers
+PD.RSIG        RMB       1                   ;Signal to send reader
+PD.REOR        RMB       1                   ;Read EOR character
+PD.Writ        EQU       .
+PD.WPID        RMB       1                   ;Process ID of writer waiting on signal
+PD.WCT         RMB       1                   ;Number of blocked writers
+PD.WSIG        RMB       1                   ;Signal to send writer
+PD.WEOR        RMB       1                   ;Write EOR character (dummy)
+*** End of special section
+PD.End         RMB       2                   ;Pointer to end of pipe buffer
+PD.NxtI        RMB       2                   ;Next in pointer
+PD.NxtO        RMB       2                   ;Next out pointer
+PD.RFlg        RMB       1                   ;"Ready" flag
+PD.Wrtn        RMB       1                   ;"Written" flag
+PD.BCnt        RMB       2                   ;# queue elements currently bufered
+PD.Own         RMB       1                   ;Process ID of pipe original creator
+PD.Keep        RMB       1                   ;Non-zero if pipe has been kept open artificailly
+PD.QSiz        RMB       2                   ;Max. elements in queue (copied from OPT section)
+
+*
+*   Path descriptor option section
+*
+*   Note that PD.Name overlaps with the last byte of PD.ECnt.
+*   PD.ECnt is copied to PD.QSiz as part of OPEN or CREATE,
+*   to make room for the pipe name.
+*
+               ORG       (PD.OPT+1)
+PD.ESiz        RMB       1                   ;Size of each queue element
+PD.ECnt        RMB       2                   ;Max. elements in queue (initial position)
+               IFGT      Level-1
+               ORG       (PD.OPT+3)
+PD.Name        RMB       NameMax
+               ENDC      
+
+*
+*   Device Descriptor definitions
+*
+IT.PDC         EQU       $12                 ;Pipe device class (like IT.DTP, IT.DVC)
+               ORG       IT.PDC
+               RMB       1                   ;Leave room for device class
+IT.ESiz        RMB       1                   ;Size of each queue element
+IT.ECnt        RMB       2                   ;Max. elements in queue (initial position)
+
+*   End of pipedefs
+
+               ENDC      
+
--- a/defs/pipedefs	Tue Jan 29 01:08:53 2013 -0600
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,96 +0,0 @@
-               IFNE      PIPEDEFS-1
-
-PIPEDEFS       SET       1
-
-********************************************************************
-* PipeDefs - Pipe File Manager Definitions
-*
-* $Id$
-*
-* Edt/Rev  YYYY/MM/DD  Modified by
-* Comment
-* ------------------------------------------------------------------
-*          1988/12/03  Chris J. Burke
-* Coded from new PIPEMAN comments.
-
-               NAM       PipeDefs
-               TTL       Pipe File Manager Definitions
-
-*
-*   IOMan equates duplicated for PipeMan use
-*
-
-NPATHS         SET       16                  ;Maximum local paths per task -- must match IOMan
-NameMax        SET       29                  ;Maximum length of a file name
-
-*
-*   Device Driver Static Storage Layout
-*
-               ORG       V.User
-V.List         RMB       2                   ;Pointer to 1st pipe's pipe buffer
-PManMem        EQU       .                   ;Device driver memory (drive table equivalent)
-
-*
-*   Pipe Buffer Data Structure
-*
-               ORG       0
-PP.PD          RMB       2                   ;Pointer to shared path descriptor
-PP.Next        RMB       2                   ;Pointer to next pipe buffer in system map
-PP.Prev        RMB       2                   ;Pointer to previous pipe buffer in system map
-PP.Rsrv        RMB       2                   ;Reserved
-PP.Data        EQU       .                   ;Data buffer begins at this offset
-
-*
-*   Unique Path Descriptor Variables
-*
-               ORG       PD.FST
-*** PP.Read must have bit 4 clear; PP.Writ must be PP.Read XOR 4
-PD.Read        EQU       .
-PD.RPID        RMB       1                   ;Process ID of reader waiting on signal
-PD.RCT         RMB       1                   ;Number of blocked readers
-PD.RSIG        RMB       1                   ;Signal to send reader
-PD.REOR        RMB       1                   ;Read EOR character
-PD.Writ        EQU       .
-PD.WPID        RMB       1                   ;Process ID of writer waiting on signal
-PD.WCT         RMB       1                   ;Number of blocked writers
-PD.WSIG        RMB       1                   ;Signal to send writer
-PD.WEOR        RMB       1                   ;Write EOR character (dummy)
-*** End of special section
-PD.End         RMB       2                   ;Pointer to end of pipe buffer
-PD.NxtI        RMB       2                   ;Next in pointer
-PD.NxtO        RMB       2                   ;Next out pointer
-PD.RFlg        RMB       1                   ;"Ready" flag
-PD.Wrtn        RMB       1                   ;"Written" flag
-PD.BCnt        RMB       2                   ;# queue elements currently bufered
-PD.Own         RMB       1                   ;Process ID of pipe original creator
-PD.Keep        RMB       1                   ;Non-zero if pipe has been kept open artificailly
-PD.QSiz        RMB       2                   ;Max. elements in queue (copied from OPT section)
-
-*
-*   Path descriptor option section
-*
-*   Note that PD.Name overlaps with the last byte of PD.ECnt.
-*   PD.ECnt is copied to PD.QSiz as part of OPEN or CREATE,
-*   to make room for the pipe name.
-*
-               ORG       (PD.OPT+1)
-PD.ESiz        RMB       1                   ;Size of each queue element
-PD.ECnt        RMB       2                   ;Max. elements in queue (initial position)
-               IFGT      Level-1
-               ORG       (PD.OPT+3)
-PD.Name        RMB       NameMax
-               ENDC      
-
-*
-*   Device Descriptor definitions
-*
-IT.PDC         EQU       $12                 ;Pipe device class (like IT.DTP, IT.DVC)
-               ORG       IT.PDC
-               RMB       1                   ;Leave room for device class
-IT.ESiz        RMB       1                   ;Size of each queue element
-IT.ECnt        RMB       2                   ;Max. elements in queue (initial position)
-
-*   End of pipedefs
-
-               ENDC      
-
--- a/level1/cmds/attr.as	Tue Jan 29 01:08:53 2013 -0600
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,267 +0,0 @@
-
-* Attr - Modify file attributes
-*
-* $Id$
-*
-* Edt/Rev  YYYY/MM/DD  Modified by
-* Comment
-* ------------------------------------------------------------------
-*  11      ????/??/??
-* From Tandy OS-9 Level Two VR 02.00.01.
-
-         nam   Attr
-         ttl   Modify file attributes
-
-* Disassembled 98/09/11 11:44:51 by Disasm v1.6 (C) 1988 by RML
-
-         use   defsfile.d
-
-DOHELP   set   0
-
-tylg     set   Prgrm+Objct
-atrv     set   ReEnt+rev
-rev      set   $00
-edition  set   11
-
-
-         section .bss
-fpath    rmb   1
-rawpath  rmb   1
-parmptr  rmb   2
-cmdperms rmb   2
-u0006    rmb   1
-u0007    rmb   1
-pathopts rmb   20
-u001C    rmb   2
-u001E    rmb   1
-u001F    rmb   9
-u0028    rmb   32
-filename rmb   32
-fdesc    rmb   16
-u0078    rmb   46
-         endsect
-
-         section code
-*         psect tee_a,Prgrm+Objct,ReEnt+rev,edition,200,start
-
-
-         IFNE  DOHELP
-HelpMsg  fcb   C$LF
-         fcc   "Use: Attr <pathname> {[-]<opts>}"
-         fcb   C$LF
-         fcc   " opts: -d s r w e pr pw pe -a"
-         fcb   C$CR
-         ENDC
-NotOwner fcb   C$LF
-         fcc   "You do not own that file."
-         fcb   C$CR
-UseMkDir fcb   C$LF
-         fcc   "Use Makdir to create a directory"
-         fcb   C$CR
-DirNtEmt fcb   C$LF
-         fcc   "ERROR; the directory is not empty"
-         fcb   C$CR
-Attrs    fcc   "dsewrewr"
-         fcb   $FF
-
-__start  stx   parmptr		save param ptr
-         clr   u0007
-         com   u0007
-* Open file at X as file
-         clra  
-         os9   I$Open		open file on commandline
-         bcc   L00D9		branch if ok
-* If error, try to open as directory with read permission
-         ldx   parmptr		get saved param ptr
-         lda   #DIR.+READ.	load perms
-         os9   I$Open		open as directory
-         bcc   L00D9		branch if ok
-* One last time, try open as directory only
-         ldx   parmptr		get param ptr
-         lda   #DIR.		load different perms
-         os9   I$Open		try one more time
-         bcs   L0114		branch if error
-L00D9    sta   fpath		save off path
-         stx   cmdperms	save updated parm ptr
-         leax  pathopts		point X to buffer
-         ldb   #SS.Opt		load with status code
-         os9   I$GetStt		get status
-         bcs   L0114		branch if error
-         clrb  
-         lda   ,x		get path type
-         cmpa  #DT.RBF		check if rbf path
-         lbne  ShowHelp		branch if not
-         ldx   parmptr		else get parm ptr
-         leay  filename		 point to buffer
-         lda   ,x+		get file name character
-         cmpa  #PDELIM		path delimiter?
-         bne   L0106		no
-L00FA    sta   ,y+		else save char in Y
-         lda   ,x+		get next file name char
-         cmpa  #C$PERD		period?
-         bcs   L0106		branch if not
-         cmpa  #PDELIM		path delimiter?
-         bne   L00FA		branch if not
-L0106    lda   #PENTIR
-         ldb   #C$SPAC
-         std   ,y++
-         leax  filename		point X to filename
-         lda   #READ.+WRITE.	load perms
-         os9   I$Open		open in raw mode
-L0114    lbcs  ShowHelp		branch if error
-         sta   rawpath
-         lda   fpath
-         clr   u001F
-         pshs  u
-         ldx   u001C		get MS 16 bits
-         ldu   u001E		get LS 16 bits
-         lda   rawpath		get path
-         os9   I$Seek		seek
-         puls  u
-         bcs   ShowHelp		branch if error
-         leax  fdesc		point to buffer
-         ldy   #FD.SEG
-         os9   I$Read
-         bcs   ShowHelp
-         os9   F$ID		get ID
-         cmpy  #$0000		super user?
-         beq   L014B		branch if so
-         cmpy  fdesc+FD.OWN	is user same as file's owner?
-         bne   L01C1		branch if not
-L014B    ldx   cmdperms		point to perms on cmd line
-         lbsr  L021D
-         bcs   L018B
-L0152    lbsr  L021D
-         bcc   L0152
-         clrb  
-         lda   ,x
-         cmpa  #C$CR
-         bne   ShowHelp
-         pshs  u
-         ldx   u001C
-         ldu   u001E
-         lda   rawpath
-         os9   I$Seek		seek
-         puls  u
-         bcs   ShowHelp		branch if error
-         leax  fdesc		point to file desc
-         ldy   #1		only 1 byte
-         os9   I$Write		write out new attributes
-         bcs   ShowHelp		branch if error
-         os9   I$Close		close file
-         bcs   ShowHelp		branch if error
-         lda   fpath		get file path
-         os9   I$Close		close file
-         bcs   ShowHelp		branch if error
-         ldb   u0007
-         beq   L01BE
-L018B    ldb   fdesc		get attribute
-         leax  >Attrs,pcr
-         leay  u0078
-         lda   ,x+
-L0197    lslb  
-         bcs   L019C
-         lda   #'-
-L019C    sta   ,y+
-         lda   ,x+
-         bpl   L0197
-         lda   #C$CR
-         sta   ,y+
-         leax  u0078
-         clrb  
-         bra   L01B0
-ShowHelp equ   *
-         IFNE  DOHELP
-         leax  >HelpMsg,pcr
-         ELSE
-         clrb
-         bra  L01BE
-         ENDC
-L01B0    pshs  b
-         lda   #2
-         ldy   #256
-         os9   I$WritLn
-         comb  
-         puls  b
-L01BE    os9   F$Exit
-L01C1    clrb  
-         leax  >NotOwner,pcr
-         bra   L01B0
-L01C8    leax  >UseMkDir,pcr
-         clrb  
-         bra   L01B0
-L01CF    pshs  u,y,x
-         lda   fpath
-         ldx   #$0000
-         ldu   #DIR.SZ*2
-         os9   I$Seek
-         ldu   $04,s
-         bcs   L01BE
-L01E0    leax  u0028
-         ldy   #DIR.SZ
-         os9   I$Read
-         bcs   L01F7
-         tst   ,x
-         beq   L01E0
-         leax  >DirNtEmt,pcr
-         clrb  
-         bra   L01B0
-L01F7    puls  u,y,x
-         cmpb  #E$EOF
-         bne   ShowHelp
-         rts   
-L01FE    fdb   $ff41
-         fdb   $ff80,$44ff,$4053,$ff01,$52ff,$0257,$ff04,$45ff
-         fdb   $0850,$52ff,$1050,$57ff,$2050,$45ff
-         fcb   $00
-L021D    clr   u0006
-L021F    lda   ,x+
-         cmpa  #C$SPAC
-         beq   L021F
-         cmpa  #C$COMA
-         beq   L021F
-         cmpa  #'-
-         bne   L0231
-         com   u0006
-         lda   ,x+
-L0231    leax  -1,x
-         leay  >L01FE,pcr
-L0237    ldb   ,y+
-         pshs  y,x
-         beq   L027F
-L023D    lda   ,x+
-         eora  ,y+
-         anda  #$DF
-         beq   L023D
-         lda   -1,y
-         bmi   L0251
-         puls  y,x
-L024B    lda   ,y+
-         bpl   L024B
-         bra   L0237
-L0251    lda   ,-x
-         cmpa  #$30
-         bcc   L027F
-         cmpb  #$FF
-         beq   L0278
-         bitb  #$80
-         beq   L0268
-         tst   u0006
-         lbeq  L01C8
-         lbsr  L01CF
-L0268    puls  y,b,a
-         lda   fdesc
-         eora  u0006
-         ora   -$01,y
-         eora  u0006
-         sta   fdesc
-         clrb  
-         rts   
-L0278    eorb  u0006
-         stb   u0007
-         clrb  
-         puls  pc,y,b,a
-L027F    coma  
-         puls  pc,y,x
-
-         endsect
--- a/level1/cmds/load.as	Tue Jan 29 01:08:53 2013 -0600
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,35 +0,0 @@
-********************************************************************
-* Load - Load a module
-*
-* $Id$
-*
-* Edt/Rev  YYYY/MM/DD  Modified by
-* Comment
-* ------------------------------------------------------------------
-*   4      ????/??/??
-* From Tandy OS-9 Level One VR 02.00.00.
-
-         nam   Load
-         ttl   Load a module
-
-         use   defsfile.d
-
-rev      set   $00
-edition  set   4
-
-         section .bss
-u0000    rmb   200
-         endsect
-
-*         psect load_a,Prgrm+Objct,ReEnt+rev,edition,200,start
-         section code
-
-__start  os9   F$Load   
-         bcs   Exit
-         lda   ,x
-         cmpa  #C$CR
-         bne   start
-         clrb  
-Exit     os9   F$Exit   
-
-         endsect
--- a/level1/cmds/tee.as	Tue Jan 29 01:08:53 2013 -0600
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,87 +0,0 @@
-********************************************************************
-* Tee - Split output to multiple devices
-*
-* $Id$
-*
-* Edt/Rev  YYYY/MM/DD  Modified by
-* Comment
-* ------------------------------------------------------------------
-*   2      ????/??/??
-* From Tandy OS-9 Level One VR 02.00.00.
-
-         nam   Tee
-         ttl   Split output to multiple devices
-
-* Disassembled 98/09/14 23:50:52 by Disasm v1.6 (C) 1988 by RML
-
-         use   defsfile.d
-
-rev      set   $00
-edition  set   2
-
-         section .bss
-u0000    rmb   1
-parray   rmb   13
-pcount   rmb   1
-buff     rmb   200
-         endsect
-
-*         psect tee_a,Prgrm+Objct,ReEnt+rev,edition,200,start
-         section code
-
-__start  clrb  
-         clr   pcount		clear path counter
-         cmpy  #$0000		any parameters?
-         lbeq  exitok		exit if none
-         leay  parray		else point Y to path array
-
-* Walk the command line parameters
-parse    lda   ,x+
-         cmpa  #C$SPAC
-         beq   parse
-         cmpa  #C$COMA
-         beq   parse
-         cmpa  #C$CR
-         lbeq  parsex
-* We've found a file or device name
-         leax  -1,x
-         lda   #WRITE.
-         ldb   #PREAD.+UPDAT.
-         os9   I$Create 	open a path to the device or file
-         bcs   exit		branch if error
-         ldb   pcount		else get path counter
-         sta   b,y		save new path in the array offset
-         incb  			increment counter
-         stb   pcount		and save
-         bra   parse		continue parsing command line
-parsex   stb   pcount
-
-* Devices on command line are open, start pumping data
-L0044    clra  
-         leax  buff
-         ldy   #256
-         os9   I$ReadLn 
-         bcc   L0057
-         cmpb  #E$EOF
-         beq   exitok
-         coma  
-         bra   exit
-L0057    inca  
-         os9   I$WritLn 
-         tst   pcount
-         beq   L0044
-         clrb  
-L0060    leay  parray
-         lda   b,y
-         leax  buff
-         ldy   #256
-         os9   I$WritLn 
-         bcs   exit
-         incb  
-         cmpb  pcount
-         bne   L0060
-         bra   L0044
-exitok   clrb  
-exit     os9   F$Exit   
-
-         endsect
--- a/level1/cmds/telnet.as	Tue Jan 29 01:08:53 2013 -0600
+++ b/level1/cmds/telnet.as	Fri Feb 01 19:47:39 2013 -0600
@@ -44,11 +44,6 @@
                nam       telnet
                ttl       program module
 
-tylg           set       $01     Prgrm+Objct
-atrv           set       $80+rev ReEnt+rev
-rev            set       $00
-edition        set       5
-
                section   .bss
 connected      rmb       1
 netdatardy     rmb       1
@@ -73,7 +68,14 @@
 telctrlbuf     rmb       3
                endsect
 
-*               psect     telnet_a,tylg,atrv,edition,200,start
+               section    __os9
+type           equ        $01
+lang           equ        $01
+attr           equ        $80
+rev            equ        $05
+stack          equ        200
+               endsect
+
                section   code
 
 TELESCAPE      equ       'Y-$40              * CTRL-Y
@@ -125,6 +127,7 @@
                
 peerclosed
                clr       connected,u
+               lda       #1
                leax      peerclosm,pcr
                ldy       #peerclosml
                os9       I$WritLn
--- a/level1/cmds/touch.as	Tue Jan 29 01:08:53 2013 -0600
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,414 +0,0 @@
-********************************************************************
-* Touch - Changes last modification date/time
-*
-* $Id$
-*
-* Edt/Rev  YYYY/MM/DD  Modified by
-* Comment
-* ------------------------------------------------------------------
-*   2      2003/01/11  Boisy G. Pitre
-* Rewrote touch from scratch, made almost 90% smaller than C version
-* found in the OS-9 Development System.
-
-         nam   Touch
-         ttl   Changes last modification date/time
-
-         use   defsfile.d
-
-rev      set   $00
-edition  set   2
-
-* Here are some tweakable options
-DOHELP   set   0	1 = include help info
-STACKSZ  set   128	estimated stack size
-PARMSZ   set   256	estimated parameter size
-ZOPTSIZ  set   64	max size of -z option's parameter
-
-* Module header definitions
-rev      set   $00
-edition  set   2
-
-* Your utility's static storage vars go here
-         section .bss
-parmptr  rmb   2	pointer to our command line params
-bufptr   rmb   2	pointer to user expandable buffer
-bufsiz   rmb   2	size of user expandable buffer
-* What follows are utility specific options
-nocreate rmb   1
-quiterr  rmb   1
-filemode rmb   1
-filecnt  rmb   1
-zoptflg  rmb   1	1 = this option has been processed once already
-zpath    rmb   1	path to -z file
-cleartop equ   *	everything up to here gets cleared at start
-zopt     rmb   ZOPTSIZ	buffer for what follows after -c=
-         endsect
-
-* Next is a user adjustable buffer with # modifier on command line.
-* Some utilities won't need this, some will.
-* Currently set up to be larger for Level 2 than Level 1
-* Note: this buffer must come just before the stack
-         section data
-         IFGT  Level-1
-bigbuff  rmb   8*1024		8K default buffer for Level 2
-         ELSE
-bigbuff  rmb   512		512 byte default buffer for Level 1
-         ENDC
-         endsect
-
-*         psect touch_a,Prgrm+Objct,ReEnt+rev,edition,200,start
-         section code
-
-* Place constant strings here
-         IFNE  DOHELP
-HlpMsg   fcb   C$LF
-         fcc   /Use: Touch [<opts>] <path> [<path>] [<opts>]/
-         fcb   C$LF
-         fcc   /  -c = don't create files/
-         fcb   C$LF
-         fcc   /  -q = don't quit on error/
-         fcb   C$LF
-         fcc   /  -x = search execution directory/
-         fcb   C$LF
-         fcc   /  -z = get files from standard input/
-         fcb   C$LF
-         fcc   /  -z=<file> get files from <file>/
-         fcb   C$LF
-CR       fcb   C$CR
-HlpMsgL  equ   *-HlpMsg
-         ENDC
-UnkOpt   fcc   /unknown option: /
-UnkOptL  equ   *-UnkOpt
-CantTch  fcc   /can't touch "/
-CantTchL equ   *-CantTch
-EndCant  fcc   /" - /
-EndCantL equ   *-EndCant
-
-* Here's how registers are set when this process is forked:
-*
-*   +-----------------+  <--  Y          (highest address)
-*   !   Parameter     !
-*   !     Area        !
-*   +-----------------+  <-- X, SP
-*   !   Data Area     !
-*   +-----------------+
-*   !   Direct Page   !
-*   +-----------------+  <-- U, DP       (lowest address)
-*
-*   D = parameter area size
-*  PC = module entry point abs. address
-*  CC = F=0, I=0, others undefined
-
-* The start of the program is here.
-* Before any command line processing is done, we clear out
-* our static memory from U to cleartop, then determine the
-* size of our data area (minus the stack).
-__start  pshs  u,x		save registers for later
-         leax  <cleartop	point to end of area to zero out
-         IFNE  H6309
-         subr  u,x		subtract U from X
-         tfr   x,w		and put X in W
-         clr   ,-s		put a zero on the stack
-         tfm   s,u+		and use TFM to clear starting at U
-         leas  1,s		clean up the stack
-         ELSE
-         pshs   x		save end pointer on stack
-clrnxt   clr   ,u+		clear out
-         cmpu  ,s		done?
-         bne   clrnxt		branch if not
-         leas  2,s		else clear stack
-         ENDC
-         puls  x,u		and restore our earlier saved registers
-         leay  bigbuff,u	point Y to copy buffer offset in U
-         stx   <parmptr		save parameter pointer
-         sty   <bufptr		save pointer to buffer
-         tfr   s,d		place top of stack in D
-         IFNE  H6309
-         subr  y,d
-         ELSE
-         pshs  y		save Y on stack
-         subd  ,s++		get size of space between copybuf and X
-         ENDC
-         subd  #STACKSZ+PARMSZ	subtract out our stack
-         std   <bufsiz		size of our buffer
-
-* At this point we have determined our buffer space and saved pointers
-* for later use.  Now we will parse the command line for options that
-* begin with -
-         lda   ,x
-         cmpa  #C$CR		CR?
-         lbeq  ShowHelp		if so, no parameters... show help and exit
-GetChar  lda   ,x+		get next character on cmd line
-         cmpa  #C$CR		CR?
-         lbeq  DoTouch		if so, do whatever this utility does
-         cmpa  #'-		is it an option?
-         beq   GetDash		if so, process it
-         inc   <filecnt         else must be a non-option argument (file)
-         lbsr  SkipNSpc         move past the argument
-ChkDash  lbsr  SkipSpcs         and any following spaces
-         bra   GetChar          start processing again
-GetDash  lda   #C$SPAC		get a space char
-         sta   -1,x		and wipe out the dash from the cmd line
-GetDash2 ldd   ,x+		load option char and char following
-         ora   #$20		make lowercase
-IsItC    cmpa  #'c		is it this option?
-         bne   IsItQ		branch if not
-         sta   <nocreate
-         lbra FixCmdLn
-IsItQ    cmpa  #'q		is it this option?
-         bne   IsItX		branch if not
-         inc   <quiterr
-         lbra  FixCmdLn
-IsItX    cmpa  #'x		is it this option?
-         bne   IsItZ		branch if not
-         lda   #EXEC.
-         sta   <filemode
-         bra   FixCmdLn
-IsItZ    cmpa  #'z		is it this option?
-         bne   BadOpt		branch if not
-         tst   <zoptflg		was this option already specified?
-         bne   BadOpt		show help if so
-         sta   <zoptflg		else tag this option as parsed
-         cmpb  #'=		2nd char =?
-         bne   FixCmdLn
-GetZFile ldb   #C$SPAC		get space
-         stb   -$01,x		write over c
-         stb   ,x+		and = sign, inc X to dest dir
-* check for valid char after -z=
-         lda   ,x
-         cmpa  #C$SPAC
-         lbeq  ShowHelp         
-         cmpa  #C$COMA
-         lbeq  ShowHelp         
-         cmpa  #C$CR
-         lbeq  ShowHelp         
-         leay  <zopt,u		point Y to parameber buffer
-         tfr   y,d		transfer Y to D
-         addd  #ZOPTSIZ
-         pshs  b,a		save updated ptr value
-         ldb   #C$SPAC		get space
-L0339    lda   ,x		get byte at X
-         stb   ,x+		store space at X and inc
-         sta   ,y+		save loaded byte at Y and inc
-         cmpy  ,s		are we at end?
-         beq   L035D		branch if so (buffer too small)
-         cmpa  #C$SPAC		else is char in A a space?
-         beq   L0350		branch if so
-         cmpa  #C$COMA		coma?
-         beq   L0350		branch if so
-         cmpa  #C$CR		cr?
-         bne   L0339		get next byte if not
-L0350    leax  -1,x
-         sta   ,x		restore previous A
-         leas  $02,s		kill stack
-* attempt to open a path to the file
-         pshs  x
-         leax  <zopt,u
-         lda   #READ.
-         os9   I$Open
-         lbcs  Exit
-         sta   <zpath
-         puls  x
-         lbra  ChkDash
-L035D    leas  $02,s
-         ldb   #$BF		else buffer size too small
-         orcc  #Carry
-         lbra  Exit
-FixCmdLn lda   #C$SPAC		get space
-         sta   -$01,x		and wipe out option character
-         cmpb  #'0
-         lblt  ChkDash		start dash option processing again
-         lbra  GetDash		possibly another option following?
-
-* We branch here if we encounter an unknown option character
-* A = bad option character
-BadOpt   leax  UnkOpt,pcr
-         ldy   #UnkOptL
-         ldb   #C$CR
-         pshs  d		save bad option and CR on stack
-         lda   #$02		stderr
-         os9   I$Write
-         leax  ,s		point X at option char on stack
-         os9   I$WritLn		print option and CR
-         puls  d		clean up stack
-         lbra  ShowHelp
-
-
-* At this point options are processed.
-* We load X with our parameter pointer and go down the command line
-* looking at each file to process (options have been wiped out with
-* spaces)
-*
-* Note, the following two instructions may not be needed, depending on
-* if your utility requires a non-option on the command line.
-DoTouch  tst   <zoptflg		-z specified?
-         beq   DoFiles		no, do any files on command line
-ReadZ    lda   <zpath
-         ldy   #80
-         os9   I$ReadLn
-         lbsr  SkipSpcs
-         cmpa  #C$CR
-         beq   ClosEx
-         bcs   TestErr
-         bsr   ProcFile
-         bra   ReadZ
-TestErr  cmpb  #E$EOF
-         lbne  Exit
-         tsta
-         lbeq  ExitOk
-ClosEx   os9   I$Close		close path to -z= file
-         lbra  ExitOk
-
-DoFiles  tst   <filecnt		we should have at least one file on cmdline
-         lbeq  ShowHelp		if not, exit with error
-         ldx   <parmptr		get our parameter pointer off stack
-DoLoop   lbsr  SkipSpcs		skip any leading spaces
-         cmpa  #C$CR		end of parameters?
-         beq   ExitOk		if so, end the utility
-         pshs  x		save pointer to arg
-         bsr   ProcFile		process file at X
-         puls  x		get arg pointer
-         lbsr  SkipNSpc         skip the argument we just processed
-         bra   DoLoop
-
-* This routine processes one file at a time.
-* Entry: X = ptr to argument on the command line.
-* On exit, X can point to the argument or past it.
-* Note that there are NO leading spaces.
-* They have been skipped by the caller.
-* The following code just echos the command line argument, followed
-* by a carriage return.
-ProcFile 
-         lda   #WRITE.
-         ora   <filemode
-         pshs  x
-         os9   I$Open
-         puls  x
-         bcc   CloseIt
-         ora   #DIR.
-         pshs  x
-         os9   I$Open
-         puls  x
-         bcc   CloseIt
-* open failed... should we do create?
-         tst   <nocreate
-         beq   DoCreate
-ChkQuit  bsr   CantTouch
-         tst   <quiterr
-         beq   ExitOk
-         bra   ProcRTS
-DoCreate ldb   #PREAD.+UPDAT.
-         pshs  x
-         os9   I$Create
-         puls  x
-         bcs   ChkQuit
-CloseIt  os9   I$Close
-ProcRTS  rts
-
-CantTouch
-         pshs  x,b		save pointer to file and error code
-         leax  CantTch,pcr
-         lda   #$02
-         ldy   #CantTchL
-         os9   I$Write
-         ldx   1,s
-         pshs  x
-         bsr   StrLen
-         puls  x
-         os9   I$Write
-         leax  EndCant,pcr
-         ldy   #EndCantL
-         os9   I$Write
-         puls  b
-         os9   F$PErr
-         puls  x,pc
- 
-ShowHelp equ   *
-         IFNE  DOHELP
-         leax  >HlpMsg,pcr	point to help message
-         ldy   #HlpMsgL		get length
-         lda   #$02		std error
-         os9   I$WritLn 	write it
-         ENDC
-ExitOk   clrb  			clear carry
-Exit     os9   F$Exit   	and exit
-
-* This routine counts the number of non-whitespace characters
-* starting at X
-*
-* Entry:
-*   X = ptr to string (space, comma or CR terminated)
-* Exit:
-*   Y = length of string
-*   X = ptr to byte after string
-StrLen   pshs  a
-         ldy   #$0000
-StrLenLp lda   ,x+
-         cmpa  #C$SPAC
-         beq   StrLenEx
-         cmpa  #C$COMA
-         beq   StrLenEx
-         cmpa  #C$CR
-         beq   StrLenEx
-         leay  1,y
-         bra   StrLenLp
-StrLenEx puls  a,pc
-
-* This routine copies a string of text from X to Y until
-* a whitespace character or CR is encountered
-*
-* Entry:
-*   X = ptr to src string
-*   Y = ptr to dest string
-* Exit:
-*   D = number of bytes copied
-*   X = ptr to byte after original string
-*   Y = ptr to byte after copied string
-StrCpy   pshs  u
-         ldu   #$0000
-CopyFnLp lda   ,x+
-         cmpa  #C$SPAC
-         beq   CopyFnEx
-         cmpa  #C$COMA
-         beq   CopyFnEx
-         cmpa  #C$CR
-         beq   CopyFnEx
-         sta   ,y+
-         leau  1,u
-         bra   CopyFnLp
-CopyFnEx tfr   u,d
-         puls  u,pc
-
-* This routine skip over spaces and commas
-*
-* Entry:
-*   X = ptr to data to parse
-* Exit:
-*   X = ptr to first non-whitespace char
-*   A = non-whitespace char
-SkipSpcs lda   ,x+
-         cmpa  #C$SPAC
-         beq   SkipSpcs
-         cmpa  #C$COMA
-         beq   SkipSpcs
-         leax  -1,x
-         rts
-
-* This routine skips over everything but spaces, commas and CRs
-*
-* Entry:
-*   X = ptr to data to parse
-* Exit:
-*   X = ptr to first whitespace char
-*   A = whitespace char
-SkipNSpc lda   ,x+
-         cmpa  #C$SPAC
-         beq   EatOut
-         cmpa  #C$COMA
-         beq   EatOut
-         cmpa  #C$CR
-         bne   SkipNSpc
-EatOut   leax  -1,x
-         rts
-
-         endsect
--- a/level1/cmds/tsmon.as	Tue Jan 29 01:08:53 2013 -0600
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,79 +0,0 @@
-*******************************************************************
-* Tsmon - Timesharing monitor
-*
-* $Id$
-*
-* Edt/Rev  YYYY/MM/DD  Modified by
-* Comment
-* ------------------------------------------------------------------
-*   6      ????/??/??
-* From Tandy OS-9 Level Two VR 02.00.01.
-
-         nam   Tsmon
-         ttl   Timesharing monitor
-
-         use   defsfile.d
-
-rev      set   $00
-edition  set   2
-
-         section .bss
-childid  rmb   1
-parmptr  rmb   2
-parmlen  rmb   2
-inbuff   rmb   128
-         endsect
-
-*         psect tsmon_a,Prgrm+Objct,ReEnt+rev,edition,200,start
-         section code
-
-Login    fcc   "LOGIN"
-LoginPrm fcb   C$CR
-
-IcptRtn  rti
-
-__start  stx   parmptr			save parameter pointer
-         std   parmlen			save parameter length
-         leax  IcptRtn,pcr		point to intercept routine
-         os9   F$Icpt   		and set it
-L0024    ldx   parmptr			get pointer to parameter
-         ldd   parmlen			and length
-         cmpd  #$0002			
-         bcs   L0052
-         lda   ,x			get byte at command line
-         cmpa  #C$CR			cr?
-         beq   L0052			if so, branch
-         clra  				stdin
-         os9   I$Close  		close it
-         lda   #UPDAT.
-         os9   I$Open   		open device on command line
-         bcs   Exit			branch if error
-         inca  				A = 1
-         os9   I$Close  		close stdout
-         inca  				A = 2
-         os9   I$Close  		close stderr
-         clra  				stdin path
-         os9   I$Dup    		dup to stdout
-         bcs   Exit			branch if error
-         os9   I$Dup    		dup to stderr
-         bcs   Exit			branch if error
-L0052    clra  				stdin
-         leax  inbuff			point to buffer
-         ldy   #$0001			read 1 byte
-         os9   I$ReadLn 		read line
-         bcs   L0024			branch if error
-         lda   #Objct			object
-         clrb  				no additional mem
-         leax  <Login,pcr		point to login
-         leau  <LoginPrm,pcr		and to parameters
-         ldy   #$0000			parameter size
-         os9   F$Fork   		fork program
-         bcs   L0024			branch if error
-         sta   childid			else save process ID of child
-L0072    os9   F$Wait   		wait for it to finish
-         cmpa  childid			same as PID we forked?
-         bne   L0072			if not, wait more
-         bra   L0024			else go back
-Exit     os9   F$Exit   		exit
-
-         endsect
--- a/level1/modules/dwio.asm	Tue Jan 29 01:08:53 2013 -0600
+++ b/level1/modules/dwio.asm	Fri Feb 01 19:47:39 2013 -0600
@@ -499,9 +499,14 @@
                bne       loop
 
                ldx       ,s
-			lda   	P$State,x		get state of recipient
-			ora   	#Condem			set condemn bit
-			sta   	P$State,x		and set it back
+
+               ldb       #S$HUP
+               stb       P$Signal,x
+               os9       F$AProc
+
+*			lda   	P$State,x		get state of recipient
+*			ora   	#Condem			set condemn bit
+*			sta   	P$State,x		and set it back
 
 out            puls      x
                ldx       P$Queue,x
--- a/level2/coco3/cmds/makefile	Tue Jan 29 01:08:53 2013 -0600
+++ b/level2/coco3/cmds/makefile	Fri Feb 01 19:47:39 2013 -0600
@@ -6,12 +6,13 @@
 
 DEPENDS		= ./makefile
 AFLAGS          += --includedir=$(NITROS9DIR)/3rdparty/packages/basic09
+LFLAGS		+= -L$(NITROS9DIR)/lib
 ifdef	H6309
-LFLAGS		+= $(NITROS9DIR)/lib/sys6309l2.a 
+LFLAGS		+= -l6309l2
 else
-LFLAGS		+= $(NITROS9DIR)/lib/sys6809l2.a
+LFLAGS		+= -l6809l2
 endif
-LFLAGS		+= $(NITROS9DIR)/lib/net.a $(NITROS9DIR)/lib/alib.a 
+LFLAGS		+= -lnet -lalib -ldw
 
 CMDS		= asm attr backup binex build cmp cobbler copy cputype \
 		date dcheck debug ded deiniz del deldir devs dir dirsort disasm \
@@ -24,7 +25,7 @@
 CMDS_D2         = basic09 runb gfx2 gfx inkey syscall copy del echo format \
                 merge os9gen prompt tmode
 
-CMDS_DW		= inetd dw telnet
+CMDS_DW		= inetd dw telnet eeread eewrite
 
 SHELLMODS	= shellplus date deiniz echo iniz link load save unlink
 UTILPAK1	= attr build copy del deldir dir display list makdir mdir \
--- a/lib/alib/makefile	Tue Jan 29 01:08:53 2013 -0600
+++ b/lib/alib/makefile	Fri Feb 01 19:47:39 2013 -0600
@@ -39,12 +39,12 @@
 	to_sp.o to_non_sp.o memset.o rnd.o
 
 
-all:	../alib.a
+all:	../libalib.a
 
-../alib.a: $(MODS)
+../libalib.a: $(MODS)
 	lwar -c $@ $?
 
 dskclean: clean
 
 clean:
-	$(RM) *.o ../alib.a
+	$(RM) *.o ../libalib.a
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/lib/atari.as	Fri Feb 01 19:47:39 2013 -0600
@@ -0,0 +1,8 @@
+               use      sys6809l1.as
+
+               section  _constant
+
+               use       ../defs/atari.d
+               use       ../defs/atarivtio.d
+
+               endsect
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/lib/coco.as	Fri Feb 01 19:47:39 2013 -0600
@@ -0,0 +1,8 @@
+               use      sys6809l2.as
+
+               section  _constant
+
+               use       ../defs/coco.d
+               use       ../defs/cocovtio.d
+
+               endsect
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/lib/coco3.as	Fri Feb 01 19:47:39 2013 -0600
@@ -0,0 +1,8 @@
+               use      sys6809l2.as
+
+               section  _constant
+
+               use       ../defs/coco.d
+               use       ../defs/cocovtio.d
+
+               endsect
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/lib/coco3_6309.as	Fri Feb 01 19:47:39 2013 -0600
@@ -0,0 +1,8 @@
+               use      sys6309l2.as
+
+               section  _constant
+
+               use       ../defs/coco.d
+               use       ../defs/cocovtio.d
+
+               endsect
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/lib/dragon.as	Fri Feb 01 19:47:39 2013 -0600
@@ -0,0 +1,15 @@
+               section  _constant
+
+DRAGON         equ       1
+Level          equ       1
+H6309          equ       0
+
+               use       ../defs/os9.d
+               use       ../defs/rbf.d
+               use       ../defs/scf.d
+               use       ../defs/pipe.d
+               use       ../defs/drivewire.d
+               use       ../defs/dragon.d
+               use       ../defs/cocovtio.d
+
+               endsect
--- a/lib/drivewire.as	Tue Jan 29 01:08:53 2013 -0600
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,7 +0,0 @@
-               section   _constant
-               RMB       $81
-SS.Timer:      RMB       1                   Timer service
-SS.EE:         RMB       1                   EEPROM service
-               endsect
-
-
--- a/lib/makefile	Tue Jan 29 01:08:53 2013 -0600
+++ b/lib/makefile	Fri Feb 01 19:47:39 2013 -0600
@@ -1,22 +1,36 @@
 include $(NITROS9DIR)/rules.mak
 
-SRC = os9s.as scfs.as rbfs.as pipes.as systype.as net.as drivewire.as
+all: libnos96809l1.a libnos96809l2.a libnos96309l2.a libnet.a libalib.a \
+	libcoco.a libcoco3.a libcoco3_6309.a libdragon.a libatari.a
 
-all: sys6809l1.a sys6809l2.a sys6309l2.a net.a alib.a drivewire.a
+libnos96809l1.a: sys6809l1.o
+	lwar -c $@ $?
 
-sys6809l1.a: sys6809l1.o
-sys6809l2.a: sys6809l2.o
-sys6309l2.a: sys6309l2.o
-net.a: net.o
+libnos96809l2.a: sys6809l2.o
+	lwar -c $@ $?
+
+libnos96309l2.a: sys6309l2.o
+	lwar -c $@ $?
+
+libnet.a: net.o
+	lwar -c $@ $?
 
-sys6809l1.o: sys6809l1.as
-sys6809l2.o: sys6809l2.as
-sys6309l2.o: sys6309l2.as
-net.o: net.as
+libcoco.a: coco.o
+	lwar -c $@ $?
+
+libcoco3.a: coco3.o
+	lwar -c $@ $?
 
-drivewire.a: drivewire.o
+libcoco3_6309.a: coco3_6309.o
+	lwar -c $@ $?
 
-alib.a:
+libatari.a: atari.o
+	lwar -c $@ $?
+
+libdragon.a: dragon.o
+	lwar -c $@ $?
+
+libalib.a:
 	cd alib; make
 
 clean:
--- a/lib/os9.as	Tue Jan 29 01:08:53 2013 -0600
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1318 +0,0 @@
-********************************************************************
-* 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
-*
-               section   _constant
-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
-
-               RMB       $25-*
-F$TPS:         RMB       1                   Return System's Ticks Per Second
-F$TimAlm:      RMB       1                   CoCo individual process alarm call
-
-               ENDC      
-
-               RMB       $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
-*
-               RMB       $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      
-               endsect
-
-               PAG       
-**************************************
-* I/O Service Request Code Definitions
-*
-               section   _constant
-               RMB       $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
-               endsect
-
-*******************
-* File Access Modes
-*
-               section   _constant
-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
-               endsect
-
-**************
-* Signal Codes
-*
-               section   _constant
-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
-               endsect
-
-               PAG       
-**********************************
-* Status Codes for GetStat/GetStat
-*
-               section   _constant
-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
-               RMB       $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      
-
-               RMB       $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
-
-               RMB       $B0-*
-*
-* New WDDisk get/set status calls
-SS.ECC:        RMB       1                   ECC corrected data error enable/disable (GetStat/SetStat)
-               endsect
-
-*
-               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
-*
-               section   _constant
-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
-
-               RMB       $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
-
-               RMB       $100-*
-D.XSWI3:       RMB       3
-D.XSWI2:       RMB       3
-D.XSWI:        RMB       3
-D.XNMI:        RMB       3
-D.XIRQ:        RMB       3
-D.XFIRQ:       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
-
-               RMB       $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
-
-               RMB       $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
-
-               RMB       $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
-*
-               RMB       $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
-               RMB       $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
-               RMB       $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      
-               endsect
-
-               TTL       Structure Formats
-               PAG       
-************************************
-* Module Directory Entry Definitions
-*
-               section   _constant
-               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
-               endsect
-
-************************************
-* Module Definitions
-*
-* Universal Module Offsets
-*
-               section   _constant
-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
-               endsect
-
-               section   _constant
-*
-* Type-Dependent Module Offsets
-*
-* System, File Manager, Device Driver, Program Module
-*
-               RMB       M$IDSize
-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
-               endsect
-
-               section   _constant
-*
-* Device Descriptor Module
-*
-               RMB       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
-               endsect
-
-               section   _constant
-*
-* Configuration Module Entry Offsets
-*
-               RMB       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
-
-
-*********************
-* CRC Result Constant
-*
-CRCCon1:       EQU       $80
-CRCCon23:      EQU       $0FE3
-               endsect
-
-               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
-
-               section   _constant
-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
-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
-               endsect
-
-*
-* 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
-
-               section   _constant
-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
-               endsect
-
-*
-* 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
-*
-               section   _constant
-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       *
-               endsect
-
-*
-* Pathlist Special Symbols
-*
-PDELIM:        EQU       '/                  Pathlist Name Separator
-PDIR:          EQU       '.                  Directory
-PENTIR:        EQU       '@                  Entire Device
-
-               PAG       
-****************************
-* File Manager Entry Offsets
-*
-               section   _constant
-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
-               endsect
-
-*****************************
-* Device Driver Entry Offsets
-*
-               section   _constant
-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
-               endsect
-
-*********************
-* Device Table Format
-*
-               section   _constant
-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       *
-               endsect
-
-*******************************
-* Device Static Storage Offsets
-*
-               section   _constant
-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
-               endsect
-
-********************************
-* Interrupt Polling Table Format
-*
-               section   _constant
-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       *
-               endsect
-
-********************
-* VIRQ packet format
-*
-               section   _constant
-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
-               endsect
-
-               PAG       
-*************************************
-* Machine Characteristics Definitions
-*
-               section   _constant
-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
-               endsect
-
-               TTL       Error Code Definitions
-               PAG       
-************************
-* Error Code Definitions
-*
-* Basic09 Error Codes
-*
-               section   _constant
-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
-               RMB       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
-*
-               RMB       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
-               endsect
-
-
-               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      
--- a/lib/pipe.as	Tue Jan 29 01:08:53 2013 -0600
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,97 +0,0 @@
-********************************************************************
-* PipeDefs - Pipe File Manager Definitions
-*
-* $Id$
-*
-* Edt/Rev  YYYY/MM/DD  Modified by
-* Comment
-* ------------------------------------------------------------------
-*          1988/12/03  Chris J. Burke
-* Coded from new PIPEMAN comments.
-
-               NAM       PipeDefs
-               TTL       Pipe File Manager Definitions
-
-*
-*   IOMan equates duplicated for PipeMan use
-*
-
-NPATHS:        SET       16                  ;Maximum local paths per task -- must match IOMan
-NameMax:       SET       29                  ;Maximum length of a file name
-
-*
-*   Device Driver Static Storage Layout
-*
-               section   _constant
-               RMB       V.USER
-V.List:        RMB       2                   ;Pointer to 1st pipe's pipe buffer
-PManMem:       EQU       *                   ;Device driver memory (drive table equivalent)
-               endsect
-
-*
-*   Pipe Buffer Data Structure
-*
-               section   _constant
-PP.PD:         RMB       2                   ;Pointer to shared path descriptor
-PP.Next:       RMB       2                   ;Pointer to next pipe buffer in system map
-PP.Prev:       RMB       2                   ;Pointer to previous pipe buffer in system map
-PP.Rsrv:       RMB       2                   ;Reserved
-PP.Data:       EQU       *                   ;Data buffer begins at this offset
-               endsect
-
-*
-*   Unique Path Descriptor Variables
-*
-               section   _constant
-               RMB       PD.FST
-*** PP.Read must have bit 4 clear; PP.Writ must be PP.Read XOR 4
-PD.Read:       EQU       *
-PD.RPID:       RMB       1                   ;Process ID of reader waiting on signal
-PD.RCT:        RMB       1                   ;Number of blocked readers
-PD.RSIG:       RMB       1                   ;Signal to send reader
-PD.REOR:       RMB       1                   ;Read EOR character
-PD.Writ:       EQU       *
-PD.WPID:       RMB       1                   ;Process ID of writer waiting on signal
-PD.WCT:        RMB       1                   ;Number of blocked writers
-PD.WSIG:       RMB       1                   ;Signal to send writer
-PD.WEOR:       RMB       1                   ;Write EOR character (dummy)
-*** End of special section
-PD.End:        RMB       2                   ;Pointer to end of pipe buffer
-PD.NxtI:       RMB       2                   ;Next in pointer
-PD.NxtO:       RMB       2                   ;Next out pointer
-PD.RFlg:       RMB       1                   ;"Ready" flag
-PD.Wrtn:       RMB       1                   ;"Written" flag
-PD.BCnt:       RMB       2                   ;# queue elements currently bufered
-PD.Own:        RMB       1                   ;Process ID of pipe original creator
-PD.Keep:       RMB       1                   ;Non-zero if pipe has been kept open artificailly
-PD.QSiz:       RMB       2                   ;Max. elements in queue (copied from OPT section)
-               endsect
-
-*
-*   Path descriptor option section
-*
-*   Note that PD.Name overlaps with the last byte of PD.ECnt.
-*   PD.ECnt is copied to PD.QSiz as part of OPEN or CREATE,
-*   to make room for the pipe name.
-*
-               section   _constant
-               RMB       (PD.OPT+1)
-PD.ESiz:       RMB       1                   ;Size of each queue element
-PD.ECnt:       RMB       2                   ;Max. elements in queue (initial position)
-               IFGT      Level-1
-               RMB       *-(PD.OPT+3)
-PD.Name:       RMB       NameMax
-               ENDC      
-               endsect
-
-*
-*   Device Descriptor definitions
-*
-IT.PDC:        EQU       $12                 ;Pipe device class (like IT.DTP, IT.DVC)
-               section   _constant
-               RMB       IT.PDC
-               RMB       1                   ;Leave room for device class
-IT.ESiz:       RMB       1                   ;Size of each queue element
-IT.ECnt:       RMB       2                   ;Max. elements in queue (initial position)
-               endsect
-
--- a/lib/rbf.as	Tue Jan 29 01:08:53 2013 -0600
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,368 +0,0 @@
-********************************************************************
-* 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.
-
-               section   _constant
-               FCB       M$DTyp
-               FCB       1                   Device type (DT.RBF)
-IT.DRV:        FCB       1                   Drive number
-IT.STP:        FCB       1                   Step rate
-IT.TYP:        FCB       1                   Disk device type information
-IT.DNS:        FCB       1                   Density capability
-IT.CYL:        FCB       2                   Number of cylinders
-IT.SID:        FCB       1                   Number of surfaces
-IT.VFY:        FCB       1                   Verify disk writes (0 = verify, 1 = don't)
-IT.SCT:        FCB       2                   Default sectors/track
-IT.T0S:        FCB       2                   Default sectors/track for track 0 sector 0
-IT.ILV:        FCB       1                   Sector interleave offset
-IT.SAS:        FCB       1                   Segment allocation size
-* The following fields are from the OS-9 Level One V2.00.00 Addendum
-IT.TFM:        FCB       1                   DMA Transfer Mode
-IT.Exten:      FCB       2                   Path Extension (PE) for record locking
-IT.SToff:      FCB       1                   Sector/Track offsets (for "foreign" disk formats)
-* The following fields are not copied to the path descriptor
-IT.WPC:        FCB       1                   Write precomp cyl/4 (HD)
-IT.OFS:        FCB       2                   Starting cylinder offset (HD)
-IT.RWC:        FCB       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
-               endsect
-
-* 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.
-*
-               section   _constant
-               RMB       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
-               RMB       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
-               endsect
-
-* 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.
-*
-               section   _constant
-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
-               endsect
-
-* 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.
-*
-               section   _constant
-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
-               endsect
-
-* 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.
-*
-               section   _constant
-FD.ATT:        FCB       1                   Attributes
-FD.OWN:        FCB       2                   Owner
-FD.DAT:        FCB       5                   Date last modified
-FD.LNK:        FCB       1                   Link count
-FD.SIZ:        FCB       4                   File size
-FD.Creat:      FCB       3                   File creation date (YY/MM/DD)
-FD.SEG:        EQU       *                   Beginning of segment list
-               endsect
-
-* Segment List Entry Format
-               section   _constant
-FDSL.A:        FCB       3                   Segment beginning physical sector number
-FDSL.B:        FCB       2                   Segment size
-               endsect
-               
-FDSL.S:        EQU       FD.SEG              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.
-*
-               section   _constant
-DIR.NM:        RMB       29                  File name
-DIR.FD:        RMB       3                   File descriptor physical sector number
-DIR.SZ:        EQU       *                   Directory record size
-               endsect
-
-
-               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.
-*
-               section   _constant
-               RMB       V.USER              Reserve required           ($06)
-V.NDRV:        RMB       1                   Number of drives           ($07)
-               RMB       8                   reserved                   ($08)
-DRVBEG:        EQU       *                   Beginning of drive tables  ($10)
-               endsect
-
-               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.
-*
-               section   _constant
-               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       *
-               endsect
-
--- a/lib/scf.as	Tue Jan 29 01:08:53 2013 -0600
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,246 +0,0 @@
-********************************************************************
-* 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.
-
-               section   _constant
-               RMB       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.XOF:        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
-*                RMB       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      
-               endsect
-
-               PAG       
-********************
-* SCF Static Storage
-*
-* SCF devices must reserve this space for SCF
-*
-               section   _constant
-               RMB       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
-               endsect
-
-               PAG       
-***********************
-* Character Definitions
-*
-               section   _constant
-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       ',
-               endsect
-
-               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.
-*
-               section   _constant
-               RMB       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
-               endsect
-
-               section   _constant
-               RMB       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
-               endsect 
-
--- a/lib/sys6309l2.as	Tue Jan 29 01:08:53 2013 -0600
+++ b/lib/sys6309l2.as	Fri Feb 01 19:47:39 2013 -0600
@@ -1,9 +1,13 @@
-DRAGON         equ       0
+               section   _constant
+
 Level          equ       2
 H6309          equ       1
 
-               use       os9.as
-               use       rbf.as
-               use       scf.as
-               use       pipe.as
-               use       systype.as
+               use       ../defs/os9.d
+               use       ../defs/rbf.d
+               use       ../defs/scf.d
+               use       ../defs/pipe.d
+               use       ../defs/rbsuper.d
+               use       ../defs/drivewire.d
+
+               endsect
--- a/lib/sys6809l1.as	Tue Jan 29 01:08:53 2013 -0600
+++ b/lib/sys6809l1.as	Fri Feb 01 19:47:39 2013 -0600
@@ -1,9 +1,13 @@
-DRAGON         equ       0
+               section  _constant
+
 Level          equ       1
 H6309          equ       0
 
-               use       os9.as
-               use       rbf.as
-               use       scf.as
-               use       pipe.as
-               use       systype.as
+               use       ../defs/os9.d
+               use       ../defs/rbf.d
+               use       ../defs/scf.d
+               use       ../defs/pipe.d
+               use       ../defs/rbsuper.d
+               use       ../defs/drivewire.d
+
+               endsect
--- a/lib/sys6809l2.as	Tue Jan 29 01:08:53 2013 -0600
+++ b/lib/sys6809l2.as	Fri Feb 01 19:47:39 2013 -0600
@@ -1,9 +1,13 @@
-DRAGON         equ       0
+               section   _constant
+
 Level          equ       2
 H6309          equ       0
 
-               use       os9.as
-               use       rbf.as
-               use       scf.as
-               use       pipe.as
-               use       systype.as
+               use       ../defs/os9.d
+               use       ../defs/rbf.d
+               use       ../defs/scf.d
+               use       ../defs/pipe.d
+               use       ../defs/rbsuper.d
+               use       ../defs/drivewire.d
+
+               endsect
--- a/lib/systype.as	Tue Jan 29 01:08:53 2013 -0600
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,201 +0,0 @@
-********************************************************************
-* 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
-*
-               section   _constant
-ACIA6850:      RMB       1                   MC6850 acia.
-ACIA6551:      RMB       1                   SY6551 acia.
-ACIA2661:      RMB       1                   SC2661 acia.
-ACIATYPE:      SET       ACIA6551
-               endsect
-
-
-****************************************
-* 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      
-