home *** CD-ROM | disk | FTP | other *** search
- unit Console;
-
- INTERFACE
- uses Exec, Graphics, Input, Intuition, Keymap;
-
-
- type
- pConUnit = ^tConUnit;
- tConUnit = record
- cu_MP: tMsgPort;
- cu_Window: pWindow;
- cu_XCP: integer;
- cu_YCP: integer;
- cu_XMax: integer;
- cu_YMax: integer;
- cu_XRSize: integer;
- cu_YRSize: integer;
- cu_XROrigin: integer;
- cu_YROrigin: integer;
- cu_XRExtant: integer;
- cu_YRExtant: integer;
- cu_XMinShrink: integer;
- cu_YMinShrink: integer;
- cu_XCCP: integer;
- cu_YCCP: integer;
- cu_KeyMapStruct: tKeyMap;
- cu_TabStops: array [0..79] of word;
- cu_Mask: shortint;
- cu_FgPen: shortint;
- cu_BgPen: shortint;
- cu_AOLPen: shortint;
- cu_DrawMode: shortint;
- cu_Obsolete1: shortint;
- cu_Obsolete2: pointer;
- cu_Minterms: array [0..7] of byte;
- cu_Font: pTextFont;
- cu_AlgoStyle: byte;
- cu_TxFlags: byte;
- cu_TxHeight: word;
- cu_TxWidth: word;
- cu_TxBaseline: word;
- cu_TxSpacing: integer;
- cu_Modes: array [0..2] of byte;
- cu_RawEvents: array [0..2] of byte;
- end;
-
-
-
- var
- ConsoleDevice: pLibrary;
-
-
- const
- SGR_NOTITALIC = $17;
- SGR_CLR2 = $20;
- SGR_CLR3 = $21;
- SGR_CLR4 = $22;
- SGR_CLR5 = $23;
- CONU_CHARMAP = 1;
- SGR_CLR6 = $24;
- SGR_CLR7 = $25;
- CONFLAG_DEFAULT = 0;
- SGR_WHITE = $25;
- SGR_BLACKBG = $28;
- CD_ASKDEFAULTKEYMAP = $B;
- CD_SETKEYMAP = $A;
- TBC_HCLRTABSALL = 3;
- SGR_BOLD = 1;
- CTC_HCLRTABSALL = 5;
- TBC_HCLRTAB = 0;
- SGR_NEGATIVE = 7;
- CTC_HCLRTAB = 2;
- SGR_NOTUNDERSCORE = $18;
- SGR_BLUE = $22;
- MAXTABS = $50;
- CD_SETDEFAULTKEYMAP = $C;
- SGR_CYAN = $24;
- CTC_HSETTAB = 0;
- CONU_LIBRARY = $FFFFFFFF;
- SGR_GREENBG = $2A;
- CONU_SNIPMAP = 3;
- SGR_MAGENTA = $23;
- SGR_CLR0BG = $28;
- SGR_YELLOWBG = $2B;
- SGR_CLR1BG = $29;
- SGR_CLR2BG = $2A;
- SGR_CLR3BG = $2B;
- CONFLAG_NODRAW_ON_NEWSIZE = 1;
- SGR_CLR4BG = $2C;
- PMB_ASM = $15;
- SGR_CLR5BG = $2D;
- SGR_DEFAULT = $27;
- SGR_CLR6BG = $2E;
- SGR_CLR7BG = $2F;
- PMB_AWM = $16;
- SGR_RED = $1F;
- SGR_WHITEBG = $2F;
- SGR_POSITIVE = $1B;
- DSR_CPR = 6;
- SGR_BLUEBG = $2C;
- SGR_CYANBG = $2E;
- SGR_ITALIC = 3;
- SGR_MAGENTABG = $2D;
- SGR_PRIMARY = 0;
- SGR_BLACK = $1E;
- SGR_DEFAULTBG = $31;
- SGR_NORMAL = $16;
- SGR_REDBG = $29;
- SGR_UNDERSCORE = 4;
- CONU_STANDARD = 0;
- SGR_GREEN = $20;
- M_ASM = '>1';
- M_AWM = '?7';
- SGR_CLR0 = $1E;
- CD_ASKKEYMAP = 9;
- SGR_YELLOW = $21;
- SGR_CLR1 = $1F;
- M_LNM = $14;
-
-
- function CDInputHandler
- (events: pInputEvent;
- consoleDevice: pLibrary): pInputEvent;
-
- function RawKeyConvert
- (events: pInputEvent;
- buffer: STRPTR;
- length: longint;
- keyMap: pKeyMap): longint;
-
-
-
- IMPLEMENTATION
- function CDInputHandler; xassembler;
- asm
- move.l a6,-(sp)
- lea 8(sp),a6
- move.l (a6)+,a1
- move.l (a6)+,a0
- move.l ConsoleDevice,a6
- jsr -$2A(a6)
- move.l d0,$10(sp)
- move.l (sp)+,a6
- end;
-
- function RawKeyConvert; xassembler;
- asm
- movem.l a2/a6,-(sp)
- lea $C(sp),a6
- move.l (a6)+,a2
- move.l (a6)+,d1
- move.l (a6)+,a1
- move.l (a6)+,a0
- move.l ConsoleDevice,a6
- jsr -$30(a6)
- move.l d0,$1C(sp)
- movem.l (sp)+,a2/a6
- end;
-
- end.
-