This is Info file vice.info, produced by Makeinfo version 1.68 from the
input file vice.texi.

START-INFO-DIR-ENTRY
* VICE: (vice).        VICE, the Versatile Commodore Emulator.
END-INFO-DIR-ENTRY

   VICE Manual

   Permission is granted to make and distribute verbatim copies of this
manual provided the copyright notice and this permission notice are
preserved on all copies.

   Permission is granted to copy and distribute modified versions of
this manual under the conditions for verbatim copying, provided that
the entire resulting derived work is distributed under the terms of a
permission notice identical to this one.


File: vice.info,  Node: G64,  Prev: T64,  Up: File formats

The G64 GCR-encoded disk image format
=====================================

   (This section was contributed by Peter Schepers
(<schepers@ist.uwaterloo.ca>) and slightly edited by Ettore Perazzoli
(<ettore@comm2000.it>).)

   This format was defined in 1998 as a cooperative effort between
several emulator people, mainly Per Håkan Sundell, author of the CCS64
C64 emulator, Andreas Boose of the VICE CBM emulator team and Joe
Forster/STA, the author of Star Commander.  It was the first real public
attempt to create a format for the emulator community which removed
almost all of the drawbacks of the other existing image formats, namely
`D64'.

   The intention behind `G64' is not to replace the widely used `D64'
format, as `D64' works fine with the vast majority of disks in
existence.  It is intended for those small percentage of programs which
demand to work with the 1541 drive in a non-standard way, such as
reading or writing data in a custom format.  The best example is with
speeder software such as Action Cartridge in Warp Save mode or Vorpal
which write track/sector data in another format other than standard
GCR.  The other obvious example is copy-protected software which looks
for some specific data on a track, like the disk ID, which is not
stored in a standard `D64' image.

   `G64' has a deceptively simply layout for what it is capable of
doing.  We have a signature, version byte, some predefined size values,
and a series of offsets to the track data and speed zones.  It is what's
contained in the track data areas and speed zones which is really at the
heart of this format.

   Each track entry in simply the raw stream of GCR data, just what a
read head would see when a diskette is rotating past it.  How the data
gets interpreted is up to the program trying to access the disk.
Because the data is stored in such a low-level manner, just about
anything can be done.  Most of the time I would suspect the data in the
track would be standard sectors, with SYNC, GAP, header, data and
checksums.  The arrangement of the data when it is in a standard GCR
sector layout is beyond the scope of this document.

   Since it is a flexible format in both track count and track byte
size, there is no "standard" file size.  However, given a few constants
like 42 tracks and halftracks, a track size of 7928 bytes and no speed
offset entries, the typical file size will a minimum of 333744 bytes.

   Below is a dump of the header, broken down into its various parts.
After that will be an explanation of the track offset and speed zone
offset areas, as they demand much more explanation.

     Addr  00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F
     ----  -----------------------------------------------
     0000: 47 43 52 2D 31 35 34 31 00 54 F8 1E .. .. .. ..

Offset         Description                                                
$0000-0007     File signature (`GCR-1541')                                
$0008          `G64' version (presently only $00 defined)                 
$0009          Number of tracks in image (usually $54, decimal 84)        
$000A-000B     Size of each stored track in bytes (usually 7928, or       
               $1EF8) in LO/HI format.                                    

   An obvious question here is "why are there 84 tracks defined when a
normal `D64' disk only has 35 tracks?"  Well, by definition, this image
includes all half-tracks, so there are actually 42 tracks and 42 half
tracks.  The 1541 stepper motor can access up to 42 tracks and the
in-between half-tracks.  Even though using more than 35 tracks is not
typical, it was important to define this format from the start with what
the 1541 is capable of doing, and not just what it typically does.

   At first, the defined track size value of 7928 bytes may seem to be
arbitrary, but it is not.  It is determined by the fastest write speed
possible (speed zone 0), coupled with the average rotation speed of the
disk (300 rpm).  After some math, the answer that actually comes up is
7692 bytes.  Why the discrepency between the actual size of 7692 and the
defined size of 7928? Simply put, not all drives rotate at 300 rpm.
Some can be faster or slower, so a upper safety margin of +3% was built
added, in case some disks rotate slower and can write more data.  After
applying this safety factor, and some rounding-up, 7928 bytes per track
was arrived at.

   Also note that this upper limit of 7928 bytes per track really only
