ZX Computing


Laser Genius

Author: Carol Brooksbank
Publisher: Ocean
Machine: Spectrum 48K

 
Published in ZX Computing #27

Carol Brooksbank looks at the latest to Ocean's IQ range of utilities

Laser Genius

This addition to Ocean's IQ series is an Editor/Assembler and Monitor/Analyser. Despite the slightly alarming handbook (a quarter-inch thick) the program is very easy to use - flexible and user-friendly. Wherever possible, the user is given choices. For instance, the assembler accepts decimal, hex, binary or octal input. Each instruction can have a line number or you can assign one number to groups of instructions. Disassembly can be in decimal or hex. Labels can be any length you like, up to 240 characters, and you probably know how impossible it becomes to use labels that convey anything at all after a while if the assembler limits you to six characters. Attention to this sort of detail makes the user feel very comfortable with this program.

Editor/Assembler

There are two tapes. The first, the Editor/Assembler, has all the features you would expect and numerous extra ones. Macro labelling allows procedure definition in the listing. A special set of commands constitute a high level language - Phoenix - which is really intended for testing algorithms, but they can be mixed freely with assembly language, so there is no need to convert a tested routine. A calculator, accessible from the editor, accepts input in all four arithmetic conventions, and will output in whichever base is specified, and in unsigned or two's complement arithmetic.

The editor takes care of tabulation, and you can mix upper and lower case freely. Opcodes are converted to upper case, but labels and notes remain as you entered them; LOOP, Loop and loop being recognised as different labels. Error messages are very specific; for example, "Space required" above the line you are trying to enter, and a cursor at the spot where the space is needed. String search, find and replace are available, and sections of the isting can be copied, moved or deleted.

The label table can be saved separately and merged into later modules of a long program, avoiding the need to assembler existing modules just to get the labels into memory. You can discard any which are only used inside a subroutine and just carry forward the entry point labels.

Assembly is to screen, tape, microdrive, disk or printer. Conditional assembly is available, so that if your program needed, say, to drive a printer interface, you could write subroutines to drive different ones, set the conditional facility to assemble just one and ignore the others, and produce several versions of the program from one listing. The code produced by the assembler is in a special form, so there is a conversion program to translate it to normal code. Either form of code, or the source text, can be saved to tape, microdrive or disk.

Monitor/Analyser

The Monitor/Analyser on the second tape is just as powerful. Versions residing high or low in memory are offered, and either can be relocated so that there is no clash between the monitor and the program being examined. The monitor's main screen is divided into four windows: top eft - disassembly listings or the memory map; top right - the current state of flags, Interrupts, and registers and the top nine items on the stack; centre screen - the contents of the address in te memory pointer and the program counter, and the contents, in hex and ASCII, of 64 addresses, with the one in the memory pointer near the middle with a cursor; bottom screen - commands and messages.

Disassembly, which can also be to the whole screen, can be saed with absolute addresses for calls and jumps, or with labels generated allowing the code to be relocated.

The debugging and testing facilities are excellent. You can single step through the code, with the register and stack display updated after ever step. Instructions may be skipped and subroutines called may run at normal speed or single step. Slow running is available, with subroutines at normal or slow speed, with four types of information update. Eighteen types of breakpoint are offered, ranging from the ordinary one returning control to the monitor, to ones which continue in slow mode or resume normal speed execution.

Genius

This is a very versatile test and debugging program and the whole package is most impressive. The one area where I feel improvements could be made is printer interfacing, because Kempston 'E' is the only one guaranteed to work with it.

It seems a pity that such a versatile program in every other direction should not support a wide range of interfaces.

This apart, Laser Genius is a first-class package, straight-forward enough for the beginner and versatile enough for the expert. The price amazes me. The program I have been using until now cost me over £22 and has half the facilities this one offers for £14.95. Clearly, excellence is the hallmark of the IQ series.

Carol Brooksbank

Other Spectrum 48K Game Reviews By Carol Brooksbank


  • CAD-Master - Light Pen And Graphics Software Front Cover
    CAD-Master - Light Pen And Graphics Software
  • LSP-10 Printer Front Cover
    LSP-10 Printer
  • Spectext Front Cover
    Spectext
  • The Artist Front Cover
    The Artist
  • M-Doc Front Cover
    M-Doc