Befehlsbersicht zu TOSPATCH V2.4: ---------------------------------- ; = Kommentar (d.h. Rest der Zeile berlesen). <* = TOS aus ROM lesen (Daten im Patchfile mssen stimmen!) lesen =TT.MM.JJJJ = Prfen, ob es sich um das richtige TOS handelt (Datum). >Anzahl [Relocadr] = gepachtes TOS in Datei(en) schreiben. M”gliche Werte fr 'Anzahl' sind 1,2,4,6 und 8. Wenn 'Relocadr' vorhanden, wird nach reloziert. wird in die Variable .RELOCADR geschrieben. Ý = CRC-Prfsumme nach dem Patchen berechnen und setzen. Die Variable .CRC wird von 0 auf 1 gesetzt wenn die Prfsumme berchnet werden soll. !Long,Long, ... = Einzelne Ausnahmen beim Relozieren. !Long1..Long2, ... = Bereich von Long1 bis Long2 vom Relozieren ausnehmen. ? = Einzelne Adressen Relozieren. (bei Adressen, die z.B. das h”chstwertige Byte benutzen und somit von TOSPATCH nicht erkannt werden). -Pfad = Dateipfad „ndern auf „ndern (Ordner ”fnen etc.) = .. schliežt Ordner. Offset $Byte,Byte.. = Ab die durch Kommata getrennten Bytes in das TOS schreiben und ~ aktualisieren. Statt Bytes k”nnen hier auch beliebige Ausdrcke eingesetzt werden (Variablen, #, Operationen etc.). Hinter einem Ausdruck kann auch die gewnschte Breite stehen, z.B. .B fr Byte (Default), .W fr WORD und .L fr LONG. ~ wird aktualisiert. Offset |$Byte,Byte..= dito, jedoch ohne ~ zu aktualisieren. Offset FILE.EXT = Ab die Datei ins TOS schreiben. Die Datei muž entweder relocatibel oder zur TOS-Basisadresse ($E00000) + assembliert sein. ~ wird aktualisiert. Offset |FILE.EXT = dito, jedoch ohne Aktualisieren von ~. #Wert = wird in den internen Speicher schreiben. +FILE.EXT = Liest ein 2. Patchfile und wertet dies aus. Es k”nnen in dem File k”nnen alle hier beschriebenen Befehle benutzt werden bis auf diesen selbst. D.h. ein 2. Patchfile kann KEIN Patchfile mehr laden! _IF Ausdruck = Wenn der Ausdruck wahr ist, werden die nachfolgenden Zeilen bis _ELSE oder _ENDIF (falls kein _ELSE) ausgefhrt. Ist der Ausdruck falsch werden die nachfolgenden Zeilen bis _ELSE (falls vorhanden) oder _ENDIF bersprungen. _ELSE = Falls die _IF-Bedingung falsch war, wird ab hier weitergearbeitet. _ENDIF = Beendung einer _IF (/_ELSE) Konstruktion. _ERROR ['Text'] = Abbruch des Patchvorganges und ggf. Ausgabe von: 'Fehler: ',Text,' in Zeile .xxx' _EVEN = Falls ~ gerade ist passiert garnichts, sonst wird ein Nullbyte an Adresse ~ gepatcht, so daž ~ gerade wird. .Variable = Wert = Schreiben von in die Variable .Variable. .Variable: = Schreiben von ~ in die Variable .Variable. Nach dem Doppelpunkt k”nnen Patches folgen. /'Text',Zahl,$Zahl = Print-Befehl schreibt Texte ('Text'), dezimale Zahlen (Zahl) und hexadezimale Zahlen ($Zahl), die durch Komma getrennt sind, in beliebiger Reihenfolge auf den Bildschirm. Fr Zahlen sind beliebige Ausdrcke erlaubt. Spezielle Variablen: -------------------- .BASE = Long = TOS-Basisadresse setzen, zu der das TOS reloziert ist. $FC0000 fr TOS 1.xx, $E00000 fr TOS 2.xx und 3.xx. .LENGTH = Long = TOS-L„nge setzen. $30000 fr TOS 1.xx, $40000 fr TOS 2.xx und $80000 fr TOS 3.xx. .WIDTH = Long = Breite des TOS setzen. Gibt an, ob das TOS 16-bittig (.16) oder 32-bittig (.32) organisiert sein soll. Ist wichtig beim Abspeichern in mehreren Dateien zum Brennen. Normal: TOS 2.06: 16, TOS 3.06: 32. M”gliche Werte: .8, .16, .32, .64 . .CRC = .CRC wird durch den Ý-Befehl von 0 auf 1 gesetzt. Diese Variable zeigt an, ob die CRC-Prfsumme nach dem Patchen berechnet und gesetzt wird. .RELOCADR = in .RELOCADR steht die Adresse, an die das TOS nach dem Patchen reloziert wird. ~ = ~ zeigt auf die Adresse nach letztem abgearbeitetem Patch. # = Ist eine einfache Variable, die durch den Befehl # auf gesetzt wird, aber nicht bei Operationen verwendet werden kann. Fr sind folgende Werte m”glich: B fr Byte, W fr WORD und L fr LONG. muž mit angegeben werden. Aufteilung beim Abspeichern: ---------------------------- Beim Abspeichern in mehrere Dateien wird das TOS wie folgt aufgeteilt: WIDTH=.16: 1.Byte TOS.HIx 2.Byte TOS.LOx 3.Byte TOS.HIx 4.Byte TOS.LOx usw. WIDTH=.32: 1.Byte TOS.HHx 2.Byte TOS.HLx 3.Byte TOS.LHx 4.Byte TOS.LLx 5.Byte TOS.HHx 6.Byte TOS.HLx 7.Byte TOS.LHx 8.Byte TOS.LLx usw. Das TOS kann dabei in bis zu 16 B„nke, aber max. 32 Dateien, gesplittet werden. x z„hlt von 0-9 hoch und f„hrt dann mit A-P fort. Gibt es keine zwei Dateien mit gleicher Extension, wird x weggelassen. Ausdrcke und Variablen: ------------------------ Ab jetzt kann man auch fr (fast) jede Zahl im Patchfile eine Ausdruck angeben. Die Breite diese Ausdruck kann an das Ende des Ausdrucks angeh„ngt werden: Ausdruck.B, Ausdruck.W oder Ausdruck.L (Default: .B) Soll eine Zahl dezimal sein muž sie eine Punkt als Prefix haben: .20 = dezimal 20, 20 = hexadezimal 20! Alle Variablen beginnen mit einem Punkt. Grož- und Kleinschreibung ist egal. Von dem Variablenname nach dem Punkt werden nur die ersten acht Stellen ausgewertet, d.h. .VARIABLEA ist gleich .VARIABLEB! Als Zeichen im Variablenname sind erlaubt: A bis Z , 0 bis 9 sowie _ , wobei 0 bis 9 nicht an erster Stelle des Variablennamens stehe darf. Eine spezielle Variable ist ~. In ihr steht das Ende des letzten Patches. Vor ihr, sowie auch vor #, darf kein Punkt stehen. Diese Variable kann z.B. genutzt werden, um mehrere Patches hintereinander zu laden: 30000 PATCH1.ABS ~ PATCH2.ABS ~ PATCH3.ABS patcht ab Offset 30000 PATCH1.ABS, PATCH2.ABS und PATCH3.ABS hintereinander in den Speicher Priorit„ten: ------------ Als Operationen sind m”glich (in Reihenfolge ihrer Priorit„t): ^ : Potenzierung *,/ : Multiplikation, Division +,- : Addition, Subtraktion !A! oder !AND! : Und !O! oder !OR! : Oder !X! oder !XOR! : Exklusiv Oder Als Vergleiche sind m”glich (auch als Operationen zu verwenden): <> : Ungleich <= : Kleiner oder Gleich < : Kleiner >= : Gr”žer oder Gleich > : Gr”žer = : Gleich Die Vergleichszeichen k”nnen dabei auch in Ausrufungszeichen eingeklammert werden, z.B. a<>b ist das gleiche wie a!<>!b. Die Vergleiche liefern als wahr eine 1 und als falsch eine 0 zurck und haben die niedrigste Priorit„t. Klammerungen sind in bis zu 8 Ebenen m”glich. Allgemeines: ------------ Die maximale Gr”že des Hauptpatchfiles betr„gt 64kByte. Die maximale Gr”že des zweiten Patchfiles betr„gt jedoch 'nur' 32kByte! TOSPATCH erzeugt als Ausgabefile immer TOS.IMG! Benennt also das ausgelesene Original-TOS, falls es erhalten bleiben soll, um, z.B. in STE_TOS.IMG oder TT_TOS.IMG! Zus„tzliche Programme: ---------------------- Das Programm AUTO_206.PRG/AUTO_306.PRG geh”rt in den AUTO-Ordner. Es l„dt von dort ein TOS.IMG aus dem ROOT-Directory (der Pfad kann im Programm gepatcht werden) an die im TOS.IMG angegebene Adresse. Zum Konfigurieren von AUTO_206.PRG/AUTO_306.PRG dient AUTOCONF.PRG. Mit AUTOCONF.PRG lassen sich die Hotkeys, die Startup-Zeit und das zu ladende TOS in AUTO_206.PRG/AUTO_306.PRG ver„ndern. Das Programm RESETTOS.PRG dient dazu das TOS, wenn es mit RAMRESET reset- fest gemacht wurde, aus dem Speicher zu entfernen, ohne den Rechner aus- schalten zu mssen. >>> Wenn Ihr neue Patches einbaut, mailt sie mir bitte!!! <<< Viel Spaž wnscht Markus Heiden