C 16
Tips und Tricks

»Fenster«-Befehle für den C 16

Dieses Programm stellt den im C 16-Basic leider nicht vorhandenen »Window«-Befehl zur Verfügung und macht Schluß mit dem umständlichen Hantieren mit den ESC-Funktionen.

Wer im Befehlssatz des Basic 3.5 nach dem Befehl »Window« sucht, wird nicht fündig. Die groß angekündigte moderne Window-Technik läßt doch zu wünschen übrig. Ein Window, also ein Bildschirmfenster, kann nur mit Hilfe der ESC-Taste definiert werden.

So muß man, um ein Window zu setzen, mit dem Cursor an die linke obere Ecke des gewünschten Bildschirmfensters fahren und die Tasten ESC und T drücken. Die rechte untere Ecke des Fensters wird ebenfalls mit dem Cursor gewählt und mit ESC und B gesetzt. Erst jetzt ist das Fenster definiert.

Im Direktmodus ist dieser Aufwand nicht hinderlich, sondern bringt eher Vorteile, da kein Befehl »WINDOW« am Bildschirm erscheint. Im laufenden Programm ist es jedoch sehr umständlich, ein Fenster zu generieren. Es sind sehr viele PRINT-Anweisungen nötig.

Da die Window-Funktion jedoch in vielen Programmen nützlich ist, lohnt es sich schon, diese Funktion komfortabel als Basic-Befehl zur Verfügung zu haben. Ein kleines Maschinenprogramm macht’s möglich.

Nach Eintippen des DATA-Laders (Listing 1) sollten Sie das Programm als erstes unbedingt abspeichern, da es sich nach Kontrolle der Prüfsumme selbst initialisiert und anschließend der DATA-Lader gelöscht wird.

Haben Sie das Programm abgespeichert, dann können Sie es mit »RUN« starten und haben kurz danach den neuen Basic-Befehl »FENSTER« zur Verfügung.

Der FENSTER-Befehl hat folgendes Format und kann in jedem Basic-Programm verwendet werden: FENSTER AZ,AS,EZ,ES

Die Parameter haben folgende Bedeutung:

AZAnfangsZeile
ASAnfangsSpalte
EZEndZeile
ESEndSpalte

Gibt man im Programm beispielsweise die folgende Zeile 10 ein, so wird ein Fenster von Spalte 5 der fünften Zeile bis einschließlich Spalte 35 der 15. Zeile definiert. 10 FENSTER 5,5,35,15

Das Fenster kann durch zweimaliges Drücken der HOME-Taste oder durch Generieren eines neuen Fensters gelöscht werden.

Dem Fenster-Befehl müssen auf jeden Fall vier Parameter folgen. Für die Parameter AZ und EZ sind nur Zahlen zwischen 1 und 25 zulässig. AS und ES dürfen nur zwischen 1 und 40 liegen. Außerdem ist zu beachten, daß AZ auf keinen Fall größer als EZ, und AS nicht größer als ES gewählt wird.

Der Fenster-Befehl darf auch nicht im Direktmodus verwendet werden, aber da ist die normale Vorgehensweise über »ESC« sowieso sinnvoller. Sollten diese Bedingungen nicht beachtet werden, erscheint die Fehlermeldung »SYNTAX ERROR«.

Das Beispielprogramm Fenster-Demo (Listing 2) generiert zufällige Textfenster und füllt diese farbig aus.

Der FENSTER-Befehl verkürzt ein Basic-Programm bei häufiger Anwendung gegenüber der konventionellen Methode über PRINT-Anweisungen ganz erheblich, so daß die vom Maschinenprogramm beanspruchten 255 Byte trotz des mageren C 16-Speichers kaum ins Gewicht fallen dürften.

