C 64
Tips & Tricks

Die Suche nach den Synthtischen

Das Programm ermöglicht die systematische Suche nach allen vom Betriebssystem unterstützten Steuerzeichen. Man ist nun nicht mehr angewiesen auf zum Teil lückenhafte Tabellen synthetischer Steuerzeichen, sondern kann sich stattdessen selbst auf die Suche begeben.

Von den so sagenumwobenen »synthetischen Steuerzeichen« war in früheren Ausgaben dieser Zeitschrift schon die Rede. Jedoch erhielt der Leser bislang noch kein einigermaßen handfestes »Kochrezept« zur erfolgreichen Suche nach ihnen. Mit dem folgenden Programm soll diese Lücke geschlossen werden.

Es gibt nach Eingabe des gewünschten ASCII-Wertes alle Tastenkombinationen aus, deren Betätigung die Tastaturdecodierroutine dazu veranlaßt, den entsprechenden ASCII-Wert in den Tastaturpuffer zu schreiben.

Es werden allerdings auch solche Kombinationen aufgeführt, deren »ASCII-Werte« zwar in den Decodiertabellen (die ab $EB81 im Betriebssystem beginnen) an entsprechender Stelle aufgeführt sind, jedoch NICHT im Tastaturpuffer erscheinen (zum Beispiel die »2« bei Betätigung der SHIFT-Taste). Der Leser wird diese jedoch schnell von der ersten Gruppe unterscheiden können.

Zum Schluß noch zwei Bemerkungen:

  1. Bei gleichzeitigem Erscheinen von zwei oder mehreren Tastenkombinationen für einen bestimmten ASCII-Code kann oft — jedoch nicht immer — eine Kombination gegen eine andere ausgetauscht werden, ohne das Endresultat zu verändern (Beispiel für eine Ausnahme: Sowohl die RUN/STOP-Taste wie auch die CTRL C-Kombination belegen gemäß der Decodiertabellen den ASCII-Wert »3«, jedoch kann mit »CTRL C« kein Programm abgestoppt werden, da für die Abfrage der RUN/STOP-Taste eine gesonderte Routine zuständig ist, die nur diese Taste erkennt).
  2. Alle »synthetischen Steuerzeichen«, für deren Erzeugung der Basic-Interpreter zuständig ist, kann dieses Programm nicht erkennen, da es lediglich auf die Tastaturdecodiertabellen im Kernal Bezug nimmt.

Da das Programm lediglich die Tastaturdecodiertabellen des Betriebssystems benötigt (und die dort aufgeführten ASCII-Werte in ein ARRAY einliest) kann es leicht durch entsprechende Abänderung der in Zeile 20 enthaltenen Anfangsadressen in eine auch auf dem VC 20 laufende Version umgeschrieben werden.

(Engin Gülen/gk)
1 rem \ = pfund zeichen
2 rem ^ = pfeil nach oben
3 rem _ = pfeil nach links
4 rem @ = klammeraffe
10 rem        *  steuerzeichen   *
20 rem         *  fuer den cbm-64 *
30 rem          *  engin  guelen   *
40 rem           *  postweg     2   *
50 rem            *  4192 kalkar 1   *
60 poke53280,0:poke53281,0
70 dimas(3,63)
80 rem anfangsadresseen der
90 rem tastaturdekodiertabellen
100 data60289,60354,60419,60536
110 fori=0to3:reada(i):next
120 fori=0to3:forj=0to63
130 as(i,j)=peek(a(i)+j)
140 nextj,i
150 rem tastaturmatrix
160 datadel,return,crsr(right),f7,f1,f3,f5,crsr(down)
170 data3,w,a,4,z,s,e,shift(l)
180 data5,r,d,6,c,f,t,x
190 data7,y,g,8,b,h,u,v
200 data9,i,j,0,m,k,o,n
210 data+,p,l,-,.,doppelpunkt,@,komma
220 data\,*,;,home,shift(r),=,^,/
230 data1,_,ctrl,2,space,c=,q,run/stop
240 dimta$(64):fori=0to63:readta$(i):nexti
250 data-----,shift,c=   ,ctrl ,
260 fori=0to3:reada$(i):next
270 input"{clr}{yel}{rght}{rght}{rght}{rght}{rght}{rght}{rght}{rght}{rght}{rvon} ascii-kode ";as%
280 ifas%<0oras%>255then270
290 print:print:fori=0to3:forj=0to63
300 ifas%=as(i,j)thenprint"{wht}"a$(i),:goto320
310 goto340
320 ifleft$(ta$(j),2)=left$(a$(i),2)thenprint:goto340
330 print"{cyn}"ta$(j)
340 nextj,i
350 printspc(193)"{rvon}{grn} taste "
360 geta$:ifa$=""then360
370 goto270
Listing zur Steuerzeichensuche
PDF Diesen Artikel als PDF herunterladen
Mastodon Diesen Artikel auf Mastodon teilen
← Vorheriger ArtikelNächster Artikel →