| ★ APPLICATIONS ★ PROGRAMMATION ★ MAXAM ASSEMBLER AND EXPANSION ROM BOARD ★ |
ARNOR'S Maxam is a 16k ROM containing an assembler, monitor and text editor. It has been designed to enable Z80 machine code programs to be written, run and debugged, with the emphasis on ease of use. This version of Maxam has all the features of the tape version which was briefly reviewed in the April issue of Computing with the Amstrad , plus many more. It's now even better. It is available either as a bare ROM which can be plugged into a ROM expansion board, or on its own small board which plugs into the expansion port. The latter is fully compatible with the disc drive, and the disc interface can be plugged into the rear of the board. Maxam reserves 256 bytes of memory for itself on power up. If this interferes with software it can be disabled with |MAXOFF. The lost memory is regained and the ROM no longer responds to any commands. The ROM is classed as a background ROM. This enables Maxam to be entered and left without disturbing the foreground program -usually Basic. |MAXAM or |M is used to enter the ROM. An optional parameter can be added to specify the screen mode. There are two menus, the first has 16 options and the second 17.
Any ROM can be enabled so that it may be examined, with the exception of Maxam. It won't allow you to look at itself. Any area of the memory map, ROM or RAM can be disassembled and listed to either the screen or printer. RAM can be displayed in both hex and Ascii and edited by moving the cursor to the desired byte and typing over whatever is there. The disassembler disassembles all instructions correctly. This shouldn't need stressing, but it is important as the Amstrad uses some RST instructions to pass parameters. These parameters are listed after the RST. The memory can be searched for a hexadecimal or Ascii string and all occurrences are listed to either screen or printer. Wildcards are accepted in place of a byte or character. A block of memory can be initialised to any value, moved or compared. It's possible to move from ROM to RAM and compare ROM and RAM. When comparing two blocks, all differences are listed showing their different values. If a block of memory contains machine code, instead of simply moving it Maxam can be instructed to attempt to relocate it as well. It isn't perfect - that would be next to impossible - but it does take a lot of the hard work out of it. The text editor is used for entering assembler text. This is better than some word processors I've seen. It is so easy to use and makes such a fantastic difference to writing machine code it makes other systems look primitive. All the main word processing functions are available with the exception of justification, which is undesirable in an assembler. The cursor keys and delete keys operate a character at a time. The cursor can be moved up. down left or right throughout the text and characters can be deleted forwards or backwards. Holding down one of the Shift keys makes all commands operate on lines of text - which can contain multiple statements. Shift+cursor up moves the whole text up one line for instance. Shift + Delete deletes a whole line. Ctrl enables the commands to operate on blocks. Defining a block is simply a matter of moving to the start of the text and pressing Shifts Copy, moving to the end of the text and pressing Shift + Copy again. Ctrl + Delete will delete a whole block, Ctrl + Clr will move a block and Ctrl + Copy will copy a block of text. The whole text can be loaded or saved or a block of text can be loaded or saved. Text can be loaded to the current cursor position in the text. This enables assembler files to be merged. The editor has some powerful search and replace commands. Any string of text can be searched for and either a global or selective replacement is possible. With a selective replacement the editor waits for confirmation before the text is replaced with the new string. The text can be printed out as it appears in the editor or a listing can be made when the text is assembled. Any block of text can be printed and the listing can be switched on and off within the text when it is assembled. The text editor has a couple of amazing commands which enable Basic listings to be manipulated. If a Basic program is saved in Ascii format it can be loaded into the text editor. Then, using a single command, all the line numbers can be stripped away. Whole chunks of Basic listing can be copied, deleted, loaded, saved, moved and inserted with the text editor's powerful commands. When you've finished, line numbers can be inserted throughout the whole program with a single command and the listing saved. It can now be loaded and run as a normal file. Basic and assembler can be mixed quite easily. |ASSEMBLE in a Basic program will enter the assembler and any subsequent Basic lines starting with a single quote are treated as text for the assembler. Control is passed back to Basic when the text has been assembled. This is a very powerful feature and is ideal for short machine code routines. The assembler itself is excellent and has many advanced features not available in some other packages. The code can be assembled with or without the object code being placed in the memory. The code can be assembled at one location but as if it were at another. BRK is an additional instruction which provides a breakpoint. Maxam is entered after a BRK is met and the contents of the registers are displayed. Pressing a key will allow the program to continue. Conditional assembly is possible using IF-ELSE-ENDIF. The logical operators AND, OR and XOR can be included as well. There is also a special form of the IF statement, IF1 is true on pass one of the assembler and IF2 is true on pass two. Using READ and WRITE an assembler file on disc can be assembled and the object code placed in a new file back on the disc without being placed in the memory. This allows very large files or several smaller files to be assembled. In addition to the assembler, monitor and editor, the Maxam is able to list the ROMs present and their commands. Any number of ROMs can be disabled using |ROMOFF,< list of ROMs >. The screen memory can be moved to &4000 freeing &C000 to &FFFF. This enables programs residing in this area, such as ROMs and sideways RAM to be loaded and edited. Maxam is a superb ROM which is recommended for all serious machine code programmers. It contains a powerful assembler and an excellent editor which is a joy to use. An assembler in ROM is an absolute necessity for creating longer, more-complex programs. Amor's is one of the best and worth every penny you'll pay for it. ROLAND WADDILOVE, CWTA |
| ![]() |