Individual Computers Turbo Chameleon 64 User Manual

Turbo Chameleon 64
User Manual
Draft Version (Beta 7b)
12/06/12
Contents

1. Contents

1. Contents...........................................................................................................................................2
2. Getting started................................................................................................................................4
2.1. What's in the Box?...................................................................................................................................................5
2.2. Operation in standalone mode.................................................................................................................................6
2.3. Operation in cartridge mode....................................................................................................................................9
2.4. Sound output..........................................................................................................................................................10
3. Updating the Chameleon..............................................................................................................11
3.1. Updating using update.prg.....................................................................................................................................11
3.2. Updating via USB..................................................................................................................................................12
3.3. If something goes wrong........................................................................................................................................13
4. Overview........................................................................................................................................14
4.1. Flash memory organization....................................................................................................................................14
4.2. Using disk images..................................................................................................................................................15
4.3. Using cartridges.....................................................................................................................................................16
4.4. using custom ROM images....................................................................................................................................17
5. Chameleon Menu System.............................................................................................................18
5.1. Boot Loader...........................................................................................................................................................18
5.2. Keys.......................................................................................................................................................................20
5.3. Main Menu.............................................................................................................................................................21
5.4. Options...................................................................................................................................................................22
5.5. File Browser...........................................................................................................................................................28
5.6. ML Monitor............................................................................................................................................................35
5.7. Online Help............................................................................................................................................................37
5.8. System Info...........................................................................................................................................................38
2
Contents
6. ChaCo, the Chameleon Control Software..................................................................................39
6.1. Preparations............................................................................................................................................................39
6.2. Linux notes.............................................................................................................................................................39
6.3. Mac OSX notes......................................................................................................................................................39
6.4. Overview................................................................................................................................................................40
6.5. Examples................................................................................................................................................................42
6.6. Command-line options...........................................................................................................................................47
6.7. chacocmd...............................................................................................................................................................48
7. Frequently asked questions..........................................................................................................49
8. known Bugs and Limitations.......................................................................................................52
8.1. Turbo Chameleon FPGA Core...............................................................................................................................52
8.2. Menu System.........................................................................................................................................................52
8.3. ChaCo....................................................................................................................................................................55
9. Reporting Bugs.............................................................................................................................56
9.1. Test Procedure........................................................................................................................................................56
10. Developer information...............................................................................................................58
11. Related projects...........................................................................................................................59
12. Appendix......................................................................................................................................60
12.1. PS/2 Keyboard Key Assignment..........................................................................................................................60
12.2. PS/2 Keyboard Joystick Assignment...................................................................................................................61
12.3. CDTV Remote Control Key Assignment.............................................................................................................62
12.4. supported Cartridge types....................................................................................................................................63
12.5. Opening the Cartridge..........................................................................................................................................64
12.6. Re-programming the USB micro-controller........................................................................................................66
12.7. configuring Quartus for JTAG.............................................................................................................................70
12.8. Chameleon cable pinouts.....................................................................................................................................75
12.9. Technical Data......................................................................................................................................................77
13. Credits..........................................................................................................................................78
14. Fine print.....................................................................................................................................79
3
Getting started

2. Getting started

Thank you for purchasing an Individual Computers product. The Chameleon is one of the most complex projects that we've ever made for any computer, and it will take much more than this user manual to explain all the features and possibilities of this cartridge. Take your time to read all of this document.
You've been made aware a number of times that the current state of the firmware is beta, and we appreciate that you've bought the unit anyway. If you find any bugs, please report them either directly to Individual Computers, or to the Yahoo mailing list:
http://tech.groups.yahoo.com/group/chameleon_64/
This is where the developers meet, and where your questions will be answered by the people who made the cartridge. We will also make important announcements on that list, so even if you don't have anything to report, please subscribe to that list.
Please download the latest version of the FPGA Core and ChaCo, the Chameleon Control software, from:
http://beta.icomp.de/
4
Getting started

2.1. What's in the Box?

upper left corner: mini USB cable (for data transfers, 180cm)
middle bottom: Turbo Chameleon 64 :-)
upper right corner: breakout cable with connectors for USB (power supply, 80cm), keyboard
and mouse (both PS/2, 20cm), IEC (DIN, 20cm)
a short user manual (which you do not need any more now that you have found this one)
5
Getting started

2.2. Operation in standalone mode

In stand-alone mode, you will need at least the breakout cable to connect to Chameleon, because it will provide power to the cartridge. Make sure that the power supply can deliver at least the 2.5W (5V and 500mA) that's specified for a USB connection. The Chameleon hardware will take about 2 Watts of power, so make sure that your keyboard and mouse don't overload the power supply! Most PCs don't have any trouble supplying Chameleon with power. Note that some PCs don't provide power without a data connection on a USB port. In that case, please use a separate power supply.
Connect your monitor to the VGA output. By default the Turbo Chameleon 64 FPGA core uses a standard 800x600 mode with a refresh rate of 72Hz. Some monitors don't support this high frequency. Please consult your monitor's manual if you have any trouble with Chameleon's VGA output.
Connect your keyboard to the purple PS/2 connector, and your mouse to the green PS/2 connector. The IEC connector can be left open. If you want to use ChaCo with the cartridge, you also need to connect the mini-USB cable to that PC. (see chapter 6 ChaCo, the Chameleon Control Software)
6
Getting started

2.2.1. Using the docking station

The Chameleon docking station extends the available ports of your Chameleon by the following:
four joystick ports one C64 keyboard connector one Amiga 500 keyboard connector
Both keyboard connectors are keyed, which means that they have a missing pin in order to help you finding the correct orientation of the connector. However, the A500 keyboard connector is not always keyed, so you have to take a close look at the colours. The black wire of the A500 keyboard is marked next to the connector. Wrong connection may destroy both, the docking station and the keyboard! Better double-check before you apply power to the unit.
All C64 keyboards that we have encountered have been keyed. There is no danger when plugging in the keyboard the wrong way round – you will just observe funny behaviour. Caution: This only applies to the Chameleon docking station! You may actually destroy a C64 if you connect the keyboard the wrong way round!
Please download and install Chameleon core Beta-7 or higher before you use the docking station. It's available from http://beta.icomp.de/. Older cores will not support the docking station, and the ports won't be of any use to you. For flashing, please disconnect all external hardware: Remove the mouse, remove the PS/2 keyboard and remove the SD card from the slot. Do not connect the docking station to Chameleon when you're updating the flash!
7
Getting started
There is only one way that Chameleon fits the docking station: It's with the button side up. Slide the cartridge all the way in until the black connector is at least covered half by the Chameleon. Make sure that there's proper contact between the docking station and the Chameleon – the cartridge may not be tilted at all.
Connect the breakout cable and supply power to the whole setup through the USB connector of the breakout cable. Make sure that your power supply is strong enough! With the docking station, we recommend to use a 5V/1000mA power supply. If available, use a 5.2V/1000mA power supply, but never use any higher voltage than 5.2V. Only use regulated power supplies.
8
Getting started

2.3. Operation in cartridge mode

WARNING: Chameleon is a C64 cartridge. It does not work in the C128. Don't even try, as this might cause damage to the computer, the cartridge or both. Don't experiment, it can not work
and you risk damage to valuable equipment that's not covered by warranty. WARNING: Also, Chameleon does not work in cartridge port expanders – neither as the only
cartridge, nor together with other cartridges. It will only work if it's plugged directly to the C64. Don't experiment with combinations of cartridges! It cannot work, and you risk damage to valuable equipment that's not covered by warranty.

2.3.1. Operation on a C64

Remove the protective plastic from the Chameleon expansion connector. Just push it in and rotate it until it comes out – be gentle, there's no force required! The brown rubber is glued in place. Don't try to peel it out, it is required if you want to put the protection back in. The rubber will not conflict with the C64's expansion port.
9
Getting started
Now insert the cartridge into the C64 expansion port with the buttons facing up. Connect your VGA monitor to the VGA output of Chameleon. At this point, we recommend to also connect your old 15kHz screen, so you can compare the output of Chameleon against the output of the original VIC chip.
Use of the breakout cable is optional on the C64. If you want to use a PS/2 keyboard or mouse, you'll need it.
If you want to use the ChaCo software with this setup, you also need to connect the mini-USB cable to your PC. (see chapter 6 ChaCo, the Chameleon Control Software)
Note for SX-64 users
If for some reason the Chameleon fails to start the menu system, power-cycle the computer and hold "2" during power-on. This will make the menu use a fail safe configuration (skips booting from SD card and copying ROMs from C64)
There seems to be a timing problem that makes copying ROMs from the C64 fail on some SX-64s, this will result in a crash when exiting the menu system. If this is the case, disable the "copy ROMs from C64" option (see chapter 5.4 Options), write options and power-cycle the computer. Optionally you can enable "boot from SD card" and put a SX-64 kernal (or whatever else you want to use) ROM image on it (see chapter 5.1 Boot Loader).

2.4. Sound output

