Quick-Tips

Nachlaufen der Tastatur verhindern

Mit den Cursor-Pfeiltasten einen Text scrollen oder mit Delete Zeichen löschen, das können die meisten Programme. Endlich hat der Programmierer diese Funktionen implementiert, alles scheint zu stimmen - bis auf die Tastensteuerung, die sich als extrem träge erweist: Man scrollt ein paar Zeilen, läßt dann die Taste los, und der Rechner scrollt munter ein paar Sekunden weiter - Wer kennt das Problem nicht?

Woran's liegt, ist Ihnen vielleicht bekannt: Während der Rechner mit Scrollen (oder anderem) beschäftigt ist, sammeln sich schon neue Tastendrücke im Tastaturpuffer, weil der Benutzer die Taste gedrückt hält. Wenn nun die Taste losgelassen wird, werden die angesammelten Tastendrücke noch verarbeitet.

Die vorgestellte Lösung hat verschiedene Vorteile: Es wird wirklich nur soviel gescrollt, wie es der User wünscht. Gleichzeitig werden aber „schon im voraus eingegebene Tastenkommandos“ nicht gelöscht, wie es der Fall ist, wenn man den Tastaturpuffer löscht. Auch bremst dieses Verfahren nicht so sehr wie das Löschen über eine Event-Schleife.

Die Routinen werden ganz einfach angewendet: Nachdem der Tastendruck erkannt wurde (in sauberen GEM-Programmen: EVNT_MULTI), wird repeat stop aufgerufen. Das Programm scrollt nun und ruft danach repeat on auf. Die Routinen schalten den Tastaturrepeat vor dem Scrollen aus und danach wieder ein. Vorsicht: Wenn der Tastaturrepeat ausgeschaltet wurde, sollten keine Dialoge oder die Fileselectbox aufgerufen werden!

Natürlich funktioniert dies nicht nur beim Scrollen. Die Routinen arbeiten auf jedem kompatiblen Rechner.

David Reitter

'(c) 1994 by MAXON-Computer 
'Autor: David Reitter
'
PROCEDURE repeat_stop
	IF krep_is_off!=FALSE
		old_conterm|=PEEK(&H484) ! alten Wert merken 
	ENDIF
	SPOKE &H484 ,BCLR(PEEK(&H484),1) ! Repeat abschalten
	krep_is_off !=TRUE 
RETURN

PROCEDURE repeat_on 
	IF krep_is_off!
		SPOKE &H484,old_conterm| ! Alten Wert setzen
		krep_is_off!=FALSE 
	ENDIF
RETURN

Warum dröhnen Mega-STE und TT so?

Zu allererst Grundsätzliches: die Redaktion und der Autor dieses Quicktips können nicht abschätzen, inwieweit diese Umbauanleitung bzw. Modifizierung des Computers Ihrer (dem geneigten Leser) Fähigkeit zum umsetzen in die Realität entspricht. Diese beschriebene Modifizierung durchzuführen unterliegt immer der Verantwortung des Ausführenden, im Zweifelsfall lassen Sie die Modifizierung einen Bekannten oder sogar Ihren Fachhändler durchführen. Für unsachgemäß ausgeführte Arbeiten (Computer ist defekt) können wir keine Verantwortung übernehmen, weil wir nicht nachprüfen können ob Ihre Fähigkeit der Forderung entspricht diese Arbeiten auszuführen.

Es gibt zwei verschiedene Netzteile im MegaSTE und TT030. diese unterscheiden sich lediglich in der Leistungsabgabe und sind in den Gehäuseabmessungen als auch Kabelbelegung (Farbe) absolut identisch:

PSM-534     =   5 V, 0.0-7.0 A
MegaSTE        -5 V, 0.0-0.4 A 
(max. 52 6W)   12 V, 0.0-2.0 A 
              -12 V, 0.0-0.3 A

PSM-5341    =   5 V, 0.0-7.0 A
TT030          -5 V, 0.0-0.4 A
(max. 64 6W)   12 V, 0.0-2.0 A 
              -12 V, 0.0-0.3 A

