★ APPLICATIONS ★ DIVERS ★ „Memory Check“ -Prüfen Sie Ihren Computer! ★ |
Memory Check (Computer Schau) | Applications Divers |
Eigentlich sollte es ja nicht Vorkommen, aber kein Computer ist vor Defekten sicher. Besonders ärgerlich ist das, wenn ein Speicherchip nicht mehr richtig funktioniert und aus scheinbar unerklärlichen Gründen Programme, die vorher noch einwandfrei liefen, dauernd „aussteigen”. Mit dem Maschinenprogramm „MEMORY CHECK” können Sie sich Gewißheit über den Zustand Ihres Computers verschaffen. Das Programm läuft auf allen drei Schneider-Computern. MEMORY CHECK ist vollständig in Maschinensprache geschrieben. Das bedeutet, daß Sie entweder den Quellcode abtippen und assemb Heren oder den Basic-Loader eingeben können. Entscheiden Sie sich für den Quellcode, dann müssen Sie zum Starten des Programms CALL &A2A1 eingeben; der Basic-Loader macht dies automatisch und sucht außerdem geeignete Bildschirmfarben heraus. Das Programm meldet sich mit MEMORY CHECK V1.0 und zeigt in der Bildschirmmitte laufend die geprüften Speicheradressen in Hexadezimal-Schreibweise an. Um die Verarbeitungsgeschwindigkeit zu erhöhen, erfolgt die Anzeige nur an Page-Grenzen, also nach jeweils 256 Bytes. Ist Ihr Computer fehlerfrei, erscheint nach kurzer Zeit Speicher von &0040-&A000 Ok. In einem zweiten Durchgang wird dann der Bildschirm-RAM von &C000 bis &FFFF untersucht. Auch hier erfolgt bei einwandfreien Testergebnissen eine entsprechende Bildschirmausgabe: Speicher von &C000-&FFFF Ok - Bitte druecken Sie eine Taste! Nach dem Tastendruck wird ein Reset ausgelöst, da eine Rückkehr nach Basic wegen der völlig veränderten Speicherinhalte kaum noch möglich ist. Sollten Sie zu den Pechvögeln mit defektem Computer gehören, erscheint bei nicht funktionierenden Speicherstellen die Fehlermeldung Adreßfehler und die defekte Adresse wird ausgegeben. Nach einem Tastendruck wird auch hier ein Reset ausgelöst. In einem solchen Fall bleibt Ihnen nichts anderes übrig, als den Computer reparieren zu lassen. Es ist aber dringend zu empfehlen, das Programm schon vor dem Auftreten solcher Fehler abzutippen und zu speichern — wenn die Fehler auftauchen, kann es zur Programmeingabe schon zu spät sein! Für Interessierte hier noch einige Angaben zur Funktionsweise des Programms: MEMORY CHECK setzt in einer Programmschleife zuerst jede Speicherstelle auf Null und liest den Inhalt der Speicherstelle wieder. Erkennt das Programm einen anderen Wert als Null, so erfolgt eine Fehlermeldung. In einem zweiten Test werden daraufhin alle Bits der Speicherstelle auf Eins gesetzt, MEMORY CHECK lädt also den Wert 255 in die Speicherstelle. Wird beim erneuten Lesen ein anderer Wert festgestellt, so erfolgt die Fehlermeldung. Ziemlich schwierig war die Wahl der Speicherbereiche: Der Bereich von &0000 bis &0040 ist für Veränderungen tabu, da dort die Restart-Vektoren stehen, die von allen ROM-Routinen verwendet werden. So würde z. B. die Bildschirmausgabe zum Systemabsturz führen. Ebenso verbietet sich die Veränderung des System-RAMs, da hier wichtige Daten für den Computer stehen, insbesondere die Sprungtabelle, ohne die keine ROM-Routinen mehr verwendet werden können. Auch befindet sich im Adreßbereich unter 49152 der Systemstack des Z80-Prozessors. Diesen z. B. in einem Unterprogramm zu verändern, führt beim RET-Rücksprung in den allermeisten Fällen zum System-Crash. Deshalb beschränkt sich MEMORY CHECK darauf, den Bereich &0040 bis &A200 zu untersuchen. Hier können alle Speicherinhalte verändert werden, wenn man mit dem Z80-Maschinenbefehl DI alle Interrupts des Computers verbietet und auf eine Rückkehr nach Basic verzichtet. In einer zweiten Schleife untersucht das Programm nach obig beschriebenem Verfahren den RAM-Speicher von &C000 bis &FFFF. Da dort aber normalerweise der Bildschirmspeicher liegt, wäre es nicht gerade ästhetisch, die Tests vor den Augen des Programmbenutzers durchzuführen. Schwerer wirkt aber das Problem, daß keine Bildschirmausgaben möglich wären. So kopiert MEMORY CHECK ganz einfach den gesamten Bildschirmspeicher mit LDIR in den Bereich von &4000 bis &7FFF und schaltet dann auf diesen Alternativbildschirm um. Der Benutzer merkt davon natürlich überhaupt nichts.
|