Go to the first, previous, next, last section, table of contents.


7 Machine-specific features

7.1 C64/128-specific commands and settings

This section lists the settings and commands that are C64/128 specific and thus are not present in the other emulators.

7.1.1 Using cartridge images

Cartridge images are like disk images, but mirror the contents of cartridge ROM images instead of disk images. They are currently not supported on the C128 emulator.

X64 allows you to attach the following kinds of cartridges:

Each of these kinds has a specific command in the "Attach a cartridge image" submenu. When you have successfully attached a cartridge image, you should then reset the machine to make sure the cartridge initializes itself. Of course, it is also possible to detach a currently attached cartridge image ("Detach cartridge image").

If you are using an Action Replay cartridge, you can emulate the cartridge's freeze button with the "Cartridge freeze" command.

Attaching the IEEE488 cartridge automatically enables the IEEE488 interface emulation on the $DF** I/O ports.

7.1.2 VIC-II settings

These settings control the emulation of the VIC-II (MOS6569) video chip used in both the C64 and the C128.

7.1.2.1 VIC-II resources

CheckSsColl
Boolean specifying whether the sprite-sprite hardware collision detection must be emulated.
CheckSbColl
Boolean specifying whether the sprite-background hardware collision detection must be emulated.

7.1.2.2 VIC-II command-line options

-checkss
+checkss
Enable (CheckSsColl=1) and disable (CheckSsColl=0) emulation of hardware sprite-sprite collision detection, respectively.
-checksb
+checksb
Enable (CheckSbColl=1) and disable (CheckSbColl=0) emulation of hardware sprite-background collision detection, respectively.

7.1.3 SID settings

These settings control the emulation of the SID (MOS6581 or MOS8580) audio chip.

7.1.3.1 SID resources

SidFilters
Boolean specifying whether the built-in SID filters must be emulated.
SidModel
Integer specifying what model of the SID must be emulated (0: MOS6581, 1: MOS8580).
SidUseResid
Boolean specifying whether the accurate reSID emulation is being used.

7.1.3.2 SID command-line options

-sidmodel MODEL
Specifies MODEL as the emulated model of the SID chip (SidModel).
-sidfilters
+sidfilters
Enable (SidFilters=1) or disable (SidFilters=0) emulation of the built-in SID filters.
-resid
+resid
Enable (SidFilters=1) or disable (SidFilters=0) usage of the reSID emulator.

7.1.4 C64 I/O extension settings

There are three I/O extensions available: they are located at the address range $DF00 ... $DFFF and each of them is controlled by a boolean resource. Please use these extensions only when needed, as they might cause compatibility problems.

7.1.4.1 C64 I/O extension resources

IEEE488
Boolean specifying whether the IEEE488 interface should be emulated or not.
REU
Boolean specifying whether the 512K RAM Expansion Unit should be emulated or not.
EmuID
Boolean specifying whether the emulation identification extension should be emulated or not.

7.1.4.2 C64 I/O extension command-line options

-ieee488
+ieee488
Enable (IEEE488=1) or disable (IEEE488=0) emulation of the IEEE488 interface.
-reu
+reu
Enable (REU=1) or disable (REU=0) emulation of the 512K RAM Expansion Unit.
-emuid
+emuid
Enable (EmuID=1) or disable (EmuID=0) the emulation identification extension.

7.1.5 C64/128 system ROM settings

These settings can be used to control what system ROMs are loaded in the C64/128 emulators at startup. They cannot be changed from the menus.

7.1.5.1 C64/128 system ROM resources

