diff defs/vtiodefs @ 1933:1e312b144f4d

Major changes: CCIO,CC3IO are now VTIO GrfInt is now CoGrf WindInt is now CoWin VDGInt (L2), CO32 (L1) is now CoVDG CO51 (L1) is now CoHR CO80 (L1) is now CoWP All files referencing these have been changed
author boisy
date Sat, 26 Nov 2005 21:31:29 +0000
parents
children e396d4f24b27
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/defs/vtiodefs	Sat Nov 26 21:31:29 2005 +0000
@@ -0,0 +1,172 @@
+	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 noz-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 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.
+* 
+                         
+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