view defs/vtiodefs @ 2426:5ade5dd9c3cb

Updated
author boisy
date Thu, 04 Feb 2010 15:17:15 +0000
parents e396d4f24b27
children
line wrap: on
line source

               IFNE      VTIODEFS-1
VTIODEFS       SET       1

********************************************************************
* VTIODefs - Video Terminal I/O Definitions for CoCo 1/2
*
* $Id$
*
* Edt/Rev  YYYY/MM/DD  Modified by
* Comment
* ------------------------------------------------------------------
*          2004/11/29  P.Harvey-Smith.
* Added symbolic defines for bits in V.CoLoad.
*
*          2004/12/02  P.Harvey-Smith.
* Moved over all variables from co51.asm
*
*          2005/04/09  P.Harvey-Smith.
* Decoded rest of the CoHR memory locations.
*
*	       2005/04/24  P.Harvey-Smith.
* Added variables for cursor flash, currently only implemented in co51
*
               NAM       VTIODefs  
               TTL       Video Terminal I/O Definitions for CoCo 1/2

********************
* VTIO Static Memory
*
               ORG       V.SCF
V.ScrnA        RMB       2                   (2) screen start address in system memory
V.ScrnE        RMB       2                   (2) address of end of screen
V.CrsrA        RMB       1                   (2) cursor address
V.CrsAL        RMB       1                   cursor address low
V.CChar        RMB       1                   value of character under cursor
V.Mode         RMB       1                   mode: 0=256x192 x2, 1=128x192 x4
V.NGChr        RMB       1                   number of additional characters to get
V.RTAdd        RMB       2                   (2) return address after getting characters
V.NChar        RMB       1                   character to process
V.NChr2        RMB       1                   and the next one
               RMB       1
