FE3 für C16 / +4 / C116

Es gibt 115 Antworten in diesem Thema, welches 27.621 mal aufgerufen wurde. Der letzte Beitrag (26. Mai 2010 um 16:10) ist von gHost.

  • Das das mit der Softwareerkennung reibungslos funktioniert glaube zwar nicht aber das kann uns erstmal nicht stören. Aber ich würde trotzdem gerne 2-3 externe Jumper vorsehen, nur zur Sicherheit :smile:
    Darüber könnte man dann verschieden Hardware drüber Emulieren/Simulieren - hab was üben Neo/Geo-Ram gelesen - aber das ist ne Sache da muß sich eh der CPLD drum kümmen - wäre aber 7 zusätzliche Ausgänge für nötig.

    Also welchen CPLD schlägst du vor ? der muß auf alle fälle genug Ein- und Ausgänge haben und intern ne Menge Logik verkraftenkönnen - auch ja und er sollte trotzdem noch super klein sein :smile:

    Dann schau ich mal was man alles in son Modul rein quetschen kann.

  • ich schlage einen Atmel CPLD for, die kenne ich jetzt bereits gut.

    ATF-1504 wie beim FE3 für VC-20

    ATF 1508 wie beim David-65


    Kann momentan nicht so häufg antworten, bin im Urlaub ...

    Bitte melde dich an, um diesen Link zu sehen. --- Bitte melde dich an, um diesen Link zu sehen. --- Bitte melde dich an, um diesen Link zu sehen.

  • In Eagle hab ich nur den Altera EPM7096-P100 gefunden, der ist soweit Pinkompatibel - dann brauch ich den nicht extra neu anlegen. Wie wird der programmiert/ über welche Kontakte ? denn die JTAG Leitungen liegen zwischen den I/O Leitungen !
    Müßen die JTAG Leitungen frei bleiben ? Und Welche Pinbelegung soll/muß ggf. der JTAG Anschluß auf der Platine haben ?

  • Da ich mit CPLDs noch nichts gemacht habe hier noch ne Frage, der CPLD hat anscheinen speziel Takteingäng ist es Sinnvoll die wichtigsten Taktsignale vom 264 direkt dort drauf zu legen oder ist es be der geringen Geschwindigkeit vom 264 egal.

  • Von der Geschwindigkeit her ist es egal, aber man spart sich viel an Ressourcen wenn man den her nimmt. Der S02 Takt sollte an dem CLK des CPLD liegen.

    Achtung, es gibt einige wenige Pins die nur Ein- bzw. nur Ausgang sind.

    DerReset sollte übrigens auch an dem globalen Reset liegen

    Bitte melde dich an, um diesen Link zu sehen. --- Bitte melde dich an, um diesen Link zu sehen. --- Bitte melde dich an, um diesen Link zu sehen.

  • Also ich bin immer dafür Ressourcen zu sparen. Allerding finden ich in dem Datenblatt von Atmel nicht über "nur Ausgänge", aber das mit den CLK Eingängen finden nicht verkehrt. Leider steht in dem Datenblatt auch nicht drin welcher Pin zu welchem Block gehört ( würde auch noch mal Ressourcen sparen, denke ich ).
    Was war denn jetzt mit den JTAG Leitungen ?
    Mit /Reset ist warscheinlich GCLR gemeint - oder ?
    Was hat das mit OE1 und GOE auf die Hacken ?
    VCC ist wohl überall gleich, da wir nur mit 5V Techniken arbeiten !?!

  • DRAM abschalten ohne Aufschrauben:

    Der C16/C116/plus4 ist HMOS-Technik, lediglich die D-Rams sind CMOS - Eure Sorge, dass da auf den Datenleitungen zu viel Strom fließt, ist also berechtigt. Man kann jedoch die Tatsache nutzen, dass der ganze Rest der Kontrollschaltung HMOS ist.

    Eine Eigenschaft von HMOS ist - genau wie bei NMOS - dass man jeden Ausgangspin jederzeit auf GND ziehen darf, ohne dass der Chip Schaden nimmt. Mein Vorschlag ist, die R/W-Leitung am ANfang des Zyklus zu samplen und mit dem gespeicherten Wert bis zum Ende des Zyklus zu arbeiten. Wenn im Laufe des Zyklus festgestellt wird, dass man extern Speicher zum Lesen einblenden will, aber der interne C16-Speicher dazwischen funken würde, zieht man mit dem CPLD die R/W Leitung auf Masse. Der Effekt wird sein, dass der interne Speicher "glaubt", dass es sich um einen schreibzyklus handelt. Er wird demnach nicht auf den Bus gehen, wird aber auch potentiell seinen Inhalt verlieren. Die Methode ist sauber, erfordert aber den Ersatz des *ganzen* Speichers extern (was bei nem halben Megabyte kein Thema sein dürfte).

    Die Entwicklung einer komplett externen Erweiterung, also "non-intrusive" und kompatibel mit Garantiesigelfetischisten, ist demnach möglich. Timing-technisch ein bischen fummelig, aber wenn's einmal steht, hat man keinen Schaden zu befürchten.

    Wer nimmt die Herausforderung an? Ich bin gern behilflich, werde aber wahrscheinlich den Rest des Jahres kaum Zeit für Retro-Spaßprojekte haben.

    Jens

    Bitte melde dich an, um diesen Link zu sehen. - Das offizielle iComp Supportforum ist online.

  • Ok, das wäre auch noch ne möglichkeit, aber man sollte drotzdem noch kompatiebel mit anderen Erweiterungen sein - wenn jemand sein DRAM schon auf 256KB aufgebort hat oder ne ROM Erweiterung drin hat.

    Das ganze Timing ist eh noch sone Sache - denn CPU und TED greifen abwechselnd auf den Speicher zu !

    SID und Clock-Port ist ja eh kein Problem - ist nur die Frage in welchen I/O Bereich man die legt - beim SID gibt es ja schon Beispiele, aber gibt es schon Anwendungen für den Clock-Port ?

  • Das ganze Timing ist eh noch sone Sache - denn CPU und TED greifen abwechselnd auf den Speicher zu !

    ...schreibt derjenige, der vor ein paar Tagen noch nach der Bedeutung der Signale AEC und BA gefragt hat. Dir ist also inzwischen klar geworden, dass Commodore seit dem VC20 eigentlich jeden Computer mit dem Prinzip gebaut hat? Na immerhin ist das Prinzip noch keine 30 Jahre alt :smile: Kleiner Tipp fürs Verständnis: Der Prozessor ist der Einzige, der schreibend auf den Speicher zugreift. Das macht die Sache sehr einfach.

    Es ist nichmal unangenehm sich das 'rauszumessen, meiner Meinung nach reine Fleißarbeit. Wahrscheinlich findet man mit ras/mux/cas auch genug Flanken, mit denen man ein Latch steuern kann, das genau diesen write-hack macht, insofern schätze ich den Aufwand als sehr vertretbar ein.

    Ok, das wäre auch noch ne möglichkeit, aber man sollte drotzdem noch kompatiebel mit anderen Erweiterungen sein - wenn jemand sein DRAM schon auf 256KB aufgebort hat oder ne ROM Erweiterung drin hat.

    "kompatibel zu..." kann man auf zwei Arten auslegen: Software-Kompatibilität, also das Verhalten wie eine andere Erweiterung, oder die Möglichkeit, das FE3 zusammen mit bereits installierter Hardware zu benutzen. Offenbar willst Du hier Letzteres, also ko-Existenz mit anderen Erweiterungen erreichen. Das halte ich für beliebig schwer, weil jede dieser Erweiterungen do-it-yourself-Teile waren, somit nicht genormt sind und man keinen Anhaltspunkt hat, wie sie sich von der Standard-Maschine unterscheiden.

    Ich würde daher für die "nackte Maschine" als gemeinsame Basis plädieren, maximal auf 64K ausgebaut, denn das ist im plus/4 auch drin (bei dem würde auch der interne Speicher abgeschaltet werden, auch wenn das sinnfrei ist). Erst wenn Du von einer normalisierten Basismaschine ausgehen kannst, hast Du überhaupt die Chance, eine Erweiterung für die Serienproduktion zu entwickeln. Alles Andere ist Humbug, Du machst nur ne riesige Dose Würmer auf, die Du als Hobby-Entwickler niemals einsammeln können wirst (schon gar nicht, wenn Du zuvor noch nie was von der 3-state Erweiterung des 6502-Kerns von Commodore gehört hast).

    Jens

    Bitte melde dich an, um diesen Link zu sehen. - Das offizielle iComp Supportforum ist online.

  • Hallo allerseits,

    ich hatte die letzten Tage ein bischen weiter am C16 rumgemessen und hänge mal
    drei Bilder an auf denen man jeweils einen CPU Schreibzugriff sieht mit
    langamen und schnellem Takt sowie ein Timing mit den TED refresh Zyklen.
    Man muss beachten,dass der TED die CPU hoch und runter taktet.
    Mit der fallenden Flanke von RAS könnte man die r/w Leitung abfragen.Zusammen mit
    dem CPU Takt, AEC und BA könnte man auch TED/CPU Zugriffe unterscheiden falls nötig.
    Die Details einer realen Umsetzung werden jedenfalls kniffelig sein.Man bräuchte auch
    einen externen unabhängigen Takt um die neuen Speicherzugriffe zu machen.Zeit dürfte
    genug da sein,falls man 55ns SRam verwenden sollte.

    Ich will wirklich keinem "auf dem Schlipps treten",aber ausser Wiesel wäre zur Zeit
    keiner von uns (Diddl,blueicechip,ich) in der Lage das auf Anhieb zu machen.
    Sehr vielle Timing Details sind zu beachten damit man sicherstellt dass es doch nicht auf dem Bus
    "knallt".Ich lese hier sowieso nur des "Basteltriebes" wegen,ein FE für den C16 brauche ich jedenfalls nicht.
    Könnte aber mit speziellen timings aushelfen falls ihr, Diddl oder blueicechip, welche braucht.

    Vielleicht auch nicht gleich alles (RAM/FLASH/SID/CLOCKPORT/RRNET,SD2IEC,...,HANNES/SOLDER/...)
    auf einmal versuchen,wird nicht klappen meiner Meinung nach,zu kompliziert.

    Ich werde für mich erstmal versuchen den C16 intern mit 16 danach 64KB SRAM zum laufen zu bringen mit
    abgeschaltetem DRAM.Erst mit TTL auf Steckbrett,dann 8 bit baby,dann guck ich mal weiter ein
    Flashrom dran zu bekommen.(Bischen EasyFlashC16 Träume,ist ne klasse Hw !!!)

    DRAM abschalten geht beim C16 einfach,da Pin_1 der DRAMS ein globales enable ist.(Ich habe sowieso
    fast alles gesockelt,ich nehme die einfach raus!)

    Bitte nicht böse sein :smile:
    Grüsse,
    Vassilis

  • Super das es noch mehr Leute gibt die interresse haben mitzuwirken.

    Ok, OK, man kann ja erst mal klein anfangen und setzt erst mal nur del cpld, sram und flash auf die platine - der rest muß eh vom cpld gemacht werden. ( Brauch ja auch alles Platz auf der Platine )

    War Pin 1 nicht belegt oder für A8 (258 KB DRAM) ?

    Man kann ja auch erst mal damit anfangen den sram in den Modulbereich einzublenden, und dann vielleicht danach mit dem Flash testen.

  • Hallo blueicechip,


    Super das es noch mehr Leute gibt die interresse haben mitzuwirken.


    Ein bischen zusammen rumbasteln macht mehr Spass,habe allerdings nicht jeden Tag Zeit oder Lust! :smile:

    Zitat


    Ok, OK, man kann ja erst mal klein anfangen und setzt erst mal nur del cpld, sram und flash auf die platine - der rest muß eh vom cpld gemacht werden. ( Brauch ja auch alles Platz auf der Platine )


    Der C16 / Plus4 hat nunmal ein anderes Speichermapping und Timing als der VC20 oder C64 und es ist nicht so tief erforscht wie bei den anderen beiden.Deswegen würde ich mich immer nur auf eines Konzentrieren,wenn jedes Teil für sich läuft kann man ja alles zusammenpacken.
    Der folgende link auf das HW-Manual ist ein muss,falls Du Dich mit der Hardware der C16/Plus4 tiefer vertraut machen willst.
    Bitte melde dich an, um diesen Link zu sehen.
    Was das ganze CPLD Zeug angeht,das ist am Anfang ein bischen unübersichtlich,Du musst allerdings unbedingt Digitaltechnik Grundlagen beherrschen,so mit und und oder und wissen was ein Produkttern ist !? Das Web ist voll mit dem Zeug...

    Zitat


    War Pin 1 nicht belegt oder für A8 (258 KB DRAM) ?


    Ich meinte die 4416 16Kx4 DRAMs die im C16 standard sind.Die 256Kx1 haben ein anderes und die 256Kx4 Speicher wieder ein anderes Pinlayout.Da muss man in das Datenblatt gucken.Allerdings ist es einfacher statisches RAM zu verwenden.

    Zitat


    Man kann ja auch erst mal damit anfangen den sram in den Modulbereich einzublenden, und dann vielleicht danach mit dem Flash testen.


    Ich würde vorschlagen,dass man zuerst überlegt welches Konzept man verfolgen will,das mit dem abgeschaltetem internem RAM oder das knifflige aber bessere,weil nicht verbastelte,von Wiesel.Schnellere Ergebnisse sind mit erstem zu erwarten.Beim C16 ist das interne RAM relativ schnell deaktiviert.Beim Plus/4 müsste man irgendwo an die CAS Leitung ran, diese durchtrennen und Ramseitig auf high legen.Habe allerdings meinen Plus/4 noch nicht zum basteln freigegeben!
    Kompatibilität zu den anderen Speichererweiterungen nur auf Registerebene,aus den verlinkten Dokumenten bin ich leider nicht so schlau geworden.

    Grüsse

  • Ich würd' mal gern wissen, ob's ein vernünftiges Testprogramm für die 264-Serie gibt: Speicher, TED, IOs. Es kann immer noch einiges im Argen sein, selbst wenn die richtige Zahl Basic Bytes angezeigt wird. Meiner Meinung nach müsste erstmal ein Programm her, das den Speicher auf Herz und Nieren prüft, und am besten auch den Zugriff des TED auf den Speicher irgendwie testet (was schon problematisch ist, weil der TED keine Sprites hat und somit die "Hintertür" zum bit-weise testen die's im C64 gibt, nicht existiert).

    Könnte mal ein 264-Software-Experte seine Gedanken dazu äußern? Bevor wir anfangen großmächtig Hardware zu bauen, sollte es zumindest ein paar Test-Cases geben.

    Jens

    Bitte melde dich an, um diesen Link zu sehen. - Das offizielle iComp Supportforum ist online.

  • Hallo allerseits,

    ich habe Gestern erste Versuche mit einem 32KBx8 SRAM gemacht.Habe die
    16Kx4 DRAMs und die zwei Adress Multiplexer rausgenommen und an deren
    Stelle 16K des SRAM ranverdrahtet.Alles TTL auf Steckbrett.Die Anbindung
    ist wie folgt (pseudocode):
    - Adressleitungen A[13..0] von den Multiplexern direkt an das SRAM.
    - SRAM_A14 = GND
    - Datenleitungen D[7..0] von den DRAMs direkt an das SRAM.
    - SRAM_CS = GND, immer selektiert!
    - SRAM_OE = /(PHI0 * RW * /CAS),also aus dem SRAM lesen,wenn Datenphase und
    gelesen werden soll und ein Speicherzugriff stattfindet.
    - SRAM_WE = /(PHI0 * /RW * /CAS).
    - Habe 74LS00 (NAND2) und 74LS20 (NAND4) Gatter verwendet.
    Ergebniss: Rechner startet ok,Byte Anzahl stimmt,kleines "Hallo Welt" geht,
    scheint zu gehen.

    Da das SRAM in dieser Verdrahtung 4 mal gespiegelt wird,habe ich mit
    noch einem 74LS32 (OR2) SRAM_CS = A14 * A15 gemacht,damit das SRAM nur
    dann selektiert wird wenn ein Zugriff auf $0000..$3FFF passiert und
    es geht *nicht* ! Die freien Bytes stimmen nicht,es erscheinen statt den
    Zahlen das Zeichen 7C = Kaestchen !?
    Habe mit dem LA das Timing gemessen,ich finde nichts, SRAM_CS auf GND,geht
    prima!
    Ganzen Abend verbraten,es ist wohl die Kernalrom Ram Erkennung wohl schuld
    dran! Diese ist ab $F351 und nutzt das Spiegeln des Ram aus um 16K/32K/64K
    zu unterscheiden,wenn ich das richtig verstehe.AArrrrrgggc, Arrrrrggv !%*@!
    Kann das jemand bestaetigen? Obwohl es egal ist,da man ja 512K am Ende haben will,
    und nichts mehr gespiegelt sein wird.
    Na ja,nochmal 32K mit CS=GND kurz getestet und das zeigt auch 28661 Bytes
    free.Habe leider kein SD2IEC u.s.w,und nur die BASIC Lernkassette,kann also
    nichts kritisches testen.
    Gehe mal Heute auf der Suche nach mehr SRAM.

    Ein richtiges Speichertest Programm ist natuerlich Pflicht,ich kenne keins,
    was natuerlich nichts aussagt! Falls sich Diddl wieder meldet koennte er
    vielleicht was zu sagen?

    Gruesse
    Vassilis

  • - SRAM_OE = /(PHI0 * RW * /CAS),also aus dem SRAM lesen,wenn Datenphase und
    gelesen werden soll und ein Speicherzugriff stattfindet.

    Und das funktioniert? Da wird das Ram doch bei TED-Zugriff (phi0=0) de-selektiert. Ich kann mir nicht vorstellen, dass da auf dem Bildschirm sinnvolle Dinge zu sehen sind.

    Jens

    Edit: Das war mein Beitrag Bitte melde dich an, um diesen Link zu sehen.. Yay! \o/

    Bitte melde dich an, um diesen Link zu sehen. - Das offizielle iComp Supportforum ist online.

  • Ehhm !? , stimmt, oh Mann was bin ich fuer ein Depp! Das funzt wohl nur deswegen weil der TED das
    charset aus dem ROM liesst mit TED_CS1 und bei den bad_lines aus dem ram waehrend PHI0 = '1' !?
    Ich bekomme definitiv ein Bild, aber spaetenstens wenn ich das charset ins ram lege wird es knallen,

    Man,man,man,war gestern doch zu spaet geworden,
    Danke Wiesel

    EDIT: Ich habe wohl das Attribute ram disabled !? AArrrggc, muss mal alle moeglichen Buszugriffe
    von TED und CPU mit FAST/SLOW Takt messen, Hausaufgaben... Grrr

  • AArrrggc, muss mal alle moeglichen Buszugriffe
    von TED und CPU mit FAST/SLOW Takt messen

    Das ist der Grund, warum ich nach einem vernünftigen Testprogramm gefragt habe. Natürlich kann man beliebig viele Nachdenk- und Querprüf-Schritte einbauen, aber nur wenn man eine Testmethode entwickelt, hat man Sicherheit.

    Qualitätssicherung... feines Thema, kann man Software-Nasen prima mit auf die Palme treiben :smile:

    Jens

    Bitte melde dich an, um diesen Link zu sehen. - Das offizielle iComp Supportforum ist online.

  • Ja, geil.

    Ihr seid ja cool drauf. Und son LA ist auch was geiles - wie schell issn der und wie hoch wäre der Anschaffungswiderstand ?

    Digitaltechnik => ist mein Hobby, und inner Ber.Schule meinte der Pauker er könne mir noch was beibringen :smile: - ansonst igehört Microcontroler-Technik(Atmel) auch noch dazu, was ich jetzt auch Hauptberuflich mache.

    Betr. DRAM kenne ich bisher nur den plus/4 (hat zwar schon 256KB DRAM drin, sind aber nicht verdrahtet) und n bischen den C116 (sind auch schon 256KB drin aber auch noch nicht verdrahtet). Da ich eh von jedem min. 2 habe, bleibt einer immer Original.

    Bisher hab ich auch nur den ATARI 800 XL auf 512KB(SRAM) aufgerüstet + n 128KB(SRAM) RAM-Card-Modul - die haben da einfach die besseren standards.

    ----
    Wenn es nur nach mir ging, würde ich den ext. RAM möglichst nur in den Modulbereich einblenden, um kompatibel zu bleiben.
    Da ja ein CPLD rein kommt ist es aber auch kein Problem mehrere Konfigurationen zu haben.
    Aber damit wir vorran kommen, würde ich mich der mehrheit anschließen. Und die Sache mit der R/W Leitung und das austricks der DRAMs klingt auch recht interressant.

    Das mit der Test-Software wäre auch sehr interressant, für den C64/128 hab ich Module, aber für die 264er hab ich noch nicht mal Software ihrgendwo gefunden.

  • So, hatte die letzten Tage n bischen Stress, hab aber schon mit e Schaltplan und dem Layout angefangen.

    Welchen RAM Typ/Model empfehlt ihr ?