VC 20 - RAM Aufklärung - 3583 vs 6655 Bytes Free

Es gibt 30 Antworten in diesem Thema, welches 3.931 mal aufgerufen wurde. Der letzte Beitrag (1. August 2024 um 09:40) ist von Mike.

  • Hallo,

    mir ist gerade ein VC20 "zugelaufen"... Eigentlich wollte ich damit nicht auch noch anfangen, naja - wenn man Kulturgut vor dem Müll retten muss :whistling:

    Mein "neuer" VC20 funzt, und begrüßt mich mit "6655 BYTES FREE"... Da ich mich an irgendwas mit 4k erinnerte kurz den Vice/Vic angeschmissen... "3583 BYTES FREE".

    Hat hier schon mal irgendjemand was aufgerüstet? (ggf. ein bekannter "Mod")


    VG; _faxx / uwe

  • Ein Bild (von innen?) sagt mehr als tausend Worte.

    Das ist (natürlich) korrekt - ein kleines Foto Shooting später... Ich nehme an, das ist nicht "ab Werk" so...

    Edit: Wenn ich das richtig verstehe sind die PD2114LC-1 4096bit/512byte somit insgesamt 3k RAM "extra"...

    War sowas gängig damals? (ich glaube mal ein 3k Cart für den 20er irgendwo gesehen zu haben)

  • Das ist definitiv ein Mod.

    Die Datenleitungen sind ohnehin parallel, deshalb kann man die zusätzlichen Chips einfach Huckepack montieren.
    Nur die Leitungen zum Auswählen des aktiven Chips sind getrennt.

    Sehr rasch in der Umsetzung, allerdings verwunderlich dass kein Schalter zum Deaktivieren angebracht wurde.


    Nicht original, aber 100% Zeitgeist :biggrin:

    YouTube Kanäle über Basic, den C128 und den VDC-Chip
    Bitte melde dich an, um diesen Link zu sehen. --- Bitte melde dich an, um diesen Link zu sehen.
    Commodore 8-Bit Projekte
    auf Bitte melde dich an, um diesen Link zu sehen.
    Bitte melde dich an, um diesen Link zu sehen. zu Commodore 8-bit Hardware
    auf printables.com
  • na ja, "üblich" waren in der Tat eher die Module, die es von Commodore in 3K, 8K und 16K gab, von Fremdherstellern auch als -via Dipschalter- konfigurierbares 24/27K Modul und neuerdings gibt es natürlich auch noch höher integrierte und flexiblere Module, aber das hat dann nix mehr mit damals zu tun, da kannst dann gleich Vice anwerfen...

    Problematisch an der internen Erweiterung ist, das diese nicht ohne Weiteres abschaltbar ist, da man ja drei Leitungen unterbrechen (und auf fixen Pegel bringen) müsste.

    Da die meisten -und besseren- Programme aber alle auf die größeren Erweiterungen hin ausgelegt sind und die kleine 3K Erweiterung quasi nen Sonderfall darstellt und leider auch zu anderer Speicheraufteilung (sogar das Videoram verschiebt sich!) führt, werden vermutlich einige Programme, die für 8K oder größere Erweiterungen geschrieben wurden selbst dann nicht (auf Anhieb) funktionieren, wenn eine passende Erweiterung extern steckt.

    Natürlich kann man mit ein paar Pokes dem System vorgaukeln, kein RAM dort zu haben, aber das muss man wissen und halt dann auch jedesmal vor dem Laden eines Programms auch tun...

  • Sehr rasch in der Umsetzung, allerdings verwunderlich dass kein Schalter zum Deaktivieren angebracht wurde.


    Nicht original, aber 100% Zeitgeist :biggrin:

    ..ok, wieder was schlauer. Und *das* war auch genau mein Gedanke (Schalter zum deaktivieren). Vom 64er/128er her weiß ich, dass der ganze Krempel am Besten abschaltbar ist, weil man sonst immer wieder in Probleme mit Kompatiblitäten bestimmter SW läuft.

    Daher gleich die nächste Frage:

    Wie könnte ich hier sinnvoll eine Abschaltung nachrüsten? Oben die Drähte sind (vermute ich) zum Selektieren der Speicherbank (?)...

    Trennt man dann die VCC (müsste hier Pin 8 sein) der aufgesetzten Steine gemeinsam auf? Oder unterbricht man die drei Zusätzlichen Drähtchen?

    VG

  • Am Besten wäre es, wenn Du nen zusätzliches IC spendierst, das kann ein Analogschalter Typ 4066 oder ähnlich sein, oder auch ein Busdriver oder ein Latch wie nen LS244 oder LS245 oder die 373/573, Dann kannst Du mit geeigneter Beschaltung mit EINEM Schalter alle drei Signale durchschalten oder auf logisch High (deaktiviert) legen. Vcc und GND müssen auf jeden Fall fest dran bleiben, sonst geht defintiv was kaputt, im schlimmsten Fall mehr als nur der betroffene Baustein!

    Du musst dazu die drei Drähte VOR dem ersten RAM Baustein auftrennen und dann eben entweder je einen Analogschalter dazwischen (dann muss auch noch ein sog. Pullup-Widerstand hinten, z.b. 3k3 gg Vcc 5V geschaltet werden) oder eben einen Bustreiber, bei den Latches musst Du zusätzlich das Signal "transparent" auf true stellen, damit das Latch nicht nur befüllt, sondern auch am Ausgang durchgeschaltet wird, am Einfachsten geht wohl ein LS244 unidir. Bustreiber.

    edit: NAND/NOR rausgenommen, da man dort min. 2 ICs braucht, da ja 3 Leitungen und 2 Gatter je Leitung notwendig... mit AND oder OR Gattern ginge es auch mit einem IC, nur sind die deutlich unüblicher im TTL-"Baukasten"...

  • Problematisch an der internen Erweiterung ist, das diese nicht ohne Weiteres abschaltbar ist, da man ja drei Leitungen unterbrechen (und auf fixen Pegel bringen) müsste.

    Da die meisten -und besseren- Programme aber alle auf die größeren Erweiterungen hin ausgelegt sind und die kleine 3K Erweiterung quasi nen Sonderfall darstellt und leider auch zu anderer Speicheraufteilung (sogar das Videoram verschiebt sich!) führt, werden vermutlich einige Programme, die für 8K oder größere Erweiterungen geschrieben wurden selbst dann nicht (auf Anhieb) funktionieren, wenn eine passende Erweiterung extern steckt.

    Natürlich kann man mit ein paar Pokes dem System vorgaukeln, kein RAM dort zu haben, aber das muss man wissen und halt dann auch jedesmal vor dem Laden eines Programms auch tun...

    hmm... sowas hab ich befürchtet... dass sich das beim 20er gleich das ganze RAM Layout verschiebt - krass... (aus heutiger Sicht)

    Da ich auch sehr auf "Stock" Hardware stehe, wird wohl der Lötkolben ran müssen / der (wenn auch zugegebenermaßen ordentlich eingebaute/umgesetzte) Einbau rausfliegen...

    Wurden bei diesem Mod noch mehr Steine ersetzt ? Sprich, wenn ich die 6 Schaltkreise "zurückbauen" / die Drähte entferne, dann ist das Original? (also vom RAM her, dann der originale Speicherausbau)

    VG

  • Ne, die 3K hatte eben ne Sonderrolle, da diese ne Lücke in dem vom VIC UND Prozessor adressierbaren Bereich auffüllten, daher auch so einfach realisierbar, der Dekoder-Chip war ja schon an Board. (werden auch an den externen Connector rausgeführt!)

    Würde es drinlassen, aber ne Abschaltung nachrüsten, denn zum Einen tut jeder Lötprozess den alten Chips nicht gut, d.h. wenn DU Pech hast, brauchst Du dann auch noch Sockel und neue 2114er für die originalen 5K, zum Anderen gibt es auch Programme, die eben GENAU die 3K Erweiterung brauchen, d.h. ganz nutzlos ist die ja auch nicht...

    (Es sei denn, Du kaufst Dir eben ne 24/27K oder größer Erweiterung extern, dann ist sie nutzlos...) Aber selbst dann würde ich die drei Drähte am Dekoder ablöten und fest (über Widerstand!) auf High ziehen, dann sind die Chips im Standby und stören nicht weiter...

  • Da ich auch sehr auf "Stock" Hardware stehe, wird wohl der Lötkolben ran müssen / der (wenn auch zugegebenermaßen ordentlich eingebaute/umgesetzte) Einbau rausfliegen...

    lass das bleiben.

    die interne 3k Erweiterung hat den grossen Vorteil gegenüber einer externen, dass sie auch den Videospeicher erweitert. Der VIC kann auf externe Erweiterungen nämlich nicht zugreifen. Damit kannst du bessere und grössere Grafikmodi nutzen.

    Software, die partout auf stock Speicherausbau besteht, bekommt man mit wenigen POKEs zum Laufen, die die BASIC Speicherzeiger anpassen. Dazu meldet sich bestimmt noch jemand, ich habe das leider gerade nicht parat ;)

    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!
    10 open1,8,15                   : rem 8 ist die Geräteadresse und das kann man bei Bedarf natürlich anpassen
    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.
    RUN
  • Am Besten wäre es, wenn Du nen zusätzliches IC spendierst, das kann ein Analogschalter Typ 4066 oder ähnlich sein, oder auch ein Busdriver oder ein Latch wie nen LS244 oder LS245 oder die 373/573, Dann kannst Du mit geeigneter Beschaltung mit EINEM Schalter alle drei Signale durchschalten oder auf logisch High (deaktiviert) legen. Vcc und GND müssen auf jeden Fall fest dran bleiben, sonst geht defintiv was kaputt, im schlimmsten Fall mehr als nur der betroffene Baustein!

    Du musst dazu die drei Drähte VOR dem ersten RAM Baustein auftrennen und dann eben entweder je einen Analogschalter dazwischen (dann muss auch noch ein sog. Pullup-Widerstand hinten, z.b. 3k3 gg Vcc 5V geschaltet werden) oder eben einen Bustreiber, bei den Latches musst Du zusätzlich das Signal "transparent" auf true stellen, damit das Latch nicht nur befüllt, sondern auch am Ausgang durchgeschaltet wird, am Einfachsten geht wohl ein LS244 unidir. Bustreiber.

    Ok. Also drin lassen - das / die Argumente hab ich verstanden.

    Naja, meine Elektronikkenntnisse sind schon ziemlich eingestaubt... (mit dem Lötkolben kann ich aber wohl umgehen :wink: Ich versuch das nochmal mit meinen Worten zusammenzufassen...

    Eine richtige Abschaltung des verbauten Mods würde realisiert durch...

    OFF: setzen der 3 Drähte (C/S = Chip/Select? sowas in der Art) auf "Low" (0V)

    ON: setzen der 3 Drähte auf jeweils "Durchgeschaltet" an den IC auf dem Board ?

    ..so ein Analogschalter würde die 3 Drähte dann quasi entweder (OFF) gemeinsam/gleichzeitig auf GND setzen oder -wenn der Analogschalter offen ist- über den 3k3 "PullUp" Widerstand gegen 5V auf High (ON) setzen?

    Ob Du mir Du mir von der "4066" Variante (bzw. der einfachsten mit einem weiteren IC) eine kleine Schaltplan Skizze machen würdest? das wäre Mega :smile:

    VG, Uwe

  • die interne 3k Erweiterung hat den grossen Vorteil gegenüber einer externen, dass sie auch den Videospeicher erweitert. Der VIC kann auf externe Erweiterungen nämlich nicht zugreifen. Damit kannst du bessere und grössere Grafikmodi nutzen.

    ...noch ein Argument für "drin lassen"

  • VORSICHT!

    NICHT die Drähte vom Dekoder (ls138) auf nen Pegel setzen, egal ob low oder high, das arbeitet dann nämlich GEGEN diesen Chip und röstet den höchstwahrscheinlich in Sekundenschnelle, sondern wirklich nur Schalter dazwischen schalten und auf der Seite der RAMs zusätzlich jeweils nen Widerstand 3k3 oder ähnliche Größe gg. Vcc 5V schalten.

    n.b.: Die /CS Leitung arbeitet, wie das vorangestellte / andeuten soll invertiert, d.h. low heißt aktiv

    Bitte melde dich an, um diesen Anhang zu sehen.

    Schaltplan mit LS244, geht am Einfachsten. da der LS244 zwei 4bit Blöcke hat, ist der untere Teil mitgezeichnet und die Eingänge sollten auf festen Pegel, damit nix schwingen kann, sowie das zweite /EN auf High dann sind die Ausgänge schon mal inaktiv. Pin20 ist Vcc und Pin10 GND, nicht vergessen! (mein CAD Tool stellt das etwas gewöhnungsbedürftig separat dar...) Welche Leitung vom Dekoder an welchen Eingang du hängst ist egal, aber es muss der korrespondierende Ausgang die Leitung logisch weiterführen, eh klar, oder :wink:

    edit: i4 vom oberen Block auf auf GND :wink:

  • Danke Ruudi, damit kann ich wirklich was anfangen, das gibt zwei Daumen :) :)

    Das mit dem CAD Tool passt schon, ist ja alles an Info da, plus die i4 auf GND.

    GND/5V muss ich mir dort noch irgendwoher "organisieren" ohne an bestehenden Chips rumzulöten; vielleicht irgdendwo vom UserPort, da müsste ja alles vorhanden sein.

    Reichelt hat den.. "SN 74LS244N TEX" - ich nehme an, das ist das was ich brauche "74LS / Modell Line Driver / Typ 4x" (plus den Kleinkram, Schalter...)

    Da werd ich heute Abend mal was ranrollen lassen... Muss mir noch ausknobeln, wo/wie ich den Schalter unterbring. Das (wirklich noch schicke helle) Gehäuse Zerbohren fällt aus... :whistling:

  • Software, die partout auf stock Speicherausbau besteht, bekommt man mit wenigen POKEs zum Laufen, die die BASIC Speicherzeiger anpassen. Dazu meldet sich bestimmt noch jemand, ich habe das leider gerade nicht parat ;)

    ...vermutlich meinst Du das hier: (falls mal jemand über das gleiche "Problem" fällt)

    Quelle: Bitte melde dich an, um diesen Link zu sehen.

    [..]

    Bitte melde dich an, um diesen Link zu sehen.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:

    Bitte melde dich an, um diesen Link zu sehen.

    Bitte melde dich an, um diesen Link zu sehen.POKE642,4:POKE644,30:POKE648,30:SYS64818

    ...bekommt man die gleiche Speicheraufteilung, als wäre eine +3K RAM-Erweiterung gesteckt.

    [..]

  • ...Schaltplan mit LS244...

    Ruudi ..Ich wollte bevor ich auf "Bestellen" drücke nochmal nachfragen, ob der hier auch der richtige Stein ist... Der Beschreibungstext beim Reichelt verwirrt mich, da steht was von "Diese Vier-Bit-Magnitudenkomparatoren führen einen Vergleich von geraden Binär- und geraden BCD-Codes (8-4-2-1)" - daneben wiederum "Familie 74LS / Modell Line Driver / Typ 4x / Ausführung 3-state"... Vermutlich wird wohl Letzteres stimmen, ist vielleicht ein Fehler in der Beschreibung (?)

    SN 74LS244N TEX

    Bitte melde dich an, um diesen Link zu sehen.

    Vielen Dank nochmal :smile:

    _faxx / Uwe

  • Sehr schön! :D

    Wenn Du deinem VC-20 jetzt noch ein größeres Farb-RAM verpaßt, kann er auch VFLI-Bilder darstellen:

    Bitte melde dich an, um diesen Link zu sehen.

    Viele Grüße,

    Michael

    P.S. das mit dem Abschalten kannst Du wirklich bleiben lassen. Die +3K RAM extra haben in den 14 Jahren die sie jetzt schon in meinem VC-20 eingebaut sind, noch nie Probleme gemacht. Für Programme, die zwingend auf die BASIC-RAM-Grenzen des nicht-erweiterten VC-20 angewiesen sind (zumeist Maschinenprogramme mit einer BASIC-SYS-Startzeile) tun's die in Beitrag Bitte melde dich an, um diesen Link zu sehen. zitierten POKEs allemal.

  • Wenn Du deinem VC-20 jetzt noch ein größeres Farb-RAM verpaßt, kann er auch VFLI-Bilder darstellen:

    Introducing VFLI for VIC-20: 208x256 pixels in 16 colours! - Denial (sleepingelephant.com)


    Viele Grüße,

    Michael

    ...verrücktes Zeug! :) ...Du scheins't ein neueres Bord zu haben (ohne den ganzen AC-DC-Spannungsregler-Kram *im* Rechner).

    P.S. das mit dem Abschalten kannst Du wirklich bleiben lassen.

    Was ich mich gerade wirklich frage, ist was passiert wenn ich irgendwelche externe RAM-Carts (z.b. die 3k) oder mal andere Spielereien (Flash Carts, weiß nicht ob es für den VC sowas äquivalentes wie das Ultimate-2p vom/für 64er gibt... ) stecke...

    Kollidiert da nicht irgendwas mit dem ggf. dort schon vorhandenen "not stock" Extra-Ram ? Ggf. bootet dann ja so eine externe HW-Erweiterung gar nicht erst, und Pokes kann man zu dem Zeitpunkt noch nicht eingeben... Daher meine Überlegung das (richtig) deaktivierbar zu machen...

    Vielleicht ist das auch übervorsichtig...

    VG; Uwe

    PS: Liegt denn die "externe" 3k-Speichererweiterung im gleichen Adressbereich wie die "Interne" 3k "Piggypag" -so nennt man das wohl- (hier vorhandene) Variante? Sprich, ist der RAM dann physisch anders angebunden (diese VIC Geschichte) liegt aber auf dem Selben Adressraum? ...echt ein kleiner verrückter Rechner :)

  • Du scheins't ein neueres Bord zu haben [...]

    Ja, mein VC-20 in dem Thread hat ein CR-Board. Die 5 Volt werden im externen "Elefantenfuß"-Netzteil erzeugt.

    Was ich mich gerade wirklich frage, ist was passiert wenn ich irgendwelche externe RAM-Carts [...] stecke...

    Der mod ist an meinem VC so ausgeführt, daß die /RAMx nach außen mit einem definierten H-Pegel stillgelegt werden, die internen +3K haben Vorrang. Dazu dient ein Widerstandsnetzwerk auf der Unterseite der Hauptplatine.

    Du solltest den mod in deinem VC schon dahingehend überprüfen. Ohne dieses Pull-Up-Netzwerk liegen aus schaltungstechnischen Gründen etwa 2,4 V an den /RAMx-Leitungen des Cartridge-Ports. Für TTL und NMOS ist das sehr knapp ausreichend, damit sich der externe Speicher nicht angesprochen fühlt, für CMOS-Eingänge - speziell neuere Cartridges also - sind die 2,4 V allerdings mitten im undefinierten Bereich.

    Mach am besten noch mal ein Detailfoto von UC4 und unmittelbarer Umgebung sowohl auf der Oberseite als auch der Unterseite.

    ...

    Noch zum Vorrang der internen +3K: eventuelle "Goodies" einer externen Erweiterung wie eben Abschaltbarkeit oder auch ein eventueller Schreibschutz sind dann natürlich außer Funktion - die externe Erweiterung kriegt einfach nie einen Zugriff mit. In der Praxis sind diese Einschränkungen aber nicht der Rede wert.

  • Liegt denn die "externe" 3k-Speichererweiterung im gleichen Adressbereich wie die "Interne" 3k "Piggypag" -so nennt man das wohl- (hier vorhandene) Variante?

    Aus Sicht der CPU ja. In beiden Fällen werden die +3K von Adresse $0400 bis $0FFF eingeblendet.

    Sprich, ist der RAM dann physisch anders angebunden (diese VIC Geschichte) liegt aber auf dem Selben Adressraum?

    Exakt. Während der VIC seine Hälfte des Taktzyklus Zugriff hat, werden Daten- und Adreßbus durch die drei 74LS245-Puffer aufgetrennt. Damit kommt der VIC nicht Richtung Cartridge-Port "durch".

    Die beiden Puffer auf dem Adreßbus sind nötig, weil der 6502 seinen Adreßbus nicht tri-staten kann, VIC und CPU würden da also gegeneinander arbeiten. Der Puffer auf dem Datenbus ist im wesentlichen dazu da, die Signalqualität auf der "VIC-Seite" zu sichern, ansonsten müßten Character-ROM und das interne RAM auch noch nach außen hin "arbeiten" (also, die Datenbus-Leitungen umladen). Man müßte also mit "Schnee" oder anderem Quatsch rechnen, wenn extern über einen Portexpander mehr als nur eine Cartridge gesteckt ist.

    ...

    Dadurch, daß die internen +3K jetzt auf der VIC-Seite realisiert sind, hat der VIC dann auch Zugriff. Damit die CPU aber auch dahin kommt, müssen /RAM1../RAM3 am 74LS133 (gibt nur den einen) auf jeden Fall definiert auf H-Pegel gelegt werden - normalerweise macht der '133 den Datenbus-Puffer nämlich ebenfalls dicht.