Tips & Tricks

Programmieren Sie Ihre Tastatur!

Mit diesem Programm werden nicht nur die Funktionstasten, sondern die gesamte Tastatur frei programmierbar.

Wenn Sie das Programm KEY-PROGGER (Listing 1) eingegeben haben, können Sie es mit LOAD"KEY-PROGGER",1,1 oder, wenn Sie ein Diskettenlaufwerk besitzen, mit LOAD"KEY-PROGGER",8,1 laden. Nach dem Laden geben Sie am besten den Basic-Befehl NEW ein, da Sie sonst später eine OUT OF MEMORY-Meldung erhalten. Nun sind Sie soweit, daß Sie das Programm mit SYS 49152 starten können. Nach dem Starten istjedoch keine Veränderung zu bemerken. Durch den SYS-Befehl wird nur die Tastaturabfrage über eine neue Routine geleitet, welche die Tastenfunktionen aus einer Tabelle liest, die im RAM steht, und daher verändert werden kann. Wie aber ändert man nun die Tastenbelegung? Dazu ist der leistungsfähige #-Befehl implementiert. Damit KEY-PROGGER mit möglichst vielen Erweiterungen zusammenarbeitet, ist es möglich, diesen Befehl ein- und auszuschalten. Um also die Tastenbelegung zu ändern, muß dieser Befehl zuerst eingeschaltet werden. Dies geschieht mit SYS 49152+3. Ausgeschaltet wird er mit SYS 49152+6. Die Anwendung des # -Befehls ist sehr einfach. Sie geschieht in der Form: #nr,string

nr entspricht in den allermeisten Fällen dem ASCII-Wert eines Zeichens. Alle möglichen Tastaturzuordnungen sind in Bild 1 aufgeführt. Wo dies nicht so ist, kann die Nummer mit einem kleinen Programm festgestellt werden:
10 FORI=0TO255
20 #I,STR$(I)
30 NEXTI

Bild 1. Tastaturzuordnung auf einen Blick

Nachdem dieses kleine Programm mit RUN gestartet wird, erscheint beim Druck auf jede Taste eine Zahl auf dem Bildschirm. Diese Zahl ist die Nummer der Taste. Es sind jedoch nicht alle 256 Werte von der Tastatur aus erreichbar. Insgesamt erhält man jedoch 187 programmierbare Tastenfunktionen. Diese Zahl reduziert sich jedoch noch einmal, da es nicht sinnvoll ist, manche Tasten, wie zum Beispiel die RETURN-Taste umzudefinieren, da diese wichtige Funktionen erfüllen.

Mit dem # -Befehl können jeder Taste bis zu 10 Zeichen zugeordnet werden. Versuchen Sie es doch einmal, zum Beispiel mit:
#12,"LIST"+CHR$(13)

Wenn Sie nun gleichzeitig CTRL und L drücken, erscheint der Befehl LIST auf dem Bildschirm und wird gleich ausgeführt. Haben Sie nach einer Zeit des Herumprobierens den Wunsch, die alte Tastaturbelegung wieder herzustellen, so ist dies ganz einfach mit dem Befehl SYS 49152+9 möglich.

Außerdem kann die Belegung der Tastatur gespeichert und wieder geladen werden. Die Befehle dazu sind:
Speichern: SYS 49152+12,"name",ga
Laden: SYS 49152+15,"name",ga
»ga« ist dabei die Geräteadresse, also 1 für Kassettenrecorder und 8 für Diskettenlaufwerk. So kann jeder seine »ideale« Lösung auf einfachste Weise festhalten.

Tastatur-Generator

Die Anwendungsgebiete der programmierten Tastaturen sind nahezu unbegrenzt. So läßt sich der C 64 wie der SX 64 an ein Diskettenlaufwerk anpassen. Mit:
#131, "LOAD"+CHR$(34)+ " * " +CHR$(34)+ ",8"
wird die RUN/STOP-Taste so umdefiniert, daß nicht mehr ein Kassettenprogramm, sondern das erste Programm von der Diskette geladen wird.

Da KEY-PROGGER auch ohne Probleme mit dem DOS 5.1 zusammenarbeitet, istjetztauch ein Directoryauf Knopfdruck möglich.

Will man gleichzeitig mit KEY-PROGGER und Hypra-Load arbeiten, so muß man erst Hypra-Load und dann KEY-PROGGER mitSYS 49152+18 statt mit SYS 49152 starten.

