'=========================================================================== ' Subject: LEFT/RIGHT SHIFT (USING BITS) Date: 04-13-96 (11:22) ' Author: Jeremy Stanley Code: QB, QBasic, PDS ' Origin: FidoNet QUIK_BAS Echo Packet: KEYBOARD.ABC '=========================================================================== '> "There's a byte in the BIOS area, the bits of which say which Ctrl, Alt and '> Shift keys are depressed. There's another which helps you differentiate left '> from right keys. But I can't remember what they are... Anyone?" 'The first byte in question is at 0040:0017. This example program should 'demonstrate how to read the status of these keys: DEFINT A-Z CLS PRINT "Byte at 0040:0017 Press ESC to exit" PRINT " - bit 0 - Right shift" PRINT " - bit 1 - Left shift" PRINT " - bit 2 - Ctrl" PRINT " - bit 3 - Alt" PRINT " - bit 4 - Scroll lock" PRINT " - bit 5 - Num lock" PRINT " - bit 6 - Caps lock" PRINT " - bit 7 - Insert" DEF SEG = &H40 DO c = PEEK(&H17) FOR x = 0 TO 7 LOCATE x + 2, 1 e = 2 ^ x PRINT (c AND e) \ e NEXT LOOP UNTIL INKEY$ = CHR$(27) DEF SEG 'jeremy.stanley@darkstarbbs.com 'http://pages.prodigy.com/perigee/