WiC64 – BASIC v2.0 Projekt (Teil 2)

Sooooo… Nachdem wir uns im Teil 1 kurz mit dem WiC64 Modul beschäftigt haben werfen wir in diesem Teil einen Blick auf den WiC64 Kernal, die Universalroutinen und den Programmierungsstand des RepoMan — dem Repository Manager 🙂 Denn Ziel soll ja sein, den eigenen und andere anbinden zu können.
Beim rum-experimentieren viel mir auf, dass ich ständig die Tools laden musste und eine Diskette fehlte mit der ich arbeiten kann – auf der alle Tools drauf sind und auch die Universalroutinen geladen werden konnte. Also entschied ich mich dazu eine D64 Image zu bauen und dies im Forum64 an zu bieten. Wenn Ihr die auch laden wollt – schaut mal in diesem Thread im Forum64.

Wieso einen eigenen Kernal

Der Kernal stellt über die F-Tasten z.B. Funktionen bereit, wir RUN oder das WiC64 Portal zu starten. Ein Action Replay oder Final Cartridge ist daher nicht mehr nötig … Aber dazu später mehr. Hier erstmal die F-Tasten Belegung des „Test-Kernal“:

F1 – LOAD „!START.PRG“
F2 – SYS 49152

F3 – RUN
F4 – SYS 64738

F5 – LOAD „!DIR.PRG“
F6 – PRINT PEEK(

F7 – RUN:
F8 – NEW:

Wenn das WiC64 eine IP bezogen hat und der Kernal geladen ist – braucht man um in das WiC64-Portal zu gelangen also nur F1 und F3 drücken. Ganz ohne vorher ein Programm geladen zu haben.

Eine Dokumentation dazu ist aber noch im Aufbau. Auch das Wiki für das WiC64 wird ebenfalls noch gefüllt werden: https://www.c64-wiki.de/wiki/WiC64

Den aktuellen Kernal findet Ihr hier: https://www.wic64.de/downloads/

Was sind die Universalroutinen

Ihr findet auf der Webseite momentan die WiC64 Usage With Universal Routines (DE) in dem die Grundbefehle auch an kurzen Beispielen vorgestellt und erklärt werden.

Hier ein kleiner Auszug:

Die Kommunikation mit dem WiC64 Modul ist einfach: Der C64 schickt ein Kommando („push“) und das WiC64 führt es aus. Wenn als Antwort Daten an den C64 zurückgeliefert werden, müssen die aktiv abgeholt werden („pull“).Mit Hilfe der Universalroutinen kann man alle Funktionen des WIC64 von Basic und Assembler aus nutzen.
Nach Aufruf des WiC64-Portals mit dem WiC64start Programm stehen die Universalroutinen automatisch (immer in der aktuellsten Version) im Speicher ab $C000 zur Verfügung. Wenn das eigene Programm auch ohne Portal laufen soll, muss man dafür sorgen, dass die Routinen dort liegen.

WiC64 Usage With Universal Routines (DE)


Die aktuelle Version der Universalroutinen findet Ihr hier: https://www.wic64.de/downloads/

Wie sieht der Programmier-Arbeitsplatz aus?

Gut, nachdem ich mir über den groben Ablauf und den Funktionsumfang Gedanken gemacht habe. Ging es erstmal los und die Einrichtung der „Entwicklungsumgebung“ auf dem C64 wurde angepasst.

Ich benutze dazu:

  • Einen Icomp C64 Reloaded MK2
  • Ultimate 1541 II plus
  • WiC64 Modul mit zusätzlich verbautem ESP-1
  • WiC64 Kernal lade ich beim Einschalten (F1-F8 Belegung ist z.B. angepasst)

Nach dem Einschalten lade ich das D64 Image, auf dem alle benötigten Tools des WiC64 Projekt vorhanden sind. Als nächstes werden die Universalroutinen geladen, denn ohne die kann ich keine Informationen vom Modul holen um z.B. die IP, die SSID, oder die T$ Variable aus zu lesen um das eingestellte Repository als HTTP:// URL zu erhalten.

Programmieren ohne das Final Cartridge geht aus meiner Sicht aber auch nicht, daher habe ich es geladen und die nützlichen Funktionen stehen mir also auch zur Verfügung.

Einrichten des Repository

Das Einrichten des Webspace, die Verzeichnisse erstellen und das dir.php ab zu legen und aus zu führen für einen ersten Test ging auch sehr einfach von der Hand.

Am PC/Mac mittels FileZilla und FTP Server:

1.) PRG Dateien auf Webseite hochladen
2.) Auf der Webseite das dir.php ausgeführt

Nun habe ich die Liste mit den Nummern dahinter, denn ohne diese kann das WiC64 Modul mit dem angepassten Loadbefehl dann die Datei nicht korrekt einladen

Und wieder zurück am C64:

3.) WiC64 Kernel laden
4.) SetServer aufrufen und dir URL eingetragen
5.) Dann konnte ich die Spiele aufrufen

Am C64 ein Spiel aus dem Internet laden


Wichtig beim Aufruf des Befehls zu wissen…

Ein %20 muss für ein Lehrzeichen im Namen benutzt werden, sonst gab es nur ein „file not found“ Error.

Das „dir.prg“ ist mit dem WiC64 „hart verdrahtet“. Da muss ich nochmal bei und es auf meine URL umbiegen … oder ich baue im Basic einen Befehl nach das aus zu lesen. Ich meine das in einem YT-Video von N3rdroom gesehen zu haben…

Ja – schaut mal hier: KLICK MICH 🙂

Flutscht im Speicher – dank super flinker Ladezeiten …






Mensch das flutscht ja alles 🙂

Ihr konntet mein Grinsen zwar nicht sehen – ich freute mich aber total, das alles so reibungslos flutschte!

Ratz fatz geladen – einfach klasse!

Aber zur Belohnung, erstmal ne Runde Spielen – bei der Musik, kann ich einfach nicht ausschalten 🙂



Aber nun zurück zum Projekt …

Habe mir der Einfachheit halber ein weiteres D64 Image erstellt, in dem ich u.a. die Universalroutinen des WiC gespeichert habe. Hinzu kamen noch andere Tools, die ich in das Basic Programm einbinden möchte. Aber dann ging es halt los …

Erstmal habe ich mir gesagt, dass ich den Aufbau und das Menü möglichst nah am WiC Portal orientieren möchte. Also Farbgebung wie ein Style-Guide und Standard-Tasten. Im Forum64 kam z.B. der Hinweis auf, das die Taste „<-“ auf der Tastatur des C64 (oben links) immer ins Hauptmenü des WiC64 Portal verweisen sollte – oder der Schriftsatz des WiC Portal wurde geteilt.

Solche Anregungen wollte ich dann gleich mit einbauen, denn die 0.1 Version war bereits in der Mache. Nach einem Einleitungs-Bildschirm, in dem die Funktion und die Vorraussetzungen dieses „RepoMan“-Programm erklärt werden gelangt man in das Haupt-Menü.

RepoMan Hauptmenü v0.1
  • Oben sieht man den grauen Logo-Bereich
  • darunter das Menü, welches direkt mit den F-Tasten bedient, oder per Cursor Steuerung bedient werden kann.
  • Unten sieht man die aktuellen Einstellungen des WiC Modul: URL, SSI, IP und das Quelllaufwerk

Im Verlaufe der Erstellung habe ich bemerkt, dass ich anfänglich gesetzte Funktionen und Optik mehrfach nutze und habe diese gebündelt.

Funktionsumfang v0.1

… Natürlich … Wenn man erstmal anfängt, dann merkt man, das vieles mit dem angefangen hatte umgeändert werden kann. Doppeltes wurde in Subroutinen ausgelagert (wie z.B. das ausgeben des grauen WiC Menüband) und die Sprungziele wurden nicht auf REM Zeilen verwiesen. Ich habe auch darauf geachtet den Quelltext so zu erstellen, dass er leicht zu lesen ist.

Also viele – sehr viele Kommentare sind im Listing und ich habe auch darauf geachtet Befehle die man zusammen in einer Zeile ausführen könnte – bewusst mit einer Erklärung zu versehen – und dafür mehrere Zeilen zu verwenden.

Aber nun mal „Budder bei die Fische“ was kann der RepoMan in dieser Version schon? Die Antwort ist einfach: NIX.

Bisher gibt es den Startbildschirm und das Hauptmenu, sowie einen Verabschiedungsbildschirm. OK, gut,

  • die IP-Adresse wird aus dem WiC64 gelesen
  • vom Aktuelle Repository kann die Liste der SW abgerufen werden
  • das Quelllaufwerk kann von 8 auf 9 und zurück gestellt werden.

Aber mehr auch noch nicht.

Ich bin froh den Funktionsumfang geschärft zu haben 🙂 Angedacht ist es z.B. auch ein BBS Adressliste in Form eines „Mini Webbrowser“, ab zu rufen die PHP Datei liegt auch schon auf dem Webserver 🙂

Was ist für v0.2 der nächste Schritt?

Ich möchte gern das Menü zum laufen bekommen, sprich den gelben Balken, der aus 3 Zeilen bestehen (weiss,gelb und braun) mittels Cursortasten lenkbar zu machen. Von einer Joystick-Steuerung nehme ich erstmal Abstand, werde es aber so umsetzen, dass es kein großer Aufwand sein wird, dies nach zu rüsten. Denn es ist schon konfortabler mit dem Joystick in der Hand zur Spiele Liste zu wechseln und dort ein Spiel aus zu wählen und per „Klick“ auf den Joystickknopf den Download und das Starten des Programm aus zu lösen …

Also, bis hier erstmal und auf bald 🙂