Am einfachsten ist die Belegung der Tastatur mit dem Tastatur-Generator. Nach Abtippen von Listing 2 speichern Sie den Tastatur-Generator zuerst ab. Nun laden Sie KEY-PROGGER wie oben beschrieben und geben anschließend NEW ein. Danach können Sie den Tastatur-Generator laden und mit RUN starten. Der Tastatur-Generator startet KEY-PROGGER automatisch. Nach zirka fünf Sekunden meldet sich der Tastatur-Generator mit der Frage, welche Taste umdefiniert werden soll. Sie brauchen nur diese Taste zu drücken. Der Computer zeigt dann, wie die Taste bisher belegt war. Danach können Sie Ihre neue Belegung in ein 10Zeichen breites Feld eingeben. Die Taste DEL löscht die Eingabe. Mit RETURN wird die Eingabe abgeschlossen. Haben Sie einen Befehl eingegeben, der sofort nach Drücken der Taste ausgeführt werden soll, zum Beispiel RUN, so schließen Sie die Eingabe mit SHIFT RETURN ab. Drücken Sie RETURN, ohne eine neue Belegung eingegeben zu haben, so bleibt die alte Belegung erhalten.

Nach der Eingabe erscheint ein Menü, mit dem Sie die Definitionen fortsetzen können (1), die letzte Eingabe rückgängig machen (2), die neue Tastaturbelegung speichern (3), die ursprüngliche Belegung wieder herstellen (4) oder das Programm beenden können (5). Somit kann sich jeder auf einfachste Weise eine individuelle Tastaturbelegung gestalten.

