Ab Version 1.3 gibt es die Möglichkeit, den Speicher ab einer gewählten
Adresse anzusehen, den Monitor
. Dieser erscheint immer dann, wenn
ein Objekt mit einer Adresse geklickt wurde und dieses nicht modifiziert
werden kann. In Version 1.2 wurde an dieser Stelle nur kurz
gebeept
.
Ich habe eine Speicherliste eingebaut, deren Aufbau ich der Dokumentation zum Programm ‘Enforcer’ entnommen habe. Bevor der Monitor erscheint, wird eine Adreßüberprüfung vorgenommen, ob die gewünschte Adresse überhaupt zulässig ist. Ist sie es nicht, erscheint ein Systemrequester mit allen erkennbaren Attributen des anvisierten Speicherbereichs. Das Auslesen eines unzulässigen Speicherbereiches kann zu einem ‘Enforcer’-Hit führen, wenn dieser ausgelesen wird.
Das Monitorfenster besteht aus einem Anzeige-ListView und mehreren Gadgets.
In diesem Gadget erscheint zur Information noch einmal die Zeile im
Haupt-Listview von ‘RSYS’. Dahinter in []
der Typ des
Speichers, wie er aus der implementierten ‘Enforcer’-Liste der
Speicherbereiche ausgelesen wurde.
Hier steht die Startadresse, ab der der Speicher angezeigt wird.
Hier steht die aktuelle Adresse, ab der der Speicher angezeigt wird. Der Speicher wird in 512-Byte-Blöcken angezeigt.
Hiermit kann die Art der Anzeige ausgewählt werden.
Hier steht formatiert der aktuell formatierte Speicherinhalt. Der Speicher wird in 512-Byte-Blöcken angezeigt.
Mit diesen Gadgets kann der Speicherbereich aktualisiert werden. Das erste Gadget zeigt den vorhergehenden, das dritte den nachfolgenden und das zweite den Startbereich des Speichers an.
Mit diesen Gadgets kann der angezeigte Speicherbereich auf verschiedene Arten in eine Datei gespeichert werden. Hier ein paar Beispiele:
Als C-Code:
/* RSys-C-Code Generator Memory at 0x00203672 */ ULONG RSysData[] = { 0x00000000, 0x00000000, 0x000000F8, 0xF7C80020, 0x362400F8, 0xF7740000, 0x00000000, 0x00000000, 0x00F8F7C8, 0x00203624, 0x00F8F78A, 0x00000000, 0x00000000, 0x000000F8, 0xF7C80020, 0x362400F8, 0xF7A0002E, 0x4FBC4EF9, 0x00FC775C, 0x4EF900FC, 0x77340020, 0x63880020, 0x36240800, 0x00FC76D6, 0x0600000C, 0x00320025, 0x00010000, 0x00000000, 0x00000000, 0x0033CE18, 0x0033CE18, 0x00000000, 0x00000000, 0x00000000, 0x4EF900FA, 0x3FE24EF9, 0x00FA3DCE, 0x4EF900FA, 0x15DA4EF9, 0x00FA4036, 0x4EF9002E, 0x8E0C4EF9, 0x00FA15A8, 0x4EF900FA, 0x14604EF9, 0x00FA1258, 0x4EF900FA, 0x14B24EF9, 0x00FA12AA, 0x4EF900FA, 0x3D384EF9, 0x002E8DD4, 0x4EF9002E, 0x8DEA4EF9, 0x00FB3BAC, 0x4EF900FB, 0x3BC24EF9, 0x002E8E1C, 0x4EF9002E, 0x8E344EF9, 0x00FA124A, 0x4EF9002E, 0x8DF44EF9, 0x00FA122C, 0x4EF900FA, 0x6B8C4EF9, 0x00FA429E, 0x4EF900FA, 0x41624EF9, 0x00FA53A0, 0x4EF900FA, 0x4F784EF9, 0x00FA6B98, 0x4EF900FA, 0x6B804EF9, 0x00FA6B74, 0x4EF900FA, 0x114C4EF9, 0x00FA1848, 0x4EF900FA, 0x18484EF9, 0x00FA0E70, 0x4EF900FA, 0x10884EF9, 0x00FA2D7C, 0x4EF900FA, 0x2D0E4EF9, 0x00FA2C90, 0x4EF900FA, 0x0E584EF9, 0x00FA32CA, 0x4EF900FA, 0x68F84EF9, 0x00FA0BD0, 0x4EF900FA, 0x0BB84EF9, 0x00FA0B7C, 0x4EF900FA, 0x0ADE4EF9, 0x00FA0ABC, 0x4EF900FA, 0x306E4EF9, 0x00FA0E40, 0x4EF900FA, 0x096C4EF9, 0x00FA095C, 0x4EF900FA, 0x2E0A4EF9, 0x00FA2E26, 0x4EF900FA, 0x2CDC4EF9, 0x00FA2D5A, 0x4EF900FA, 0x2BC04EF9, 0x00FA2AC2, 0x4EF900FA, 0x07FC4EF9, 0x00FA07DC, 0x4EF900FA, 0x3C1E4EF9, 0x00FA3BF4, 0x4EF900FA, 0x3C884EF9, 0x00FA03D0, 0x4EF900FA, 0x0A084EF9, 0x00FA097C, 0x4EF900FA, }; /* End of Code */
Als Hex:
---------------------------------------------- Memory at 0x00203672 ---------------------------------------------- 000: 00 00 00 00 00 00 00 00 00 00 00 F8 F7 C8 00 20 010: 36 24 00 F8 F7 74 00 00 00 00 00 00 00 00 00 00 020: 00 F8 F7 C8 00 20 36 24 00 F8 F7 8A 00 00 00 00 030: 00 00 00 00 00 00 00 F8 F7 C8 00 20 36 24 00 F8 040: F7 A0 00 2E 4F BC 4E F9 00 FC 77 5C 4E F9 00 FC 050: 77 34 00 20 63 88 00 20 36 24 08 00 00 FC 76 D6 060: 06 00 00 0C 00 32 00 25 00 01 00 00 00 00 00 00 070: 00 00 00 00 00 33 CE 18 00 33 CE 18 00 00 00 00 080: 00 00 00 00 00 00 00 00 4E F9 00 FA 3F E2 4E F9 090: 00 FA 3D CE 4E F9 00 FA 15 DA 4E F9 00 FA 40 36 0A0: 4E F9 00 2E 8E 0C 4E F9 00 FA 15 A8 4E F9 00 FA 0B0: 14 60 4E F9 00 FA 12 58 4E F9 00 FA 14 B2 4E F9 0C0: 00 FA 12 AA 4E F9 00 FA 3D 38 4E F9 00 2E 8D D4 0D0: 4E F9 00 2E 8D EA 4E F9 00 FB 3B AC 4E F9 00 FB 0E0: 3B C2 4E F9 00 2E 8E 1C 4E F9 00 2E 8E 34 4E F9 0F0: 00 FA 12 4A 4E F9 00 2E 8D F4 4E F9 00 FA 12 2C 100: 4E F9 00 FA 6B 8C 4E F9 00 FA 42 9E 4E F9 00 FA 110: 41 62 4E F9 00 FA 53 A0 4E F9 00 FA 4F 78 4E F9 120: 00 FA 6B 98 4E F9 00 FA 6B 80 4E F9 00 FA 6B 74 130: 4E F9 00 FA 11 4C 4E F9 00 FA 18 48 4E F9 00 FA 140: 18 48 4E F9 00 FA 0E 70 4E F9 00 FA 10 88 4E F9 150: 00 FA 2D 7C 4E F9 00 FA 2D 0E 4E F9 00 FA 2C 90 160: 4E F9 00 FA 0E 58 4E F9 00 FA 32 CA 4E F9 00 FA 170: 68 F8 4E F9 00 FA 0B D0 4E F9 00 FA 0B B8 4E F9 180: 00 FA 0B 7C 4E F9 00 FA 0A DE 4E F9 00 FA 0A BC 190: 4E F9 00 FA 30 6E 4E F9 00 FA 0E 40 4E F9 00 FA 1A0: 09 6C 4E F9 00 FA 09 5C 4E F9 00 FA 2E 0A 4E F9 1B0: 00 FA 2E 26 4E F9 00 FA 2C DC 4E F9 00 FA 2D 5A 1C0: 4E F9 00 FA 2B C0 4E F9 00 FA 2A C2 4E F9 00 FA 1D0: 07 FC 4E F9 00 FA 07 DC 4E F9 00 FA 3C 1E 4E F9 1E0: 00 FA 3B F4 4E F9 00 FA 3C 88 4E F9 00 FA 03 D0 1F0: 4E F9 00 FA 0A 08 4E F9 00 FA 09 7C 4E F9 00 FA
Der C-Code kann unmittelbar in C-Programmen eingebunden werden.
This document was generated on October 27, 2024 using texi2html 5.0.