Chameleon and C64 each have their own audio outputs, the Chameleon doesn't get the audio from the C64 and the C64 doesn't get the audio from the Chameleon so each must be connected seperately.
The Chameleon has a stereo output (it can emulate 2 SIDs). You connect it to your speakers with an
3.5 mm stereo-audio plug similar what portable players and many laptops have. You need speakers with build-in amplifier (or separate amplifier as Chameleon doesn't have one).
10
Updating the Chameleon

3. Updating the Chameleon

Each release archive contains a combined ChaCo, core and software update. The two files needed to update manually (*.rbf for the core and *.bin for the menu and ROMs) can be found in the UPDATE directory. The CHAM64 directory contains files used by the menu system, such as the online help. Just copy the entire directory to your SD card.
Updates are made available at http://beta.icomp.de on a regular basis. Please make sure that you are running the latest firmware and are using the latest version of ChaCo before reporting problems.

3.1. Updating using update.prg

Copy the UPDATE directory and UPDATE.PRG to the root of your SD card (or simply unpack the entire release archive to it), insert the SD card and power-cycle the Chameleon. (If you are updating from beta-7a or earlier, run UPDATE.PRG from the file-browser.)
In addition to the files contained in the release archive, the UPDATE directory may contain the following custom ROM files:
BASIC.ROM" - C64 basic ROM
"KERNAL.ROM" - C64 kernal ROM
"CHARGEN.ROM" - C64 character ROM
"MMC64.ROM" - MMC64 BIOS ROM
"SLOT1.ROM" - Cartridge slot 1 ROM (*1)
"SLOT2.ROM" - Cartridge slot 2 ROM (*1)
"DRIVE1.ROM" - 1541 drive 1 ROM
"DRIVE2.ROM" - 1541 drive 2 ROM
*1) Cartridge ROMs must be plain binaries (without load address), NOT .crt files. Files in proper format can be created by the ROM saver (see chapter 5.5.2 User / File menu ). Cartridges which are bigger than 64k can not be used in slot 1 and 2, see chapter 12.4 supported Cartridge types for details. To make cartridges readily available for use, the respective cartridge type must be configured in the settings first (see chapter 5.4 Options).
It is recommended to first test custom ROM files by loading them from SD card (see 5.1 Boot Loader) before flashing them permanently. Flashing broken ROM files may render the C64 or the menu system unusable.
11
Updating the Chameleon

3.2. Updating via USB

3.2.1. Preparations

Before updating your Chameleon, please make sure that it has sufficient power. Any and all trouble that has been reported so far was related to power problems that were caused by external power draining. To be safe, please:
disconnect the Chameleon docking station
disconnect the PS2 keyboard
disconnect the PS2 mouse
you MUST remove the SD/MMC card from the card slot (else you will get an error message
and can not update)
If you are using a USB charger as your power supply, please make sure it's a 1000mA type. Although Chameleon takes just over 400mA of power, many 500mA types are already at their limit with a Chameleon. If possible, use a 5.2V/1000mA type instead of 5V/1000mA. However, do not go over 5.2V for supply voltage!

3.2.2. Using the updater program

Windows users just double-click the update.exe file in Windows explorer and follow the instructions on screen.
Linux und OSX users may run the respective updater program from a terminal. Since the executable bit of the binary is not preserved in the archive, you will have to set it manually first like this:
$ sudo chmod +x ./update-linux32
After that run the updater as root:
$ sudo ./update-linux32

3.2.3. Using ChaCo

You may also update the Chameleon manually using ChaCo or chacocmd, you can find the required files in the UPDATE directory. (See chapter 6.5.2 Flashing a Core)
12
Updating the Chameleon

3.3. If something goes wrong

First, don't panic :) There is no way to “brick” the Chameleon by updating, the Chameleon might not start, but it can always be fixed by updating with a valid FPGA core image. In case updating using UPDATE.PRG failed (please report this), re-try updating via USB (see 3.2 Updating via USB above).
If you have trouble flashing, try again. Before a re-try:
Double check that you have sufficient power. Maybe try another USB port.
Make sure to select the correct files (when updating manually)
PLEASE POWER-CYCLE YOUR CHAMELEON. It may then give an error-blink on the
red LED, but there's nothing to worry about. Updating will fix it.
13
Overview

4. Overview

Upon power-up, Chameleon will load the OS from its on board flash. It will then start the menu system which lets you perform various actions. (see chapter 5 Chameleon Menu System)
The outermost button (right button) is your reset button. The middle button is the freeze and menu button. The left button can be used to perform various actions such as change disks in the emulated floppy.
Press and hold the reset button for more than 0.8 seconds to re-launch the Chameleon core. This is (almost) equivalent to a fresh power-up. Press and hold the Freeze button for more than 0.8 seconds to enter the menu system.
Button PS/2 Key remote Function
Left button F11 GENLOCK Multi purpose, see chapter 5.4 Options Middle button F12 CD/TV Freeze, hold longer than 0.7s to enter menu Right button PrntScrn POWER Reset, enter menu if "reset to menu" option is enabled

4.1. Flash memory organization

There is a flash chip built into Chameleon that's purely for system purposes and hence can't be utilized by the user. The flash carries FPGA cores and their respective ROM files. The FPGA core is the true core of Chameleon's operations – it defines the hardware behaviour. If we fix a bug in the hardware (such as a VIC effect emulation or register functions of a freezer), we will provide the fix in the form of an FPGA core file.
The size of the on-board flash is 16 MByte, organized in 16 slots of 1 MByte each. Every slot can carry one FPGA core and the corresponding ROM file. If Chameleon is powered up, the FPGA is started from slot number 0.
If starting the FPGA was not successful, then the micro-controller will tell you so by sending out a blink code on the red LED of Chameleon. The blink code will tell you which slot was attempted to be used. Just count the number of blinks, subtract one and you'll know which slot of the flash chip is corrupted. If for example slot 0 is corrupted, then the LED will flash once, then pause for a second and start over. If the LED blinks four times, then slot number three is the one you should take a closer look at.
14
Overview

4.2. Using disk images

4.2.1. Disk slot organization

There are two emulated 1541 floppy drives of which each handles up to 4 different disk images which can be mounted via the file browser and then changed by pressing the left button (see chapter
5.4 Options).

4.2.2. Mounting images

Before you can mount a disk image, one of the emulated drives must be enabled, and to use more than one disk slot per drive, the left button must be configured accordingly (see chapter 5.4 Options).
To mount a D64 or G64 image press CBM+M on the selected image or RETURN on a PRG file inside an image (see chapter 5.5.1 Keys). You will then be prompted to select a drive and whether to start a new list (“first disk”) or to add the image to the existing list (“next disk”) for this drive. Starting a new list means that all mounted images for this drive will get unmounted and the selected image will become the first image in the list for the selected drive.

4.2.3. Unmounting images

To write changes made to a mounted image back to the D64 file on SD card you will either have to make a copy manually (see chapter 5.5.2 User / File menu ) or unmount it by pressing CBM+U (see chapter 5.5.1 Keys). Also the menu will check if changes to an image have been made when entering the menu system and when mounting images, and ask whether the image on SD card should get updated or not.
WARNING: If you choose to ignore this the menu system will “forget” about the respective image being changed and not ask again. You will have to make sure to save the image manually if you want to keep these changes.
Note: due to the current limits of the drive emulation, G64 images will not get written back automatically (as the disk layout is not exactly preserved, which would most likely result in a corrupted G64)
15
Overview

4.3. Using cartridges

Please note that a real-world cartridge consists of two major building blocks: The hardware, and the software. By switching a slot to a specific cartridge type, you merely select the hardware, but you don't have the contained software yet. Real C64 cartridges bring their software typically on EPROMs, which are emulated in the RAM space of Chameleon. Just choosing a cartridge type for a slot therefore does not mean that you actually can already use the cartridge, because it would appear like an empty shell to the computer. Compared to a real-world cartridge, it can be compared to removing the EPROM chips from the cartridge and then plugging it into the computer, which will not work.
Note that the EPROM contents of the Retro Replay and Final Cartridge 3 freezers come with every menu system, which is why you can use these cartridges after power-up and without an SD-card. However, it would be a waste of memory space to keep all the EPROM contents of all supported cartridges in the menu system: They would not even fit in Chameleon's memory! This is why all other cartridges require the use of a .crt or .rom file containing a binary image of the cartridge EPROM. Please see chapter 4.3.3 Mounting cartridge images below for a detailed description of how to use cartridge image files.

4.3.1. Cartridge slot organization

There are 4 cartridge slots. Slot 1 and 2 can hold cartridges of max. 64k, slot 3 and 4 can hold max 1Mb. Slot 1 and 2 will get loaded from flash when the Chameleon boots, by default there is a retro replay ROM in slot 1 and a final cartridge 3 ROM in slot 2. Additional/other cartridge ROMs can be loaded by the boot-loader (see chapter 5.1 Boot Loader) or by the CRT loader in the file-browser (see chapter 5.5 File Browser). Slot 3 is configured as expert cartridge by default, and slot 4 remains empty.

4.3.2. Expert Cartridge

The original expert cartridge has a 3-position switch that is emulated by the left button on the Chameleon. The button configuration must be set to ”cartridge” when using the expert emulation. A short press toggles the expert emulation between ON and OFF (green LED is lit when the cartridge is on). A long press puts the expert in programming mode PRG (green LED is flashing when the cartridge is in programming mode).
Please understand that this manual cannot cover the use of all cartridges in detail. Using this cartridge requires software on a disk (image) that is not included with Chameleon.
16
Overview

4.3.3. Mounting cartridge images

Cartridge images can be mounted by the boot loader (see chapter 5.1 Boot Loader) or the file browser. In the file browser simply press return on a ROM or CRT file. Unless configured to always use slot 4, you will be asked which cartridge slot to use and the cartridge will be started.
Note that ROM files must be in a Chameleon specific layout (which may be different from what you get from converting a CRT file to binary), you can create such files using the ROM saver in the file browser (see chapter 5.5.2 User / File menu ). Also when using ROM files, you will have to set up the correct cartridge type manually.(see chapter 5.4 Options).

4.4. using custom ROM images

You may use custom ROM files that replace the kernal, basic and character ROMs of the c64 or the ROM of the emulated 1541 floppy drives. To do this you may either place the respective ROM images in the CHAM64 directory and enable booting from SD card (see chapter 5.1 Boot Loader below) or load the respective images through the file browser (see chapter 5.5 File Browser).
Note that loading custom ROM images has several implications. For example loading a broken kernal will make the c64 crash, loading an invalid character ROM will eventually render the menu system unusable.
Also note that the timing of the drive emulation is not perfect yet, which causes problems with some speed loaders whose timing is very much “on the edge”. One such known case is jiffy dos on PAL setups, which is even unreliable on some real C64s, so problems are expected.
17
Chameleon Menu System

