You probably want to edit the top-level Makefile to exclude
subdirectories for architectures you don't want/need (SUBDIR
variable). Typing "make all" will then build the Monitor for all
selected architectures, "make clean" will delete object files and
"make depend" will rebuild the dependency files. The Makefile has
been tested with BSD make and GNU make.


The Monitor currently runs on three architectures: the VPort-50, a small
single-board computer built around the NEC V50 processor (Intel 80186
compatible), the PDP-11 (I tested on a real PDP-11V03, some OEM 11/23
and on P11, which emulates a J-11 processor) and on the Philips LPC2xxx
microcontroller (ARM7TDMI-S based, developed and tested on Keil MCB2100
evaluation board with an LPC2129). Adding more architectures should not
be too hard.

The VPort-50 version of the Monitor heavily manipulates the data segment
register, this is necessary because bcc assumes that code, data and
stack are located in the same segment, which is kind of silly if the
code and constant data are supposed to be located in an EPROM.

The LPC2xxx version is able to write to the chips internal flash memory.
To work around the lack of a breakpoint instruction a special SWI
instruction is used instead. A trace emulation routine predicting the
Program Counter after execution of the next instruction and using
breakpoints is used to work around the lack of a real processor trace
mode. 


To build for the VPort-50, you will need the Netwide Assembler (NASM)
and some cc which understands K&R syntax and generates code for a
8086. I use Bruce Evans' bcc, the code is written to work around its
deficiencies. To use a different compiler you will at least have to
change the Makefile, but it is quite possible that changes in the code
are necessary, too.

To build for the PDP-11, you will either have to build on some ancient
PDP-11 Unix system, use some cross-compiler, or use the 2.11BSD
development tools with an emulator like Apout, which is what I did.

For the LPC2xxx port I use the NetBSD toolchain that is intended for
cross-building NetBSD/evbarm (gas, gcc, gld, ...).


The Monitor is licensed under the terms and conditions of the GNU GPL
which is included in the file COPYING. The assembly language startup
code and the disassembler for the PDP11 were inspired by antique UNIX
code.

Hans Rosenfeld, May 2006
rosenfeld@grumpf.hope-2000.org