(Markus Stecher/ah)
PROGRAMM : KEY-PROGGER    C000 C1B8
-----------------------------------
C000 : 4C 72 C1 4C 82 C0 4C 67   AD
C008 : C1 4C 4B C0 4C 7F C1 4C   3B
C010 : 97 C1 4C AF C1 A9 00 A0   3B
C018 : A0 85 F7 84 F8 A2 20 A0   70
C020 : 00 B1 F7 91 F7 C8 D0 F9   26
C028 : E6 F8 CA D0 F4 60 A9 00   50
C030 : A0 E0 85 F7 84 F8 A2 20   7B
C038 : A0 00 B1 F7 91 F7 C8 D0   E1
C040 : F9 E6 F8 CA D0 F4 A9 35   09
C048 : 85 01 60 A9 B6 A0 C1 85   1E
C050 : F7 84 F8 A2 00 A0 00 8A   36
C058 : 91 F7 C8 A9 00 91 F7 18   E9
C060 : A5 F7 69 0A 85 F7 A5 F8   3D
C068 : 69 00 85 F8 E8 D0 E6 60   C3
C070 : A9 8D A0 C0 A2 4C 78 8E   AB
C078 : 34 EB 8D 35 EB 8C 36 EB   80
C080 : 58 60 A9 E3 A0 C0 8D 08   45
C088 : 03 8C 09 03 60 A9 B6 A0   E4
C090 : C1 85 F7 84 F8 86 F9 A2   93
C098 : 00 86 FA A5 F9 0A 85 FB   4D
C0A0 : A5 FA 2A 85 FC 06 F9 26   32
C0A8 : FA 06 F9 26 FA 06 F9 26   FD
C0B0 : FA 18 A5 F9 65 FB 85 F9   9F
C0B8 : A5 FA 65 FC 85 FA 18 A5   AF
C0C0 : F7 65 F9 85 F7 A5 F8 65   F4
C0C8 : FA 85 F8 A0 00 84 C6 B1   7A
C0D0 : F7 99 77 02 F0 0A E6 C6   3A
C0D8 : C8 C0 0A F0 03 4C CF C0   F4
C0E0 : 4C 42 EB 20 73 00 C9 23   F1
C0E8 : F0 06 20 79 00 4C E7 A7   64
C0F0 : 20 9B B7 86 F9 A2 00 A9   A4
C0F8 : B6 A0 C1 85 F7 84 F8 86   B4
C100 : FA A5 F9 0A 85 FB A5 FA   51
C108 : 2A 85 FC 06 F9 26 FA 06   BD
C110 : F9 26 FA 06 F9 26 FA 18   89
C118 : A5 F9 65 FB 85 F9 A5 FA   47
C120 : 65 FC 85 FA 18 A5 F7 65   1D
C128 : F9 85 F7 A5 F8 65 FA 85   48
C130 : F8 20 FD AE 20 9E AD 24   83
C138 : 0D 30 05 A2 16 4C 3A A4   E9
C140 : 20 A6 B6 C9 0B 90 05 A2   29
C148 : 17 4C 3A A4 AA A0 00 E8   2A
C150 : CA F0 09 B1 22 91 F7 C8   2B
C158 : C9 0D D0 F4 C0 0B F0 04   AB
C160 : A9 00 91 F7 4C AE A7 A9   99
C168 : E4 A0 A7 8D 08 03 8C 09   15
C170 : 03 60 20 15 C0 20 2E C0   95
C178 : 20 4B C0 20 70 C0 60 20   41
C180 : FD AE 20 D4 E1 A9 B6 A0   FE
C188 : C1 85 F7 84 F8 A9 F7 A2   9C
C190 : B7 A0 CB 20 D8 FF 60 20   DD
C198 : FD AE A9 00 85 0A 20 D4   2A
C1A0 : E1 A9 01 85 B9 A5 0A A2   7D
C1A8 : B6 A0 C1 20 D5 FF 60 20   42
C1B0 : 4B C0 20 70 C0 60 FF 1B   B7
Listing 1. Hauptprogramm »Frei programmierbare Tastatur«. Bitte beachten Sie die Eingabehinweise auf Seite 8.
1000 rem    tastatur-generator
1010 rem
1020 rem 1985 von markus stecher
1030 rem
1040 poke53280,0
1050 poke53281,0
1060 sys49152
1070 sys49152+3
1080 dimb$(255)
1090 gosub1700:gosub1740
1100 print"{clr}{rvon}           tastatur-generator           ";chr$(8)
1110 poke1,53
1120 print"welche taste ? ";
1130 z$=""
1140 geta$:ifa$=""then1140
1150 ifa$=chr$(13)then1180
1160 z$=z$+a$
1170 goto1140
1180 z=val(z$)
1190 printchr$(34);chr$(20);chr$(z)
1200 b$=b$(z):cr=0
1210 l=len(b$(z))
1220 ifright$(b$,1)=chr$(13)thenb$=left$(b$,l-1):cr=1
1230 print"{down}alte belegung: ";chr$(34);b$;chr$(34);
1240 ifcrthenprint"+chr$(13)";
1250 print:print"{down}neue belegung: {SHIFT--}           {SHIFT--}{left}{left}{left}{left}{left}{left}{left}{left}{left}{left}{left}{left}";chr$(34);chr$(20);
1260 poke1,55
1270 f$=""
1280 geta$:ifa$=""then1280
1290 ifa$=chr$(20)thenprint:print"{up}{up}{up}{up}":goto1250
1300 ifa$=chr$(13)then1370
1310 ifa$=chr$(141)then1360
1320 iflen(f$)=10then1280
1330 printa$;
1340 f$=f$+a$
1350 goto1280
1360 f$=f$+chr$(13)
1370 iff$=""thenf$=b$(z)
1380 al$=b$(z)
1390 b$(z)=f$
1400 print
1410 print"{down}{down}bitte waehlen:"
1420 print"{down}naechste eingabe.............1"
1430 print"{down}letzte eingabe loeschen......2"
1440 print"{down}tastaturbelegung speichern...3"
1450 print"{down}alte belegung herstellen.....4"
1460 print"{down}ende.........................5{down}{down}"
1470 geta$:ifa$<"1"ora$>"5"then1470
1480 onval(a$)goto1490,1500,1520,1610,1660
1490 goto1100
1500 b$(z)=al$
1510 goto1100
1520 input"{clr}{down}{down}name ";n$
1530 print"{down}{down}<d>isk oder <t>ape ? ";
1540 getg$:ifg$<>"d"andg$<>"t"then1540
1550 ga=1
1560 ifg$="d"thenga=8
1570 print"{down}{down}bitte warten"
1580 gosub1780
1590 sys49152+12,n$,ga
1600 goto1100
1610 print"{clr}{down}{down}soll wirklich die alte belegung"
1620 print"{down}hergestellt werden (j/n) ?"
1630 geta$:ifa$=<>"j"anda$<>"n"then1630
1640 ifa$="j"thensys49152+9
1650 goto1100
1660 print"{clr}{down}{down} auf wiedersehen !"
1670 gosub1780
1680 poke1,53
1690 end
1700 fori=0to255
1710 #i,str$(i)+chr$(13)
1720 nexti
1730 return
1740 fori=0to255
1750 b$(i)=chr$(i)
1760 nexti
1770 return
1780 fori=0to255
1790 #i,b$(i)
1800 nexti
1810 return
Listing 2. »Tastaturgenerator«. Bitte beachten Sie die Eingabehinweise auf Seite 6.
PDF Diesen Artikel als PDF herunterladen
Mastodon Diesen Artikel auf Mastodon teilen
← Vorheriger ArtikelNächster Artikel →