Hallo Besucher, der Thread wurde 2,5k mal aufgerufen und enthält 16 Antworten

letzter Beitrag von Diddl am

VC20 Final Expansion - SOFTWARE Thread

  • Phase 1 der Final Expansion "Firmware":




    Mit folgendem BASIC Programm kann man die RAM Erweiterung der Final Expansion konfigurieren: ramsel 010.prg


    Das Programm ist einfach zu verstehen und dient als Verständnis Vorlage für die Funktionsweise der Final Expansion. Das Auswahl Menü wird per PRINT Anweisung ausgegeben. Dann wartet das Programm auf Tasteneingabe per GET. Für die F-Tasten F1,F3,F4,F5,F6 und F7 wird je ein Konfigurationswert für das IO Register der Final Expansion gesetzt. Die Taste F8 führt zum Programmabbruch.


    Das IO Register an der Adresse 39936 wird gesetzt mit POKE 39936,wert. Danach wird ein Soft Reset ausgelöst mit SYS 64802. Der VC-20 meldet sich mit der eingestellten RAM Konfiguration ...







    Mit folgendem 8K ROM Cartridge Code für die $A Adresse kann man dasselbe erreichen und hat auch noch die Goodies UNNEW und WEDGE2 mit dabei. Man kann beide Programme im VICE ausführen, natürlich ohne dass sich die RAM Konfiguration ändert ...


    Vielen Dank an Troy Thompson, dessen Sourcecode für seine Disk Utility Cartridge eine gute Vorlage geboten hat!


    Final Expansion ROM Code v0.00.01: VC20-FinExp-0001.bin





    Screenshot.jpg Screenshot_2.jpg Screenshot_3.jpg

  • Super.. das wird was!!


    Sollte wir evtl. einen weiteren Thread für die Grafiker unter uns aufmachen, um einen neuen Cartridge-Aufkleber designen
    zu lassen.. ? Mit ggf. späterer Abstimmung über eingereichte Entwürfe..? Und um die Technik der Aufkleber zu diskutieren..?


    Peter

  • So sehe ich das auch. Der Extra-Thread für die Grafiker ist eine gute Idee!


    macht nur, ich kümmere mich nur um die Software zur Zeit!




    Ich habe mir Gedanken zum Programm Konfigurator gemacht. Dabei sind folgende Anforderungen:

    • Der Konfigurator soll auch am VC-20 laufen
    • Er soll möglichst einfach sein und für Jeden bedienbar
    • Es soll jedes Programm und jede Cartridge konfigurierbar sein.
    • Die Konfiguration soll direkt zur Übernahme ins EEprom dienen


    Nach langem hin und her habe ich mich für den bereits vorhandenen Editor entschieden den der VC-20 bietet: den BASIC Editor


    • Man gibt die Konfiguration wie ein Basic Programm ein.
    • Jede Konfiguration besteht aus mindestens zwei Zeilen.
    • Man kann beliebig viele Konfigurationen hintereinander eingeben
    • Die Konfiguration kann normal mit SAVE gespeichert und mit LOAD geladen werden.
    • Die Konfiguration hat den simplen Dateinamen "LOADER" damit die Final Expansion damit arbeitet.


    Wenn man den Menü Punkt F4. DISK LOADER wählt, dann liest die Firmware der Final Expansion die Datei LOADER vom eingestellten Laufwerk. Alle konfigurierten Programme und Cartridges werden eingelesen und als Menü dargestellt. Man wählt das gewünschte Programm und die Firmware lädt und startet es.



    Jede Konfiguration besteht aus mindestens zwei Zeilen. Die erste Zeile beginnt mit einem Anführungszeichen (") gefolgt vom Programmnamen, der im Disk Loader angezeigt werden soll. Die Folgezeile(n) enthalten alle notwendigen Informationen für den Disk Loader:

    • Ein Pluszeichen leitet einen Konfigurationszeile ein
    • Dateiname auf der Diskette
    • Startadresse oder B (Basic) oder S (Standard)
    • Optional Konfiguration der Final Expansion: BLK gefolgt von den Blocknummern 0,1,2,3 und 5. Die angegebenen Blöcke sind als RAM konfiguriert
    • Optional können Kommentare stehen in der Konfigurationsdatei. Kommentare beginnen mit einem Doppelpunkt (:)



    Beispiel einer Konfigurations Datei:

  • Ich habe inzwischen am Disk Loader gearbeitet. Das Einlesen der Datei "LOADER" sowie die Darstellung als Menü am VC-20 funktioniert soweit.


    Bei einer Floppy ist das auch funktionabel, bei der SD hingegen zeigen sich Schwächen bei dem angedachten Konzept. Die Menüdatei "LOADER" wird einfach zu gross, da auf der SD soviel Platz ist. Deshalb wird das Konzept etwas erweitert speziell für den Betrieb mit der SD2IEC:

    • Es gibt eine "LOADER" Datei pro Unterverzeichnis
    • Unterverzeichnisse können mit der Option "D" (für Sub-Directory) angegeben werden.
    • Wird ein solcher Menü Eintrag ausgewählt, sendet die Firmware das Kommando für 'change directory' an das SD2IEC und liest die lokale "LOADER" Datei.


    So kann man einfach zwischen die Verzeichnisse des SD navigieren und zudem die Programme nach belieben in Kategorieren ordnen.



    Beispiel:

  • Bei einer Floppy ist das auch funktionabel, bei der SD hingegen zeigen sich Schwächen


    Das jetzige Verfahren finde ich für Cartridge-Images im Flash praktikabel und notwendig, aber für Programme auf der SD-Karte sehr umständlich. Warum reicht es nicht, ein Programm auf der SD-Karte abzulegen, um es starten zu können? Warum muß ich für jede einzelne Datei explizit angeben: da! die sollst Du laden können!


    DraBrowse liegt im Quelltext vor und verwendet Standard-Kernel-Routinen.


    Kann man nicht zum Auswählen und Starten von Programmen von der SD-Karte das DraBrowse auf den VC-20 portieren?
    Dann müsste man nicht jedes Programm einzeln anmelden.

  • Das jetzige Verfahren finde ich für Cartridge-Images im Flash praktikabel und notwendig, aber für Programme auf der SD-Karte sehr umständlich. Warum reicht es nicht, ein Programm auf der SD-Karte abzulegen, um es starten zu können? Warum muß ich für jede einzelne Datei explizit angeben: da! die sollst Du laden können!


    Glaub mir, ich wäre auch für einen Filebrowser! Aber ich bin das konzept durchgegangen mit totalen DAU's, tschuldigung, - mit normalen Anwendern. Die wollen das genau so haben!


    Zudem ist es nicht ganz so einfach, weil Programme oft nicht nur geladen werden müssen sondern auch die optionen der FE eingestellt werden sollen, und zwar automatisch.


    Weiters kann man so dem kind jeden Namen geben, ohne den Dateinamen ändern zu müssen.


    Und nicht zuletzt gibt es Dateien die man gar nicht sehen will: Highscore, Daten, Mehrfiler ...



    DraBrowse liegt im Quelltext vor und verwendet Standard-Kernel-Routinen.


    Du kannst ja DraBrowse im Modul EEPROM ablegen und von da starten oder beim Reset mit Kurztaste ...



    Kann man nicht zum Auswählen und Starten von Programmen von der SD-Karte das DraBrowse auf den VC-20 portieren?
    Dann müsste man nicht jedes Programm einzeln anmelden.


    Ich finde es gut wenn jemand das DraBrowse für den VC-20 portiert!


    Das einzeln "anmelden" ist schnell geschehen. Zudem wenn es einmal gemacht ist kann man es ja komplett kopieren. Es gibt eh nicht soviel VC-20 Software, da hält sich der Aufwand in Grenzen.


    Zudem könnte man sich ja in DraBrowse eine Erweiterung schreiben, mit der man die Menüdatei ganz leicht erstellen kann: Dateien anwählen, Erstellen, Optionen zu erfassen.




    Ich gehe diesen Weg zu Ende. Aber es ist alles offen, jeder kann sich an einer Firmware versuchen ... ;)

  • Zudem ist es nicht ganz so einfach, weil Programme oft nicht nur geladen werden müssen sondern auch die optionen der FE eingestellt werden sollen, und zwar automatisch.


    Das ist natürlich ein schlagendes Argument! Also laß Dich nicht von solchen Anmerkungen beirren und weiter so! ;-)


    Zumal der Verwendung eines (evtl. zu modifizierenden) Browsers ja nichts im Wege steht.

  • Diese blöde Zeilen Verkettung ist sowas von lästig!! 2 fach zeilen, 4 fach zeilen mit 88 Spalten, wem ist der Krampf eingefallen!! Und warum wird bei jedem Zeichen der Zeiger ins Farb RAM neu berechnet??? :@1@:


    Entweder man verzichtet auf die letzte Spalte der Zeile oder es wird ständig wirr rum gescrollt. Die letzte Spalte der letzten Zeile ist überhaupt nicht erreichbar!! :schreck!:




    Jetzt ist Schluss damit! Ich hab mir jetzt eine eigene Zeichenausgabe gemacht. Keine Doppelzeilen, kein Scrolling und die Geschwindigkeit ist auch drastisch erhöht! Jetzt kann man sich endlich wieder dem Kern der Sache zuwenden. Das musste mal raus ...

  • Der Disk Loader ist jetzt auch zu 90% fertig. Wird zeit dass der Prototyp kommt ...


    .

  • Auf eine Anregung im Denial Forum wurde das Hauptmenü verändert, sodass der Diskloader über F3 (ohne Shift) erreichbar ist. Auf Kosten der Hilfe, die man später weniger oft braucht.


    • F1 .. RAM Manager
    • F3 .. Disk Loader
    • F4 .. Help
    • F5 .. Cart Loader
    • : :


    -----------
    Die Wedge wurde ersetzt durch die EasyLoad+ Wedge und ist nun voll im Source enthalten. Der Code ist voll relokatibel! Folgende Befehle sind in der neuen EasyWedge:



    # .. Gerätenummer abfragen
    #n .. Gerätenummer setzen
    @ .. Floppy Status abfragen
    @"cmd" .. Floppy Befehl senden, Status abfragen
    $ .. Directory anzeigen (engeres VC-20 Format)
    OLD .. UNNEW eines BASIC Code nach einem Reset
    KILL .. schaltet die Wedge ab
    /"file" .. LOAD einer Datei ab BASIC Start, funktioniert direkt aus der Directory Anzeige
    %"file" .. LOAD einer binär Datei, funktioniert direkt aus der Directory Anzeige


    -----------
    Der Befehlsumfang des Diskloader wurde stark erweitert. Jedem Menüeintrag können nun folgende Sequenzen zugeordnet werden:

    • eines oder mehrere Dateien laden
    • jede Datei kann ab Basicstart als BASIC Programm geladen werden (Option B)
    • oder als Programm ab der Adresse im File (Option P)
    • oder als Programm ab der angegebenen Adresse (Option P + Adresse)
    • oder als Cartridge - ohne Adresse im File (Option C + Adresse)
    • Der Befehl BLK setzt den Schreibschutz des SRAM individuell (ROM Emulation).
    • Der Befehl NOIO versteckt das FE Register und verhindert so Rekonfiguration.
    • Es kann ein oder mehrere beliebige Disk Befehle gesendet werden.
    • Die Sequenz kann abgeschlossen werden mit einem der folgenden Befehle: RESET, RUN, SYS $hhhh, RELOAD
    • Der Befehl RELOAD ladet das Menü File neu. Dadurch man geziehlt auf einer SD Karte navigiert werden, indem man CD Befehle sendet. Man hat so also Untermenüs die man beliebig schachteln kann.
  • Verbesserungsvorschläge:


    - Jetzt wird ja nach ein paar Sekunden das Menü automatisch verlassen - mir wäre es lieber, was würde im Menü verbleiben. Kann man das vielleicht ändern oder nach Benutzervorliebe einstellbar (d.h. im Flash abgespeichert) machen?


    - Es wäre schön, wenn der Disk Loader auch mit dem Joystick bedienbar wäre. Z.B. Wählen mit rauf/runter, Auswählen mit Feuer, Verzeichnis zurück (..) mit links


    - Bei den Funktionen, die noch nicht fertig sind (wie z.B. Cart Loader) wäre ein kurzer Hinweis wie z.B. "not yet implemented" schön, damit man sehen kann, dass da zwar was vorgesehen ist, aber es noch nicht da ist


    - Wenn die Firmware nicht auf das SD2IEC zugreifen kann, hängt sie sich auf und nur ein Reset hilft. Kann man da vielleicht ein Timeout einbauen bzw. eine Fehlermeldung anzeigen?


    - Wenn gar keine LOADER-Datei gefunden wird, wäre ein Hinweis schön, dass der User doch gefälligst LOADER-Dateien verwenden soll - vielleicht mit einem Link auf eine Seite, wo Hinweise zu diesen LOADER-Dateien zu finden sind.


    - Gibt es einen herkömmlichen Datei-Browser, mit dem man das Inhaltsverzeichnis der SD-Karte klassisch (also ohne Loader-Dateien) anzeigen kann? Wäre schön, wenn man den mit in die Firmware integrieren könnte


    - Alternativ wäre vielleicht eine Funktion im Disk-Loader schon ein Fortschritt, mit dem man sich das aktuelle $ der SD-Karte anzeigen lassen kann


    - Wenn zwar LOADER-Dateien verwendet werden, die darin enthaltenen Verzeichnisse und/oder Dateien aber nicht existent sind, gibts keine Fehlermeldung, sondern es tut sich einfach gar nichts und keiner sieht/weiß warum - da wäre eine Fehlermeldung eine echte Hilfe!

  • - Jetzt wird ja nach ein paar Sekunden das Menü automatisch verlassen - mir wäre es lieber, was würde im Menü verbleiben. Kann man das vielleicht ändern oder nach Benutzervorliebe einstellbar (d.h. im Flash abgespeichert) machen?


    Timeout wegnehmen kann man, optional im flash nein. Flash schreiben geht nur begrenzt und man kann nur ganze 32KB Pages auf einmal löschen.



    - Es wäre schön, wenn der Disk Loader auch mit dem Joystick bedienbar wäre. Z.B. Wählen mit rauf/runter, Auswählen mit Feuer, Verzeichnis zurück (..) mit links


    Joystick? Ja im Grunde schon. Auf, ab und Feuer ist easy. Directory zurück mit links geht so nicht, weil das ist ein Menüpunkt wie jeder andere. Der muss auch gar nicht ganz oben stehen.



    - Bei den Funktionen, die noch nicht fertig sind (wie z.B. Cart Loader) wäre ein kurzer Hinweis wie z.B. "not yet implemented" schön, damit man sehen kann, dass da zwar was vorgesehen ist, aber es noch nicht da ist


    Ich werds farblich markieren oder ganz ausblenden.



    - Wenn die Firmware nicht auf das SD2IEC zugreifen kann, hängt sie sich auf und nur ein Reset hilft. Kann man da vielleicht ein Timeout einbauen bzw. eine Fehlermeldung anzeigen?


    Fehler die der Kernel zurückmeldet sind abgefangen. man kommt dann mit Space und/oder F8 weiter. Wenn nicht dann hänge ich imn Kernel und kann nix machen.



    - Wenn gar keine LOADER-Datei gefunden wird, wäre ein Hinweis schön, dass der User doch gefälligst LOADER-Dateien verwenden soll - vielleicht mit einem Link auf eine Seite, wo Hinweise zu diesen LOADER-Dateien zu finden sind.


    Wenn keine Loaderdatei gefunden wird, dann kommt eine leere Seite. Finde ich persönlich ok. Keine Loaderdatei gibt es normal nicht, wenn es erst eingerichtet ist.


    Natürlich könnte man auf 62-file not found reagieren, aber das finde ich jetzt nicht so wichtig. Was ist mit einer leeren Loader Datei?



    - Gibt es einen herkömmlichen Datei-Browser, mit dem man das Inhaltsverzeichnis der SD-Karte klassisch (also ohne Loader-Dateien) anzeigen kann? Wäre schön, wenn man den mit in die Firmware integrieren könnte


    Es gibt VIC20 Disk menue, ist ein BASIC Programmman, man kann es im Diskloader laden und benutzen. Einfach die LOADER datei anpassen ... ;)



    - Alternativ wäre vielleicht eine Funktion im Disk-Loader schon ein Fortschritt, mit dem man sich das aktuelle $ der SD-Karte anzeigen lassen kann


    Wirds von mir nicht geben. Da kann sich gerne jemand versuchen, ist alles quelloffen ... :winke:



    - Wenn zwar LOADER-Dateien verwendet werden, die darin enthaltenen Verzeichnisse und/oder Dateien aber nicht existent sind, gibts keine Fehlermeldung, sondern es tut sich einfach gar nichts und keiner sieht/weiß warum - da wäre eine Fehlermeldung eine echte Hilfe!


    Derjenige der LAODER Dateien erstellt, das wird nach meinen Erfahrungen fast niemand machen, der weiss was er tut und korrigiert das.


    Ich kann schon den DiskStatus anzeigen nach einem Disk Befehl. Die Routine ist ja schon da, aber den normalen User verwirrt das eher als es hilft.


    Die Disk Loader Konfiguration ist komplett frei. Man könnte zB. auch den Highscore jedesmal löschen oder umkopieren. Die FE3 Firmware weiss ja nicht was der User bezweckt, also macht eine Fehlermeldung nicht IMMER Sinn.


    Man könnte aber über einen Befehl nachdenken, den Diskstatus anzuzeigen. Oder alternativ anzeigen wenn nicht 00-ok.