alles rund um den C128'er

Hinweis: Diese Seite wurde mit einer OCR Software erstellt. Es ist mit Schreibfehlern zu rechnen!

Neue Befehle und Tricks für den C 128

Aus dem 64'er

Heft - 5/86

 

Das Handbuch des Commodore 128 ist zwar etwas besser geraten als beim C 64, trotzdem lassen sich noch einige Fehler finden. So wurde beschrieben, daß die Umschaltung auf die DIN-Tastatur mit POKE 1,PEEK(1) AND 191 im Programm erfolgen kann. Vor diesem POKE ist aber noch das Daten-nchtungsregister auf Ausgabe zu setzen. Dies erfolgt mit POKE 0, PEEK (0) OR 64. Mit POKE l, PEEK(l) OR 64 wird die ASCII-Tastatur wieder aktiviert. Weiterhin wurde behauptet, daß mit POKE 2757,129 die Umschaltmöglichkeit auf die DIN-Tastatur verhindert werden kann und nur ein Druck auf den Reset-Knopf dies rückgängig macht. POKE 2757,0 tut es auch. ESC 0 schaltet den Einfüge-, Anführungs- und Invers-Mo-dus aus. Wenn Sie die ESC-Taste zweimal kurz hintereinander drücken, erreichen Sie den gleichen Effekt, nur schneller. Der USR-Vektor wurde nur für den C 64-Modus beschrieben und das auch noch falsch. Im C 64-Modus liegt der USR-Vektor an den Speicherstellen 785 und 786 und im C 128-Modus bei 4633 und 4634. Im C 128-Modus hat der Bas c-Interpreter eine Verbesserung aufzuweisen. Während beim C 64 die Abfrage auf einen Leerstring beim ASC-Befehl die Fehlermeldung ILLEGAL QUANTITY hervorruft, erhalten Sie beim C 128 als Ergebnis den Wert 0. Um Zahlen m andere Zahlensysteme umzurechnen, gibt es beim C 128 die Befehle DEC und HEX$. Mit dem eingebauten Maschinensprachenmonitor haben Sie eine sehr komfortable Möglichkeit zur Zahlenumrechnung. Sie rufen mit dem Befehl MONITOR den Maschinensprachenmonitor auf und geben die umzurechnende Zahl mit vorangestelltem Umrechnungssymbol ein ($ = hexadezimal, + = dezimal, & = oktal und % = binär). Wenn Sie nun die RETURN-Taste drücken, so wird die Zahl in allen vier Zahlensystemen ausgegeben.
Zum Spritehandling gibt es beim C 128 komfortable Befehle. So können Sprites unabhängig vom laufenden Programm bewegt werden. Dieses geschieht in der Interruptroutine. In der Speicherstelle 4861 steht ein Flag, welches angibt, ob die Interruptroutine für die Spritesteuerung ausgeführt werden soll. Wenn Sie in diese Speicherstelle einen Wert ungleich Null schreiben, so bleiben alle Sprites sofort stehen. Aber Achtung! Der PLAY-Befehl funktioniert dann nicht mehr. Mit POKE 4861,0 bewegen sich die Sprites weiter. Für die Geschwindigkeit können beim MOVSPR-Befehl Werte bis 15 angegeben werden. Wenn Sie aber direkt die Register für die Spritegeschwindigkeit mit POKE ansprechen, so sind auch höhere Geschwindigkeiten möglich. Errechnen läßt sich die Speicherstelle durch 4478 + (SN-1)*11. Hierbei steht SN für die Spritenummer (l bis 8). Wollen Sie die Spritegeschwindigkeit drosseln, so können Sie dies mit dem Programm SPRITES-LOW (Listing 1) tun. Mit BANK 15: SYS DEC( "1300*),X wird das Programm aufgerufen. Für X setzen Sie den Wert der Verzögerung ein. Die Spritegeschwindigkeit, die mit dem Befehl MOVSPR eingegeben wurde, sollte aber nicht größer als l sein. Experimentieren Sie ruhig ein bißchen! Kommen wir gleich zum zweiten Maschinenprogramm (Listing 2). Dies Programm rekonstruiert ein mit NEW gelöschtes Programm. Solange noch keine neuen Programmzeilen eingegeben wurden, kann mit BANK 0: SYS DEC ("1300") ein mit NEW oder nach einem RESET gelöschtes Programm gerettet werden.
Das Basic V 7.0 wurde zwar um etliche Befehle erweitert, trotzdem gibt es immer noch keinen vernünftigen INPUT-Befehl. Die Eingaberoutine aus Listing 3 können Sie als Unterprogramm in Ihren eigenen Programmen benutzen.
Es erlaubt, nur bestimmte Zeichen einzugeben. Außerdem kann eine maximale Eingabelänge festgelegt werden. Zu diesem Programm nun noch einige Erklärungen:
In Zeile 45 werden die erlaubten Zeichen der Stringvariablen EZ$ übergeben. In Zeile 50 wird in der Variablen Ql die maximale Eingabelänge festgelegt und das Unterprogramm mit GOSUB 100 aufgerufen. Nach der Rückkehr aus dem Unterprogramm steht die Eingabe in der Stringvanablen Y2$. In der Eingaberoutine wird in Zeile 110 der aktuelle Cursormodus der Variablen 09 übergeben und mit POKE 2598,0 der blinkende Cursormodus eingeschaltet. POKE 2599,0 läßt den Cursor auch bei dem Befehl GET oder GETKEY blinken. Zeile 150 prüft auf die maximale Eingabelänge und Zeile 160 auf die erlaubten Zeichen. Wird versucht, unerlaubte oder zuviele Zeichen einzugeben, so wird dies durch ein akustisches Signal angezeigt. Zeile 180 wartet darauf, daß der Cursor sich nicht in der Blinkphase befindet. Wurde Return gedrückt, so wird mit POKE 2599, l das Cursorblinken bei GET wieder ausgeschaltet und der vorher in Q9 festgehaltene Cursormodus in Speicherstelle 2598 eingetragen. 

(Herbert Kunz/dm)

-

Diskette zum Heft und damit auch die genannten Listings, gibt's hier

.

"Die Option Drucken funktioniert erst ab Netscape V4.0 bzw. I-Explorer 5.0 !"

I Startseite I