applies to 1541 and compatible disks.  If this format were applied to
another disk type like the SFD1001, this value would be higher.

   Below is a dump of the first section of a `G64' file, showing the
offsets to the data portion for each track and half-track entry.
Following that is a dump of the speed zone offsets.

     Addr  00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F
     ----  -----------------------------------------------
     0000: .. .. .. .. .. .. .. .. .. .. .. .. AC 02 00 00
     0010: 00 00 00 00 A6 21 00 00 00 00 00 00 A0 40 00 00
     0020: 00 00 00 00 9A 5F 00 00 00 00 00 00 94 7E 00 00
     0030: 00 00 00 00 8E 9D 00 00 00 00 00 00 88 BC 00 00
     0040: 00 00 00 00 82 DB 00 00 00 00 00 00 7C FA 00 00
     0050: 00 00 00 00 76 19 01 00 00 00 00 00 70 38 01 00
     0060: 00 00 00 00 6A 57 01 00 00 00 00 00 64 76 01 00
     0070: 00 00 00 00 5E 95 01 00 00 00 00 00 58 B4 01 00
     0080: 00 00 00 00 52 D3 01 00 00 00 00 00 4C F2 01 00
     0090: 00 00 00 00 46 11 02 00 00 00 00 00 40 30 02 00
     00A0: 00 00 00 00 3A 4F 02 00 00 00 00 00 34 6E 02 00
     00B0: 00 00 00 00 2E 8D 02 00 00 00 00 00 28 AC 02 00
     00C0: 00 00 00 00 22 CB 02 00 00 00 00 00 1C EA 02 00
     00D0: 00 00 00 00 16 09 03 00 00 00 00 00 10 28 03 00
     00E0: 00 00 00 00 0A 47 03 00 00 00 00 00 04 66 03 00
     00F0: 00 00 00 00 FE 84 03 00 00 00 00 00 F8 A3 03 00
     0100: 00 00 00 00 F2 C2 03 00 00 00 00 00 EC E1 03 00
     0110: 00 00 00 00 E6 00 04 00 00 00 00 00 E0 1F 04 00
     0120: 00 00 00 00 DA 3E 04 00 00 00 00 00 D4 5D 04 00
     0130: 00 00 00 00 CE 7C 04 00 00 00 00 00 C8 9B 04 00
     0140: 00 00 00 00 C2 BA 04 00 00 00 00 00 BC D9 04 00
     0150: 00 00 00 00 B6 F8 04 00 00 00 00 00 .. .. .. ..

Offset         Description                                                
$000C-000F     Offset to stored track 1.0 ($000002AC, in LO/HI format,    
               see below for more)                                        
$0010-0013     Offset to stored track 1.5 ($00000000)                     
$0014-0017     Offset to stored track 2.0 ($000021A6)                     
...                                                                       
$0154-0157     Offset to stored track 42.0 ($0004F8B6)                    
$0158-015B     Offset to stored track 42.5 ($00000000)                    

           00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F
           -----------------------------------------------
     0150: .. .. .. .. .. .. .. .. .. .. .. .. 03 00 00 00
     0160: 00 00 00 00 03 00 00 00 00 00 00 00 03 00 00 00
     0170: 00 00 00 00 03 00 00 00 00 00 00 00 03 00 00 00
     0180: 00 00 00 00 03 00 00 00 00 00 00 00 03 00 00 00
     0190: 00 00 00 00 03 00 00 00 00 00 00 00 03 00 00 00
     01A0: 00 00 00 00 03 00 00 00 00 00 00 00 03 00 00 00
     01B0: 00 00 00 00 03 00 00 00 00 00 00 00 03 00 00 00
     01C0: 00 00 00 00 03 00 00 00 00 00 00 00 03 00 00 00
     01D0: 00 00 00 00 03 00 00 00 00 00 00 00 03 00 00 00
     01E0: 00 00 00 00 02 00 00 00 00 00 00 00 02 00 00 00
     01F0: 00 00 00 00 02 00 00 00 00 00 00 00 02 00 00 00
     0200: 00 00 00 00 02 00 00 00 00 00 00 00 02 00 00 00
     0210: 00 00 00 00 02 00 00 00 00 00 00 00 01 00 00 00
     0220: 00 00 00 00 01 00 00 00 00 00 00 00 01 00 00 00
     0230: 00 00 00 00 01 00 00 00 00 00 00 00 01 00 00 00
     0240: 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00
     0250: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
     0260: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
     0270: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
     0280: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
     0290: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
     02A0: 00 00 00 00 00 00 00 00 00 00 00 00 .. .. .. ..

Offset         Description                                                
$015C-015F     Speed zone entry for track 1 ($03, in LO/HI  format, see   
               below for more)                                            
$0160-0163     Speed zone entry for track 1.5 ($03)                       
...                                                                       
$02A4-02A7     Speed zone entry for track 42 ($00)                        
$02A8-02AB     Speed zone entry for track 42.5 ($00)                      

   Starting here at $02AC is the first track entry (from above, it is
the first entry for track 1.0)

   The track offsets (from above) require some explanation.  When one is
set to all 0's, no track data exists for this entry.  If there is a
value, it is an absolute reference into the file (starting from the
beginning of the file).  From the track 1.0 entry we see it is set for
$000002AC.  Going to that file offset, here is what we see...

           00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F
           -----------------------------------------------
     02A0: .. .. .. .. .. .. .. .. .. .. .. .. 0C 1E FF FF
     02B0: FF FF FF 52 54 B5 29 4B 7A 5E 95 55 55 55 55 55
     02C0: 55 55 55 55 55 55 FF FF FF FF FF 55 D4 A5 29 4A
     02D0: 52 94 A5 29 4A 52 94 A5 29 4A 52 94 A5 29 4A 52

Offset         Description                                                
$02AC-02AD     Actual size of stored track (7692 or $1E0C, in LO/HI       
               format)                                                    
$02AE-02AE+$1E0CTrack data                                                 

   Following the track data is filler bytes.  In this case, there are
368 bytes of unused space.  This space can contain anything, but for the
sake of those wishing to compress these images for storage, they should
all be set to the same value.  In the sample I used, these are all set
to $FF.

   Below is a dump of the end of the track 1.0 data area.  Note the
actual track data ends at address $20B9, with the rest of the block
being unused, and set to $FF.

           00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F
           -----------------------------------------------
     1FE0: 52 94 A5 29 4A 52 94 A5 29 4A 52 94 A5 29 4A 52
     1FF0: 94 A5 29 4A 52 94 A5 29 4A 52 94 A5 29 4A 52 94
     2000: A5 29 4A 52 94 A5 29 4A 52 94 A5 29 4A 52 94 A5
     2010: 29 4A 52 94 A5 29 4A 52 94 A5 29 4A 52 94 A5 29
     2020: 4A 52 94 A5 29 4A 52 94 A5 29 4A 52 94 A5 29 4A
     2030: 55 55 55 55 55 55 FF FF FF FF FF FF FF FF FF FF
     2040: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
     2050: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
     2060: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
     2070: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
     2080: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
     2090: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
     20A0: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
     20B0: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
     20C0: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
     20D0: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
     20E0: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
     20F0: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
     2100: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
     2110: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
     2120: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
     2130: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
     2140: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
     2150: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
     2160: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
     2170: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
     2180: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
     2190: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
     21A0: FF FF FF FF FF FF .. .. .. .. .. .. .. .. .. ..

   The speed offset entries can be a little more complex. The 1541 has
four speed zones defined, which means the drive can write data at four
distinct speeds.  On a normal 1541 disk, these zones are as follows:

Track Range                          Speed Zone                           
1-17                                 3  (highest writing speed)           
18-24                                2                                    
25-30                                1                                    
31 and up                            0 (lowest writing speed)             

   Note that you can, through custom programming of the 1541, change the
speed zone of any track to something different (change the 3 to a 0) and
write data differently.  From the dump of the speed offset entries
above, we see that all the entries are in the range of 0-3. If any entry
is less than 4, this is not considered a speed offset but defines the
whole track to be recorded at that one speed.

   In the example I had, there were no offsets defined, so no speed zone
dump can be shown.  However, I can define what should be there.  You
will have a block of data, 1982 bytes long.  Each byte is encoded to
represent the speed of 4 bytes in the track offset area, and is broken
down as follows:

     Speed entry $FF:  in binary %11111111
                                  |'|'|'|'
                                  | | | |
                                  | | | +- 4'th byte speed (binary 11, 3 dec)
                                  | | +--- 3'rd byte speed (binary 11, 3 dec)
                                  | +----- 2'nd byte speed (binary 11, 3 dec)
                                  +------- 1'st byte speed (binary 11, 3 dec)

   It was very smart thinking to allow for two speed zone settings, one
in the offset block and another defining the speed on a per-byte basis.
If you are working with a normal disk, where each track is one constant
speed, then you don't need the extra blocks of information hanging
around the image, wasting space.

   What may not be obvious is the flexibility of this format to add
tracks and speed offset zones at will.  If a program decides to write a
track out with varying speeds, and no speed offset exist, a new block
will be created by appending it to the end of the image, and the offset
pointer for that track set to point to the new block.  If a track has
no offset yet, meaning it doesn't exist (like a half-track), and one
needs to be added, the same procedure applies.  The location of the
actual track or speed zone data is not important, meaning they do not
have to be in any particular order since they are all referenced by the
offsets at the beginning of the image.


File: vice.info,  Node: Acknowledgments,  Next: Copyright,  Prev: File formats,  Up: Top

Acknowledgments
***************

   VICE derives from X64, the first Commodore 64 emulator for the X
Window System.  Here is an informal list of the people who were mostly
involved in the development of X64 and VICE:

   The VICE core team:
   * Daniel Sladic (<sladic@eecg.toronto.edu>) started the work on
     hardware-level 1541 emulation and wrote the new monitor introduced
     with VICE 0.15.

   * Andreas Boose (<viceteam@t-online.de>) gave lots of information
     and bug reports about the VIC-II, the 6510 and the CIAs; moreover,
     he wrote several test-routines that were used to improve the
     emulation.  He also added cartridge support and has been the main
     head behind the drive and datasette emulation since version 0.15.
     Also added several UI elements to the MSDOS and MS-Windows ports.
     He rewrote the C128 emulation adding Z80 mode, C64 mode and
     function ROM support.

   * Dag Lem (<resid@nimrod.no>) implemented the reSID SID emulation
     engine.

   * Tibor Biczo (<crown@mail.matav.hu>) improved the MS-Windows port.

   * Andreas Dehmel (<dehmel@forwiss.tu-muenchen.de>) wrote the Acorn
     RISC OS port.

   * Thomas Bretz (<tbretz@ph.tum.de>) responsible for the OS/2 port.

   * Andreas Matthies (<andreas.matthies@gmx.net>) improved the
     datasette support, the VIC20 video emulation and some ui stuff in
     the Win32 and MSDOS port. He also wrote the BeOS port.

   * Martin Pottendorfer (<Martin.Pottendorfer@aut.alcatel.at>)
     Implemented Gnome Port based on Oliver Schaertels GTK+ port Added
     support code for internationalization based on gettext Translated
     the Unix Port to German Implemented the fliplists + ui (unix).

   * Markus Brenner (<markus@brenner.de>) added VDC emulation to x128
     and added support for some more cartridges.

   * Spiro Trikaliotis (<Spiro.Trikaliotis@gmx.de>) wrote the Win32
     console implementation for the built-in monitor and provided some
     further patches.

   Former team members:

   * Ettore Perazzoli (<ettore@comm2000.it>) Copyright (C) 1996-1999
     Made the 6510, VIC-II, VIC-I and CRTC emulations, part of the
     hardware-level 1541 emulation, speed optimizations, bug fixes, the
     event-driven cycle-exact engine, the Xt/Xaw/Xfwf-based GUI for
     X11, a general code reorganization, the new resource handling,
     most of the documentation.  He also wrote the MS-DOS port and the
     initial MS-Windows port (well, somebody had to do it).

   * André Fachat (<fachat@physik.tu-chemnitz.de>) Copyright (C)
     1996-2001 Wrote the PET and CBM-II emulators, the CIA and VIA
     emulation, the IEEE488 interface, implemented the IEC serial bus
     in `xvic' and made tons of bug fixes.

   * Teemu Rantanen (<tvr@cs.hut.fi>) Copyright (C) 1993-1994, 1997-1999
     Implemented the SID emulation and the trap-based disk drive and
     serial bus implementation; added support for multiple display
     depths under X11.  Also wrote `c1541'

   * Jouko Valta (<jopi@stekt.oulu.fi>) Copyright (C) 1993-1996 Wrote
     `petcat' and `c1541', `T64' handling, user service and maintenance
     (most of the work in x64 0.3.x was made by him); retired from the
     project in July 96, after VICE 0.10.0.

   * Jarkko Sonninen (<sonninen@lut.fi>) Copyright (C) 1993-1994 He was
     the founder of the project, wrote the old version of the 6502
     emulation and the XDebugger, and retired from the project after
     x64 0.2.1.

   External contributors:

   * Michael Schwendt (<sidplay@geocities.com>) helped with the SID
     (audio) chip emulation, bringing important suggestions and bug
     reports, as well as the wave tables and filter emulation from his
     SIDplay emulator.

   * Christian Bauer (<bauec002@goofy.zdv.uni-mainz.de>) wrote the very
     interesting "VIC article" from which we got invaluable information
     about the VIC-II chip: without this, the VIC-II implementation
     would have not been possible.

   * Wolfgang Lorenz wrote an excellent 6510 test suite that helped us
     to debug the CPU emulation.

   * Giuliano Procida (<gpp10@cam.ac.uk>) is the maintainer of the VICE
     `deb' package for the Debian distribution, and also helped
     proofreading the documentation.

   * Marko Mäkelä (<msmakela@nic.funet.fi>) wrote lots of CPU
     documentation.

   * Chris Sharp (<sharpc@hurlsey.ibm.com>) wrote the AIX sound driver.

   * Krister Walfridsson (<cato@df.lth.se>) implemented joystick and
     sound support for NetBSD.

   * Mattias Engdegård (<f91-men@nada.kth.se>) got non-default depths
     to work.

   * Peter Andrew Felvegi aka Petschy (<petschy@derceto.sch.bme.hu>)
     fixed a couple of bugs in the fast serial emulation.

   * Olaf Seibert (<rhialto@polder.ubc.kun.nl>) contributed some PET,
     and disk drive patches.

   * Daniel Fandrich (<dan@fch.wimsey.bc.ca>) contributed some disk
     drive patches.

   * Heiko Selber (<selber@fhi-berlin.mpg.de>) contributed some VIC20
     I/O patches.

   * Steven Tieu (<stieu@physics.ubc.ca>) added initial support for
     16/24 bpp X11 displays.

   * Alexander Lehmann (<alex@mathematik.th-darmstadt.de>) added
     complete support for all the VIC20 memory configurations for the
     old VICE 0.12.

   * Lionel Ulmer implemented joystick support for Linux and a first
     try of a SID emulation for SGI machines.

   * Bernhard Kuhn (<kuhn@eikon.e-technik.tu-muenchen.de>) made some
     joystick improvements for Linux.

   * Gerhard Wesp (<gwesp@cosy.sbg.ac.at>) contributed the `extract'
     command in `c1541'.

   * Ricardo Ferreira (<storm@esoterica.pt>) contributed the `unlynx'
     and `system' commands in `c1541'.

   * Tomi Ollila (<Tomi.Ollila@tfi.net>) donated `findpath.c'.

   * Richard Hable (<hab@fim.uni-linz.ac.at>) contributed the initial
     version of the REU Emulation.

   * Vesa-Matti Puro (<vmp@lut.fi>) wrote the very first 6502 CPU
     emulator in x64 0.1.0.  That was the beginning of the story...

   * Dan Miner (<dminer@nyx10.cs.du.edu>) contributed some patches to
     the fast disk drive emulation.

   * Frank Prindle (<Frank.Prindle@lambada.oit.unc.edu>) contributed
     some patches.

   * Peter Weighill (<stuce@csv.warwick.ac.uk>) gave many ideas and
     contributed the ROM patcher.

   * Dominique Strigl (<strigl@sxb.bsf.alcatel.fr>), Craig Jackson
     (<Craig.Jackson@lambada.oit.unc.edu>) and Lasse Jyrkinen
     ((<Lasse.Jyrkinen@uz.kuleuven.ac.be>) contributed miscellaneous
     patches in the old X64 times.

   * Per Olofsson (<MagerValp@Goth.Org>) digitalized the C64 colors
     used in the default palette.

   * Paul David Doherty (<h0142kdd@rz.hu-berlin.de>) wrote `zip2disk',
     on which the Zipcode support in `c1541' is based.

   * Robert H. Forsman Jr., Brian Totty (<totty@cs.uiuc.edu>) and
     Robert W. McMullen (<rwmcm@orion.ae.utexas.edu>) provided the
     widget set for implementing the `Xaw' GUI.

   * Shawn Hargreaves (<shawn@talula.demon.co.uk>) wrote Allegro, the
     graphics and audio library used in the MS-DOS version.

   * Peter Schepers (<schepers@ist.uwaterloo.ca>) contributed a
     document describing the G64 image format.

   * Oliver Schaertel (<orschaer@forwiss.uni-erlangen.de>) wrote the
     X11 full screen, parts of custom ROM set support and 1351 mouse
     emulation for unix.

   * Luca Montecchiani (<m.luca@usa.net>) contributed a new Unix
     joystick driver.

   * Dirk Farin (<farin@ti.uni-mannheim.de>) rewrote the MITSHM code.

   * Manfred Spraul (<manfreds@colorfullife.com>) wrote the MS-Windows
     text lister.

   * Eric provided the french translation for the Unix ports.

   * Andrea Musuruane (<musuruan@bmm.it>) provided the italian
     translation for the Unix ports

   * Michael Klein (<nip@c64.org>) contributed the ESD sound driver and
     some patches.

   * David Holz (<whiteflame52@yahoo.com>) provided a label file which
     gives the built-in monitor the labels for the C64.

   * Lasse Öörni (<loorni@mail.student.oulu.fi>) contributed the
     Windows Multimedia sound driver

   * Frank König (<frank_koenig@t-online.de>) contributed the Win32
     joystick autofire feature.

   * John Selck (<graham@cruise.de>) wrote the fast PAL emulation.

   * webulator (<webulator@mailandnews.com>) provided win32 drag & drop
     support

   * ck! (<pixelite@lycos.de>) provided a win32 cbm character font.

   * Lutz Sammer

   * Ralph Mason (<RALPHM@msmail02.liffe.com>)

   * George Caswell (<timbuktu@the-eye.res.wpi.edu>)

   * Per Olofsson (<MagerValp@goth.org>)

   * Jasper Phillips (<philljas@newt.cs.orst.edu>)

   * Luca Forcucci (<frk@geocities.com>)

   * Asger Alstrup (<alstrup@diku.dk>)

   * Bernhard Schwall (<uzs484@uni-bonn.de>)

   * Salvatore Valente (<svalente@mit.edu>)

   * Arthur Hagen (<art@broomstick.com>)

   * Douglas Carmichael (<dcarmich@mcs.com>)

   * Ferenc Veres (<lion@c64.rulez.org>)

   * Andrea Musuruane (<musuruan@biella.alpcom.it>)

   * Frank Reichel (<Frank.Reichel@forchheim.baynet.de>)

   * Ullrich von Bassewitz

   * Holger Busse

   Last but not least, a very special thank to Andreas Arens, Lutz
