Hallo Besucher, der Thread wurde 1,3k mal aufgerufen und enthält 6 Antworten

letzter Beitrag von 38911 am

Schreibschutz für Ramerweiterung in Block 5?

  • Hallo VC-20 Jünger,


    Ich hab hier einen VC-20 wieder zum Leben erweckt, der allerdings einen Reset-Taster sowie einen Umschalter eingebaut hat.
    Der Schalter führt aktuell ins Nirvana, also ohne Anschluss. Nachdem er aber eben schon mal hier ist, würde ich ihn gerne dazu nutzen um Schreibzugriffe auf eine auf Block 5 konfigurierte 8K Speichererweiterung zu unterbinden.
    Damit könnte man dann Dumps von Cartridges in die Speichererweiterung laden, und von dort aus starten, ohne dass diese sich 'selbst zerstören' ;)


    Kann mir jemand sagen ob es dazu ausreicht die R/W Leitung von der CPU zum Expansionsport hin zu trennen, und dann wahlweise das Ende zum Expansionsport mit dem Schalter wieder zur CPU zu verbinden (Schreiben möglich - Normalbetrieb), bzw. in der anderen Schalterstellung auf High-Pegel (nur Lesen möglich) zu legen ?


    Danke schon mal :)

  • Für einen sauberen Aufbau brauchst 1 Gatter eines 74LS32 (der IC kostet weniger als 1 Euro). An einen Eingang kommt R/W von der CPU an den anderen ein Widerstand von 10 kOhm nach +5V und dein Schalter zwischen diesem Eingang und GND. Der Ausgang des Gatters geht an /WE der Cartridge oder nur des RAMs für Block 5.


    Funktion: Solange der Schalter offen ist wird der Eingang über den Widerstand auf +5V gezogen. Da der 74LS32 ein ODER-Gatter ist ist damit der Ausgang immer HIGH und ein Schreiben unmöglich. Ist der Schalter geschlossen ist der Eingang LOW und der Ausgang spiegelt den Zustand des am anderen Eingang angeschlossenen R/W-Signales wieder.


    Jemand der halbwegs löten kann baut sowas in ein paar Minuten auf.

  • Trennen reicht nicht aus, denn woher soll der RAM Chip sonst wissen, was er überhaupt machen soll? Leitungen "flowten" zu lassen erzeugt oft nur Zufallseffekte. Der zweite Gedanke von Dir geht dann schon in die richtige Richtung.


    Dennoch würde ich nicht eine Leitung des CPU-Busses über einen Schalter laufen lassen, selbst wenn du einen Pull-Up Widerstand auf der Umschaltposition nutzt für das RAM. Besser wäre es das über ein zwischengeschaltetes Logic Gatter zu machen, damit du keine Störungen bekommst.


    Glaube ein OR Gatter würde reichen. Die R/_W Leitung damit dem Ram Verbinden und dann den 2. Eingang der OR auf 1 oder 0. Das OR Gatter wird nur 0, wenn beide Eingänge 0 sind. Steht also der Schreibschutz auf HIGH ist es egal, was die CPU dem RAM sagt.


    74LS32 z.B.


    Gerrit war schneller :)

  • Also dafür braucht man keinen Schreibschutzschalter, ich hab eine 32 KB Erwiterung in die lade ich die Dumps mittels eines Filebrowsers (weis jetzt leider den Namen nicht) die Games wenn sie erst mal im Speicher sind sind so anhänglich das ich sogar die Floppy und den VC20 ausschalten muß weil sie sonst beim Einschalten des VC20 immer noch im Speicher sind.

  • Er befürchtet wohl Probleme mit Spielen die eine Erkennung eingebaut haben ob sie im RAM oder im ROM laufen. Sowas kann man mit einem Befehl erledigen. Im ROM passiert nichts, im RAM zerhackt es den Code.


    Hatte ich mal woanders, ein simples 'INC $adresse' in der Hauptschleife und schon gabs im RAM die merkwürdigsten Effekte.

  • Vielen Dank Gerrit und Triton!
    Hatte irgendwie nicht bedacht, dass man ja 'live' umschalten können muss, und dass das CPU Signal dann bei der einen Schalterstellung in der Luft hängen würde ;)
    Somit werde ich das auf jeden Fall mit dem Gatter lösen.


    Ja, es geht darum dass manche der alten Cartridges eine Art primitiven Kopierschutz hatten, indem sie versuchen auf sich selbst zu schreiben, was im ROM nichts bewirkt, im RAM jedoch den Code überschreibt und somit unbrauchbar macht.