This was one of the first
packages available for the
Amstrad as it was converted
quite quickly from the Spectrum version, unfortunately
losing macros on the way.
The documentation is 56 pages long and comes ring
bound in an Amsoft box with the program in two parts. The monitor is some 8k
long and the assembler is about 9k. Both are relocatable
and can be called from each other if they are both in
memory. The manual is well written with worked examples of tracing a routine with the
monitor and writing one with Gene, the assembler.
Gena has an integral line editor which includes most
options you would expect. delete whole line or character,
restore line and insert and
overwrite modes.
You can only list down through a file using the L command either from the start or from a line number as in Basic.
The only way you can get to a label is to use the Find command although the U command will tell you what the last line number in the file is.
A list of the available commands and their uses can be called up with the H command.
Gena will load most types of near-Ascii files - with or without line numbers - and put them in the correct format.
It will save out pure Ascii without line numbers if you want to use another editor. Mnemonics are formatted after entry and spaces turned into Tabs to save space. Files can be included from
tape or disc to leave more memory which gives you about 25k for object code depending on the size of your symbol table, and Gena supports conditional assembly.
External commands are supported such as |DIR, *.SRC to list all your source files.
Calling Maxam's |CAT for some reason returns you to Basic. I don't know whether this is Arnor's or Hisoft's fault. However returning to Gena from Basic is no problem and you can flit back and forth as with Adam.
The monitor gives you a front page in Mode 1 showing all the registers and 32 bytes
around the program counter. You may edit this display except for the IR pair.
As well as the normal move
and modify commands Mona
will single step through
routines, allow breakpoints
and allow you to step over
calls to subroutines.
You cannot page in ROMs
from Mona - you have to do
this yourself. but Mona will
then work with them.
Although there is the option
to show some numbers in
decimal. output from Mona is
predominantly hexadecimal.
Mona will also create text
from object code for use by
Gene and the search for bytes
option is very fast.
Code can also be loaded
from within Mona and saved
out again, but there is no
information provided about
the file being loaded.