5. Chameleon Menu System

5.1. Boot Loader

The boot loader is executed once at start-up, it's job is to do some basic initialization:
load the configuration data from flash
set up default MMU mapping
If "copy ROMs from C64" is enabled:
copy C64 kernal- and basic-ROM to Chameleon RAM
If "UPDATE.PRG" is present:
load and execute "UPDATE.PRG" (Chameleon updater)
If "boot from SD-card" is enabled:
load a custom menu binary "MENU.BIN" (if present)
load a REU image "BOOT.REU" (if present)
load a GEORAM image "BOOT.GEO" (if present)
load a custom boot program "BOOT.PRG" (if present)
load custom ROMs from "/CHAM64" directory (if present):
CHAM64/BASIC.ROM" - C64 basic ROM
"CHAM64/KERNAL.ROM" - C64 kernal ROM
"CHAM64/CHARGEN.ROM" - C64 character ROM
"CHAM64/MMC64.ROM" - MMC64 BIOS ROM
"CHAM64/SLOT1.ROM" - Cartridge slot 1 ROM (*1)
"CHAM64/SLOT2.ROM" - Cartridge slot 2 ROM (*1)
"CHAM64/SLOT3.ROM" - Cartridge slot 3 ROM (*1)
"CHAM64/SLOT4.ROM" - Cartridge slot 4 ROM (*1)
"CHAM64/DRIVE1.ROM" - 1541 drive 1 ROM
"CHAM64/DRIVE2.ROM" - 1541 drive 2 ROM
and finally:
if a boot program was loaded, execute it. If not, execute the menu system.
*1) Cartridge ROMs must be plain binaries (without load address), NOT .crt files. Files in proper format can be created by the ROM saver (see chapter 5.5.2 User / File menu ). Cartridges which are bigger than 64k can only be used in slot 3 and 4, see chapter 12.4 supported Cartridge types for details. To make cartridges readily available for use after loading, the respective cartridge type must be configured in the settings (see chapter 5.4 Options).
18
Chameleon Menu System
At start-up the boot loader will check the following "magic keys":
key remote
← (Arrow left) ESCAPE hold down when loading core to skip boot loader (see NOTE) 1 hold to force default configuration. 2 hold to force fail safe configuration 3 hold to skip menu
After the boot loader has started, hold down any key other than space (since space is used by the config-ROM for the same thing) to pause before it starts the menu so you can see boot-loader messages.

NOTE

When skipping the boot loader, a hard-coded default setup will be used (MMC64 + Retro Replay) which is meant for testing and to eventually recover from a broken boot loader and/or menu system.
If you press the menu button to enter the menu after skipping the boot-loader, the result will be that the boot loader will run and initialize the Chameleon the same way as if was not skipped - meaning various settings may change or even a boot program may get executed.
Bottom line: Usually the boot loader should not be skipped. If you don't want the Chameleon to start up with the menu system, use the "skip menu at boot" option (see chapter 5.4 Options). This will then result in the Chameleon starting up using the settings used in the options menu, and further freezing/ restarting will work as expected.

5.1.1. Limitations of the boot-loader

MMC, SD, SDHC cards supported (max. medium size: 2TB)
File-system must be FAT12, FAT16 or FAT32
no long file-names
The limits of the boot-loader do not apply to the file-browser, see chapter 5.5.5 Limitations of the file-browser below.
19
Chameleon Menu System

5.2. Keys

The menu system can be controlled by the following keys / buttons:
Key PS/2 Key Remote Joy #2 Function
<- (arrow left) RUN/STOP
ESCAPE ESCAPE exit menu/one level up
Cursor up/down
Cursor up/down
PLAY/STOP up/down navigate up/down
Cursor left/right
Cursor left/right
REW/FWD left/right enter sub menu/toggle item
RETURN Enter ENTER Fire enter sub menu/toggle item F1 Page up 1 Page up F2 F2 2 Go to first menu item F7 Page
down
7 Page down
F8 F8 8 Go to last menu item
20
Chameleon Menu System

5.3. Main Menu

This is the main user interface and provides access to all features of the Chameleon core.
Hotkey Menu Option Function
F1 Clear C64 Memory fill C64 memory with zeros and reset F2 Clear ALL Memory fill C64 memory, reu, georam with 0 and reset F3 Reset to Basic reset with all cartridges and expansions disabled F5 File Browser enter file browser (see chapter 5.5 File Browser) F6 Monitor enter machine language monitor (see chapter 5.6 ML
Monitor) F7 Reset with Cartridge reset with selected default cartridge enabled F8 Launch Core start another FPGA core ← (Arrow left) restart C64 (unfreeze) restart currently running program (*1)
Options enter options menu Online Help Enter help system (see chapter 5.7 Online Help) System Info show some general info
1..4 start with cartridge in slot 1..4 A..P start FPGA core slot 1-16
*1) Only if the menu was entered by pressing the menu button ("freeze"). Not all options can/will be changed when restarting, see chapter 5.4 Options NOTE.
21
Chameleon Menu System

5.4. Options

5.4.1. CPU Turbo

Option
Turbo Mode Enable turbo mode. Turbo Speed Limit Set maximum speed if turbo is enabled. Turbo d030 bit Enable emulation of the VIC-IIe (C128) 2Mhz bit. Turbo IEC sensitive When enabled, the turbo will automatically slow down on IEC
accesses. It is recommended to always have this enabled.

5.4.2. Emulated drives

Option
Emu Drive 1 Device ID Set device number for first emulated drive. This option can not be
changed while a disk image is mounted.
Emu Drive 2 Device ID Set device number for second emulated drive. This option can not be
changed while a disk image is mounted.
Update mounted images Set whether the menu should ask to update mounted image, or never
or always update them automatically.
IEC bus connection Choose whether the IEC bus of the emulated drive is connected
internally or only to the breakout cable (use this if you want to use the Chameleon as a standalone drive emulator).
Real C64 IEC bus Enable / disable the C64's IEC bus. SX-64 users may use this to
"disconnect" the internal drive.
Reset emulated Drives Send a reset to all emulated IEC devices.
22
Chameleon Menu System

5.4.3. Cartridges and Memory Expansions

Option
MMC64 Enable MMC64 emulation. default Cartridge Set default cartridge slot used by "reset with cartridge" and with
“browser exec setup” set to “custom”
Cartridge Type Slot 1 Set type of cartridge in slot 1. (see chapter 12.4 supported Cartridge
types)
Cartridge Type Slot 2 Set type of cartridge in slot 2. (see chapter 12.4 supported Cartridge
types)
Cartridge Type Slot 3 Set type of cartridge in slot 3. (see chapter 12.4 supported Cartridge
types)
Cartridge Type Slot 4 Set type of cartridge in slot 4. (see chapter 12.4 supported Cartridge
types)
Cartridge mount slot Set whether the menu should ask for the cartridge slot to use or to
always use slot 4 when loading a cartridge image file in the file browser.
Clock Port Select clock port mapping. If "auto" is selected, then the clock-port
will be mapped to de02 if RR is active, to df20 if MMC64 is active
and RR is not, and disabled in all other cases. RR-NET MAC Address Set default MAC Address for RR-NET. REU Size Enable REU and set emulated size. GeoRAM Size Enable GeoRAM and set emulated size.
These settings can not be changed if “browser exec setup” is set to “compatible” (because then the browser will disable them anyway). Also changes to these settings will not get applied when unfreezing (instead the respective registers will be restored by the freezer), so to apply them you will have to reset through the menu. See NOTE below.

5.4.4. Input devices

Option
PS/2 Mouse Auto-detect or disable emulated mouse. PS/2 Mouse port Set port for emulated mouse. IR Receiver Toggle CDTV IR enable.
23
Chameleon Menu System

5.4.5. VGA output

Option
VGA Mode Set display mode used for VGA output. Note: This features is
currently highly experimental and only 800x600 (which is also the
default) is expected to work properly. VGA Mode Test Test selected mode. Press RETURN once to switch to selected mode,
then RETURN again to confirm or any other to switch back to default
mode. VGA Debug Overlay Toggle VGA debug overlay.

5.4.6. Emulation settings

Option
VIC-II type Choose VIC-II type. This setting has no effect in cartridge mode. VIC-II VGA Output Enable VIC-II output to VGA. Disabling this will allow to use the
frame-buffer from within a running program. SID Emulation Select type and mapping of emulated SID(s) SID Real Stereo Chip Select type and mapping of real SID(s). This setting has no effect in
standalone mode.

5.4.7. RTC

Option
RTC Time Set current Time (Hours:Minutes:Seconds). RTC Date Set current Date (Day:Month:Year). RTC Weekday Set day of week.
24
Chameleon Menu System

5.4.8. Boot-loader and Menu settings

Option
boot from SD card Enable loading various files at boot time (see chapter 5.1 Boot
Loader). boot skips menu If enabled the C64 starts with default cartridge. copy ROMs from C64 Copy basic- and kernal- ROM from C64 at boot time. Left Button Select function for the leftmost button (see chapter 5.4.9 Buttons
below). Reset goes to menu If enabled, pressing reset goes to menu instead of resetting the
emulated C64. Browser Exec Setup Execution setup that applies when starting programs and/ or cartridges
via the file browser. "custom" will use the setup from config menu,
"compatible" will disable most things and configure a bare stock C64. Browser auto sort When enabled, always sort SD cards directories. Browser start-up Browser may start in 1 or 2 panel mode. Browser charset The character set used by default. Menu colour scheme Select menu colour scheme. Read Settings Read configuration from flash. Write Settings Write configuration to flash to make it permanent. restore Defaults Restore default configuration. back Go back to main menu.
25
Chameleon Menu System

