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
     To call the two routines defined below, you'll need to set
     ConsoleBase to an appropriate value.
     ConsoleBase to an appropriate value.
 
 
-    Added the define use_amiga_smartlink.
-    13 Jan 2003.
-
     [email protected]  Nils Sjoholm
     [email protected]  Nils Sjoholm
 }
 }
 
 
 unit console;
 unit console;
 
 
-INTERFACE
-
-uses exec, inputevent, keymap;
+interface
 
 
+uses
+  exec, inputevent, keymap;
 
 
 const
 const
 
 
 {***** Console commands *****}
 {***** 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 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 }
 { 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   }
 { 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 parameters *****}
-
-    DSR_CPR             = 6;
+  DSR_CPR = 6;
 
 
 {***** CTC parameters *****}
 {***** CTC parameters *****}
-
-    CTC_HSETTAB         = 0;
-    CTC_HCLRTAB         = 2;
-    CTC_HCLRTABSALL     = 5;
+  CTC_HSETTAB     = 0;
+  CTC_HCLRTAB     = 2;
+  CTC_HCLRTABSALL = 5;
 
 
 {*****   TBC parameters *****}
 {*****   TBC parameters *****}
-
-    TBC_HCLRTAB         = 0;
-    TBC_HCLRTABSALL     = 3;
+  TBC_HCLRTAB     = 0;
+  TBC_HCLRTABSALL = 3;
 
 
 {*****   SM and RM parameters *****}
 {*****   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.
     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
 
 
  **********************************************************************}
  **********************************************************************}
-{
-    History:
-
-    Changed integer > smallint.
-    09 Feb 2003.
-}
 
 
 unit conunit;
 unit conunit;
 
 
-INTERFACE
+interface
 
 
-uses exec, console, keymap, inputevent;
+uses
+  exec, console, keymap, inputevent, intuition, agraphics;
 
 
 const
 const
 { ---- console unit numbers for OpenDevice() }
 { ---- 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) }
 { ---- 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) }
 { ---- 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
 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.
 end.