LOAD / SAVE in EhBasic

Nachdem EhBasic brauchbar auf unserem SteckOS-Kernel läuft, fehlen noch 2 Kleinigkeiten für das vollkommene Glück. Denn noch lassen sich die geschriebenen BASIC-Kunstwerke nicht speichern. Dies stellt uns gleich vor 2 Herausforderungen:

  1. Unsere FAT32-Implementierung beherrscht noch gar keinen Schreibzugriff. Genauer gesagt ist es noch nicht möglich, freie Cluster zu finden und Verzeichniseinträge zu erzeugen.
  2. LOAD und SAVE existieren in EhBasic nur als Vektoren, an die bei Aufruf gesprungen wird. Was dort passieren soll, muss für die jeweilige Hardware selbst implementiert werden.

Fangen wir also ganz vorne an. Neue Dateien anlegen können wir noch nicht, da wir noch keine Operationen auf der FAT unterstützen, also auch keine freien Cluster finden können. Der Kunstgriff hier ist, diese Aufgaben von einem System erledigen zu lassen, das das schon kann. Dementsprechend werden einfach auf einem PC der Wahl auf der Karte Dateien FILE0000.DAT bis FILE0009.DAT angelegt. Diese sollen dann als unsere “Schreib-Slots” dienen. Vorhandene Dateien zu überschreiben und die Dateigröße im Directory mit der neuen Größe zu überschreiben, ist kein großes Problem.

EhBASIC nochmal

img_2287

Vor geraumer Zeit hatten wir ja bereits EhBASIC auf dem Steckschwein zum Laufen gebracht. Diese Version war im Wesentlichen eine Machbarkeitsstudie. Diese setzte auch noch nicht auf unseren SteckOS-Kernel auf, sondern auf BIOS-Routinen. Hier lag also noch ein wenig Arbeit vor uns.

Die EhBASIC-Dokumentation setzt bei einem potentiellen Portierungsziel nicht sehr viel voraus, und dies sind schon die “Preferred requirements”:

  1. 6502 or better processor (65c02, CCU3000, M38xx).
  2. 10k ROM or RAM for the interpreter code.
  3. RAM from $0000 to $BFFF (more with changes).
  4. Any character based I/O (e.g. RS232, LCD/keyboard etc).

Punkte 1 und 2 sind schnell abgehakt. Einen 65c02 hat das Steckschwein ja. 10k ROM haben wir nicht am Stück, jedoch wollen wir das Basic ja als Programm im RAM ausführen, und davon haben wir 64k. Alles klar.

Es wird geschraubt

Es ist mal wieder recht still ums Schwein. Und mal wieder ist das kein Indiz dafür, dass nicht gewerkelt wird. In den letzten Wochen wurden BIOS und der SteckOS-Kernel auf Basis des Assemblers ca65 neu gebaut. Dessen nachgelagerter Linker erlaubt eine übersichtlichere Strukturierung der Codebasis.

In den FAT32-Code wird aktuell ebenfalls einiges an Hirnschmalz investiert, um endlich Cluster Chain lookups und Schreib-Support bauen zu können.

Darüberhinaus kam letzte Woche der Geistesblitz, die Kommunikation des Tastaturcontrollers ATmega8 mit der Tastatur über dessen eingebauten USART zu machen, anstatt “Zu Fuß” in Software. Hier wird aktuell also auch geforscht. Wenn das klappt, dann wird dies auf jeden Fall in das Redesign des IO-Boards einfließen.

Die Spannung sinkt... alles auf 5 Volt

Endlich,

wir haben uns mal bemüht und pünktlich zum 17. VCF das Steckschwein auf 5V umgerüstet. Genauer gesagt war ja nur noch das Video-Board und der YPbPr auf RGB-Encoder das Problem. Der kam zwar mit 5V auch klar, jedoch war dann der Kontrast und die Farbsättigung “unterirdisch”.

Was haben wir geändert?

Vorab muss man sagen, dass uns in den - mittlerweile - letzten Jahren zahlreiche Emails von Interessenten, Retro-Freaks und Bastlern ereilten. Vielen Dank an dieser Stelle für Anregungen, Hinweise und das Interesse!

Die neuen CPU-Boards sind fertig

Wir arbeiten an neuen Revision unserer Prototyp-Platinen.

Den Anfang macht das CPU-Board. Zum einen sind ein paar Layoutfehler korrigiert worden, zum anderen ist der kürzlich vorgestellte Wait-State-Generator in das Board integriert worden.

Mit den neuen Boards wollen wir auch denen entgegenkommen, die sich selbst ein Steckschwein bauen wollen. Das sind nämlich mehr, als wir dachten. Dementsprechend lassen wir jeweils ein paar mehr Boards herstellen. Um die Inbetriebnahme des Steckschweins zukünftig zu vereinfachen, sind eine Hohlbuchse und eine USB-Buchse dazugekommen, um das Steckschwein später mit 5V aus einem handelsüblichen Netzteil oder per USB zu versorgen. Die 12V für das Video-Board werden nämlich in einer späteren Revision wegfallen.

Neue CPU-Boards

Wir haben vor, eine neue Revision der Steckschwein-Prototyp-Platinen herzustellen. Den Anfang macht ein neues CPU-Board mit einigen Bugfixes und den in Chiptuning beschriebenen zusätzlichen GAL als Waitstate-Generator, sowie einem geändertem Stromanschluss: In Zukunft wird es möglich sein, das Steckschwein mit nur 5V per USB, über einen Rundstecker oder wie gehabt über einen Pin-Header zu versorgen. Die Layouts sind schon fertig:

Bestückungsseite

Lötseite