5.4.9. Buttons

Left
The left button is the multi-purpose button of the Chameleon core and can be configured to be used as the following:
Option Function
Menu Start the menu system Cartridge Emulated cartridge button (see chapter 4.3 Using cartridges) Turbo Enable / Disable the CPU turbo Disk Drive 1 Cycle through mounted disk images on drive 1 Disk Drive 2 Cycle through mounted disk images on drive 2
Middle
The middle button is generally used as the “freezer” button. A “short” button press (shorter than 0.8 seconds) will activate the freezer of an activated cartridge (such as retro replay or the final cartridge
3). A “long” button press (longer than 0.8 seconds) will activate the menu freezer and go to the main menu of the menu system.
Right
The right button is the “reset” button. Generally a “short” button press (shorter than 0,7 seconds) will reset the C64, and a “long” button press (longer than 0,7 seconds) will reload the Chameleon core (equalling a “hard” reset, or power-cycle).
If “reset goes to menu” is enabled, then the menu system will be started on every reset (instead of resetting the C64).
26
Chameleon Menu System
NOTE
All options will generally, and always, get applied when leaving the menu. However there are some exceptions that apply when the menu was entered by "freezing" using the menu button and then "unfreezing" the running C64. This is needed so for example Chameleon-aware programs can also be interrupted.
Cartridge settings have no effect when unfreezing (would almost certainly result in a crash anyway, and this way interrupting a game cartridge is possible). You will have to reset through the menu to apply new cartridges settings.
Changing GEORAM or REU settings will have no effect when unfreezing. (again, this would almost certainly result in a crash anyway).
VIC-II settings have no effect when unfreezing. (this allows to interrupt Chameleon-aware programs that change them)
turbo settings will be copied from the register(s) to the options when entering the menu by freezing. (so they can be changed after freezing, and restarting does not alter them otherwise)
A Chameleon-aware program should generally not touch any of the above settings (or their respective registers), with the following exceptions (which are handled by the freezer and not altered when unfreezing):
enabling config mode
Register settings (CFGREG)
Turbo settings (CFGTUR)
Cartridge settings (CFGCRT)
GEORAM and REU settings (CFGREU)
VIC-II extension settings (upper 4 bits of CFGVIC)
MMU settings (all MMU registers)
VGA settings (all VGA registers) (*NA)
all Cartridge registers, with the following precautions:
freezing during an ongoing SPI transfer (RTC, flash, SD-card) is impossible to
handle, for this reason the result is completely undefined.
freezing while RR-NET is in use, and then entering a menu option that uses it may result in undefined behaviour when restarting.
freezing during a REU transfer may be problematic, although the menu itself does not use the REU registers.
*NA) not implemented yet, since the VGA stuff will get completely redesigned
27
Chameleon Menu System

5.5. File Browser

Press F5 in the main menu to enter the file browser:

5.5.1. Keys

C64 Key PS/2 Key Remote Joy #2
← (Arrow left) "RUN/STOP"
ESCAPE ESCAPE exit file browser
Cursor up/down
Cursor up/down PLAY/
STOP
Up/ Down
navigate up/down
Cursor left/right
Cursor left/right REW/
FWD
Left/ Right
choose left or right tab
F1 / F7 Page up/down 1 / 7 page up / page down F2 / F8 F2 / F8 2 / 8 start / end of list A - Z A - Z Quickfind – type filename to jump to with
max 500ms delay between keypresses RETURN Enter ENTER Fire enter directory, open file F3 F3 3 view file F4 F4 4 user menu (see chapter below)
28
Chameleon Menu System
C64 Key PS/2 Key Remote Joy #2
F5 F5 5 Copy file F6 F6 6 copy image £ (Pound) F9 select SD-card (device 0)
1..7, 8..0 1..7, 8..0 select IEC device 11-17,8-10 + / - F10 / “-” (US) “ß”
(DE)
VOL UP/ DOWN
choose device number
@ “[“ (US) “Ü” (DE) send DOS command (to IEC drive) CBM + H ALT + H show quick reference / help CBM + P ALT + P toggle panel size CBM + R ALT + R (re)read directory of active panel CBM + S ALT + S sort directory of active panel CBM + M ALT + M mount image file CBM + U ALT + U Unmount images CBM + L ALT + L load file CBM + E ALT + E load and execute file. note that this will
NOT mount the image it is used in and just
load the selected file. CBM + D ALT + D delete file or directory (must be empty) CBM + N ALT + N rename file
(Arrow up) “\” (US) “#” (DE) toggle upper-/lower-case display
29
Chameleon Menu System

5.5.2. User / File menu

The user/file menu is brought up by pressing F4 any time in the file browser: (currently only on SD­card)
Menu option Function
create Directory creates a new directory create empty D64 creates an empty D64 file create empty G64 creates an empty G64 file (*1) save Disk as D64 save contents of a mounted disk as D64 image (*2) save Disk as G64 save contents of a mounted disk as G64 image (*3) save GEORAM image save current GEORAM content to a file (*4) save REU image save current REU content to a file (*4) save ROM image save content of various ROMs to a file abort Abort menu
*1) Note that the created file will really be empty, as in a blank disk - it must be formatted before it can be used.
*2) Note that the limits of the D64 format apply. This item will not be available if no disk has been mounted.
*3) Note that current limits of the drive emulation apply. This item will not be available if no disk has been mounted.
*4) These items will not be available if GEORAM or REU are not enabled.
30
Chameleon Menu System

5.5.3. Supported File types

Extension File type
.d64
1541 Disk image
.t64
C64S Tape image (read only)
.g64
1541 GCR image
.sid
Playsid SID tune
.prg
Plain program file (with load address)
.crt
CCS64 Cartridge Image. Also see chapter 12.4 supported Cartridge types
.reu
REU image
.geo
GEORAM image
.rom
ROM images
.koa
Koala Paint image
.rpm
Runpaint image
.cdu
CDU Paint image
.blp
Blazing Paddles image
.pmg
Paint Magic image
.art, .ocp
OCP Art Studio image (v1 and v2)
.ddl
Doodle image
.hed
Hi-Eddi image
.hpi
Hires Picture (same as Art Studio v1)
.txt
Ascii text file
.wav
Windows WAVE file. Supported formats are: 11khz mono, 11khz stereo, 22khz mono, 44khz mono, 48khz mono.
31
Chameleon Menu System

5.5.4. Plugins

default action: (RETURN)
Type Action
.d64
enter image
.t64
enter image
.g64
mount G64 image (see chapter 4.2.2 Mounting images)
.sid
play sid file
.prg
load and execute. inside images also mount image.
.crt
load and start cartridge image. (see chapter 12.4 supported Cartridge types)
.reu
load REU image
.geo
load GEORAM image
.rom
load ROM images
.koa
view Koala Paint image
.rpm
view Runpaint image
.cdu
view CDU Paint image
.blp
view Blazing Paddles image
.pmg
view Paint Magic image
.art, .ocp
view OCP Art Studio image (v1 and v2)
.ddl
view Doodle image
.hed
view Hi-Eddi image
.hpi
view Hires Picture (same as Art Studio v1)
.txt
view text file
.wav
Play .wav file.
other view hex file
mount action: (CBM + M)
Type Action
.d64
mount disk image on emulated drive (see chapter 4.2.2 Mounting images)
.g64
mount disk image on emulated drive (see chapter 4.2.2 Mounting images)
.rom
load ROM images
32
Chameleon Menu System
load action: (CBM + L)
Type Action
.prg
load prg file to C64 memory (*)
.reu
load REU image
.geo
load GeoRAM image
.rom
load ROM images
*) note that this will NOT mount the image it is located in and just load the selected file.
execute action: (CBM + E)
Type Action
.prg
load and run prg file (*)
.crt
load and start cartridge image. see chapter 12.4 supported Cartridge types
*) note that this will NOT mount the image it is located in and just load the selected file.
view action: (F3)
Type Action
.koa
view Koala Paint image
.rpm
view Runpaint image
.cdu
view CDU Paint image
.blp
view Blazing Paddles image
.pmg
view Paint Magic image
.art, .ocp
view OCP Art Studio image (v1 and v2)
.ddl
view Doodle image
.hed
view Hi-Eddi image
.hpi
view Hires Picture (same as Art Studio v1)
.txt
view text file
.wav
Play .wav file.
other view file as hex dump. this is also the fallback used in some other cases when a
certain action is not available.
33
Chameleon Menu System
copy file: (F5)
Type Action
any Copy file (to other panel)
To copy a file, switch to two panel mode (CBM+P) and press F5 (on any file). This currently works on SD card and IEC drives in both directions. Write support for (d64) images
is work in progress and currently disabled.
copy image: (F6)
Type Action
.d64
write .d64 file to drive (other panel)
To read an image from an IEC drive to a file, switch to two panel mode (CBM+P), then change to the drive panel and press F6 (on any file).

5.5.5. Limitations of the file-browser

MMC, SD, SDHC cards supported (max. medium size: 2TB)
File-system must be FAT12, FAT16 or FAT32
max. 1023 entries per directory
max. 40 characters per file-name (including extension and the dot) are displayed
max. 255 characters per file-name are handled before the name is replaced by its short 8.3
file-name.
For speed reasons, file-types will only be determined by looking at the file extension (and not by reading their header)
34
Chameleon Menu System

5.6. ML Monitor

Note that the ML monitor is under construction and some features that you might expect from a fully working monitor are not implemented yet. These will get added over time.

5.6.1. Features

illegal opcodes for assembling and disassembling
The whole 32Mb memory can be accessed via bank switching.
edit binary, character maps, sprite maps
edit CPU registers and I/O registers to be set when you leave the monitor and then unfreeze