Sammer, Edgar Tornig, Christian Bauer, Wolfgang Lorenz, Miha Peternel
and Per Håkan Sundell for writing cool emulators to compete with.  :-)


File: vice.info,  Node: Copyright,  Next: Contacts,  Prev: Acknowledgments,  Up: Top

Copyright
*********

   * Copyright (C) 1998-2003 Andreas Boose

   * Copyright (C) 1998-2003 Dag Lem

   * Copyright (C) 1998-2003 Tibor Biczo

   * Copyright (C) 1999-2003 Andreas Dehmel

   * Copyright (C) 1999-2003 Thomas Bretz

   * Copyright (C) 1999-2003 Andreas Matthies

   * Copyright (C) 1999-2003 Martin Pottendorfer

   * Copyright (C) 2000-2003 Markus Brenner

   * Copyright (C) 2000-2003 Spiro Trikaliotis

   * Copyright (C) 1997-2001 Daniel Sladic

   * Copyright (C) 1996-1999 Ettore Perazzoli

   * Copyright (C) 1996-1999 André Fachat

   * Copyright (C) 1993-1994, 1997-1999 Teemu Rantanen

   * Copyright (C) 1993-1996 Jouko Valta

   * Copyright (C) 1993-1994 Jarkko Sonninen

   This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or (at
your option) any later version.

   This program is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
