C 64
Anwendung

Ohne gutes Werkzeug geht es nicht: SMON Teil 5

Dies ist der letzte Teil unserer SMON-Serie mit der versprochenen Zugaba Die zirka noch freien 500 Byte sollen mit einem kleinen Diskettenmonitor gefüllt werden. Parallel zur Serie über die »Geheimnisse der Floppy« wollen wir Ihnen außerdem an einigen Beispielen zeigen, was man mit so einem Disk-Monitor alles anstellen kann.

Nun sind 500 Byte nicht gerade viel—sie entsprechen etwa 10 Zeilen Basic — und das stellte uns vor einige Probleme. Wir haben schließlich auf allen Komfort verzichten müssen: Deshalb gibt es keine Directory-Ausgabe, keine Übermittlung von Disk-Kommandos ä la DOS 5.1 und was dergleichen schöne Dinge mehr sind. Niemand kann Sie allerdings davon abhalten, solche Programme gleichzeitig mit SMON zu verwenden. Sollte SMON dabei im Wege sein, können Sie ihn ja seit der letzten Ausgabe auf einen anderen Speicherbereich verschieben. Wir haben also nur solche Befehle eingebaut, die Basic-Befehlserweiterungen nicht bieten und die für den Maschinensprach-Programmierer von besonderem Interesse sind. Glücklicherweise sind gerade für solche Zwecke im SMON ja bereits reichlich Routinen vorhanden, die wir benutzen können, etwa Eingabe-Routinen oder Hexdump von Speicherbereichen.

Die Befehle des Disk-Monitors

Da das Arbeiten mit dem Disk-Monitor besondere Aufmerksamkeit verlangt (nach Murphys Gesetzen führen Fehleingaben in der Regel zu unlesbaren Disketten), wird er mit einem eigenen Kommando eingeschaltet. Leider waren alle halbwegs sinnvollen Buchstaben (»D« wie Diskette oder »F« wie Floppy) schon vergeben, deshalb haben wir uns für ein schlichtes »Z« wie Zuversicht entschieden.

—Z schaltet den Disk-Monitor ein.

Die Rahmenfarbe ändert sich auf Gelb, der gewohnte ».« am Anfang einer Zeile ändert sich in »*«. Dies alles hat den Zweck, Ihnen deutlich zu machen, daß es jetzt ernst wird. Intern wird jetzt das Basic abgeschaltet, weil der Disk-Monitor einen 256 Byte großen Puffer benötigt. Dieser liegt von $BF00—$C000 im RAM unter dem Basic, weil er dort am wenigsten stören kann.

READ: R (Track Sektor)

Liest einen Block von der Diskette in den Computer. Track und Sektor müssen als Hexzahlen eingegeben werden. Die erste Zeile des Blocks wird ausgegeben. Da wir dazu normale SMON-Routinen verwenden, steht als Speicheradresse $BF00. Das »BF« können Sie vorerst ignorieren. Die weitere Ausgabe des Hexdump erfolgt anders als gewohnt mit der Taste »SHIFT«. STOP bricht die Ausgabe ab. Sie können die Hexbytes überschreiben und damit ändern. Eine dauerhafte Änderung erfolgt aber erst beim Zurückschreiben auf die Diskette (siehe Befehl »W«). Geben Sie nur »R« ohne Track und Sektor ein, wird der logisch (!) nächste Block eingelesen.

MEMORY-DUMP: M

Zeigt den gerade im Puffer befindlichen Block nochmals auf dem Bildschirm an.

Genau wie beim R-Befehl können Sie die Ausgabe mit »SHIFT« und »STOP« steuern und Änderungen vornehmen.

WRITE: W (Track Sektor)

Schreibt einen Block aus dem Puffer auf die Diskette zurück. Ähnlich wie bei »R« kann die Angabe von Track und Sektor entfallen. Es wird dann der Track und Sektor des letzten R-Befehls benutzt. Das ist in fast allen Fällen auch der richtige.

ERROR: @

Liest den Fehlerkanal aus, gibt ihn aber nur aus, wenn wirklich ein Fehler vorhanden war. (»00, OK, 00, 00« wird unterdrückt.)

EXIT: X

