home *** CD-ROM | disk | FTP | other *** search
- { MaxonPASCAL3-Anpasssung / Test: falk Zühlsdorff (PackMAN) 1994 }
-
- Program RawKey;
- USES INTUITION;
- Var
- Win: ^Window;
- Msg: ^IntuiMessage;
- Key: Byte;
-
- Procedure Decode(i: integer);
- { Bezeichnung der Taste mit dem Code "i" ausgeben }
- Var Zeile1, Zeile2, Zeile3, Zeile4: String[16];
- Begin
- Zeile1:= '~1234567890ß´\';
- Zeile2:= 'QWERTZUIOPÜ+';
- Zeile3:= 'ASDFGHJKLÖÄ#';
- Zeile4:= '<YXCVBNM,.-';
-
- If (i >= $50) and (i <= $59) Then
- write('Funktionstaste ', i-$4f)
- Else
- If (i >= $00) and (i <= $0d) Then
- write(Zeile1[i+1])
- Else
- If (i >= $10) and (i <= $1b) Then
- write(Zeile2[i-$0f])
- Else
- If (i >= $20) and (i <= $2b) Then
- write(Zeile3[i-$1f])
- Else
- If (i >= $30) and (i <= $3a) Then
- write(Zeile4[i-$2f])
- Else
- Case i of
- $40: write('Space');
- $41: write('Backspace');
- $42: write('Tab');
- $43: write('Enter');
- $44: write('Return');
- $45: write('Escape');
- $46: write('Delete');
- $4b: write('- im Ziffernblock');
- $4c: write('Cursor Hoch');
- $4d: write('Cursor Runter');
- $4e: write('Cursor Rechts');
- $4f: write('Cursor Links');
- $5e: write('+ im Ziffernblock');
- $5f: write('Help');
- $60: write('Linkes Shift');
- $61: write('Rechtes Shift');
- $62: write('Caps Lock');
- $63: write('Ctrl');
- $64: write('Linkes Alt');
- $65: write('Rechtes Alt');
- $66: write('C=');
- $67: write('Amiga');
- Otherwise
- write('Unbekannte Taste Nr. ',i);
- End;
- End;
-
- Begin
- Win:=Open_Window(0, 0, 200, 50, 1,IDCMP_RAWKEY,
- ACTIVATE+WINDOWDEPTH+WINDOWDRAG,
- 'Rawkey-Demo', Nil, 100, 50, 100, 50);
- Repeat
- Msg:=Wait_Port(Win^.UserPort);
- Msg:=Get_Msg(Win^.UserPort);
- Key:=Msg^.Code;
- Decode(Key and $7f); { Nur Bits 0 bis 6 }
- If (Key and $80)=0 Then { Bit 7 testen }
- writeln(' gedrückt.')
- Else
- writeln(' losgelassen.')
- Until Key=$c4; { Code von "Return loslassen" }
- Close_Window(Win)
- CloseLib(Intuitionbase);
- End.
-