Update von BASCODER.BAS

 

Die vorliegende neueste Fassung des Farb-Bascoders für die CPC-Computer basiert auf der Version, die auf der Schallplatte zum DDR-BasiCode-Buch veröffentlicht wurde. Im Folgenden sollen die Neuerungen aufgelistet werden.


Fehlerkorrekturen

Im Basic 1.0 des CPC 464 benötigt der DEC$-Befehl zwei öffnende Klammern. In Zeile 310 wird beim ersten Start an zwei Stellen die zweite öffnende Klammer eingefügt, sofern das Programm auf diesem Modell läuft.

Im DDR-BasiCode-Buch wird darauf hingewiesen, daß das Zurücklesen von Zeichen aus dem Bildschirm (GOSUB 220) nicht funktioniert, falls das Zeichen invertiert dargestellt (GOSUB 150) ist. Diese Funktion ist nun eingearbeitet.

Olaf Krause weist in "SLIDER-INFO" darauf hin, daß (im Basic 1.0 des CPC 464) kein Befehl ON BREAK CONT (in GOSUB 280 zum Sperren/Freigeben der ESC-Taste) existiert. Seinen Änderungsvorschlag habe ich eingearbeitet.

An gleicher Stelle wird festgestellt, daß fälschlich in GOSUB 450 nicht die Restzeit, sondern die abgelaufene Zeit zurückgegeben wird. Auch das wurde entsprechend seinem Vorschlag korrigiert.


Neuer Standard

Im Computerbulletin von September 1991 zu BasiCode-3C stellt Friedrich Dormeier die neuen Funktionen der Farbversion von BasiCode vor. Da ich diese Version für den CPC bis heute nicht auftreiben konnte, habe ich den Bascoder anhand dieser Beschreibung und angelehnt an die PC-Umsetzung selbst um diese Funktionen erweitert.

BasiCode-3C sieht die Nutzung von acht Farben für Text und Grafik vor. Das läßt sich auf dem CPC nur in MODE 0 realisieren, für MODE 1 habe ich vier Farben ausgewählt und MODE 2 kennt ohnehin nur Vorder- und Hintergrundfarbe (siehe auch letzter Absatz).

Beim Starten wird abgefragt, ob an einem Farbmonitor gearbeitet wird, falls nicht, wird in allen MODEs nur mit zwei Farben gearbeitet.

Beim Rücklesen von Zeichen aus dem Bildschirm (GOSUB 220) können jetzt auch Kleinbuchstaben erkannt werden.

Bei der Tastaturabfrage (GOSUBs 200 und 210) werden für die Tasten F1, F2 ... F0 die Werte -1, -2 ... -10 in der Variablen IN zurückgegeben.


Komfortabilität

Da die meisten User ein Programm benutzen wollen, ohne erst lange ein Handbuch zu studieren, habe ich die Bedienung auf Menü-Führung umgestellt, wobei ich auch davon ausgehe, daß kaum noch jemand wirklich von Kassette Programme im BasiCode-eigenen Format einlesen werden will.

Das Programm wird mit RUN "BASCODER.BAS" gestartet. Es erfolgt ein POKEn von etwas Maschinencode in die erste Zeile (mit anschließender Umnummerierung dieser Zeile auf 0, um sie vor versehentlichen Editieren zu schützen) und der Aufbau des Startbildschirms. Hier wird der Name des nachzuladenden BasiCode-Programms (egal ob von Kassette oder Diskette) erfragt. Dieses sollte am besten in ASCII-Form vorliegen, weil beim MERGEn von Basic-Programmen in Token-Form unter Umständen das Laden beim Auftreten des Codes für "end of file" das Laden abgebrochen wird. Soll von Kassette in BasiCode-eigenem Format eingelesen werden, ist anstelle des Programm­namens " * " einzugeben, worauf ein weiteres Menü erscheint, aus dem das Laden durch "L" gestartet wird. In diesem Fall wird der Computer nach erfolgtem Laden und Umwandeln in Token-Form im MODE 2 auf den Start durch "RUN" warten. Für die meisten Programme wird aber ein Start in MODE 1 zweckmäßiger sein, deswegen wird hier geraten, mit "MODE 1:RUN 5" zu starten (siehe auch übernächster Absatz).


