Mercurial > hg > Members > kono > nitros9-code
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