Man nimmt ein scharfes Messer (Teppichmesser) und trennt die Streben am Lüfter (an der Gehäuserückwand) heraus. Die Luft wird von vorne angesaugt, durch die Löcher im Blechgehäuse des Netzteiles gesaugt und durch den Lüfter wieder nach außen geblasen. Das Dröhnen kommt daher zustande, daß die Kanten der Löcher und Streben nicht abgerundet sind und daher durch den Luftstrom in Vibration versetzt werden. Durch das Entfernen der Streben und Drosselung der Ventilatordrehzahl wird der Luftstrom reduziert und das Vibrieren vermieden.

Für die Drehzahldrosselung nimmt man einen 47f2 oder 5612 Widerstand mit 0.125 Watt Leistung und lötet ihn (oder benutzt zwei Lüsterklemmen) in die Lüfterzuleitung (schwarze Ader: GND, rote Ader: +5 V) ein, es darf unter keinen Umständen das Kabel vom Lüfter am Netzteil abgezogen werden! Warum? Die Lüfter hängen im -12-Volt-Zweig des Netzteiles und sorgen für eine immerwährende Grundlast. Zieht man das Kabel ab wird der -12-Volt-Zweig nicht mehr belastet und im Übertrager (elektronisches Bauteil innerhalb des Netzteiles) entstehen Wirbelströme! Das ist auch der Grund warum, die Netzteile aus dem MegaSTE und TT030 meistens 2 Stunden mit abgezogenen Lüfter arbeiten und dann mit fast glühendem Übertrager plötzlich aus dem Leben scheiden!

Michael Ruge

Optical-Mouse

Für die Benutzer der Optical Mouse von Golden IMAGE gibt es einen heißen Tip.

Das mitgelieferte Mousepad der Optical Mouse von Golden Image, das man für den Betrieb unbedingt benötigt, ist sehr schnell abgenutzt. Danach könnte man theoretisch die Maus auch wegwerfen. Wenn man nun dieses Mousepad in eine normale Klarsichthülle steckt, dann steht dem abnutzungsfreien Betrieb nichts mehr im Wege. Bei mir funktioniert dies problemlos seit einigen Jahren.

Andreas Fries

SPEEDO- und TrueType-Fonts friedlich vereint

Ab SPEEDO-GDOS 5.0 und ab NVDI 3.0 können auf ATARI Rechnern nicht nur SPEEDO-Vektor-Fonts von Bitstream, sondern auch TrueType- und unter SPEEDO-GDOS auch Type 1 - Vektor-Fonts eingesetzt werden. Da insbesondere bei kleinem RAM- und Festplattenspeicher SPEEDO-Fonts schneller in der Handhabung sind, empfiehlt es sich, SPEEDO-Vektor-Fonts und andere Fonts in eigenen Ordnern zu speichern. Mit Hilfe des neuen Outline-Programms für SPEEDO-GDOS sollte man daher unter OPTIONEN, PFAD-Optionen den ersten Pfad für SPEEDO-Fonts reservieren. Für die erweiterten Pfad-Optionen gibt man dann einen eigenen Zugriffspfad für TrueType- und Type-1-Fonts an, also z.B

C:\GEMSYS\BTFONTS (für SPEEDO-Vektor-Fonts)
C:\GEMSYS\TTFONTS (für Truetype-Fonts)
C:\GEMSYS\T1FONTS (für Type-1-Vektor-Fonts)

Alle *.SPD-Dateien kommen in den ersten Pfad, alle *.TTF in den zweiten Pfad usw. Die teilweise mitgelieferten *.TDF/ *.AFM-Dateien sind für den Fonteinsatz nicht notwendig.

Der Vorteil dieser Anordnung ist z.B., daß man die langsameren TT- und T1-Fonts schnell abklemmen kann, indem man in OUTLINE.PRG die entsprechenden Pfade kurzfristig abklemmt. Die Fonts werden nach einem RESET nicht mehr berücksichtigt. Wenn man diese Fonts wieder braucht, genügt das Wiedereintragen der Pfadinformationen. Was man allerdings nicht machen sollte ist das Umbenennen der entsprechenden Fontordner ohne Pfadkorrektur im OUTLINE.PRG, da SPEEDO-GDOS unter bestimmten Umständen dann abstürzen kann. Den Pfad für die TT-Fonts kann man auch abklemmen. indem man in der Datei EXTEND.SYS ein Semikolon vor die XPATH-Zeile setzt und nach dem Sichern der Datei einen Reset auslöst.

