home *** CD-ROM | disk | FTP | other *** search
/ Amiga ISO Collection / AmigaUtilCD2.iso / Programming / Pascal / MAXONPASCAL3.DMS / in.adf / DEMOS-OS1.3 / SysProg / RawKey.p < prev    next >
Encoding:
Text File  |  1994-07-23  |  2.2 KB  |  79 lines

  1. { MaxonPASCAL3-Anpasssung / Test:  falk Zühlsdorff (PackMAN) 1994 }
  2.  
  3. Program RawKey;
  4. USES INTUITION;
  5.  Var
  6.   Win: ^Window;
  7.   Msg: ^IntuiMessage;
  8.   Key: Byte;
  9.  
  10.  Procedure Decode(i: integer);
  11.    { Bezeichnung der Taste mit dem Code "i" ausgeben }
  12.    Var Zeile1, Zeile2, Zeile3, Zeile4: String[16];
  13.    Begin
  14.      Zeile1:= '~1234567890ß´\';
  15.      Zeile2:= 'QWERTZUIOPÜ+';
  16.      Zeile3:= 'ASDFGHJKLÖÄ#';
  17.      Zeile4:= '<YXCVBNM,.-';
  18.  
  19.      If (i >= $50) and (i <= $59) Then
  20.        write('Funktionstaste ', i-$4f)
  21.      Else
  22.       If (i >= $00) and (i <= $0d) Then
  23.         write(Zeile1[i+1])
  24.       Else
  25.       If (i >= $10) and (i <= $1b) Then
  26.         write(Zeile2[i-$0f])
  27.        Else
  28.        If (i >= $20) and (i <= $2b) Then
  29.         write(Zeile3[i-$1f])
  30.        Else
  31.         If (i >= $30) and (i <= $3a) Then
  32.          write(Zeile4[i-$2f])
  33.         Else
  34.          Case i of
  35.           $40: write('Space');
  36.           $41: write('Backspace');
  37.           $42: write('Tab');
  38.           $43: write('Enter');
  39.           $44: write('Return');
  40.           $45: write('Escape');
  41.           $46: write('Delete');
  42.           $4b: write('- im Ziffernblock');
  43.           $4c: write('Cursor Hoch');
  44.           $4d: write('Cursor Runter');
  45.           $4e: write('Cursor Rechts');
  46.           $4f: write('Cursor Links');
  47.           $5e: write('+ im Ziffernblock');
  48.           $5f: write('Help');
  49.           $60: write('Linkes Shift');
  50.           $61: write('Rechtes Shift');
  51.           $62: write('Caps Lock');
  52.           $63: write('Ctrl');
  53.           $64: write('Linkes Alt');
  54.           $65: write('Rechtes Alt');
  55.           $66: write('C=');
  56.           $67: write('Amiga');
  57.          Otherwise
  58.           write('Unbekannte Taste Nr. ',i);
  59.          End;
  60.    End;
  61.  
  62.  Begin
  63.   Win:=Open_Window(0, 0, 200, 50, 1,IDCMP_RAWKEY,
  64.                    ACTIVATE+WINDOWDEPTH+WINDOWDRAG,
  65.                    'Rawkey-Demo', Nil, 100, 50, 100, 50);
  66.   Repeat
  67.     Msg:=Wait_Port(Win^.UserPort);
  68.     Msg:=Get_Msg(Win^.UserPort);
  69.     Key:=Msg^.Code;
  70.     Decode(Key and $7f);     { Nur Bits 0 bis 6 }
  71.     If (Key and $80)=0 Then  { Bit 7 testen }
  72.       writeln(' gedrückt.')
  73.     Else
  74.       writeln(' losgelassen.')
  75.   Until Key=$c4;    { Code von "Return loslassen" }
  76.   Close_Window(Win)
  77.   CloseLib(Intuitionbase);
  78.  End.
  79.