HESMON

Aus C64-Wiki
Zur Navigation springenZur Suche springen
HESMON / HES MON 64
Startbildschirm
Entwickler Terry M. Peterson
Firma HES
Verleger HES
Release 1982
Lizenz Vollversion
Plattform(en) C64, VC-20
Genre Maschinensprachemonitor
Steuerung Icon tastatur.png
Medien Icon cartridge.png
Sprache(n) Sprache:englisch
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]

HESMON-Version, die ab den Speicherbereich C000 liegt.

Ü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]


Quellen

  1. Terry Peterson: "HES MON 64 - Instruction Manual", S.15; Human Enigineered Software, 1982 Sprache:englisch
  2. Terry Peterson: "HES MON 64 - Instruction Manual", S.15; Human Enigineered Software, 1982 Sprache:englisch
  3. Terry Peterson: "HES MON 64 - Instruction Manual", S.16; Human Enigineered Software, 1982 Sprache:englisch