In the 'Emulator Options' window the disk image file name can be specified.
If the disk image file name field is left blank, the disk image to be run is copied without a name change to the emulator working directory. However, if this field is set, the name of the disk image is overriden to the set name after copying. (Setting this field does not override the file extension of the disk image.)
This is handy for BBC emulators that always expect a disk image with
the same default name. For example, I set up PCBBC to auto-load the disk
image 'DISK0.SSD' on startup. By specifying this name in the above
window, every disk image copied to the PCBBC disk working directory is
renamed as 'DISK0.*'.
If you use BeebEm for both model B emulation and Master 128 emulation, it is best to configure BeebEm for two emulators: once for each machine to be emulated.
Setting rom image file names (PCBBC)
In the 'Emulator Options' window the rom image file name can be specified (see above picture). This field is similar to the 'disk image file name' field, but there is one exception: the file name extension can also be overriden. (The base file name and the extension are controlled separately. For example, if the base file name field is left empty and the extension field is filled in, only the file extension is overriden.)
This is handy for PCBBC. With this emulator, the file name extension of a rom image determines in which rom slot it is loaded. For example, a rom image '*.ROA' is loaded into slot &A.
In the 'Emulator Options' window environment variables can be specified.
Environment variables are particularly useful with BeebEm. For example, the environment variable 'BeebDiscWrites' controls whether disks can be written to (see above picture; the value of 1 means enabled).
It is also possible to have environment variables set only if a particular type of disk image is run with the emulator. This is again useful for BeebEm. This emulator uses the environment variable 'BeebDiscLoad0' to determine which disk image should be run at startup. In the above picture the variable is set to S:80:discims/disk0.ssd (which specifies a particular single sided disk image) if a single sided disk image is run and to D:80:disims/disk0.dsd (a double sided disk image) if a double sided disk image is run.
In this way BeebEm always loads the correct type of disk image, single sided or double sided. Unfortunately this is not possible with other emulators. (With them I default to single sided, since 95% of my disk images are single sided.)
BeebEF automatically installs an E00 DFS for an emulator if a program is run for which you specified that it requires an E00 DFS, provided you selected the option 'Enable DFS handling by BeebEF' on the tab page 'DFS handling'.
In order to make the E00 DFS work in the emulator, you need to open the sideways rom/ram slot into which it was loaded for write operations. (The E00 DFS is an 8K DFS that uses the upper 8K of its rom/ram slot as workspace.) This usually requires some manual activity. For example, in BeebEm for Windows you have to access the system menu to open the slot for write operations.
However, in PCBBC this can be done automatically. Any rom image that has the extension '.RA?' is automatically loaded into a sideways ram slot rather than a rom slot. Therefore, I set up BeebEF for PCBBC to rename my E00 DFS as E00DFS.RAE (see below).
BeebEF supports a variety of disk image formats (single sided, double sided, adfs). It also supports the universal emulator format (uef). And it has support for the standard archive format (with the *.inf files), provided all files are stored in a zip file.
However, BeebEF does not support format conversion. For example, BeebEF cannot convert a disk image into the standard archive format or vice versa. In fact, it cannot even unzip the zipped standard archive files. Fortunately, BeebEF is open enough to allow the use standard tools for format conversion.
BeebInC
Let's start with the simplest form of format conversion: the unzipping of zipped standard archive files. This is required for the emulator BeebInC, which can read the standard archive format. Suppose the disk working directory of this emulator is 'C:\BeebInC\Disks'. BeebEF will automatically copy a zip file with standard archive files to that directory if a program is to be run with BeebInC. Assume this is the file disk0.zip
The only thing left for BeebInC to be able to read the files is to unzip and re-zip the zip file. In order to do so, create the following batch file:
cd C:\BeebInC\Disks
pkunzip
disk0.zip //
Retrieve archive files from zip file
del
disk0.zip
// Delete zip file
C:\BeebInC\BBC.exe
// Run BeebInC; this may update the archive files
pkzip -a disk0.zip *.* // Create zip file
with (updated) archive files
delx
disk0.zip
// Delete archive files
(DelX is a utility that deletes all files with the exception of the specified one. Make sure you use the 32-bit versions of PkZip and PkUnzip, or long file names are not handled properly.)
Finally set up BeebEF to execute the batch file, rather than BeebInC directly, and everything works.
General format conversion
The same idea can be used for general format conversion. As an example, assume that your BBC programs are stored in the standard archive format and that your emulator uses single-sided disk images. This can be dealt with by a batch file similar to the previous one:
pkunzip
disk0.zip //
Retrieve archive files from zip file
del
disk0.zip
// Delete zip file
ArchToSSD disk0.ssd *.* // Store archive files in
disk image
// command to execute emulator
SSDToArch disk0.ssd //
Retrieve (updated) archive files from disk image
del
disk0.ssd
// Delete disk image
pkzip -a disk0.zip *.* // Store (updated)
archive files in zip file
delx
disk0.zip
// Delete archive files
Unfortunately, ArchToSSD and SSDToArch don't exist (yet) for Windows. They should, however, be quite easy to write. In fact, the program BBCIm under Linux can do all that is required and more. (BBCIm also works under Windows, but doesn't support wild cards under Windows.)