HESMON
HESMON / HES MON 64 | |
---|---|
Entwickler | Terry M. Peterson |
Firma | HES |
Verleger | HES |
Release | 1982 |
Lizenz | Vollversion |
Plattform(en) | C64, VC-20 |
Genre | Maschinensprachemonitor |
Steuerung | |
Medien | |
Sprache(n) | |
Information | inoffiziell: verschiedenen Versionen für Speicherbereiche, bswp. $0800, $C000 |
HESMON (auf dem Titelblatt der Anleitung auch HES MON 64) ist ein Maschinensprachemonitor der Firma HES. Der Monitor bietet Assembler- und Disassembler-Funktionalität und einen eingebauten Debugger inklusive Breakpoints und Einzelschrittmodus.
Laut dem Entwickler ist HESMON eine Weiterentwicklung der vorhandenen PD-Maschinensprachemonitor "Micromon" und "Extramon", die es für die Commodore PET/CBM-Computer gibt, allerdings deren Funktionalität nicht 100%ig auf den C64 angepasst sind.[1] Es ist auch eine Steckmodul-Version für den VC-20 erschienen.
HESMON wurde als Steckmodul verkauft mit einem 8 KByte ROM, wobei HESMON den Speicherbereich von $8000-8FFF (ca. 4 KByte) belegt und der restliche Bereich ($9000-9FFF) frei ist.
Es gibt von verschiedenen Szene-Gruppen Programmversionen für verschiedene Speicherbereiche.
Beschreibung[Bearbeiten | Quelltext bearbeiten]
Übersetzter Auszug der Cover-Rückseite des Steckmoduls:
Verschiedene Vorteile, die es in anderen Maschinensprachmonitore bisher noch nicht gibt:
- Vorwärts- und Rückwärtssuche bei Diassembler, Hex & ASCII-Speicheranzeige
- Leichte Behebung von Programmierfehlern
- Memory-Test, zeigt defekte Speicherchips an
- Direkter Ausdruck des Speichers auf dem Drucker oder in Datei auf Diskette
- Kompatibel mit BASIC (benötigt keinen Schutz der Zeropage)
Weitere Features sind:
- Einfache Assembler-Übersetzung von 6502/6510 Mnemonics in Maschinenesprache
- Setzen von Breakpoints, für leichteren Debugging (Quicktrace)
- Speichervergleich von zwei verschiedenen Speicherbereiche
- Diassembler: Maschinensprache in Mnemonics umwandeln
- Hunt: Suche von Speicherstellen mit den entsprechende Byte-Suchfolge.
- Divert Output: Ausdruck des Speichers auf Drucker oder als Datei auf Diskette
- Verify: Programm-Speicher (RAM) abgleichen.
- Walk: Ausführung von Maschinenspracheprogramme in Einzelschritten
Die einzige Einschränkung bei der Nutzung der HESMON-Steckmoduls ist die Nutzung von RS-232-Dateien und -Programme und sehr großen BASIC-Programme, da HESMON 33 Byte im Bereich des Stacks ($120-$141) als Variablenspeicher benutzt.[2]
Befehlsübersicht[Bearbeiten | Quelltext bearbeiten]
Übersetzter und bearbeiteter Kurzauszug der Assembler-Befehle aus der offiziellen Anleitung:[3]
(Hinweis: Optionale Parameter sind in eckige Klammern [..] angegeben!)
A 1111 MMM OOOOO - Assembler: Eingabe von Assembler-Code mit Speicheradresse (1111), Mnemonics (MMM, wie bspw. JSR, LDA, usw.) und Opcode (OOOOO) B 1111 2222 - Programmabbruch setzen (Breakpoint Set) für C 1111 2222 3333 - Speichervergleich (Compare Memory Block) D 1111 [2222] - Anzeige des Speicherbereichs als Mnemonics mit Opcode (Disassembler) E 1111 2222 3333 4444 5555 [W] - External Relinker F 1111 2222 33 - Speicherbereiche mit Byte-Folge (33) ausfüllen (Fill Memory Block) G [1111] - Sprung an Speicheradresse zum Ausführen eines Maschinenspracheprogramms (Go) H 1111 2222 33 44 55 .. .. oder H 1111 2222 "XXXXX..." - Byte- oder Zeichenfolge im Speicher suchen (Hunt) I 1111 [2222] - Speicher anzeigen als ASCII-Zeichen (Interpret Memory) L "name" 11 - Programm oder Daten von Datenträger wie Datatsette oder Diskette absolut in den Speicher laden (Load Program) M 1111 [2222] - Speicher anzeigen in Hexadezimalen Zahlen (Memory Display) N 1111 2222 3333 4444 5555 [W] - New Locator O [11 [22 ["name"]]] - ähnelt dem Ausruck analog dem BASIC-Befehl [[[CMD]]; optional mit Dateiname auf Diskette abspeicher (Output Divert) P [11 [22 ["name"]]] - nur aktuellen Bildschirm ausdrucken; mit Dateiname Ausdruck auf Diskette abspeichern (Print Screen) Q [1111] - Weiterausführung des Programms nach einem Breakpoint (Quicktrace) R - Zeigt das Register in Form PC IRQ SR AC XR YR SP an (Register Display) S "name" 11 2222 3333 - Absoluter Speicherbereich als Programm auf Datenträger (01 für Datasette, 08 für Diskette) abspeichern (Save Program) T 1111 2222 3333 - Speicherbereich verschieben (Transfer Memory Block) U - Farb-RAM testen (Test Color RAM) V 1111 2222 - Arbeitsspeicher prüfen (Verify RAM) W [1111] - Ablauf eines Programms in Einzelschritten, bswp. für die Fehlerbehebung, Anzeige als Register und Mnemonics mit Opcode (Walk) X[C] - HESMON nach BASIC verlassen entweder über Warmstart oder Kaltstart (Exit to BASIC) - Reaktivierung mit der Taste RESTORE # 11111 - Dezimalzahl als Hexadezimalzahl umrechnen (Decimal to Hex) $ 1111 - Hexadezimalzahl in Dezimalzahl umrechnen (Hex to Decimal) + 1111 2222 - Berechnung Addition zweier Hexadezimalzahlen ohne Vorzeichen (Hex Addition) - 1111 2222 - Berechnung Subtraktion zweier Hexadezimalzahlen ohne Vorzeichen (Hex Subtraction) : 1111 22 33 44 55 66 77 88 - Speicherbereich direkt verändern (Memory Modify) ; 1111 2222 33 44 55 66 77 - Register-Inhalt in Form PC IRQ SR AC XR YR SP direkt verändern (Register Modify) , 1111 11 [22 [33]] XXXX - Disassembler-Speicherbereich direkt verändern (Disassembly Modify)
Hinweis: Bei der Anzeige der Speicherbereiche kann mit den Cursor-Tasten weiter- und zurückgescrollt werden!
Weblinks[Bearbeiten | Quelltext bearbeiten]
- HESMON-Anleitung auf archive.org
- HESMON-Anleitung bei commodore.software (PDF)
- CSDb Alle Einträge
Quellen