Verläßt den Disk-Monitor und springt in den SMON zurück. Dabei wird die Rahmenfarbe auf Blau zurückgeschaltet und es erscheint wieder der ».« am Anfang der Zeile. Das Basic wird wieder eingeschaltet. Wollen Sie nun mit SMON-Kommandos auf den Puffer zugreifen, müssen Sie Basic wieder abschalten ($36 in Speicherstelle $0001).

Die folgenden Beispiele sollen Ihnen die Arbeit mit dem Disk-Monitor verdeutlichen.

Achtung! Benutzen Sie unbedingt zum Üben eine Diskette, die Sie nicht mehr brauchen!

Weder wir noch der Verlag haften dafür, wenn Ihr Lieblingsprogramm oder die mühsam erstellte Adreßdatei unwiederbringlich dahin sind. Daß das sehr sehr schnell gehen kann, wissen wir aus eigener Erfahrung …

Am besten machen Sie von einer Ihrer Diskette eine Kopie, die Sie zum Üben benutzen können.

Reparatur eines gelöschten Files

Sicher ist Ihnen das auch schon passiert: Sie wollen Ihr Programm mit Namen »Schrott« löschen, geben als Abkürzung »S:S*« ein und merken in dem Moment, in dem Sie »RETURN« drücken, daß auf der Diskette auch alle Versionen von »SMON« waren, außerdem auch noch »Springvogel«, »Soccer« etc. Verzweifeln müssen Sie nur, wenn auch diese letzte SMON-Version mit dem Disk-Monitor dabei war. Ansonsten behalten Sie die Ruhe und verfahren Sie wie im folgenden beschrieben.

Laden Sie also jetzt SMON, legen Sie Ihre »Übungsdiskette« (!) ins Laufwerk und löschen Sie eins der ersten Programme mit dem üblichen Scratch-Kommando. Nun starten Sie SMON und drücken »Z«. Der Bildschirm ändert seine Farbe wie beschrieben, und am Anfang der Zeile erscheint der »*«. Jetzt geben Sie ein: R 12 00

Auf dem Bildschirm erscheint die erste Zeile der BAM, die bei jeder Diskette auf Track 18, Sektor 0 abgelegt ist. Die ersten beiden Bytes enthalten »12 01« und geben damit den logisch nächsten Block an. In diesem Falle wäre das der erste Block des Directory. Wenn Sie mit »SHIFT« die Bildschirmausgabe fortsetzen, erkennen Sie etwa in der Mitte den Diskettennamen. Lassen Sie die Ausgabe durchlaufen, bis wieder der »*« erscheint. Nun geben Sie »R« ohne weitere Angaben ein. Damit erhalten Sie den Koppel-Block, also Track 18, Sektor 1, den ersten Directory-Block. (Natürlich hätten Sie auch gleich »R 12 01« eintippen können, aber wir wollen ja zeigen, wie die Befehle funktionieren.)

In diesem Block stehen die ersten acht Programme Ihrer Übungsdiskette, auch der Name des soeben gelöschten ist dabei.

Trotzdem ist dieses Programm tatsächlich gelöscht und erscheint nicht mehr, wenn Sie sich das Directory anzeigen lassen. Vergleichen Sie den Eintrag des gelöschten Programms mit den anderen, fällt auf, daß 3 Byte vor Beginn des Namens bei allen anderen »82« steht (sofern es sich um Programmfiles handelt), bei dem gelöschten aber »00«. Die Reparatur ist nun denkbar einfach: Sie brauchen lediglich die »00« mit »82« zu überschreiben. Einen Haken hat die Sache allerdings noch. Beim SCRATCHEN sind die vom Programm belegten Blöcke in der BAM als frei gekennzeichnet worden und jeder neue Eintrag würde das als gelöscht gekennzeichnete File endgültig überschreiben. Um das zu verhindern, müssen Sie nach erfolgter Reparatur die Diskette validieren (von Basic aus mit Kommando: OPEN 1, 8, 15, "V"). Dabei wird die BAM neu erzeugt und korrigiert.

Schützen eines Files

