<!-- saved from url=(0022)http://internet.e-mail -->
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title>CCS64 Documentation</title>
</head>
<body>
<h1 align="center">CCS64 V3.0 BETA 1.9<br>29 March 2006<br>- Under Development -</h1>
<div align="center">
(C) 1996 - 2006 PER HKAN SUNDELL.<br>
(C) 1996 - 2006 COMPUTERBRAINS.<br>
All rights reserved. 29 March 2006.
</div>
<hr>
<h2>Disclaimer</h2>
<blockquote>
<p>This program is released as SHAREWARE and therefore freely distributable, although you
may not charge anyone for more than the actual cost of distribution. The meaning of
shareware is that if you are using the program regularly, you should strongly consider to
register the program. With registering means that you are actually buying the product.</p>
<p>The installation and use of this product is done completely under your own
responsibility. Under no circumstances should the producers of this product be held
responsible for any damages or costs, that this product in any way could cause you or your
equipment.</p>
<p> </p>
</blockquote>
<h2>Introduction</h2>
<blockquote>
<p>Welcome to the world of CCS64. This a software emulator of the Commodore 64 computer.
You may say this is not the first program trying to emulate the C64. But this is planned
to be the finale C64 emulator. I have worked in several years with this product, studying
the C64 into its innermost secrets. This shareware version should run perfectly with all
games or demos, even those using the 1541 disk drive.</p>
<p> </p>
</blockquote>
<h2>Registration</h2>
<blockquote>
<p>As this is SHAREWARE, if you like and use this program you are supposed to register it.
Of course you then will get a registered version of this program with additional features
and bonuses. At the moment the register fee is 30 USD, or equal amount in
EURO, GBP or SEK.
Credit cards or CHEQUES can NOT be used. Please consult your local post office or bank for
proper ways of sending money to Sweden.<br>
<br>
To register you send cash money, together with your name, address and/or e-mail to:<br>
<br>
Per Hkan Sundell<br>
Berghemsgatan 6<br>
SE-431 37 MLNDAL<br>
SWEDEN<br>
<br>
Or use the register utility for Kagi, <a href="http://www.computerbrains.com/register.exe">register.exe</a>
.<br>
<br>
Or you can transfer the money directly to my bank account. Please pay via Eurogiro or
SWIFT to our (Sundell Consulting) account number 607 85 52-4 with Postgirot Bank AB (publ)
S-105 06 Stockholm, Sweden. SWIFT address: PGSI SESS</p>
<p>You can also register on-line using VISA credit card at <a
href="http://order.kagi.com/?QRN">http://order.kagi.com/?QRN</a>. <br>
<br>
Note that registered users are entitled to unlimited number of updates of CCS64 without
any further costs. The product will be continously updated as long as there is any
features or bugs to be fixed. This means that you could safely register now, even if some
special feature is not ready yet, as you will not miss the update when that special
feature is ready.</p>
</blockquote>
<p> </p>
<h2>System Requirements</h2>
<blockquote>
<h3>WIN32 version:</h3>
<blockquote>
<h4>Supported operating systems:</h4>
<ul>
<li>Windows 98/ME/2000/XP with DirectX v9.0 or later</li>
</ul>
<h4>Hardware requirements:</h4>
</blockquote>
<blockquote>
<ul>
<li>Pentium processor or better.</li>
<li>16 Mb of internal memory.</li>
<li>SVGA graphics.</li>
</ul>
<h4>Additional support:</h4>
<ul>
<li>Windows compatible sound card.</li>
<li>Windows compatible joystick.</li>
<li>Windows compatible mouse.</li>
<li>HardSID sound add-on card.</li>
</ul>
</blockquote>
</blockquote>
<p> </p>
<h2><a name="Information"></a>Information</h2>
<blockquote>
<h3>Emulation compatibility:</h3>
<blockquote>
<h4>C64 main console:</h4>
<ul>
<li>99.9% CPU 6510, MMU 82S100. All imaginable programs should work. The emulation of CPU is
cycle exact and considers all strange side-effects.</li>
<li>99.9% VIC 6566/6567/6569. All imaginable graphics modes and effect should work. The
emulation of VIC is pixel exact and considers all strange effects, both known and unknown,
as it emulates the inner workings of the VIC chip.</li>
<li>SID 6581/8581. Nearly perfect regarding the digital core emulation. Approximated
emulation regarding the filter emulation and analog amplifier output. The emulation of SID
is cycle exact and constructs fully synthetic samples in 8 or 16 bits resolution.</li>
<li>99.9% CIA 6526. All features of the I/O circuits. The emulation of CIA is cycle exact.</li>
<li>Keyboard. All keys including Restore.</li>
</ul>
<h4>1541 disk drive:</h4>
<ul>
<li>99.9% CPU 6502. All imaginable programs should work. The emulation of CPU is cycle exact
and considers all strange side-effects.</li>
<li>99.9% VIA 6522. All features of the I/O circuits. The emulation of VIA is cycle exact.</li>
<li>99% GCR Read/Write electronics. Handles different densities and all kind of
syncronization patterns.</li>
<li>Head step motor. Handles 84 half-tracks.</li>
<li>Disk rotation motor.</li>
</ul>
<h4>C2N cassette recorder:</h4>
<ul>
<li>Read/Write electronics. The pulse generation is cycle exact.</li>
<li>Tape motor.</li>
<li>Play button sense.</li>
</ul>
<h4>Printer equipment:</h4>
<ul>
<li>Printer at serial port with device number from 4 to 7 emulated at kernel level. Normal
file operation from BASIC should work.</li>
</ul>
<h4>C64 expansion port equipment:</h4>
<ul>
<li>1764 Ram Expansion Unit (REU). Configurable in steps from 128 Kb to 16 Mb. Emulation is
cycle exact.</li>
<li>ROM/RAM Cartridges with custom hardware. Besides from normal kind of cartridges,
seventeen types of custom hardware are emulated.</li>
</ul>
<h4>C64 joystick port equipment:</h4>
<ul>
<li>Digital joystick. Supports up to three fire buttons.</li>
<li>Mouse C1351.</li>
<li>Paddles.</li>
</ul>
<h4>1541 disk drive expansion:</h4>
<ul>
<li>99% Parallell cable connected between the C64 user port and the 1541 disk drive.</li>
<li>RAM Expansion. Configurable at any size at locations $2000-$C000.</li>
</ul>
<h4>Combinations:</h4>
<ul>
<li>Up to four connected 1541 disk drives.</li>
<li>Can combine REU and normal cartridges.</li>
</ul>
</blockquote>
<h3>User Interface:</h3>
<ul>
<li>Control menu.</li>
<li>PAL TV emulation.</li>
<li>Graphics display with DirectX in either exclusive mode (fullscreen) or normal mode
(window).</li>
<li>Sound output for Windows-compatible sound card in quality up to the maximum the sound card
manages.</li>
<li>Sound output for HardSID sound add-on card using a variety of sound mix modes.</li>
<li>Screen snap-shot, saves an image of the whole current C64 screen (maximum
504x312 pixels for
PAL, 520x263 for NTSC) in 16, 256 or 16777216 colors.</li>
<li>Joystick emulation, both with keys and real PC joysticks. Also supports joystick adapter
that allows usage of original C64 joysticks.</li>
<li>Cartridge emulation using file format .CRT. Currently supporting normal (plain ROM/RAM
without I/O) types of cartridge, Action Replay, KCS Power Cartridge, Final Cartridge I
& III, Simons Basic, Ocean games, Fun Play, Super Games, Atomic Power, Epyx Fastload,
Westermann, Rex, C64 Game System, Warpspeed, Dinamic, Zaxxon, Expert,
Magic Desk, Super Snapshot 5, Comal 80 amd the Magic Formel Cartridge.</li>
<li>True tape emulation including turbotape and tape images (use originals on tape). Sorry
but for the true tape images, it is a little hard to create them, as I use special
hardware and program on my AMIGA computer, see the <a
href="http://www.computerbrains.com/ccs64">CCS64 Homepage</a>. But there are programs
available for PC developed by other people, that could use a commercial PC to C2N
connector or an high-quality audio sampling.</li>
<li>Pause mode, where you could single-step screen frames and look at interlaced pictures.</li>
<li>Freeze function, to save or restore the status of the emulator. This feature is under
development so use with care...</li>
<li>Machine code monitor. This feature is under development so use with care...</li>
<li>Making wave-files from C64 music.</li>
<li>Speed control.</li>
<li>Maximum 1541 speed, when enabled the emulator gives the emulation of the 1541 100%
priority while it is active with reading/writing.</li>
<li>Speed-o-meter, 1541 status and C2N status display.</li>
<li>Support for different ROM sets.</li>
<li>Support for fileimages in formats .PRG/.P00/.T64/.TAP/.D64/.G41 and .G64.</li>
<li>Multi-play over Internet of .T64/.D64/.PRG files using the Kaillera
client (<a href="http://www.kaillera.com">http://www.kaillera.com</a>). </li>
</ul>
</blockquote>
<h2>Instructions</h2>
<blockquote>
<h3>Starting</h3>
</blockquote>
<blockquote>
<blockquote>
<h4>WIN32 version:</h4>
<blockquote>
<p>To start the program just run the file named CCS.EXE.</p>
</blockquote>
</blockquote>
<h3>Using</h3>
<blockquote>
<p>To do anything meaningful you should enter the program menu by pressing the key F9.<br>
<br>
To use PC joysticks you have to calibrate them first. Calibration is selected from the
submenu Options/Input in the menu.<br>
<br>
If you have any problems with the settings and want the factory default settings back,
just delete the 'C64.CFG' configuration file and it will be restored next time you run
CCS64.</p>
</blockquote>
<h3>Menu</h3>
<blockquote>
<p>To use the Menu press F9 and then use the cursor keys to select. Use cursor right or
enter to enter a choice. Use escape to go back to the previous menu from a submenu. Use
cursor up or down to change selection. Use cursor left or right to change a value. Where
specified you could also use the functions keys. When a selection can by applied, enter
can also be used.<br>
<br>
In a directory listing you could also use PageUp or PageDown to scroll faster through the
selections. To get directly to the first filename which starts with a specific letter, you
could press CTRL+letter. </p>
<p>In some menus you could also select an option by pressing the first letter in the
option name, like S for the option "Select disk".</p>
</blockquote>
<h3>Keyboard</h3>
<blockquote>
<p>The keyboard is emulated almost like a real C64 keyboard and follows the C64 keyboard
layout, except for these keys:</p>
<table border="1" width="100%">
<tr>
<td width="21%"><h4>C64 key</h4>
</td>
<td width="79%"><h4>Emulation key</h4>
</td>
</tr>
<tr>
<td width="21%">C= (Commodore)</td>
<td width="79%">Left CTRL</td>
</tr>
<tr>
<td width="21%">RUN/STOP</td>
<td width="79%">Escape</td>
</tr>
<tr>
<td width="21%">RESTORE</td>
<td width="79%">Page Up. Observe that you must HIT this key like on a real C64!</td>
</tr>
<tr>
<td width="21%">CLR/HOME</td>
<td width="79%">Home</td>
</tr>
<tr>
<td width="21%">Arrow Up</td>
<td width="79%">Delete</td>
</tr>
<tr>
<td width="21%">Pound</td>
<td width="79%">Insert</td>
</tr>
<tr>
<td width="21%">Control</td>
<td width="79%">Tab</td>
</tr>
</table>
<p>The user interface uses the following keys during the emulation session.</p>
<table border="1" width="100%">
<tr>
<td width="21%"><h4>Key</h4>
</td>
<td width="79%"><h4>Description</h4>
</td>
</tr>
<tr>
<td width="21%">F9</td>
<td width="79%">Control menu. Always continues from the submenu from where you left.</td>
</tr>
<tr>
<td width="21%">F10</td>
<td width="79%">Control menu.</td>
</tr>
<tr>
<td width="21%">F11</td>
<td width="79%">Restores a frozen emulator state with the filename "freeze.c64".</td>
</tr>
<tr>
<td width="21%">F12</td>
<td width="79%">Freezes (saves) the emulator state with the filename
"freeze.c64".</td>
</tr>
<tr>
<td width="21%">Print Screen</td>
<td width="79%">Captures the screen as an 16 color image.</td>
</tr>
<tr>
<td width="21%">Scroll Lock</td>
<td width="79%">Reinitialize screen mode. Sometime Windows manages to distort colors when
switching between programs.</td>
</tr>
</table>
<p>The user interface uses the following fast-keys during the emulation session and from
the Menu.</p>
<table border="1" width="100%">
<tr>
<td width="21%"><h4>Fast-Key</h4>
</td>
<td width="79%"><h4>Description</h4>
</td>
</tr>
<tr>
<td width="21%">Alt+8</td>
<td width="79%">Menu for 1541 device 8. Press twice for Status Menu.</td>
</tr>
<tr>
<td width="21%">Alt+9</td>
<td width="79%">Menu for 1541 device 9. Press twice for Status Menu.</td>
</tr>
<tr>
<td width="21%">Alt+0</td>
<td width="79%">Menu for 1541 device 10. Press twice for Status Menu.</td>
</tr>
<tr>
<td width="21%">Alt++</td>
<td width="79%">Menu for 1541 device 11. Press twice for Status Menu.</td>
</tr>
<tr>
<td width="21%">Alt+1</td>
<td width="79%">Menu for Tape device 1. Press twice for Status Menu.</td>
</tr>
<tr>
<td width="21%">Alt+Shft+8</td>
<td width="79%">Status Menu for 1541 device 8.</td>
</tr>
<tr>
<td width="21%">Alt+Shft+9</td>
<td width="79%">Status Menu for 1541 device 9.</td>
</tr>
<tr>
<td width="21%">Alt+Shft+0</td>
<td width="79%">Status Menu for 1541 device 10.</td>
</tr>
<tr>
<td width="21%">Alt+Shft++</td>
<td width="79%">Status Menu for 1541 device 11.</td>
</tr>
<tr>
<td width="21%">Alt+Shft+1</td>
<td width="79%">Status Menu for Tape device 1.</td>
</tr>
<tr>
<td width="21%">Alt+R</td>
<td width="79%">Reset (Soft)</td>
</tr>
<tr>
<td width="21%">Alt+Shft+R</td>
<td width="79%">Reset (Hard)</td>
</tr>
<tr>
<td width="21%">Alt+O</td>
<td width="79%">Options Menu</td>
</tr>
<tr>
<td width="21%">Alt+V</td>
<td width="79%">Video Menu</td>
</tr>
<tr>
<td width="21%">Alt+I</td>
<td width="79%">Input Menu</td>
</tr>
<tr>
<td width="21%">Alt+M</td>
<td width="79%">MC Monitor</td>
</tr>
<tr>
<td width="21%">Alt+E</td>
<td width="79%">Special Menu</td>
</tr>
<tr>
<td width="21%">Alt+S</td>
<td width="79%">Sound Menu</td>
</tr>
<tr>
<td width="21%">Alt+C</td>
<td width="79%">Cartridge Menu</td>
</tr>
<tr>
<td width="21%">Alt+T</td>
<td width="79%">State Menu</td>
</tr>
<tr>
<td width="21%">Alt+F</td>
<td width="79%">Cartridge Freeze button</td>
</tr>
<tr>
<td width="21%">Alt+P</td>
<td width="79%">Pause on/off. In pause mode you can press I to see the next interlaced
frame, or N to step frames.</td>
</tr>
<tr>
<td width="21%">Alt+Shft+P</td>
<td width="79%">PAL TV filter emulation on/off.</td>
</tr>
<tr>
<td width="21%">Alt+X</td>
<td width="79%">Quit</td>
</tr>
<tr>
<td width="21%">Alt+Q</td>
<td width="79%">Quit</td>
</tr>
<tr>
<td width="21%">Alt+F1</td>
<td width="79%">Save 16 color screen</td>
</tr>
<tr>
<td width="21%">Alt+Shft+F1</td>
<td width="79%">Save PAL/RGB color screen</td>
</tr>
<tr>
<td width="21%">Alt+F2</td>
<td width="79%">Save 256 color screen</td>
</tr>
<tr>
<td width="21%">Alt+F3</td>
<td width="79%">Toggle Speed (100 - 500 %)</td>
</tr>
<tr>
<td width="21%">Alt+F4</td>
<td width="79%">Quit</td>
</tr>
<tr>
<td width="21%">Alt+F5</td>
<td width="79%">Insert next .D64/.G64 disk image into device 8</td>
</tr>
<tr>
<td width="21%">Alt+F6</td>
<td width="79%">Insert previous .D64/.G64 disk image into device 8</td>
</tr>
<tr>
<td width="21%">Alt+F7</td>
<td width="79%">Select next input device/mode in C64 game port 1</td>
</tr>
<tr>
<td width="21%">Alt+F8</td>
<td width="79%">Select next input device/mode in C64 game port 2</td>
</tr>
<tr>
<td width="21%">Alt+F10</td>
<td width="79%">Exchange input device/mode settings between C64 game
port 1 and 2</td>
</tr>
<tr>
<td width="21%">Alt+F11</td>
<td width="79%">Loads a frozen emulator state from selectable filename.</td>
</tr>
<tr>
<td width="21%">Alt+F12</td>
<td width="79%">Saves a frozen emulator state to selectable filename.</td>
</tr>
</table>
</blockquote>
<blockquote>
<p>The default joystick emulation in keys is as follows:</p>
<table border="1" width="100%" height="200">
<tr>
<td width="21%" height="19"><h4>C64 Joystick Port 1</h4>
</td>
<td width="79%" height="19"><h4>Key</h4>
</td>
</tr>
<tr>
<td width="21%" height="19">Up</td>
<td width="79%" height="19">Keypad %</td>
</tr>
<tr>
<td width="21%" height="19">Down</td>
<td width="79%" height="19">Keypad 5</td>
</tr>
<tr>
<td width="21%" height="19">Left</td>
<td width="79%" height="19">Keypad 7</td>
</tr>
<tr>
<td width="21%" height="19">Right</td>
<td width="79%" height="19">Keypad 9</td>
</tr>
<tr>
<td width="21%" height="19">Fire button 1</td>
<td width="79%" height="19">Right Alt (Alt Gr)</td>
</tr>
<tr>
<td width="21%" height="19">Fire button 2</td>
<td width="79%" height="19"></td>
</tr>
<tr>
<td width="21%" height="19">Fire button 3</td>
<td width="79%" height="19"></td>
</tr>
</table>
<blockquote>
</blockquote>
<table border="1" width="100%">
<tr>
<td width="21%"><h4>C64 Joystick Port 2</h4>
</td>
<td width="79%"><h4>Key</h4>
</td>
</tr>
<tr>
<td width="21%">Up</td>
<td width="79%">Keypad 8</td>
</tr>
<tr>
<td width="21%">Down</td>
<td width="79%">Keypad 2</td>
</tr>
<tr>
<td width="21%">Left</td>
<td width="79%">Keypad 4</td>
</tr>
<tr>
<td width="21%">Right</td>
<td width="79%">Keypad 6</td>
</tr>
<tr>
<td width="21%">Fire button 1</td>
<td width="79%">Right CTRL</td>
</tr>
<tr>
<td width="21%">Fire button 2</td>
<td width="79%"> </td>
</tr>
<tr>
<td width="21%">Fire button 3</td>
<td width="79%"> </td>
</tr>
</table>
<p> </p>
</blockquote>
<h3>Multi-Play Over Internet</h3>
<blockquote>
<p>From the main menu, enter the submenu of Device 1 or 8-11. Enter the directory that contains
the .T64/.D64/.PRG files that you want to be able to use for multi-play over Internet. Use cursor
up/down keys to position on the "." directory, then press F3. Using the Kaillera client
(http://www.kaillera.com) you can now connect to a server and from there either create a new game
or join an existing one. Remember to not start your created game until enough people have joined.
If you join an existing game, the game will start as soon as the game creator has started. To be
able to join an existing game, you have to have started the multi-play menu from a directory which
contains exactly the same file as the one that the game creator has.</p>
<p>During the Multiplay session, no menu setting can be reached. Therefore, remember to set correct
settings for input devices etcetera before entering the multi-play menu. The multi-play session is
ended by pressing either F9 or the F10 keys.</p>
<p><b>The following fast-keys work and are distributed to all players:</b></p>
<table border="1" width="100%">
<tr>
<td width="21%">Alt+F5</td>
<td width="79%">Insert next .D64/.G64 disk image into device 8</td>
</tr>
<tr>
<td width="21%">Alt+F6</td>
<td width="79%">Insert previous .D64/.G64 disk image into device 8</td>
</tr>
</table>
<p><b>The following fast-keys work and are only local to the current player:</b></p>
<table border="1" width="100%">
<tr>
<td width="21%">Alt+F7</td>
<td width="79%">Select next input device/mode in C64 game port 1</td>
</tr>
<tr>
<td width="21%">Alt+F8</td>
<td width="79%">Select next input device/mode in C64 game port 2</td>
</tr>
<tr>
<td width="21%">Alt+F10</td>
<td width="79%">Exchange input device/mode settings between C64 game
port 1 and 2</td>
</tr>
</table>
</blockquote>
<h3>MC Monitor</h3>
<blockquote>
<p>The native MC Monitor can be invoked either from the Menu or by using the fast-key. As
the monitor is native it doesn't affect the current emulated program in any way, all
memory is untouched - unless you do a change yourself, that is. The monitor is exited with
the Escape key. The following commands are supported:</p>
<table border="1" width="100%" height="730">
<tr>
<td width="21%" height="19"><h4>Command syntax</h4>
</td>
<td width="79%" height="19"><h4>Description</h4>
</td>
</tr>
<tr>
<td width="21%" height="38">A <xxxx> <mnemonic></td>
<td width="79%" height="38">Assemble. Example:<br>
A 1000 LDA #$09</td>
</tr>
<tr>
<td width="21%" height="19">BANK [<xx>] </td>
<td width="79%" height="19">Bank change 0-7 for different C64 MMU maps, 8-11 for 1541.</td>
</tr>
<tr>
<td width="21%" height="19">B</td>
<td width="79%" height="19">Show breakpoints</td>
</tr>
<tr>
<td width="21%" height="95">BA <xxxx> [RWE] [<xx>[-<yy>]]</td>
<td width="79%" height="95">Adds breakpoint at specified address, which is trigged when
the address is Read, Written or Executed. Default is any access triggered. The trigg can
also be limited within a range of data read/written. Example:<br>
BA D012 W F7-FF<br>
- This will only trigger the breakpoint whenever a program writes a value between F7 to FF
to address D012.</td>
</tr>
<tr>
<td width="21%" height="59">BR <xx></td>
<td width="79%" height="59">Remove the specified breakpoint. Example:<br>
BR 0<br>
- This will remove the first breakpoint.</td>
</tr>
<tr>
<td width="21%" height="19">C <xxxx> <yyyy> <zzzz></td>
<td width="79%" height="19">Compare memory.</td>
</tr>
<tr>
<td width="21%" height="19">D <xxxx> [<yyyy>]</td>
<td width="79%" height="19">Disassemble.</td>
</tr>
<tr>
<td width="21%" height="19">F <xxxx> <yyyy> <xx> ...</td>
<td width="79%" height="19">Fill memory with hex values or ascii strings. Example:<br>
F 1000 2000 "HELLO" 0D 0A</td>
</tr>
<tr>
<td width="21%" height="19">HD <xxxx> <yyyy> <string></td>
<td width="79%" height="19">Hunt disassembly output textually for patterns. Wildcards are
expressed with *. Example:<br>
HD A000 B000 "LDA*$*Y"</td>
</tr>
<tr>
<td width="21%" height="19">H <xxxx> <yyyy> <xx> ...</td>
<td width="79%" height="19">Hunt memory for hex values, ascii and wilds(XX). Example:<br>
H 1000 2000 10 XX "LEVEL"</td>
</tr>
<tr>
<td width="21%" height="19">I <xxxx> [<yyyy>]</td>
<td width="79%" height="19">Interpret memory as ascii.</td>
</tr>
<tr>
<td width="21%" height="38">L "<filename>" <xxxx>
[<yyyy>] </td>
<td width="79%" height="38">Loads memory from binary file (not .prg). Example:<br>
L "Hack" 0800 1000</td>
</tr>
<tr>
<td width="21%" height="38">LP "<filename>" <xxxx>
[<yyyy>] </td>
<td width="79%" height="38">Loads memory from binary program file (.prg). Example:<br>
LP "Hack.prg"</td>
</tr>
<tr>
<td width="21%" height="19">M <xxxx> [<yyyy>] </td>
<td width="79%" height="19">Shows memory as hex values.</td>
</tr>
<tr>
<td width="21%" height="19">P <xx> </td>
<td width="79%" height="19">Printer redirect. Redirects output of next D or M commands to
the specified printer device (04-07).</td>
</tr>
<tr>
<td width="21%" height="19">Q <xxxx> </td>
<td width="79%" height="19">Quicktraces until the PC reaches a certain address.</td>
</tr>
<tr>
<td width="21%" height="57">R <reg> <xx..> ... </td>
<td width="79%" height="57">Register. Changes the contents of the named CPU register.
Example:<br>
R PC FCE2 A 0<br>
- This will set the PC to FCE2 and A to 0.</td>
</tr>
<tr>
<td width="21%" height="38">S "<filename>" <xxxx>
<yyyy> </td>
<td width="79%" height="38">Saves memory to binary file (not .prg). Example:<br>
S "Picture" 2000 3F40</td>
</tr>
<tr>
<td width="21%" height="38">SP "<filename>" <xxxx>
<yyyy> </td>
<td width="79%" height="38">Saves memory to binary program file (.prg). Example:<br>
SP "Demo.prg" 2000 3F40</td>
</tr>
<tr>
<td width="21%" height="38">T <xxxx> <yyyy>
<zzzz> </td>
<td width="79%" height="38">Transfer memory. Copies the contents of a memory region into
another.</td>
</tr>
<tr>
<td width="21%" height="19">W [<xxxx>] </td>
<td width="79%" height="19">Traces with singlestep.</td>
</tr>
<tr>
<td width="21%" height="19">X</td>
<td width="79%" height="19">Exits monitor.</td>
</tr>
<tr>
<td width="21%" height="19">: <xxxx> <xx> ...</td>
<td width="79%" height="19">Changes memory from hex values.</td>
</tr>
<tr>
<td width="21%" height="19">, <xxxx> <xx> ... </td>
<td width="79%" height="19">Changes memory from disassemble hex values.</td>
</tr>
<tr>
<td width="21%" height="19">* [<xx>] </td>
<td width="79%" height="19">Bank change 0-7 for different C64 MMU maps, 8-11 for 1541.</td>
</tr>
<tr>
<td width="21%" height="19">? <expression></td>
<td width="79%" height="19">Evaluate a numeric expression and display the result in
decimal and hexadecimal. The syntax of the expression is as follows:<br>
expr ::= hexnr | '$' hexnr | '#' decnr | '-' expr | expr '+' expr | expr '-' expr | expr
'*' expr | expr '/' expr | expr '%' expr | '(' expr ')'<br>
Example:<br>
?23+(56%7+55*(#23-7/3)) </td>
</tr>
</table>
</blockquote>
<blockquote>
<p>Some of the commands that produces several lines of output, like the M command, can be
manually continued by scrolling up/down with cursor keys to the screen limits, or using
page up/down keys. To get a free line to enter a new command, just press enter.</p>
<p>You can also get up on-line help and status page by pressing the function keys F1 to
F4.</p>
<p>F1 - Help<br>
F2 - VIC Status<br>
F3 - CIA1 Status<br>
F4 - CIA2 Status</p>
<p>You can swap to one of the 8 different session screens by pressing the Alt key together
with one of the keys 1 to 8.</p>
<p>Alt + 1 - Session 1<br>
Alt + 2 - Session 2<br>
...<br>
Alt + 8 - Session 8</p>
</blockquote>
<h3>Command-Line Options</h3>
<blockquote>
<p>To get a syntax description of the current available command-line options, just run the
program from a command-window with the argument "?". Example:</p>
<p>CCS ?</p>
<p>This will probably give an output like: CCS
[filename.{prg/p00/p01/t64/d64/g41/tap/crt}[,index]] [-cfg filename] [-fastload]
[-normalload] [-autorun] [-manualrun] [-window] [-hardsid id]</p>
<p><strong>Explanation:</strong></p>
<p>[]
- means that this option is optional and has not to be given.<br>
{opt1,opt2,...} - means one of the options.</p>
<table border="1" width="640">
<tr>
<td width="170">filename.{prg/ p00/ p01/ t64/ d64/ g41/ tap/ crt}[,index]</td>
<td width="458">A filename that describes a disk/tape/cartridge image to be loaded at the
start of CCS64. The optional index tells which individual file inside of a disk/tape
images that should be loaded (default is the first one).<br>
Example: mygame.d64,3</td>
</tr>
<tr>
<td width="170">-cfg filename</td>
<td width="458">Change the filename of the config file to be used (default is c64.cfg).</td>
</tr>
<tr>
<td width="170">-fastload</td>
<td width="458">Turns on the fastload feature when loading from disk or tape file images.
Can be less accurate.</td>
</tr>
<tr>
<td width="170">-normalload</td>
<td width="458">Turns on the most accurate emulation of the disk drive when loading from
disk or tape file images.</td>
</tr>
<tr>
<td width="170">-autorun</td>
<td width="458">Automatically starts the program that are loaded at the start of CCS64.</td>
</tr>
<tr>
<td width="170">-manualrun</td>
<td width="458">Do not start the program that are loaded at the start of CCS64.</td>
</tr>
<tr>
<td width="170">-window</td>
<td width="458">Force the emulator to use the windowed mode of the DirectX graphics
display.</td>
</tr>
<tr>
<td width="170">-hardsid id</td>
<td width="458">Select the correct id for the HardSID sound card.</td>
</tr>
</table>
<p><strong>Example:</strong></p>
<p>CCS <a href="file:///C:/TheBestGames.D64,2">C:\TheBestGames.D64,2</a> -window -autorun<br>
- This will run CCS64 in windowed mode, and select the disk file image named
TheBestGames.D64 as the current inserted floppy disk into disk drive with device 8, then
load the 2nd file from the directory of that floppy disk and automatically start it. </p>
</blockquote>
<h3>Configuration</h3>
<blockquote>
<p>To change your configuration you could either use the program menu or edit the
configuration file 'C64.CFG' manually.</p>
<table border="1" width="100%">
<tr>
<td width="21%"><h4>Parameter name</h4>
</td>
<td width="79%"><h4>Description</h4>
</td>
</tr>
<tr>
<td width="21%" valign="top">SCREENMODE=</td>
<td width="79%" valign="top">If you change to a mode that doesn't work (or look nice)
on your equipment, immediately (this is VERY important, or your equipment can be damaged)
quit CCS64. Screen modes are now detected dynamically and are hardware/driver dependent.</td>
</tr>
<tr>
<td width="21%" valign="top">SOUNDENABLE=</td>
<td width="79%" valign="top">YES - Sound output on<br>
NO - Sound output off. </td>
</tr>
<tr>
<td width="21%" valign="top">SAMPLEFREQ=</td>
<td width="79%" valign="top">11111, 22222, 45454, or any other value, if your sound card can
manage it.</td>
</tr>
<tr>
<td width="21%" valign="top">SAMPLEBITS=</td>
<td width="79%" valign="top">16 - Tries to use 16 bits samples, otherwise uses 8.<br>
8 - 8 bits samples.</td>
</tr>
<tr>
<td width="21%" valign="top">LOADPATH=</td>
<td width="79%" valign="top">The path where you have your C64 games and demos.</td>
</tr>
<tr>
<td width="21%" valign="top">RGBCOLOR0=<br>
RGBCOLOR1=<br>
...<br>
RGBCOLOR15=</td>
<td width="79%" valign="top">The RGB color values that should be used for emulating the
C64 colors.<br>
</td>
</tr>
</table>
</blockquote>
<h3>Common Problems</h3>
<blockquote>
<p>Some times special games on .D64 images will behave badly when you use the 'Run (Fast)' or
'Boot (Fast)' feature (this is default). To solve this problems do like this, use the
'Run (Normal)' or 'Boot (Normal)' features instead; otherwise, perform the following:<br>
1) Reset the C64. <br>
2) Enter menu (1541 Device 8) and select the correct .D64 (Insert Disk)<br>
3) From the BASIC type:<br>
LOAD"*",8,1<br>
<br>
If you do not have a CD-ROM in your CD-drive or a disk in your disk drive, the emulator
will hang up if you select this device in the menu. So please, always be sure that you
have an initialized (sometimes you have to wait some seconds after instering it) CD-ROM in
your CD-drive before trying to use the CD device from the menu.<br>
<br>
The option load as Turbo tape should only be used when you get a message like "PRESS
PLAY ON TAPE" on your C64-screen, and you're sure about that the second part should
be loaded as turbo tape. Otherwise nothing useful will happen.<br>
<br>
Note that when your sampling the C64's audio output to a .WAV file, the sample rate and
bit resolution will be the same as selected in the C64.CFG file.<br>
<br>
Note that on a German keyboard, the keys Y and Z will have changed place when using under
CCS64.<br>
<br>
When you use the Screen-Shot function, the image will be saved as CCS0.BMP, CCS1.BMP,
CCS2.BMP, and so on.<br>
<br>
When you use the Sound Sampling function, the audio file will be saved as CCS0.WAV, CCS1.WAV,
CCS2.WAV, and so on.<br>
<br>
When you use the printer emulation, the output will be saved as PRINTER4.TXT, PRINTER5.TXT,
and so on.<br>
<br>
When you use the HardSID support, the "Channels 1-4 Burst" and "Channels 1-4 Buffered" modes
are recommended for faster CPUs; the "Channels 1-3 Burst & Channel 4 Emulated" mode is
recommended for slower CPUs.<br>
<br>
If you have some problems with the configuration of CCS64, and want to go back to the
default settings, just delete the C64.CFG file from the CCS64 installation directory.<br>
<br>
Using the emulator under Windows with old and out-dated sound drivers can sometimes cause
the system to hang or for there to be no sound at all.</p>
</blockquote>
</blockquote>
<p> </p>
<h2>Notes</h2>
<blockquote>
<p>The C64 and 1541 roms is under copyright (C) by Commodore Business Machines. If you
don't want these original roms you could replace the files KERNAL.ROM, BASIC.ROM,
C1541.ROM and CHAR.ROM.</p>
<p>PAL TV filter emulation by John 'Graham' Selck and Philip 'Pepto' Timmermann.</p>
<p>SID filter emulation contributed by Michael Kleps.</p>
<p>CCS64 Keyboard Layout (PDF) document by Stilianos 'Stello' Doussis.</p>
</blockquote>
<h2>Contact Address</h2>
<blockquote>
<p>If you have any emulation problems or suggestions, please contact me. Note that I get a
lot of e-mail, so you can not count on that I will reply to it. But of course I will read
it.<br>
<br>
E-mail: <a href="mailto:REMOVETHISphs@ccs64.com">REMOVETHISTEXTphs@ccs64.com</a> (this e-mail
address has been anti-spammed)<br>
<br>
CCS64 homepage: <a href="http://www.computerbrains.com/ccs64">http://www.ccs64.com</a><br>
<br>
Computerbrains homepage: <a href="http://www.computerbrains.com">http://www.computerbrains.com</a><br>
<br>
Note that these addresses can change within near future, and when so have happened you
most certainly can find my new addresses by searching the Internet.</p>
</blockquote>
</body>
</html>