Source file: /~heha/hsn/t_und_m.zip/SRC/ALTGR95.PAS

library altgr95;
{$C PRELOAD FIXED PERMANENT}
uses WinDos,WinProcs,WinTypes;
var
 OldInt09: Pointer;
 KS: TKeyboardState;

procedure NewInt09; interrupt;
 const
  E0Flag:Boolean=false;
 var
  B:Byte;
  ShiftState: Byte absolute $40:$96;    {müßte gehen!!}
 begin
  B:=Port[$60];
  if E0Flag then case B of
   92: begin
    GetKeyboardState(KS);
    KS[VK_Control]:=#$80;
    KS[VK_Menu]:=#$80;
    SetKeyboardState(KS);
   end;
   220: begin
    GetKeyboardState(KS);
    KS[VK_Control]:=#$00;
    KS[VK_Menu]:=#$00;
    SetKeyboardState(KS);
   end;
  end;
  E0Flag:=B=$E0;
  asm
   pushf
   call [OldInt09]
  end;
 end;

procedure WEP;
 begin
  SetIntVec(9,OldInt09);
 end;

begin
 GetIntVec(9,OldInt09);
 SetIntVec(9,@NewInt09);
end.
Detected encoding: OEM (CP437)1
Wrong umlauts? - Assume file is ANSI (CP1252) encoded