Da wir gerade dabei sind, wollen wir unser repariertes gelöschtes File gleich ein für allemal gegen Löschen schützen. Diese Möglichkeit des Diskettenoperationssystems (DOS) ist zwar nicht im Handbuch beschrieben, funktioniert aber trotzdem ausgezeichnet. Laden Sie dazu nochmals die erste Seite des Directory mit R 12 01 und ändern Sie die »82« vor dem Fileeintrag in »C2«. Geben Sie »W« ein, um die Änderung auf Diskette zu schreiben. Verlassen Sie nun SMON mit »X« und lassen Sie sich ein Directory anzeigen. Das geschützte File ist mit einem » > « gekennzeichnet. Versuchen Sie nun, dieses Programm mit dem Scratch-Kommando zu löschen. Es geht nicht! Zum »Entriegeln« brauchen Sie nur das »C2« wieder in »82« zu ändern. Der »>« im Directory verschwindet und das File ist nicht mehr geschützt.

Schützen einer Diskette

Wollen Sie eine ganze Diskette vor versehentlichem Löschen oder Formatieren schützen, gibt es die Möglichkeit, die Löschschutzkerbe abzukleben. Es geht jedoch auch anders. Achtung! Die im folgenden beschriebene Prozedur läßt sich nicht mehr rückgängig machen, auch nicht mit dem Disk-Monitor!

Nehmen Sie also eine Diskette, die Sie anschließend »hart formatieren« können (also mit Eingabe einer ID). Starten Sie nun den Disk-Monitor und lesen Sie die BAM mit »R 12 00« ein. Das dritte Byte enthält »41«. Diese »41« ist ein Kennzeichen für das DOS der 1541- oder 4040-Floppy. Ändern Sie diese Bytes durch Überschreiben in »45« und speichern Sie die Änderung mit »W« auf die Diskette zurück. Verlassen Sie nun SMON und versuchen Sie, etwas zu löschen. Ergebnis siehe oben. Versuchen Sie auch, die Diskette »weich«, also zum Beispiel mit OPEN 1,8,15,"N:TEST"
zu formatieren.

Auch das ist jetzt nicht mehr möglich. Aber es kommt noch besser: Starten Sie noch einmal den Disk-Monitor und versuchen Sie, die Änderung durch Zurückschreiben der »41« an Stelle der »45« rückgängig zu machen.

Auch das ist nicht mehr möglich, wir hatten Sie bereits gewarnt! Es bleibt lediglich die Möglichkeit, die Diskette »hart«, zum Beispiel mit OPEN 1,8,15,"N:TEST,TE" zu formatieren. Sollten Sie nun entgegen allen Warnungen doch Ihre Master-Diskette gegen Schreibzugriffe gesichert haben, verraten wir Ihnen ausnahmsweise, wie Sie den Eingriff trotzdem rückgängig machen können. Dazu überlisten wir das DOS des 1541-Laufwerkes, indem wir ihm vorgaukeln, es hätte eine Diskette im Normalformat vor sich. Wir verwenden den Memory-Write-Befehl, mit dem wir in die Speicherstelle 0101 (Zero-Page Adresse) des 1541-RAM einfach ein »A« schreiben. Der CHR$-Code des »A« ist 65, oder in hexadezimaler Schreibweise 41. Erinnern Sie sich? Dieser Wert stand ursprünglich im dritten Byte des Tracks 18, Sektor 0. Mit folgendem kleinen Programm umgehen wir einfach die DOS-Kennzeichnung und wir können die Diskette wieder normal beschreiben. Am sinnvollsten ist es, sofort den SMON zu starten, das vorher in 45 abgeänderte Byte wieder in 41 zu verwandeln und abzuspeichern. Die Diskette kann dann wieder zum Lesen und Schreiben verwendet werden. Hier nun das kleine Programm: 10 OPEN 1,8,15 20 PRINT#1, "M-W"CHR$(1)CHR$(1)CHR$(1)CHR$(65) 30 CLOSE1

Ändern des Diskettennamens oder der ID

