HARDWAREMONTAGES ★ RESET OHNE DATENVERLUST (HAPPY COMPUTER) ★

Reset ohne Datenverlust (Happy Computer)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 ★ 

Der Schneider ist serienmäßig mit einem Reset-Schalter ausgestattet. Dieser arbeitet allerdings nur softwaremäßig. Wenn aber von einem Assembler-Programm der Interrupt unterbunden wird, so besteht keine Möglichkeit mehr durch Benutzung der Tasten Shift, Ctrl und ESC das laufende Programm zu unterbrechen. Hier hilft nur noch ein Aus- und wieder Einschalten des Computers, was aber mit dem Verlust aller Daten teuer bezahlt werden muß.

Ein weiteres Manko im Betriebssystem besteht darin, daß der Speicherbereich von 40 bis ABFF hex beim Kaltstart (Aufruf der Adresse 0000 hex oder Reset mit Shift, Ctrl und Esc) mit lauter Nullen beschrieben wird. Daß dieser Zustand äußerst lästig ist, werden einige »Maschinencode-Programmierer« sicherlich bestätigen können. Ein noch fehlerhaftes Assembler-Programm bleibt mit Vorliebe in einer Schleife hängen, aus der es nicht mehr zurückgeholt werden kann. Der nicht zu umgehende Reset führt zu einem vollständig leeren Speicher. Ebenso wird beim Löschen eines Basic-Programms mit dem Befehl »NEW« der Speicherbereich bis HIMEN mit lauter Nullen überschrieben. Es ist nichts mehr zu retten. Oder?

Jedem Problem kann man natürlich zu Leibe rücken. In diesem Fall gibt es zwei total verschiedene Wege. Entweder man ändert die Software, das heißt man muß den Inhalt des ROMs in einer neuen Version in ein Eprom brennen oder man schafft hardwaremäßig Abhilfe.

Die zweite Lösung — die Hardware abzuändern—ist entschieden die einfachere. Sie bietet unter anderem nämlich die Möglichkeit, zwischen Originalsoftware und abgeändertem Programm hin- und herzuschalten. Außerdem kann Sie jeder benutzen, man braucht keinen Eprom-Brenner.

Um diese Änderung nun anzugehen, muß man erst einmal wissen, wo sich die Routine, welche für den Löschvorgang zuständig ist, im ROM befindet. Beim 464 steht sie im Basic-ROM und zwar im Bereich C13E bis C14D hex; beim 664 sowie beim 6128 hingegen im Bereich C145 bis C164 hex. Für unser Vorhaben sind allerdings nur die Adressen C14C bis C14E hex beziehungsweise C153 bis C155 hex von Interesse. Diese drei Bytes enthalten die beiden Befehle

LD (HL),A 77
LDIR ED B0

— wobei letzterer für das Löschen zuständig ist.

Um nun den Löschvorgang zu verhindern, muß an die genannten Adressen nur ein NOP, das heißt der Wert 00 hex gelegt werden. Wie sich so etwas hardwaremäßig lösen läßt, wollen wir uns hier ansehen. Der Aufwand, der dabei getrieben werden muß, ist leider ziemlich umfangreich. Der Grund dafür liegt in der Verwaltung der Speicherbereiche des Schneiders, der ja zusätzlich zu seinem internen ROM noch 232 externe benutzen kann. Zusätzlich belegt noch ein Tteil des RAMs den gleichen Bereich, Um sicherzustellen, daß wirklich nur die oben genannten Adressen im Basic-ROM ausgeklammert werden, wird an den I/O-Port »DF« ein Wert größer als 251 gesendet. Die Werte von 0 bis einschließlich 251 stehen nämlich für die externen ROMs zur Verfügung.

Um diesen Wert zu erkennen und zwischenzuspeichern, dazu dienen in der Schaltung (Bild 1) die ICs 4, 5 und 6. Die zwei Oder-Gatter des IC 4 registrieren, wenn ein Schreibzyklus auf den Port »DF« gegeben wird; dabei gehen die Leitung »WR« sowie »IORQ« auf Low-Signal, das heißt auf 0 Volt. Damit wird ein Beschreiben eines Ports angekündigt. Um welchen Port es sich dabei handelt, wird durch die Adreßbits A8 bis A15 bestimmt. Wenn man sich den Wert DF00 binär (1101 1111 0000
0000) anschaut, so ist leicht zu sehen, daß sich das Adreßbit A13 auf Low-Pegel befindet. Diese Tatsache machen wir uns zunutze, um einen Zugriff auf Port »DF« zu erkennen. Wenn nun alle drei Leitungen auf Low sind, liegt das Signal am IC 6 Clock-Eingang an, Wenn der Clockeingang auf Low geht, wird gleichzeitig auf den Datenbus ein Wert gelegt, der vom IC S decodiert wird. Dabei schaltet der Ausgang des Gatters auf Low, wenn alle Eingänge auf High-Pegel sind. Dies ist nur dann der Fall, wenn ein Wert größer oder gleich 252 (FC hex) anliegt. Ist der Schalter S1 am IC 6 geöffnet, so gelangt die Information, die am Eingang »D« des IC 6 liegt, invertiert zu dem invertierten Ausgang Q. Dies bedeutet hier, daß der Ausgang auf High-Pegel liegt und somit ein Freigabesignal an den restlichen Logikkreis sendet. Bei geschlossenem Schalter S1 liegt am Ausgang ein Low-Signal und der Rest der Logik ist gesperrt.