General Public License for more details.

   You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software Foundation,
Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307  USA


File: vice.info,  Node: Contacts,  Next: Concept Index,  Prev: Copyright,  Up: Top

Contact information
*******************

* Menu:

* Home page::                   The official VICE WWW page.
* Sending feedback::            How to report impressions and
                                bugs to the authors.
* Contributing::                How to help developing VICE.
* Newsgroups::                  VICE-related Usenet groups.
* FAQs you should read::        VICE-related Frequently Asked Questions.


File: vice.info,  Node: Home page,  Next: Sending feedback,  Prev: Contacts,  Up: Contacts

VICE home page
==============

   You can find the latest news about VICE at the official VICE home
page:

     http://viceteam.bei.t-online.de/

   If you are going to report a bug, please check those pages *first*;
it is possible that the problem you encountered has already been fixed
with a newer version.


File: vice.info,  Node: Sending feedback,  Next: Contributing,  Prev: Home page,  Up: Contacts

How to send feedback
====================

   If you want to report bugs, make suggestions or contribute to the
project, please email one of the following people:

   * VICE Mailing List (<vice-devel@firenze.linux.it>) for all general
     questions, bug reports, suggestions.

   * Andreas Boose (<viceteam@t-online.de>) for disk drive, tape,
     cartridge and Z80 emulation;

   * André Fachat (<fachat@physik.tu-chemnitz.de>) for the PETs and
     CBM-II;

   It's always nice to receive feedback and/or bugreports about VICE,