Wir haben bereits oben gesehen, daß in Spur 18, Sektor 0 einer Diskette etwa in der Mitte der Diskettenname gespeichert wird. Dieser Name kann durch einfaches Überschreiben geändert werden; er darf bekanntlich bis zu 16 Zeichen enthalten. Hat Ihr neuer Name weniger Buchstaben als der alte, müssen Sie die Lücken mit »A0« und nicht mit »20« als Leerzeichen ausfüllen. Dies gilt vor allem, wenn Sie mit dieser Methode Filenamen ändern wollen. Das geht natürlich im Prinzip genauso wie eben beschrieben. Hinter dem Diskettennamen ist in Spur 18, Sektor 0 die ID abgelegt. Sie wird beim Formatieren vor jeden Sektor in einen sogenannten Header geschrieben und dient dem DOS zur Identifikation der Diskette. Zusätzlich wird sie noch in der BAM gespeichert, damit sie beim Laden eines Directory mit angezeigt werden kann. Nun ist es grundsätzlich nicht möglich, die ID im Header eines Sektors ohne Formatieren zu ändern, wohl aber die Eintragung in der BAM und damit die ID, die im Directory angezeigt wird. Genau wie beim Namen ist dies durch einfaches Überschreiben in der BAM möglich.

Ändern eines Filetyps

Wenn Sie einmal versucht haben, ein sequentielles File, etwa eine Datei, mit LOAD zu laden, werden Sie gemerkt haben, daß dies nicht möglich ist. Das DOS behauptet einfach, ein solches File existiere nicht und der Rechner meldet »FILE NOT FOUND«. Viele Spiele zum Beispiel legen die »Hall of Fame« oder Highscore-Liste als sequentielle Datei ab. Mit dem Disk-Monitor ist es nun aber möglich, den Filetyp im Directory zu verändern. Erinnern Sie sich an die »82«, die im Directory vor jedem Filenamen steht. Bei sequentiellen Files steht dort »81«. Was zu tun ist, werden Sie sich denken können. Na klar, die »81« wird in »82« geändert, und schon ist die Datei ohne weiteres ladbar, natürlich wieder erst nach dem Zurückschreiben mit »W«.

Sinnvoll ist dies natürlich nur von SMON aus (mit Eingabe einer Ladeadresse). Mit »M« oder »K« können Sie dann die Datei ansehen und natürlich auch ändern. Vergessen Sie nicht, die geänderte Datei nach dem Zurückschreiben wieder in ein sequentielles File zu verwandeln. Verblüffen Sie Ihre Freunde doch mal mit einem auf diese Weise »errungenen« Highscore. Die Anerkennung Ihrer Umwelt ist Ihnen sicher.

Ändern der Startadresse eines Programms

Wir haben uns bisher auf Manipulationen in der BAM oder im Directory beschränkt. Wollen wir in einem Programm selbst Änderungen vornehmen, müssen wir etwas tiefer in die »Geheimnisse der Floppy« eindringen. So ist es bisweilen interessant, die Startadresse eines Maschinenprogramms zu kennen oder zu ändern. Dazu gehen wir folgendermaßen vor: Zunächst suchen wir mit »R 12 01« und eventuell weiteren Folgesektoren (12 04,12 07…) den Fileeintrag im Directory. Die beiden Bytes hinter der »82« direkt vor dem Programmnamen geben an, in welcher Spur und in welchem Sektor das Programm startet. Wenn dort zum Beispiel »0A 04« steht, beginnt das Programm in Spur 10, Sektor 4. Lesen Sie nun diesen Block mit »R 0A 04« ein. Die ersten beiden Bytes dieses Blocks zeigen auf den nächsten Block des Programms, die beiden nächsten Bytes enthalten die Startadresse in der üblichen Low-Highbyte-Reihenfolge. Zum Ändern der Startadresse überschreiben Sie die Bytes mit der neuen und speichern den Block mit »W« auf die Diskette zurück.

Die Zusammenarbeit mit SMON

Mit all diesen Beispielen sind die Möglichkeiten des Disk-Monitors noch lange nicht erschöpft. Sie sollten Ihnen als Anregung für eigene Experimente dienen. Üben Sie aber unbedingt so lange, bis sie alle Kommandos aus dem »FF« (oder dezimal 255) beherrschen. Sie ersparen sich damit unnötigen Ärger und durchweinte Nächte. Besonders interessant ist es, von SMON aus auf den Puffer zuzugreifen und die SMON-Befehle auf den Puffer anzuwenden. Erwähnen möchte ich nur die Möglichkeit, Programme für das DOS direkt zu assemblieren und in einem bestimmten Sektor ablegen zu können, die Find-Routinen oder das »K«-Kommando für Textänderungen. Da der Puffer im RAM unter dem Basic liegt, muß Basic in solchen Fällen abgeschaltet werden. Ändern Sie dazu mit dem »M«-Befehl in Speicherstelle 0001 die »37« in »36«.