KernalName
String specifying the name of the Kernal ROM (default `kernal').
BasicName
String specifying the name of the Basic ROM (default `basic'). In the C128 emulator, the ROM image must actually include the editor ROM too.
ChargenName
String specifying the name of the character generator ROM (default `chargen').
KernalRev
String specifying the Kernal revision. This resource can be used to control what revision of the C64 kernal is being used; it cannot be changed at runtime. VICE is able to automatically convert one ROM revision into another, by manually patching the loaded image. This way, it is possible to use any of the ROM revisions without changing the ROM set. Valid values are:
0
Kernal revision 0;
3
Kernal revision 3;
sx
67
Commodore SX-64 ROM;
100
4064
Commodore 4064 (also known as "PET64" or "Educator 64") ROM.

7.1.5.2 C64/128 system ROM command-line options

-kernal NAME
Specify `NAME' as the Kernal ROM file (KernalName).
-basic NAME
Specify `NAME' as the Basic ROM file (BasicName).
-chargen NAME
Specify `NAME' as the character generator ROM file (ChargenName).
-kernalrev REVISION
Specify Kernal revision (KernalRev).

7.2 VIC20-specific commands and settings

This section lists the settings and commands that are VIC20-specific and thus are not present in the other emulators.

7.2.1 Using cartridge images

As with the C64 (see section 7.1.1 Using cartridge images), it is possible to attach several types of cartridge images:

This can all be done via the "Attach cartridge image..." command in the left-button menu. It is also possible to let XVIC "guess" the type of cartridge using "Smart-attach cartridge image...".

Notice that several cartridges are actually made up of two pieces (and two files), that need to be loaded separately at different addresses. In that case, you have to know the addresses (which are usually specified in the file name) and use the "attach" command twice.

A special kind of cartridge file is where the two files mentioned above are concatenated (with removing the two byte load address of the second image) into one 16k image. There are only few of those images, though. Normally the second part is located at $A000. Vice can now attach such concatenated files at the start address $2000, $4000, and $6000. The second half of such an image is moved to $A000. If you encounter 16k images that have the second half not at $A000 you can split the image into two halfs (i.e. one 8194 byte and one 8192 byte, because the first has the load address) and attach both files separately.

One cartridge that is currently only partially supported here is the VIC1112 IEEE488 interface. You have to load the ROM as a cartridge, but you also have to enable the IEEE488 hardware by menu.

7.2.2 Changing memory configuration

It is possible to change the VIC20 memory configuration in two ways: by enabling and/or disabling certain individual memory blocks, or by choosing one among a few typical memory configurations. The former can be done by modifying resource values directly or from the right-button menu; the latter can only be done from the menu.

There are 5 RAM expansion blocks in the VIC20, numbered 0, 1, 2, 3 and 5:

These blocks are called expansion blocks because they are not present a stock ("unexpanded") machine. Each of them is associated to a boolean RamBlockX resource (where X is the block number) that specifies whether the block is enabled or not.

There are also some common memory configurations you can pick from the right-button menu:

As with the X64 (see section 7.1.4 C64 I/O extension settings), it is also possible to enable a special emulator identification mechanism that uses certain memory locations to let a running program query information about the emulator itself; this is enabled by the "Emulator identification" option.

7.2.2.1 VIC20 memory configuration resources

RAMBlock0
RAMBlock1
RAMBlock2
RAMBlock3
RAMBlock5
Booleans specifying whether RAM blocks 0, 1, 2, 3 and 5 must be enabled.
EmuID
Boolean specifying whether the emulation identification extension must be enabled.

7.2.2.2 VIC20 memory configuration command-line options

-memory CONFIG
Specify memory configuration. It must be a comma-separated list of options, each of which can be one the following: For example,
xvic -memory none
gives an unexpanded VIC20. While
xvic -memory 60,a0
or
xvic -memory 3,5
enables memory in blocks 3 and 5, which is the usual configuration for 16k ROM modules.
-emuid
+emuid
Enable (EmuID=1) or disable (EmuID=0) the emulation identification extension.

7.2.3 VIC20 system ROM settings

These settings can be used to control what system ROMs are loaded in the VIC20 emulator at startup. They cannot be changed from the menus.

7.2.3.1 VIC20 system ROM resources

KernalName
String specifying the name of the Kernal ROM (default `kernal').
BasicName
String specifying the name of the Basic ROM (default `basic').
ChargenName
String specifying the name of the character generator ROM (default `chargen').
CartridgeFile2000
CartridgeFile4000
CartridgeFile6000
CartridgeFileA000
CartridgeFileB000
String specifying the name of the respective cartridge ROM images.

7.2.3.2 VIC20 system ROM command-line options

-kernal NAME
Specify `NAME' as the Kernal ROM file (KernalName).
-basic NAME
Specify `NAME' as the Basic ROM file (BasicName).
-chargen NAME
Specify `NAME' as the character generator ROM file (ChargenName).
-cart2 NAME
-cart4 NAME
-cart6 NAME
-cartA NAME
-cartB NAME
Specify `NAME' as the cartridge image to attach. (CartridgeFile2000,...,CartridgeFileB000).

7.3 PET-specific commands and settings

This section lists the settings and commands that are PET-specific and thus are not present in the other emulators.

7.3.1 Changing PET model settings

With xpet, it is possible to change at runtime the characteristics of the emulated PET so that it matches (or not) the ones of a certain PET model, and it is also possible to select from a common set of PET models so that all the features are selected accordingly.

The former is done by changing the following resources (via resource file, command line options or right-menu items):

RamSize
Size of memory in kByte. 96k denotes a 8096, 128k a 8296.
IOSize
Size of I/O area in Byte. Either 2048 or 256 for 8296.
Crtc
Enables CRTC 6545 emulation (all models from 40xx and above)
VideoSize
The number of columns on the screen (40 or 80). A 0 auto-detects this from the ROM.
Ram9
The 8296 can map RAM into the address range $9***
RamA
The 8296 can map RAM into the address range $A***
SuperPET
This resource enables the SuperPET (MicroMainFrame 9000) I/O and disables the 8x96 mappings.
Basic1
If (by checksum) a version 1 kernal is detected, then the kernal ROM is patched to make the IEEE488 interface work.
Basic1Chars
Exchanges some character in the character ROM that have changed between the first PET 2001 and all newer versions.
EoiBlank
This resource enables the "blank screen on EOI" feature of the oldest PET 2001.
EmuID
Enable emulator ID (at $e8a0-$e8ff, for use see C64).
DiagPin
Set the diagnositc pin on the PET userport (see below).
ChargenName
Specify `NAME' as the character generator ROM file
KernalName
Specify `NAME' as the kernal ROM file. This file contains the complete BASIC, EDITOR and KERNAL ROMs and is either 16k (BASIC 1 and 2) or 20k (BASIC 4) in size.
EditorName
Specify `NAME' as the editor ROM file. This file contains an overlay for the editor ROM at $E000-$E7FF if necessary.
RomModule9Name
Specify `NAME' as the $9*** Expansion ROM file. This file contains an expansion ROM image of 4k.
RomModuleAName
Specify `NAME' as the $A*** Expansion ROM file. This file contains an expansion ROM image of 4k.
RomModuleBName
Specify `NAME' as the $B*** Expansion ROM file. This file contains an expansion ROM image of 4k. This file overlays the lowest 4k of a BASIC 4 ROM.

Choosing a common PET model is done from the right-button menu instead, by choosing an item from the "Model defaults" submenu. Available models are:

Notice that this will reset the emulated machine.

It is also possible to select the PET model at startup, with the -model command-line option: for example, `xpet -model 3032' will emulate a PET 3032 while `xpet -model 8296' will emulate a PET 8296.

7.3.2 The PET diagnostic pin

It is possible to enable or disable emulation of the PET diagnostic pin via the DiagPin resource, or the "PET userport diagnostic pin" item in the right-button menu.

When the diagnostic pin is set, the Kernal does not try to initialize the BASIC, but directly jumps into the builtin machine monitor.

7.3.3 PET command line options

These are the commandline options specific for the CBM-II models.

-model MODEL
Specify the PET model you want to emulate.
-kernal NAME
Specify `NAME' as the Kernal/BASIC ROM file (KernalName).
-editor NAME
Specify `NAME' as the editor ROM file (EditorName).
-chargen NAME
Specify `NAME' as the character generator ROM file (ChargenName).
-rom9 NAME, -romA NAME, -romB NAME
Specify `NAME' as the ROM image file for the respective cartridge areas (RomModule9Name, RomModuleAName, RomModuleBName).
-petramA, -petramB
Switch on RAM mapping on addresses $9000-$9fff, $a000-$afff (Ram9, RamA).
-superpet, +superpet
Enable/Disable SuperPET I/O emulation (SuperPET).
-basic1, +basic1
Enable/Disable patching the IEEE488 section of the PET2001 ROM when detected (Basic1).
-basic1char, +basic1char
Enable/Disable PET 2001 character generator (Basic1Chars).
-eoiblank, +eoiblank
Enable/Disable EOI blanking the screen (EoiBlank).
-emuid
+emuid
Enable (EmuID=1) or disable (EmuID=0) the emulation identification extension (at $e8a0-$e8ff).
-diagpin
+diagpin
Enable (DiagPin=1) or disable (DiagPin=0) the diagnostic pin at the PET userport.

7.3.4 Changing screen colors

It is also possible to choose what color set is used for the emulation window. This is done by specifying a palette file name (see section 4.3 Palette files) in the PaletteName resource. The menu provides the following values:

7.4 CBM-II-specific commands and settings

This section lists the settings and commands that are CBM-II-specific and thus are not present in the other emulators.

7.4.1 Changing CBM-II model

With xcbm2, it is possible to change at runtime the characteristics of the emulated CBM so that it matches (or not) the ones of a certain CBM model, and it is also possible to select from a common set of CBM models so that all the features are selected accordingly.

The former is done by changing the following resources (via resource file, command line options or right-menu items):

UseVicII
Whether to use VIC-II for video output (value 1) or the CRTC for the other machines (value 0)
RamSize
Size of memory in kByte. Possible values are 128, 256, 512 and 1024
Ram08, Ram1, Ram2, Ram4, Ram6, RamC
Expanded CBM-II models could map RAM to the expansion ROM areas at $0800-$0fff, $1000-$1fff, $2000-$3FFF, $4000-$5FFF, $6000-$7FFF and $c000-$cfff respectively.
Cart2Name, Cart4Name, Cart6Name
Specify `NAME' as the $2000-$3FFF, $4000-$5FFF or $6000-$6FFF Expansion ROM file. This file contains an 8k ROM dump.
ModelLine
The CBM-II business models have two hardcoded lines at one of the I/O ports. From those lines the kernal determines how it should init the CRTC video chip for either 50Hz (Europe) or 60Hz (North America), and either for 8 (C6x0) or 14 (C7x0) scanlines per character. 0 = CBM 7x0 (50Hz), 1 = 60Hz C6x0, 2 = 50Hz C6x0).

Choosing a common CBM-II model is done from the right-button menu instead, by choosing an item from the "Model defaults" submenu. Available models are:

Notice that this will reset the emulated machine.

Warning: At this time switching between 510 and other machines during runtime is not supported and will not work.

It is also possible to select the CBM model at startup, with the -model command-line option: for example, `xcbm2 -model 610' will emulate a CBM 610 while `xcbm2 -model 620' will emulate a CBM 620. Notably this is the only way to start a C510 emulation, with -model 510.

7.4.2 CBM-II command line options

These are the commandline options specific for the CBM-II models.

-usevicii
+usevicii
Specify whether to use (-usevicii) or not to use (+usevicii) the VIC-II emulation.
-kernal NAME
Specify `NAME' as the Kernal ROM file (KernalName).
-basic NAME
Specify `NAME' as the Basic ROM file (BasicName).
-chargen NAME
Specify `NAME' as the character generator ROM file (ChargenName).
-cart2 NAME, -cart4 NAME, -cart6 NAME
Specify `NAME' as the ROM image file for the respective cartridge areas (Cart2Name, Cart4Name, Cart6Name).
-ram08, -ram1, -ram2, -ram4, -ram6, -ramC
Switch on RAM mapping in bank 15 on addresses $0800-$0fff, $1000-$1fff, $2000-$3fff, $4000-$5fff, $6000-$7fff resp (Ram08, Ram1, Ram2, Ram4, Ram6, RamC).
-modelline
Define the hardcoded model switch in the CBM-II models.

7.4.3 Changing screen colors

It is also possible to choose what color set is used for the emulation window. This is done by specifying a palette file name (see section 4.3 Palette files) in the PaletteName resource. The menu provides the following values:


Go to the first, previous, next, last section, table of contents.