Maxam Assembler and expansion ROM boardMaxam v1.5
★ Ce texte vous est présenté dans sa version originale ★ 
 ★ This text is presented to you in its original version ★ 
 ★ Este texto se presenta en su versión original ★ 
 ★ Dieser Text wird in seiner Originalfassung präsentiert ★ 

A ROM and a half

John Kennedy finds an assembler that has the power to let you program in style. But, he asks, why restrict it to rom?

FOLLOWING the release of Maxam II, the CP/M+ follow-up to the ever popular original Maxam, Arnor has produced yet another version of its assembler, this time the solely rom-based Maxam 1.5.

Maxam 1.5 runs on any CPC (with a ROM board attached of course) and is designed to be used from within Protext, the excellent word processor from the same company. For this reason Maxam 1.5 has no integral text editor.

Although having Protext is a definite advantage, it is not essential, as Maxam 1.5 will assemble machine code which is embedded in Basic programs in the same way as does the original Maxam. It can also assemble source programs stored as standard text files from disc or tape, so you could use another text editor if you wanted to, although you would be missing out on a lot of extra features.

The program

Maxam 1.5 is supplied on a 16k ROM which must be fitted into a ROM board. The ROM will take some of your computer's memory to play with, lowering Himem by some 571 bytes.

The display can be in either 80 column Mode 2 or 40 column Mode 1, where colours are used to make things easier to read.

The 50 page manual that comes with the original Maxam is supplied with extra notes for the "new improved" features of Maxam 1.5. Quotations from The Lord of The Rings are supplied as standard.

One important extra is the lack of the text need to leave the program editor. Typing ASM or TASM in command mode will assemble or syntax check (test-assemble) the program immediately. This makes life very easy indeed.

Maxam 1.5 will automatically put the object code about Himem, or anywhere you want using an ORG directive. ORG can also put the source code at a different address to where it is to be run. However, before Maxam 1.5 pokes your program all over the ram, it checks to see if it is overwriting anything important - this can make things a lot easier for the beginner who finds himself constantly wondering where his source code has vanished to.

10 'Example Basic/Assenbler program
20 'that prints a '*'
30 '
50 GOSUB 1000 'assenble it
60 CALL &4000 'execute it
70 GOTO 70
1010 'text_output equ &bb5a
1020 'ld a,'*'
1030 'call text_output
1040 'ret
1050 'end

Figure I: Basic in-line assembling

;Assenbler prog written with Protext ;to print out lots of '*'

txt_output equ &BB5A
ld a,"*" ;set A to asc 42
ld b,20 ; loop cnt to 20
loop call txt_output ;print a star
djnz loop ;repeat 20 times
ret ;return to Basic

Figure II: Assembling with Protext

The LIMIT directive can be used to set the boundaries of the object code to a user defined value, or to enable code to be purposely sent to a potentially dangerous location. Useful for patching the firmware block.


The assembler has a full set of directives, including some enabling parameters to be passed to and from Basic, and others that allow conditional assembly (see Figure IV).

Assembling to and from files is fully supported, allowing you to combine several assembler text files which might contain a library of subroutines. Although not quite as flexible as the CP/M style RELocatable files, it can make your programming a lot more structured.

Printing features include titles, page numbers and adjustable page lengths.

Once your program is assembled, it is time to save it, hold your breath, and run it. But never fear, Maxam 1.5 is here with a set of debugging commands.

You could jump right into your code with a CALL from Basic, or the J (for jump) command from within Protext (or even the | J bar command again from Basic), which will send you straight to the start of your code. If all goes as expected you can go and lie down somewhere.

For those of us who are human, the breakpoint features will be useful. The original Maxam allowed you to put BRK directives throughout the source code. When the code was executed with the Maxam J option and a breakpoint was reached, Maxam printed out a list of the registers and their values.

Maxam 1.5 still allows this, but also allows breakpoints to be set after assembly. When the program hits a breakpoint you can directly change the contents of the registers, and then continue with your program. See Figure III for some further examples of Maxam 1.5 bar commands.

The monitor

