FE3 für C16 / +4 / C116

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

  • Super, vielleicht bringen wir das gemeinsam hin?

    Ich würde vorschlagen wir verwenden dieselben Bauteile wie beim Final Expansion für den VIC-20

    + Flash AM29F040

    + SRAM

    + CPLD ATF-1504

    Vielleicht dieses Mal alles PLCC-44.

    Natürlich den SID nicht zu vergessen. Und den Clockport wie beim MMCR, damit man RR-Net nachrüsten kann.


    Für das SD2IEC könnte man vielleicht auch einen PLCC Controller vorsehen?

    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.

  • Ok, das mit dem SD2IEC ist kein Problem, aber wie funktioniert der Clock-Port und wie ist die Belegung, ich hatte da auch schon mal gesucht und nichts dazu gefunden.
    Nen Cevi mit SID hätte ich auch aber wie der funktioniert kann ich nicht sagen.
    Das mit dem SRam und dem Flash ist ja hin zu bekommen, nur wie sieht es dann mit der Karte aus ? Um da n Modul von zu machen muß die Platine ja länge und schwaler werden - und dabei ist die Frage ob wir dann noch alles unter kriegen.
    PLCC waren doch die dinger die in den Sockel kommen ? SMD wäre vielleicht von der Größer her die bessere Wahl.

    Passen eigentlich die gleichen Modulgehäuse wie beim Cevi ?

  • Nur mal ne Frage nebenbei: gibt es fürn 264 nen 4 Player-Adapter und Games ?

    Um nen Schaltplan zu erstellen müßte man erst mal wissen:

    - welche Speichermapping Modell gibt es schon alle ? - kompatibilität !
    - wird die RAM-Erweiterung nur in den Modulbereich eingeblendet oder kann man den externen Speicher auch in andere Bereich mappen ?
    - wie funktionieren Module am Mudulschacht überhaupt ?
    - gibt es verschieden Modul (Speicher) größen, und wie funzt da das Banking ?
    - muß ggf. weiterhin die Standard-Speicher-Aufrüstung weiterhin in den 264 eingebaut werden oder kann das auch über den Modul-Schacht gehen ?
    - Wie wird der SID angesprochen / Adressiert / eingeblendet und wohin ( Stereo-SID huckepack ?)
    - wie funzt n Uhr-Port und ist der immer aktiv, kann der im normal Bertieb stören ?

    ...

  • Ok, das mit dem SD2IEC ist kein Problem, aber wie funktioniert der Clock-Port und wie ist die Belegung, ich hatte da auch schon mal gesucht und nichts dazu gefunden.


    Zum Clock Port habe ich schon mal was gefunden, womöglich bei der MMCR Doku oder in einer Wiki? Oder war es eine Amiga Doku? Ist recht einfach so ein Clockport.

    Werde heute Abend mal nachsehen und die Links zusammensuchen.


    Nen Cevi mit SID hätte ich auch aber wie der funktioniert kann ich nicht sagen.


    Der SID ist das einfachste. Es gibt fertige Schaltpläne dazu (264 SID Karte).

    Im Grunde hängt der SID einfach an Daten und Adressbus. Das CS generieren wir mit dem CPLD. Die Außenbeschaltung kan exakt gleich sein wie beim C64.


    PLCC waren doch die dinger die in den Sockel kommen ? SMD wäre vielleicht von der Größer her die bessere Wahl.


    SMD, - von mir aus gerne. Dann muss meine Karte aber jemand löten bitte. Bei SMD muss ich aufgeben bei meinen beiden linken Händen.


    - welche Speichermapping Modell gibt es schon alle ? - kompatibilität !


    Es gibt zwei etablierte Modelle am 264. Da schon einiges an Software darauf aufsetzt sollten wir uns danach richten.

    Das ist aber kein Thema für jetzt, das wird per Software im CPLD gelöst.


    - wird die RAM-Erweiterung nur in den Modulbereich eingeblendet oder kann man den externen Speicher auch in andere Bereich mappen ?


    Beim Plus/4 nur im Modulbereich.

    Beim C16 und C116 ersetzen wir auch die "leeren" Bänke und füllen bis 64K auf.


    - wie funktionieren Module am Mudulschacht überhaupt ?


    Im Grunde ähnlich wie beim 64er. Adress- Datenbus, mit einer Rückleitung meldet das Modul seine Existenz. Wir machen das per Software schaltbar durch den CPLD.

    Da ist ein Schaltplan wie man 256K RAM erweiterung in einem C16 macht: Bitte melde dich an, um diesen Link zu sehen.

    Dieser Link beschreibt die Erweiterung nach "Hannes" (256K Ram + Eprom) die ich eigentlich sinngemäss anstrebe: Bitte melde dich an, um diesen Link zu sehen.


    - gibt es verschieden Modul (Speicher) größen, und wie funzt da das Banking ?


    Beim Plus/4 wie nach "Hannes" bzw. auch das zweite System dessen Name mir grad nicht einfällt.

    Es sind immer Software Register zu Steuerung und simple Gatter. Das lösen wir per CPLD Design.


    - muß ggf. weiterhin die Standard-Speicher-Aufrüstung weiterhin in den 264 eingebaut werden oder kann das auch über den Modul-Schacht gehen ?


    Diese (unsere) Erweiterung (FE3-264) sollte nur per Modulschacht gehen, hoffe ich.


    - Wie wird der SID angesprochen / Adressiert / eingeblendet und wohin ( Stereo-SID huckepack ?)


    Der CPLD dekodiert die IO Adresse und gibt dem SID das Chip select. Der Rest kann gleich sein wie beim C64. Es existiert auch bereits eine SID Karte für Plus/4


    - wie funzt n Uhr-Port und ist der immer aktiv, kann der im normal Bertieb stören ?


    Wenn er nicht angeschlossen ist stört der Clockport den normalen Betrieb natürlich nicht. Die Signale (Adressdekodierung) würde der CPLD generieren.

    Mir schwebt ein MMCR kompatibles Clockport vor. Siehe dazu diese beiden Links: 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. --- Bitte melde dich an, um diesen Link zu sehen. --- Bitte melde dich an, um diesen Link zu sehen.

  • Ach ja, da ist es wieder, es gibt drei etablierte Speichererweiterungen: Hannes/Solder/CSORY


    Man kann danach googeln und findet alles darüber, Schaltpläne, Software, Tools.

    Wir sollten uns daran orientieren beim CPLD Design. Siehe dazu auch dieser Link auf Zimmers: Bitte melde dich an, um diesen Link zu sehen.


    CSORY scheint Hannes bereits integriert zu haben. Und es basiert auch schon auf GAL.

    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.

  • Zu SID am 264 hat es sogar schon mal ein Projekt hier im Board gegeben: Bitte melde dich an, um diesen Link zu sehen.


    Auch ein guter Link: Bitte melde dich an, um diesen Link zu sehen.


    SID im Plus/4 Schaltbild: 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. --- Bitte melde dich an, um diesen Link zu sehen.

  • Also, wenn ich das gerade richtig im Schaltplan vom plus4 gesehen habe kann ich von Aussen (über den Modulschacht) garnichts steuern, der einzigste der sich intern wirklich ums Mapping und Banking kümmert ist der TED. Da es ja schon mal ne RAM Erweiterung gab muß es wohl möglich sein dem TED zu sagen, das er in den Modulbereich schreiben soll. Es gibt wohl intern ne PAL der die Adressdekodierung I/O usw. macht, das heiß den könnte man extern im CPLD ähnlich nachbilden, aber ich weiß halt nicht ob der TED in dem Moment den DRAM ausblendet oder ob der immer dazwischen Funkt.

    Die anderen RAM-Erweiterungen arbeiten so, das der Original Ram raus kommt und durch größere ersetzt wird - und dann kommen noch welche huckepack oben drauf.

    Ich weiß leider nicht was der TED so alles kann und was man dem sage kann um den externen Bereich problemlos einzublenden.

    Was auf alle fäll gehen müßte ist die einblendung von 4 Blöcken über C1 low, C1 high, C2 low und C2 high.

    Ich weiß nicht ob wir mit den beiden /CS0 und /CS1 was anfangen können - die kommen auch vom TED und steuern das intern ROM-Bänking.

    Wenn man dem TED nun sagen könnte: "Du hast keinen DRAM" oder "Lass die Finger vom DRAM", dann könnte der extern auch nicht stören und wir könnte die 512KB-1MB und Blöcken überall hin einblenden.

    Vielleicht gibt es ja jemanden der mehr zum TED sagen kann !?!

  • Hallo allerseits,

    ich melde mich mal auch zum Thema,da ich mich im Rahmen anderer "Forschungen" etwas mit dem Speichermapping des C16 beschaeftigt hatte.Das ganze ist aus diverser Dokumentation zusammengesucht und von mir nicht an der realen HW verifiziert,also es koennen einzelne Punkte auch falsch sein.
    Ich fange mal an:
    1) Der TED steuert das DRAM direkt an mit RAS,CAS,MUX und R/W.Schreibzugriffe landen immer ins RAM unabhaengig davon ob ROM eingeblendet wurde.Beim C16 wird das 16K RAM 4 mal im Adressraum gespiegelt.Man kann das RAM nicht extern deaktivieren.Somit wuerden RAM modul Erweiterungen mit dem internem RAM auf dem Bus konkurrieren!
    2) Die unteren 32K von $0000 .. $7FFF sind immer RAM.
    3) Bei den oberen 32K von $8000 .. $FFFF haengt es von zwei "strobe" Registern ab ob beim lesen ROM oder RAM eingeblendet wird.Schreibt man einen beliebigen Wert auf $FF3E dann wird ROM eingeblendet.Schreibt man auf $FF3F dann wird RAM eingeblendet.Das hat nur bei READ bedeutung.WRITE landet immer ins darunter liegende RAM.
    4) Das TED_CS0 Signal wird bei ROM Zugriff auf $8000 .. $BFFF aktiv.
    5) Das TED_CS1 Signal wird bei ROM Zugriff auf $C000 .. $FFFF aktiv.
    6) Die Adressen $FDxx , $FExx und $FF00 .. $FF3F sind I/O und TED Register Bereich und dort wird niemals RAM oder ROM eingeblendet.
    7) Die Adressen $FCxx des KERNAL ROM werden immer selektiert wenn ROM eingeblendet ist,da dort die Banking Funktionen des Kernal residieren die man fuer die ROM umschaltungen benoetigt.
    8) Auf den Adressen $FDDx residiert das Banking Register (74LS175) ueber das man die BASIC , KERNAL und externe ROMs ueber C1/C2 LOW/HIGH am expansion port ein und ausblenden kann.

    Ich hoffe, ich habe nichts gravierendes durcheinander gebracht!
    Gruesse

  • Das heiß wenn ich z.B. in ein ext. RAM, welches über den Modulbereich eingeblendet wurde eine Wert rein schreibe, ladet dieser Wert auch immer im internen "High-RAM".

    Laut Handbuch Seite 229 müßte der TED über Schreibzugriff auf $FF3E oder §FF3F zischen ROM und RAM umschalten.
    Ist es wirklich so, das wenn das ROM-Banking im TED eingeschaltet ist, das man trotzdem noch in den RAM-Bereich schreiben kann ?

    Die Umschaltung zwischen den einzelnen internen und externen ROMs müßte laut Schaltplan über nen Schreibzugriff in dem Bereich $FFD0 bis $FFDF geschehen.

    CS0 ist anscheinen für die einbelendung der "Basics", "Funktion low", "C1 low" und "C2 low"
    CS1 ist anscheinen für die einbelendung der "Kernal", "Funktion high", "C1 high" und "C2 high"

    OK, ich hab mir gerade erst mal ne Tabelle über den Schreibzugriff auf $FFD0 bis $FFDF gemacht - es gibt auf alle fälle 16 Kombinationen die entscheiden welche ROM mit welchem zusammen eingeblendet wird - und CS0 oder CS1 aktivieren dann den low und high Bereich.

    Das ist ja alles auch noch zu verstehen und auch noch zu gebrauchen (für RAM Erweiterung oder Modulsimmulation) - was mich noch stört ist die Geschichte mit dem internen RAM.

    Um Eingänge am CPLD zu sparen müßen ja auch nicht gleich alle CS Signale in den CPLD rein, das kann der ja nachher über intern Register/Latche(oder so) dekodieren. Also müßten fast alle Adressleitungen in den CPLD und die Steuerleitungen: R/W, CS0, CS1, Mux, Phi0 (und ggf. Phi2) und vielleicht noch RAS. Die Datenleitungen würden dann eigentlich nur für die internen Register gebraucht, denn der Rest läuft über die Adressierung. Das wären dann 21 bis 31 Signale die in den CPLD gehen.
    Weiviele Ausgänge hätte der dann noch frei ?

    Weiß jemand wofür die Signale AEC und BA sind ? Sind das die Signal um den Prozessor anzuhalten, damit der TED auf n Speicher zugreifen kann?

    RAMEN ist laut plus4 Schaltplan nicht beschaltet !?!

  • An Ausgängen würden auf alle fälle benötigt:

    5 x Chip-Select für (Ram, Flash, Sid1, Sid2, Clock Port)
    5 - 7 x Adressleitungen für RAM und Flash ( je nachdem ob man 8, 16 oder 32 KB Bänke macht )
    2 x für Clock Port ( /IORD und /IOWR )

    ggf. noch 1 x /OE fürs RAM und Flash

    das sind sind dann noch mal 12 bis 15 Ausgänge

    Was kann der CPLD ?

  • Um Eingänge am CPLD zu sparen müßen ja auch nicht gleich alle CS Signale in den CPLD rein,


    Doch, müssen sie! Denn man erkennt daran ob der Plus/4 auf externen Speicher zugreifen will oder auf internen.


    was mich noch stört ist die Geschichte mit dem internen RAM.


    Dass es da immer rein schreibt stört mich weniger. Dass es da auch raus liest stört mich, bzw. dass es gespiegelt ist.

    Die Beschreibungen zu C16 RAM Erweiterungen sagen auch alle, dass es INTERN eingebaut werden muss. Das scheint die Theorie zu beweisen.


    Es nützt nix, beim C16 müssen wir den internen Speicher deaktivieren (CS durchtrennen). Beim Plus/4 haben wir das Problem nicht.

    Die Frage ist nur, funktioniert dann der Speicherzugriff (Bildschirmspeicher) auf externem RAM überhaupt?

    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.

  • Das mit den Zitaten kenne ich nicht, deshalb:

    zu 1: die c1/2/low/high brauchen wir nicht, geht im CPLD aber CS0 und CS1 ist Wichtig, die kommen von TED und stezern den zugriff

    zu 2: wenn der ram aktiviert ist liest er aus dem ram, wenn die rom scharf sind sollte der TED eigentlich unterbinden das der high ram angesprochen wird-

    der bildschirmspeicher liegt laut plus4 im low ram

    ---------------------------------------
    Eigentlich müste man ne n neues Board entwerfen und CPU, TED und die Serielle Schnittstelle drauf lassen den Resten macht dann n CPLD oder FPGA - bis max. 2 MB RAM und 2 MB Flash drauf und dann ist auch noch Platz für 2 Sids
    Zumindest hätte man dann das Problem mit dem doofen DRAM nicht mehr :smile:

  • Oder man schmeißt den internen RAM raus, teilt den externen Speicher in 16K Blöcke und kann dann beliebig jeden 16 K Block in die 4 Bänke einblenden. Aber eigentlich mach es nur sind die unteren 16 K vom high RAM umzuschalten, damit man kompatiebel bleibt.

  • zu 2: wenn der ram aktiviert ist liest er aus dem ram, wenn die rom scharf sind sollte der TED eigentlich unterbinden das der high ram angesprochen wird-

    der bildschirmspeicher liegt laut plus4 im low ram


    Schon klar, im Highmem haben wir keine Probs.

    Aber eigentlich wollte ich dem C16 auch die 48 KB schenken, die ihm abgehen zum Plus/4. Das scheint jedoch nicht so einfach zugehen. Es sei denn, wir deaktivieren das interne RAM. Die Frage ist ob das auch extern liegen kann ...

    -----

    Falls wir mit den CPLD Pins nicht auskommen, können wir auch auf den ATF-1508 ausweichen, der hat 84 Pins ...

    Beim David65 verwenden wir nun auch den 1508.

    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.

  • Ich hab zwar gerade keinen Schaltplan vom C16/C116 hier aber soweit ich weiß hat der keinen 7700-xx oder PAL ( oder wie beim Cive nen PLA oder so) - das heiß bei dem gehen die CS0 und CS1 Leitungen drikt an die ROMs. Das wäre aber auch noch nicht das Problem, da würde ja n CPLD helfen. Aber eigentlich müßte am einfachsten das DRAM raus, damit es nicht stört.
    Also das ganze ist beim ATARI 800 XL viel schöner gelöst - den kann man aufbohren, der Hammer.

    Aber ihrgend was schönens müßen wir und auch einfallen lassen.

    Ggf. doch intern. RAM und 7700 raus und nen CPLD mit RAM und Flash draufstecken, wenn nicht einfacher geht.

  • Ups 77xx hatte doch, aber den könnte man auch besser durch nen CPLD erstzen, selbst wenn man nur den DRAM auf 256 KB aufrüsten will.

  • Ich hab noch n paar Sachen zum DRAM/SRAM/ROM Banking gefunden, aber wie kann ich mir PCX Dateien ansehen ?

  • So, ich hab mir jetzt mal die verschiedenen Erweiterungsmöglichkeiten angeschaut - auf machbarkeit und so - und man könnte diese Karte als Erweiterung aufbauen. Um aber den vollen Funktionsumfang der Erweiterungskarten nutzen zu können muß der CPLD verschiedene Modis verwalten ( internen RAM ja/nein und interne ROMs ja/nein ) damit es zu keinen Konflikten kommt. Das heißt der User kann selber entscheiden ob er die Karte voll nutzen möchte und den 264 modifiziert oder die Karte nur als SRAM und Modul-ROM Erweiterung nutzt. Dazu sollte man dann z.B. zwei Lötbrücken auf der Karte vorsehen.

  • Dazu sollte man dann z.B. zwei Lötbrücken auf der Karte vorsehen.


    Gute Idee, oder Jumper, falls jemand beides hat, C16 und Plus/4.


    Oder man macht es Software gesteuert. Die Firmware startet, guckt nach ob da 16 oder 64 K RAM sind und schaltet den CPLD in den jeweiligen Modus. Fände ich sogar noch besser.

    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.