★ APPLICATIONS ★ PROGRAMMATION ★ Deutsche Meldungen ★ |
Deutsche Fehlermeldungen (Computer Technik) | Applications Programmation |
CPC 464 drückt Fehler ‘allgemeinverständlich' aus Das vorgestellte Programm ersetzt auf dem Schneider CPC 464 die englischen Fehlermeldungen durch deutsche, was für Computer-Neulinge oft eine große Arbeitserleichterung bedeutet. Schließlich sind die oft sehr jugendlichen Computer-Fans der englischen Sprache noch nicht so mächtig (bis auf Peek, Poke, Print und so weiter). Auch wird bei jeder Fehlermeldung ein Warnton ausgegeben. Fortgeschrittenen Programmierern kann die Funktionsweise des Programms wertvolle Programmiertips geben. Da das Programm in Maschinencode geschrieben ist, gibt es zwei Wege bei der Programmeingabe: Eintippen des Quellcodes für einen Assembler oder Abtippen des BASIC-Laders. Der BASIC-Lader plaziert das Maschinenprogramm immer unter dem aktuellen HIMEM. Somit bleibt für BASIC der maximale Speicherplatz frei: Sie müssen nicht einmal 1 KByte opfern! Im ganzen Maschinenprogramm befinden sich nur drei absolute Sprünge innerhalb des Programms, die der BASIC-Loader automatisch korrigiert. Steht das Maschinenprogramm im Speicher, werden fast alle englischen Fehlermeldungen durch ihre deutschsprachigen Pendants ersetzt. ‘Fast' heißt, daß zum Beispiel ‘Break' nicht ersetzt wird, da hier die Fehlerausgabe anders funktioniert. Wollen Sie wieder auf die Ausgabe der originalen Fehlermel- Umleitung Eine recht nützliche Eigenart des BASIC-Interpreters im CPC 464 sind die sogenannten ‘Umleitungen' (englisch ‘Indi-rections'). Dies sind Speicher-steilen im RAM. die aus dem Interpreter heraus an wichtigen Stellen angesprungen werden und normalerweise nur aus einem RET-Rücksprungbefehl bestehen. Da diese Indireclions aber im RAM stehen, kann man sie so verändern, daß sie auf eigene Maschinenprogramme zeigen. Hiermit kann der BASIC-Interpreter also völlig umgebaut werden. Auch vor der Ausgabe eines Fehlers springt der Computer an der Adresse 0CA94h in eine Fehler-Indirection an der Adresse 0AC04h. Hier greift das Programm an: Es schreibt den Sprung JP NEWERR dorthin und bewirkt somit, daß alle zukünftigen Fehlermeldungen abgefangen und an die neue Fehlerausgabe umgeleitet werden. Mil einem Disassembler oder einem ROM-Listing sucht man sich nun die Tabelle der Fehlermeldungen: Sie liegt im Bereich von 0CC5Bh bis 0CE66h. Sucht man weiter, so kann man feststellen, daß in der Adresse 0CC45h in ein Register die Basisadresse dieser Fehlermeldungen geladen wird: LD DE,0CC5BhVerfolgt man den Programmcode weiter, so gelangt man direkt vor der Fehlertabelle an einen RET-Rücksprung befehl in Adresse 0CC5Ah. Daraus läßt sich schließen, daß dieses Programmsegment ein Unterprogramm ist. das logischerweise irgendwo im Bereich zwischen 0C000h und 0FFFFh mit CALL 0CC45h aufgerufen werden muß. Zur Freude des Programmierers geschieht dies nur einmal, nämlich in 0CAD0h. Dies bedeutet, daß der Bereich vom Aufruf der Fehler-lndirection bis zum Sprung in den Bildschirmeditor, der ja nach einer Fehlermeldung automatisch angesprungen wird, kopiert werden muß. Ebenso muß natürlich auch das wichtige Unterprogramm zur Fehlerausgabe im Bereich 0CC45h bis 0CC5Ah in das Programm übernommen werden.Unterschiede zwischen Original-ROM-Programm und der neuen Ausgabe-Routine bestehen nur in der internen Adressierung, vor allem in der Veränderung des Zeigers hin auf die neue Fehlertabelle. C'T 8605
|