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, Insert
Sori, 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.