Hallo liebe Programmiergemeinde,
vieleicht erinnern sich noch einige aus meinen Thread "EXBASIC V2+". Dort habe ich eine BASIC Erweiterung vorgestellt. Das Projekt war ursprünglich für mich alleine gedacht um zum einen wieder in die 6502 Assemblerprogrammierung rein zu kommen und zum anderen weil ich das C64 BASIC V2.0 eigentlich ganz schrecklich finde und die BASIC Programme von den vielen Pokes und Peeks erlösen wolte.
Während der vielen Stunden des Programmierens habe ich natürlich auch geschaut welche anderen Erweiterung es gibt und (sofern möglich) wie es dort umgesetzt wurde. Den in vielen Teilen wiederholen sich die Befehle (manchmal unter anderem Namen) oder Funktionen. Damlas hatte ich neben dem C64 auch einen PLUS/4. Dessen BASIC 3.5 ich im Vergleich zum C64 grandios fand. Eine Symbiose der beiden (die geniale Hardware des C64 mit dem tollen BASIC 3.5 vom PLIS/4) war so ein Traum. Diesen wollte ich mit meinem EXBASIC V2+ etwas näher kommen. Allerdings merkte ich schnell das ich immer mehr das BASIC V3.5 nach programmierte. Und das befriedigte mich nicht mehr. Dann habe ich in diesem Forum per Zufall hier die Version von Michael Schimek gefunden, der in der 64er, Ausgabe 06/1990, Seite 54 "Ein BASIC für alle" ein PLUS/4 kompatibles BASIC 3.5 vorstellte. Und das funktioniert erstaunlich gut.
Somit habe ich diese BASIC 3.5 genommen und versucht an den Sourcecode zu kommen, was mir aber bis heute nicht gelungen ist. Auch die Versuche der Kontaktaufnahme zum Verlag (Markt&Technik) oder zum Autor Michael Schimek sind mir nicht gelungen.
Ich wollte nämlich das BASIC 3.5 nehmen und den tollen Befehlssatz unm weitere, eigene Befehle erweitern.
Durch "reverse engineering" ist es mir gelungen wichtige Routinen im Hexcode zu finden (Vectoren usw.) und meine eigene Erweiterung mit einzupflanzen, quasi als Symbiose.
Nun darf ich vorstellen:
BASIC 4.5 für den C64! Vollständig kompatibel zu PLUS/4 BASIC Programme + weitere Befehle.
Neben den BASIC 3.5 Befehlssatz sind diese Befehle vorhanden:
at x,y
-Setzt den Cursor auf Position X,Y
catalog [LW Nr] (oder PLUS/4 style: catalog U8)
-Liste das Disk Directory seitenweise und in einem Format das es mir LOAD, DLOAD oder RUN direkt geladen werden kann
cls
-wie ESC-N, clear Schliesst alle Screen Windows und löscht den Bildschirm (SCNCLR löscht nur das aktive Fenster)
frame x1,y1,x2,y2,color,type,title
-Zeichnet einen Textrahmen mit den Ecken X1,Y1 -> X2,Y2. Möglich sind Linien mit runden Ecken oder "spitzen" Ecken, sowie ein Rahmen aus Spaces. Optionale Beschriftung in der obigen Mitte des Rahmens.
free [(intvar)]
-Zeigt den freien Speicher (positiv) an oder legt in in die Variable [INTVAR]
run "PROG",8|9 (oder run "PROG",U8|U9)
-Lädt und startet ein Programm
stop [on/off]
- Läßt die Taste RUN/STOP zu oder verhindert sie. Kann auch im Programm eingebaut werden. Dann wird der Befehl NICHT quittiert!
ver
Zeigt die Version von BAISC 4.5 an
window x1,y1,x2,y2
- Erzeugt ein Text-Fenster mit den Dimensionen X1,Y1,X2,Y2
Und nun das Schmankerl:
Existiert in Laufwerk 8 ein Programm mit dem Namen BOOT wird es automatisch geladen und gestartet.
Bitte mal das BASIC laden und Testen. Über Rückmeldungen freue ich mich.