Näppäimistöllä on eräitä erikoisnäppäimiä, joiden tilan pystyy lukemaan käyttämättä INKEY$- tai INP(&H60) -käskyjä. Näitä ovat Shiftit, Control, Alt, Scroll Lock, Num Lock, Caps Lock ja Insert.
Tieto näiden näppäimien tilasta löytyy nimittäin muistista osoitteesta 0040:0017 bittimuodossa. Tämä ohjelma tarkkailee kunkin näppäimen tilaa kunnes painetaan Esc.
DIM n(1) AS STRING * 15
DIM t(7) AS STRING * 15
FOR i = 0 TO 1
READ n(i)
NEXT
FOR i = 0 TO 7
READ t(i)
NEXT
DEF SEG = &H40
DO
x = PEEK(&H17)
FOR i = 0 TO 7
LOCATE i + 1: PRINT t(i); n(SGN(x AND 2 ^ i))
NEXT
LOOP WHILE INKEY$ <> CHR$(27)
DATA ei painettu, painettu
DATA Oikea Shift, Vasen Shift, Control, Alt
DATA Scroll Lock, Num Lock, Caps Lock, InsertSori, mutta oiskos ollut helpompi IMP:llä?
Entäs noi F1-F12 näppäimet?
Muiden näppäimien lukeminen ei ole mahdollista kuin ohjelmassa esitettyjen. Ideana on se, että kyseisten näppäinten tilan saa selville milloin vain ilman mitään näppäimistökäsittelijöitä tai -"handlereita".
F1-F12 -näppäimet saa INKEY$:lläkin. Muistaakseni ne olivat CHR$(0) + jotain
Aihe on jo aika vanha, joten et voi enää vastata siihen.