Haben Sie die Arbeit mit SMON beendet, können Sie mit »Z« in den Disk-Monitor schalten und den Pufferbereich mit »W« (Spur, Sektor) abspeichern.

Die Ausgabe von Diskettenfehlern

Beim Arbeiten mit dem Disk-Monitor werden sämtliche Fehler vom Laufwerk direkt, auch ohne Eingabe von »@«, ausgegeben, zum Beispiel »ILLEGAL TRACK OR SECTOR«, wenn Sie mit »R« einen Block lesen wollen, den es gar nicht gibt. Einen Fehler hat das Programm allerdings, den wir nicht verschweigen wollen. Der letzte Block eines Files enthält als Koppeladresse »00 FF«. Da es einen solchen Block nicht geben kann, »weiß« das DOS, daß es am Ende angelangt ist. Versuchen Sie aber, den nächsten Block (Spur 0, Sektor 255!!) mit »R« zu lesen, erscheint als Fehlermeldung nicht, wie es sein müßte, »ILLEGAL BLOCK OR SECTOR«, sondern »SYNTAX ERROR«. Das ist zwar eigentlich unerheblich, sollte aber erwähnt werden. Der Fehler liegt in der Routine, die unsere Zahleneingaben in das richtige Diskettenformat wandelt. Es fehlte einfach der Platz im Programm für eine »korrekte« Umwandlung, wir mußten uns mit einer »Sparroutine« behelfen.

Abschließend noch ein SMON-Trick, den wir einem aufmerksamen Leser verdanken. Für eine Directory-Ausgabe fehlte der Platz im SMON. Es geht aber hilfsweise so: Laden Sie das Directory zum Beispiel mit >L "$" 8000 an einen freien Speicherplatz. Mit »M« oder »K« können Sie jetzt das Directory »lesen«. Damit sind alle wichtigen Funktionen für den Umgang mit der Diskette im SMON enthalten.

Hinweise zum Abtippen

Mit dem neuen »MSE« dürften nun wirklich keine Fehler beim Abtippen mehr auftreten — nur noch ein letztes Mal, nämlich beim Abtippen von »MSE«. Starten Sie dann MSE und geben Sie als Start- und Endadresse die beiden Zahlen im Kopf des SMON-Listings an, also $CE09 als Start und $CFFA als Ende. Nach Beendigung der Tipperei speichern Sie den fertigen Programmteil auf Diskette oder Kassette ab. Nun müssen wir noch den neuen Teil in SMON »einbinden«. Dazu laden Sie Ihren alten »SMON $C000« und starten ihn. Noch ein Tip an dieser Stelle: Wenn Sie SMON mit »X« verlassen, um ins Basic zurückzuspringen, wird in aller Regel bereits Ihre erste Eingabe von Basic aus mit einem »OUT OF MEMORY ERROR« quittiert.

Beim Laden von SMON setzt das Betriebssystem nämlich die Zeiger für das Basic-Programmende auf das SMON-Ende, also irgendwo in den $C…-Bereich.

Damit ist aber jede weitere Eingabe von Basic-Zeilen unmöglich und führt zu dem oben angegebenen Fehler. Das ist nebenbei auch der Grund, wenn der SMON-Befehl »B« zum Erzeugen von DATA-Zeilen einmal nicht funktionieren will. Abhilfe schafft ein simples »NEW« unmittelbar nach dem Laden von SMON. SMON selbst bleibt dabei unbeeinträchtigt, denn er liegt ja nicht im Basic-Bereich. SMON ist also jetzt ordnungsgemäß geladen und kann mit »SYS 49152« wie gewohnt gestartet werden. Laden Sie nun den neuen Teil mit L "SMON TEIL 5" ohne Eingabe einer weiteren Adresse. Damit steht er automatisch an der richtigen Stelle. Jetzt müssen wir SMON noch klarmachen, daß er über den neuen Befehl »Z« zum Aufruf unseres Disk-Monitors verfügt. Geben Sie dazu M C020 ein, brechen Sie mit STOP ab und ändern Sie die »00« nach »58« (Speicherstelle $C026) in »5A«. Das ist der ASCII-Wert für »Z«. Zum Einbinden der Startadresse des Disk-Monitors geben Sie M C060 ein, unterbrechen mit STOP und ändern die ersten beiden Nullen (Speicherstelle $C061/$C062) in »08 CE«. Die Startadresse ist $CE09, SMON braucht aber bekanntlich die um 1 erniedrigte Adresse in der Form Lowbyte-Highbyte.