Typing the |M bar command from Basic will take you into the Maxam 1.5 monitor program. From the menu you can disassemble or list memory to screen or printer, select any upper or lower ROM (and so dissasemble or list them), edit memory directly using either Hex or Ascii with a full screen editor, search for a Hex number or Ascii string and also move, relocate (intelligently) and compare blocks of memory. All are fast and you would have to enter pretty silly values to crash them.

A status line gives the current state of Himem and which roms are switched on.



  • LOAD Load in any type of file, anywhere. The Basic LOAD sometimes gets upset when you try to load into certain addresses.
  • SAVE As Basic, but with an extra optional fifth parameter which allows the code to be loaded and executed at a different address from which it was saved.
  • MEM Allows you to set HIMEM from within Protext.
  • ROMON Switches on a ROM that had been previously been switched off.
  • HELPR Lists software (not rom) bar commands.
  • DIF Dissasembles a program directly to a file.
  • LIF Lists a block of memory to a file.
  • ASM Assembles the file in Protext's memory.
  • TASM Test-assembles the file in Protext's memory. A complete set of bar commands are included that print out the contents of the registers, and allow them to be changed.
  • ASSEMBLE Assembles the mnemonics in a BASIC program.
  • ASSEM As above, but without the listing.
  • HELP Lists out the name of all roms attached, and every bar command contained within them, if appropriate.
  • DI Disassemble memory.
  • LI List memory.
  • MFIND Search for a string in a Basic program, listing occurrences.
  • MSL Change the screen address to low memory (&4000) to avoid any possible clashes with sideways RAM.
  • MSH Move the screen to the normal position of &C000.
  • ROMOFF Switch off specified roms.

Figure III: Maxam 1.5 provides you with a complete set ofRSX (bar) commands, some of which were not available with the original Maxam



  • ORG Where to put the object code.
  • LIMIT Set boundaries for object code.
  • NOCODE Tells the assembler not to produce any object code.
  • CODE Cancels NOCODE.
  • GET Read a parameter from Basic.
  • PUT Return a parameter to Basic.
  • IF Used with a simple expression to allow conditional assembly.
  • IF1 A condition which is always true on the first pass.
  • IF2 As above but for second pass.
  • NOLIST Stops the producion of the listing on assembly.
  • LIST Cancels NOLIST
  • LIST F Send assembly listing to file.
  • PRINT Allows text to be printed during assembly. Maxam 1.5 allows variables (for example, those used for conditional assembly expressions) to be printed.
  • PAUSE Waits for a key to be pressed during assembly.
  • DUMP Produces a list of defined symbols.
  • READ Assemble the contents of a file on tape/disc.
  • WRITE Write the object code to a file. If the file is given the suffix .COM a CP/M compatible file is produced.

Figure IV: Assemble directives 3re commands that are placed inside the source code to instruct the assembler how to go about various aspects of its business.


Just when I think the time has come for me to upgrade to an Atari ST, Arnor comes along with a package that leaves some 16 bit assemblers standing. Although lacking in the more sophisticated features such as macros, Maxam is incredibly easy to use. And Arnor has something to say on the monitor's lack of single- stepping facilities:

...there is no need to mention single stepping. We know! If the reaction to this is good, we will find time to implement it soon. Unfortunately, commercial pressures demand that other projects must take priority. If single stepping is added it will also be possible to insert a breakpoint at the current address when resuming.

That little lot is part of a message displayed on the screen after typing a |QWXCL bar command. One hundred pixie points to the first person who can work out what QWXCL means.

Maxam 1.5 is aimed principally at those who have the Protext word processor and want a machine code development system that will integrate fully. However, for those without Protext, Maxam 1.5 is still a very good system. Developing programs from within Basic programs is a small inconvenience to pay, and is made up for by the excellent debugging functions and the lower price tag.

As to whether or not the lower price of Maxam 1.5 makes it a better first-time buy depends on how much you would use the text editor supplied with the original Maxam. I think perhaps I might get Maxam if I didn't have Protext. Then again, Protext is such a powerful program itself... but that's another story.

ACU #8808

★ YEAR: 1988
★ AUTHOR(S): ???
★ PRICE: £29.95 and works best inconjunction with Protext (disc or rom). Owners of the original Maxam can upgrade to Maxam 1.5 for £19.95.


