Tips und Tricks für GFA-Basic

Welche Möglichkeit gibt es, mehr Schriftzeilen auf dem Monitor darzustellen?

Kleinere Schriften entsprechen mehr Text auf dem Bildschirm. Unsere Prozedur schaltet wahlweise in den Modus 88 (x = 4) bzw. in 816 (x = 8) um.

PROCEDURE schalt (x)
	LOCAL a$, a
	a$ = MKI$(&HA000)+MKI$(&H2009)+MKI$(&H4E75) 
	a = VARPTR(a$) 
	a = C:a()
	LPOKE INTIN,LPEEK(a+x)
	DPOKE CONTRL+2,0 
	DPOKE CONTRL+6,0 
	DPOKE CONTRL+10,102 
	VDISYS 5 
RETURN

Ich möchte im GFA-BASIC eine genaue Zeitmessung programmieren. Diese darf den Programmablauf aber nicht behindern. Wie geht das?

Die genaueste Zeitmessung erreichen Sie über die feste Variable TIME. Diese gibt die Anzahl der 1/200 Sekunden wieder, die seit dem Einschalten des Computers vergangen sind. Diese Variable wird 200 mal in der Sekunde erhöht. Die Genauigkeit ist gegeben, da es sich hierbei um eine 32-Bit-Integerzahl handelt. Mit

SLPOKE &H4B A, 0

setzen Sie diesen Zähler auf Null. Einfaches Beispiel:

t = TIMER 
FOR i%=1 T0 3000 
	ADD z%, i%
NEXT i%
PRINT (TIMER-t) /200

Hiermit wird die benötigte Zeit ausgegeben, um 3000mal 'i%' zu 'z%' zu addieren.

Ich möchte in meinem GFA-BASIC-Programm die eine und andere Systemeinstellung, wie auch mit dem Kontrollfeld, ändern. Dabei soll die Einstellung auch nach Beendigung meines Programmes aktiv sein. Wissen Sie dazu einen Tip?

Dazu muß man wissen, daß nach Beendigung eines Programms das Desktop neu gestartet wird. Bei diesem Neustart wird das »DESKTOP.INF«, in dem die ganzen Systemeinstellungen festgehalten sind, neu geladen und dessen Einstellungen übernommen. Also ist es erforderlich das »DESKTOP.INF« selbst im Speicher zu verändern. Hierfür bietet das GFA-BASIC den Befehl »~SHEL_GET(I%,a$)«. Er liest das »DESKTOP.INF« in einen String ein. Mit der nachfolgenden Prozedur liefern wir Ihnen ein Grundgerüst, um die Systemeinstellungen zu ändern.

PROCEDURE desktop_inf 
~SHEL_GET(2000,a$) 
q%= INSTR(a$,CHR$(26))
IF q%
a$=LEFT$(a$,q%-1)
w%=INSTR(a$,"#c")
v$=MID$(a$,ADD(w%,2),57)
'
'
’Hier steht die
'Routine, um
'v$ zu ändern
'
MID$(a$,ADD(w%,2),57)=v$
~SHEL_PUT(LEN(a$),a$)
ENDIF 
RETURN

In der Variablen 'V$' stehen die gesuchten Systemeinstellungen. Diese setzen sich wie folgt zusammen: Die ersten 48 Zahlen (16 Farben mit je drei Farbanteilen für Rot, Grün und Blau) enthalten die Farbeinstellungen. Danach folgt eine Ziffer für die Geschwindigkeit des Maus-Doppelklicks, eine für den gesetzten (1) oder nicht gesetzten (0) Tastaturklick, die nächste für die gesetzte (1) oder nicht gesetzte (0) Glocke und eine Zahl für die Tasten-Wiederholzeit. Nun liegt es an jedem selbst, den Stringinhalt mit »MID$« abzuändern. Danach muß 'v$' wieder in 'a$'eingefügt werden. Zum Schluß schreiben Sie die Änderungen mit 'SHEL_PUT' zurück. (Sandro Lucifora/ah)



Aus: TOS 01 / 1991, Seite 76

Links

Copyright-Bestimmungen: siehe Über diese Seite