home *** CD-ROM | disk | FTP | other *** search
/ Amiga ISO Collection / AmigaUtilCD2.iso / Programming / Pascal / HISOFTPASCAL2,0-3.DMS / in.adf / Units / Input.pas < prev    next >
Encoding:
Pascal/Delphi Source File  |  1992-05-20  |  3.3 KB  |  165 lines

  1. unit Input;
  2.  
  3. INTERFACE
  4. uses Exec, Timer;
  5.  
  6.  
  7. type
  8.     pInputEvent = ^tInputEvent;
  9.     tInputEvent = record
  10.         ie_NextEvent: pInputEvent;
  11.         ie_Class: byte;
  12.         ie_SubClass: byte;
  13.         ie_Code: word;
  14.         ie_Qualifier: word;
  15.         case integer of
  16.         0: (
  17.         ie_X: integer;
  18.         ie_Y: integer;
  19.         );
  20.         1: (
  21.         ie_EventAddress: pointer;
  22.         );
  23.         2: (
  24.         ie_Prev1DownCode: byte;
  25.         ie_Prev1DownQual: byte;
  26.         ie_Prev2DownCode: byte;
  27.         ie_Prev2DownQual: byte;
  28.         ie_TimeStamp: ttimeval;
  29.         );
  30.         end;
  31.  
  32.     pIEPointerTablet = ^tIEPointerTablet;
  33.     tIEPointerTablet = record
  34.         iept_Range: record
  35.         X: word;
  36.         Y: word;
  37.         end;
  38.         iept_Value: record
  39.         X: word;
  40.         Y: word;
  41.         end;
  42.         iept_Pressure: integer;
  43.         end;
  44.  
  45.     pIEPointerPixel = ^tIEPointerPixel;
  46.     tIEPointerPixel = record
  47.         iepp_Screen: pointer;
  48.         iepp_Position: record
  49.         X: integer;
  50.         Y: integer;
  51.         end;
  52.         end;
  53.  
  54.  
  55.  
  56. var
  57.     InputBase: pLibrary;
  58.  
  59.  
  60. const
  61.     IECODE_REQCLEAR = 0;
  62.     IEQUALIFIER_LALT = $10;
  63.     IECLASS_DISKINSERTED = $10;
  64.     IND_SETTHRESH = $C;
  65.     IECLASS_REQUESTER = 9;
  66.     IECODE_KEY_CODE_FIRST = 0;
  67.     IEQUALIFIERB_NUMERICPAD = 8;
  68.     IECLASS_MENUHELP = $14;
  69.     IEQUALIFIER_RALT = $20;
  70.     IEQUALIFIERB_CONTROL = 3;
  71.     IECODE_C0_FIRST = 0;
  72.     IEQUALIFIERB_MULTIBROADCAST = $B;
  73.     IECLASS_ACTIVEWINDOW = $11;
  74.     IECODE_C1_FIRST = $80;
  75.     IEQUALIFIER_INTERRUPT = $400;
  76.     IEQUALIFIERB_REPEAT = 9;
  77.     IND_ADDHANDLER = 9;
  78.     IECLASS_NEWPOINTERPOS = $13;
  79.     IECLASS_NULL = 0;
  80.     IECLASS_NEWPREFS = $E;
  81.     IECODE_LATIN1_FIRST = $A0;
  82.     IESUBCLASS_PIXEL = 1;
  83.     IECODE_KEY_CODE_LAST = $77;
  84.     IEQUALIFIERB_RBUTTON = $D;
  85.     IEQUALIFIERB_LSHIFT = 0;
  86.     IECLASS_MENULIST = $A;
  87.     IECLASS_RAWMOUSE = 2;
  88.     IECLASS_DISKREMOVED = $F;
  89.     IEQUALIFIERB_RSHIFT = 1;
  90.     IND_SETMTRIG = $10;
  91.     IECODE_C0_LAST = $1F;
  92.     IECODE_C1_LAST = $9F;
  93.     IECODE_UP_PREFIX = $80;
  94.     IECLASS_MAX = $15;
  95.     IECODE_LATIN1_LAST = $FF;
  96.     IEQUALIFIERB_LEFTBUTTON = $E;
  97.     IECODE_REFRESH = 3;
  98.     IECLASS_GADGETDOWN = 7;
  99.     IEQUALIFIER_NUMERICPAD = $100;
  100.     IND_SETMTYPE = $F;
  101.     IND_REMHANDLER = $A;
  102.     IECODE_NOBUTTON = $FF;
  103.     IEQUALIFIER_CONTROL = 8;
  104.     IND_SETMPORT = $E;
  105.     IECLASS_CLOSEWINDOW = $B;
  106.     IEQUALIFIER_MULTIBROADCAST = $800;
  107.     IEQUALIFIER_REPEAT = $200;
  108.     IEQUALIFIERB_LCOMMAND = 6;
  109.     IEQUALIFIERB_CAPSLOCK = 2;
  110.     IECODE_ASCII_FIRST = $20;
  111.     IEQUALIFIER_RBUTTON = $2000;
  112.     IEQUALIFIERB_RCOMMAND = 7;
  113.     IEQUALIFIERB_MIDBUTTON = $C;
  114.     IEQUALIFIERB_RELATIVEMOUSE = $F;
  115.     IEQUALIFIER_LSHIFT = 1;
  116.     IECODE_NEWSIZE = 2;
  117.     IECLASS_INACTIVEWINDOW = $12;
  118.     IECODE_LBUTTON = $68;
  119.     IEQUALIFIER_RSHIFT = 2;
  120.     IECODE_MBUTTON = $6A;
  121.     IESUBCLASS_COMPATIBLE = 0;
  122.     IEQUALIFIERB_LALT = 4;
  123.     IECLASS_RAWKEY = 1;
  124.     IECODE_RBUTTON = $69;
  125.     IECODE_COMM_CODE_FIRST = $78;
  126.     IEQUALIFIER_LEFTBUTTON = $4000;
  127.     IECODE_ASCII_LAST = $7E;
  128.     IEQUALIFIERB_RALT = 5;
  129.     IESUBCLASS_TABLET = 2;
  130.     IECODE_ASCII_DEL = $7F;
  131.     IEQUALIFIERB_INTERRUPT = $A;
  132.     IECODE_REQSET = 1;
  133.     IEQUALIFIER_LCOMMAND = $40;
  134.     IND_WRITEEVENT = $B;
  135.     IECLASS_POINTERPOS = 4;
  136.     IECLASS_SIZEWINDOW = $C;
  137.     IECODE_COMM_CODE_LAST = $7F;
  138.     IECLASS_TIMER = 6;
  139.     IECODE_NEWACTIVE = 1;
  140.     IECLASS_EVENT = 3;
  141.     IEQUALIFIER_CAPSLOCK = 4;
  142.     IEQUALIFIER_RCOMMAND = $80;
  143.     IEQUALIFIER_MIDBUTTON = $1000;
  144.     IEQUALIFIER_RELATIVEMOUSE = $8000;
  145.     IECLASS_CHANGEWINDOW = $15;
  146.     IND_SETPERIOD = $D;
  147.     IECLASS_GADGETUP = 8;
  148.     IECLASS_REFRESHWINDOW = $D;
  149.  
  150.  
  151. function PeekQualifier: word;
  152.  
  153.  
  154. IMPLEMENTATION
  155. function PeekQualifier; xassembler;
  156. asm
  157.     movem.l    d5-d7/a2/a6,-(sp)
  158.     move.l    InputBase,a6
  159.     jsr        -$2A(a6)
  160.     move.w    d0,$18(sp)
  161.     movem.l    (sp)+,d5-d7/a2/a6
  162. end;
  163.  
  164. end.
  165.