changeset 3119:b230a123db20

mc09: Remove mc09vtio.d and all the things that referenced it It was a copy of the coco version and I thought previously that I would need to port it to mc09, but now I have concluded that will not be necessary.
author Neal Crook <foofoobedoo@gmail.com>
date Fri, 04 Dec 2015 23:43:13 +0000
parents ef66bdab9b45
children aa8ba93eff2d
files defs/mc09vtio.d level1/mc09/defs/makefile lib/mc09.as
diffstat 3 files changed, 1 insertions(+), 911 deletions(-) [+]
line wrap: on
line diff
--- a/defs/mc09vtio.d	Tue Dec 01 19:56:20 2015 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,906 +0,0 @@
-               IFNE      COCOVTIO.D-1
-COCOVTIO.D     SET       1
-
-               IFEQ      Level-1
-
-********************************************************************
-* VTIODefs - Video Terminal I/O Definitions for CoCo 1/2
-*
-* $Id$
-*
-* Edt/Rev  YYYY/MM/DD  Modified by
-* Comment
-* ------------------------------------------------------------------
-*          2004/11/29  P.Harvey-Smith.
-* Added symbolic defines for bits in V.CoLoad.
-*
-*          2004/12/02  P.Harvey-Smith.
-* Moved over all variables from co51.asm
-*
-*          2005/04/09  P.Harvey-Smith.
-* Decoded rest of the CoHR memory locations.
-*
-*	       2005/04/24  P.Harvey-Smith.
-* Added variables for cursor flash, currently only implemented in co51
-*
-               NAM       VTIODefs  
-               TTL       Video Terminal I/O Definitions for CoCo 1/2
-
-********************
-* VTIO Static Memory
-*
-               ORG       V.SCF
-V.ScrnA        RMB       2                   (2) screen start address in system memory
-V.ScrnE        RMB       2                   (2) address of end of screen
-V.CrsrA        RMB       1                   (2) cursor address
-V.CrsAL        RMB       1                   cursor address low
-V.CChar        RMB       1                   value of character under cursor
-V.Mode         RMB       1                   mode: 0=256x192 x2, 1=128x192 x4
-V.NGChr        RMB       1                   number of additional characters to get
-V.RTAdd        RMB       2                   (2) return address after getting characters
-V.NChar        RMB       1                   character to process
-V.NChr2        RMB       1                   and the next one
-               RMB       1
-V.Chr1         RMB       1                   same as under cursor character
-V.CColr        RMB       1                   cursor color
-V.Col          RMB       1                   number of columns for this screen
-V.Row          RMB       1                   number of rows
-V.Alpha        RMB       1                   0 when in alpha mode
-V.PIA1         RMB       1                   PIA1Base value
-V.Rdy          RMB       1                   device ready (see SS.DStat 0=not ready)
-V.CFlg1        RMB       1                   VDG display code values
-V.SBAdd        RMB       2                   (2) address of block screen is in
-V.GBuff        RMB       2                   allocation for graphics buffers (block#)
-V.AGBuf        RMB       4                   (2) additional graphics buffer
-V.FFMem        RMB       2                   Flood fill alloc'ed mem
-V.FFSPt        RMB       2                   Flood fill current stack pointer
-V.FFSTp        RMB       1                   Flood fill stack top
-V.FF6          RMB       1                   flood fill flag
-V.FFFlag       RMB       1                   ??
-V.MTabl        RMB       2                   (2) address of mask table for pixels in byte
-V.PixBt        RMB       1                   bit mask for modes (0=$07, 1=$03 )#pixels/byte
-V.GCrsX        RMB       1                   graphics cursor X value
-V.GCrsY        RMB       1                   graphics cursor Y
-V.Msk1         RMB       1                   mask byte 1
-V.Msk2         RMB       1                   mask byte 2 (00,55,AA,FF)
-V.MCol         RMB       1                   color? (C003,8001)
-V.4A           RMB       1
-V.PMask        RMB       1                   pixel mask for colors (i.e. $55, $CC etc)
-V.4C           RMB       1
-V.4D           RMB       1
-V.4E           RMB       1
-V.4F           RMB       1
-V.Caps         RMB       1                   caps lock info: $00=lower $FF=upper
-V.ClkCnt       RMB       1                   clock count ??
-V.WrChr        RMB       1                   character to write
-V.CurCo        RMB       1                   current CO-module in use
-* start of CoWP-specific static memory
-V.Co80X        RMB       1                   V.54
-V.Co80Y        RMB       1                   V.55
-V.ColPtr       RMB       1                   V.56
-V.RowPtr       RMB       1                   V.57
-V.C80X         RMB       1                   CoWP X position
-V.C80Y         RMB       1                   CoWP Y position
-V.Invers       RMB       1
-* end of CoWP-specific static memory
-V.DspVct       RMB       2                   vector to display screen
-V.CnvVct       RMB       2                   vector to X/Y to address conversion
-V.LKeyCd       RMB       1                   last key code
-V.2Key1        RMB       1                   2nd Key 1
-V.2Key2        RMB       1                   2nd Key 2
-V.2Key3        RMB       1                   2nd Key 3
-V.Key1         RMB       1                   Key 1
-V.Key2         RMB       1                   Key 2
-V.Key3         RMB       1                   Key 3
-V.ShftDn       RMB       1                   SHIFT/CTRL state
-V.CtrlDn       RMB       1                   CTRL key down
-V.KeyFlg       RMB       1                   key flag
-V.AltDwn       RMB       1                   ALT key down
-V.KySns        RMB       1                   key sense flags
-V.KySame       RMB       1                   key same as last flag
-V.KySnsF       RMB       1                   key sense flag
-V.Spcl         RMB       1
-V.KTblLC       RMB       1                   key table entry #
-V.6F           RMB       1                   ???
-V.COLoad       RMB       1                   CO-module loaded flags
-V.CFlag        RMB       1                   true lowercase flag $10=true, $00=false
-V.GrfDrvE      RMB       2                   GrfDrv entry point
-V.CoVDGE       RMB       2                   CoVDG entry point
-V.CoWPE        RMB       2                   CoWP entry point
-V.CoHRE        RMB       2                   CoHR entry point
-
-V.Flash        RMB       2                   Cursor flash routine address.
-v.FlashCount   RMB       1                   Cursor flash count
-V.NoFlash      RMB       1                   When this is non-zero do not flash cursor
-
-* CoHR vars
-
-V.51ScrnA      RMB       2                   * Screen address.
-V.51XPos       RMB       1                   * X co-ordinate
-V.51YPos       RMB       1                   * Y co-ordinate
-V.51EscSeq     RMB       1                   * In escape sequence
-V.51ReverseFlag RMB       1                   * Reverse video flag
-V.51UnderlineFlag RMB       1                   * Underline flag
-V.51CtrlDispatch RMB       2                   * Ctrl char dispatch address, currently processing
-V.51BytePixOffset RMB       1                   * byte offset in screen line, of character X position        
-V.51OldCursorPosX RMB       1                   * Position of old cursor before update        
-V.51OldCursorPosY RMB       1
-V.51CursorChanged RMB       1                   * Has cursor position changed ? 1=yes,0=no
-V.51CursorOn   RMB       1                   * Is cursor on ? 1=yes 0=no		         
-V.51XORFlag    RMB       1                   * and data to screen (0) or Xor (1)  		       
-V.51ScreenMask1 RMB       1                   * screen masks for drawing characters on screen         
-V.51ScreenMask2 RMB       1
-* End of CoHR vars
-**** Note these have to come at the end of the defs, or the keyboard ****
-**** code can clobber variables defined after these !                ****
-V.IBufH        RMB       1                   input buffer head
-V.IBufT        RMB       1                   input buffer tail
-V.InBuf        RMB       1                   input buffer ptr
-V.51End        RMB       1
-               RMB       250-.
-V.Last         EQU       .
-
-
-* Unknown for now
-*VD.FFMem rmb   2  (2) bottom of stack for flood fill
-*VD.FFSPt rmb   2  (2) flood fill stack pointer
-*VD.FFSTp rmb   2  (2) flood fill stack top pointer
-*VD.FF6   rmb   1   flood fill flag
-*VD.MCol2 rmb   1  color
-*VD.FF1   rmb   1  data for flood fill
-*VD.FF2   rmb   1  data for flood fill
-*VD.FFMsk rmb   1  flood fill mask
-*VD.FFFlg rmb   1  flood fill flag
-*VD.Palet rmb   16 (16) current palette values
-*VD.PlFlg rmb   1  initialized to $08 by L00DB, and then unused!
-
-*
-* Defs for V.COLoad flags.
-* 
-
-ModCoVDG       EQU       %00000010           CoVDG, Built-in VDG 32x16.
-ModCoWP        EQU       %00000100           CoWP, WordPak, 80x25
-ModCoHR        EQU       %00001000           CoHR, PMODE 4 51x25 text
-
-*
-* Defs for cursor flash counter
-*
-
-CFlash50hz     EQU       25                  * 50Hz flash counter
-CFlash60Hz     EQU       30                  * 60Hz flash counter
-
-               ELSE
-               
-********************************************************************
-* VTIODefs - Video Terminal I/O Definitions for CoCo 3
-*
-* $Id$
-*
-* Edt/Rev  YYYY/MM/DD  Modified by
-* Comment
-* ------------------------------------------------------------------
-*          2004/07/18  Boisy G. Pitre
-* Started from systype
-
-               NAM       VTIODefs
-               TTL       Video Terminal I/O Definitions for CoCo 3
-
-****************
-* Window Devices
-*
-               ORG       $FF9F
-A.W            RMB       1                   $FF9F Generic Window Descriptor
-A.TermW        RMB       1                   $FFA0 Windowing Term
-A.W1           RMB       1                   $FFA1
-A.W2           RMB       1                   $FFA2
-A.W3           RMB       1                   $FFA3
-A.W4           RMB       1                   $FFA4
-A.W5           RMB       1                   $FFA5
-A.W6           RMB       1                   $FFA6
-A.W7           RMB       1                   $FFA7
-A.W8           RMB       1                   $FFA8
-A.W9           RMB       1                   $FFA9
-A.W10          RMB       1                   $FFAA
-A.W11          RMB       1                   $FFAB
-A.W12          RMB       1                   $FFAC
-A.W13          RMB       1                   $FFAD
-A.W14          RMB       1                   $FFAE
-A.W15          RMB       1                   $FFAF
-
-**********************************
-* Pointer Device Packet Definition
-*
-               ORG       0
-Pt.Valid       RMB       1                   Is returned info valid (0=no/1=yes)
-Pt.Actv        RMB       1                   Active Side 0=off/1=Right/2=left
-Pt.ToTm        RMB       1                   Time out Initial value
-               RMB       2                   reserved
-Pt.TTTo        RMB       1                   Time Till Timeout
-Pt.TSSt        RMB       2                   Time Since Start Counter
-Pt.CBSA        RMB       1                   Current Button State Button A
-Pt.CBSB        RMB       1                   Current Button State Button B
-Pt.CCtA        RMB       1                   Click Count Button A
-Pt.CCtB        RMB       1                   Click Count Button B
-Pt.TTSA        RMB       1                   Time This State Counter Button A
-Pt.TTSB        RMB       1                   Time This State Counter Button B
-Pt.TLSA        RMB       1                   Time Last State Counter Button A
-Pt.TLSB        RMB       1                   Time Last State Counter Button B
-               RMB       2                   Reserved
-Pt.BDX         RMB       2                   Button down X value EXPERIMENTAL
-Pt.BDY         RMB       2                   Button down Y value
-Pt.Stat        RMB       1                   Window Pointer type location
-Pt.Res         RMB       1                   Resolution (0..640 by: 0=ten/1=one)
-Pt.AcX         RMB       2                   Actual X Value
-Pt.AcY         RMB       2                   Actual Y Value
-Pt.WRX         RMB       2                   Window Relative X
-Pt.WRY         RMB       2                   Window Relative Y
-Pt.Siz         EQU       .                   Packet Size 32 bytes
-
-**************************
-* window regions for mouse
-*
-WR.Cntnt       EQU       0                   content region
-WR.Cntrl       EQU       1                   control region
-WR.OfWin       EQU       2                   off window
-
-*************************************
-* Standard system get/put buffer defs
-*
-*
-* system group numbers
-*
-               ORG       200
-Grp.Fnt        RMB       1                   font group
-Grp.Clip       RMB       1                   clipboard group
-Grp.Ptr        RMB       1                   pointer group
-Grp.Pat2       RMB       1                   pattern group 2 color
-Grp.Pat4       RMB       1                   pattern group 4 color
-Grp.Pat6       RMB       1                   pattern group 16 color
-*
-* font buffer numbers
-*
-               ORG       1
-Fnt.S8x8       RMB       1                   standard 8x8 font
-Fnt.S6x8       RMB       1                   standard 6x8 font
-Fnt.G8x8       RMB       1                   standard graphics 8x8 font
-*
-* pattern buffer numbers
-*
-               ORG       1
-Pat.Dot        RMB       1
-Pat.Vrt        RMB       1
-Pat.Hrz        RMB       1
-Pat.XHtc       RMB       1
-Pat.LSnt       RMB       1
-Pat.RSnt       RMB       1
-Pat.SDot       RMB       1
-Pat.BDot       RMB       1
-*
-* pointer buffer numbers
-*
-               ORG       1
-Ptr.Arr        RMB       1                   Arrow pointer
-Ptr.Pen        RMB       1                   Pencil pointer
-Ptr.LCH        RMB       1                   Large cross hair pointer
-Ptr.Slp        RMB       1                   Wait timer pointer
-Ptr.Ill        RMB       1                   Illegal action pointer
-Ptr.Txt        RMB       1                   Text pointer
-Ptr.SCH        RMB       1                   Small cross hair pointer
-
-**********************
-* KeyDrv Entry Points
-               ORG       0
-K$Init         RMB       3                   joystick initialization
-K$Term         RMB       3                   joystick termination
-K$FnKey        RMB       3                   get function key states
-K$RdKey        RMB       3                   get key states
-
-**********************
-* JoyDrv Entry Points
-               ORG       0
-J$Init         RMB       3                   joystick initialization
-J$Term         RMB       3                   joystick termination
-J$MsBtn        RMB       3                   get mouse button states
-J$MsXY         RMB       3                   get mouse X/Y coordinates
-J$JyBtn        RMB       3                   get joystick button states
-J$JyXY         RMB       3                   get joystick X/Y coordinates
-
-**********************
-* SndDrv Entry Points
-               ORG       0
-S$Init         RMB       3                   joystick initialization
-S$GetStt       RMB       3                   joystick termination
-S$SetStt       RMB       3                   joystick termination
-S$Term         RMB       3                   get joystick X/Y coordinates
-
-********************************
-* Window/Menu Bar Data Structure
-*
-* To be used in SS.WnSet SETSTAT to set up a Framed Window
-* for use in the high level windowing package.
-*
-NUMMENS        EQU       10                  maximum number of menus on menu bar
-NUMITMS        EQU       20                  maximum number of items in a menu
-MXTTLEN        EQU       15                  max chars for menu and item names
-WINSYNC        EQU       $C0C0               synch bytes for window validation
-*
-* Menu Item Descriptor : (MN.ITEMS)
-* one required for each item within the menu
-*
-               ORG       0
-MI.TTL         RMB       MXTTLEN             item name
-MI.ENBL        RMB       1                   enable flag
-MI.RES         RMB       5                   reserved bytes
-MI.SIZ         EQU       .                   size of menu item descriptor
-*
-* Menu Descriptor :
-* one for each menu on the manu bar
-* each is pointed to by MB.MPTR below
-*
-               ORG       0
-MN.TTL         RMB       MXTTLEN             menu title
-MN.ID          RMB       1                   menu id number (1-255)
-MN.XSIZ        RMB       1                   horiz. size of desired pull down
-MN.NITS        RMB       1                   number of items in menu
-MN.ENBL        RMB       1                   enable flag
-MN.RES         RMB       2                   reserved bytes
-MN.ITEMS       RMB       2                   pointer to array of menu items
-MN.SIZ         EQU       .                   size of menu descriptor
-*
-* Window Descriptor:
-* one required for each application in a framed window
-*
-               ORG       0
-WN.TTL         RMB       20                  title of window for title bar
-WN.NMNS        RMB       1                   number of menus in menu bar
-WN.XMIN        RMB       1                   minimal horiz. size for application to run
-WN.YMIN        RMB       1                   minimal vert. size for application to run
-WN.SYNC        RMB       2                   synch bytes ($C0C0)
-WN.RES         RMB       7                   reserved bytes
-WN.BAR         RMB       2                   pointer to arry of menu descriptors
-WN.SIZ         EQU       .                   size of window/menu bar descriptor
-
-*************************
-* Window Type Definitions
-*
-* To be used in setting up the border of the window in
-* the SS.WnSel SETSTAT
-*
-               ORG       0
-WT.NBox        RMB       1                   No Box
-WT.FWin        RMB       1                   Framed Window
-WT.FSWin       RMB       1                   Framed Window w/Scroll Bars
-WT.SBox        RMB       1                   Shadowed Box
-WT.DBox        RMB       1                   Double Box
-WT.PBox        RMB       1                   Plain Box
-
-*************************************
-* Pre-Defined Menu IDs for the system
-*
-               ORG       1
-MId.Mov        RMB       1                   move box
-MId.Cls        RMB       1                   close box
-MId.Grw        RMB       1                   grow box
-MId.SUp        RMB       1                   scroll up
-MId.SDn        RMB       1                   scroll down
-MId.SRt        RMB       1                   scroll right
-MId.SLt        RMB       1                   scroll left
-MId.Chr        RMB       1                   character was depressed
-               ORG       20
-MId.Tdy        RMB       1                   Tandy menu
-MId.Fil        RMB       1                   Files Menu
-MId.Edt        RMB       1                   Edit Menu
-MId.Sty        RMB       1                   Styles menu
-MId.Fnt        RMB       1                   Font menu
-
-
-******************************************************************************
-******************************************************************************
-**                                                                          **
-** NitrOS-9 Windowing system Global data definitions                        **
-**                                                                          **
-******************************************************************************
-******************************************************************************
-**                                                                          **
-** System memory block 0 layout:                                            **
-**                                                                          **
-** $0000-$0001 : FHL/Isted WD 1002-05 - interface base address              **
-** $0002       : FHL/Isted WD 1002-05 - boot device physical drive #        **
-** $0008       : Bruce Isted Serial mouse - button counter & rx count       **
-** $0009-$000B : Bruce Isted Serial mouse - RX buffer                       **
-** $000C-$000D : Bruce Isted Serial mouse - Current X position              **
-** $000E-$000F : Bruce Isted Serial mouse - Current Y position              **
-** $0010-$001F : unused (User definable)                                    **
-** $0020-$00FF : system direct page & some IRQ vectors                      **
-** $0100-$011F : Task usage table                                           **
-** $0120-$01FF : Virtual DAT tasks (pointed to by <D.TskIPt)                **
-** $0200-$02FF : memory block usage map ($80=Not RAM,$01=in use,$02=module) **
-** $0300-$03FF : system's system call dispatch table                        **
-** $0400-$04FF : user's sysem call dispatch table                           **
-** $0500-$05FF : process descriptor pointer table                           **
-** $0600-$07FF : System task (Task 0, ID 1) process descriptor              **
-** $0800-$08FF : System's stack space (initial ptr is $0900)                **
-** $0900-$09FF : SMAP table ($01=in used, $80=NOT RAM)                      **
-** $0A00-$0FFF : module directory DAT Images (8 bytes each)                 **
-** $1000-$10FF : System Global memory (pointed to by D.CCMem)               **
-** $1100-$11FF : GRFDRV global memory (DP=$11 in GRFDRV)                    **
-** $1200-$1247 : shared buffer between Grf/WindInt & GRFDRV (GP buffers)    **
-** $1248-$127F : ????                                                       **
-** $1280-$1A7F : the window tables (32 of $40 bytes each)                   **
-** $1A80-$1C7F : the screen tables (16 of $20 bytes each)                   **
-** $1C80-$2000 : the CC3 global mem stack (for windowing)                   **
-**                                                                          **
-******************************************************************************
-******************************************************************************
-
-* User settable values for VTIO/TC9IO/GrfInt/WindInt & GrfDrv
-MaxLines       EQU       25                  Max. Y coord text value
-Meg            SET       false               "true" if 1 or 2 meg machine
-
-COMP           EQU       0                   composite monitor
-RGB            EQU       1                   RGB Analog monitor 
-MONO           EQU       2                   monochrome monitor
-
-Monitor        SET       RGB
-
-* Global definitions
-KeyMse         EQU       %00000001           keyboard mouse enabled
-NumLck         EQU       %00000010           Numlock enabled (TC-9 use only)
-CapsLck        EQU       %00000100           Capslock enabled
-MaxRows        EQU       640                 maximum X co-ordinate allowed on mouse
-               IFEQ      MaxLines-25
-MaxLine        EQU       198                 maximum Y co-ordinate allowed on mouse
-               ELSE      
-MaxLine        EQU       191                 maximum Y co-ordinate allowed on mouse
-               ENDC      
-
-*****************************************************************************
-* Static memory area for each window (VTIO/TC9IO)
-* Should set up a write buffer (using parm area?) between SCF, VTIO & Grfdrv
-* so we can 'burst mode' text output (copy up to 48 chars to Grfdrv's parm
-* area, and have grfdrv loop through & write all 48 chars to screen in 1 loop
-* May have to have smaller limit for text to gfx screens, as it will run much
-* slower, unless GrfDrv is made Partially/Fully Re-Entrant
-*
-* STRONG CAUTION:  scfdefs MUST be included first before this file if
-* V.SCF is to be resolved properly in pass 1!!
-               ORG       V.SCF
-V.WinType      RMB       1                   window type (0=Windint/GrfInt,2=VDGInt)      $1D
-V.InfVld       RMB       1                   Rest of info here valid? (0=NO, >0 = YES)    $1E
-V.DevPar       RMB       2                   high bit=window device                       $1F
-V.ULCase       RMB       1                   special key flags (Capslck & keyboard mouse) $21
-V.KySnsFlg     RMB       1                   flag for key sense setstat                   $22
-V.ScrChg       RMB       1                   screen change flag                           $23
-V.SSigID       RMB       1                   data ready process ID                        $24
-V.SSigSg       RMB       1                   data ready signal code                       $25
-V.MSigID       RMB       1                   mouse signal process ID                      $26
-V.MSigSg       RMB       1                   mouse signal signal code                     $27
-V.MSmpl        RMB       1                   mouse sample rate                            $28
-V.MTime        RMB       1                   mouse timeout value                          $29
-               RMB       1                   unused                                       $2A
-V.MAutoF       RMB       1                   auto follow mouse flag                       $2B
-V.ParmCnt      RMB       1                   parameter count                              $2C
-V.ParmVct      RMB       2                   parameter vector                             $2D
-V.PrmStrt      RMB       2                   pointer to params start                      $2F
-V.NxtPrm       RMB       2                   pointer to next param storage                $31
-V.EndPtr       RMB       1                   last character read offset                   $33
-V.InpPtr       RMB       1                   next character read offset                   $34
-V.WinNum       RMB       1                   window table entry #                         $35
-V.DWNum        RMB       1                   dwnum from descriptor                        $36
-V.CallCde      RMB       1                   internal comod call code #                   $37
-CC3Parm        RMB       128-.               global parameter area
-ReadBuf        RMB       256-.               read input buffer (keyboard)
-CC3DSiz        EQU       .
-
-*****************************************************************************
-* GrfInt/WindInt global memory area
-* This area sits in system block 0 from $1000 to $10ff
-WGlobal        EQU       $1000               useful value (points to address starting below)
-               ORG       0
-G.CurTik       RMB       1                   Constant - # Clock ticks/cursor updates (2)
-G.CntTik       RMB       1                   Current tick count for cursor updates
-G.GfBusy       RMB       1                   Grfdrv is busy flag (1=busy)
-G.OrgAlt       RMB       2                   Place to store D.AltIRQ before altering
-*g0003    rmb   2          NEW: UNUSED
-g0005          RMB       2                   Temp save in Windint RG
-G.GrfStk       RMB       2                   grfdrv stack pointer ($07)
-G.MonTyp       RMB       1                   monitor type
-g000A          EQU       .                   Old label for compatibility
-G.CrDvFl       RMB       1  Are we current device flag (only set when all
-*                           Parms have been moved to Dev Mem)
-*                           0=We are not on our device
-*                           1=We are the current device
-*                           (Used by comod (GRF/WIND/VDGInt) to determine
-*                           whether or not to update GIME regs themselves
-*                           If not current device, they don't.)
-G.WinType      RMB       1                   current device's V.TYPE
-G.CurDvM       RMB       2                   current device memory pointer for co-module use
-G.WIBusy       RMB       1                   WindInt is busy flag (1=busy)
-G.AlPckt       RMB       6                   F$Alarm time packet
-G.AlPID        RMB       1                   F$Alarm proc ID ($15)
-G.AlSig        RMB       1                   F$Alarm signal code ($16)
-G.BelVec       RMB       2                   BELL routine vector
-G.DefPal       RMB       2                   pointer to default palette data in global mem
-G.TnCnt        RMB       1                   SS.Tone duration counter
-G.BelTnF       RMB       1                   BELL tone flag
-g001D          RMB       3
-G.CurDev       RMB       2                   current device's static memory pointer ($20)
-G.PrWMPt       RMB       2                   previous window static mem pointer $(22)
-G.BCFFlg       RMB       1                   bit coded co-module found flags ($24)
-*                           00000010 : VDGInt found
-*                           10000000 : GrfDrv found
-g0025          RMB       1
-G.KTblLC       RMB       1                   Key table entry# last checked (1-3)
-*         IFEQ  TC9-true
-*CurLght  rmb   1          current keyboard light settings
-*         ELSE  
-G.LastCh       RMB       1                   last keyboard character (ASCII value)
-*         ENDC  
-G.LKeyCd       RMB       1                   last keyboard code
-G.KyRept       RMB       1                   key repeat counter
-* A secondary 3 key table (same format as g002D below)
-G.2Key1        RMB       1                   $2A
-G.2Key2        RMB       1                   $2B
-G.2Key3        RMB       1
-* Up to 3 keys can be registerd at once, and they are stored here. If more
-* than 3 are hit, the last key is overwritten with the very last key down that
-* was checked. Format for all three is the same as the PIA column/row byte @
-* KeyFlag below.
-G.Key1         RMB       1                   Key 1 being held down (Row/Column #)
-G.Key2         RMB       1                   Key 2 being held down (Row/Column #)
-G.Key3         RMB       1                   Key 3 being held down (Row/Column #)
-G.ShftDn       RMB       1                   SHIFT key down flag (COM'd) ($30)
-G.CntlDn       RMB       1                   CTRL key down flag (0=NO)
-G.KeyFlg       RMB       1                   Keyboard PIA bit #'s for columns/rows
-*                           %00000111-Column # (Output, 0-7)
-*                           %00111000-Row # (Input, 0-6)
-G.AltDwn       RMB       1                   ALT key down flag (0=NO)
-G.KySns        RMB       1                   key sense byte
-G.KySame       RMB       1                   same key flag
-G.CapLok       RMB       1                   CapsLock/SysRq key down flag
-               RMB       1
-g0038          RMB       1                   grfdrv initialized flag
-               RMB       2
-G.MSmpRt       RMB       1                   Current mouse sample # (# ticks till next read)
-G.Mouse        RMB       Pt.Siz              mouse packet ($3C)
-g005C          RMB       2                   Temp for relative mouse X coord calculation
-g005E          RMB       2                   Temp for relative mouse Y coord calculation
-G.MSmpRV       RMB       1                   Mouse sample reset value (# ticks till next read)
-G.KyDly        RMB       1                   initial key repeat delay constant ($61)
-G.KySpd        RMB       1                   secondary key repeat delay constant
-*         IFEQ  TC9-true
-*KeyParm  rmb   1          keyboard command parameter byte
-*         ELSE  
-G.KyMse        RMB       1                   keyboard mouse flag ($63)
-*         ENDC  
-G.Clear        RMB       1                   "one-shot" CapsLock/SysRq key flag ($64)
-G.KyButt       RMB       1                   keyboard F1 and F2 "fire" button info ($65)
-G.AutoMs       RMB       1                   Auto-follow mouse flag for current device (0=NO)
-G.MseMv        RMB       1                   mouse moved flag ($67)
-G.CoTble       RMB       6                   co-module table ($68)
-G.GrfEnt       RMB       2                   GRFDRV Entry address ($6E)
-g0070          RMB       1                   # bytes to move in 1 block (1-72)
-G.WUseTb       RMB       4                   windows in use bit table (0=unused, 32 windows) ($71)
-G.GfxTbl       RMB       2                   Pointer to GFX tables ($75)
-G.WrkWTb       RMB       $40                 Work window table. WindInt only ($77)
-g00B7          RMB       2                   Current Device static mem ptr for WindInt
-g00B9          RMB       2                   Current window table ptr for WindInt
-g00BB          RMB       2                   Pointer to work window table (g0077+$10)
-g00BD          RMB       1                   Current screen type for work window table
-g00BE          RMB       1                   Topmost overlay window # when check for title bars
-g00BF          RMB       1                   Flag for keypress while processing menu select
-g00C0          RMB       2                   Ptr to current path descriptor
-G.WindBk       RMB       2                   shift-clear routine vector
-G.MsInit       RMB       2                   set mouse routine vector
-G.MsSig        RMB       1                   mouse signal flag
-G.DefPls       RMB       16                  Default palettes (2 repeats of 8 is default) ($C7)
-g00D7          RMB       9
-G.KeyEnt       RMB       2                   entry to keydrv subroutine module ($E0)
-G.KeyMem       RMB       8                   static memory for keydrv subroutine module
-G.JoyEnt       RMB       2                   entry to joydrv subroutine module ($EA)
-G.JoyMem       RMB       8                   static memory for joydrv subroutine module
-G.SndEnt       RMB       2                   entry to snddrv subroutine module ($F4)
-G.SndMem       RMB       8                   static memory for snddrv subroutine module
-
-*****************************************************************************
-* GrfDrv global memory data definitions
-* This area sits in system block 0 from $1100 to $119E
-GrfMem         EQU       $1100               useful label used to point to mem starting below
-               ORG       0
-gr0000         RMB       1                   Pixel mask for 1st byte of GP line
-gr0001         RMB       1                   Pixel mask for last byte of a GP line
-gr0002         RMB       2                   Ptr to table of bit masks for colors
-gr0004         RMB       1                   # of bytes wide GP buffer is (including partials)
-gr0005         RMB       1                   # pixels per byte in GP Buffer
-gr0006         RMB       1                   # of pixels used in 1st byte of GP buffer line
-gr0007         RMB       1                   # of pixels used in last byte of GP buffer line
-gr0008         RMB       1                   Bit mask that is common to both screen & GP buffer
-gr0009         RMB       1                   # bytes for width of overlay window
-gr000A         RMB       1                   # bytes to offset to get to next line after
-*                             overlay width has been copied
-gr000B         RMB       1
-gr000C         RMB       2                   Cursor address for proportional spacing?
-gr000E         RMB       1
-gr000F         RMB       1                   Left-based bit mask for proportional spacing?
-gr0010         RMB       2                   Vector for text to gfx screen (either prop. or normal)
-gr0012         RMB       6
-gr0018         RMB       2                   Working Center X coord for Circle/Ellipse
-gr001A         RMB       2                   Working Center Y coord for Circle/Ellipse
-gr001C         RMB       2                   Some variable for Circle/Ellipse (initially 0)
-gr001E         RMB       2                   Working Y radius value for Circle/Ellipse
-gr0020         RMB       2                   Arc 'clip line' X01
-gr0022         RMB       2                   Arc 'clip line' Y01
-gr0024         RMB       2                   Arc 'clip line' X02
-gr0026         RMB       2                   Arc 'clip line' Y02
-gr0028         RMB       1                   full-byte background color to FFILL on mask
-gr0029         RMB       1                   pixels per byte: set up by FFILL
-gr002A         RMB       1                   Flag for FFill: 1=no error, 0=Stack overflow error
-gr002B         RMB       1                   current Y-direction to travel in FFILL
-gr002C         RMB       2
-gr002E         RMB       2                   current window table entry
-gr0030         RMB       2                   current screen table ptr
-gr0032         RMB       1                   Last block # we used for buffers
-gr0033         RMB       2                   Last offset we used for buffers
-gr0035         RMB       1                   group
-gr0036         RMB       2                   offset
-gr0038         RMB       1                   group returned (new)
-gr0039         RMB       1                   0=Text cursor inverted off, >0 is inverted on
-gr003A         RMB       1                   0=Graphics cursor XOR'd off,>0 is XOR'd on scrn
-gr003B         RMB       2                   end of vars ptr?
-gr003D         RMB       2                   Last X coordinate Graphics cursor was ON at
-gr003F         RMB       2                   Last Y coordinate Graphics cursor was ON at
-gr0041         RMB       2                   Screen address for start of current gfx cursor
-gr0043         RMB       1                   Pixel mask for start of gfx cursor
-gr0044         RMB       1                   Block # Graphics cursor is in
-gr0045         RMB       2                   Offset in block Graphics cursor is in
-gr0047         RMB       2                   'Working' X coordinate
-gr0049         RMB       2                   'Working' Y coordinate
-gr004B         RMB       2                   current X
-gr004D         RMB       2                   current Y
-gr004F         RMB       2                   X Size (in bytes)
-gr0051         RMB       2                   Y Size (in bytes)
-gr0053         RMB       2                   Horizontal radius (circle/ellipse/arc)
-gr0055         RMB       2                   Vertical radius (circle/ellipse/arc)
-gr0057         RMB       1                   group
-gr0058         RMB       1                   buffer #
-gr0059         RMB       1                   save switch for overlay
-gr005A         RMB       1                   PRN
-gr005B         RMB       2                   X coordinate of Graphics cursor
-gr005D         RMB       2                   Y coordinate of Graphics cursor
-gr005F         RMB       1                   ATD: new video mode for 24/25/28-line windows
-Gr.STYMk       RMB       1                   STY marker
-gr0061         RMB       1                   foreground RGB data
-gr0062         RMB       1                   background RGB data
-gr0063         RMB       1                   bytes/row (on current screen...not window)
-gr0064         RMB       2                   PSet vector
-gr0066         RMB       2                   pset offset
-gr0068         RMB       2                   LSet vector
-gr006A         RMB       2                   max X co-ordinate
-gr006C         RMB       2                   max Y co-ordinate
-gr006E         RMB       2                   X pixel count
-gr0070         RMB       2                   Y pixel count
-gr0072         RMB       2                   Screen address of pixel we are doing
-gr0074         RMB       1                   Pixel mask for pixel we are doing
-gr0075         RMB       2                   ??? Pixel mask for last byte of GP buffer?
-gr0077         RMB       2                   Vector for right direction FFill
-gr0079         RMB       1                   bit mask for 1st pixel in byte for right dir. FFill
-gr007A         RMB       2                   Vector for left direction FFill
-gr007C         RMB       1                   bit mask for last pixel in byte for left dir. FFill
-gr007D         RMB       1                   buffer block #
-gr007E         RMB       2                   buffer offset #
-gr0080         RMB       2                   Buffer length (in bytes)
-gr0082         RMB       3                   3 byte extended screen address
-gr0085         RMB       2                   temp
-gr0087         RMB       16                  grfdrv (sysmap 1) DAT image
-gr0097         RMB       1                   temp
-gr0098         RMB       1                   temp
-* In ARC, 97-98 is the width of the clip line in pixels (after scaling)
-gr0099         RMB       2                   temp
-* In ARC, 99-9A is the height of the clip line in pixels (after scaling)
-gr009B         RMB       1                   counter temp
-gr009C         RMB       1
-gr009D         RMB       2                   offset to buffer in block
-gr009F         RMB       1
-gr00A0         RMB       1                   # lines left to do of GP buffer onto screen
-gr00A1         RMB       2                   vector routine for (changes lots)
-* In ARC A1-A2 is the vector to the proper clipping routine
-gr00A3         RMB       2                   Vector for shifting GP buffers
-gr00A5         RMB       2                   Vector for shifting GP buffers (can dupe A1)
-gr00A7         RMB       2
-gr00A9         RMB       2                   NEW: Window tbl ptr for last window GRFDRV used
-grBigFnt       RMB       2                   Flag for 224 char font/gfx mode on (0=No) V2.00a
-gr00AD         RMB       2                   FFill:orig. start X coord|Circ/Ell saved start X
-gr00AF         RMB       2                   FFill:orig. start Y coord|Circ/Ell saved end X
-gr00B1         RMB       1                   Flag in FFill: 1=1st time through, 0=not 1st time
-gr00B2         RMB       1                   Filled (circle,ellipse) flag 0=Not filled
-*gr00B3   rmb    256-.       ??? UNUSED
-gr00B3         RMB       1                   temp veriable grfdrv
-gr00B4         RMB       1                   temp veriable grfdrv
-gr00B5         RMB       1                   regW for grfdrv
-gr00B6         RMB       1
-gr00B7         RMB       2
-gr00B9         RMB       2                   previously used in grfdrv at $B2 but not for Filled Flag
-gr00BB         RMB       2                   previously used in grfdrv at $B4
-gr00BD         RMB       2                   previously used in grfdrv at $B6
-gr00BF         RMB       256-.
-* GPLoad buffer - $1200 in system block 0
-GPBuf          RMB       72                  common move buffer for gpload/get/put
-gb0000         EQU       72                  Size of get/put buffer ($48)
-
-*****************************************************************************
-* Window table entry structure
-* These tables sit in system block 0 and there is 1 for every window init'd
-* including any overlay windows.
-MaxWind        EQU       32                  maximum allowable window tables
-WinBase        EQU       $1290               base address to start of window tables
-               ORG       -$10
-Wt.STbl        RMB       2                   Screen table pointer ($FFFF=Not used)       -$10
-Wt.BLnk        RMB       1                   overlay window parent entry # ($FF=base)    -$0E
-Wt.LStrt       RMB       2                   screen logical start address                -$0D
-Wt.CPX         RMB       1                   current X coord. start                      -$0B
-Wt.CPY         RMB       1                   current Y coord. start                      -$0A
-Wt.SZX         RMB       1                   current X size (CWArea)                     -$09
-Wt.SZY         RMB       1                   current Y size (CWArea)                     -$08
-Wt.SXFct       RMB       1                   X scaling factor                            -$07
-Wt.SYFct       RMB       1                   Y scaling factor (0=no scaling)             -$06
-Wt.Cur         RMB       2                   cursor physical address on screen           -$05
-Wt.FMsk        RMB       1                   font bit mask (based from left)             -$03
-Wt.CurX        RMB       2                   X coord of cursor                           -$02
-Wt.CurY        RMB       2                   Y Coord of cursor                            $00
-Wt.XBCnt       RMB       1                   width of window (in bytes)                   $02
-Wt.CWTmp       RMB       1                   bytes wide each text chr (1,2,4)             $03
-Wt.BRow        RMB       2                   bytes/text row (8x width in gfx)             $04
-Wt.Fore        RMB       1                   foreground palette #                         $06
-Wt.Back        RMB       1                   background palette #                         $07
-Wt.Attr        RMB       1                   default attributes (FUTTTBBB)                $08
-Wt.BSW         RMB       1                   character BSW switches                       $09
-Wt.LSet        RMB       1                   LSet type                                    $0A
-Wt.FBlk        RMB       1                   Font memory block #                          $0B
-Wt.FOff        RMB       2                   Font offset in block                         $0C
-Wt.PBlk        RMB       1                   PSet memory block #                          $0E
-Wt.POff        RMB       2                   PSet offset in block                         $0F
-Wt.OBlk        RMB       1                   Overlay memory block #                       $11
-Wt.OOff        RMB       2                   Overlay offset in block                      $12
-Wt.LVec        RMB       2                   LSet vector                                  $14
-Wt.PVec        RMB       2                   PSet vector                                  $16
-Wt.GBlk        RMB       1                   GCursor memory block #                       $18
-Wt.GOff        RMB       2                   GCursor offset in block                      $19
-Wt.MaxX        RMB       2                   Maximum X cord. (0-79,0-639)                 $1B
-Wt.MaxY        RMB       2                   Maximum Y cord. (0-24,0-191)                 $1D
-Wt.BLen        RMB       2                   bytes left in GPLoad block below             $1F
-Wt.NBlk        RMB       1                   memory block # for next GPLoad               $21
-Wt.NOff        RMB       2                   Offset in block for next GPLoad              $22
-Wt.LStDf       RMB       2                   screen logical start default                 $24
-* NOTE: The following default settings are what the window was initialized
-*       with, and thus are the MAXIMUM start/size the window can handle
-*       until it is restarted (DWEnd & DWSet)
-*       They also appear to be used in WindInt to determine the coords &
-*       sizes for control+content regions
-Wt.DfCPX       RMB       1                   default X cord. start                        $26
-Wt.DfCPY       RMB       1                   default Y cord. start                        $27
-Wt.DfSZX       RMB       1                   default X size                               $28
-Wt.DfSZY       RMB       1                   default Y size                               $29
-Wt.Res         RMB       6                   unused                                   $2A-$2F
-Wt.Siz         EQU       .+$10
-
-*****************************************************************************
-* Screen table entrys
-* These tables sit in system block 0 base=$1A80
-
-STblMax        EQU       16                  Maximum number of screen tables
-STblBse        EQU       $1A80               base address of screen tables
-               ORG       0
-St.Sty         RMB       1                   Screen type                         $00
-St.SBlk        RMB       1                   Ram block start #                   $01
-St.LStrt       RMB       2                   Screen logical start (for GIME)     $02
-St.BRow        RMB       1                   Bytes per row                       $04
-St.Brdr        RMB       1                   Border palette register #           $05
-St.Fore        RMB       1                   Foreground palette register #       $06
-St.Back        RMB       1                   Background palette register #       $07
-St.ScSiz       RMB       1                   screen size: 24..28 lines           $08
-St.Res         RMB       7                   UNUSED???                           $09
-* NOTE: SHOULD USE ONE OF THESE UNUSED BYTES TO KEEP THE # OF DEVICE WINDOW
-* TABLES THAT ARE USING THIS SCREEN TABLE. DWSET & DWEND WOULD KEEP TRACK OF
-* THESE, AND THE WINDINT TITLE BAR ROUTINE WOULD CHECK IT. IF IT IS ONLY 1,
-* IT WON'T BOTHER CHANGING THE TITLE BAR WHEN SELECTING WINDOWS
-St.Pals        RMB       16                  Palette register contents           $10
-St.Siz         EQU       .
-
-*****************************************************************************
-* Graphics buffer tables
-* They contain a 20 byte header (shown below), followed by the raw pixel
-* data.
-               ORG       0
-Grf.Bck        RMB       1                   back block link #                   $00
-Grf.Off        RMB       2                   back block header offset            $01
-Grf.Grp        RMB       1                   group #                             $03
-Grf.Buff       RMB       1                   buffer #                            $04
-Grf.BSz        RMB       2                   buffer size (not including header)  $05
-Grf.XSz        RMB       2                   X size (in pixels)                  $07
-Grf.YSz        RMB       2                   Y size (in pixels/bytes)            $09
-Grf.XBSz       RMB       1                   X size in bytes                     $0B
-Grf.LfPx       RMB       1                   # pixels used in first byte of line $0C
-Grf.RtPx       RMB       1                   # pixels used in last byte of line  $0D
-Grf.STY        RMB       1                   Screen type buffer intended for     $0E
-Grf.NBlk       RMB       1                   number blocks used                  $0F
-Grf.Pal        RMB       16                  Copy of palette registers?          $10
-Grf.Siz        EQU       .                   $20
-
-*****************************************************************************
-* GFX tables (1 for each window, 18 ($12) bytes each) pointed to by
-* $1075-$0176
-* GRFINT only uses gt0001-gt0004, the rest is exclusive to WINDINT
-               ORG       0
-Gt.WTyp        RMB       1                   WindInt window type (Framed, Scroll Bar, etc.) $00
-Gt.GXCur       RMB       2                   X coord of graphics cursor                     $01
-Gt.GYCur       RMB       2                   Y coord of graphics cursor                     $03
-Gt.DPtr        RMB       2                   Ptr to WindInt window descriptor               $05
-Gt.FClr        RMB       1                   Foreground color                               $07
-Gt.BClr        RMB       1                   Background color                               $08
-Gt.FMsk        RMB       1                   Foreground mask                                $09
-Gt.BMsk        RMB       1                   Background mask                                $0A
-Gt.GBlk        RMB       1                   Block # of graphics cursor                     $0B
-Gt.GOff        RMB       2                   Offset into block of graphics cursor           $0C
-Gt.Proc        RMB       1                   Process # of window creator                    $0E
-Gt.PBlk        RMB       1                   Process descriptor block # of creator          $0F
-Gt.Res         RMB       2                   ??? RESERVED ???                               $10
-GTabSz         EQU       .
-
-*****************************************************************************
-* This table is located in the graphics table memory and is offset from
-* graphics table pointer stored at $1075-$1076. This is used exclusively by
-* WindInt.
-* NOTE: USING UNUSED BYTES IN CC3 GLOBAL MEM, SET UP SEPARATE PTRS FOR EACH
-*  OF THE BELOW SO WE CAN SPEED UP ACCESS BY NOT HAVING TO DO A LOAD/LEAx
-*  COMBINATION EVERY TIME
-               ORG       $0240
-               RMB       WN.SIZ              copy of last accessed window descriptor
-               RMB       MN.SIZ              copy of last accessed menu descriptor
-               RMB       MI.SIZ              copy of last accessed item descriptor
-               RMB       65                  menu handling table (16 entrys of 4 bytes)
-
-*****************************************************************************
-* WindInt menu handling table entry definition
-               ORG       0
-MnuXNum        RMB       1                   menu #
-MnuXStrt       RMB       1                   X start text co-ordinate
-MnuXEnd        RMB       1                   X end text co-ordinate
-               RMB       1                   unused?
-MnuHSiz        EQU       .
-
-*****************************************************************************
-* Character binary switches
-TChr           EQU       %10000000           transparent characters
-Under          EQU       %01000000           underline characters
-Bold           EQU       %00100000           bold characters
-Prop           EQU       %00010000           proportional spacing of characters
-Scale          EQU       %00001000           automatic window scaling
-Invers         EQU       %00000100           inverse characters
-NoCurs         EQU       %00000010           no cursor display
-Protect        EQU       %00000001           device window protection
-
-*****************************************************************************
-* Screen types (high bit set=hardware text, else graphics) in GRFDRV
-Current        EQU       $ff                 Current screen
-*         equ   1          640x200x2
-*         equ   2          320x200x4
-*         equ   3          640x200x4
-*         equ   4          320x200x16
-*         equ   $85        80 column text
-*         equ   $86        40 column text
-
-*************************************
-* Window default palette color codes
-*
-               ORG       0
-White.         RMB       1
-Blue.          RMB       1
-Black.         RMB       1
-Green.         RMB       1
-Red.           RMB       1
-Yellow.        RMB       1
-Magenta.       RMB       1
-Cyan.          RMB       1
-
-               ENDC      
-               ENDC      
--- a/level1/mc09/defs/makefile	Tue Dec 01 19:56:20 2015 +0000
+++ b/level1/mc09/defs/makefile	Fri Dec 04 23:43:13 2015 +0000
@@ -4,7 +4,7 @@
 
 DEFOPTS		= --preprocess -DLevel=1
 DEFSDIR		= ../../../defs
-DEFS		= defsfile os9.d rbf.d scf.d mc09.d mc09vtio.d
+DEFS		= defsfile os9.d rbf.d scf.d mc09.d
 ALLOBJS		= $(DEFS)
 
 all:	$(ALLOBJS)
@@ -24,9 +24,6 @@
 mc09.d: $(DEFSDIR)/mc09.d
 	$(AS) $(DEFOPTS) -DMC09.D=0 $< > $@
 
-mc09vtio.d: $(DEFSDIR)/mc09vtio.d
-	$(AS) $(DEFOPTS) -DMC09VTIO.D=0 $< > $@
-
 clean:
 	$(RM) $(DEFS)
 
--- a/lib/mc09.as	Tue Dec 01 19:56:20 2015 +0000
+++ b/lib/mc09.as	Fri Dec 04 23:43:13 2015 +0000
@@ -3,6 +3,5 @@
                section   _constant
 
                use       ../defs/mc09.d
-               use       ../defs/mc09vtio.d
 
                endsect