(*
**	Cyclone Modula-2 Interface module:
**	$VER: console.h 36.11 (7.11.90)
**	Includes Release 40.15
**
**	Console device command definitions
**
**	(C) Copyright 1986-1993 Commodore-Amiga, Inc.
**	    All Rights Reserved
**
**      Interface module by Marcel Timmermans
**      (C) Copyright 1995-1996 Marcel Timmermans
**      All Rights Reserved
*)

DEFINITION MODULE Console; 

(*$ Implementation- *)


FROM SYSTEM     IMPORT ADDRESS;
FROM KeyMapD    IMPORT KeyMapPtr;
FROM InputEvent IMPORT InputEventPtr;
FROM ExecD      IMPORT nonstd;
FROM UtilityD   IMPORT HookPtr;

IMPORT Reg;

CONST
 consoleName="console.device";

(****** Console commands ******)
  askKeyMap         = nonstd+0;
  setKeyMap         = nonstd+1;
  askDefaultKeyMap  = nonstd+2;
  setDefaultKeyMap  = nonstd+3;

(****** SGR parameters ******)

  primary     = 0;
  bold        = 1;
  italic      = 3;
  underscore  = 4;
  negative    = 7;

  normal        = 22;      (* default foreground color, not bold *)
  notItalic     = 23;
  notUnderscore = 24;
  positive      = 27;

(* these names refer to the ANSI standard, not the implementation *)
  blank       = 30;
  red         = 31;
  green       = 32;
  yellow      = 33;
  blue        = 34;
  magenta     = 35;
  cyan        = 36;
  white       = 37;
  default     = 39;

  blackBg     = 40;
  redBg       = 41;
  greenBg     = 42;
  yellowBg    = 43;
  blueBg      = 44;
  magentaBg   = 45;
  cyanBg      = 46;
  whiteBg     = 47;
  defaultBg   = 49;

(* these names refer to the implementation, they are the preferred *)
(* names for use with the Amiga console device. *)
  clr0        = 30;
  clr1        = 31;
  clr2        = 32;
  clr3        = 33;
  clr4        = 34;
  clr5        = 35;
  clr6        = 36;
  clr7        = 37;

  clr0Bg      = 40;
  clr1Bg      = 41;
  clr2Bg      = 42;
  clr3Bg      = 43;
  clr4Bg      = 44;
  clr5Bg      = 45;
  clr6Bg      = 46;
  clr7Bg      = 47;


(****** DSR parameters ******)

  dsrCpr      = 6;

(****** CTC parameters ******)
  ctcHSetTab     = 0;
  ctcHClrTab     = 2;
  ctcHClrTabsAll = 5;

(****** TBC parameters ******)
  tbcHClrTab     = 0;
  tbcHClrTabsAll = 3;

(****** SM and RM parameters ******)
  mLnm   = 20;      (* linefeed newline mode *)
  mAsm   = ">1";    (* auto scroll mode *)
  mAwm   = "?7";    (* auto wrap mode *)


(*
 *  You have to put a pointer to the console.device here to use the input
 *  procedures:
 *)

PROCEDURE CDInputHandler(
           base{Reg.A6}:ADDRESS;
           events{Reg.A0}:InputEventPtr;
           conDevice{Reg.A1}:ADDRESS):InputEventPtr; CODE -42;

PROCEDURE RawKeyConvert(
           base{Reg.A6}:ADDRESS;
           events{Reg.A0}:InputEventPtr;
           buffer{Reg.A1}:ADDRESS;
           length{Reg.D1}:LONGINT;
           keyMap{Reg.A2}:KeyMapPtr):LONGINT; CODE -48;

(*--- functions in V36 or higher (distributed as Release 2.0) ---*)
PROCEDURE GetConSnip(base{Reg.A6}:ADDRESS): LONGINT; CODE -54;
PROCEDURE SetConSnip(base{Reg.A6}:ADDRESS;snip{Reg.A0}: LONGINT); CODE -60;
PROCEDURE AddConSnipHook(base{Reg.A6}:ADDRESS;hook{Reg.A0}:HookPtr); CODE -66;
PROCEDURE RemConSnipHook(base{Reg.A6}:ADDRESS;hook{Reg.A0}:HookPtr); CODE -72;

END Console.