Der Disk-Monitor ist damit integriert und der nunmehr komplette SMON kann mit S "SMON $C000" C000 CFFA abgespeichert werden.

Noch einmal: SMON verschieben

Sicher haben Sie nach der Beschreibung im letzten Heft SMON-Versionen für andere Speicherbereiche hergestellt und auch zum Laufen gebracht. Durch den neuen Teil ergeben sich für die Verschiebung einige Veränderungen. Daher beschreiben wir noch einmal, wie sich ein »SMON $9000« herstellen läßt.

  1. Wir beginnen mitW C000 CFFA 9000da SMON jetzt ja etwas länger geworden ist.
  2. Nun folgt die Umrechnung der absoluten Adressen:V C000 CFFA 9000 920B 9FD2
  3. Die Änderung der Einsprungadressen bleibt so wie beschrieben, nur ist jetzt eine Adresse (für »Z«) hinzugekommen.
  4. Bei den Befehlen mit unmittelbarer Adressierung (zum Beispiel LDA #CC) hat sich gar nichts geändert.
  5. Neu hinzugekommen ist aber eine Sprungtabelle für den Disk-Monitor. Ähnlich wie in Punkt 3 beschrieben, müssen Sie sechs Adressen ändern. Geben Sie dazuM CFD8 CFE4ein und überschreiben Sie in jedem 2. Byte das »C« mit »9«.

Das war’s. Wir glauben, wir haben am Anfang dieser Serie nicht zu viel versprochen: Wenn Sie alle fünf Folgen durchgearbeitet haben, liegt Ihnen mit SMON jetzt ein Maschinenmonitor mit wirklich außergewöhnlichen Leistungsmerkmalen vor, der wohl jedem Vergleich standhält

Viele Leser haben SMON zum Einstieg in die Maschinensprache genutzt, und das war auch unser Ziel. Natürlich werden Sie, vor allem wenn Sie noch Anfänger sind, nicht sofort alle Möglichkeiten von SMON ausnutzen können; eine Weile werden Sie mit Disassembler und Memory-Dump vollauf beschäftigt sein. Aber je tiefer Sie mit SMON in die Maschinensprache eindringen, desto mehr werden Sie seine Fähigkeiten zu schätzen wissen.

Wir werden in einer der nächsten Ausgaben der 64’er noch einmal auf Fragen aus dem Leserkreis, die sich bei der Arbeit mit SMON ergeben haben, eingehen. Vielleicht haben Sie auch noch Verbesserungsvorschläge oder Tricks im Umgang mit SMON entdeckt. Haben Sie aber bitte Verständnis, wenn wir nicht auf jede Zuschrift antworten können. Wir haben inzwischen schon mehrere hundert (!) schriftliche oder telefonische Anfragen bekommen, und auch für uns ist die Computerei nur ein Hobby, nicht mehr und nicht weniger.

(N. Mann/D. Weineck/gk)
PROGRAMM : SMON TEIL 5    CE09 CFFB
-----------------------------------
CE09 : A9 07 8D 20 D0 A9 36 85   DB
CE11 : 01 A2 00 BD E4 CF 9D D0   00
CE19 : 02 E8 E0 0D 90 F5 A2 2A   01
CE21 : 20 40 C3 20 CF FF C9 2A   CF
CE29 : F0 F9 A2 06 DD D2 CF D0   D4
CE31 : 11 8E C1 02 8A 0A AA E8   AF
CE39 : BD D8 CF 48 CA BD D8 CF   FD
CE41 : 48 60 CA 10 E7 4C 1F CE   69
CE49 : A9 00 85 FB A9 BF 85 FC   7C
CE51 : 85 FE A5 FB 69 04 85 FD   07
CE59 : 20 FC C3 20 E1 FF F0 0F   EC
CE61 : AD 8D 02 F0 F6 A9 00 85   3B
CE69 : C6 A5 FC C9 C0 90 E3 4C   33
CE71 : 1F CE 20 7E C2 A0 20 A2   C6
CE79 : 00 20 CA C2 20 9A C2 81   79
CE81 : FB 20 39 C4 D0 F3 20 51   43
CE89 : C3 4C 24 CE 20 55 CF AD   9C
CE91 : C1 02 C9 02 D0 03 4C EB   34
CE99 : CE A2 00 BD 00 BF 8D C3   2C
CEA1 : 02 E8 BD 00 BF 8D C4 02   06
CEA9 : 8A 4C CB CE 20 C2 C2 D0   EB
CEB1 : 03 4C 8D CE 20 8D C2 8D   AC
CEB9 : C3 02 20 8D C2 8D C4 02   E7
CEC1 : 20 55 CF AD C1 02 C9 02   8D
CEC9 : F0 20 20 0D CF A2 0D 20   FA
CED1 : C6 FF A0 00 20 CF FF EA   15
CED9 : EA EA EA 99 00 BF C8 D0   E9
CEE1 : F3 20 CC FF 20 BC CF 4C   D7
CEE9 : 49 CE 20 40 CF A2 0D 20   30
CEF1 : C9 FF A0 00 B9 00 BF 20   BD
CEF9 : D2 FF A6 90 D0 03 C8 D0   70
CF01 : F3 20 CC FF A9 32 20 0D   FE
CF09 : CF 4C B6 CF 8D D1 02 AD   71
CF11 : C3 02 20 79 CF 8E D8 02   E5
CF19 : 8D D9 02 AD C4 02 20 79   99
CF21 : CF 8E DB 02 8D DC 02 A2   7B
CF29 : 0F 20 C9 FF A2 00 BD D0   7D
CF31 : 02 20 D2 FF E8 E0 0D 90   E3
CF39 : F5 20 CC FF 4C 8C CF A2   1F
CF41 : 0F 20 C9 FF A2 00 BD F2   DA
CF49 : CF 20 D2 FF E8 E0 08 90   B4
CF51 : F5 4C CC FF A9 0F A8 A2   9A
CF59 : 08 20 BA FF A9 00 20 BD   B6
CF61 : FF 20 C0 FF A9 0D A8 A2   8B
CF69 : 08 20 BA FF A9 01 A2 F1   41
CF71 : A0 CF 20 BD FF 4C C0 FF   1E
CF79 : A2 30 38 E9 0A 90 03 E8   82
CF81 : B0 F9 69 3A 60 20 8C CF   A8
CF89 : 4C B6 CF A9 00 85 90 20   08
CF91 : 51 C3 A9 08 20 B4 FF A9   2A
CF99 : 6F 20 96 FF 20 A5 FF C9   81
CFA1 : 30 D0 06 4C AB FF 20 A5   CB
CFA9 : FF 20 D2 FF C9 0D D0 F6   A3
CFB1 : 20 AB FF 68 68 20 BC CF   CE
CFB9 : 4C 1F CE A9 0D 20 C3 FF   5E
CFC1 : A9 0F 4C C3 FF A9 06 8D   FE
CFC9 : 20 D0 A9 37 85 01 4C D6   E2
CFD1 : C2 3A 52 57 4D 58 40 72   AD
CFD9 : CE AC CE AC CE 48 CE C5   3C
CFE1 : CF 85 CF 55 31 3A 31 33   21
CFE9 : 20 30 20 31 38 20 30 30   F5
CFF1 : 23 42 2D 50 20 31 33 20   23
CFF9 : 30 44                     32
Listing SMON. Zur Eingabe benötigen Sie den MSE, den Sie auch in dieser Ausgabe finden.
PDF Diesen Artikel als PDF herunterladen
Mastodon Diesen Artikel auf Mastodon teilen
← Vorheriger ArtikelNächster Artikel →