but please read these few notes before sending mail to anybody in the
team.

   * Please put the word `VICE' *in all capitals* in your subject line
     (e.g., `VICE fails to run game XXX').  This helps mail splitting
     and reduces chances that your message is unintentionally deleted,
     forgotten or lost.

   * Please don't send any HTML mail (we really hate that!).  If you use
     M$ Outlook or Netscape Communicator, make sure you turn off the
     "rich text" (HTML) feature.

   * Please don't send *any* binaries without asking first.

   * Please read the following documents carefully before reporting a
     bug or a problem you cannot solve:

        * the VICE documentation (you are reading it!);

        * the VICE FAQ (it is available on the Internet, and reachable
          from the VICE home page: http://viceteam.bei.t-online.de/);

        * the `comp.emulators.cbm' and `comp.sys.cbm' FAQs (*note FAQs
          you should read::.).

   * When you report a bug, please try to be as accurate as possible and
     describe how it can be reproduced to the very detail.  You should
     also tell us what machine you are running on, what operating
     system you are using as well as the version of it.

   * Please don't ask us how to transfer original C64 disk or tapes to
     your PC; this has been asked a gazillion times through email.  To
     transfer disks, you can use the Star Commander
     (http://sta.c64.org/sc.html).  And no, you cannot read C64 disks
     with your old 5"1/4 PC drive.

   * Please don't ask us where to find games for the emulator on the
     Internet.

   * Please don't ask us when the next version will be out, because we
     really don't know.

   * Please write in English.

   In any case, we would be *really* glad to receive your comments
about VICE.  We cannot always answer all the email, but we surely read
all of it.

   Thanks!


File: vice.info,  Node: Contributing,  Next: Newsgroups,  Prev: Sending feedback,  Up: Contacts

How to contribute
=================

   If you want to make a major contribution, please *ask* first.  It
has already happened a couple of times that somebody started working at
something that had already been done but not released to the public yet,
and we really do *not* want anybody to waste time.

   If you are going to make a patch, please make sure the patch is
relative to the very latest version, and provide us with the following:

   * a unified diff file containing all the changes you have made `diff
     -u' is fine; please don't use plain `diff');

   * GNU-style `ChangeLog' entries with a description of the changes you
     have made (look at the `ChangeLog's provided with the original VICE
     sources for an example).

   This is very important, and makes adding patches much smoother and
