HARDWAREMONTAGES ★ Speichererhaltender Reset bei den CPCs ★

Löschsperre (Computer Technik)Hardware Montages
★ Ce texte vous est présenté dans sa version originale ★ 
 ★ This text is presented to you in its original version ★ 
 ★ Este texto se presenta en su versión original ★ 
 ★ Dieser Text wird in seiner Originalfassung präsentiert ★ 

Zwar läßt sich über einen zusätzlichen Reset-Taster ein irrlaufender CPC jederzeit zur Vernunft bringen, doch dabei geht leider jeglicher Speicherinhalt verloren, was unter Umständen den Verlust wertvoller Daten bedeuten kann. Mit einer cleveren Reset-Logik kann man den störenden Löscheffekt aber verhindern.

Allerdings muß man dabei hoffen, daß der amoklaufende Computer die Daten oder Programme nicht bereits zerstört hat, denn dann ist Hopfen und Malz verloren. Falls aber die Systemvariablen des BASIC-Interpreters noch vorhanden sind, braucht man keine neue Initialisierung. Es genügt, wenn man in den Ready-Modus springt.

Für die Initialisierung des BASIC-ROM nach einem Reset sorgt das Betriebssystem im Kernel. Die verantwortliche Routine liegt ab Adresse 77h im ROM (das ROM wird ja nach einem Reset grundsätzlich eingeblendet). Nun könnte man dem mit einem eigenen, veränderten ROM (256er EPROM) abhelfen. Das führt allerdings auf die bekannten rechtlichen Probleme und ist auch nicht ganz einfach (ROM meistens eingelötet, EPROM-Brennererforderlich et cetera).

Sich einmischen...

Statt dessen kann eine kleine Umblendschaltung einen Eingriff in den Rechner überflüssig machen. Ab Adresse 7Dh wird mit dem Befehl LD HL,C00Bh die Einsprungsadresse des BASIC-ROM geladen. Die Schaltung filtert die Adresse 7F.h heraus und blendet das Betriebssystem-ROM aus, gleichzeitig wird ein Bustreiber aktiviert. Dieser hat an seinen Dateneingängen (für den 464) den Wert 64h (binär 01100100) fest verdrahtet. Diesen Wert liest nun die CPU statt 0Bh ein, so daß das HL-Register den geänderten Wert C064h erhält. Beim anschließenden ‘FAR CALL' springt das Betriebssystem direkt zum Ready-Modus.

Bei den CPCs 664 6128 liegt die Kernel-Routine auf den gleichen Adressen, nur der Ready-Modus beginnt hier bei C058h. Folglich muß man hier 58h (binär 01011000) fest verdrahten.


Der Adreßdekoder erkennt die Adresse 7Eh, blendet das ROM aus und legt 64h auf den Datenbus.


Einen völlig sicheren Reset erreicht man durch diese Schaltung, die leicht abgewandelt auf dem c't-ECB-Adapter vorhanden ist.

Die Schaltung selbst gestaltet sich einfach. IC1 und IC2 filtern die Adresse 7Eh aus. Mit IC3 wird das ROM ausgeblendet und der Bustreiber aktiviert.

Wer Strom sparen möchte, sollte (neben HCT-Chips) bei der festen Verdrahtung mit einem Pull-up-Widerstand (etwa 4k7) an Plus gehen. Um das Ganze noch etwas komfortabler zu machen, wurde noch ein Schalter eingefügt. Mit diesem läßt sich der gesamte Umschaltmechanismus abschalten.

... und Erholung gewähren

Der abgebildete Reset-Taster ist hier nur eine Primiliv-Lösung, da er keinerlei Rücksicht auf das CPU-Timing und den Refresh der dynamischen Speicher nimmt. Wird die CPU gerade in einem Schreibzyklus von einem Reset ‘überrascht', nimmt der aktuell adressierte Speicher eventuell Unsinn auf. Bei einer außer Kontrolle geratenen CPU muß man aber eh mit dem einen oder anderen zerstörten Byte rechnen, so daß es auf dieses eine Byte nicht unbedingt ankommt, und vielleicht hat man ja Glück ...

Auf den Refresh kann der Benutzer aber selbst einwirken. Drückt er den Reset-Taster zu lange, so muß er eben mit umgekippten Speicherzellen rechnen, da in dieser Zeit keinerlei Refresh der dynamischen Speicherzellen stattfindet. Heutzutage halten diese Chips aber ganz schön lange durch (oftmals länger als eine Sekunde). Bei einem kurzen Tastendruck ist das Risiko also gering.

Einen wesentlich sicheren Reset kann man durch eine Reset-Logik erreichen, wie sie ‘im Prinzip' auf dem c't-ECB-Anschluß vorhanden ist (timing-gerecht überein Monoflop). Allerdings hat man auch hier leider noch eine refresh-lose Zeit während der Druckdauer. Mit einer kleinen Änderung läßt sich das Problem aber beheben.

Damit ist dann der Reset ‘nietund nagelfest'. Auf das LS09 kann mah normalerweise verzichten. Es ist nur nötig, falls von irgendwelchen Peripherie-Geräten ebenfalls ein Reset ausgelöst werden soll.

Wer mit dem ECB-Adapter arbeitet. kann die Umblendschaltung bedenkenlos auf einer ECB-Bus-Platine unterbringen, da der Adapter die Signale ROMDIS und ROMEN für die Datenrichtung berücksichtigt und ROMDIS sogar über den Bus geführt werden kann.

AS, c't

★ PUBLISHER: Computer Technik (c't)
★ YEAR: 1985
★ AUTHOR: Sönke MARSCH
 

★ AMSTRAD CPC ★ A voir aussi sur CPCrulez , les sujets suivants pourront vous intéresser...

Lien(s):
» Hardware » Standard-Monitor am Schneider CPC464 (Computer Technik)
» Hardware » Robot - Fischertechnik - Tortue (CPC Revue)
» Hardware » Der ECB-Bus (Computer Technik)
» Hardware » ECB-Adapter fuer alle CPCs (Computer Technik)
» Hardware » Robot - Fischertechnik (Microstrad)
» Hardware » Fischertechnik Plotter
Je participe au site:

» Vous avez remarqué une erreur dans ce texte ?
» Aidez-nous à améliorer cette page : en nous contactant via le forum ou par email.

CPCrulez[Content Management System] v8.7-desktop
Page créée en 841 millisecondes et consultée 73 fois

L'Amstrad CPC est une machine 8 bits à base d'un Z80 à 4MHz. Le premier de la gamme fut le CPC 464 en 1984, équipé d'un lecteur de cassettes intégré il se plaçait en concurrent  du Commodore C64 beaucoup plus compliqué à utiliser et plus cher. Ce fut un réel succès et sorti cette même années le CPC 664 équipé d'un lecteur de disquettes trois pouces intégré. Sa vie fut de courte durée puisqu'en 1985 il fut remplacé par le CPC 6128 qui était plus compact, plus soigné et surtout qui avait 128Ko de RAM au lieu de 64Ko.