» MAXAM  v1.09  nexorDATE: 2013-09-03
DL: 259 fois
SIZE: 76Ko
NOTE: 40 Cyls

» MAXAM  v1.14DATE: 2013-09-03
DL: 398 fois
SIZE: 81Ko
NOTE: 40 Cyls

» MAXAM  v1.14    ROMDATE: 2011-07-18
DL: 257 fois
SIZE: 13Ko

» MAXAM  v1.1    ROMDATE: 2003-01-31
DL: 278 fois
SIZE: 13Ko

» MAXAM  v1.50    ROMDATE: 2011-07-18
DL: 385 fois
SIZE: 13Ko

» Arnor-Maxam    (Amstrad  Software  in  ROM)    ENGLISHDATE: 2014-05-05
DL: 275 fois
TYPE: image
SIZE: 90Ko

» Arnor-Maxam    (Annoucing  MAXAM  for  Amstrad  CPC464)    ENGLISHDATE: 2015-01-08
DL: 312 fois
TYPE: image
SIZE: 147Ko

» Arnor-Maxam    ADVERT    GERMANDATE: 2014-05-05
DL: 275 fois
TYPE: image
SIZE: 58Ko

» Arnor-Protext-Maxam-Prospell-Pocket  Protext    ADVERT    ENGLISHDATE: 2014-05-05
DL: 812 fois
TYPE: image
SIZE: 350Ko

» Arnor-Protext-Maxam-Prospell-Promerge-Rombo-Utopia-BCPL    ADVERT    ENGLISHDATE: 2014-05-05
DL: 665 fois
TYPE: image
SIZE: 358Ko

» Arnor-Protext-Utopia-Maxam    ENGLISHDATE: 2015-01-08
DL: 291 fois
TYPE: image
SIZE: 239Ko

» Maxam    (Happy  Birthday  Maxam)DATE: 2015-01-08
DL: 323 fois
TYPE: image
SIZE: 153Ko

» Maxam    (Release  DISC)DATE: 2015-11-07
DL: 194 fois
TYPE: image
SIZE: 248Ko
NOTE: Scan by hERMOL ; w1910*h1168

Manuels d'utilisation & docs:
» Arnor-Maxam    ENGLISH    MANUALDATE: 2014-05-05
DL: 180 fois
SIZE: 164Ko

DL: 211 fois
SIZE: 1605Ko

Je participe au site:
» Newfile(s) upload/Envoye de fichier(s)
★ AMSTRAD CPC ★ A voir aussi sur CPCrulez , les sujets suivants pourront vous intéresser...

» Applications » Arnor - Protype
» Applications » Arnor - Pocket Protext
» Applications » Maxam Assembler and expansion ROM board
» Applications » Maxam v1.5
» Applications » Arnor - Promerge Plus (Popular Computing Weekly)
» Applications » Arnor C


L'alinéa 8 de l'article L122-5 du Code de la propriété intellectuelle explique que « Lorsque l'œuvre a été divulguée, l'auteur ne peut interdire la reproduction d'une œuvre et sa représentation effectuées à des fins de conservation ou destinées à préserver les conditions de sa consultation à des fins de recherche ou détudes privées par des particuliers, dans les locaux de l'établissement et sur des terminaux dédiés par des bibliothèques accessibles au public, par des musées ou par des services d'archives, sous réserve que ceux-ci ne recherchent aucun avantage économique ou commercial ». Pas de problème donc pour nous!

CPCrulez[Content Management System] v8.7-desktop/cache
Page créée en 122 millisecondes et consultée 1778 fois

L'Amstrad CPC est une machine 8 bits à base d'un Z80 à 4MHz. Le premier de la gamme fut le CPC 464 en 1984, équipé d'un lecteur de cassettes intégré il se plaçait en concurrent  du Commodore C64 beaucoup plus compliqué à utiliser et plus cher. Ce fut un réel succès et sorti cette même années le CPC 664 équipé d'un lecteur de disquettes trois pouces intégré. Sa vie fut de courte durée puisqu'en 1985 il fut remplacé par le CPC 6128 qui était plus compact, plus soigné et surtout qui avait 128Ko de RAM au lieu de 64Ko.