Posts by cbmhardware

    Ich hatte mir mal Gedanken gemacht wie man ein 64kB-Eprom komfortabel nutzen könnte. Mein erster Ansatz wäre 16kB-Pages einzublenden und diese dann in den Speicher kopieren. Der kleine Makel an der Geschichte, man braucht I/O und das geht ohne riesigen Schaltungsaufwand nur mit dem "bleed through"-Effekt, der aber schon oft verwendet wurde. Es wird also in den Speicher durchgeschrieben, sobald man diese dekodierte I/O-Adresse verwendet. Und man kann nur Schreiben, was aber ausreichend ist. Man muss nur zwei Bit für die jeweilige Bank schreiben können.


    http://www.cbmhardware.de/temp/bankcart.png


    Ich werde die Dekodierung zur Vorsicht zuerst aufbauen. Die verwendete Adresse liegt ab $FDxx (-$FFFF), also im oberen ROM-Bereich. Da wird es beim Reset zum Speicherlöschen in diesem Bereich Schreibzugriffe geben. Wenn ich richtig liege, wird der letzte Zugriff bei $FFFF mit $00 liegen. Und das wurde jetzt erst mal so in der Schaltung berücksichtigt, es ist dann also Bank 0 oder Offset $0000 bei C1L als Startmodul verwendbar.


    Wenn die Schaltung so funktioniert, sich alles passend ab $8000 einblenden lässt, wird es noch ein ziemlicher Stunt mit der Software. Wenn es dann funktionieren wird, kann man auch grosse Spiele, die (fast) den kompletten Adressraum belegen, bequem per Modul in den Speicher werfen und ausführen. Also Spiele wie Revs, Mercenary oder aktuellere Veröffentlichungen.

    Ich verwende nur noch SSD, könnte bei 4TB aber schon ins Geld ziehen, mir reicht eine 1TB. Vorher hatte ich immer Seagate Barracuda und kann nicht klagen. Die hängen noch als geparkter Datenbunker mit im PC.

    Beim 7408 wird eigentlich nur AEC und DMA verknüpft, sobald DMA= 0 kann das nicht mehr 1 werden. Ja, da muss dann schon etwas schnelles dranhängen, das dann immer wieder zugreift. Versuchen möchte ich das lieber nicht, möchte keine 8501 oder einen TED abschiessen.

    Ist beim C64 auch nicht anders, da treibt der VIC die AEC-Leitung auch. Und da liegt dann die Chance, wenn der TED AEC=1 treibt, kann man diese vielleicht auf Low setzen. Wie ich es im Schaltplan sehe geht AEC vom Modulbus direkt an die CPU. Also kann jeder den Eingang beeinflussen.


    Die einzige Möglichkeit ist AEC=1, BA=1 also wenn der TED an die CPU abgibt und dann mit AEC=0 die CPU vom Bus nehmen. Und das natürlich nur für einen sehr begrenzten Zeitraum.

    Ich hatte eigentlich etwas anderes in den diversen C16-PDFs gesucht, aber es brachte mich auch die Idee: warum eigentlich kein DMA mit dem C16 oder Plus/4 ?


    Beim C64 hat man eine DMA-Leitung am Expansionsport. Das ist aber eigentlich kein Hexenwerk, dort wird einfach das DMA-Einganssignal mit AEC logisch (AND) verknüpft. Sobald DMA=0 ist kann AEC nicht mehr High werden (Adressbus High-Z). Dazu braucht man dann natürlich noch PHI, BA und R/W wenn man mit dem Datenbus etwas machen möchte. Im 6510 Datenblatt wird sogar kurz erwähnt, dass AEC speziell für DMA vorgesehen ist.


    Die 75 oder 8501 CPU hat diesen AEC-Eingang natürlich auch. Da fehlt dann das Gatter des 7408 (AND) um die Leitung DMA nennen zu können.


    Wir machen also folgendes:

    Warten auf BA = 1 und PHI= 1 (?), R/W =0 (Lesen) ... die CPU ist dran

    AEC = 0 und für im Moment nicht bekannte Zyklen kann man auf den Daten- und Adressbus zugreifen

    BA = 0 ... der TED ist dran


    Mir geht es jetzt nicht um den wahrscheinlich nicht ganz richtig formulierten Zugriff. War jetzt nur mal so aus dem Stand.


    Aber ist es theoretisch machbar oder übersehe ich da etwas ?

    Bei Plus/4 World bin ich nicht angemeldet, hänge es hier an. Es lag noch ein anderes CRT im Verzeichnis. 2 Spiele für C1L mit Auswahl: Kikstart und Invaders. Ist vielleicht mal etwas anderes.


    Wenn man es richtig macht, packt man in eine Bank auch mehrere kleine Programme. Prinzipiell könnte man so auf ein Cartridge mit 2 Bänken eine Menge unterbringen und die Auswahl per Software gestalten.



    browser_2games_crt.zip

    Mich beschäftigt aber die Frage wie upe37 diese Platine mit einer 4-Spiele Compilation (auf einem 512er Eprom?) anbieten konnte.

    Das ist mit der einfachen Standard-Platine nicht machbar. Da braucht man zumindest noch etwas Dekodierung für Adresse, dazu Register für Banking mit C1L/H und den oberen Adressleitungen des ROM. Das Schalten des jeweiligen Bereichs muss dann die Software aus dem ROM übernehmen. So etwas ist schon etwas anspruchsvoller, da man den Code nicht direkt im ROM ausführen kann. Ich hatte so etwas immer mit einem Trampolin-Code im RAM realisiert, der aus dem ROM kopiert wird, danach den ROM-Bereich ins RAM kopiert, das ROM abschaltet und das System teilweise neu initialisiert. Danach kann das Programm dann ausgeführt werden. Ist beim C16 und Plus/4 etwas verzwickter.


    Fürs Grobe habe ich einen Baumark-Kompressor, dazu eine dieser Luftpistolen mit dünner Verlängerung. Da hat man dann wenig und gut dosierbaren Druck. Meist ist das dann schon weitestgehend sauber. Grosse Bauteile lassen sich auch gut mit Isopropanol abwischen, dann sehen die wieder aufgefrischt aus.

    Wenn du magst können wir auch eine PM Konversation starten und nicht diesen THREAD mit RGB zu Video Thematik "vollzuspammen" ;)

    Falls du keine C128toSCART Platinen hast kann ich dir meine ältere SMD Prototyp Platine zuschicken. Dann kannst du damit spielen.


    Ich wollte nur mal anregen, die auch schon verwendeten Schaltungen und Signalaufbereitungen mit einzubeziehen. Wie man gesehen hatte, ist Scart nicht immer der gleiche Scart-Eingang. Alles gut, ich bin damit raus. :)

    Ich hatte erst den AD724 versucht, weil der weniger Drumherum braucht, habe aber beide Typen da. Im Moment allerdings noch nichts wieder damit gemacht. Wenn ich mich richtig erinnere, erwarten beide Typen ein analoges RGB. Hier ist eine Anpassung für VGA: http://sites. google. com/site/h2obsession/CBM/C128/rgbi-to-vga {Leerstellen entfernen, irgendeine Bilderhoster-Sperre nervte }


    Ich muss morgen mal sehen, ob ich alles für einen ordentlichen Aufbau da haben. Tantals werden wohl fehlen.


    Ich hatte es gestern mit einen AD724 auf einem Steckboard aufgebaut. Hatte aber keine einstellbare Kapazität für den Quarz und gesamt war das doch sehr wackelig. Ich hatte jedenfalls auch ein unterschiedlich gutes oder schlechtes s/w-Bild (FBAS und SVIDEO).

    Das digitale RGB muss wohl zuerst nach Analog konvertiert und dann alles mal etwas betriebssicherer aufgebaut werden. Warte im Moment auf SOIC->DIL Adapter und danach werde ich es nochmals versuchen.

    Viele der Flachbildfersnseher verfügen auch noch über einen VGA-Eingang. Das wäre auch noch eine Alternative, die dann nicht so viel Aufbau benötigt.

    Wenn die einzelnen Zeichen immer den gleichen Defekt haben, könnte das Char-ROM langsam vergesslich werden. Wenn das gleiche Zeichen auf dem Bildschirm immer wieder leicht verändert dargestellt wird, kann der Fehler im Speicher oder der Adressierung liegen. Manchmal kommt es auch zu Seiteneffekten, sodass eigentlich intakte Bauteile durch einen anderen Defekt beeinträchtigt werden.

    Ich würde mit dem Char-ROM anfangen.


    Wenn es im einem Sockel steckt, könnte auch eine schlechte Kontaktverbindung so etwas auslösen.

    Ich hatte jetzt auch einen Fehler drin: #$40 ist Bit6, also verwendet der Plus/4 doch Ack. Da konnte ich keine passende Einstellung des Datenrichtungsregisters finden. Auch eine Möglichkeit: der Sender verwendet immer Ack und der Empfänger dann DAV. Und dazu dann noch dieses #$00 Pingpong.


    Das ist wirklich ein übles Kraut ... :)

    Die Darstellung des Protokolls auf der Webseite stimmt so leider doch nicht. Im P/4-Romlisting findet man ab $f322 die Konfiguration für die Datenrichtungsregister $fec5 und $fef5: #$40 also Bit 6: Data Valid auf Ausgang. Damit hat man dann schon mal sichergestellt, dass der Plus/4 zweifelsfrei immer DAV verwendet.


    Idle = DAV:1 und ACK:1

    Die Leseroutine des Plus/4:

    Das sieht doch etwas anders aus:Datenbyte $84, DAV= 0, warten auf ACK=0 , Status != sichern, Byte abholen, DAV=1. warten auf ACK=1

    Datenbyte $00 , DAV = 0

    $E21D: warte auf ACK= 1, DAV= 1


    Also DAV wird vor ACK low und mit den Statusbytes bin ich noch unsicher, ob die überhaupt eine Einfluss beim fehlerfreien Ablauf haben.



    So sieht der Analyzer das auch.


    Da muss man sich aber auch wirklich durcharbeiten. Noch nie so ein umständliches und blödsinniges Protokoll gesehen. Da kann es auch nicht ausbleiben, dass die mit parallelem Anschluss so langsam ist.