5.6.2. Commands

*
Switches to bank 0 (C64 memory), and toggles between ROM and RAM mapping.
assemble <addr>
enter assembly code
bank <addr>
set upper 9 bits of memory address.
compare <start> <limit> <dest>
Compare command, compare block from start to limit with block at dest
35
Chameleon Menu System
disassemble <addr>
show disassembly
fill <start> <limit> <byte1> [<byte2> ...]
Fill an address range with a byte pattern
go <addr>
Start program on given address. If parameter is omitted use freezer address.
hunt <start> <limit> <byte1> [<byte2> ...]
Search for byte(s) in an address range
io <addr>
show/edit i/o area
memory <addr>
show/edit memory
mchar <addr>
Show/Edit chars
msprite <addr>
Show/Edit sprite
registers
Show/Edit CPU registers
transfer <start> <end> <dest>
Transfer command, copy block from start to end to dest
x
exit monitor (goes back to main menu)
36
Chameleon Menu System

5.7. Online Help

To use the online help, please copy the CHAMHELP.HLP file into the CHAM64 directory of your SD card.
Please note that the help file is work in progress, it will get updated when time permits.

5.7.1. Keys

The help system can be controlled by the following keys / buttons:
Key PS/2 Key Remote Function
<- (arrow left) RUN/STOP
ESCAPE ESCAPE exit to main menu
RETURN Enter ENTER Go to main screen F1 Page up 1 Previous page F2 F2 2 Go to last visited page F7
SPACE
Page down
7 Next page
additionally, cross linked pages can be accessed by pressing the highlighted hotkeys.
37
Chameleon Menu System

5.8. System Info

The system info screen shows some basic information, such as the menu software version, the currently used FPGA slot, the RTC time and some details on the inserted SD card.
38
ChaCo, the Chameleon Control Software

6. ChaCo, the Chameleon Control Software

ChaCo is an application that uses WxWidgets for the GUI. This makes it look different from other (Windows) applications, but gives us the chance to compile it for Linux or for the Mac.

6.1. Preparations

Please notice that due to the way ChaCo accesses the USB port, it may need to run as administrator (windows) or root (linux) respectively.

6.1.1. Linux / Mac OSX

Because the executable bit for the binaries are not preserved in the release archive, you will have to set them manually like this:
$ sudo chmod +x ./Chaco ./chacocmd
If you want to be able to run Chaco or chacocmd as a regular user without using sudo and typing your password all the time, you can change it to “suid root” like this:
$ sudo chown root:root ./Chaco ./chacocmd
$ sudo chmod u+s ./Chaco ./chacocmd

6.2. Linux notes

We currently provide a dynamically linked 32- and 64- bit linux binary with the following dependencies:
libc 2.6
libusb v1.x
wxwidgets 2.8 (and related render engine, eg GTK). Only needed for the GUI.

6.3. Mac OSX notes

Included in the release package is a OSX binary kindly provided by Christian Vogelgsang. It has the following requirements:
Intel or PowerPC based Mac
Mac OS X 10.5 or higher
This port does not include the GUI yet. See chapter 6.7 chacocmd below.
39
ChaCo, the Chameleon Control Software

6.4. Overview

With a Chameleon connected, ChaCo will open with this screen:
40
ChaCo, the Chameleon Control Software

6.4.1. Slot Management

Selected slot: Enter the number of the slot that you want to flash /read/write/start into this field. Flash .rbf/ROM: This button starts the flash procedure of writing a core to a selected slot. (see
chapter 6.5.2 Flashing a Core) Flash additional ROM: Tick this box if you want to add a rom file to the core file. Some cores
may not need a rom file, some other cores will require a rom file to work properly. Please read the documentation of the core you're about to flash. Remember that this box must be ticked before clicking the “Flash .rbf/ROM” button.
Read Slot” and “Write Slot” will let you backup/restore one flash slot into or from a single file. The buttons “Read image” and “Write image” will let you backup/restore the whole 16MByte
flash into or from a single file. Start Core: Click this button to launch the selected slot.

6.4.2. Memory Access

Address: address of memory block to read/write Size: size of memory block Read memory, Write Memory: These will let you access the memory of the running FPGA core
(see chapter 6.5.3 Accessing memory).

6.4.3. Debugging

Start Boot-loader: Start boot-loader of the USB micro-controller to prepare it for reprogramming. WARNING: you usually will not need to do this. The Chameleon will have to be power cycled to resume normal operation.
Select JTAG slot: This is a setting for FPGA developers. If you launch the FPGA through the JTAG interface, the micro-controller will report this number to the core. It will behave as if the FPGA was launched from this slot. Don't worry if you don't understand this setting – it's a developer thing, and ChaCo is an engineering tool ;-)

6.4.4. Status display

The three fields “Core is valid”, “USB capable”, “SPI inactive” are status fields. You cannot enter anything here.
“Core is valid” is shown if the Chameleon is currently running a valid FPGA core. “Core is invalid” indicates invalid core data. (see chapter 6.5.1 Starting a core below)
“USB capable” means that the running core supports memory access using ChaCo (see chapter
6.5.3 Accessing memory below) SPI active / SPI inactive shows whether the SPI bus is/was active. This is only useful for debugging
ChaCo itself and will be removed later, it will show “inactive” most of the time.
41
ChaCo, the Chameleon Control Software

6.5. Examples

6.5.1. Starting a core

Let's cause an error, so you can see the LED blink: Set “selected slot” to 6 and click on the “Start Core” button.
The error message in the window reflects what you should see on Chameleon: The red LED should blink seven times, then pause, then start over with blinking.
Now set “selected slot” back to 0 and click on the “Start Core” button. The Turbo Chameleon core should now start again.
42
ChaCo, the Chameleon Control Software

6.5.2. Flashing a Core

First of all, remove the SD card from the Chameleon. (The internal flash memory and the SD card use the sampe SPI bus internally, which sometimes causes flashing to fail)
Now set the Selected slot number back to 0. Tick the box “flash additional ROM” and click on “Flash .rbf/ROM”. Two file requesters will open – please observe closely what each file requester is for! The first file you need to choose is the FPGA core, the second file is the ROM file that belongs to the core. These two files will be distributed with each Chameleon update. After choosing the second file, the flash process will be started without further notice. Again, this is an engineering tool, so we have to give another word of Caution: The contents of the flash slot will be erased without any user interaction!
Now click on “Start Core” to test the core you've just flashed.
43
ChaCo, the Chameleon Control Software

6.5.3. Accessing memory

Now let's use ChaCo for some remote debugging! Power up the Chameleon and then select “reset with cartridge” (F7) followed by “INSTALL FASTLOAD” (again F7). The VGA screen should show something like this:
44
ChaCo, the Chameleon Control Software
Now in ChaCo enter address 0x400 and size 360 into the fields for memory access. Then click on “Read memory”. ChaCo will read the memory of the C64 into a file that you can save to your PC's hard-disk. Let's call this file “screen.bin”.
45
ChaCo, the Chameleon Control Software
In a second step, we'll write back this same file to the C64 memory, but to a different address. Let's use address 0x590. Then click on “Write memory” and choose the file you've just saved (screen.bin).
46
ChaCo, the Chameleon Control Software
The resulting display on the Chameleon VGA screen should be like this:
What you've just done is to copy the first nine lines of the screen memory to lines ten and following of the C64 screen memory.

6.6. Command-line options

ChaCo recognizes these command-line options:
--verbose enable verbose messages
--debug enable (perhaps lots) more messages
47
ChaCo, the Chameleon Control Software

6.7. chacocmd

chacocmd is a small command-line tool with essentially the same functionality as ChaCo, intended for use by developers in makefiles and scripts.
chacocmd recognizes these command-line options:
-h --help Show all options
--verbose enable verbose messages
--debug enable debug messages
--info show status and flash info
--addr <num> set start address
--len <num> set length
--dumpmem show memory dump
--readmem <name> read RAM to file
--writemem <name> write file to RAM
--dumpflash show flash dump
--readslot <slot> <name> read slot image to file
--readimage <name> read full image to file
--flashrbf <slot> <corename> <romname> flash .rbf/.rom
--flashslot <slot> <name> flash slot image
--flashimage <name> flash full image
--start <slot> start core
--jtagslot <slot> set JTAG slot

6.7.1. examples

Flash Chameleon core with menu rom to slot 0 and then start it:
$ chacocmd --flashrbf 0 chameleon_6g.rbf rom-menu.bin --start 0
write test.bin to address 0x1000 in c64 memory:
$ chacocmd --addr 0x1000 --writemem test.bin
48
Frequently asked questions

7. Frequently asked questions

