Next: Keymap files, Previous: System files, Up: System files [Contents][Index]

### 4.1 ROM files

Every emulator requires its own ROM set. For the VIC20 and the C64, the ROM set consists of the following files:

- `kernal`, the Kernal ROM (8 KiB)
- `basic`, the Basic ROM (8 KiB)
- `chargen`, the character generator ROM (4 KiB)

The C128 needs the following files:

- `kernal`, the Kernal ROM (8 KiB)
- `basic`, the Basic + Editor ROM (32 KiB)
- `chargen`, the character generator ROM (4 KiB)

The C128, VIC20, SCPU64 and C64 emulators also need the following DOS ROMs for the hardware-level emulation of the 1540, 1541, 1571, 1581, 2000, and 4000 disk drives, as well as the CMD hard drive:

- `dos1540`, the 1540 drive ROM (16 KiB)
- `dos1541`, the 1541 drive ROM (16 KiB)
- `dos1541II`, the 1541-II drive ROM (16 KiB)
- `dos1571`, the 1571 drive ROM (32 KiB)
- `dos1581`, the 1581 drive ROM (32 KiB)
- `dos2000`, the 2000 drive ROM (32 KiB)
- `dos4000`, the 4000 drive ROM (32 KiB)
- `dosCMDHD`, the CMD HD boot ROM (16 KiB)

In addition to those all emulators can handle a parallel IEEE488 interface (the C64 and C128 via `$df**` extension, the VIC20 via VIC1112 emulation) so they also need the DOS ROM for the IEEE disk drives:

- `dos2031`, the 2031 drive ROM (16 KiB) (DOS 2.6, Commodore ROM images 901484-03 and 901484-05)
- `dos2040`, the 2040 drive ROM (8 KiB) (DOS 1, Commodore ROM images 901468-06, 901468-07)
- `dos3040`, the 3040 drive ROM (12 KiB) (DOS 2, Commodore ROM images 901468-11, 901468-12 and 901468-13)
- `dos4040`, the 4040 drive ROM (12 KiB) (DOS 2, Commodore ROM images 901468-14, 901468-15 and 901468-16)
- `dos1001`, the 1001/8050/8250 drive ROM (16 KiB) (DOS 2.7, Commodore ROM images 901887-01 and 901888-01)
- `dos9000`, the D9090/60 drive ROM (16 KiB) (DOS 3.0, Commodore ROM images 300516-RevC and 300517-RevC)

Note that there are other DOS images on the internet. The DOS 2.5 images might be used with the 8050, but it cannot handle the double sided drives of the 1001 and 8250 and it is not supported by VICE.

The PET emulator uses an expanded setup, because there are three major versions of the Basic and the Kernal, and many versions of the Editor ROM. In addition there are cartridge ROM sockets.

The Kernal files contain the memory from range $F000-$FFFF, the Basic ROMs either the range $C000-$DFFF or $B000-$DFFF. To handle the different screen sizes and keyboards, different so-called “editor-ROMs” for the memory range $E000-$E800 are provided. The PET ROMs have the following names:

