Browse Source

Amunits: console and conunit, fixed alignment and fixes from 3.9 SDK

git-svn-id: trunk@43812 -
marcus 5 years ago
parent
commit
25c11a94c4
2 changed files with 131 additions and 155 deletions
  1. 69 78
      packages/amunits/src/coreunits/console.pas
  2. 62 77
      packages/amunits/src/coreunits/conunit.pas

+ 69 - 78
packages/amunits/src/coreunits/console.pas

@@ -18,112 +18,103 @@
     To call the two routines defined below, you'll need to set
     ConsoleBase to an appropriate value.
 
-    Added the define use_amiga_smartlink.
-    13 Jan 2003.
-
     [email protected]  Nils Sjoholm
 }
 
 unit console;
 
-INTERFACE
-
-uses exec, inputevent, keymap;
+interface
 
+uses
+  exec, inputevent, keymap;
 
 const
 
 {***** Console commands *****}
-
-     CD_ASKKEYMAP               = CMD_NONSTD + 0;
-     CD_SETKEYMAP               = CMD_NONSTD + 1;
-     CD_ASKDEFAULTKEYMAP        = CMD_NONSTD + 2;
-     CD_SETDEFAULTKEYMAP        = CMD_NONSTD + 3;
-
+  CD_ASKKEYMAP        = CMD_NONSTD + 0;
+  CD_SETKEYMAP        = CMD_NONSTD + 1;
+  CD_ASKDEFAULTKEYMAP = CMD_NONSTD + 2;
+  CD_SETDEFAULTKEYMAP = CMD_NONSTD + 3;
 
 {***** SGR parameters *****}
 
-    SGR_PRIMARY         = 0;
-    SGR_BOLD            = 1;
-    SGR_ITALIC          = 3;
-    SGR_UNDERSCORE      = 4;
-    SGR_NEGATIVE        = 7;
+  SGR_PRIMARY    = 0;
+  SGR_BOLD       = 1;
+  SGR_ITALIC     = 3;
+  SGR_UNDERSCORE = 4;
+  SGR_NEGATIVE   = 7;
 
-    SGR_NORMAL          = 22;      { default foreground color, not bold }
-    SGR_NOTITALIC       = 23;
-    SGR_NOTUNDERSCORE   = 24;
-    SGR_POSITIVE        = 27;
+  SGR_NORMAL        = 22; // default foreground color, not bold
+  SGR_NOTITALIC     = 23;
+  SGR_NOTUNDERSCORE = 24;
+  SGR_POSITIVE      = 27;
 
 { these names refer to the ANSI standard, not the implementation }
 
-    SGR_BLACK           = 30;
-    SGR_RED             = 31;
-    SGR_GREEN           = 32;
-    SGR_YELLOW          = 33;
-    SGR_BLUE            = 34;
-    SGR_MAGENTA         = 35;
-    SGR_CYAN            = 36;
-    SGR_WHITE           = 37;
-    SGR_DEFAULT         = 39;
-
-    SGR_BLACKBG         = 40;
-    SGR_REDBG           = 41;
-    SGR_GREENBG         = 42;
-    SGR_YELLOWBG        = 43;
-    SGR_BLUEBG          = 44;
-    SGR_MAGENTABG       = 45;
-    SGR_CYANBG          = 46;
-    SGR_WHITEBG         = 47;
-    SGR_DEFAULTBG       = 49;
+  SGR_BLACK   = 30;
+  SGR_RED     = 31;
+  SGR_GREEN   = 32;
+  SGR_YELLOW  = 33;
+  SGR_BLUE    = 34;
+  SGR_MAGENTA = 35;
+  SGR_CYAN    = 36;
+  SGR_WHITE   = 37;
+  SGR_DEFAULT = 39;
+
+  SGR_BLACKBG   = 40;
+  SGR_REDBG     = 41;
+  SGR_GREENBG   = 42;
+  SGR_YELLOWBG  = 43;
+  SGR_BLUEBG    = 44;
+  SGR_MAGENTABG = 45;
+  SGR_CYANBG    = 46;
+  SGR_WHITEBG   = 47;
+  SGR_DEFAULTBG = 49;
 
 { these names refer to the implementation, they are the preferred   }
