Amstrad Computer User


Adam
By Audiogenic
Amstrad CPC464

 
Published in Amstrad Computer User #22

Adam

First impressions are fairly good. Although the manual is only 16 pages long, it manages to tell you everything you need to know and is written in an easy, friendly style. The assembler/editor/disassembler/monitor are all in the one block of program which is just 10k long, which seems quite short for all the bits together.

The program is relocatable and can go anywhere between 1,000 and 28,000.

When you load Adam you are greeted by a fairly short sign-on message, the state of the ROMs and the hex/dec mode of the monitor.

Pressing I will put you into the fairly simple screen editor - no line numbers - and text is entered and moved up and down using the cursor keys.

The CIA key turns the printer on or off.

Text is tokenised - to save space and increase assembly speed - and formatted on entry, but there is no fast way of moving through the text except by leaving the editor and re-entering it with "L label" to place the cursor at "label"

The monitor is also fairly simple, but is ideal for tracing programs. It uses its own internal stack, and its own display routine, which keeps ROM calls to a minimum and seems fairly crash proof.

As well as the normal disassembly and modify memory options you have two trace modes. One runs through each instruction and displays all the register contents, and the other is a significantly faster version which just executes the instructions.

You can exit from either even if the code is stuck in an infinite loop and neither of them will allow the program that is running to corrupt the monitor itself.

The O command accesses the built-in calculator. For example, 0%101 + 13-9 gives the result 15 - 0F in hex mode.

Because the text is tokenised it will not load text from another source. It's not too bad in this case as you are unlikely to have used another assembler before this one, although you are told where to look for the tokenisation table if you want to convert your text.

A quicker way is to use the H command to turn any object code into text which the assembler can then use. You have the option to include text from tape or disc to use all the available memory. If your program becomes too large Adam will move its symbol table on to the screen memory to make even more room leaving about 30k for object code.

You can move between Basic and Adam without losing your text if you want to run your routines from Basic.

The only thing missing is the option to search for specific bytes in memory. Otherwise it is a very competent beginner's package that is perhaps a little overpriced.