XKBD - eXtern KeyBoarD utility ------------------------------ Versie 1.00 - Copyright (C) 1988 by Jan Bredenbeek Inleiding --------- Met de XKBD utility is het mogelijk een extern toetsenbord aan te sluiten via de SER1- of SER2-poort. Er is voorzien in volledige emulatie van CTRL-C en CTRL-F5 toetsen, alsmede ALTKEY en ALT-ENTER van Toolkit II. XKBD is compatible met QRAM. XKBD wordt geladen met de commando's: A=RESPR(1024) LBYTES XKBD,A CALL A of: LRESPR XKBD indien Toolkit II aanwezig is. Hierna heeft men de beschikking over een extra BASIC-commando KBD_USE: KBD_USE 1 gebruikt SER1 als poort voor het externe toetsenbord KBD_USE 2 gebruikt SER2 als poort voor het externe toetsenbord KBD_USE (of KBD_USE 0) schakelt het externe toetsenbord uit. Opmerkingen: ------------ 1. Op versie AH en JM machines is het normaal niet mogelijk extra BASIC-commando's te gebruiken in de BOOT-file welke ze inlaadt. Dit geldt niet voor XKBD, omdat hierin extra maatregelen zijn genomen welke dit probleem voorkomen. U kunt dus zonder probleem KBD_USE in uw BOOT-file gebruiken op AH- en JM-machines. 2. Indien u QRAM gebruikt moet XKBD worden ingeladen NA inladen van QRAM! Gebruik ------- Als KBD_USE geactiveerd is kunt u met het externe toetsenbord de QL bedienen. Het bestaande QL toetsenbord BLIJFT WERKEN. De besturing via het externe toetsenbord verloopt geheel via interrupts en veroorzaakt geen oponthoud van draaiende programma's. Wel is de voor het toetsenbord gebruikte seriele poort bezet. Het externe toetsenbord dient normale 8-bit ASCII codes te verzenden alsmede de QL codes voor cursor- en functietoetsen. ALT-toetsaanslagen dienen verzonden te worden als CHR$(255) gevolgd door de code van de toets welke tegelijk met ALT werd ingedrukt. Het externe toetsenbord dient zelf te zorgen voor auto-repeat van toetsen. De in Toolkit II ingebouwde ALT-faciliteiten (ALTKEY en ALT-ENTER) werken ook met XKBD. CTRL-C en CTRL-F5 werken ook als normaal. Alleen BREAK wordt niet geemuleerd, evenals KEYROW. Programma's welke het toetsenbord direct uitlezen via KEYROW (bv. spelletjes) zullen dan ook niet met het externe toetsenbord werken. Bij QRAM zal de cursortoetsenbesturing van de pointer eveneens niet werken, maar menu-keuzes d.m.v. toetsen van een keuze-letter (bv. F voor het Files-menu) werken wel. CTRL-C werkt ook normaal met QRAM. Gebruik van tweede QL als extern toetsenbord -------------------------------------------- Het is mogelijk een tweede QL te gebruiken als extern toetsenbord. Koppel de twee QL's aan elkaar via SER1 of SER2 (als u een QL-naar-QL kabel gebruikt dient u op de ene QL SER1 en op de andere SER2 te gebruiken), laad XKBD in op de QL die u extern wilt bedienen en geef KBD_USE 1 of 2, en geef op de QL welke u als extern toetsenbord gebruikt het commando: COPY_N con,ser1 (of COPY_N con,ser2) Hierbij gelden de volgende opmerkingen: 1. De CTRL-C toets zal normaal niet werken omdat deze "lokaal" gebruikt wordt door de tweede QL. Dit is echter te verhelpen door het commando POKE_W 163986,0 te geven op de tweede QL. 2. Indien u Toolkit II gebruikt op de tweede QL zal ALT-ENTER de laatste regel terughalen, maar hierbij wordt geen onderscheid gemaakt tussen verschillende windows. M.a.w. toetst u een regel in en gaat u dan naar een andere window dan zal ALT-ENTER toch de regel terughalen die u in de vorige window intypte, en niet de laatst ingetypte regel in de huidige window. Indien Toolkit II niet aanwezig is op de tweede QL zal ALT-ENTER wel normaal werken. Indien u dezelfde ALTKEY-toets geprogrammeerd hebt op de eerste en de tweede QL zal de definitie van de tweede QL gebruikt worden. 3. Het is niet mogelijk CTRL-F5 te gebruiken omdat deze lokaal gebruikt wordt door de tweede QL en dit ook niet (in tegenstelling tot CTRL-C) herdefinieerbaar is. U zult dus een andere toets hiervoor moeten gebruiken. De code welke XKBD als CTRL-F5 functie gebruikt is opgeslagen in byte-positie 2 en 3 van de XKBD-file. Indien u XKBD geladen hebt met A=RESPR(1024):LBYTES XKBD,A:CALL A is deze code dus opgeslagen op adres A+2 en A+3. Er worden twee bytes gebruikt; voor niet-ALT codes dient het hoge byte 0 te zijn en het lage byte gelijk aan de toetscode, en voor ALT-toetsen bevat het hoge byte de code van de toets ingedrukt met ALT en het lage byte 255. Voorbeeld: Indien u F5 wilt gebruiken voor de CTRL-F5 functie dient u het commando POKE_W A+2,248 te geven (omdat 248 de code van de F5-toets is). Indien u ALT-F5 wilt gebruiken hiervoor dient u POKE_W A+2,256*248+255 te geven. Het is ook mogelijk de code permanent op te slaan in de XKBD-file: OPEN#3,XKBD A%= PUT#3\2;A% CLOSE#3 --- END OF FILE ---