-{ names for use with the Amiga console device.        }
-
-    SGR_CLR0            = 30;
-    SGR_CLR1            = 31;
-    SGR_CLR2            = 32;
-    SGR_CLR3            = 33;
-    SGR_CLR4            = 34;
-    SGR_CLR5            = 35;
-    SGR_CLR6            = 36;
-    SGR_CLR7            = 37;
-
-    SGR_CLR0BG          = 40;
-    SGR_CLR1BG          = 41;
-    SGR_CLR2BG          = 42;
-    SGR_CLR3BG          = 43;
-    SGR_CLR4BG          = 44;
-    SGR_CLR5BG          = 45;
-    SGR_CLR6BG          = 46;
-    SGR_CLR7BG          = 47;
-
+{ names for use with the Amiga console device. }
+
+  SGR_CLR0 = 30;
+  SGR_CLR1 = 31;
+  SGR_CLR2 = 32;
+  SGR_CLR3 = 33;
+  SGR_CLR4 = 34;
+  SGR_CLR5 = 35;
+  SGR_CLR6 = 36;
+  SGR_CLR7 = 37;
+
+  SGR_CLR0BG = 40;
+  SGR_CLR1BG = 41;
+  SGR_CLR2BG = 42;
+  SGR_CLR3BG = 43;
+  SGR_CLR4BG = 44;
+  SGR_CLR5BG = 45;
+  SGR_CLR6BG = 46;
+  SGR_CLR7BG = 47;
 
 {***** DSR parameters *****}
-
-    DSR_CPR             = 6;
+  DSR_CPR = 6;
 
 {***** CTC parameters *****}
-
-    CTC_HSETTAB         = 0;
-    CTC_HCLRTAB         = 2;
-    CTC_HCLRTABSALL     = 5;
+  CTC_HSETTAB     = 0;
+  CTC_HCLRTAB     = 2;
+  CTC_HCLRTABSALL = 5;
 
 {*****   TBC parameters *****}
-
-    TBC_HCLRTAB         = 0;
-    TBC_HCLRTABSALL     = 3;
+  TBC_HCLRTAB     = 0;
+  TBC_HCLRTABSALL = 3;
 
 {*****   SM and RM parameters *****}
+  M_LNM = 20;   // linefeed newline mode
+  M_ASM = '>1'; // auto scroll mode
+  M_AWM = '?7'; // auto wrap mode
 
-    M_LNM               = 20;           { linefeed newline mode }
-    M_ASM               = '>1';         { auto scroll mode }
-    M_AWM               = '?7';         { auto wrap mode }
-
-VAR ConsoleDevice : pDevice;
+var
+  ConsoleDevice: PDevice = nil;
 
-FUNCTION CDInputHandler(events : pInputEvent location 'a0'; consoleDev : pLibrary location 'a1') : pInputEvent; syscall ConsoleDevice 042;
-FUNCTION RawKeyConvert(events : pInputEvent location 'a0'; buffer : pCHAR location 'a1'; length : LONGINT location 'd1'; keyMap : pKeyMap location 'a2') : LONGINT; syscall ConsoleDevice 048;
+function CDInputHandler(Events: PInputEvent location 'a0'; ConsoleDev: PLibrary location 'a1'): PInputEvent; syscall ConsoleDevice 042;
+function RawKeyConvert(Events: PInputEvent location 'a0'; Buffer: PCHAR location 'a1'; Length: LongInt location 'd1'; KeyMap: PKeyMap location 'a2'): LongInt; syscall ConsoleDevice 048;
 
-IMPLEMENTATION
+implementation
 
-END. (* UNIT CONSOLE *)
+end.

+ 62 - 77
packages/amunits/src/coreunits/conunit.pas

@@ -13,97 +13,82 @@
     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
 
  **********************************************************************}
-{
-    History:
-
-    Changed integer > smallint.
-    09 Feb 2003.
-}
 
 unit conunit;
 
-INTERFACE
+interface
 
-uses exec, console, keymap, inputevent;
+uses
+  exec, console, keymap, inputevent, intuition, agraphics;
 
 const
 { ---- console unit numbers for OpenDevice() }
- CONU_LIBRARY   = -1;      { no unit, just fill in IO_DEVICE field }
- CONU_STANDARD  = 0;       { standard unmapped console }
+  CONU_LIBRARY  = -1; // no unit, just fill in IO_DEVICE field
+  CONU_STANDARD = 0;  // standard unmapped console
 
 { ---- New unit numbers for OpenDevice() - (V36) }
-
- CONU_CHARMAP   = 1;       { bind character map to console }
- CONU_SNIPMAP   = 3;       { bind character map w/ snip to console }
+  CONU_CHARMAP = 1; // bind character map to console
+  CONU_SNIPMAP = 3; // bind character map w/ snip to console
 
 { ---- New flag defines for OpenDevice() - (V37) }
+  CONFLAG_DEFAULT           = 0;
+  CONFLAG_NODRAW_ON_NEWSIZE = 1;
 
- CONFLAG_DEFAULT               =  0;
- CONFLAG_NODRAW_ON_NEWSIZE     =  1;
-
-
-    PMB_ASM     = M_LNM + 1;    { internal storage bit for AS flag }
-    PMB_AWM     = PMB_ASM + 1;  { internal storage bit for AW flag }
-    MAXTABS     = 80;
+  PMB_ASM = M_LNM + 1;   // internal storage bit for AS flag
+  PMB_AWM = PMB_ASM + 1; // internal storage bit for AW flag
+  MAXTABS = 80;
 
 
 type
