80-Bus News

  

January–February 1984 · Volume 3 · Issue 1

Page 48 of 55

RAVEN

At #30, RAVEN is the most expensive of the three and about the same price as ZEAP. However, when you see the sort of things it can do, I’m sure that you will agree that it is an excellent piece of software and quite reasonably priced at that. The TDK tape has the assembler itself on one side and the Z80 macro library on the other (see later for an explanation of the macro library). The manual is a loose-leaf ring-binder and has been printed directly by a dot-matrix printer. Unfortunately, the paper used is a bit thin and the holes are punched close to the edge so after a few hours’ use the holes tear and you literally have a loose-leaf manual! Raven takes up about 16K of memory and it does not perform any text compression (apart from the use of TABs to save spaces), so 32K RAM is needed even for a fairly small program.

It is possible to interface RAVEN to your own system, in particular a printer routine, optional form feeds, cursor character code and repeat speed, and finally the start address for the source code. The adapted version may then be saved on tape and used as the working copy. The many facilities available on this assembler are well explained with clear examples. The only ambiguity I came across was the procedure for attaching your own printer routine. It didn’t work for me so I had to devise my own method.

The editor is one of the best features of RAVEN. It is a full screen editor and I have found it to be far superior to the usual line-based editor that is supplied. The screen is best thought of as a 48 character by 15 line window on the text file, which is moved around the file by the cursor keys. Because any part of the file may be viewed at any time just by using the cursor keys, line numbers are not necessary. Lines can be up to 255 characters long but this is probably too long for most uses. An option of 80 (or 132) characters would be useful since this would be the same as most printers.

There is a comprehensive range of commands, selected by a single letter:– change and insert text, find and replace strings, delete and copy lines or blocks of text. As well as read, write and verifying of named files, it is possible to join a file from tape to one already in memory so that you can build up the source program from library files (for example). Tabs may be positioned anywhere along the 255 character line width and you may have as many as you wish. If you forget the function of a particular key, the Help command will give a short description. However it is usually necessary to consult the manual anyway since most commands have several options which require further input. It was while I was playing around with the help facility that I discovered a command that was not mentioned in the manual, this was to “update tabs”. I’ve been trying it out but it doesn’t seem to do anything useful!

The top line (line 16) is used to display information to the user. Cursor position is given by column number (1 to 255) but I would also like to have seen line position so that you would have a better idea of what part of the file you are at. This display may be changed to give the length of the file in bytes. Other information is displayed during tape transfers, and string search/​replace etc.

Whereas assemblers for micros usually have one fixed instruction set, RAVEN does not have any instruction set built in at all. Before it can be used as an assembler it has to be supplied with the instruction set for the particular CPU. All instructions and most psuedo-ops are defined as macros. The list of macros defining the instruction set is treated just like any other source file, however for normal use it can be incorporated into the assembler semi-permanently so that it is loaded into RAM along with the assembler. The instruction set supplied is, of course, for the Z80 but you could just as easily replace it with say a 6502 set (although you would have to write this

Page 48 of 55