That's Write Anwender ab Version 3.0 können die SPEEDO-Vektor-Fonts sowohl für das Textverarbeitungsprogramm als auch für das Betriebssystem einheitlich verwalten, indem man entweder den Zugriffspfad für SPEEDO-GDOS auf TWRITE3\BT-FONTS abändert oder den Ordner BTFONTS aus dem Ordner TWRITE3 löscht. Beim nächsten Aufruf von SPEEDO-Vektor-Fonts sucht That's Write eigenständig im Wurzelverzeichnis von C: nach einem Ordner BTFONTS. Leider sucht That’s Write nur im Wurzelverzeichnis nach dem Ordner, so daß bei dieser Vorgehensweise die Fontordner nicht in einem Ordner angelegt werden dürfen. Die Einstellung der Pfadoption in OUTLINE.PRG auf TWRITE3/BTFONTS hat leider den Nachteil, daß nicht alle Programme, die GDOS benutzen, damit zurechtkommen. Hier muß man gegebenenfalls etwas probieren und testen.

Wenn dann aufgrund der vielen Möglichkeiten SPEEDO-GDOS nicht mehr laufen will, sollte man in der EXTEND.SYS die Zeile

ERRORS=!C:\GDOSERR.LOG 

einfügen. Alle Fehlermeldungen von SPEEDO-GDOS 5 werden dann zwangsweise in die Datei GDOSERR.LOG geschrieben. So hat man wenigstens die Chance, nachträglich zu erkennen, warum SPEEDO-GDOS nicht laufen will.

Jens Bender

Replace-Befehl in GFA-BASIC

In GFA-BASIC 3.x fehlt eigentlich ein REPLACE-Befehl. der in einem String ein Stringteil gegen einen anderen Stringteil austauscht. Gebraucht wird dies immer wieder für folgende Aufgaben:

Die untenstehende Routine ersetzt den fehlenden GFA-Befehl als Function.

Da alle Variablen als LOCAL deklariert sind, kann die Function problemlos in jedes GFA-Listing eingebunden werden. Hier zwei Beispiele:

PRINT @replace$("Muetze", "ue","ü")
' schreibt "Mütze" auf den 
' Bildschirm
aktie$=@replace$("B M W"," ", "")
' entfernt die Leerzeichen 
' im Wort

Peter Harder

'(c) 1994 by MAXON-Computer
'Autor: Peter Harder
'
FUNCTION replace$(strng$,raus$,rein$)
	LOCAL right$,len_dif&,pos&,beg& 
	len_dif&=LEN(rein$)-LEN(raus$)
	'
	pos&=INSTR(strng$,raus$) 
	WHILE pos&
		'
		right$=MID$(strng$,pos&+LEN(raus$)) 
		IF LEN(strng$)+len_dif<=32767
			strng$=LEFT$(strng$,pos&-1)+rein$+right$ 
		ENDIF
		'
		beg&=pos&+1+len_dif&
		pos&=INSTR(beg&,strng$,raus$) 
	WEND
	'
 	RETURN strng$ 
	'
ENDFUNC

Monitor- und Gehäusereinigung

Zur Reinigung von Monitoren und Gehäusen (gerade bei Rauchern sehen diese oft schlimm aus) läßt sich Industriealkohol (beispielsweise aus der Apotheke) prima verwenden: Einfach auf einen Lappen auftragen und den Dreck abwischen. Auch hartnäckigen Schmutz kann man auf diese Art und Weise einfach beseitigen. 100 ml kosten ca. 2- bis 3 - DM und halten ein ganzes Rechnerleben lang.



Aus: ST-Computer 12 / 1994, Seite 109

Links

Copyright-Bestimmungen: siehe Über diese Seite