Electron User
1st December 1986
Author: Roland Waddilove
Publisher: ACP/Pres
Machine: Acorn Electron
Published in Electron User 4.03
The Advanced Rom Manager - ARM for short - is a 16K utilities ROM with some powerful commands.
As with all ROMs from ACP, it works equally well on an Electron, BBC B, BBC B+ and Master, so if you decide to upgrade you can take your ROMs with you.
Figure 1 shows the 12 available commands. Several are only of use if you alse have Sideways RAM or, better still, a friend with a BBC Micro and an EPROM blower.
AUTOROM and MAKEROM create ROMs similar to Acornsoft's Hopper and Snapper ROM cartridges. These take files and convert them into a suitable form for putting into an EPROM or Sideways RAM. The command will take a single file while the second will accept a list of files and turn them into a ROM image. This can then be loaded into Sideways RAM or blown into an EPROM.
There is a slight difference between AUTOROM and MAKEROM when it comes to running the files. To run an AUTOROM file stored in ROM its name is entered as a star command. The files stored using MAKEROM can be accessed using the ROM Filing System. This is selected with *ROM and all the normal LOAD, CHAIN and RUN commands operate as they would with disc or tape. You can't save to ROM of course, so SAVE and *SAVE won't work.
The ROM Filing System runs at about half the speed of a disc system, so it's quite fast. I can't really see the use of putting a game on ROM, but it would be possible to put TextEd - the simple word processor in the August 1986 issue of Electron User - on it so it's instantly available.
RSAVE will save the contents of any specified ROM and RLOAD will load a saved ROM image into Sideways RAM. This is useful if you've got more ROMs than ROM sockets since you can store all your ROMs on disc.
A ROM can be loaded into Sideways RAM at the start of a programming or word processing session. RMOVE copies a ROM's contents into RAM.
GOROM enables you to call a machine code routine in any ROM and set the registers on entry. This would be useful if you had a second processor, since you can run code at any address in the I/O processor - the Electron.
KILL enables you to disable or enable any ROM, useful on the Electron since it has an annoying habit of switching to the first language it finds after pressing CTRL and BREAK. This means you can end up in View, Viewsheet, Starmon, Logo or whatever you've got plugged in when you really want BASIC. If you KILL the ROMs you don't need you can prevent this.
As your library of ROMs builds up, you may find that two of them have the same command. For instance, both ARM and Slogger's Elkman have the command RSAVE, and the first one to be offered the command by the Operating System will immediately take it.
OFFER can be used to offer a command to a specific ROM, so RSAVE could be offered to either Elkman or ARM by specifying the ROM number.
RDUMP will display the contents of any ROM or Sideways RAM in Hex, ASCII or 6502 mnemonics. REX produces a similar display but will also allow you to edit the contents of Sideways RAM. The display can be switched between Hex, ASCII and mnemonics at will while browsing through the ROM or RAM.
The disassembler is one of the best I've seen and will disassemble forards, backwards, follow JMPs and JSRs, and return when it gets to RTSs. It's an essential tool for anyone dabbling in machine code.
ROMS will print a list of ROMs, their number, title string and size. RSUM calculates a checksum and CRC for each one. I don't know why you'd need to know the CRC for a ROM, but anyway it's there if you want it.
Although ARM is an excellent package, at first I wasn't too taken with it as several of the commands are repeated in ACP's ADT which is a superb ROM. However, ARM wins hands down when it comes to price, at £14.94 representing amazing value for money. Go out and buy this real bargain.