The Compass page

Compass is an extensive MSX-assembler which consists of an Editor, Monitor, Debugger/Disassembler and, of course, an Assembler.

From a review in the old Dutch MSX Computer/Club Magazine:
'The program that every MSXcoder should have!! This is not a joke!'

History

The COMPjoetania ASSembler was made by Remo Jongeneelen, Eric van Beurden and David Heremans. Version 1.0 and version 1.1 were released, but they still contained some nasty bugs. Everybody was expecting a new version 2.0...BUT...then it happened...

The Dutch members of Compjoetania decided to stop programming for the MSX. Nevertheless their Belgian member, David -who had programmed the Compass Debugger-, wanted to continue.

David, who had already gathered some members for the new group, had asked Remo for the sources of Compass, because he had only the sources of the debugger which he had made. That was of course no problem for Eric and Remo. They would give the sources as soon as possible. Unfortunately this took way too long...

So one summer Jon started to disassemble the 1.1 version using Compass 1.1!
A 1.2beta FULLY-FUNCTIONAL promoversion was finished in time for the MCCM-CDROM. Unfortunately MCCM used a wrong version of our promo. This version contains a bug on Turbo-R: each interrupt, the CPU-mode is switched to R800-ROM. Believe it or not, but this bug is caused by only one wrong bit in the code!

Available versions

At the fair in Tilburg (April 25, 1998) C-TNG released the final 1.2 version. In fact, we were planning to release Compass #2.0 a few months later in September with a lot of extras! (supersmart disassembly, I/O monitor, ...) Unfortunately ten years later this still isn't released. There is a beta of 2.0 that Jon has developed but it isn't sufficiently cleaned up for public release.

Compass #1.2 was sold for 700 Belgian Francs or 40 Dutch Guilders. People who already had an original Compass version enjoyed a 50% reduction!!! All buyers of, or upgraders to #1.2 would get #2.0 for free.

Compass #1.2

Generic Features

  • Compass is an extensive MSX-assembler which consists of an Editor, Monitor, Debugger/Disassembler and of course an Assembler.
  • Compass requires a MSX2 with at least 80kB of mapped memory, but for normal use we recommend a mapper of at least 256kB.
  • Compass supports: DOS 2.xx, R800, Memman, several memorymappers (also under DOS1)
  • Installable on hard disk
  • All functions can be reached in pulldownmenu's or by keyboard shortcuts
  • Memory resident, you can switch between MSX-DOS/BASIC and Compass at will (even in the middle of a disk access or when in a graphical screenmode!)

ASSEMBLER/EDITOR

  • editing of 4 sourcebuffers at the same time, each 256kB
  • labellenght from 6 to 20
  • assembly to:
    • memory
    • disk
    • TSR (directly to disk, without a linker!)
    • relocatable file
  • Labellist
  • Errorlist, will save all errors
  • All known hex. and bin. id's
  • Extensive search/replace function
  • CPU registeredit
  • possibility to start compiled programs for testing
  • many blockfunctions
  • (recursive) macro's
  • conditional assembly

The main text editor

Assembler in action


MONITOR

  • Realtime updated display
  • Many functions like Peek/Poke/Fill/Move
  • Extensive search and compare function

The monitor is updated constantly so you can see the memory change due to interrupt routines

The menu's that can be used when in the monitor


DEBUGGER/DISASSEMBLER

  • 15 breakpoints
  • Stackviewer to control the stack
  • Mini-monitor (can be linked to the cursor or Program Counter)
  • displaying RST as normal or in MSXmode
  • I/O ports can be protected
  • Interception of slotswitching
  • Disassembly to a sourcebuffer

The menu's that can be used when in the debugger

And then some more

You have full control on the which memory is used by compass.

Compass will show you the current layout of the machine on which it is running.

In the main install you can configure colors/ hex/oct pre/postfixes mouse usage ...

The calculator can use the values attributed to the labelnames during compile.
The height on the screen can easily be controlled using the cursor keys.

here is the disk menu in action when loading a file

Beside the compass program itself, one can find some extra files on the disk.
These were the memman program, the pma extractor, the manual and some documentation that is useful when programming for the MSX system.
For your convenience I put the documentation files online here (with exception of the turbo-r documentation, since I seem to have a corrupted pma file here).

Be warned: Some of the info files presented here are written in Dutch, no English translation is available.

bios.txt
c12manua.txt
compassv.txt
diskvari.txt
disk_rom.txt
dos2var.txt
hoe-rel.txt
io_poort.txt
mathpack.txt
msxdos_1.txt
msxdos_2.txt
msxhooks.txt
systemvr.txt

Compass #2.0 - Some of the things planned to be added to #2.0

  • Totally new memorymanagement
  • Virtual Memory Use
  • Larger sourcebuffers
  • I/O monitor
  • Totally new ASM-format for faster assembly
  • Faster compiling and searching capabilities