Reduzierung des Speicherbedarfs

Für die tatsächliche Arbeit mit dem BasiCode-eigenen Kassettenaufzeichnungsformat ist die Maschinencode-Datei BC3C.BIN erforderlich, die zur Reduzierung des Speicherbedarfs auch nur in diesem Fall nachgeladen wird. Das kommt gleichzeitig den Nutzern einer Vortex-Disketten­erweiterung zugute, denn hier würde der Code mit dem VDOS in Konflikt geraten.

Die für die Initialisierung notwendigen Programmzeilen werden beim ersten Durchlauf gelöscht.


Sonstiges

Der Bascoder kann nun in allen drei MODEs genutzt werden. Möchte man den MODE wechseln, gibt man ein MODE x:RUN 5 (x = 0, 1 oder 2). Bei Programmen, die die Farbtauglichkeit nutzen, können nur in MODE 0 die vom Programmautor beabsichtigten Farben gesehen werden. Leider ist hier die Darstellung bekanntermaßen grobpixelig, außerdem werden Texte meist über den rechten Rand hinausgehen und so den Bildaufbau zerstören. Für die meisten Programme wird MODE 1 zweckmäßig sein, die wenigen farbtauglichen Programme haben hier allerdings nur vier Farben zur Verfügung. MODE 2 ist für hochauflösende Grafiken und für textintensive Programme (Text­ver­arbeitung, Datenbanken usw.) zu empfehlen, hier wird gänzlich auf Mehrfarbigkeit verzichtet.

Auf der Schallplatte zum DDR-BasiCode-Buch trägt die MC-Datei noch den Namen BC3BIN.BIN. Der RSX-Befehl zum Aufruf des BasiCode-Menüs lautete hier noch HELP. Ein gleichnamiger RSX-Befehl existiert auch im X-DDOS der Dobbertin-Diskettenerweiterung, deswegen habe ich den Befehl auf HILF abgeändert, ansonsten ist die Datei un­ver­än­dert.

Soll der Bascoder kopiert werden, ist er nur mit LOAD zu laden und noch nicht zu starten, damit die Initialisierungszeilen (und die Verwendbarkeit auf allen Modellen)) erhalten bleiben. Ein Abspeichern mit der Option A (also als Textdatei) ist nicht zu empfehlen, da einige Strings nichtdruckbare Zeichen enthalten. Der Maschinencode-Teil hat die Anfangsadresse 9E00 und die Länge 880 (beide Angaben hexadezimal).

BasiCode-Programme (also was jeweils ab Zeile 1000 hinzugeladen wird) sind auf sehr vielen Computern verwendbar, das ist das Ziel und der Zweck dieser Variante zur Standardisierung von Basic. Allerdings sind sie in Token-Form auf anderen Computern nicht nutzbar, da diese gewöhnlich ihre Befehle mit anderen Token intern abspeichern werden, abgesehen davon, daß sie sicher andere Protokolle zum Speichern auf Kassette benutzen werden. Beim ursprünglichen BasiCode-eigenem Kassettenaufzeichnungsformat werden sie daher in ASCII-Form abgespeichert und können von dieser Kassette auf jedem anderen Computer, der sich im BasiCode-Betriebsmodus befindet, eingelesen werden. Will man ein solches Programm auf Diskette, per eMail usw. weitergeben, muß man das nun selbst beachten, indem man es 1.) nur ab Zeile 1000 und 2.) mit der Option A abspeichert! Möglich ist natürlich auch OPENOUT"filename.ext":LIST 1000-,#9:CLOSEOUT.

 

KLICK = downloaden    Download - basicode.cpc etc.

 
 

Thomas Rademacher  //  Oktober 2004