A&B Computing


ROM Report

Categories: Review: ROM Chip
Author: Dave Reeder
Publisher: Altra Roms
Machine: BBC Model B

 
Published in A&B Computing 2.12

Losing track of the number of utility ROMs around? Here's another half dozen recent releases!

ROM Report

The flow of utility ROMs for the BBC micro continues apace - new languages, new implementations of utilities, new programming aids, etc. There are now so many that no one magazine could hope to review them all; in fact the vast majority never receive a review anywhere. That said, I'm looking here at a round half dozen of well-advertised ROMs that offer much the same set of utility commands and so can be usefully compared.

In fact, it becomes increasingly difficult to imagine what extra or unusual commands any ROM can add to the number already available. Nevertheless, the software houses keep trying and certainly each new release does appear to offer a different hand of the utility cards any self-respecting Beeb user needs to play the programming/memory examination game.

First Aid

In a world of ROMs hovering around the £20-£30 range, it is refreshing to find a utility ROM costing a mere £15 - though, of course, this is for 8K of utilities only.

First Aid 1.1 - to give it its full name - provides a set of useful programming utilities for the BASIC or machine code programmer: none of them outstanding but all useful and adequately implemented. Typical of the genre is the *DIS command, providing a standard machine code disassembler displaying address, data in hex, ASCII of data plus m/c mnemonics of the data. This is scrollable, as is *HEX, the slightly more interesting hex and ASCII dump routine. What makes *HEX slightly non-standard is the combination of this command with *SIDE, which copies any sideways ROM into RAM starting at &3000, there examinable by *HEX.

A range of useful, if standard, commands follow: *FKEY to display function key definitions, *VTOP to print top of variable table, *FREE to display HIMEM/LOMEM, *ROMS to display sideways ROMs, etc. What does seem more useful is the inclusion of the ability to use First Aid 1.1 as a language, an effective REM stripper and a Bad Program fix which will also remove hidden control codes from REM statements allowing you to list some unlistable programs.

Nothing outstanding here but it may well serve your purpose for a general programmer's utility ROM, though I suspect BROM or Slave will get more sales.

Tube Editor

Despite being advertised as a ROM utility package for the Second Processor user, this ROM is merely an update of Altra's BASIC Editor and so my comments are mostly applicable to that as well.

Probably the most unusual thing about this ROM is its astounding price - 39! - which is a horrifying sum for even a full labelling disassembler and editor. Admittedly, it is a very interesting disassembler in that, as well as the usual assembler display in 6502 mnemonics, it is 'intelligent' as it hones in on any labels and ensures disassembly starts with them.

Thus, whilst a normal disassembly might look like this:

2000    NOP 0C
        NOP A2
        NOP 03
2003    ASL A 0A

the Tube Editor version would be:

2000    ?D? 0C
        TEST 2001
        LDX -3 A2
2003    ASL A 0A

and so on. As well as this rather more understandable format, the utility will also cover extended 6502 mnemonics, including the 'illegal opcodes' used rather naughtily by many programmers. Like most commands you can also disassemble the Second Processor's 65C02 CPU, which, as you will know, contains instructions not in the normal 6502.

There are the expected label appending and deletion commands here as well as a full set of memory dumps, edits, etc. The ROM's ability to search through memory and offer easy-to-use utilities is impressive and its disassembly display is perhaps the clearest I can recall.

However, despite the ability to track down and identify illegal opcodes, there is little here that is not already available many times over.

Probe

The basic Probe 1, from Altra, is a BASIC and disc editor; there is also a Probe 2 which at an extra cost (39 as opposed to 29) applies a similar set of utilities across the tube for Second Processor owners. To be honest, Probe is a bit of a rag-bag of utilities, covering BASIC, disc drives, printers and what are called 'general purpose'.

There is, for instance, a formatter of assembly listings which usefully includes text line numbers; a BASIC program lister which lists from a filing system without loading it first and thus overwriting one already in memory; a disassembler; a disc sector editor; a function keys listing; a disc formatter, a memory editor; a block memory mover; a disc track repairer; a ROM identifier; a disc verifier; and so on. None of these are outstanding but all have fairly common uses.

Of far more interest is the very extensive BASIC editor which works directly on a program's tokenised form in memory. This provides several useful commands such as a bad program relink, a formatted program lister which puts every statement on a new line together with indentations and a partial line renumbering routine (one of the more obvious deficiences of the BBC editor).

There is a very extensive search facility, allowing matching lines to be listed, specific lines numbers to be printed, global and selective replacements. These act rather like a word processor on any BASIC program and the ROM is as easy to use here as you could wish. An extensive packer routine is also included which pulls back memory by removing REM statements, removing unnecessary spaces, removing comments from assembler listings, shortens variable, FN and PROC names to one or two letters wherever possible and, lastly, concatenates lines.