I still use a tv or svideo monitor, can the Chameleon be used without a VGA monitor?
Yes, although a few features of the cart will be unavailable, such as the Chameleon Object Processor. The 1541 drive emulation, freezer, clockport, MMU, REU and even the turbo are usable. Even with turbo mode enabled the VIC-II screen will be active and usable.
How can the VGA display the C64 screen?
Inside the Chameleon is a replica of the VIC-II chip. All register updates and memory accesses are send to both the original VIC-II chip and the replica. This "digital-cloning" approach gives much better VGA display quality compared to sampling and upscaling the composite signal.
How does the Chameleon deal with C128 machines?
Chameleon is a C64 cartridge. It does not work in the C128. Don't even try, as this might cause damage to the computer, the cartridge or both. Don't experiment, it can not work and you risk damage to valuable equipment that's not covered by warranty.
How does the Chameleon deal with SX-64 machines?
Chameleon is fully compatible with a SX-64 machine. On some machines the copying of the kernal ROM doesn't work. This option can be disabled in the menu until a fix is implemented.
How does the Chameleon deal with C-One machines?
There is a port of the Chameleon core for the C-One and can be downloaded for free. This replaces the FPGA-64 core (the PAL and NTSC C64 emulation core). The cartridge itself will NOT function correctly when placed in the C-One.
Is there SCPU (Super-CPU) / Flash-8 compatibility planned for the turbo mode?
No, the 6510 code comes from the FPGA-64 project. We don't have a 65816 compatible emulator yet. Also getting reliable 20Mhz cycle-exact operation with SDRAM is not easy. Especially as the VGA frame buffers, diskdrive emulation and REU are also using the SDRAM at the same time.
Is there DTV compatibility planned for Chameleon?
No, unlikely to ever happen. The DTV started life as a C64 emulator. So then we are emulating an emulator (not a real good one either). Not all the quirks of the DTV are yet known and documented. Also it neither has a true 6510 cpu emulation nor is it 65816 like. So that would require designing a complete new processor based on reversed engineerd DTV specs.
49
Frequently asked questions
How fast is the 6510 based turbo?
Between 10 to 14 times faster for tight loops that only access memory (e.g. decrunchers) and between 4 and 6 times for I/O heavy apps. Basic programs run about 12 times faster on average.
Isn't the 6510 a bit limiting with its 64 Kbyte memory range, making the Chameleon a bankswitching nightmare?
Bankswitching is indeed supported (and sometimes necessary). You can for example map different kernals in the E000-FFFF area. Also rom cartridges at 8000-9FFF can be emulated with the bankswitching logic. A MMU block allows the 6510 to access all of the 32 Mbyte memory in 4 Kbyte blocks, but some areas are reserved for the freezer cartridge emulator and Chameleon configuration menu. The emulated REU can access large amounts of memory very quickly and transfer it into the lowest 64 Kbytes where the 6510 can access it. GeoRAM emulation can map 256 bytes out of a 4 Mbyte buffer into the C64 memory at DE00h-DEFFh.
If the 6510 CPU is emulated, can the tape still work? Can the original CPU work next to the emulated one?
No, the tape drive is inoperable when the Chameleon is used. The 6510-chip in the C64 is completely switched off. Although technically it is possible to run both CPUs at the same time, there is no software support yet that makes this possible.
What is stand-alone mode and does the cartridge needs external power?
When the cartridge is plugged in the expansion port it will gets its power from the C64 computer. There is no need for an external power source as the cartridge uses very little power. The cartridge can also function stand-alone. In this case the cartridge does need an external source (5 volt through USB cable). When it detects that it is not plugged in, the catridge will switch on some additional emulation blocks. The result is a C64 hardware emulator with all the Chameleon features in the small form factor of a C64 cartridge.
Is the VGA reprogrammable for more colors or higher resolutions?
Yes, Chameleon supports upto 8 bit/pixel color-depth (256 different colors arranged as 1 byte/pixel) and screen resolutions upto 1024x768. The VGA controller supports multiple layers of bitmaps of different resolution, sizes and color-depth. Each object can be positioned freely on the screen and supports smooth-scroll in all 4 directions. Each object can have a transparent color (index 0) so they can function as sprites (MOBs) too. There are a total of 256 slots to put objects in. The size and total number of objects that can actually be displayed at the same time is limited by the memory bandwidth.
Is dual monitor supported (C64 video port and VGA showing a different picture)?
The hardware can do this and the required register settings are documented, but there is at the moment no software that supports this mode.
50
Frequently asked questions
How much power does the Chameleon use? Will I need a “heavy duty” power-supply?
Although Chameleon emulates quite a few pieces of hardware that would require lots of power in their original form, it is a very power-saving device. A total of only 2.1W is consumed, which translates to a current of 420mA - and this figure even includes a PC keyboard that was used during measurement.
The old shim-shaped PSU of the C64 can supply up to 1.5 amps on the 5V line, and these PSUs are failing on a regular basis, where "faill" actually means catastrophic failure: If they fail, they will also kill the C64 that's connected to it. We recommend to let the shim-shaped PSUs rest in peace.
The brick-shaped PSUs can supply up to 1.7 amps, and we haven't seen many of these fail. We recommend to use a brick-shaped C64 PSU instead of the shim-shaped for the C64/Chameleon combination.
If you can get hold of a C128 PSU or a 1750 PSU (which is essentially the same, just with a different connector), go for that. These units can supply up to 2.5 amps on the 5V rail, which will hardly ever be exceeded by a C64.
When I play games that have side scrolling (e.g. Giana Sisters) the scrolling is very jittery/broken. Will this be fixed in a future release? Is it even possible?
The C64 runs at roughly 50 or 60 frames per second. The VGA is standard set to 72 frames per second. Dividing those is not a nice integer number. However you can only draw complete screens, otherwise tearing effects occur, where part of the screen updated and the other part not.
1+1 is 2. So with double buffering it jumps or you don't double buffer and have tearing effects. First we had tearing, now we have jumps ;-)
Possible tricks to improve it is temporal filtering (using even older copies of the screen to smooth out the jumps) or just blur the screen.
When the major VIC-II emulation bugs are fixed we will start looking at ways to improving the VGA output a bit.
51
known Bugs and Limitations

8. known Bugs and Limitations

8.1. Turbo Chameleon FPGA Core

REU has some issues (bugs). (this has improved a lot in beta7, but is still not perfect)
DMA transfers take 1 cycle more than they should
1541 emulation is still incomplete so you can expect load-errors with some of the speed-
loaders out there. (this has improved a lot in beta6, but may still not be perfect)
Jiffy DOS seems to have problems in some (PAL) setups (it is however also somewhat instable on real PAL setups)
SID emulation is still incomplete (Envelope Generator, Filters, Noise Generator) (this only affects the sound output of the Chameleon itself)
VIC has some detail issues (DEN, SpriteEN, Collisions) (this only affects the VGA output)
CIA has some detail issues
Keyboard Matrix emulation does not handle certain corner cases (this only affects a PS/2
keyboard)
BAT (basic assurance test) command from ps/2 keyboard not recognised. (Plug in keyboard before turning power on.)
The menu freezer has a bug that causes problems with restoring the CIA2 NMI
COP (Chameleon Object Processor) is disabled pending a redesign. A minimal version is
included to allow VIC-II display on VGA.

8.2. Menu System

8.2.1. MMC/SD Card compatibility

Some low-level routines are still blocking and might hang at initializing certain cards. In such a case please confirm that removing the card makes the menu responsive again.
There was a bug that sometimes causes write operations to fail (like deleting a file, or creating directories). This has been fixed in beta 7, if you still have this problem, please tell us.
Workaround: if you end up in such a situation, enter a different subdirectory and go back, then it usually works.
52
known Bugs and Limitations

8.2.2. PRG Launcher

Generally all files with a load address >$03ff can be loaded and run. Files which load below $0400 (often to overload pointers for auto-start) are unsupported for now.
Programs will be started in a standard reset environment for maximum compatibility, unless “Browser Exec Setup” is set to “custom”

8.2.3. G64 Mounter

Due to the still incomplete 1541 emulation, mounting g64 files has several limitations:
track length is fixed, so non standard track lengths will not work
half tracks are not supported
non standard speed-zones are not supported

8.2.4. G64 Saver

Due to the still incomplete 1541 emulation, saving g64 files has several limitations:
track length is fixed, so non standard track lengths will not work
half tracks are not supported
non standard speed-zones are not supported

8.2.5. CRT Launcher

Not all CRT files will work, see chapter 12.4 supported Cartridge types.
Files which have inconsistent info in the CRT and CHIP headers might not work (for
example when the CRT header indicates a CBM80/8K cartridge, but the CHIP header has a load-adress of $e000 - which indicates an ultimax cartridge - the image will NOT work). THIS IS NOT A BUG and will not get fixed. Fix the CRT files instead!
"flashing" MMC64 does not work (the flash chip is not emulated)
"flashing" retro replay does not work (the flash chip is not emulated)
"flashing" easyflash does not work (the flash chip is not emulated) this might get
fixed/worked around in the future by patching the easyflash API
53
known Bugs and Limitations

8.2.6. SID Player

