	IFND	DEVICES_CONUNIT_I
DEVICES_CONUNIT_I	EQU	1
********************************************************************
*               Commodore-Amiga, Inc.                              *
*               conunit.i                                          *
********************************************************************
********************************************************************
*
*  Console device unit definitions
*
********************************************************************

   IFND  EXEC_PORTS_I
   INCLUDE  "exec/ports.i"
   ENDC

   IFND  DEVICES_KEYMAP_I
   INCLUDE  "devices/keymap.i"
   ENDC

PMB_ASM     EQU   M_LNM+1     ; internal storage bit for AS flag
PMB_AWM     EQU   PMB_ASM+1   ; internal storage bit for AW flag
MAXTABS     EQU   80


 STRUCTURE  ConUnit,MP_SIZE
    ;------ read only variables
   APTR  cu_Window            ; intuition window bound to this unit
   WORD  cu_XCP               ; character position
   WORD  cu_YCP
   WORD  cu_XMax              ; max character position
   WORD  cu_YMax
   WORD  cu_XRSize            ; character raster size
   WORD  cu_YRSize
   WORD  cu_XROrigin          ; raster origin
   WORD  cu_YROrigin
   WORD  cu_XRExtant          ; raster maxima
   WORD  cu_YRExtant
   WORD  cu_XMinShrink        ; smallest area intact from resize process
   WORD  cu_YMinShrink
   WORD  cu_XCCP              ; cursor position
   WORD  cu_YCCP

   ;------ read/write variables (writes must must be protected)
   ;------ storage for AskKeyMap and SetKeyMap
   STRUCT   cu_KeyMapStruct,km_SIZEOF
   ; ---- tab stops
   STRUCT   cu_TabStops,2*MAXTABS   ; 0 at start, 0xffff at end of list

   ;------ console rastport attributes
   BYTE  cu_Mask              ; these must appear as in RastPort
   BYTE  cu_FgPen             ;   |
   BYTE  cu_BgPen             ;   |
   BYTE  cu_AOLPen            ;   +
   BYTE  cu_DrawMode          ; these must appear as in RastPort
   BYTE  cu_AreaPtSz          ;   +
   APTR  cu_AreaPtrn          ; cursor area pattern
   STRUCT   cu_Minterms,8     ; console minterms
   APTR  cu_Font              ;
   UBYTE cu_AlgoStyle         ; these must appear as in RastPort
   UBYTE cu_TxFlags           ;   +
   UWORD cu_TxHeight          ; these must appear as in RastPort
   UWORD cu_TxWidth           ;   |
   UWORD cu_TxBaseline        ;   |
   UWORD cu_TxSpacing         ;   +

   ;------ console MODES and RAW EVENTS switches
   STRUCT   cu_Modes,<(PMB_AWM+7)/8>   ; one bit per mode
   STRUCT   cu_RawEvents,<(IECLASS_MAX+7)/8>

   ;------ ensure the ConsUnit structure is even
ODDEVEN  EQU   ((PMB_AWM+7)/8)+((IECLASS_MAX+7)/8)
   IFNE  ODDEVEN-((ODDEVEN/2)*2)
      UBYTE cu_pad   
   ENDC

   LABEL ConUnit_SIZEOF

	ENDC