Kommen wir zum Erkennen der Adressen C14C bis C14E hex und zum Ausklammern dieses Bereiches. Die Adresse C14C (1100 0001 0100 1100 binär) wird von den ICs 1 und 2 (Abschnitt B im Schaltbild) decodiert. Der Ausgang von IC 1 geht nur dann auf Low, wenn an den beiden ICs die Adresse C14C bis C14F hex anliegt.

Daß nur die Adressen C14C bis C14E hex Gültigkeit haben, wird von den Adreßbits A0 bis Al hex sowie den Gattern des IC 3 bestimmt, Den Zugriff auf ein ROM verrät uns die ROMEN-Leitung. Schaltet die Leitung auf Low, so greift die CPU auf ein ROM zu. Ebenso ist es beim 664 und 6128, sieht man von den veränderten Adressen ab, Auch hier decodieren die ICs 1 und 2 (Abschnitt C im Schaltbild) die Adressen im Bereich C150 (1100 0001 0101 0000 bin) bis C157 hex (1100 0001 0101 0111 bin). Allerdings kommt noch ein IC hinzu. Dieses IC (IC 9) decodiert die Adressen A0 bis A2 hex, um sicherzustellen, daß wirklich nur die Adressen C153 bis C155 hex akzeptiert werden,

Sobald alle Signale in der benötigten Form vorliegen, haben wir am Ausgang 8 des Gatters von IC 7 einen High-Pegel , Dieser hegt über eine Diode an dem ROMDIS-Eingang des Erweiterungsbusses des Computers an und schaltet somit das interne ROM ab. Die Diode ist erforderlich, weil mehrere Erweiterungen auf die gleiche Leitung zugreifen.

Gleichzeitig gelangt ein Low-Signal an den Eingang 1 des IC 8, welches einen Datentransfer vom Eingang des ICs zum Ausgang gestattet. Da die Eingänge des IC 8 alle auf Masse liegen, wird zu diesem Zeitpunkt der Wert 00 hex auf den Datenbus des Computers gelegt.

Das Schaltbild unterteilt sich in die drei Bereiche A, B und C. Der Bereich A ist bei allen drei Schneider-Computern gleich. Schaltbildteil B betrifft dann den 464, Teil C den 664 sowie den 6128. Wie die Abschnitte jeweils miteinander verbunden werden, erkennt man an den Verbindungspunkten 1, 2 und 3.

Aufbauen kann man das Ganze am einfachsten auf einer Lochrasterplatte. Ob es außerhalb oder innerhalb des Gehäuses unterzubringen ist, sei dem Bastler selbst überlassen. Man sollte aber den Taster TI so anbringen, daß er nicht aus Versehen gedrückt werden kann.

Noch eine kleine Anmerkung: Wer jetzt der Meinung ist, aus einem »NEW« wieder ein »OLD« machen zu können, der wird leider ein wenig enttäuscht. Zwar wird beim Reset das Basic-Programm nicht mehr vollständig gelöscht, jedoch werden einige Zeiger, die für Basic-Anfang und -Ende sowie für die Variablen zuständig sind, wieder in den Einschaltzustand zurückgesetzt, Außerdem werden am Anfang des Basics einige Speicherzellen mit Nullen sowie mit den Zeigern der Variablen überschrieben. Dieser Umstand macht das »rückgängig machen« des »NEW«s zwar nicht gerade einfach, aber immerhin doch möglich. So bringt diese Hardware-Bastelei — vor allem für leidgeplagte Assembler-Programmierer — einige Vorteile mit sich, Wer das in der Praxis erfahren hat, wird sie für ihre nur zirka 25 Mark auch nicht mehr missen wollen.

Michael Bauer, HC

★ PUBLISHER: Happy Computer
★ YEAR: 1986
★ CONFIG: ???
★ LANGUAGE:
★ LiCENCE: ???
★ COLLECTION: HAPPY COMPUTER-SCHNEIDER SONDERHEFT
★ AUTHOR: Michael Bauer
 

★ AMSTRAD CPC ★ DOWNLOAD ★

Type-in/Listing:
» Reset  ohne  Datenverlust    (Bild  1)    (Happy  Computer-Sonderheft)    GERMANDATE: 2021-03-20
DL: 97
TYPE: image
SiZE: 325Ko
NOTE: w2233*h2533

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

Lien(s):
» Hardware » Einbau der VORTEX-Speichererweiterungs-platine in das Tastaturgehäuse des CPC 464 vonstatten geht (Schneider Aktiv)
» Hardware » Montage Drive - Démontage d'un Lecteur 3''½ Pour CPC 6128
» Hardware » Informatique pratique - Commandons la vitesse d'un moteur (Science&Vie)
» Hardware » Book Montages Extension Peripheriques du CPC 07
» Hardware » Amstrad et Minitel (CPC Revue)
» Hardware » Informatique pratique - Contrôlons les circuits intégrés (Science&Vie)
Je participe au site:
» Vous avez des infos personnel, des fichiers que nous ne possédons pas concernent ce programme ?
» 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 389 millisecondes et consultée 898 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.