PSID Tunes which require Compute's Sidplayer (MUS) are not supported yet. this might get fixed depending on demand, possibly a separate external .mus plugin would be a better idea ?
PSID Tunes which use playsid specific features (usually indicated by a _PSID appended to the file-name), such as the playsid sample voice, can not be played correctly. THIS IS NOT A BUG and it can not be fixed. use the RSID counterpart instead.
Tunes that use memory from $0400 to $07e8 and/or load below $07e8 are not handled correctly yet, and the player will reject them.
examples: /MUSICIANS/B/Bjerregaard_Johannes/Fruitbank.sid /MUSICIANS/B/Barrett_Steve/Professional_Ski_Simulator.sid This will get fixed in a future version.
Sub tunes of RSID Tunes which are regular BASIC programs (load=$0801,init=0,play=0) can not be changed.
examples:
all tunes in DEMOS/COMMODORE A way to select the sub tune first and then start playing may be added in the future. Workaround: press run-stop and type "poke 780,<subtune>:run"
RSID Tunes which claim all available resources (IRQ, NMI and main loop) can not be stopped by the player. THIS IS NOT A BUG and it can not be fixed, other than by modifying the ripped sid file (to either chain the original NMI/IRQ correctly, or to not use busy looping). Use the RESET button to go back to the menu!
examples: /MUSICIANS/T/Tel_Jeroen/Hard_Rock.sid
Sub tunes in RSID tunes which claim all resources can not be changed after having started the tune. THIS IS NOT A BUG and it can not be fixed. (a way to select the sub tune first and then start playing may be added in the future)
last not least, some tunes don't play correctly simply because they are bad rips. common problems are SEI or CLI somewhere, or writes to $01 where there shouldn’t be.
When reporting tunes that do not work, please make sure the rip itself is OK, a good way to do that is converting it to a prg file with PSID64 and see if it works (http://sourceforge.net/projects/psid64/). please report tunes that do not play with psid64 to the HVSC team as well as to us.
54
known Bugs and Limitations

8.3. ChaCo

There seems to be a problem that when the Chameleon is connected via an USB hub slows down all kinds of transfers dramatically. In such a case please try connecting the Chameleon directly to your PC and see if the problem persists.
No solution for this yet.

8.3.1. Windows

Some stability problems have been reported for previous versions. If you still experience crashes, please report them.

8.3.2. Linux

The provided binaries are currently dynamically linked, some problems with some linux distributions are expected. A statically linked binary will follow in the future. Most problems are related to the ChaCo GUI (and wx-widgets), so often “chacocmd” will work as a workaround.
Fedora (2.6.34.7-66.fc13.i686 #1 SMP i686 i686 i386) - Command line version seems to work, but GUI version does not.
Debian 5 (lenny) 64bit Kernel 2.6.26-2-686, Gnome 2.22.3 – USB timeouts. No solution for this yet
When reporting problems please include the following information:
First of all, try if “chacocmd” works (rather than the ChaCo GUI)
what distro you are using, including version and whether it is a 32 or 64bit system
the output of "uname -a" on the commandline (will include kernel version)
the output of "wx-config --version-full --cxxflags --cflags
--cppflags --libs"
last not least: a detailed description on how to reproduce the problem
55
Reporting Bugs

9. Reporting Bugs

If you find any bugs, please report them either directly to Individual Computers, or to the Yahoo mailing list ( http://tech.groups.yahoo.com/group/chameleon_64/). Before doing so, please make sure you are running the latest version of the Turbo Chameleon FPGA Core, which can be downloaded at http://beta.icomp.de/.
To make it easier and more efficient for us to handle bug reports, please provide the following information with them:
whether you are using the Chameleon in standalone or cartridge mode, and whether you are using PAL or NTSC
if you are using cartridge mode, then it would be helpful to know which kind of C64 it is (board revision, type of CIAs, VIC, SID)
a detailed description that enables us to reproduce the bug

9.1. Test Procedure

This is a list of things for people who want to systematically test various features. It is here as a remainder because often things are overlooked and some bugs just never happen in someone’s daily routine.

9.1.1. general

Due to the ongoing development of the user interface and keyboard short cuts there might be inconsistencies between on-screen text and actually used keys. Please report such occurrences so they can be fixed.

9.1.2. MMC/SD Card compatibility

Insert your SD/MMC card into the Chameleon and press reset. now go to system info in the menu. if the C64 hangs now, that means the card can not be properly initialized. In such a case we would like to know the exact type,size,brand etc of the card you are using.
“System Info” should correctly show the type, file-system etc of the card.
Enter the file-browser, it should correctly show the name of the card and also show the
directory panel(s) with the list of files in your cards root directory.
Generally if the above works, we would like to hear about any other problems that only occur with a specific card.

9.1.3. non volatile user options

Change some options, save them, power-cycle the Chameleon and check if the changes have been saved (and loaded) correctly.
56
Reporting Bugs

9.1.4. upgrading the core

Upgrade using ChaCo and/or chacocmd. (see chapter 6.5.2 Flashing a Core)

9.1.5. File-browser

Browsing through individual directories on either panel should work. see chapter 5.5.1 Keys for a list of keys that you can try.

9.1.6. Plugins

Plugins should cleanly exit to the file-browser.
Pressing "freeze" when a plugin is active should usually be ignored, or return to the menu
system. (incase of for example the SID plugin)
CRT launcher:
The CRT launcher should generally launch any of the supported cartridge types. If you find a cart that doesn’t work, please read 8.2.5 CRT Launcher and report the non working image if you think it meets the listed requirements and should work.
PRG launcher:
Generally most one-file programs should work. In case you find one that does not, please read 8.2.2 PRG Launcher and report the non working program if you think that it meets the requirements of the prg launcher and should work.
SID player:
This is currently the most limited plugin, please read 8.2.6 SID Player, many (if not most) tunes will play fine, with the exceptions listed. Please report only non working tunes from the latest HVSC which meet the requirements and limitations of the SID player.
57
Developer information

10. Developer information

Information for developers is made available separately from this manual. Look at the turbo Chameleon 64 project page ( http://www.syntiac.com/chameleon.html ) for the most recent version of these documents:
chameleon_progmanual.pdf – contains register description and programming information for the turbo Chameleon 64 FPGA core.
chameleon_coredef.pdf – hardware overview for FPGA core developers
chameleon_schematics.pdf – Chameleon board schematics for FPGA core
developers
chameleon_fpga_pins.zip - a pin file that you can add to the Quartus *.qsf project settings file.
chameleon_v5_hwtest_src.zip – the source code for the FPGA hardware test core
cdtv_remote.zip - protocol description of the CDTV remote in open-office format.
We are working on making more example- and framework FPGA code available, please contact us if you have specific questions which are not yet answered in the above documents.
To get in touch with other Chameleon users and developers you might want to subscribe to the mailinglist ( http://tech.groups.yahoo.com/group/chameleon_64/ ).
58
Related projects

11. Related projects

On this page we will list all Chameleon related projects that we know of. Please notice that all of these are created and maintained by other Chameleon users, which means that we do (and can) not provide any support for them.
Qchaco is “a frontend running chacocmd with parameters to upload a file, a diskimage or flash it with new firmware.” (http://svolli.org/software/chameleon64/)
MiniMig is an Amiga FPGA core which also has been ported to the Chameleon hardware (http://www.minimig.net)
We provide a binary of the core which is compiled to run on the Chameleon on our beta page (http://beta.icomp.de)
minimig_tc64 is the port of the MiniMigs menu controller software to the Chameleon (https://github.com/robinsonb5/minimig_tc64). Snapshots of the binary are provided here: http://npandd.co.uk/MiniMig_TC64_Snapshots/.
ZX-One is a Sinclair Spectrum FPGA core which has been ported to the Chameleon hardware by Alessandro Dorigatti.
Get the binaries here: https://sites.google.com/site/speccycores/
Chameleon Pong is a simple FPGA starter project which has been created by Alastair M. Robinson.
Get the source and binary here: http://retroramblings.net/?p=70
59
Appendix

12. Appendix

12.1. PS/2 Keyboard Key Assignment

PS/2 Key (US) PS/2 Key (DE) C64 Function
ALT ALT CBM Key ESCAPE ESCAPE RUN/STOP F1 F1 F1 F2 F2 RShift + F2 F3 F3 F3 F4 F4 RShift + F4 F5 F5 F5 F6 F6 RShift + F5 F7 F7 F7 F8 F8 RShift + F7 F9 F9 £ (Pound) F10 F10 + F11 F11 Left cartridge button F12 F12 Middle (Freeze) cartridge button Print Screen Print Screen Right (Reset) cartridge button PAUSE PAUSE RESTORE ^ / ° (Arrow left) ß / ? – = / + ´ / ` = Backspace Backspace DEL/INST Home Home HOME/CLR Page Up Page Up F1 Page Down Page Down F7 [ / { Ü @ ] / } + / * \ / | # / ' (Arrow up)
Ö : Ä ;
- / _ /
60
Appendix

12.2. PS/2 Keyboard Joystick Assignment

PS/2 Key C64 Function
NUM-LOCK Select port 1 or port 2 Numeric 0 Joystick Fire Button Numeric 1 Joystick Left + Down Numeric 2 Joystick Down Numeric 3 Joystick Right + Down Numeric 4 Joystick Left Numeric 6 Joystick Right Numeric 7 Joystick Left + Up Numeric 8 Joystick Up Numeric 9 Joystick Right + Up
Take note that it is possible with the keyboard to press both ”Joystick Left” and ”Joystick Right” at the same time (same is true for up and down). There are a few games that crash when you do so. Don’t blame Chameleon for the crash, but the programmer that wrote the fragile game code.
61
Appendix

12.3. CDTV Remote Control Key Assignment

Infrared CDTV Remote Key C64 Function
1 F1 2 RShift + F1 3 F3 4 RShift + F3 5 F5 6 RShift + F5 7 F7 8 RShift + F7 9 RUN/STOP 0 Space bar ESCAPE Left Arrow ENTER RETURN REW CRSR Left (RShift + CRSR Right) PLAY/PAUSE CRSR Up (RShift + CRSR Down) FF CRSR Right STOP CRSR Down GENLOCK Left Push Button CD/TV Middle Push Button (Freeze / Menu) POWER Right Push Button (Reset) Vol Up + Vol Down ­M/J Switch in MOUSE Position Select Joystick 1 M/J Switch in JOY Position Select Joystick 2 A Fire B Auto Fire (8 Hz)
62
Appendix

12.4. supported Cartridge types

CRT ID
0 generic (8k Game, 16k Game, Ultimax) 1 Action Replay v5 (v4.2 and higher ROMs) 2 KCS Power Cartridge 3 Final Cartridge 3 4 Simons Basic 5 Ocean (*1) 6 Expert Cartridge 7 Funplay / Powerplay (*1) 8 Supergames 10 Epyx Fastload 11 Westermann 15 C64 Game System (System 3) (*1) 16 Warpspeed 17 Dinamic (*1) 18 Zaxxon 19 Magic Desk (*1) 20 Super Snapshot v5 21 Comal 80 23 ROSS 28 Mikro Assembler 31 Stardos 32 Easyflash (*1) 34 Capture 36 Retro Replay 37 MMC64 (*2) 43 Prophet64 (*1) 51 Mach5 53 Pagefox 54 Kingsoft (Business Basic, S'more)
*1) These types of cartridges can only be used in slot 3 and 4, because they are (or may be) larger than 64k.
*2) MMC64 is handled separately and can not be loaded to normal cartridge slots.
63
Appendix

12.5. Opening the Cartridge

To install the RTC battery (CR-1220) or a RR-NET, you will have to open the Cartridge - it may look difficult, but if you know where to lever it open, it's really easy. All you need is a flat screwdriver. Please follow the steps given here, don't change the order of the steps, because you might break the case otherwise!
Use the flat screwdriver as a lever. Be sure not to touch the Chameleon board, only the case must be touched! There will be no warranty for scratched boards.
Use the zoom-function of your PDF viewer to exactly see where the lever needs to be placed.
Next, use the screwdriver on the left side of the Chameleon case. Again, be sure to only lever the case, not the board!
With the opening in the Chameleon case for the mini-DIN connector, the left half of the case top is fairly weak. It is unlikely to break if you do not use extreme force (polycarbonate is very flexible), but it's still a good idea to be as gentle as possible. We therefore recommend to open the right side of the case first:
64
Appendix
Remove the bottom by tilting it away; the left side (weakest side of the top) will now come off fairly easy, almost no force is required. Remove the foam from the case and keep it in a safe place. The foam on your cartridge may look different.
65
Appendix

12.6. Re-programming the USB micro-controller

WARNING: It is very unlikely that this kind of update must be done in the field. It is only documented for completeness. It's the worst-case scenario – Please do not attempt to do any of the following unless being told by us to do so. In the unlikely event that you will have to update the micro-controller, you will receive an appropriate .hex file and detailed instructions directly from individual computers. The micro-controller is a core component which is not meant to be user programmable, thus refrain from experimenting with it.
UPDATING THE MICRO-CONTROLLER WITHOUT BEING TOLD DO SO AND/ OR USING A .HEX FILE NOT ENDORSED BY INDIVIDUAL COMPUTERS VOIDS WARRANTY.
Should the micro-controller require an update, you will need the “FLIP” tool from the Atmel website. FLIP is a Java application available for Windows and Linux. If you run under Linux, remember to run the tool as “root”, otherwise it will not get access to the USB port. You can easily find FLIP using Google – URL not given here, as links might change in the future. FLIP is the same for a large family of micro-controllers, the tool is the same for all of them.
If you run under Windows, you will need a FLIP driver. New Windows versions (Vista, 64-bit versions) either require some expert settings, or they require a signed driver. Download the signed driver from our website and install it. Also, you may need to download and update Java. Even if Java does not prompt you to re-start the computer after an update, it may be required. Especially if FLIP exits with a null-pointer error message, just restart the computer, and it'll work.
Start FLIP – it will come up with an error message that a device was not found. This is expected behaviour. Click OK on that requester.
Now click on “settings” and select “preferences”. Within the preferences dialogue, select the rightmost tab “connect/closing”. Tick the box “Auto-connect”, then click on OK.
Now locate the de-brick jumper of Chameleon and close it:
66
Appendix
Now make two USB connections to your PC and switch on the PC. The USB connection of the breakout cable provides power to Chameleon, and the mini USB connection is your data connection:
Now place the micro-controller into de-brick mode with the following combination of button presses. Press and hold the left button, then press the right (reset) button:
Then release the right (reset) button, but keep on holding the left button. As the last step, release the left button:
67
Appendix
The micro-controller is now in de-brick mode and the FLIP tool will now find it. First, select the processor type AT90USB162, then select Settings->Communication->USB:
Now load the micro-controller hex file by clicking on file->Load hex file. The final step is to click on the “Run” button within FLIP (at the bottom left of the window) and watch the program do its magic. After programming the micro controller, FLIP will indicate the successful steps with a green light next to the action tags:
Note: The checksum may be different for a possible update. That's it – the micro-controller is now up to date, and you can leave de-brick mode by powering off
and opening the de-brick jumper. Before you can make use of the new micro-controller software, you may need to update your version of ChaCo (the Chameleon Control software), and you may also have to update one of the flash slots. Please read the respective instructions for ChaCo for those steps.
68
Appendix

12.6.1. Linux

In Linux "dfu-programmer" (http://dfu-programmer.sourceforge.net/) may be used:
$ sudo chacocmd --bootloader $ sudo dfu-programmer at90usb162 erase $ sudo dfu-programmer at90usb162 flash chameleon_microcontroller.hex $ sudo dfu-programmer at90usb162 start
69
Appendix

12.7. configuring Quartus for JTAG

Drivers are needed for the USB Blaster - they can be found in the Quartus II installation directory (quartus/drivers/usb-blaster).
Click Hardware settings and select USB Blaster from the drop-down box.
The project's default settings won't work, because there's another device on the JTAG chain (the flash chip), so to solve that: Click the "Autodetect" button to reveal the second device. You'll also be asked whether the FPGA is an EP3C25 or EP4CE22. Pick the first.
70
Appendix
Now either click on the picture of the EP3C25 and click the Change File button, or double-click the "<none>" in the File column of the EP3C25's line in the top panel.
Pick the .sof file in the file dialog.
Check the "Program/Configure" checkbox in the EP3C25's row of the top panel.
71
Appendix
Finally, click Start, and the project should be uploaded to the FPGA.
There's one more complication to take care of: When closing the programming window, Quartus will offer to save changes to the device chain, so you don't have to repeat this procedure each time you program the device. Unfortunately, saving will fail while the extra device is classed as "Unknown". This can be fixed just by giving the extra device a name.
In the top list, right-click on "Unknown_59604093" and select "Change Device".
72
Appendix
In the dialog that appears, the Unknown device should already be selected, so just click "Edit", and change the name to something else.
73
Appendix
Quartus should now be able to save the device chain for future use.
74
Appendix

12.8. Chameleon cable pinouts

CN1: Mini DIN 9 connector pinout:
shield: GND 1: IEC_CLK 2: KDat 3: MDat 4: KClk 5: MClk 6: Vcc 7: IEC_SRQ 8: IEC_DAT 9: IEC_ATN
Mating connector for RM158-DN508H-9. Pin numbering is taken from drawing.
CN2 and CN3 are coloured female Mini-DIN6 connectors:
purple CN2: green CN3:
shield: GND shield: GND 1: KDat 1: MDat 2: NC 2: NC 3: GND 3: GND 4: Vcc 4: Vcc 5: KClk 5: MClk 6: NC 6: NC
CN4 is a female hex DIN6 connector:
shield: GND 1: IEC_SRQ 2: GND 3: IEC_ATN 4: IEC_CLK 5: IEC_DAT 6: n.c.
CN5 is a USB Type A connector:
shield: GND 1: Vcc 2: n.c. 3: n.c. 4: GND
75
Appendix
Wiring diagram
Connection CN1 to CN2 is a 4-core shielded AWG26 cable, length 200mm:
CN1 CN2 shield - shield and pin 3 pin 2 - pin 1 pin 4 - pin 5 pin 6 - pin 4
Connection CN1 to CN3 is a 4-core shielded AWG26 cable, length 200mm:
CN1 CN3 shield - shield and pin 3 pin 3 - pin 1 pin 5 - pin 5 pin 6 - pin 4
Connection CN1 to CN4 is a 4-core shielded AWG26 cable, length 200mm:
CN1 CN4 shield - shield and pin 2 pin 1 - pin 4 pin 7 - pin 1 pin 8 - pin 5 pin 9 - pin 3
Connection CN1 to CN5 is a single-core shielded AWG18 cable, length 800mm:
CN1 CN5 shield - shield and pin 4 pin 6 - diode K (ring) – diode A - pin 1
76
CN1
CN2 CN3
CN4
CN5
Appendix

12.9. Technical Data

Altera EP3C25 FPGA with 24624 LEs
16Mb Flash Memory, 32Mb RAM
VGA connector
MMC/SD card slot
Connectors for PS/2 mouse, PS/2 keyboard and IEC bus via breakout cable
Battery-backed real time clock (CR-1220 battery not included)
IR receiver for CDTV remote control
Connector for RR-NET (only with real C64 or docking station)
USB link to a PC for debugging and data transfer

12.9.1. Turbo Chameleon FPGA Core

Turbo function with full 6510 processor compatibility (incl. illegal opcodes)
Cycle-exact REU (memory expansion) with 16 MB RAM
Freezer (compatible with Retro Replay)
VGA-output with 60 Hz refresh rate or more
MMC/SD card slot with MMC64 compatibility
1541-emulation
emulation of 1351 and Micromys on PS/2 mouse port
77
Credits

13. Credits

Jens Schönfeld – Hardware design, production and documentation
Peter Wendrich – Turbo Chameleon FPGA Core, programmers manual, first version of the
ml monitor and help system
Tobias Korbmacher – Menu System, ChaCo, user manual
Stefan Seitz – USB Micro-controller code, first version of ChaCo
Andreas Postler - case modifications, other manual steps in production
Andreas Muttke - logo design
Christian Vogelgsang – provided the chacocmd Mac OSX port
Alastair M. Robinson – contributed chapter 12.7 configuring Quartus for JTAG
© 2011-2012 by Individual Computers Jens Schönfeld GmbH
all rights reserved.
78
Fine print

14. Fine print

The Chameleon is not designed, authorized or warranted to be suitable for use in life-support devices or systems or other critical operations. Inclusion of the product in such applications is understood to be fully at the customer's risk.
Names and other trademarks referred to within this manual are the property of their respective trademark holders. None of these trademark holders are affiliated with Individual Computers.
Windows® is a registered trademark of Microsoft Corporation in the United States and/or other countries.
Mac and Mac OS are trademarks of Apple Inc., registered in the United States and/or other countries.
For updates and further information visit http://beta.icomp.de .
Individual Computers Jens Schönfeld GmbH Im Zemmer 6 52152 Woffelsbach Germany good hardware for good computers.
79
Loading...