home *** CD-ROM | disk | FTP | other *** search
- ____ _____
- o______ / _ /__ ____________\ _|______ ________ ____________ o
- :\___ \ //___)\ __/ _ \ _ \_ __// __/___)\ __/_ _ \:
- ::/ \ \ / _\ \ _)_ \ \ \ | _)_\____ \ \/ \ _\ \ \
- :/ _\ \ // \\ / \/ / \ | / \ _/ // \\ _\ // / /
- /_________\ /____\_____\ //:\____|_______\____/____\____/_/ //:
- o--/_______/---- - --/___/--- ----- -- - --- ---- -- ----/___/-o
-
- PRÄSENTIERT
-
- PatchControl V1.3
-
- (C) Copyright 1994-1995 by ALiENDESiGN
-
- Einleitung:
- ----------
- Sicherlich ist das Problem bekannt: Ein Programm kann nicht entfernt werden,
- weil es seine Patches nicht entfernen kann (z.b. wenn man mit MCP-Preferences
- die Konfig abspeichert). Dieses Programm behebt dieses Problem mit den Sys-
- temPatches. Alle Programme können nun ihre Patches entfernen. PatchControl
- ist selbstverständlich kompatibel zu SetMan.
-
-
- Unterschiede zwischen Setman und PatchControl:
- ---------------------------------------------
- Ohne Setman oder PatchControl kann nur das letzte Programm entfernt werden,
- daß einen Vektor gepatcht hat. Alle Programme (wie MCP), die Setman unter-
- stützen, können immer entfernt werden. Andere Programme aber (wie Snoopy
- oder Enforcer), die nicht Setman unterstützen, können niemals entfernt wer-
- den. PatchControl behebt dieses Problem.
-
-
- Installation:
- ------------
- PatchControl muß unbedingt gleich nach dem SetPatch in der Startup-Sequence
- gestartet werden:
- z.b.:
- C:SetPatch QUIET
- C:PatchControl
- .... alle anderen Aufrufe folgen hier
-
-
- Benutzung:
- ----------
- Nach PatchContol kann man Tasknamen angeben, die ihre Patches vor allen
- anderen einfügen sollen. Diese Option ist sehr wichtig für ARQ oder ähnliche
- Programme. Man kann dann ARQ irgendwann starten und nicht unbedingt vor
- dem MCP. Hier ein Beispiel für ARQ:
- C:PatchControl ARQ
- Groß-klein-Schreibung wird nicht unterschieden und Joker werden unterstützt.
-
-
- für Programmierer:
- -----------------
- PatchControl ist sehr einfach zu benutzen. Man muß einfach die Funktion
- FindPort("SetMan") aufrufen und wenn der "SetMan"-Port existiert, die
- Patches (mit SetFunktion()) einfach zurücksetzen, ohne sie zuvor zu kontrol-
- lieren. PatchControl macht den Rest.
-
-
- Developers: (Viruskiller-Programmierer)
- ----------
- Eine Liste aller Patches kann man wie folgt bekommen:
- Einfach FindPort() "Setman" aufrufen und folgendes auslesen:
- MP_SIGTASK APTR (im alten Setman = 0)
- Im SIGTASK (genannt PatchControl) muß dann nur noch TC_USERDATA ausgelesen
- werden. Dies ist ein Zeiger auf die PatchList.
-
- Patchlist:
- APTR LibraryBase
- ULONG Offset
- APTR PatchNode ;First Node
-
- APTR LibraryBase
- ULONG Offset
- APTR PatchNode
- . ;Hier folgen weitere Strukturen
- . ;Mit einer Null in APTR Library endet die Liste.
- .
-
- PatchNode:
- APTR Next_Node ;Offset 00
- APTR Previous_Node ;Offset 04
- JMP Next_Program ;Offset 08 Adresse des nächsten Programms
- APTR Program ;Offset 14 Programm für diese Node
- APTR TaskName ;Offset 18 der Task-Name von diesem Programm
- LABEL PatchNode_SizeOf
-
-
- Autor:
- -----
- Stefan "zerocom" Sommerfeld
- Kaulbachstr. 3
- 14612 Falkensee
- Deutschland
-
- Telefon: +49-[0]3322-202452
- EMail: zerocom@cs.tu-berlin.de
-
- oder rufe folgende Support-BBS an: eViL moOn! +49-[0]3322-208768 (2400-33600)
-