
|
Toetsenbord scanner Genic Clubguide, 00-00-00
TOETSENBORD SCANNER
Van de heer R.van Dongen uit Opende ontving ik de volgende
brief :
Mijne Heren,
Allereerst mijn complimenten met uw voortreffelijk magazine,
naar mijn mening ŠŠn van de beste, zo niet het beste, MSX
computerblad.
Maar nu terzake : Hoe kan ik vanuit een (BASIC)programma
opvragen of de CAPS- of de SHIFT-Toets ingedrukt is ?
R. van Dongen, Opende
Inderdaad toetsen zoals SHIFT, CODE, GRAPH, CAPS of de
accenttoets zijn niet rechtstreeks van uit BASIC op te
vragen, met enig "gePEEK" lukt dit wel:
In het NEWKEY geheugen gebied staan namelijk 11 bytes (88
bits) die bepalen of een toets al dan niet is ingedrukt:
normaal staan alle bits op 1, wordt er een toets ingedrukt,
dan wordt het desbetreffende bit 0.
Die toetsenbordmatrix is als volgt geordend :
Voor een Europees Toetsenbord :
BIT : x7 x6 x5 x4 x3 x2 x1 x0
------------------------------------------------------
FBE5H : 7 6 5 4 3 2 1 0
FBE6H : ; ]? [? \ = - 9 8
FBE7H : B A ACC.T. / . , `? '?
FBE8H : J I H G F E D C
FBE9H : R Q P O N M L K
FBEAH : Z Y X W V U T S
FBEBH : F3 F2 F1 CODE CAP GRAPH CTRL SHIFT
FBECH : RET SEL BS STOP TAB ESC F5 F4
FBEDH : CR CD CU CL DEL INS HOME SPACE
FBEEH : 4 3 2 1 0 / + * } NUMERIC
FBEFH : . , - 9 8 7 6 5 } PAD.
VERKL. CR= Cursor Right CD= Cursor Down CU= Cursor Up CL=
Cursor Left. Achter sommige toetsen staat een vraagteken,
gebruik deze toetsen bij voorkeur niet omdat ze op een
Japanse machine anders in de toetsenbordmatrix staan!
Als u wilt opvragen of b.v. de CTRL-Toets is ingedrukt dan
kunt u het volgende gebruiken: IF PEEK(&HFEBB)=&B11111101
THEN... Maar bij deze methode schuilt een addertje onder het
gras, als bijvoorbeeld de CODE toets ook ingedrukt is dan
zal FBEBH 11101101B bevatten en het programma zal gewoon
doorgaan alsof de CTRL-Toets niet ingedrukt is.
Een betere methode is daarom : IF PEEK(&HFBEB)
AND&B00000010)=0 THEN.... Dit is een betere methode omdat
hier alleen het zevende bit (en dus niet het hele byte)
wordt gecontroleerd. Zie voor nadere uitleg over logische
operaties, het speciale artikel over dit onderwerp.
In het software menu bevindt zich een complete toetsenbord
scanner van Stefan Boer.
|