(Christian Quirin Spitzner/ev)
10 rem *********************************
20 rem *                               *
30 rem *    fenster fuer c 16 & 116    *
40 rem *                               *
50 rem *    christian quirin spitzner  *
60 rem *    gruberstrasse 53           *
70 rem *    8011 poing                 *
80 rem *                               *
90 rem *********************************
100 :
110 :
120 rem *** speicher begrenzen ***
130 :
140 poke 53,255 : poke 54,62 : poke 55,255 : poke 56,62 : clr
150 :
160 rem *** erklaerung ***
170 :
180 print"{clr}{down}"tab(12)"*** {flon}{red}fenster{flof}{blk} ***"
190 print"{down}{down}      format:
200 print"{down}      {pur}{rvon}fenster az,as,ez,es{blk}
210 print"{down}      az = anfangszeile
220 print"      as = anfangsspalte
230 print"      ez = endzeile
240 print"      es = endspalte
250 print"{down}      nicht im direktmodus !
260 :
270 rem data's einlesen ***
280 :
290 for i=16128 to 16383
300 :  read p
310 :  z=z+p
320 :  poke i,p
330 next i
340 if z <> 30097 then print"{down}      {flon}data error{flof}":end
350 :
360 rem *** initialisieren ***
370 :
380 sys 16128
390 :
400 rem *** fenster-befehl aufrufen ***
410 :
420 fenster 4,1,25,40
430 :
440 rem *** basic-loader loeschen ***
450 :
460 new
470 :
480 rem *** data's ***
490 :
500 data 169,024,141,008,003,169,063,141
510 data 009,003,162,000,189,205,063,032
520 data 210,255,232,224,043,208,245,096
530 data 162,000,032,115,004,221,209,063
540 data 208,007,232,224,007,208,243,240
550 data 006,032,121,004,076,217,139,032
560 data 183,251,032,115,004,032,132,157
570 data 142,249,063,032,145,148,032,132
580 data 157,142,250,063,032,145,148,032
590 data 132,157,142,251,063,032,145,148
600 data 032,132,157,142,252,063,174,249
610 data 063,224,000,208,003,076,161,148
620 data 224,024,016,249,174,251,063,224
630 data 026,016,242,236,249,063,048,237
640 data 174,250,063,224,000,240,230,224
650 data 041,016,226,172,252,063,224,041
660 data 016,219,236,250,063,048,214,162
670 data 000,222,249,063,232,224,004,208
680 data 248,173,249,063,133,205,173,250
690 data 063,133,202,169,027,032,210,255
700 data 169,084,032,210,255,173,251,063
710 data 133,205,173,252,063,133,202,169
720 data 027,032,210,255,169,066,032,210
730 data 255,169,019,032,210,255,032,193
740 data 251,032,121,004,076,217,139,000
750 data 000,000,000,000,000,147,013,032
760 data 130,070,069,078,083,084,069,082
770 data 132,032,040,067,041,032,067,072
780 data 082,073,083,084,073,065,078,032
790 data 081,085,073,082,073,078,032,083
800 data 080,073,084,090,078,069,082,013
810 data 013,000,000,000,000,000,000,000
Listing 1. Der DATA-Lader zum »Fenster«-Befehl
100 rem fenster-demo
110 :
120 color 0,1 : color 4,1 : scnclr
130 :
140 do
150 : az = int(rnd(ti)*12)+1
160 : ez = az*2+1
170 : as = int(rnd(ti)*20)+1
180 : es = as*2
190 :
200 : fenster az,as,ez,es
210 :
220 : print"{clr}";
230 : color 1,rnd(ti)*15+2,rnd(ti)*8
240 : e = (es-as+1)*(ez-az+1)-1
250 : for i=1 to e
260 :   print"{rvon} {rvof}";
270 : next
280 : print"{left}{rvon}";chr$(148);" {rvof}";
290 loop
Listing 2. Ein Demo-Programm zum »Fenster«-Befehl
PDF Diesen Artikel als PDF herunterladen
Mastodon Diesen Artikel auf Mastodon teilen
← Vorheriger ArtikelNächster Artikel →