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

    {
     ER> Anyway, Does anyone knows who to make the num/caps/scroll leds on the
     ER> keyboard 'flicker' or just light up?
    }

    PROGRAM FlashLED;

    USES DOS, Crt;

    CONST
      LOCKSOFF = $8F;  { Mask off all LEDs }
      SCRLOCK  = 16;
      NUMLOCK  = 32;
      CAPLOCK  = 64;

    VAR
      KeyLocks  : BYTE ABSOLUTE $0040:$0017;  { LED bits at this FAR address }
      SaveLock  : BYTE;                       { Used to save LED status bits }

    { To make DOS cause LED update }
    PROCEDURE DummyDosCall; ASSEMBLER;
    asm
      mov ah, 11
      int $21
    End;

    VAR
      Shift : BYTE;                    { Used in bit shifting of LEDs }

    BEGIN
      { Store current state }
      SaveLock := KeyLocks;
      Shift    := 1;

      Repeat
        { Turn on the LED bit according to Shift }
        KeyLocks := (SCRLOCK SHL Shift);

        { Set Shift to indicate the LED to the right }
        Shift := (Shift + 1) MOD 3;

        { Allow DOS to update the LEDs }
        DummyDosCall;

        { Simple pause }
        Delay( 200 );
      Until KeyPressed;

      { Restore original keyboard state }
      KeyLocks := SaveLock;
    END.

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