Contents 6.5.6. Limitations of the file-browser........................41 6.6. ML Monitor................................42 6.6.1. Features................................42 6.6.2. Number formats............................42 6.6.3. Converting values............................43 6.6.4. Commands..............................43 6.7. Online Help................................45 6.7.1. Keys................................45 6.8. System Info................................46 7. ChaCo, the Chameleon Control Software.................47 7.1. Preparations................................47 7.1.1. Linux / macOS.............................47 7.2. Linux notes................................47 7.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.
2.1. What's in the Box? 2.1.1. Chameleon v1 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 •...
Getting started 2.1.2. Chameleon v2 Turbo Chameleon 64 :-) • a short user manual (which you do not need any more now that you have found this one) • A battery (CR-1220) required to make use of the RTC feature is not included and must be supplied by the user.
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.
Page 8
Getting started 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 7 ChaCo, the Chameleon Control Software) For the second version of the chameleon you need a mini IEC cable, which is available separately, to connect IEC-bus devices.
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.
Page 10
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.
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.
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.
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.
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.
First Aid - If something goes wrong 4. First Aid - If something goes wrong First, don't panic :) There is no way to “brick” the Chameleon by updating, installing an additional core, or wrong programming. The Chameleon might not start, but it can always be fixed by updating with a valid FPGA core image.
Overview 5. 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 6 Chameleon Menu System) The outermost button (right button) is your reset button. The middle button is the freeze and menu button.
Overview 5.2. Using disk images 5.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 6.4 Options).
Overview 5.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.
Overview 5.3.2. Mounting cartridge images Cartridge images can be mounted by the boot loader (see chapter 6.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.
Overview 5.3.3. some notes on specific cartridges 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).
Overview 5.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 6.1 Boot Loader below) or load the respective images through the file browser (see chapter 6.5 File Browser).
Chameleon Menu System 6. Chameleon Menu System 6.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 •...
Chameleon Menu System 6.1.1. Hotkeys during boot process At start-up the boot loader will check the following "magic keys": remote Space Presse and hold down when loading core to see config-ROM messages (pause before starting the boot-loader). This shows the FPGA core version and current mode.
Chameleon Menu System 6.2. Keys The menu system can be controlled by the following keys / buttons: PS/2 Key Remote Joy #2 Function <- (arrow left) ESCAPE ESCAPE exit menu/one level up RUN/STOP Cursor Cursor PLAY/STOP up/down navigate up/down up/down up/down Cursor Cursor...
Chameleon Menu System 6.3. Main Menu This is the main user interface and provides access to all features of the Chameleon core. Hotkey Menu Option Function Clear C64 Memory fill C64 memory with zeros and reset Clear ALL Memory fill C64 memory, reu, georam with 0 and reset Reset to Basic reset with all cartridges and expansions disabled File Browser...
Chameleon Menu System Hotkey Menu Option Function 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 6.4 Options NOTE. 6.4.
Chameleon Menu System 6.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. Drive 1 write protect Enable write protection for first emulated drive. Emu Drive 2 Device ID Set device number for second emulated drive.
Chameleon Menu System 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. 6.4.4.
Chameleon Menu System 6.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...
Chameleon Menu System 6.4.9. Button settings Option Left Button Select function for the leftmost button (see chapter 6.4.12 Buttons below). Reset goes to menu If enabled, pressing reset goes to menu instead of resetting the emulated C64. 6.4.10. File Browser and Menu settings Option Browser Exec Setup Execution setup that applies when starting programs and/ or cartridges...
Chameleon Menu System 6.4.12. 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 File-browser Start the menu system and directly go to the File-browser Monitor Start the menu system and directly go to the ML Monitor Cartridge...
Page 32
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.
Chameleon Menu System 6.5. File Browser Press F5 in the main menu to enter the file browser: 6.5.1. Keys C64 Key PS/2 Key Remote Joy #2 ← (Arrow left) ESCAPE ESCAPE exit file browser "RUN/STOP" Cursor Cursor up/down PLAY/ navigate up/down up/down STOP Down...
Page 34
Chameleon Menu System C64 Key PS/2 Key Remote Joy #2 Copy file copy image £ (Pound) select SD-card (device 0) 1..7, 8..0 1..7, 8..0 select IEC device 11-17,8-10 + / - F10 / “-” (US) “ß” VOL UP/ choose device number (DE) DOWN “[“...
Chameleon Menu System 6.5.2. User / File menu The user/file menu is brought up by pressing F4 any time in the file browser: (most features are only available on SD card, creating directories only works on CMD compatible IEC devices) Menu option Function create Directory...
Chameleon Menu System *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.
Chameleon Menu System 6.5.5. Plugins default action: (RETURN) Type Action .d64 enter image .t64 enter image .g64 mount G64 image (see chapter 5.2.2 Mounting images) .sid play sid file .mus, .str Play sidplayer tune .wav Play .wav file. .prg load and execute. inside images also mount image. .p00 load and execute .crt...
Page 39
Chameleon Menu System load action: (CBM + L) Type Action .prg load prg file to C64 memory (*) .p00 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...
Chameleon Menu System copy file: (F5) Type Action 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.
Chameleon Menu System 6.6. ML Monitor 6.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 •...
Chameleon Menu System 6.6.3. Converting values To convert values just type them on a line and press return – it will then be shown in hexadecimal, binary and decimal notation. 6.6.4. Commands Switches to bank 0 (C64 memory), and toggles between ROM and RAM mapping. DOS wedge.
Page 43
Chameleon Menu System io <addr> show/edit i/o area (this also includes the color RAM) load “<filename>” <addr> load a PRG file to memory. If the address is omitted the load address found in the PRG file is used memory <addr> show/edit memory mchar <addr>...
Chameleon Menu System 6.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. 6.7.1.
Chameleon Menu System 6.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.
ChaCo, the Chameleon Control Software 7. 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. 7.1.
ChaCo, the Chameleon Control Software 7.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 7.5.2 Flashing a Core) Flash additional ROM: Tick this box if you want to add a rom file to the core file.
ChaCo, the Chameleon Control Software 7.5. Examples 7.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.
ChaCo, the Chameleon Control Software 7.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”.
ChaCo, the Chameleon Control Software 7.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:...
Page 52
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.
Page 53
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).
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. 7.6.
ChaCo, the Chameleon Control Software 7.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...
9. known Bugs and Limitations Since the Chameleon is under constant development, this section of the manual has been removed to reduce maintenance. Please refer to the Individual Computers WIKI for up to date information on http://wiki.icomp.de/wiki/Chameleon_Bugs currently known bugs: http://wiki.icomp.de/wiki/Chameleon_Core_Bugs...
) 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 •...
Related projects 12. Related projects This section of the manual has been removed to reduce maintenance. Please refer to the Individual Computers WIKI ( http://wiki.icomp.de/wiki/Chameleon ) for up to date information on related projects, such as other FPGA cores.
Appendix 13.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...
Appendix 13.3. CDTV Remote Control Key Assignment Infrared CDTV Remote Key C64 Function RShift + F1 RShift + F3 RShift + F5 RShift + F7 RUN/STOP Space bar ESCAPE Left Arrow ENTER RETURN CRSR Left (RShift + CRSR Right) PLAY/PAUSE CRSR Up (RShift + CRSR Down) CRSR Right STOP...
Appendix 13.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.
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.
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.
Page 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.
Appendix 13.6.2. Chameleon v2 Since until now it wasnt necessary for customers to update the microcontroller, and it is unlikely to happen in the future, the de-brick jumper is not populated on the second version of the chameleon. In case of emergency the existing solder joints can be connected eg with a paperclip: Now make two USB connections to your PC and switch on the PC.
Page 68
Appendix Then release the right (reset) button, but keep on holding the left button. As the last step, release the left button:...
Page 69
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”...
Appendix 13.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.
Page 72
Appendix 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.
Page 73
Appendix When using the Chameleon v2, there will be only one JTAG device, select the 10CL025Y:...
Page 74
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"...
Page 75
Appendix When using Chameleon v2 Hardware either click on the picture of the 10CL025V and click the Change File button, or double-click the "<none>" in the File column of the 10CL025V's line in the top panel. Pick the .sof file in the file dialog. Check the "Program/Configure"...
Page 76
Appendix When using the first version of the Chameleon hardware 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".
Page 77
Appendix In the dialog that appears, the Unknown device should already be selected, so just click "Edit", and change the name to something else. Quartus should now be able to save the device chain for future use.
Appendix 13.10. Technical Data Altera EP3C25 / 10CL025V 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) •...
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.