safer.

   People willing to port VICE to other platforms are always welcome.
But notice from experience it will take at least a full year of
continious work to write a well working and stable port.


File: vice.info,  Node: Newsgroups,  Next: FAQs you should read,  Prev: Contributing,  Up: Contacts

Interesting newsgroups
======================

   There are some Usenet newsgroups you might be interested in:

   * `comp.emulators.cbm', discussing about emulators of Commodore 8-bit
     machines (definitely not Amiga emulators).

   * `comp.sys.cbm', discussing various topics regarding real Commodore
     8-bit machines.  This newsgroup is mainly for people who actually
     use original Commodore equipment (so please don't talk about
     emulation here).

   * `comp.emulators.misc', discussing emulators in general.


File: vice.info,  Node: FAQs you should read,  Prev: Newsgroups,  Up: Contacts

FAQs you should read
====================

   We recommend reading the `comp.emulators.cbm' and `comp.sys.cbm'
FAQs, which are posted regularly on the corresponding newsgroups and
are also available via FTP from ftp://rtfm.mit.edu.


File: vice.info,  Node: Concept Index,  Next: Resource Index,  Prev: Contacts,  Up: Top

Concept Index
*************

* Menu:

* +basic1:                               PET commandline options.
* +basic1char:                           PET commandline options.
* +eoiblank:                             PET commandline options.
* +superpet:                             PET commandline options.
* -1:                                    Command-line initialization.
* -10:                                   Command-line initialization.
* -11:                                   Command-line initialization.
* -8:                                    Command-line initialization.
* -9:                                    Command-line initialization.
* -?:                                    Command-line initialization.
* -acia1dev:                             RS232 options.
* -autostart <1>:                        Command-line autostart.
* -autostart:                            Command-line initialization.
* -basic <1>:                            CBM-II commandline options.
* -basic <2>:                            VIC20 system ROM options.
* -basic:                                C64/128 system ROM options.
* -basic1:                               PET commandline options.
* -basic1char:                           PET commandline options.
* -bdesymkeymap -bdeposkeymap:           Keyboard options.
* -buksymkeymap -bukposkeymap:           Keyboard options.
* -cart2 <1>:                            CBM-II commandline options.
* -cart2:                                VIC20 system ROM options.
* -cart4 <1>:                            CBM-II commandline options.
* -cart4:                                VIC20 system ROM options.
* -cart6 <1>:                            CBM-II commandline options.
* -cart6:                                VIC20 system ROM options.
* -cartA:                                VIC20 system ROM options.
* -cartB:                                VIC20 system ROM options.
* -chargen <1>:                          CBM-II commandline options.
* -chargen <2>:                          PET commandline options.
* -chargen <3>:                          VIC20 system ROM options.
* -chargen:                              C64/128 system ROM options.
* -checksb, +checksb:                    VIC-II options.
* -checkss, +checkss:                    VIC-II options.
* -core, +core:                          Misc options.
* -default:                              Command-line initialization.
* -diagpin, +diagpin:                    PET commandline options.
* -directory:                            Misc options.
* -displaydepth:                         Video options.
* -dos1001:                              Drive options.
* -dos1541:                              Drive options.
* -dos1571:                              Drive options.
* -dos1581:                              Drive options.
* -dos2031:                              Drive options.
* -drive8extend, -drive9extend:          Drive options.
* -drive8idle, -drive9idle:              Drive options.
* -drive8type, -drive9type:              Drive options.
* -drivesync:                            Drive options.
* -dscan, +dscan:                        Video options.
* -dsize, +dsize:                        Video options.
* -editor:                               PET commandline options.
* -emuid, +emuid <1>:                    PET commandline options.
* -emuid, +emuid <2>:                    VIC20 memconf options.
* -emuid, +emuid:                        C64 I/O extension options.
* -eoiblank:                             PET commandline options.
* -fs10:                                 File system device options.
* -fs11:                                 File system device options.
* -fs8:                                  File system device options.
* -fs9:                                  File system device options.
* -grsymkeymap -grposkeymap:             Keyboard options.
* -help:                                 Command-line initialization.
* -htmlbrowser:                          Misc options.
* -ieee488, +ieee488:                    C64 I/O extension options.
* -install, +install:                    Video options.
* -joydev1, -joydev2:                    Misc options.
* -kernal <1>:                           CBM-II commandline options.
* -kernal <2>:                           PET commandline options.
* -kernal <3>:                           VIC20 system ROM options.
* -kernal:                               C64/128 system ROM options.
* -kernalrev:                            C64/128 system ROM options.
* -keymap:                               Keyboard options.
* -memory:                               VIC20 memconf options.
* -mitshm, +mitshm <1>:                  Video options.
* -mitshm, +mitshm:                      Shared memory problems.
* -mitshmauto:                           Video options.
* -model:                                PET commandline options.
* -modelline:                            CBM-II commandline options.
* -ntscdrive:                            Drive options.
* -paldrive:                             Drive options.
* -palette, -crtcpalette:                Video options.
* -parallel8, +parallel8, -parallel9, +parallel9: Drive options.
* -petramA:                              PET commandline options.
* -petramB:                              PET commandline options.
* -poskeymap:                            Keyboard options.
* -pr4dev:                               Printer options.
* -prdev1:                               Printer options.
* -prdev2:                               Printer options.
* -prdev3:                               Printer options.
* -printer4, +printer4:                  Printer options.
* -pruser, +pruser:                      Printer options.
* -pruserdev:                            Printer options.
* -ram08:                                CBM-II commandline options.
* -ram1:                                 CBM-II commandline options.
* -ram2:                                 CBM-II commandline options.
* -ram4:                                 CBM-II commandline options.
* -ram6:                                 CBM-II commandline options.
* -ramC:                                 CBM-II commandline options.
* -refresh:                              Performance options.
* -resid, +resid:                        SID options.
* -residpass:                            SID options.
* -residsamp:                            SID options.
* -reu, +reu:                            C64 I/O extension options.
* -rom9:                                 PET commandline options.
* -romA:                                 PET commandline options.
* -romB:                                 PET commandline options.
* -rsdev1:                               RS232 options.
* -rsdev1baud:                           RS232 options.
* -rsdev2:                               RS232 options.
* -rsdev2baud:                           RS232 options.
* -rsdev3:                               RS232 options.
* -rsdev3baud:                           RS232 options.
* -rsdev4:                               RS232 options.
* -rsdev4baud:                           RS232 options.
* -rsuser:                               RS232 options.
* -rsuserdev:                            RS232 options.
* -saveres, +saveres:                    Misc options.
* -sidfilters, +sidfilters:              SID options.
* -sidmodel:                             SID options.
* -sidstereo:                            SID options.
* -sidstereoaddress:                     SID options.
* -sound, +sound:                        Sound options.
* -soundarg:                             Sound options.
* -soundbufsize:                         Sound options.
* -sounddev:                             Sound options.
* -soundrate:                            Sound options.
* -soundsync:                            Sound options.
* -speed:                                Performance options.
* -superpet:                             PET commandline options.
* -symkeymap:                            Keyboard options.
* -truedrive, +truedrive:                Drive options.
* -usevicii +usevicii:                   CBM-II commandline options.
* -vcache, +vcache:                      Video options.
* -virtualdev, +virtualdev:              No traps options.
* -warp, +warp:                          Performance options.
* -xsync, +xsync:                        Video options.
* 1351 Mouse emulation:                  C64 I/O extension settings.
* Audio buffer size:                     Sound settings.
* Basic1:                                PET model.
* Basic1Chars:                           PET model.
* BasicName <1>:                         VIC20 system ROM resources.
* BasicName:                             C64/128 system ROM resources.
* C64/128 emulator identification:       C64 I/O extension settings.
* Cart2Name:                             CBM-II model.
* Cart4Name:                             CBM-II model.
* Cart6Name:                             CBM-II model.
* CartridgeFile2000:                     VIC20 system ROM resources.
* CartridgeFile4000:                     VIC20 system ROM resources.
* CartridgeFile6000:                     VIC20 system ROM resources.
* CartridgeFileA000:                     VIC20 system ROM resources.
* CartridgeFileB000:                     VIC20 system ROM resources.
* ChargenName <1>:                       PET model.
* ChargenName <2>:                       VIC20 system ROM resources.
* ChargenName:                           C64/128 system ROM resources.
* Converting X64 files into D64:         Supported file formats.
* Crtc:                                  PET model.
* DiagPin:                               PET model.
* Double-scan mode.:                     Video settings.
* Double-size mode:                      Video settings.
* EditorName:                            PET model.
* EmuID:                                 PET model.
* EoiBlank:                              PET model.
* HP-UX and Solaris audio problems:      Sound problems.
* IOSize:                                PET model.
* KernalName <1>:                        PET model.
* KernalName <2>:                        VIC20 system ROM resources.
* KernalName:                            C64/128 system ROM resources.
* KernalRev:                             C64/128 system ROM resources.
* Limiting emulation speed:              Performance settings.
* Loosing control on low-end systems:    Video settings.
* MITSHM:                                Shared memory problems.
* ModelLine:                             CBM-II model.
* OSS/Linux problems:                    Sound problems.
* Oversampling:                          Sound settings.
* Ram08:                                 CBM-II model.
* Ram1:                                  CBM-II model.
* Ram2:                                  CBM-II model.
* Ram4:                                  CBM-II model.
* Ram6:                                  CBM-II model.
* Ram9:                                  PET model.
* RamA:                                  PET model.
* RamC:                                  CBM-II model.
* RamSize <1>:                           CBM-II model.
* RamSize:                               PET model.
* Refresh rate:                          Performance settings.
* reSID resampling passband:             SID settings.
* reSID samping method:                  SID settings.
* REU:                                   C64 I/O extension settings.
* RomModule9Name:                        PET model.
* RomModuleAName:                        PET model.
* RomModuleBName:                        PET model.
* Sample rate:                           Sound settings.
* Second SID:                            SID settings.
* Second SID base address:               SID settings.
* SID filters:                           SID settings.
* SID models:                            SID settings.
* Sound buffer size:                     Sound settings.
* Sound speed adjustment:                Sound settings.
* Sound suspend time:                    Sound settings.
* Sound syncronization:                  Sound settings.
* Sprite collision detection:            VIC-II settings.
* SuperPET:                              PET model.
* Toggling reSID emulation:              SID settings.
* Turning sound playback on/off:         Sound settings.
* UseVicII:                              CBM-II model.
* Using XSync():                         Video settings.
* VIC-II color sets:                     VIC-II settings.
* Video cache:                           Video settings.
* VideoSize:                             PET model.
* Warp speed mode:                       Performance settings.