- `kernal-1.901439-04-07.bin`, the PET2001 Kernal ROM (4 KiB) (Commodore ROM images 901447-06 and 901447-07, same as 901439-04 and 901439-07)
- `kernal-2.901465-03.bin`, the PET3032 Kernal ROM (4 KiB) (Commodore ROM image 901465-03)
- `kernal-4.901465-22.bin`, the PET4032/8032 Kernal ROM (4 KiB) (Commodore ROM image 901465-22)
- `basic-1.901439-09-05-02-06.bin`, the PET2001 Basic 1 ROM (8 KiB) (Commodore ROM images 901447-09, 901447-02, 901447-03, 901447-04.bin. The -09 ROM is the revised -01 ROM. Same as images 901439-09, 901439-05, 901439-02, 901439-06. The -09 ROM is the revised -01 ROM)
- `basic-2.901465-01-02.bin`, the PET3032 Basic 2 ROM (8 KiB) (Commodore ROM images 901465-01 and 901465-01)
- `basic-4.901465-23-20-21.bin`, the PET4032/8032 Basic 4 ROM (12 KiB) (Commodore ROM images 901465-23, 901465-20 and 901465-21. The -23 ROM is a revised -19 ROM)
- `edit-1-n.901439-03.bin`, the PET2001 editor for graphics keyboards (2 KiB) (Commodore ROM image 901447-05, same as 901439-03)
- `edit-2-b.901474-01.bin`, the PET3032 editor for business keyboards (2 KiB) (Commodore ROM image 901474-01)
- `edit-2-n.901447-24.bin`, the PET3032 editor for graphics keyboards (2 KiB) (Commodore ROM image 901447-24)
- `edit-4-40-n-50Hz.901498-01.bi`, the PET4032 editor for graphics keyboards (2 KiB) (Commodore ROM image 901498-01)
- `edit-4-40-b-50Hz.ts.bin`, the PET4032 editor for business keyboards (2 KiB) (Said to be "901498-01 modified to use a business keyboard on a 50Hz 4032")
- `edit-4-80-b-50Hz.901474-04_.bin`, the PET8032 editor for business keyboards (2 KiB) (Commodore ROM image 901474-04-?)
- `characters-2.901447-10.bin`, the character generator ROM (2KiB). It has two sets with 128 chars each. The second (inverted) half of each set is computed from the first half by inverting it. This is a PET hardware feature. (Commodore ROM image 901447-10)
- `chargen.de`, the character generator ROM (2KiB). This version is a patched German charset, with the characters [, \ and ] replaced by umlauts. It has been provided by U. Guettich and he reports that it is supported by some programs.
- `characters.901640-01.bin`, the SuperPET character generator ROM (4KiB). The first half is the same as `characters-2.901447-10.bin`, the second half contains, instead of an upper and lower case set, an ASCII character set and an APL character set. For these sets, the screen code is equal to the ASCII/APL code.
- `waterloo-[abcdf]000.901898-0[1-5].bin`, `waterloo-e000.901897-01.bin`. The Waterloo system ROMs for the 6809 CPU in the SuperPET.
- `hre-9000.324992-02.bin` HiRes Emulator (at $9000) and `hre-a000.324993-02.bin` HiRes BASIC (at $A000). These are the two roms for supporting the HRE on the 8296. The ROMs are initialized by the command `SYS 36864`.

The PETs also have sockets for extension ROMs for the addresses $9000-$9FFF, $A000-$AFFF and $B000-$BFFF (the last one for PET2001 and PET3032 only). You can specify ROM image files for those extensions command line options `-petrom9`, `-petromA` and `-petromB` resp.

An alternative would be to specify a long kernal ROM with the `-kernal` option that includes the extension ROM areas.

Also, you can specify replacements for the basic ROM at $B000-$DFFF with the `-petromBasic` option and for the editor ROM at $E000-$E7FF with the `-petromEditor` option.

The CBM-II emulator again uses another setup. For those models the kernal used is the same for all. However, for different amounts of memory exist different versions of the BASIC ROMs. The 128KiB RAM version (C610, C710, B128) uses one bank of 64KiB for the BASIC text and another one for all the variables. The 256KiB RAM version uses one bank for text, one for variables, one for arrays and one for strings.

Also the character generator ROMs have a format different from the above. The other character ROMs have 8 bytes of pixel data per character. Those ROMs have 16 bytes per character instead. The C6x0 only uses the first 8 of it, but the C7x0 uses 14 lines per character and needs those larger ROMs. Both ROMs hold, like the PET, two character sets with 128 characters each. Again the second half of the full (256 char) character set is computed by inverting.

- `kernal`, the KERNAL (8KiB) for the business machines (6xx/7xx)
- `kernal.500`, the KERNAL (8KiB) for the personal machine (510) (901234-02)
- `basic.128`, the CBM-II 128KiB BASIC (16KiB)
- `basic.256`, CBM-II 256KiB BASIC (16KiB)
- `basic.500`, C510 BASIC (16KiB) (901236-02 + 901235-02)
- `chargen.500`, character generator ROM for the C5x0 (4KiB) (901225-01)
- `chargen.600`, character generator ROM for the C6x0 (4KiB)
- `chargen.700`, character generator ROM for the C7x0 (4KiB)

The SCPU64 needs the following files:

- `scpu64`, the SCPU64 ROM (128 KiB)
- `chargen`, the character generator ROM (4 KiB)

Next: Keymap files, Previous: System files, Up: System files [Contents][Index]