Aus dem 64'er
Heft - 1/87
|
Kleine Befehlserweiterung
Mit der nächsten kleinen Routine (Listing 2) ist es möglich, Bilder, die auf dem 40-Zeichen-Bildschirm als hochauflösende Grafiken sichtbar sind, auf den 80-Zeichen-Bildschirm zu transferieren. Dabei ist folgendermaßen vorzugehen:
1. Das HiRes-Bild auf dem 40-Zeichen-Schirm muß sichtbar sein (eventuell von Diskette laden und Grafik einschalten)
2. »Picturetrans 128« mit BLOAD laden
3. Die Verschiebung wird nach Umschaltung auf den 80-Zeichen-Grafikmodus (zum Beispiel mit POKE 54784,25: POKE 54785,135) durch SYS DEC("1700"),(39-Startspalte) aufgerufen.
Programmierer erhalten einen neuen Befehl (»%«), der ein Label kennzeichnet (Listing 3). Außerdem werden die Befehle RESUME, GOTO, GOSUB, ON und RUN so erweitert, daß die Übergabe von Zeilennummern per Variable möglich wird.
Der Befehl »%« ermöglicht die Definition einer Labelvariablen beim Programmstart. Während des Programmablaufs wird der Befehl übersprungen. Das Kommando RUN wurde jedoch so geändert, daß alle Label in Form von Integervariablen erzeugt werden. Dies aber nur, wenn RUN ohne Zeilennummer oder Programmname angegeben wird.
Diese Erweiterung macht den C 128-Besitzer endlich frei vom Gebrauch von Zeilensprüngen. War dies ohnehin bisher
schon weitgehend möglich, da so leistungsfähige Befehle wie DO..LOOP und IF..THEN..ELSE mit BEGIN und BEND zur Verfügung gestellt wurden, so wird dies hiermit komplettiert.
Bisher mußte man zumindest noch bei allen GOSUB-Sprün-gen, COLLISION- und TRAP-Befehlen die Zeilennummer wissen, um die es geht.
Da beim Programmstart mit RUN jetzt alle Label in Form vom Integervariablen erzeugt werden (sofern sie hinter einem »%«-Zeichen am Zeilenbeginn stehen), braucht man nur noch zu wissen, welche Namen den Label gegeben wurden.
Da der Basic-Interpreter leider die Angewohnheit hat, nur im Programmmodus
in die Erweiterung zu springen, kann, um die Labelvariablen zu erzeugen, am Programmanfang folgende Sequenz stehen: 10 % ANF%:IF ANF$=0 THEN:RUN
Anschließend stehen dann alle verwendeten Labelvariablen zur Verfügung. Ein Beispiel für die sinnvolle Verwendung von Label: 10 IF V1UP$=0 THENrRUN ... trap fehl$ ... — gosub vlup$ ... nn % V1UP$:REM VERARBEITUNG l ... return
mm % FEHLEREM TRAP-ROUTINE ... resume ...
Sie sehen, daß so die Programme noch übersichtlicher gestaltet werden können. Nun zum Umgang mit dem Programm: Nach Eingabe des Befehls BOOT"ERW128"
steht die Befehlserweiterung zur Verfügung. Sie belegt den Speicherbereich ab $1300. Wenn Sie das Programm absolut (,8,1) laden, erfolgt der Start durch SYS4864.
Diskette zum Heft und damit auch die
genannten Listings, gibt's hier
|
|
|