VICEKB

From vice-emu
Jump to: navigation, search

Purpose of this page: collect some of the old knowledge base articles so they dont get lost and can at some point be merged into the main documentation. Anything that has been merged into vice.texi should get removed from here.

The information provided here might be outdated or even plain wrong - take it with a grain of salt

03-001

[Info] Which keys do I have to press for the various CBM keys on Windows machines?

Have a look at this image for the keys in the C64 emulator x64:

C64keyboard.gif

Some additional info:

Run/Stop  ESC
Restore  PgUp
C= (Commodore)  TAB
CAPS-Key  F4  (X128 only)
VDC-Key  F7  (X128 only)

04-001

[Info] Which keys do I have to press for the various CBM keys on OS/2 machines?

The following table lists the key combinations:

Run/Stop  ESC or CAPS LOCK
Restore  PgUp or F12
C= (Commodore)  PgUp or F12
CAPS-Key  F10  (X128 only)
VDC-Key  F11 or Alt+V  (X128 only)

10-003

[Howto] How to get VIC20 games to work

It's not alway easy to get VIC-20 games to work due to its different configurations. This article tries to give some hints what you can try to run them.

To run VIC-20 games, try one or more of the following:

  • Try to autorun with different memory sets: "no expansion", "3K" and "Full"
  • Load the file in a hex editor and have a look at the first two bytes. If they are e.g. 00 A0 the file should probably be attached as a cartridge image at $A000.
  • Some Scott Adams text adventures need "special" handling: (taken from http://members.nbci.com/vic20/adams.html):
    • Use full memory expansion and "Virtual Device Traps".
    • POKE44,16:POKE56,30:POKE4096,0:new
    • POKE648,30 (hit Runstop/Restore which is Esc/PgUp in WinVICE)
    • LOAD"4.Voodoo Castle",8,1
    • SYS32592

10-007

[Howto] Select 80 columns mode on x128

You want to change from 40 columns to 80 columns or vice versa on x128.

You have the following mutual exclusive possibilities:

  • Press F7 (which mimics the 40/80 column switch of a real C128). Afterward, issue a reset, or press Run/Stop-RESTORE
  • Press F1-X to change over to the other monitor

11-002

[Howto] Enable networking on VICE/Unix

Starting with VICE 1.15, there is support for two ethernet cartridges allowing network access: The "The Final Ethernet" (TFE) and the "Retroreplay-Net" (RR-Net) cartridges. If you want to enable support for these, you have to follow the instructions below.

!WARNING!

Installing support for networking with VICE requires you to install 3rd party products on your machine. The VICE team cannot be made responsible for any problems and/or damage which arises from this! The rejection of any warranty for VICE applies, too.

You have to install two libraries, libpcap and libnet. libpcap is a capture library, that is, it captures every packet which is available on the network, regardless if it was destined for your machine or not. libnet, on the other hand, is a library which allows injection of arbitrary packets into the network.

From this, it follows that it may pose a security problem using these two libraries in a network. Using libpcap can result in disclosure of any information that is available on your network which is not secured by other means! Furthermore, libnet might allow even further attacks on your infrastructure!

Many other tools use both these libraries. Anyway, all these tools were developed with security in mind, especially since they all need root privileges on your machine. VICE is NOT designed with security aspects in mind, so there may be flaws that could allow exploitation of VICE bugs even over the network! See, for example, VICE security advisory 01/2004.

Installing libpcap and libnet, you acknowledge that you're well aware of these security problems and that the VICE team cannot be made responsible for any problems and/or damage which may arise from the use of these libraries! If you don't acknowledge this, don't install the tools and/or use VICE networking.

PREREQUISITES

You need two libraries installed, libpcap and libnet. You can get them from your OS manufacturer or distributor, or you can use the vanilla sources from http://www.tcpdump.org/ for libpcap, and http://www.packetfactory.net/libnet/ for libnet. If you use the manufacturers' version, don't forget to install the development packages, too. Most times, they are named like the main package, but with a "-dev" or "-devel" suffix. These are needed for compiling VICE.

SOLUTION

For networking support, you need root privileges on your local machine. Without this, there's currently no chance to have networking work! Please, read the WARNING above about this topic!

If you have root privileges, follow these instructions to install networking with VICE:

  • First, read the above warning!
  • Make sure libnet and libpcap are installed. This step depends upon your system manufacturer or distributor, so we cannot give general advice. If in doubt, use the versions from http://www.tcpdump.org/ for libpcap, and http://www.packetfactory.net/libnet/ for libnet.
  • Configure and build VICE. Make sure you add --enable-ethernet to the ./configure-options.
  • Now, start VICE from your root account. Go to Settings - I/O extensions - Ethernet Emulation and select "Enable ethernet"&. If you want, enable "RR-Net compatibility mode", too. If this option is net set, the ethernet emulation runs in "The Final Ethernet" mode. Now, select the menu entry "Interface" in the same menu, and enter the name of the ethernet interface the ethernet simulation should run on. On Linux systems, this will be eth0 in most cases.
  • The only program using ethernet we know to date is Contiki. To use Contiki, get a version of it from the website. Make sure that it is a version which is enabled for ethernet (TFE or RR-Net)!
  • Run this version of Contiki inside x64. Now, enable ethernet with TFE or RR-Net settings, depending on which type you want to use. Since these two are almost identical, only some addresses are changed, it's more of a matter of taste which one to use. Select the ethernet device you want to use with ethernet if you have more than one.
  • You need an IP address in order to let Contiki run on your network. The virtual ethernet device of VICE runs as if it were connected to your host computer's device with a hub. No network address translation (NAT) or the like is performed! Get an IP from your network administrator as if you had a new machine to connect to your network. In fact, you have one, although it is only emulated.
  • Now, run Contiki, enter your IP configuration using the IP from above, and everything should work.

Enjoy the new surfing experience.

FAQ

  • Why do I have to log in as root in order to start VICE with network support?
This is because libpcap and libnet require root privileges for anyone using these libraries due to security reasons. Unfortunately, after this, VICE runs with root privilege which might cause some security problems. See the WARNING above.
  • But I don't want to log in as root
You have the possibility to run VICE after you've did an su, or with the sudo command. Anyway, VICE will still run as root. If you want to use this, check your system for su or sudo and use its documentation.
  • I cannot select Ethernet emulation in VICE
This happens if VICE does not run as root. Make sure you have the needed privileges, and try again.
  • The ethernet options are not available at all!
This happens if VICE has not been compiled with ethernet emulation enabled, or the appropriate libraries are not found.
    • Make sure you're using VICE 1.15 or newer
    • Make sure you have run ./configure in the VICE directory with activated --enable-ethernet option.
    • Check your config.log file for any errors regarding libpcap or libnet.

11-004

[Howto] How to use IEEE drives on x64/x128

You want to use an IEEE drive (i.e., CBM 2031, 2040, 3040, 4040, 8050, 8250, or SFD 1001) with your x64 and/or x128 emulator. Anyway, the appropriate settings in Settings/Drive Settings are grayed out.

To be able to use an IEEE drive, you need to enable IEEE emulation for the emulator. To do this, follow the following steps:

  • Download the IEEE 488 ROM image from the CBM archives (formerly known as FUNET)
  • Attach that image with File/Attach cartridge image/IEEE488 interface image.
  • Make sure you have a one-drive system only (that is, go to Settings/Peripheral Setting, uncheck "use IEC device" for all devices, go to Settings/Drive Settings and select "Floppy type" as "none" for all drives other than drive 8.
  • After this, all drives can be selected in x64 and x128.

13-001

[Howto] How to access ZIP files from within WinVICE

You have got a huge collection of CBM software which take a huge amount of space on your HD when unpacked, but individually zipping the files would save you a lot of space. Anyway, you have not figured out how to use ZIP files from within WinVICE.

WinVICE already supports ZIP files; anyway, other as in the other ports, the support is not built-in but relies on external, 3rd party software.

WinVICE already has ZIP support. To activate it, do the following:

  • Download the Win32 version of Unzip from http://www.info-zip.org/pub/infozip/UnZip.html.
  • Put the unzip.exe to a directory that is in your PATH. Then VICE will use unzip.exe to handle zip files (restriction: only one d64 or tap or

... file per zip)

You have to use UNZIP, PKunzip doesn't work!!!

13-004

[Howto] Print text to a file in WinVICE

Let's take you are in need of printing a BASIC program listing. Follow these steps:

  • Start the emulator (x64, for example) with default settings.
  • Disable "True drive emulation". This is critical!
  • go to "Settings/Peripheral settings", select "Printer 4", then set "Printer Emulation" to "Filesystem".
  • Type open4,4<ENTER>
  • Type cmd4:list<ENTER>
  • Type print#4:close4<ENTER>
  • Close the emulator or Disable printer. This is needed to flush the data to the file).
  • Have a look at the file viceprnt.out in your VICE working directory with your favourite editor.

13-005

[Howto] Enable networking with WinVICE

Starting with WinVICE 1.13, there is support for two ethernet cartridges allowing network access: The "The Final Ethernet" (TFE) and the "Retroreplay-Net" (RR-Net) cartridges. If you want to enable support for these, you have to follow the instructions below.

!WARNING!

Installing support for networking with VICE requires you to install 3rd party products on your machine. The VICE team cannot be made responsible for any problems and/or damage which arises from this! The rejection of any warranty for VICE applies, too.

The product which has to be installed, WinPCAP, is a capture library. That is, it captures every packet which is available on the network, regardless if it was destined for your machine or not. From this, it follows that it is a real security flaw using WinPCAP in a network. Using WinPCAP can result in disclosure of any information that is available on your network which is not secured by other means! Installing WinPCAP, you acknowledge that you're well aware of this security flaw and that the VICE team cannot be made responsible for any problems and/or damage which may arise from the use of WinPCAP!

PREREQUISITES

At that moment, The ethernet emulation for WinVICE only works if you have a real ethernet card on your machine and you are connected to the net via it, that is, you must have direct access to any station you want to access. Ethernet is emulated as if the VICE emulator was connected to your ethernet card via a hub. Every protocol, in particular PPPOE or other protocols, are only supported if the corresponding emulated program supports these!

SOLUTION

For networking support, you need administrative rights (administrator account or similar) on your windows machine. Without this, there's no chance to have networking work!

If you have administrative rights, follow the following instructions to install networking with VICE:

  • First, read the above warning!
  • Get WinPCAP from their site. There's only need for the WinPCAP auto-installer in order to let VICE run.
  • Install the WinPCAP package you just downloaded. For this, you need to have the right to install new drivers to your system. In general, the administrator account does have this right.
  • Now, start WinVICE as you do always. Do this with the user account you have used in the previous step to install WinPCAP! Choosing the VICE menu entry Settings/Ethernet, a dialog box shows up, allowing you to select Ethernet as NONE, TFE ("The final ethernet") or RR-Net. If this is possible, WinPCAP has be installed successfully to your system. If not, check the WinPCAP FAQ to find a solution.
  • The only program using ethernet we know to date is Contiki. To use Contiki, get a version of it from the website. Make sure that it is a version which is enabled for ethernet (TFE or RR-Net)!
  • Run this version of Contiki inside x64. Now, enable ethernet with TFE or RR-Net settings, depending on which type you want to use. Since these two are almost identical, only some addresses are changed, it's more of a matter of taste which one to use. Select the ethernet device you want to use with ethernet if you have more than one.
  • You need an IP address in order to let Contiki run on your network. The virtual ethernet device of VICE runs as if it were connected to your host computer's device with a hub. No network address translation (NAT) or the like is performed! Get an IP from your network administrator as if you had a new machine to connect to your network. In fact, you have one, although it is only emulated.
  • Now, run Contiki, enter your IP configuration using the IP from above, and everything should work.

Enjoy the new surfing experience.

It's not necessary to log on as administrator in order to run the ethernet emulation. Anyway, this is necessary the first time you start VICE after you've booted. After you've done this, you can log off and log in with another account to run VICE. To circumvent this, see the FAQ section below.

FAQ

  • Why do I have to log in as administrator in order to start VICE with network support?
This is because the WinPCAP driver is not loaded at system startup, but rather on-demand when someone like VICE needs it. Not every user is allowed to start services, thus, you have to log in as a user with these rights in order to start it. The administrator is a person having this right. On many machines, an account belonging to the "main user" group is allowed, too. On these machines, you don't need administrator rights in order to start VICE with networking support.
If you don't like this solution, you have another option. See Q-18 at the WinPCAP FAQ.
  • I have problems with networking support; furthermore, there's a firewall on my machine
This is a know problem with WinPCAP, it does not work well with all firewalls, see Q-10 at the WinPCAP FAQ. Unfortunately, we don't have a solution for this. Disabling the firewall, as suggested in Q-10, might not be an option for you, but we cannot do anything about it.
  • I have another problem not covered here.
Have a look at the WinPCAP FAQ, there might be a solution for your problem.

13-006

[Howto] Enable AVI recording with WinVICE

Download the ffmpeg dlls from http://www.zimmers.net/anonftp/pub/cbm/crossplatform/emulators/VICE/ffmpeg-0.5.1-win32dll.zip (for WinVICE 1.21 or later). Put them into the same directory your x64.exe is. Then you should be able to choose different media types.

13-007

[Howto] Use OpenCBM (a.k.a. cbm4win) with WinVICE

Starting with VICE 1.16, there is support for OpenCBM. That is, you can connect a real CBM drive to your PC using OpenCBM. You want to enable this feature.

cbm4win and cbm4linux have re-joined. The new version is called OpenCBM now. Thus, this article has been changed to refer to OpenCBM now.

  • Download OpenCBM and install it onto your machine.
  • If you want to use OpenCBM inside of an emulator (for example, x64), then go into the menu Settings/Peripheral Settings. There, you must choose "Use IEC device" for the drive you want to use, and then select "Real IEC device".
  • If you want to use OpenCBM with c1541, start it with c1541 /dev/cbm.

20-006

[Bug] Wrong keystrokes in CP/M mode on x128

Sometimes, the wrong keys appear when you press a key with x128 in CP/M mode, for example, you press an : and you get a [.

This is a known problem with the keyboard emulation that only pops up using CP/M. A fix does not exist.

If you have symbolic keyboard mapping enabled, the emulator has to "de-shift" some keys. For example, if you want to get a ":" on a german keyboard, you have to press "." and shift simulaneously. Then, the emulator sees the events "shift pressed" and ":" pressed.

At the moment you have pressed shift, the emulator does not know what key you are using next (or even if you are actually going to use another key before releasing shift again), so it has to deliver this state to the keyboard matrix.

If you press "." then to achive a ":", the emulator has to take back the shift key although it is still pressed, as the ":" is an unshifted key in the c64/c128 keyboard matrix.

This works for c64 and c128 in c64 mode, but for some strange reason the CP/M keyboard routine does not like this. Perhaps it is using the shift state of the previous keyboard interrupt or something like this.

There is no real solution to date, but there's a work-around for the problem with the ":". Create your own positional keymap, so you do not have to press shift to get the ":" key. Take a look at C128/position.vkm.