Hallo Besucher, der Thread wurde 6,9k mal aufgerufen und enthält 23 Antworten

letzter Beitrag von Mike am

VC-20 Ram Upgrade

  • Hi,


    da ich nicht unbedingt 60 Euro für eine Final Expansion ausgeben möchte nur weil ich mehr RAM will
    wollte ich mal Fragen ob nicht jemand weiss ob es irgendwo in den Untiefen des Netzes vieleicht eine Platine zum Selberätzen nebst Schaltplan,
    für eine RAM Erweiterung gibt ?


    EDIT:
    ftp://www.zimmers.net/pub/cbm/…ts/memory/vic20/32kB.html
    A15 auf VCC legen ? möchte einen 32Kb Cache RAM nehmen.


    Grüsse


    Matthias

  • Das Problem beim VC-20 ist, dass du mit der 16K Erweiterung nur passende Spiele zum laufen kriegst. Um alle Spiele haben zu können, musst du alle Erweiterungen haben und auch immer die passende rein stecken.


    Das ist der Grund warum ich das Final gemacht habe. Es ist ein Sorglos Paket, mit dem jedes Spiel läuft und auch noch automatisch konfiguriert wird.


    Die FE3 lohnt sich wirklich.

  • Auf der 3K-Platine sind zwei hübsche ROM-Sockel. Die sind eine gute Basis für ein 32K-RAM. A13 und A14 tüddelt man sich aus den BLKx-Signalen zusammen, dito für CD (den muß man allerdings noch einen Tacken verzögern- mit lahmen TTL-Gattern geht das, mit heutigen High-Speed-Logik eher weniger- und fertig ist die Laube.

  • Es gibt immer wieder mal schaltbare 16K-Steckmodule in der Bucht. Da kann über DIP-Schalter die passende Speicherkonfiguration eingestellt werden. In England war die Vixen sehr beliebt, taucht im dortigen ebay öfter mal auf, ich hab auch eine hier. Spiele die mehr als 16K brauchen sind sehr selten.

  • Generell geht das schon, solange sich die eingeblendeten RAM-Bereiche nicht überlappen. Das ist bei der +3K und der (Standard) +16K RAM-Erweiterung auch gegeben. Der Witz an der Sache ist hier (leider): der VC kann genau diese Konstellation nicht als durchgehenden Speicher für BASIC nutzen, und darum werden nur genauso viele BYTES FREE angezeigt als wie wenn nur die +16K gesteckt wären (<- die hat gewissermaßen Priorität).


    Der genaue Grund ist hardwaretechnisch bedingt, und hat damit zu tun, daß der Video-Chip nur auf den internen Speicher zugreifen kann.

  • Nein, das würde keinen Sinn machen, da beide Karten dann den Bereich von $0400 bis $1000 gleichzeitig belegen würden.
    Die anderen Erweiterungen belegen in 8K-Schritten die Bereiche ab $2000, $4000 und $6000. Bei $A000 können auch noch 8K eingeblendet werden.


    Gruß Dirk

  • Ja. Kaputt geht da aber nichts, nur wird halt alles zweimal gespeichert und das braucht den doppelten Strom. ;)


    Interessant ist so ein Expander hauptsächlich, um z.B. eine 8K und eine 16K-Erweiterung zu kombinieren. Die +16K von Commodore ist fest auf BLK1 und BLK2 eingestellt. In der +8K Erweiterung ist ein DIP-Schalter drin, der muß auf BLK3 umgestellt werden, damit die 8K hinten anschließen und nicht mit den BLK1 der 16K-Erweiterung überlappen. Als Ergebnis sieht man dann auch 28159 BYTES FREE.


    Auch wenn der für BASIC durchgehende Speicher dadurch nicht weiter vergrößert wird, sind die +3K-Erweiterung oder +8K in BLK5 auch interessant.


    In den 3K kann man kleine Maschinenprogramme reinladen, die dann üblicherweise kaum behelligt werden (weil es kaum Programme gibt, die +3K zusammen mit einer größeren Erweiterung nutzen - Ausnahme: VIC Doom) und RAM in BLK5 ist sehr gut brauchbar zum Soft-Loaden von Cartridges. :)


    Insgesamt wäre mir aber die Rumhampelei mit 2, 3 oder 4 Cartridges + die sperrige Modul-Box zu unhandlich.


    Ich kann dir die FE3 auch nur ans Herz legen, hier kannst Du alle Erweiterungsstufen frei einstellen. Als Alternative wäre da noch die Mega-Cart zu nennen, die zusätzlich zur RAM-Erweiterung noch mit einer Riesen-Softwarebibliothek daher kommt, aber die wird seit 2009 in Handarbeit von einem Spezl in Kanada hergestellt und hat Lieferzeiten bis zu einem Jahr.

  • Nein, eben auf die +3K RAM-Erweiterung kann der Videochip *nicht* zugreifen. Auch wenn sie von den Adressen her zu dem unteren 8K Bereich "paßt". Da hat Commodore auch keine seltsame Memorymap veranstaltet.


    Der 6502 kann seinen Adreßbus nicht abkoppeln, er ist immer aktiv. Damit der VIC-I trotzdem in seiner Hälfte des Zyklus' auf Speicher zugreifen kann, wird der Gesamt-Adreßbus und auch der Datenbus zu diesen Zeiten aufgetrennt. Das interne RAM und das Charakter-ROM liegen auf der VIC-Seite, BASIC und KERNAL ROM und alles am Cartridge-Port auf der CPU-Seite. Das Farb-RAM wird noch mal extra abgetrennt, liegt aber adreßmäßig parallel zum Textspeicher und geht auf die Datenbits D8..D11 des 12-Bit-Datenbusses am VIC-I.


    Der VIC-I hat 14 Adreßleitungen. A0 bis A12 stimmen mit den unteren 13 Adreßbits der CPU überein. Nur A13 ist anders verschaltet, da sich der VIC-I sonst bei $1000 einblenden würde. A13 am VIC-I ist 0, wenn die CPU in ihrer Taktzyklushälfte auf BLK4 zugreift ($8000..$9FFF), und 1, wenn sie es nicht tut ($0000..$1FFF). Darum liegt der VIC-I aus Sicht der CPU bei $9000. Edit: Bei CPU-Zugriffen außerhalb dieser beiden Bereiche wird keiner der Bausteine auf der VIC-Seite angesprochen.


    Tatsächlich kann man nun die +3K von $0400 bis $0FFF so in den VC-20 einbauen, daß nicht nur die CPU sie nutzen kann, sondern der VIC-I diese 3K auch sieht. Ich hab' das bei meinem VC gemacht. Aber dazu muß man sich halt Lötarbeiten auf dem Mainboard zutrauen. :whistling:

  • Ok dann hab ich da was Falsch verstanden :)
    Ich finde eben die Einteilung des RAMs etwas seltsam.
    Wenn man es mit dem "Retroblick" sieht ergibt es aber durchaus Sinn.


    Leider ist meine RAM Erweiterung von Sinchai noch nicht eingetroffen, bin aber zuversichtlich das es die nächste Zeit so weit sein wird :) Angesichts der dortigen Situation ist das ja zuverstehen.

  • Das eigentlich Ärgerliche ist ja, daß man nicht einfach mehr Speicher einstecken kann und dann auch "mehr" Programme funktionieren. Da sich ab einer +8K-Erweiterung der Bildschirmspeicher verschiebt, machen viele Programme, die für den nicht-erweiterten VC (oder für +3K RAM) geschrieben wurden, die Grätsche. Genauso wenig hilft es, daß der Start für BASIC-Programme bei $1001 ohne Erweiterung, bei $0401 mit der +3K RAM-Erweiterung und bei $1201 ab einer +8K Erweiterung befindet, vor allem wenn man ein Programm mit einer SYS-Zeile am Anfang hat.


    Im Prinzip muß man also immer den genauen Speicherausbau gesteckt haben, für den das Programm geschrieben wurde. Zwei Ausnahmen:


    - Die meisten BASIC-Programme für den nicht-erweiterten VC laufen auch mit einer +3K RAM-Erweiterung (nicht, daß das viel brächte...) und
    - Programme für eine +8K-Erweiterung laufen auch mit +16K oder +24K (und solche für +16K auch mit +24K).


    Ideal ist eigentlich eine Erweiterung, die alle Lücken füllt, also +35K RAM als +3K "unten", +24K in der Mitte für BASIC und +8K in BLK5 mitbringt. Ohne weitere Maßnahme sieht BASIC diese wie eine +24K Erweiterung an. Mit:


    Code
    1. POKE642,16:POKE644,30:POKE648,30:SYS64818


    wird der Speicher so begrenzt und der Bildschirmspeicher so gelegt, wie es beim nicht erweiterten VC-20 ist. Und mit:


    Code
    1. POKE642,4:POKE644,30:POKE648,30:SYS64818


    bekommt man die gleiche Speicheraufteilung, als wäre eine +3K RAM-Erweiterung gesteckt. Bei Eingabe einer der beiden Zeilen wird das sich momentan im Speicher befindliche Programm "gelöscht" und die Einschaltmeldung angezeigt.


    Diese Befehle bleiben dann gültig bis zum nächsten Reset, SYS64802 oder Aus-/Einschalten.

  • http://vic-20.de/x1541/hardware/petram.html
    http://vic-20.de/x1541/hardware/petram-p.html


    Also wäre doch dieses Upgrade Optimal.


    Zitat


    repair or diagnose computers with defective RAM and/or ROM chips.
    expand RAM to a full 32kB (configurable as 0kB, 3kB, 3kB+8kB and 3kB+24kB expansion)
    add four alternative versions of the VIC-20 system ROM
    add four internal cartridge ROM images at BLK5
    fully compatible with VIC-20CR only, the VIC-20 can not be closed with the expansion

  • Ich sehe hier nicht die Möglichkeit, +8K RAM in BLK5 ($A000..$BFFF) einzublenden. Und die +3K RAM werden auf der "falschen" Seite von Adreß- und Datenbus eingebunden, so daß der VIC-I sie (immer noch) nicht sieht.


    Die Möglichkeit BASIC und KERNAL zu ändern ist für Programmierer vielleicht interessant, und die Möglichkeit einer Diagnose bei defektem Onboard-Speicher ist für die Fehlersuche bei Reparaturen auch ganz brauchbar, ansonsten kann man mit der Platine aber wenig mehr machen als was nicht schon mit einer externen Erweiterung geht.


    Ich dachte jetzt eher an den Ausbau deiner +3K-Erweiterung mit einem 74LS08 und einem 32Kx8 SRAM (etwa 62256 oder 6206) - dann hast Du genau die +35K. Das geht dann ohne Lötarbeiten an der Hauptplatine (... auch wenn dann kein erweitertes VRAM für den Videochip dabei abfällt. ;))

  • Zitat von Matze79

    32Kx8 hätte ich einen Cache von ISSI aus einen 486er mit 32Kb, 74LS08 muss ich mal sehen.


    Allerdings hat der VC-20 ja nur bis A13, der LS08 soll wohl dann die Restlichen Adressleitungen erstellen ? Der CACHE hat ja bis A15.
    Aus BLK1-5 ? C R/W als Chipselect ?


    Statt CR/W nimmst Du VR/W, und das geht direkt an den /WE Pin des SRAM.


    CA13 am Expansion Port ist für diese Anwendung unbrauchbar (=0 bei BLK2; =1 bei BLK1, BLK3 und BLK5).


    Anstattdessen werden ein neues A13 und A14 (das 32K SRAM hat sicher kein A15) sowie das /CS durch den 74LS08 wie folgt generiert:


    A13 := /BLK1 & /BLK2
    A14 := /BLK2 & /BLK3
    /CS := A13 & (/BLK3 & /BLK5)


    /CS und /OE werden am SRAM miteinander verbunden.


    Gruß,


    Michael