Introduction

BertMon is a complete monitor system for the Motorola 6809 processor and derivates. It supports the complete instruction set of the HM6309 processor. Its structure is modular, existing of a core monitor with limited command set, and optional modules. The existing modules are an extended monitor command set, a disassembler and a debugger.

The monitor is the result of many years of work, and is build with extension in mind. The memory range $C000-$DFFF can be used for extensions and when the correct format is used, its command routines are then automatically included in the command set.

The monitor also recognises the used processor, and modifies it behaviour for some commands. Like the P command and the disassembler.

Core Monitor

The commands of the core monitor are:

The core monitor resides in memory from $F800 to $FFFF.

Extended Monitor

The commands for the extenden monitor are:

The extended monitor resides in memory from $F000 to $F7FF.

Disassembler

The disassembler is started with 'D'. Its subcommands are:

The disassembler resides in memory from $E000 to $E7FF.

Debugger

The debugger is hardware based and for both RAM and ROM based code. It requires a hardware modification of the board, directly connecting the VIA /INT pin to the processor /NMI pin. The code runs in its native context but considerably slower!

Optionally four LEDs can be connected to VIA pins; Red at CB2, Green at PB7, Yellow at PB2, Blue at PB3.

PA7 is used for the Safe mode button. A short to ground skips initializing the extra modules.

The debugger is started with 'N'. Its subcommands are:

The debugger module resides in memory from $E800 to $EAB3. It uses Timer 1 of the VIA.

Help

The help module contains the command that prints the help text for all core and extended monitor commands. Its one command is '?'.

The help module resides in memory from $EB00 to $EFFF.

Extendability

The core monitor has the ability to scan memory from $C000 to $F7FF for modules adding commands. At startup each page boundary is scanned for the module signature and adds the commands in the following list.

Memory map

The memory map is based on the hardware the monitor is developed on, the Brutech B.E.M-3X or B.E.M-4C. With the source available, it can be adapted to other hardware, assuming enough RAM and ROM is provided.

The BEM-boards were created for embedded applications in the 1980's, so do not attempt to maximize on RAM.

$F800-$FFFF Monitor core
$F000-$F77C Monitor extension
$EB00-$EF21 Help
$E800-$EAB3 Debugger
$E000-$E7FF Disassembler
$C000-$DFFF Room for further extensions
$A000-$BFFF I/O space
$8000-$9FFF Monitor work space
$0000-$7FFF User RAM

Portability

The monitor can be assembled with A09 cross assemblers, I used this one: A09 whichI try to maintain myself.

The hardware dependencies of the monitor are RAM at $8000-$9FFF, a SY2661 USART at $BE0x. A 6522 VIA is at $BC0x for the BEM-3 and at $BF0x for the BEM-4. The monitor supports both.

Downloadables

Most documentation is written in dutch, an attempt will be made to translate the main parts to english, to reach a wider audience. The monitor/debugger/disassembler combo is a great way to learn the 6809/6309 architecture and instruction set.


Last updated: 2026-11-04

e-mail