ROM Master

Once again we have a ROM whose list of commands suggests a fairly standard ROM control ROM - we've seen this before and will no doubt do so again. However, at £16, it is cheap enough to track down for one or two features of interest.

Firstly, though, for the sake of completeness, let's detail the kind of commands you're offered in case you don't already have them in another form. Rom Master provides control over other ROMs on board (either the standard number or via an expansion board) allowing identification, enabling, disabling, transfer of ROM contents to sideways RAM, ROM disassembly, ASCII sequence search and so on.

Strangely, there are some more general commands here as well: loading or saving a set of function key definitions, for example. But (and here we venture into somewhat unusual territory) you can also display any variable in binary/decimal/hex, calculate any CRC value or search for a sequence of bytes between any two memory addresses. So, for instance, you could search for the end of a corrupt BASIC program to discover where TOP should be with *BFIND 1900 7C00 13 255.

Also very bizarre is the inclusion of an encription device which encodes a file with a given password upon saving to disc or cassette - this is claimed to be an unbreakable device but then we've heard that one before. This won't stop the very dedicated but it would allow you to keep a good degree of control over material you wished to keep secret. A nice touch, if rather out of place in this standard set of ROM control utilities.

The Scythe

I've heard this described as a pirate's dream and certainly the opportunity for misuse of this ROM is considerable. Produced by Chalice, this is compatible with their Vector tape to disc utility and users of that tool should note that The Scythe will allow some programs unusable off disc with Vector ,by creating a !BOOT file accessing the ROM menu. An interesting touch as is the ability to complement Vector in the transfer of very long files from tape to disc from within The Scythe's TDISK programming language.

Usual powerful utility commands such as a hex/ASCII memory dump, disassembler of any ROM, bad program repairer, ASCII sequence searcher, byte searcher, disc formatter, ROM enabler or disabler, disc verifier and disc free space display. All well implemented, of course, but it is in the extra commands that The Scythe scores well.

You can, for example, spool disassembled code to any filing system (including from paged ROMs); this can then be execed back as a BASIC program compatible with the assembler for easy editing and the code recreated by running the BASIC program thus formed. Or you might care to try the Rom commands which acts on a BASIC program by replacing embedded control codes with the *Y character - thus allowing (in conjunction with the *BAD command) the listing and alteration of commercial software. This is a strong utility with many potential uses and, if used with the ROM's memory shifting and swapping commands, offers a wide freedom in examining software - both tape/disc and on sideways ROM.

However, don't assume for a moment that this is only likely to be of interest to the software crackers stealing hard work and money from manufacturers - delving and trying things out is the best way to learn more about the workings of your computer and BBC BASIC and you could do worse than use these well-designed utilities to start you down that road.

Lastly, a very useful utility is included which allows you to build a variety of simple but powerful commands. You can load a specified number of sectors from disc into various sector repair, editor, backup or protection cracker utilities and the command *SECTLOAD will load all sectors specified (ignoring errors) and will then return to the disc fault after loading all possible information. Very useful and, in combination with the other utilities, very powerful.

Slave II

For most BBC users I know, Slave is, next to Brom and Disc Doctor, the single most valuable and used ROM in the machine. For sheer range of utilities and power of commands it would be hard to beat.

Yet, like so much with the BBC micro, nothing can be taken as standard and what may at one moment seem like the greatest hardware or software advance will shortly become merely the standard to beat. Enter Slave II from A 'n F: not a radical reworking of the ROM, but still worth considering as an extra purchase or upgrade (details not yet known but it seems likely that A 'n F will offer some kind of trade-in).

Besides some minor tinkering with a few of the commands (mainly tidying up rather than bug removing), the main changes come in the BASIC editor and the disc editor. The first adds some extra options such as automatic renumbering when adding a line number already existing, a faster way of moving the editing cursor around the program and screen and so on.

The disc editor, on the other hand, is almost completly reworked. You can now read, edit and rewrite to disc any disc sector on any single, double, 40 or 80 Acorn compatible single density DFS. The display is in four main areas: the top line shows current drive, etc together with an ASCII representation of the byte currently being edited; the main displayis an 8 byte per line hex dump, vith current editing location highlighted and printable/non-printable characters displayed; to the right are the ASCII equivalents of the printable characters; finally, at the bottom, is a prompt for editing commands. The whole display is clear and the new commands for disc sector manipulation are a delight to use.

No doubt you can think of uses for this yourself but an obvious one would be to replace 'unhelpful' bytes inserted by security conscious programmers - possible as long as the rewritten bytes fill the gap exactly. An excellent update.

Conclusion

