Anleitung für: Patch System vom: 7.10.93 von Disk: Geos Patch System Seite: SEITE
Anleitung von Denis Döhler, Sascha Beier und Falk Rehwagen
** Written (W) 1993 Falk Rehwagen, Wintergartenstraße 2/107, D-04103 Leipzig, Tel.: (0341) 284343 **
Geos Patch System
Diese Anleitung soll jedem Anwender von GEOS ermöglichen, die Benutzung des Geos Patch Systems zu erlernen, sowie Programmiern mit Hilfe des Programms Checksummer eigene Patchtexte zu erstellen. Die Anleitung ist nach folgendem Schema aufgebaut:
I. Erläuterung des Patch Systems
(Seite 2)
II. Programmbeschreibung Checksummer
(Seite 4)
III. Beschreibung des Patchtextformats
(Seite 5)
IV. Definition der Namensangabe der Patchtexte
(Seite 6)
V. Übersicht der Fehlermeldungen des Patch Systems und des Checksummers
(Seite 6)
VI. Bezugsstellen von Quelltexten des Patch Systems
(Seite 7)
Anfragen zum Patch System und zur eventuelle Klärung zum Quelltextaufbau bitte an:
Falk Rehwagen
Wintergartenstr.2 /107
04103 Leipzig
Anfragen zum Checksummer oder eventuelle Fehlerhinweise bitte an:
Sascha Beier
Inselstraße 17/b
04103 Leipzig
I. Erläuterung des Patch Systems
1. Wozu das Programm?
Wer kennt sie nicht, die kleinen Schönheitsfehler von Applikationen, Kopierroutinen, mangelhaften Aufbau von Bildschirmen bei Programmen usw., also allgemein gesagt die Programmfehler.
Jedem ist schon mal der eine oder andere dabei aufgefallen und man hat sich geärgert, für so viel Geld dürfte doch soetwas nicht passieren.
Und dann freut man sich, über jedes Patchprogramm, daß diesen oder jenen Fehler z.B. von geoWrite beseitigt. Hier seien als Bespiel die Patchprogramme genannt, die bei Geos die z- und y-Taste tauschen oder es ermöglichen 8 Fonts unter geoWrite zu nutzen. Aber wie das so ist , jeder der ein Patchprogramm schreibt, denkt nur an die Beseitigung dieses Fehlers und nicht an die Möglichkeit, daß man seine Patchroutine (also Vergleichen, auslesen und korregieren von fehlerhaften Bytes oder Bytefolgen) auch allgemein, also für andere Patches nutzen kann.
Patch System geht nun einen anderen Weg ! Das Patch System ist ein System, mit dem man, bei Kenntnis der fehlerhaften Bytes, jeden Programmfehler beseitigen kann. Da nun aber nicht jeder GeosUser bzw. Userin genau Kenntnisse der einzelnen Programme (z.B. von geoWrite) hat, werden entsprechenden Austauschroutinen (Quelltexte) von uns gleich mitgeliefert. Programmier können mit Hilfe von Disassembler oder Debugger sowie dem Checksummer weitere, eigene Quelltexte schreiben.
Patch System erlaubt es uns aber auch, zur Beseitigung von Fehlern bei anderen Programmen, dem User und der Userin nur noch den Austauschroutinentext in Form eines geoWrite-Quelltextes zu übergeben . Und Sie oder Er braucht nur noch diesen Quelltext zusammen mit Patch System zu verwenden, um die entsprechenden Fehler zu beseitigen.
2. Voraussetzungen und arbeiten mit Patch System
Nur Ändern mit bestehenden Quelltexten
Sie benötigen als erstes das Hauptprogramm Patch System, sowie das fehlerhafte Programm in Originalversion (z.B. geoWrite von Ihrer Original Systemdiskette). Außerdem brauchen Sie den entsprechenden Quelltext ( z.B. geoWrite2.1g_1 ). Bitte installieren Sie immer das Originalprogramm vor dem patchen !
Kopieren Sie das Patch System, das entsprechende, installierte Originalprogramm, sowie den Patch- Quelltext auf eine leere, formatierte Diskette oder in Ihr RAM-Laufwerk.
Überzeugen Sie sich bitte davon, daß der entsprechende PatchQuelltext wirklich für dieses Programm zuständigt ist ! Das erkennen Sie am Namen des Quelltext oder gegebenfalls an den ersten Zeilen des Quelltextes ! Ein hier auftretender Fehler wird zwar durch die Checksummen abgefangen, aber es kostet so sinnlos Zeit !
Starten Sie nun das Patch System durch einen Doppelklick auf das Icon wie jede andere Applikation. Als erstes erscheint eine normale geoWrite-Fileauswahlbox, in der alle geoWritetexte der aktuellen Diskette angezeigt werden. Wählen Sie bitte den richtigen PatchQuelltext aus und öffnen Sie diesen, indem Sie auf das öffnen-Icon klicken. Sie können hier selbstverständlich auch andere PatchQuelltexte des Geos Patch systems von anderen Disketten oder Laufwerken einlesen. Mit Abbruch kommen Sie zum Desktop zurück.
Nun wird dieser PatchQuelltext eingelesen und der Hauptbildschirm des Patch System erscheint.
Zum Aufbau des Bildschirmes:
- Ganz oben rechts steht der Name des zum PatchQuelltext gehörenden Programms, dieses muß sich auf der gleichen Diskette oder im gleichen RAM-Laufwerk befinden.
- Ganz oben links steht der Name des ausgewählten Patchtextes.
- Darunter werden beim Patchen die entsprechenden VLIR-Strukturen angezeigt.
- Rechts neben dem Namen des Patchtextes stehen die Anzahl der erfolgenten Patches. beim Patchen erhöht sich diese Zahl.
- Darunter die eventuell auftretende Fehleranzahl.
- In der Mitte des Bildschirmes erscheint eine nochmalige Sicherheitsabfrage, ob die ganz rechts oben stehende Datei (Programm, Applikation) auch geändert werden darf und soll !
- Ganz unten erscheint das Geos Patch System -Logo.
Klicken Sie nun auf die Ja-Box, wenn das Patchen gestartet werden darf. Mit Abbruch kommen Sie in die Fileauswahlbox zurück.
Beispiel für eine korrekte obere Leiste nach dem Patchen.
Ist das Patchen beendet und es traten keine Fehler auf, wird eine entsprechende Meldung ausgegeben.
Entwickeln, Ändern mit eigenen Quelltexten
Hierzu müssen Sie voher die fehlerhafte Stelle des Programms herausfinden. Dazu sind Disassembler oder Debugger sowie Kenntnisse der Maschinensprache-programmierung nötig. Haben Sie die Fehlerhafte Stelle gefunden, schreiben Sie die entsprechenden Adressen, fehlerhaften und korrekten Bytes auf. Außerdem dient Ihnen das Programm Checksummer zur Feststellung von Checksummen zur richtigen Bearbeitung von Programmen. Lesen Sie sich bitte auch die entsprechenden Stellen in dieser Anleitung durch. Zum patchen selbst gilt das bereits oben beschriebene.
4. Probleme und Reportdatei:
Treten beim Patchen größere Fehler auf, z.B. wenn Sie einen geoWrite-Text ausgewählt haben, der gar kein PatchQuelltext ist, erscheint sofort beim Patchen eine entsprechende Fehlermeldung :
Treten beim Patchen keine oder nur Checksummenfehler auf, so wird am Ende des gesamten Patchvorganges eine Reportdatei erzeugt. Ihr kann der Anwender entnehmen, welches Patch auf Grund eines Checksummenfehlers nicht durchgeführt werden konnte, denn bei einer großen Anzahl Patches verliert man schnell die Übersicht über auftretende Fehler. Die Reportdatei wird von Patch System in der gleichen Version wie der Patch-Quelltext erstellt.
6. Programmrechtliches :
zum Geos Patch System:
Das Programm Patch System ist PD, darf und kann frei kopiert werden. Dies ist besonders interessant für Profis, die ebenfalls Fehler gefunden haben und hierzu einen Quelltext erstellen wollen. So können Sie das Patch System mitliefern. Die Anleitung zum Patch System sowie die Anleitung zum Quelltext-aufbau muß bei Weitergabe an Dritte immer mit weitergegeben werden !
zu den Quelltexten:
Die Rechte an den Quelltexten liegen bei den Autoren der Quelltexte. Derjenige, der also einen Quelltext schreibt, kann über seinen Quelltext selbst verfügen, ob er als PD, Shareware oder kommerzielle Software vertrieben wird. Wir sind gern bereit beim Vertrieb zu helfen, bitte schreiben Sie uns dazu. Die mitgelieferten Quelltexte sind keine PD. Sie werden zusammen mit dem Patch System angeboten und dienen den Programmiern als Hilfe.
zu den gepatchten Programmen:
Die Verbesserungen an den einzelnen Programmen darf nur durch jeden Besitzer der Nutzungsrechte an diesem Programm (geoWrite) erfolgen. Das verbesserte Programm (gepatches Programm) darf nicht an andere User oder Userinnen weitergegeben werden, da nur derjenige der das Programm gepatcht hat, auch an diesem gepatchten Programm die Nutzungsrechte hat.
II. Programmbeschreibung: Checksummer
1. Wozu das Programm?
Mit dem Geos Patch System konnten man Fehler aus einigen Programmen beseitigten, doch für ein bestimmtes Programm existiert wieder mal kein Patchtext. Was liegt da näher als selbst einen zu schreiben. Doch leider gibt es von dem besagten Programm mehrere Versionen. Wie soll man nun als Anwender unterscheiden können, welches Programm gepatcht werden darf und welches nicht. Hier bietet Checksummer einen gute Möglichkeit, Programme zu unterscheiden. Es berechnet über bestimmte Programmbereiche eine Prüfsumme, die ein Unterscheiden ermöglicht.
2. Voraussetzungen zur Arbeit mit dem Checksummer
Um eine Prüfsumme ermitteln zu können, brauchen Sie den Checksummer, sowie das entsprechende Originalprogramm. Es muß jedoch bereits installiert sein. Kopieren Sie die beiden Programme auf eine leere, formatierte Diskette oder in Ihre RAM.
3. Die Arbeit mit dem Checksummer
Checksummer wird vom Desktop aus wie jede andere Applikation gestartet. Kurz darauf erscheint eine Fileauswahlbox, in der aber alle auf der Diskette enthaltenen Files aufgelistet sind. Öffnen Sie das entsprechende Programm, indem Sie es auswählen und auf das öffnen-Icon klicken. Natürlich ist auch möglich Programme von einem anderen Laufwerk bzw. einer anderen Diskette einzulesen. Mit Abbruch gelangen Sie zum Desktop zurück. Als erstes wird man gefragt, ob man vom Infosektor eines Programms eine Checksumme bilden möchte. Ist dies nicht der Fall, so ist für das weitere Arbeiten die Filestruktur des gewählten Programmes ausschlaggebend. Bei VLIR-Dateien wird der Anwender gebeten, den Datensatz, den er bearbeiten will, anzugeben. Sie werden nun um bestimmte Eingaben gebeten, die folgende Bedeutung haben:
* "Basisadresse des Datensatzes eingeben:"
(Hier ist die Adresse anzugeben, an die ein Datensatz geladen wird. Da diese Adresse beim
Datensatz 0 nicht relevant ist, erscheint die entsprechende Box nur bei Datensatzangaben, die
größer als 0 sind.)
* "Anfangsadresse des Bereichs eingeben, der zu prüfen ist:"
(Hier ist die Adresse anzugeben, bei der die Prüfsummenbildung beginnen soll. Dabei sind dezimale
und hexadezimale Angabe möglich.)
* "Anzahl der zu prüfenden Bytes eingeben:"
(Hiermit wird die Länge des Bereichs angegeben, von dem die Prüfsumme gebildet werden soll.)
Der Bereich, in dem sich ein Programm oder -teil befindet, wird in einem Fenster am oberen linken Rand angezeigt. Treten bei den Eingaben Fehler auf, erscheint sofort einen Fehlermeldung. Nach kurzem Rechnen erscheint in einer weiteren Box die ermittelte Checksumme, die dezimal und hexadezimal ausgegeben wird.
Das Programm ist so gestaltet, daß man ohne große Probleme weitere Checksummen in einem Datensatz oder in einem sequentiellen Programmm bilden kann. Dazu beantworten Sie die jetzt folgenden Fragen entsprechend mit Ja oder Nein.
III. Beschreibung des Patchtextformats
Anhand der beigefügten Beispiele können sie relativ einfach Quelltexte erstellen. Um eine allgemeine Kompatibilität zu erreichen, beachten Sie bitte folgendes. Die Werte können als
- Byte in Dezi, Hexa oder Binär angegeben werden. Beachten Sie bitte das entsprechende Vorzeichen.
- String
- Word (daß dann in 2 Bytes gewandelt wird)
angegeben werden.
Die Bytes werden durch Komma oder RETURN getrennt. Kommentare werden durch ein Semikolon angekündigt. Der restliche Teil der Zeile wird dann als Kommentar angesehen.
Die erste Seite jedes von uns gelieferten Quelltextes enthält als Kommentare die Änderungen, die Programmversion usw. im Klartext. Sie sollten es auch so handhaben.
Struktur:
1. Die Klasse des zu patchenden Programms mit einer Null als Abschluß.
Beispiel: "TopDesk V1.2",0
2. Der Geos-Filetyp als Bytewert.
Beispiel: 6
3. Die Änderungen werden Datensatzweise durchgeführt. Deshalb folgt nun die Datensatznummer. Ist diese Nummer =254 wird der Infoblock bearbeitet, ist die Nummer = 255 ist der Patchtext zu Ende. Nach der Datensatznummer folgt bei VLIR-Files die Adresse als Word (bei Datensatz 0 nicht nötig, da vorgegeben). Nach der Adresse folgt die neue Länge als Word. Wird die Länge des Datensatzes nicht geändert wird dies durch 0 angegeben. Beim Infoblock entfällt beides, da beides nicht geändert werden kann. Bei seq. Files ist die Datensatznummer immer 0 und es wird nur die neue Länge angegeben. Wird die Länge nicht geändet, ist die Länge 0. Die Länge muß als Word eingegeben werden.
4. Das nächste folgende Byte gibt die Anzahl der Änderungen in einem Datensatz an.
Beispiel: 10 - Datensatz 10
#$69e7 - Adresse
#0 - keine neue Datensatz-länge
1 - Anzahl der Änderungen
5. Der folgende Block baut sich wie folgt auf:
- ein Byte - wieviele Checksummen eingebaut sind
- Checksummenprüfung - Adresse (Word)
- Länge (Word)
- Prüfsumme (Word)
- wieviele Bereiche ändern - Adresse (Word)
- Anzahl der verändernden Bytes (Word)
- zu ändernden Bytes
Beispiel: 0 - keine Checksumme
1 - 1 Bereich ändern
#$6e6b - ab Adresse $6e6b ändern
#1 - 1 Byte ändern
$a0 - String-Ende = neues Byte
Die Punkte 3 - 5 können sich mehrmals wiederholen.
Am besten Sie schauen sich die mitgelieferten Quelltexte an, darin ist die Struktur der Quelltexte sehr gut erkennbar. Außerdem wurden die Quelltexte durch uns zusätzlich kommentiert.
IV. Definition der Namensangabe der Patchtexte
Dieser Abschnitt der Anleitung möchte Sie mit der Namensangabe der Patchtexte vertraut machen. Wir haben eine Struktur entwickelt, mit der wir hoffen, daß man schon am Namen erkennen kann, für welches Programm der Text bestimmt ist. Wir bitten Sie, sich an die von uns vorgegebene Definition zu halten. Wir erklären unsere Definition an einem Beispiel, dem Patchtext: geoWrite2.1g_1
Als erstes wird die Fileklasse des zu patchenden Programms angegeben, hier geoWrite. Patch System sucht nicht nach dem Namen eine Datei, sondern nach ihrer Klasse. Ihr folgt die Version des Programms (2.1). Handelt es sich bei dem Programm um eine deutsche Version, so wird das durch das kleine g (Germany) angegeben. Diesen Angaben folgt jetzt ein Unterstrich, dann die Version des Patchtextes. Bei unserem Beispiel handelt es sich um die Version 1 des Patch-Quelltextes (_1).
Abschließend bleibt nur die Veränderung des Namens bei Programmen für GEOS 128 zu erwähnen. Diese Besonderheit wird am Anfang des Namens deutlich gemacht. Unser Beispiel verändert sich also für geoWrite128 folgendermaßen: 128geoWrite2.1g_1 Wie aber jeder feststellen kann, ist dieser Name größer als 16 Zeichen. Hier wird bei der Fileklassenangabe soweit gekürzt, so daß der Name 16 Zeichen enthält. Das Beispiel verändert sich somit nocheinmal (128geoWrit2.1g_1).
V. Übersicht der Fehlermeldungen
Das Geos Patch System unterscheidet zwischen zwischen Disketten- und internen Fehlern. Interne Fehler treten bei Unstimmigkeiten im Patchtext auf. Anschließend folgen alle entsprechenden Meldungen:
"Datensegment zu lang (nicht über 127 Zeichen)"
"keine Grafiken im Patchtext erlaubt"
"vorzeitiges Patchtext-Ende"
"Syntaxfehler im Datensegment"
"Bytewerte nicht größer als $ff (255)"
"Zahlenangabe erwartet"
"Wordwerte nicht größer als $ffff (65535)"
"Textstring nicht abgeschlossen"
"zu patchende Datei unauffindbar"
"in sequentiellen Dateien nur Datensatz 0"
"Bereich außerhalb des Datensatz-Bereiches"
Auf eine genaue Erläuterung verzichten wir an dieser Stelle, da wir denken, die Fehlermeldungen erklären sich selber. Sollte es dennoch Fragen geben, so wenden Sie sich an einer der genannten Adressen.
Abschließend folgt eine Übersicht der Diskettenfehler, die das Patch System und der Checksummer in der gleichen Weise melden.
"Diskette voll"
"ungültiger Track"
"Inhaltsverzeichnis voll"
"Datei nicht gefunden"
"BAM fehlerhaft"
"VLIR-Datei nicht geöffnet"
"ungültiger Datensatz"
"zu viele Datensätze"
"falsche Dateistruktur"
"Pufferüberlauf beim Laden"
"absichtlicher Abbruchfehler"
"Gerät nicht vorhanden"
"allgemeiner Diskettenfehler"
VI. Bezugsstellen von Quelltexten
Über Denis Döhler , Gorkistr.18, 04347 Leipzig können Sie die komplette Geos PatchSystem -Diskette mit Quelltexte für u.a. folgende Programm bestellen :
1. Programm: geoWrite Version: V2.1 (64'er Version) Autor: Tony Requist
Versiondatum: 3.1.89 15:14 Anzahl der Verbesserungen: 6
2. Programm: TopDesk Version: V1.2 (64'er Version) Autor: DPT KnCiGo
Versionsdatum: 22.8.88 13:01 Anzahl der Verbesserungen: 3
3. Programm: TopDesk128 Version: V1.3 Autor: DPT KnCiGo
Versionsdatum: 22.8.88 13:05 Anzahl der Verbesserungen: 5
4. Programm: ScrapCan Version: V1.0 Autor: Nate Fiedler
Versionsdatum: 26.5.92 16:27 Anzahl der Verbesserungen: 1
5. Programm: geoCanvas Version: V1.1 Autor: Nate Fiedler
Versionsdatum: 8.7.92 13:46 Anzahl der Verbesserungen: 1
6. Programm: RAM Move Version: V1.1 Autor: Jim Collette
Versionsdatum: 26.1.92 0:40 Anzahl der Verbesserungen: 3
7. Programm: DisAssembler Version: V2.0 Autor: Marc F.Brouilette
Versionsdatum: 3.2.91 16:42 Anzahl der Verbesserungen: 1
8. Programm: DBGetFil128 Version: V3.0 (deutsch) Autor: Jean F. Major
Versionsdatum: 28.6.92 13:24 Anzahl der Verbesserungen: 2
Diese Liste wird ständig erweitert. Für Hinweise auf weitere Fehler von Geos-Programmen sind wir sehr dankbar.
Und von Werner Weicht, Lange Str.9 , 38889 Blankenburg/Harz sind auf dieser Diskette u.a. folgende Quelltexte für folgende Programme enthalten:
1. Programm: RamClock 64 Version: V3.3 (64'er Version) Autor: Erwin Schnabel
Versiondatum: 10.11.92 20:59 Anzahl der Verbesserungen: 1
2. Programm: RamClock Version: V3.4 (64`er Version) Autor: Erwin Schnabel
Versiondatum: 19.2.93 7:52 Anzahl der Verbesserungen: 1
3. Programm: RamClock 128 Version: V3.3 (128'erVersion) Autor: Erwin Schnabel
Versionsdatum: 3.11.92 12:50 Anzahl der Verbesserungen: 1
4. Programm: DocWright II Version: V4.0 Autor: J. Buckley
Versionsdatum: 22.2.89 17:33 Anzahl der Verbesserungen: 1
5. Programm: GEOPUBLISH Version: V1.0 Autor: Alice and Mike
Versionsdatum: 27.5.88 11:16 Anzahl der Verbesserungen: 1
6. Programm: GEOMERGE Version: V2.0 Autor: Hawley & Requist
Versionsdatum: 6.7.88 13:02 Anzahl der Verbesserungen: 1