-
-    pConUnit = ^tConUnit;
-    tConUnit = record
-        cu_MP   : tMsgPort;
-        { ---- read only variables }
-        cu_Window       : Pointer;      { (WindowPtr) intuition window bound to this unit }
-        cu_XCP          : smallint;        { character position }
-        cu_YCP          : smallint;
-        cu_XMax         : smallint;        { max character position }
-        cu_YMax         : smallint;
-        cu_XRSize       : smallint;        { character raster size }
-        cu_YRSize       : smallint;
-        cu_XROrigin     : smallint;        { raster origin }
-        cu_YROrigin     : smallint;
-        cu_XRExtant     : smallint;        { raster maxima }
-        cu_YRExtant     : smallint;
-        cu_XMinShrink   : smallint;        { smallest area intact from resize process }
-        cu_YMinShrink   : smallint;
-        cu_XCCP         : smallint;        { cursor position }
-        cu_YCCP         : smallint;
-
-   { ---- read/write variables (writes must must be protected) }
-   { ---- storage for AskKeyMap and SetKeyMap }
-
-        cu_KeyMapStruct : tKeyMap;
-
-   { ---- tab stops }
-
-        cu_TabStops     : Array [0..MAXTABS-1] of Word;
-                                { 0 at start, -1 at end of list }
-
-   { ---- console rastport attributes }
-
-        cu_Mask         : Shortint;
-        cu_FgPen        : Shortint;
-        cu_BgPen        : Shortint;
-        cu_AOLPen       : Shortint;
-        cu_DrawMode     : Shortint;
-        cu_AreaPtSz     : Shortint;
-        cu_AreaPtrn     : Pointer;      { cursor area pattern }
-        cu_Minterms     : Array [0..7] of Byte; { console minterms }
-        cu_Font         : Pointer;      { (TextFontPtr) }
-        cu_AlgoStyle    : Byte;
-        cu_TxFlags      : Byte;
-        cu_TxHeight     : Word;
-        cu_TxWidth      : Word;
-        cu_TxBaseline   : Word;
-        cu_TxSpacing    : Word;
-
-   { ---- console MODES and RAW EVENTS switches }
-
-        cu_Modes        : Array [0..(PMB_AWM+7) div 8 - 1] of Byte;
-                                { one bit per mode }
-        cu_RawEvents    : Array [0..(IECLASS_MAX+7) div 8 - 1] of Byte;
-    end;
-
-IMPLEMENTATION
+  {$PACKRECORDS 2}
+  PConUnit = ^TConUnit;
+  TConUnit = record
+    cu_MP: TMsgPort;
+    { ---- read only variables }
+    cu_Window: PWindow;      // Intuition window bound to this unit
+    cu_XCP: SmallInt;        // character position
+    cu_YCP: SmallInt;
+    cu_XMax: SmallInt;       // max character position
+    cu_YMax: SmallInt;
+    cu_XRSize: SmallInt;     // character raster size
+    cu_YRSize: SmallInt;
+    cu_XROrigin: SmallInt;   // raster origin
+    cu_YROrigin: SmallInt;
+    cu_XRExtant: SmallInt;   // raster maxima
+    cu_YRExtant: SmallInt;
+    cu_XMinShrink: SmallInt; // smallest area intact from resize process
+    cu_YMinShrink: SmallInt;
+    cu_XCCP: SmallInt;       // cursor position
+    cu_YCCP: SmallInt;
+
+    { ---- read/write variables (writes must must be protected) }
+    { ---- storage for AskKeyMap and SetKeyMap }
+    cu_KeyMapStruct: TKeyMap;
+    { ---- tab stops }
+    cu_TabStops: array[0..MAXTABS - 1] of Word; // 0 at start, 0xFFFF at end of list
+
+    // ---- console rastport attributes
+    cu_Mask: ShortInt;
+    cu_FgPen: ShortInt;
+    cu_BgPen: ShortInt;
+    cu_AOLPen: ShortInt;
+    cu_DrawMode: ShortInt;
+    cu_Obsolete1: ShortInt; // was cu_AreaPtSz -- not used in V36
+    cu_Obsolete2: APTR;     // was cu_AreaPtrn -- not used in V36
+    cu_Minterms: array[0..7] of Byte; // console minterms
+    cu_Font: PTextFont;
+    cu_AlgoStyle: Byte;
+    cu_TxFlags: Byte;
+    cu_TxHeight: Word;
+    cu_TxWidth: Word;
+    cu_TxBaseline: Word;
+    cu_TxSpacing: Word;
+
+    { ---- console MODES and RAW EVENTS switches }
+    cu_Modes: array[0..(PMB_AWM + 7) div 8 - 1] of Byte; // one bit per mode
+    cu_RawEvents: array[0..(IECLASS_MAX + 7) div 8 - 1] of Byte;
+  end;
+
+implementation
 
 end.