view defs/cciodefs @ 1797:3084051a2863

Updated
author boisy
date Mon, 11 Apr 2005 15:42:16 +0000
parents ce1ed7b7746f
children 6e5fa42c2fb1
line wrap: on
line source

                         
CCIODEFS set   1         
                         
********************************************************************
* CCIODefs - CoCo 1/2 I/O Definitions
*
* $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 co51 memory locations.
*
                         
         nam   CCIODefs  
         ttl   CoCo 1/2 I/O Definitions
                         
********************
* CCIO 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 CO80-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          CO80 X position
V.C80Y   rmb   1          CO80 Y position
V.Invers rmb   1         
* end of CO80-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.GRFOE  rmb   2          GRFO entry point
V.CO32E  rmb   2          CO32 entry point
V.CO80E  rmb   2          CO80 entry point
V.CO51E  rmb   2          CO51 entry point
;Co51 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 c051 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 tail
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.
; 
                         
ModCo32  equ   %00000010  ; Co32, normal VDG 32x16.
ModCo80  equ   %00000100  ; Co80, wordpak rs, 80x25
ModCo51  equ   %00001000  ; Co51, pmode 4 51x25 text