V.Chr1         RMB       1                   same as under cursor character
V.CColr        RMB       1                   cursor color
V.Col          RMB       1                   number of columns for this screen
V.Row          RMB       1                   number of rows
V.Alpha        RMB       1                   0 when in alpha mode
V.PIA1         RMB       1                   PIA1Base value
V.Rdy          RMB       1                   device ready (see SS.DStat 0=not ready)
V.CFlg1        RMB       1                   VDG display code values
V.SBAdd        RMB       2                   (2) address of block screen is in
V.GBuff        RMB       2                   allocation for graphics buffers (block#)
V.AGBuf        RMB       4                   (2) additional graphics buffer
V.FFMem        RMB       2                   Flood fill alloc'ed mem
V.FFSPt        RMB       2                   Flood fill current stack pointer
V.FFSTp        RMB       1                   Flood fill stack top
V.FF6          RMB       1                   flood fill flag
V.FFFlag       RMB       1                   ??
V.MTabl        RMB       2                   (2) address of mask table for pixels in byte
V.PixBt        RMB       1                   bit mask for modes (0=$07, 1=$03 )#pixels/byte
V.GCrsX        RMB       1                   graphics cursor X value
V.GCrsY        RMB       1                   graphics cursor Y
V.Msk1         RMB       1                   mask byte 1
V.Msk2         RMB       1                   mask byte 2 (00,55,AA,FF)
V.MCol         RMB       1                   color? (C003,8001)
V.4A           RMB       1
V.PMask        RMB       1                   pixel mask for colors (i.e. $55, $CC etc)
V.4C           RMB       1
V.4D           RMB       1
V.4E           RMB       1
V.4F           RMB       1
V.Caps         RMB       1                   caps lock info: $00=lower $FF=upper
V.ClkCnt       RMB       1                   clock count ??
V.WrChr        RMB       1                   character to write
V.CurCo        RMB       1                   current CO-module in use
* start of CoWP-specific static memory
V.Co80X        RMB       1                   V.54
V.Co80Y        RMB       1                   V.55
V.ColPtr       RMB       1                   V.56
V.RowPtr       RMB       1                   V.57
V.C80X         RMB       1                   CoWP X position
V.C80Y         RMB       1                   CoWP Y position
V.Invers       RMB       1
* end of CoWP-specific static memory
V.DspVct       RMB       2                   vector to display screen
V.CnvVct       RMB       2                   vector to X/Y to address conversion
V.LKeyCd       RMB       1                   last key code
V.2Key1        RMB       1                   2nd Key 1
V.2Key2        RMB       1                   2nd Key 2
V.2Key3        RMB       1                   2nd Key 3
V.Key1         RMB       1                   Key 1
V.Key2         RMB       1                   Key 2
V.Key3         RMB       1                   Key 3
V.ShftDn       RMB       1                   SHIFT/CTRL state
V.CtrlDn       RMB       1                   CTRL key down
V.KeyFlg       RMB       1                   key flag
V.AltDwn       RMB       1                   ALT key down
V.KySns        RMB       1                   key sense flags
V.KySame       RMB       1                   key same as last flag
V.KySnsF       RMB       1                   key sense flag
V.Spcl         RMB       1
V.KTblLC       RMB       1                   key table entry #
V.6F           RMB       1                   ???
V.COLoad       RMB       1                   CO-module loaded flags
V.CFlag        RMB       1                   true lowercase flag $10=true, $00=false
V.GrfDrvE      RMB       2                   GrfDrv entry point
V.CoVDGE       RMB       2                   CoVDG entry point
V.CoWPE        RMB       2                   CoWP entry point
V.CoHRE        RMB       2                   CoHR entry point

V.Flash        RMB       2                   Cursor flash routine address.
v.FlashCount   RMB       1                   Cursor flash count
V.NoFlash      RMB       1                   When this is non-zero do not flash cursor

* CoHR vars

V.51ScrnA      RMB       2                   * Screen address.
V.51XPos       RMB       1                   * X co-ordinate
V.51YPos       RMB       1                   * Y co-ordinate
V.51EscSeq     RMB       1                   * In escape sequence
V.51ReverseFlag RMB       1                   * Reverse video flag
V.51UnderlineFlag RMB       1                   * Underline flag
V.51CtrlDispatch RMB       2                   * Ctrl char dispatch address, currently processing
V.51BytePixOffset RMB       1                   * byte offset in screen line, of character X position        
V.51OldCursorPosX RMB       1                   * Position of old cursor before update        
V.51OldCursorPosY RMB       1
V.51CursorChanged RMB       1                   * Has cursor position changed ? 1=yes,0=no
V.51CursorOn   RMB       1                   * Is cursor on ? 1=yes 0=no		         
V.51XORFlag    RMB       1                   * and data to screen (0) or Xor (1)  		       
V.51ScreenMask1 RMB       1                   * screen masks for drawing characters on screen         
V.51ScreenMask2 RMB       1
* End of CoHR vars
**** Note these have to come at the end of the defs, or the keyboard ****
**** code can clobber variables defined after these !                ****
V.IBufH        RMB       1                   input buffer head
V.IBufT        RMB       1                   input buffer tail
V.InBuf        RMB       1                   input buffer ptr
V.51End        RMB       1
               RMB       250-.
V.Last         EQU       .


* Unknown for now
*VD.FFMem rmb   2  (2) bottom of stack for flood fill
*VD.FFSPt rmb   2  (2) flood fill stack pointer
*VD.FFSTp rmb   2  (2) flood fill stack top pointer
*VD.FF6   rmb   1   flood fill flag
*VD.MCol2 rmb   1  color
*VD.FF1   rmb   1  data for flood fill
*VD.FF2   rmb   1  data for flood fill
*VD.FFMsk rmb   1  flood fill mask
*VD.FFFlg rmb   1  flood fill flag
*VD.Palet rmb   16 (16) current palette values
*VD.PlFlg rmb   1  initialized to $08 by L00DB, and then unused!

*
* Defs for V.COLoad flags.
* 

ModCoVDG       EQU       %00000010           CoVDG, Built-in VDG 32x16.
ModCoWP        EQU       %00000100           CoWP, WordPak, 80x25
ModCoHR        EQU       %00001000           CoHR, PMODE 4 51x25 text

*
* Defs for cursor flash counter
*

CFlash50hz     EQU       25                  * 50Hz flash counter
CFlash60Hz     EQU       30                  * 60Hz flash counter

               ENDC