User Tools

Site Tools


hexmon

This is an old revision of the document!


HEXMON

This is a concise tutorial on how to use HEXMON (type “MON” at the prompt).

wozmon is a tiny but elegant monitor program Steve Wozniak wrote for the original Apple-1 computer. It lets you examine memory, change memory, and run machine-language programs directly from the keyboard. This tutorial is designed to teach you how to use HEXMON, which is a very similar program.

All addresses and data values are in hexadecimal (no $ prefix needed). Press RETURN (or Enter) after each line to execute it. The prompt for the Apple-1 was a backslash \, sometimes shown as a @ in emulators/replicas. The prompt was changed to a * for the Apple II and that is the convention that HEXMON uses.

Starting the Monitor

  • Power on the SD-8516 / VC-3.
  • After you hear the chime, you can type MON.
  • You should see *. The system is now ready for input.

1. Examining Memory (Display contents)

Single location: Type the 4-digit address and press RETURN Example:

  0030

This might respond 0030: A9 i.e. it shows the current byte at address $0030.

Range of locations: Use the dot operator . between start and end address.

Example:

  200.2FF

This dumps bytes from $0200 to $02FF, 8 bytes per line with address prefix and printable display.

2. Writing to Memory

Use the entry operator : after an address, followed by data bytes. Bytes are stored starting at the location you have specified.

Write-One

Example:

  1000:A9

This will store $A9 into memory location $1000.

Write-List Example:

  200: A9 00 20 EF FF

Stores those 5 bytes starting at address $0200.

3. Running a Program

Type the start address followed by R (Run).

Example:

  1000R

This will call the program at $1000 and begin executing code. If the program issues a RET, it will return to HEXMON. You could then quit HEXMON normally by typing Q.

It's worth noting you don't need HEXMON to run a program. If a program is assembled starting at $030100, typing SYS by itself on a line will run it. Otherwise you can type SYS $(address) at the command prompt to run a machine language program.

Example Program

Example “Hello World” program:

  C000: 00 34 10 C0 00 00 20 66
  C008: 86 05 00 20 64 86 05 85
  C010: 48 45 4C 4C 4F 20 57 4F
  C018: 52 4C 44 21 00 00 00 00

Type this in and then type

  C000R

to run the program!

Summary of Main Commands

Command format Purpose Example
—————————–————————————–————————–
addr Show one byte `C100`
start.end Show range `E000.EFF`
addr1 addr2 addr3… Show several locations/ranges `FF00 FF10.FF1F` (*)
addr:data data data… Store bytes starting at addr `1000:EA A9 00`
:data data… Store continuing from last addr `:01 02 03` (*)
addrR Run code at addr `E000R` (start BASIC)

Note: Features marked with * are not implemented yet.

Now you have everything you need to know to use HEXMON!

Many people still use it today because of its simplicity and elegance.

Have fun exploring SD-8516 machine code! If you want more example programs that can be loaded via HEXMON, please see:

hexmon.1771799756.txt.gz · Last modified: by appledog

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki