8-Bit Software Online Conversion

          Writing Rom Images for the BBC Series Machines. So you have this idea for a great utility or language, but you cannot program in 6502 assembler therefore your idea cannot be turned into reality. Wrong, this article explores the options open to non-6502 assembler programmers who wish to produce Rom Images. The first option is to get hold of a Rom Filing System (RFS) formatter. This formats an 8K or 16K ram image to allow programs (either Basic or Machine Code) to be added. Once the image is complete, the whole lot can be programmed into an Eprom or loaded into sideways ram, and the programs are then available for use. They are obtained by selecting the Rom Filing System (RFS) by entering *ROM and then CHAIN or *RUN the relevant program. The RFS is a serial filing system, whose format is similar to the Cassette Filing System. All the normal filing system commands are available, except those commands whose action causes a write e.g. SAVE, *SAVE since this is a read-only system. If you wish to have the extra commands to provide write accesses to the filing system, then the image must obviously be in sideways ram, and Beebug have an excellent rom, 'ROMIT', which provides support for a Sideways Ram Filing System. Unfortunately, any potential users of your new Rom which utilises Beebug's 'ROMIT' commands must therefore have a copy of 'ROMIT' themselves. The next option is really an extension to the first. Several Eprom blowing software utilities provide a means of placing Basic programs in Roms to be invoked by a '*' command. All of the above methods have a major drawback in that the programs do not run in the Rom itself, but are download into main ram and executed there. The next option is to program in one of the languages that provides a Stand-alone Generator, which I mentioned in my previous programming article The following languages can therefore be used :- BBC Basic compiled by Computer Concepts Accelerator. This allows you to produce language roms from BBC Basic with the following restrictions :- Real (floating point) is not supported. Integer variables are only 2 bytes long instead of the usual 4. Some additional functions are not supported e.g. ADVAL, EVAL. Some System Variables are not supported e.g. LOMEM, HIMEM, PAGE. Acornsoft's BCPL. This provides support for both Language and Service Roms. Real (floating point) variables are not supported, unless you have the Floating Point Calculations package. Other than that this is a good language to write Rom images in. Acornsoft's ISO Pascal. This also provides support for both Language and Service Roms. This too is a good language to write Rom images in. Mijas 'C'. This provides support for Language roms only. Real (floating point) variables are not supported. This is a more complex environment in which to write Rom images, but it still quite useful as the compiler generates machine code eventually. I hope this has given you a taster of what is possible on our beloved machines, and eagerly await your comments on the direction I should take in future articles. Stephan Richardson (K2O).    