Hallo Besucher, der Thread wurde 4,4k mal aufgerufen und enthält 18 Antworten

letzter Beitrag von Bodhi1969 am

Comal80 Cartridge Reversed

  • Ich habe das Comal80-Modul fuer den C128 mal etwas gruendlicher untersucht. Ich erstelle dieses Thema mal, falls sich jemand das Teil nachbauen moechte.


    Zuerst war da mal das offene Cartridge und ich wollte zu gerne wissen wozu man den 74LS125 verwendet hat.



    Um wirklich die komplette Beschaltung sehen zu koennen, musste die Platine mal "nackig" gemacht werden :



    Daraus ist dann folgender Schaltplan entstanden :



    Das Prinzip ist recht einfach : Das Cartridge wird ueber IO/1 angesprochen und verwendet die oberen 4 Datenbits zur Konfiguration des Moduls. Wobei D7 keine wirkliche Funktion hat. D4 entspricht A14, D5 und D6 schalten die einzelnen ROMs ueber einen halben 139er Dekoder. A14 (D5) wird fuer das 16kB-Banking des jeweiligen ROMs verwendet.
    Der 74LS125 soll scheinbar das Auslesen der aktuellen Register-Konfiguration ermoeglichen. Der 74LS00 wird mit einem Gatter zum Erzeugen des Clock-Signals verwendet und ist ansonsten ungenutzt.



    Nachbau : Ich wuerde die Eproms in einem z.B. 27010 zusammenfassen und die Beschaltung entsprechend anpassen.


    Die ROMs : http://www.cbmhardware.de/dlmanager/download.php?id=226


    Eine ordentliche Webseite gibt es demnaechst auf meiner Homepage.


    Michael

  • Na so eine blödsinnige aufwendige Schaltung :) War wohl auch um den Nachbau zu erschweren?


    @sauhund: Was fehlt noch? Steht doch alles da? Register ist über ganz I/O1 gespiegelt, und nur 4 bzw. nur drei bits sind verwendet, und das sind die Banking Bits für insgesamt 6 16kB Bereiche... Komischerweise mapt das Modul nur über ROML ein deshalb nur 16kB.


    Ein Teil der Logik sorgt wohl dafür dass bei einem Reset immer der richtige 16kB Bereich ausgewählt ist.

    Code: Floppy Fehlerkanal abfragen - Ausserdem kann ich bei "drive not ready" den I: und N: Befehl verwenden und notfalls den Kopf manuell zurückschieben. Und Finger weg vom Stepper!
    1. 10 open1,8,15 : rem 8 ist die Geräteadresse und das kann man bei Bedarf natürlich anpassen
    2. 20 get#1,a$:?a$;:ifst<>64goto20 : rem Das CLOSE 1 am Ende kann man sich sparen, weil beim RUN automatisch ein CLOSE ALL ausgeführt wird.
    3. RUN
  • Naja, ist eigentlich nur ein Register, dass wohl IO/1 komplett beansprucht. Damals ist man wohl davon ausgegangen, dass man ein und nicht drei Cartridges einstecken sollte. :)
    Mit Patchen der ROMs muesste evtl. etwas machbar sein.



    Ich habe es mal in Truth-Tables gepackt.




    Edit : X1541: ROMH liegt an /OE der ROMs. Das wird ueber ROMH eingeblendet !


    Michael

  • Zitat


    @sauhund: Was fehlt noch? Steht doch alles da? Register ist über ganz I/O1 gespiegelt, und nur 4 bzw. nur drei bits sind verwendet, und das sind die Banking Bits für insgesamt 6 16kB Bereiche... Komischerweise mapt das Modul nur über ROML ein deshalb nur 16kB.


    die beschreibung sagt einem hardwarekundigen vielleicht alles auf einen blick, aber als programmierer hab ich lieber eine tabelle wo man reinguckt und ablesen kann welche werte wohin geschrieben werden müssen damit was passiert :) noch viel mehr weil ich den c128 nicht kenne, was weiss ich was bei dem io1 ist oder wo warum was wohin eingeblendet wird? =)

  • cbmhardware: ja, es blendet an ROMH ein. Hatte das falsch gesehen. Ist beim 128er auch egal, da er auch von ROMH einen Autostart machen kann. Auch ist es nicht so, dass der '161 über Reset rückgesetzt wird? Du hast das etwas verwirrend gezeichnet ...


    hmm, jedoch hat ROMH ja ein Loch bei FF80 oder wo sind die MMU Register nochmal?

    Code: Floppy Fehlerkanal abfragen - Ausserdem kann ich bei "drive not ready" den I: und N: Befehl verwenden und notfalls den Kopf manuell zurückschieben. Und Finger weg vom Stepper!
    1. 10 open1,8,15 : rem 8 ist die Geräteadresse und das kann man bei Bedarf natürlich anpassen
    2. 20 get#1,a$:?a$;:ifst<>64goto20 : rem Das CLOSE 1 am Ende kann man sich sparen, weil beim RUN automatisch ein CLOSE ALL ausgeführt wird.
    3. RUN
  • Ja, Clear des 74161 ist an Reset. Ich hatte Reset und ROMH auf einen Bus gepackt. Darueber bin ich selbst schon gestolpert. Ich werde das mal etwas genauer bezeichnen.


    Michael


    Edit : Schaltplan ROMH und RES nachgetragen. So sollte es auf dem Monitor aussehen, wenn alles richtig funktioniert :


  • Eine ordentliche Webseite gibt es demnaechst auf meiner Homepage.

    Diese habe ich gerade gefunden. :)


    http://www.cbmhardware.de/show.php?r=2&id=3



    Mal ganz naiv gefragt, besteht der Hauch einer Chance, die ROMs

    so hinzubekommen, dass man sie als "Cartridge" mit dem "Kung Fu Flash" am C128 starten kann? Das wäre nämlich rein zufällig hier bei mir vorhanden. :whistling:


    Oder geht hier ohne die echte Platine nix?

  • Ich kenne das "Kung Fu Flash" leider nicht. Auf den ersten Blick würde ich aber nein sagen. Dieses alte Comal80-Cartridge verwendet ein 16kByte-Banking mit einer total blödsinnigen Schaltung. Idealerweise müsste man die ROMs anpassen und mal schauen, ob diese vorliegende Schaltung auch als Kopierschutz dient. Im Prinzip braucht man dann nur noch ein 010er-ROM, ein Register und wahrscheinlich ein paar Gatter zur Anpassung, damit die 16kByte-Bänke passend eingeblendet werden.

    Ich hatte eben einen kurzen Blick ins erste ROM geworfen. Leider ist meine Erinnerung nach 15 Jahren etwas diesig. :) Es wird jedenfalls auf I/O1 und $ff01/ff04 (Banking ?) geschrieben. Diese kleinen Routinen müsste man mal reassemblieren und durchsehen, was da tatsächlich abläuft. Dann sollte einer Nachbildung nichts im Weg stehen.

  • Wer sich eine Cartridge nachbauen will, hier gibt's ein Github.

    In den C128-Verzeichnissen liegen auch nur mein alter Schaltplan und die ausgelesenen Bins.

  • Was hat es damit auf sich?

    Es gibt eine COMAL Cartridge für den C64, die läuft perfekt.

    Natürlich auch am C128, im C64 Modus.


    Es gibt auch eine COMAL Cartridge für den C128, aber (noch) keinen Nachbau.



    Der Kerl der das Cartridge für den C64 nach gebaut hat, der hat in seinem GITHUB auch ein Schaltbild zur C128 Cartridge.

    Vermutlich will er die auch nachbauen?

    Auf jeden Fall ist diese Schematic ungeprüft, das meint er mit dieser Aussage.


    Ich hab allerdings aus anderen Quellen erfahren, wie das COMAL Banking beim C128 läuft.

    Und es entspricht dieser Schematic auf der Seite.

    Also möglicherweise stimmt die Schematic doch.

    Ist halt (noch) ungeprüft, weil es noch keiner nachgebaut hat.



    Das COMAL-80 läuft auch auf anderen Cartridges, zum Beispiel auf dem UC1: https://oe7twj.at/index.php?ti…rsal_Cartridge_1#COMAL-80

    Bei mir hier läuft das auf einer UC-1 tadellos.