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