User Tools

Site Tools


hexmon

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Next revision
Previous revision
hexmon [2026/02/22 22:35] – created appledoghexmon [Unknown date] (current) – removed - external edit (Unknown date) 127.0.0.1
Line 1: Line 1:
-= 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