3000 3a83 0000 I ... RST20 WANDLUNG
	Programmbeschreibung RST 20 Wandlung

Das Programm realisiert das Auffinden und die Wandlung der als
Untugend bekannten CALLs zum Aufruf von Monitorroutinen. Es ist
relokatibel also an keine bestimmte Laufadresse gebunden.
Zur Bedienung: Anfangsadresse ist gleich Startadresse. Nach dem
Start erfolgt eine Abfrage der Anfangsadresse ab der gewandelt
werden soll. Die Endadresse ist mit E000 H fest im Programm
vorgeben. Die Eingabe einer groesseren Adresse fuehrt zum Rueck-
sprung in den Monitor.
 Nach ENTER erfolgt sofort der Suchlauf und gegebenenfalls die
Wandlung. Der Stand der Abarbeitung ist auf dem Bildschirm in
Form der Nummern der Spezifikationsbytes (00 - 13 H) ablesbar. 
Gefundene CALLs werden in die Form 00 E7 DB gewandelt und deren
Adresse angezeigt. Die Routinen HEXUM DB 12 und ALFA DB 13
werden mit gewandelt und muessen bei Bedarf kurzgeschlossen
werden. Die Adressen dieser Routinen sind auf dem Bildschirm
ablesbar. Nach Abarbeitung des Programms wird zum Monitor
zurueckgekehrt.
Zur Funktion des Programmes: Aus der eingegebenen Anfangs-
adresse und der Endadresse E000 H wird die Anzahl der Bytes
berechnet die durchsucht werden sollen. Anschliessend ermittelt
das Programm seine eigene Adresse und berechnet daraus die An-
fangsadresse der Tabelle mit den Adressen der CALLs . Diese
Tabelle befindet sich unmittelbar nach dem Programm. Das IX
Register wird als Zeiger gesetzt. Die Hauptfunktion des
Programms uebernimmt der Blocksuchbefehl CPIR . Geladen mit der
Anfangsadresse (HL), der Bytezahl (BC) und dem zu suchenden Byte
 CD fuer CALL  (A) wird bei jedem CALL mit dem Inhalt der
Tabelle verglichen, deren Adresse durch IX gezeigert wird. Bei
Uebereinstimmung wird gewandelt ansonsten mit CPIR fortgefahren.
Ist die gesammte Bytezahl durchsucht wir mittels IX die naechste
Adresse in der Tabelle eingestellt und der CPIR Befehl neu durch-
laufen. Nach jedem 19.(=13 H) Durchlauf wird die Tabelle auf
ihr Ende (FF H) geprueft. Ist das Ende erreicht wird zum Monitor
zurueckgesprungen. Ist das Ende noch nicht erreicht wird wieder
mit Datenbyte 00 angefangen zu wandeln. Somit sind leicht
mehrere Monitorvarianten mit unterschiedlichen Adressen der 
einzelnen Routinen ueberpruefbar . Bedingung ist, dass die Tabel-
le immer um ein Vielfaches von 38 (=19 Adressen je 2 Byte = 13 H
 = Anzahl der RST 20 Routinen) erweitert wird und als Ende FF H
enthaelt.
Im vorliegenden Programm sind zwei Varianten in der Tabelle ent-
halten. 1. die Adressen der Monitorroutinen 2.02
2. die Adressen der Monitorroutinen A.2 .
    
November 1988

Kostenlose Weitergabe sowie Fehlerhinweise und Programmtausch
erwuenscht.


	Karl-Heinz Reuther
	Querstrasse 4
	Frohburg
	7233