Beiträge von Diddl

    Sooo schlimm sieht die Platine gar nicht aus - sollte sich eigentlich ganz gut reingineeren lassen... (...wenn ich nur mehr Zeit hätte...)

    Hab ich mir auch gedacht, das wäre machbar.

    Das Schaltbild habe ich ja auch.


    Aber da ich ja ein funktionierendes Modul habe, ist die Motivation nicht so besonders groß. :S

    Vor Jahren habe ich mir bei PCBWAY eine Platine fertigen lassen: C64 Expert Cartridge Replica
    Leider habe ich die Gerber Datei nicht archiviert.


    Es war so ein "shared Project" bei PCBWAY.

    Da kann man mit einem Klick Platinen bestellen.

    Das hat auch gut funktioniert, die Cartridge funktioniert heute noch tadellos.


    Nun fragen mich Forums Mitglieder nach dieser Platine.

    Den Link auf das PCBWAY Projekt habe ich noch.

    Leider wurde das Projekt gelöscht.

    Den User RETROTINKER gibt es noch.

    Aber es gibt keines seiner PCB Projekte mehr!

    Alle Spuren bei PCBWAY wurden auch gelöscht, da kann ich nichts mehr finden!


    Google habe ich auch schon bemüht.

    Es findet sich aber nur noch minimale Infos und zumindest ein Schaltbild.


    Hat einer von euch bitte diese Gerber Datei?


    Ich finde es schade, wenn tolle Projekte einfach verschwinden!!



    Zumindest habe ich noch Fotos.

    So sieht die Platine aus:




    Vielleicht sollten wir hier alle Replica PCB Dateien sammeln?

    Aber schon so mit Tasten und Schaltern, als eigenständiges Gerät. Wenn ich auf dem Seziertisch dann wieder einen Laptop brauche um ein Laufwerk Steppen zu lassen, ist das Thema verfehlt ;)

    Wenn man es mit einem Arduino umsetzt, dann würde ja das Eine nicht das Andere ausschließen.


    Man könnte ein paar Taster und Schalter und LED für den standalone Betrieb haben. Und zusätzlich einen Zugriff per Laptop, wo man etwas mehr machen kann und bessere Diagnose Infos erhält.

    Konkret geht es um 6510 Assembler (C64).



    Die Motorola 6809 hat mit relokatiblen Code kein Problem.

    • es gibt relative Sprünge mit 16 Bit Distanz
    • es gibt relativen Unterprogramm Aufruf: BSR

    Insofern kann ich da Code schreiben, der an jeder Adresse laufen kann.

    Mich interessiert, was man in dieser Richtung mit der 6502/6510 machen könnte, trotz aller Einschränkungen dieser Architektur.



    Sagen wir mal, da ist ein Maschinen Programm, das an die falsche Adresse geladen und da gestartet wird.

    Was für Möglichkeiten hat der Code?


    Es ist für eine 6502 CPU ja nicht mal möglich herauszufinden, an welcher Adresse ich gerade laufe.

    Oder doch?



    Vorschlag 1:

    • Ein RTS an eine bekannte Adresse schreiben.
    • JSR auf diese Adresse machen
    • SP manipulieren und PC vom Stack lesen

    Geht es irgendwie anders vielleicht besser oder einfacher?

    Und es ist ein prinzipiell leicht änderbares ROM, da die Drähte nicht wie bei manchen Fädelroms durch Ringkerne gesteckt sind.

    An Wang als "Erfinder" des Ringkernspeichers hat da schon wirklich immer einen "Plan" gehabt.

    Nun ja ...


    • einer fädelt die Firmware den ganzen Tag lang
    • der Programmierer kommt rein: "Ups, da war ein Bug, ich musste noch ein Byte einfügen, ändern Sie das mal ..."


    :D



    Schlagzeile: Mitarbeiter haut einem Programmierer eine Fädel Baugruppe um die Ohren!

    Wow, coole Sache.


    Nicht nur, dass man eine Ersatzlösung hat für den V9958.

    Man hat auch noch eine HDMI Lösung für Computer die diesen Chip einsetzten.



    Ob man sowas auch machen kann mit dem VIC?

    Dann hätte man endlich eine einfache und saubere Lösung den C64 an moderne Bildschirme anzuschließen.

    Der VIC ist halt sehr komplex mit den Sprites und all dem.


    Oder für den 6545?

    Gut das geht sicher relativ simpel.

    Super Leistung, wirklich klasse! :D



    Aber die OS9 MMU, - nun ja, das hat mit MMU nix zu tun.

    Das ist einfach nur ein simples Banking.


    Dieses Konzept hätte man konsequent weiter führen müssen.

    Eine MMU 6829 mit 2MB physikalischem Adressraum.

    Der PET Adressraum ist dann einfach ein Fenster im physikalischen Adressraum.

    Die Funktionen die der PET bietet, wären dann device driver.

    Nun ja, das 6502 Badge liegt schon viel zu lange herum ...


    Aufgebaut, funktioniert auf Anhieb!





    Als Badge etwas klobig ... :D


    Aber sonst ein richtig nettes Spielzeug:

    • läuft mit Akku
    • läuft mit USB (das lädt die Akkus)
    • 2 MHz
    • 32K SRAM
    • RS232 mit 9,6 KBit
    • 7 Segment Anzeige
    • Maschinensprache Monitor
    • ein richtig gutes BASIC

    Das Listing besteht aber nur aus einer Zeile mit dem SYS-Befehl:

    Das macht nichts.


    Auch wenn da nur eine BASIC Zeile ist.

    Das BASIC schützt das GESAMTE Programm das geladen wurde.

    Und beim SAVE wird auch das gesamte Programm wieder geschrieben.


    Du kannst es ja mal laden von Disk und wieder speichern auf Disk.

    Dann siehst du, dass zwei idente Dateien da sind.


    Man darf nur kein UNNEW machen.

    Denn dann setzt dies den Programm Ende Pointer auf das Ende der letzten BASIC Zeile,

    Nun, wenn der AllProg die Lösung ist, - prima.



    Aber eine Adapter Platine wäre an sich nie ein Fehler.

    Wer weiß wie lange die PROM noch erhältlich sind.

    Ich könnte mir vorstellen, dass man hier ein GAL einsetzen könnte.


    • Es sind 8 Input und 4 Output
    • GAL werden noch produziert
    • GAL sind viel schneller als man brauchen würde
    • GAL sind extrem zuverlässig, haltbar und unempfindlich
    • GAL kann man mit jedem Billig Programmer beschreiben (TL866 ...)
    • GAL sind vom Pinout ähnlich wie der PROM, und daher wäre die Ersatzlösung nicht klobig

    Coole Sammung! Beim Anblick der Lautsprecher so nah an den Rechnern wird mir allerdings ganz komisch im Bauch.

    Die Nähe zu Rechner macht nichts.


    Aber Floppy Laufwerke nehmen das u.U. schon krumm, weiß ich aus eigener Erfahrung ... :D

    Die aktuelle Release Version v1.13 ist verfügbar:

    Universal Cartridge –



    Die fertige Version hat nun noch folgende Features:

    • Image Dateien können wieder zerlegt werden in UCF Dateien
    • UCF Dateien können verwendet werden um Image Dateien zu erstellen
    • Datei Analyse Tool für: Moduldatei (.CRT), Image Datei (.BIN), P00 Datei, UCF Datei
    • UCF Dateien können zerlegt werden in Programme (PRG, P00) oder Modul Dateien (CRT,BIN)


    Die Idee hinter den UCF Dateien ist, es enthält alle Infos, damit ein Programm korrekt geladen und ausgeführt wird.

    In etwa wie eine CRT Datei für den VICE.


    Die CSV Datei wird dadurch ganz einfach.

    Menüname und Pfad zur UCF Datei, und gut ist.

    Sogar der Menüname ist optional, weil in der UCF Datei steht drin wie das Programm heißt.


    Man muss sich also keine Gedanken machen, wie das Programm geladen wird und wie es gestartet wird.

    Es sind auch die optionalen Level nicht schlecht.

    Zum Beispiel der Barrel Shifter.


    Meine ersten Versuche sind gleich ausgeartet und unübersichtlich geworden.

    Aber dann habe ich die "Custom Components" entdeckt.


    Da sieht die Sache gleich besser aus:



    Mmh. Ich habe früher viel Reverse Engineering auf 8-Bit-Systemen gemacht und ich würde spontan sagen: Sehr, sehr aufwändig.

    Liegt denn wenigstens ein Schaltplan der Steuerung vor?

    Ich gebe dir recht, reverse Engineering ist extrem aufwendig.



    Aber solche Sachen können mit etwas Intuition sehr einfach sein:

    • der Code ändert sich wahrscheinlich nicht direkt
    • die Codelänge bleibt gleich
    • man muss NICHT den ganzen Code verstehen
    • man muss "NUR" die richtige Stelle finden und Konstanten ändern


    Ich möchte die Arbeit nicht klein reden.

    Aber die Bedingungen finde ich günstig.

    Ist das bei euch auch so?

    Nee, die LED funktionieren tadellos.

    Inzwischen geht auch der Code.

    Ist allerdings nicht meiner.

    Hab jetzt irgendwo gelesen, der Emulator kann nicht mit selbst modifizierenden Code umgehen.
    Deswegen ist mein Code wohl nicht gelaufen.


    Network Code - Achtung Spoiler:


    Oh Mann, ein Prozessor mit nur zwei Registern ist echt anstrengend :wand:

    Ja das ist echt herausfordernd ... :D

    Speziell da ein Register eigentlich nicht zählt, man braucht es ja immer sobald Adressen im Spiel sind.



    Hinzu kommt 'immediate' geht auch nur mit dem Adress Register.



    Aber die Stack Machine hebt dann alle Beschränkungen auf.

    Bis Computer bin ich auch gekommen.

    Irgendwie komme ich mit dem Edit ROM nicht klar. Und beim Check kommt eigentlich immer die gleiche Fehlermeldung.

    Kannste mir da ein Tipp geben?

    An du meinst Levels -- Software -- Low Level -- Machine Code??



    Ganz ehrlich?

    Ich hab einfach nur herum probiert.

    Solange bis es geklappt hat.


    Aber das kannst du auch getrost überspringen.

    Interessant wird es eh erst danach.

    Mit dem Assembler.


    Die Bit Ebene des Microcode ist sogar mit zu hart.



    Danach wird es richtig gut!

    Der baut eine Stack Machine auf.

    Eine Art FORTH.

    Genial!


    Es gibt sogar einen Tokenizer und einen Syntax Ruler.