[Back to ISR SWAG index] [Back to Main SWAG index] [Original]

    {
    ³- Also, is there anyway of making "HOT-KEYS" without using ReadKey f³
    ³  CharS?  I want it For Integers or can I have CharS as a RANdoM #? ³
    ³  PROBLEMO!                                                         ³

    > Unless you want to Write an ISR (initiate and stay resident) routine   ³
    > that traps keyboard interrupts and either preprocesses them or passes  ³
    > them on to your routine, ReadKey is the only way. (Writing an ISR      ³
    > is not a simple task.)                                                 ³

    Actualy it is not that difficult in pascal:
    }
    Uses
      Dos;

    Const
      end_eks : Boolean = False;

    Var
      IntVec  : Pointer;

    Procedure Keybd; Interrupt;
    Var
      Key : Byte;
    begin
      Asm
        cli
      end;
      Key := Port[$60];

      Case Key of
        1   : end_eks := True;
        57  : Writeln(' You have pressed Space');
        75  : Writeln(' Left Arrow');
        77  : Writeln(' Right Arrow');
        203,
        205 : Writeln(' You have released an Arrow key');
      end;

      if not end_eks then
      Asm
        mov ah,0ch
        int 21h
        call IntVec  { Call original int 9 handler }
      end;
      { port[$20]:=$20} { if you dont call the original handler
                          you need to uncomment this }
    end;

    begin
      GetIntVec($09,Intvec);
      SetIntVec($09,@Keybd);
      Writeln(' Press <ESC> to end Program ');

      Repeat Until end_eks;

      SetIntVec($09,IntVec);

      Writeln(' Program terminatet');

    end.

[Back to ISR SWAG index] [Back to Main SWAG index] [Original]