(**************************************************************************

     $RCSfile: Console.mod $
  Description: Interface to console.device

   Created by: fjc (Frank Copeland)
    $Revision: 1.2 $
      $Author: fjc $
        $Date: 1994/05/12 19:11:02 $

  Copyright © 1994, Frank Copeland.
  This file is part of the Oberon-A Library.
  See Oberon-A.doc for conditions of use and distribution.

  Log entries are at the end of the file.

***************************************************************************)

MODULE Console;

(* $P- allow non-portable code *)

IMPORT
  T := Types, E := Exec, IE := InputEvents, KM := KeyMaps, G := Graphics,
  I := Intuition;

CONST

  cdAskKeyMap            * = E.cmdNonStd+0;
  cdSetKeyMap            * = E.cmdNonStd+1;
  cdAskDefaultKeyMap     * = E.cmdNonStd+2;
  cdSetDefaultKeyMap     * = E.cmdNonStd+3;

  sgrPrimary     * = 0;
  sgrBold        * = 1;
  sgrItalic      * = 3;
  sgrUnderscore  * = 4;
  sgrNegative    * = 7;

  sgrNormal      * = 22;
  sgrNotItalic   * = 23;
  sgrNotUnderscore * = 24;
  sgrPositive    * = 27;

  sgrBlack       * = 30;
  sgrRed         * = 31;
  sgrGreen       * = 32;
  sgrYellow      * = 33;
  sgrBlue        * = 34;
  sgrMagenta     * = 35;
  sgrCyan        * = 36;
  sgrWhite       * = 37;
  sgrDefault     * = 39;

  sgrBlackBg     * = 40;
  sgrRedBg       * = 41;
  sgrGreenBg     * = 42;
  sgrYellowBg    * = 43;
  sgrBlueBg      * = 44;
  sgrMagentaBg   * = 45;
  sgrCyanBg      * = 46;
  sgrWhiteBg     * = 47;
  sgrDefaultBg   * = 49;

  sgrClr0        * = 30;
  sgrClr1        * = 31;
  sgrClr2        * = 32;
  sgrClr3        * = 33;
  sgrClr4        * = 34;
  sgrClr5        * = 35;
  sgrClr6        * = 36;
  sgrClr7        * = 37;

  sgrClr0Bg      * = 40;
  sgrClr1Bg      * = 41;
  sgrClr2Bg      * = 42;
  sgrClr3Bg      * = 43;
  sgrClr4Bg      * = 44;
  sgrClr5Bg      * = 45;
  sgrClr6Bg      * = 46;
  sgrClr7Bg      * = 47;

  dsrCPR         * = 6;

  ctcHSetTab     * = 0;
  ctcHClrTab     * = 2;
  ctcHClrTabsAll * = 5;

  tbcHClrTab     * = 0;
  tbcHClrTabsAll * = 3;

  mLNM   * = 20;
  mASM   * = ">1";
  mAWM   * = "?7";

CONST

  conuLibrary    * = -1;
  conuStandard   * = 0;

  conuCharMap    * = 1;
  conuSnipMap    * = 3;

  conFlagDefault                 * = 0;
  conFlagNodrawOnNewsize       * = 1;

  pmbASM         * = mLNM+1;
  pmbAWM         * = pmbASM+1;
  MaxTabs        * = 80;

TYPE

  ConUnitPtr * = CPOINTER TO ConUnit;
  ConUnit * = RECORD (E.MsgPort)

    cuWindow *       : I.WindowPtr;
    cuXCP *          : INTEGER;
    cuYCP *          : INTEGER;
    cuXMax *         : INTEGER;
    cuYMax *         : INTEGER;
    cuXRSize *       : INTEGER;
    cuYRSize *       : INTEGER;
    cuXROrigin *     : INTEGER;
    cuYROrigin *     : INTEGER;
    cuXRExtant *     : INTEGER;
    cuYRExtant *     : INTEGER;
    cuXMinShrink *   : INTEGER;
    cuYMinShrink *   : INTEGER;
    cuXCCP *         : INTEGER;
    cuYCCP *         : INTEGER;

    cuKeyMapStruct * : KM.KeyMap;

    cuTabStops *     : ARRAY MaxTabs OF T.UWORD;

    cuMask *         : T.BSET;
    cuFgPen *        : SHORTINT;
    cuBgPen *        : SHORTINT;
    cuAOLPen *       : SHORTINT;
    cuDrawMode *     : T.BSET;
    cuObsolete1 *    : SHORTINT;
    cuObsolete2 *    : T.APTR;
    cuMinterms *     : ARRAY 8 OF T.BSET;
    cuFont *         : G.TextFontPtr;
    cuAlgoStyle *    : T.BSET;
    cuTxFlags *      : T.BSET;
    cuTxHeight *     : T.UWORD;
    cuTxWidth *      : T.UWORD;
    cuTxBaseline *   : T.UWORD;
    cuTxSpacing *    : INTEGER;

    cuModes *        : ARRAY (pmbAWM+7) DIV 8 OF T.BSET;
    cuRawEvents *    : ARRAY (IE.ieClassMax+8) DIV 8 OF T.UBYTE;
  END;

(*-- Device base variable----------------------------------------------*)

CONST

  Name * = "console.device";

TYPE

  ConsoleBasePtr * = CPOINTER TO ConsoleBase;
  ConsoleBase * = RECORD (E.Device) END;

(*-- Device functions -------------------------------------------------*)

LIBCALL (base : ConsoleBasePtr) CDInputHandler*
  ( events        {8} : IE.InputEventPtr;
    consoleDevice {9} : ConsoleBasePtr )
  : IE.InputEventPtr;
  -42;
LIBCALL (base : ConsoleBasePtr) RawKeyConvert*
  ( events     {8} : IE.InputEventPtr;
    VAR buffer {9} : ARRAY OF CHAR;
    length     {1} : LONGINT;
    keyMap    {10} : KM.KeyMapPtr )
  : LONGINT;
  -48;

END Console.

(**************************************************************************

  $Log: Console.mod $
  Revision 1.2  1994/05/12  19:11:02  fjc
  - Prepared for release

  Revision 1.1  1994/01/15  21:20:10  fjc
  - Start of revision control

***************************************************************************)

 

(* Comments stripped by StripComments 1.0 *)