Is there anything here of sufficient interest to the experienced ROM user? I think the answer is probably 'no', although all these ROMs have features which repay close attention. As always, their ultimate utility will depend on your needs and, to a large extent, on the utilities - currently in your collection.

Slave II and The Scythe both contain very powerful 'accessing' tools and will certainly strip away 'problems' that may have kept you in despair. Tube Editor and Probe 1 are well designed and carefully thought out, though I believe their price will count against them.

Finally, Master and First Aid both have the excellent virtues of being cheap and useful.

If pushed to choose one, then, without hesitation, I'd pick Slave II, even though I've not seen the price on it yet!

Figure 1. The simple machine code monitor in "First Aid"

*MON
 
Stack
 
  SP X  Y  A  NV-BDIZC
  FF 07 04 FF 01110001
 
Memory          HEX             ASCII
FFF8: 08 02 00 0D CD D9 1C DC  ........
0000: 02 1A 02 1A 00 7C 00 7C  ..... . 
0008: 00 00 01 00 07 63 6B 0A  .....ck.
0010: 0D 0A 02 1A 0A 01 33 B4  ......3.
0018: 1A 00 07 00 00 1A 00 00  ........
0020: 00 46 46 FF 00 00 00 40  .FF....@
0028: FF 20 00 00 00 00 2E 2E  . ......
0030: 2E 20 37 43 20 20 2E 00  . 7C  ..
 
C Continue E End M Memory
 
A Alter R Registers J JSR

Figure 2. "The Scythe" provides a run-down of on-board ROMs

*ROMLIST
 
0 SPEECH 1.0 (C)DCW 8K
1 SLAVE (C) 1985 J.Aughton,G.Pennington,I.Piumarta 16 K
2 BASIC Extensions (C)1984 R.T.Florance & R.J.Harrison 8K
3 WORDWISE-PLUS (C) 1984 CC 14K
4 ROM MASTER (C)1985 Chalice 8k
5 SCYTHE (C)1985 Chalice 8K
6 Altra PROBE (C)1984 Altra 16K
7 FIRST AID 1.1 (C)1985 ALTRA / M.P.Hudson 8K
8 DISC DOCTOR (C) COMPUTERCONCEPTS 8K
9 ALTRA TUBE EDITOR (C)ALTRA ROMS A.M.Lord 1985 8K
10 PRINTMASTER (Epson) (C)84 Computer Concepts M.Bateman P.Hiscock 8K
11 BeebMan (C) Slogger 1985 8K
12 DFS,NET (C)ROFF 16K
13 Upgrade II 8.39 (C) 1984 R T Clayton 8K
14 * BASIC (C)1982 Acorn 16K
15 Empty

Figure 3. Function key definitions thanks to "Probe"

*FKEYS
*KEY 0 AUTO
*KEY 1 RENUMBER|M
*KEY 2 LOAD"
*KEY 3 CHAIN"
*KEY 4 SAVE"
*KEY 5 OLD|M
*KEY 6 MODE6|M
*KEY 7 *FIND|M
*KEY 9 LIST|M
*KEY 10
*KEY 11
*KEY 12
*KEY 13
*KEY 14
*KEY 15
f: user Sf: &80 Cf: &90 SCf: 0ff

Figure 4. The display provided by "The Tube Editor"

*XFER
KEY10PA*   110
M          110
MO         110
X          210  220  250  260  370
           380  410  420  540
Y          160  170  180  320  330
           340
init       100  610
text        90  150

Figure 5. Full information about a specified ROM from "ROM Master"

*STATUS 4
   Socket number:4
       ROM title:ROM MASTER
  Binary version:0  %00000000
  Version string: 1.00
Copyright string:(C)1985 Chalice
          Length:8K
   Service entry:&802B
  Language entry:No language entry
 Tube relocation:No tube address

Dave Reeder

Other BBC Model B Game Reviews By Dave Reeder


  • Ghouls Front Cover
    Ghouls
  • Easywrite Front Cover
    Easywrite
  • Airline Front Cover
    Airline
  • Uranians Front Cover
    Uranians
  • Firienwood Front Cover
    Firienwood
  • Jet Set Willy II Front Cover
    Jet Set Willy II
  • Barbarian II: The Dungeon Of Drax Front Cover
    Barbarian II: The Dungeon Of Drax
  • The Kingdom Of Klein Front Cover
    The Kingdom Of Klein
  • Ravage Front Cover
    Ravage
  • Desk Diary Front Cover
    Desk Diary

This article was converted to a web page from the following pages of A&B Computing 2.12.

A&B Computing 2.12 scan of page 50

Page 50

A&B Computing 2.12 scan of page 51

Page 51

A&B Computing 2.12 scan of page 52

Page 52