1This is vice.info, produced by makeinfo version 6.3 from vice.texi.
2
3START-INFO-DIR-ENTRY
4* VICE: (vice).        VICE, the Versatile Commodore Emulator.
5END-INFO-DIR-ENTRY
6
7VICE Manual
8
9Permission is granted to make and distribute verbatim copies of this
10manual provided the copyright notice and this permission notice are
11preserved on all copies.
12
13Permission is granted to copy and distribute modified versions of this
14manual under the conditions for verbatim copying, provided that the
15entire resulting derived work is distributed under the terms of a
16permission notice identical to this one.
17
18
19File: vice.info,  Node: Top,  Next: License,  Prev: (dir),  Up: (dir)
20
21This is the documentation for version 3.3 of VICE, the Versatile
22Commodore Emulator.
23
24* Menu:
25
26* License::                     The GNU General Public License gives you
27                                permission to redistribute this program
28                                on certain terms; and also explains that
29                                there is no warranty.
30
31* Preface::                     Fundamental concepts.
32
33* Usage::                       Invoking the emulators.
34* System files::                Files needed to emulate.
35
36* Basics::                      Simple things you can do.
37
38* Settings and resources::      Emulator parameters you can change.
39
40* Machine-specific features::   Peculiar characteristics of the emulators.
41
42* Platform-specific features::  Host platform specific features.
43
44* Snapshots::                   Save the emulator state in one file
45* Monitor::                     The VICE built-in monitor.
46* c1541::                       The disk-image maintenance utility.
47
48* File formats::                Technical description of file formats.
49
50* Acknowledgments::             People involved in VICE.
51* Copyright::                   Legal stuff.
52* Contacts::                    Official home page, email addresses...
53
54* Concept Index::
55* Resource Index::
56* Command-line Index::
57
58
59File: vice.info,  Node: License,  Next: Preface,  Prev: Top,  Up: Top
60
611 GNU GENERAL PUBLIC LICENSE
62****************************
63
64                         Version 2, June 1991
65
66     Copyright (C) 1989, 1991 Free Software Foundation, Inc.
67     675 Mass Ave, Boston, MA 02111-1307, USA
68
69     Everyone is permitted to copy and distribute verbatim copies
70     of this license document, but changing it is not allowed.
71
72Preamble
73========
74
75The licenses for most software are designed to take away your freedom to
76share and change it.  By contrast, the GNU General Public License is
77intended to guarantee your freedom to share and change free software--to
78make sure the software is free for all its users.  This General Public
79License applies to most of the Free Software Foundation's software and
80to any other program whose authors commit to using it.  (Some other Free
81Software Foundation software is covered by the GNU Library General
82Public License instead.)  You can apply it to your programs, too.
83
84When we speak of free software, we are referring to freedom, not price.
85Our General Public Licenses are designed to make sure that you have the
86freedom to distribute copies of free software (and charge for this
87service if you wish), that you receive source code or can get it if you
88want it, that you can change the software or use pieces of it in new
89free programs; and that you know you can do these things.
90
91To protect your rights, we need to make restrictions that forbid anyone
92to deny you these rights or to ask you to surrender the rights.  These
93restrictions translate to certain responsibilities for you if you
94distribute copies of the software, or if you modify it.
95
96For example, if you distribute copies of such a program, whether gratis
97or for a fee, you must give the recipients all the rights that you have.
98You must make sure that they, too, receive or can get the source code.
99And you must show them these terms so they know their rights.
100
101We protect your rights with two steps: (1) copyright the software, and
102(2) offer you this license which gives you legal permission to copy,
103distribute and/or modify the software.
104
105Also, for each author's protection and ours, we want to make certain
106that everyone understands that there is no warranty for this free
107software.  If the software is modified by someone else and passed on, we
108want its recipients to know that what they have is not the original, so
109that any problems introduced by others will not reflect on the original
110authors' reputations.
111
112Finally, any free program is threatened constantly by software patents.
113We wish to avoid the danger that redistributors of a free program will
114individually obtain patent licenses, in effect making the program
115proprietary.  To prevent this, we have made it clear that any patent
116must be licensed for everyone's free use or not licensed at all.
117
118The precise terms and conditions for copying, distribution and
119modification follow.
120
121    TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
122
123  0. This License applies to any program or other work which contains a
124     notice placed by the copyright holder saying it may be distributed
125     under the terms of this General Public License.  The "Program",
126     below, refers to any such program or work, and a "work based on the
127     Program" means either the Program or any derivative work under
128     copyright law: that is to say, a work containing the Program or a
129     portion of it, either verbatim or with modifications and/or
130     translated into another language.  (Hereinafter, translation is
131     included without limitation in the term "modification".)  Each
132     licensee is addressed as "you".
133
134     Activities other than copying, distribution and modification are
135     not covered by this License; they are outside its scope.  The act
136     of running the Program is not restricted, and the output from the
137     Program is covered only if its contents constitute a work based on
138     the Program (independent of having been made by running the
139     Program).  Whether that is true depends on what the Program does.
140
141  1. You may copy and distribute verbatim copies of the Program's source
142     code as you receive it, in any medium, provided that you
143     conspicuously and appropriately publish on each copy an appropriate
144     copyright notice and disclaimer of warranty; keep intact all the
145     notices that refer to this License and to the absence of any
146     warranty; and give any other recipients of the Program a copy of
147     this License along with the Program.
148
149     You may charge a fee for the physical act of transferring a copy,
150     and you may at your option offer warranty protection in exchange
151     for a fee.
152
153  2. You may modify your copy or copies of the Program or any portion of
154     it, thus forming a work based on the Program, and copy and
155     distribute such modifications or work under the terms of Section 1
156     above, provided that you also meet all of these conditions:
157
158       a. You must cause the modified files to carry prominent notices
159          stating that you changed the files and the date of any change.
160
161       b. You must cause any work that you distribute or publish, that
162          in whole or in part contains or is derived from the Program or
163          any part thereof, to be licensed as a whole at no charge to
164          all third parties under the terms of this License.
165
166       c. If the modified program normally reads commands interactively
167          when run, you must cause it, when started running for such
168          interactive use in the most ordinary way, to print or display
169          an announcement including an appropriate copyright notice and
170          a notice that there is no warranty (or else, saying that you
171          provide a warranty) and that users may redistribute the
172          program under these conditions, and telling the user how to
173          view a copy of this License.  (Exception: if the Program
174          itself is interactive but does not normally print such an
175          announcement, your work based on the Program is not required
176          to print an announcement.)
177
178     These requirements apply to the modified work as a whole.  If
179     identifiable sections of that work are not derived from the
180     Program, and can be reasonably considered independent and separate
181     works in themselves, then this License, and its terms, do not apply
182     to those sections when you distribute them as separate works.  But
183     when you distribute the same sections as part of a whole which is a
184     work based on the Program, the distribution of the whole must be on
185     the terms of this License, whose permissions for other licensees
186     extend to the entire whole, and thus to each and every part
187     regardless of who wrote it.
188
189     Thus, it is not the intent of this section to claim rights or
190     contest your rights to work written entirely by you; rather, the
191     intent is to exercise the right to control the distribution of
192     derivative or collective works based on the Program.
193
194     In addition, mere aggregation of another work not based on the
195     Program with the Program (or with a work based on the Program) on a
196     volume of a storage or distribution medium does not bring the other
197     work under the scope of this License.
198
199  3. You may copy and distribute the Program (or a work based on it,
200     under Section 2) in object code or executable form under the terms
201     of Sections 1 and 2 above provided that you also do one of the
202     following:
203
204       a. Accompany it with the complete corresponding machine-readable
205          source code, which must be distributed under the terms of
206          Sections 1 and 2 above on a medium customarily used for
207          software interchange; or,
208
209       b. Accompany it with a written offer, valid for at least three
210          years, to give any third party, for a charge no more than your
211          cost of physically performing source distribution, a complete
212          machine-readable copy of the corresponding source code, to be
213          distributed under the terms of Sections 1 and 2 above on a
214          medium customarily used for software interchange; or,
215
216       c. Accompany it with the information you received as to the offer
217          to distribute corresponding source code.  (This alternative is
218          allowed only for noncommercial distribution and only if you
219          received the program in object code or executable form with
220          such an offer, in accord with Subsection b above.)
221
222     The source code for a work means the preferred form of the work for
223     making modifications to it.  For an executable work, complete
224     source code means all the source code for all modules it contains,
225     plus any associated interface definition files, plus the scripts
226     used to control compilation and installation of the executable.
227     However, as a special exception, the source code distributed need
228     not include anything that is normally distributed (in either source
229     or binary form) with the major components (compiler, kernel, and so
230     on) of the operating system on which the executable runs, unless
231     that component itself accompanies the executable.
232
233     If distribution of executable or object code is made by offering
234     access to copy from a designated place, then offering equivalent
235     access to copy the source code from the same place counts as
236     distribution of the source code, even though third parties are not
237     compelled to copy the source along with the object code.
238
239  4. You may not copy, modify, sublicense, or distribute the Program
240     except as expressly provided under this License.  Any attempt
241     otherwise to copy, modify, sublicense or distribute the Program is
242     void, and will automatically terminate your rights under this
243     License.  However, parties who have received copies, or rights,
244     from you under this License will not have their licenses terminated
245     so long as such parties remain in full compliance.
246
247  5. You are not required to accept this License, since you have not
248     signed it.  However, nothing else grants you permission to modify
249     or distribute the Program or its derivative works.  These actions
250     are prohibited by law if you do not accept this License.
251     Therefore, by modifying or distributing the Program (or any work
252     based on the Program), you indicate your acceptance of this License
253     to do so, and all its terms and conditions for copying,
254     distributing or modifying the Program or works based on it.
255
256  6. Each time you redistribute the Program (or any work based on the
257     Program), the recipient automatically receives a license from the
258     original licensor to copy, distribute or modify the Program subject
259     to these terms and conditions.  You may not impose any further
260     restrictions on the recipients' exercise of the rights granted
261     herein.  You are not responsible for enforcing compliance by third
262     parties to this License.
263
264  7. If, as a consequence of a court judgment or allegation of patent
265     infringement or for any other reason (not limited to patent
266     issues), conditions are imposed on you (whether by court order,
267     agreement or otherwise) that contradict the conditions of this
268     License, they do not excuse you from the conditions of this
269     License.  If you cannot distribute so as to satisfy simultaneously
270     your obligations under this License and any other pertinent
271     obligations, then as a consequence you may not distribute the
272     Program at all.  For example, if a patent license would not permit
273     royalty-free redistribution of the Program by all those who receive
274     copies directly or indirectly through you, then the only way you
275     could satisfy both it and this License would be to refrain entirely
276     from distribution of the Program.
277
278     If any portion of this section is held invalid or unenforceable
279     under any particular circumstance, the balance of the section is
280     intended to apply and the section as a whole is intended to apply
281     in other circumstances.
282
283     It is not the purpose of this section to induce you to infringe any
284     patents or other property right claims or to contest validity of
285     any such claims; this section has the sole purpose of protecting
286     the integrity of the free software distribution system, which is
287     implemented by public license practices.  Many people have made
288     generous contributions to the wide range of software distributed
289     through that system in reliance on consistent application of that
290     system; it is up to the author/donor to decide if he or she is
291     willing to distribute software through any other system and a
292     licensee cannot impose that choice.
293
294     This section is intended to make thoroughly clear what is believed
295     to be a consequence of the rest of this License.
296
297  8. If the distribution and/or use of the Program is restricted in
298     certain countries either by patents or by copyrighted interfaces,
299     the original copyright holder who places the Program under this
300     License may add an explicit geographical distribution limitation
301     excluding those countries, so that distribution is permitted only
302     in or among countries not thus excluded.  In such case, this
303     License incorporates the limitation as if written in the body of
304     this License.
305
306  9. The Free Software Foundation may publish revised and/or new
307     versions of the General Public License from time to time.  Such new
308     versions will be similar in spirit to the present version, but may
309     differ in detail to address new problems or concerns.
310
311     Each version is given a distinguishing version number.  If the
312     Program specifies a version number of this License which applies to
313     it and "any later version", you have the option of following the
314     terms and conditions either of that version or of any later version
315     published by the Free Software Foundation.  If the Program does not
316     specify a version number of this License, you may choose any
317     version ever published by the Free Software Foundation.
318
319  10. If you wish to incorporate parts of the Program into other free
320     programs whose distribution conditions are different, write to the
321     author to ask for permission.  For software which is copyrighted by
322     the Free Software Foundation, write to the Free Software
323     Foundation; we sometimes make exceptions for this.  Our decision
324     will be guided by the two goals of preserving the free status of
325     all derivatives of our free software and of promoting the sharing
326     and reuse of software generally.
327
328                              NO WARRANTY
329
330  11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO
331     WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE
332     LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS
333     AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY
334     OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT
335     LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
336     FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND
337     PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE
338     DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR
339     OR CORRECTION.
340
341  12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN
342     WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY
343     MODIFY AND/OR REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE
344     LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL,
345     INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR
346     INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF
347     DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU
348     OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY
349     OTHER PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN
350     ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
351
352                      END OF TERMS AND CONDITIONS
353
354How to Apply These Terms to Your New Programs
355=============================================
356
357If you develop a new program, and you want it to be of the greatest
358possible use to the public, the best way to achieve this is to make it
359free software which everyone can redistribute and change under these
360terms.
361
362To do so, attach the following notices to the program.  It is safest to
363attach them to the start of each source file to most effectively convey
364the exclusion of warranty; and each file should have at least the
365"copyright" line and a pointer to where the full notice is found.
366
367     ONE LINE TO GIVE THE PROGRAM'S NAME AND AN IDEA OF WHAT IT DOES.
368     Copyright (C) 19YY  NAME OF AUTHOR
369
370     This program is free software; you can redistribute it and/or
371     modify it under the terms of the GNU General Public License
372     as published by the Free Software Foundation; either version 2
373     of the License, or (at your option) any later version.
374
375     This program is distributed in the hope that it will be useful,
376     but WITHOUT ANY WARRANTY; without even the implied warranty of
377     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
378     GNU General Public License for more details.
379
380     You should have received a copy of the GNU General Public License
381     along with this program; if not, write to the Free Software
382     Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
383
384Also add information on how to contact you by electronic and paper mail.
385
386If the program is interactive, make it output a short notice like this
387when it starts in an interactive mode:
388
389     Gnomovision version 69, Copyright (C) 19YY NAME OF AUTHOR
390     Gnomovision comes with ABSOLUTELY NO WARRANTY; for details
391     type `show w'.  This is free software, and you are welcome
392     to redistribute it under certain conditions; type `show c'
393     for details.
394
395The hypothetical commands 'show w' and 'show c' should show the
396appropriate parts of the General Public License.  Of course, the
397commands you use may be called something other than 'show w' and 'show
398c'; they could even be mouse-clicks or menu items--whatever suits your
399program.
400
401You should also get your employer (if you work as a programmer) or your
402school, if any, to sign a "copyright disclaimer" for the program, if
403necessary.  Here is a sample; alter the names:
404
405     Yoyodyne, Inc., hereby disclaims all copyright
406     interest in the program `Gnomovision'
407     (which makes passes at compilers) written
408     by James Hacker.
409
410     SIGNATURE OF TY COON, 1 April 1989
411     Ty Coon, President of Vice
412
413This General Public License does not permit incorporating your program
414into proprietary programs.  If your program is a subroutine library, you
415may consider it more useful to permit linking proprietary applications
416with the library.  If this is what you want to do, use the GNU Library
417General Public License instead of this License.
418
419
420File: vice.info,  Node: Preface,  Next: Usage,  Prev: License,  Up: Top
421
4222 About VICE
423************
424
425VICE is the one and only "Versatile Commodore Emulator".  It provides
426emulation of the Commodore C64, C64DTV, C128, VIC20, PET, PLUS4, SCPU64
427and CBM-II computers within a single package.  The emulators run as
428separate programs, but have the same user interface, share the same
429settings and support the same file formats.
430
431*Important notice:* If you have no idea what a Commodore 8-bit computer
432is, or have questions about how these machines are used, how the file
433formats work or anything else that is not strictly related to VICE, you
434should read the appropriate FAQs _first_, as that kind of information is
435not available here.  *Note Contacts::.  for information about how to
436retrieve the FAQs.
437
438All the emulators provide an accurate 6502/6510 emulator, with emulation
439of all the opcodes (both documented and undocumented ones) and accurate
440timing.  Unlike other emulators, VICE aims to be cycle accurate; it
441tries to emulate chip timings as precisely as possible and does so
442_efficiently_.
443
444Please do _not_ expect the C64DTV, C128, PET, PLUS4, SCPU64 and CBM-II
445emulators to be as good as the C64 or VIC20 one, as they are still under
446construction.
447
448_Notice:_ This documentation is written for the Unix release of VICE,
449but is slowly being made universal.
450
451* Menu:
452
453* C64 emulator features::
454* C64DTV emulator features::
455* C128 emulator features::
456* VIC20 emulator features::
457* PET emulator features::
458* CBM-II emulator features::
459* SCPU64 emulator features::
460* Keyboard emulation::
461* Joystick emulation::
462* Disk drive emulation::
463* Supported file formats::
464* Common problems::
465
466
467File: vice.info,  Node: C64 emulator features,  Next: C64DTV emulator features,  Prev: Preface,  Up: Preface
468
4692.1 C64 emulator features
470=========================
471
472As of version 2.3, two C64 emulators are provided: 'x64' (fast) and
473'x64sc' (accurate).
474
475The fast C64 emulator, called 'x64', features a fairly complete
476emulation of the VIC-II video chip: sprites, all registers and all video
477modes are fully emulated.  The emulation has been fully cycle-accurate
478since version 0.13.0.
479
480The accurate C64 emulator, called 'x64sc', features a cycle-based and
481pixel-accurate VIC-II emulation.  This requires a much faster machine
482than the old 'x64'.
483
484A rather complete emulation of the SID sound chip is also provided.  All
485the basic features are implemented as well as most of the complex ones
486including synchronisation, ring modulation and filters.  There are two
487emulators of the SID chip available: first is the "standard" VICE
488emulator, available since VICE 0.12; the second is Dag Lem's reSID
489engine.  The reSID engine is a lot more accurate than the standard
490engine, but it is also a lot slower, and only suitable for faster
491machines.
492
493Naturally, also both CIAs (or VIAs, in some cases) are fully emulated
494and cycle accurate.
495
496
497File: vice.info,  Node: C64DTV emulator features,  Next: C128 emulator features,  Prev: C64 emulator features,  Up: Preface
498
4992.2 C64DTV emulator features
500============================
501
502The C64DTV emulator, called 'x64dtv', features emulation of C64DTV
503revisions 2 and 3.  The emulator is under construction, but most of the
504DTV specific features are already supported (with varying accuracy).
505
506Video cache is disabled by default as it currently doesn't work with
507some of C64DTV's new video modes.  The new video modes have a simple
508"fake" video cache implementation that may give incorrect results and
509decreased performance.
510
511
512File: vice.info,  Node: C128 emulator features,  Next: VIC20 emulator features,  Prev: C64DTV emulator features,  Up: Preface
513
5142.3 C128 emulator features
515==========================
516
517The C128 emulator, called 'x128', features a complete emulation of the
518internal MMU ("Memory Management Unit"), 80 column VDC screen, fast IEC
519bus emulation, 2 MHz mode, Z80 emulation plus all the features of the
520C64 emulation.
521
522
523File: vice.info,  Node: VIC20 emulator features,  Next: PET emulator features,  Prev: C128 emulator features,  Up: Preface
524
5252.4 VIC20 emulator features
526===========================
527
528The VIC20 emulates all the internal hardware, including the VIA chips.
529The VIC-I video chip is fully emulated except NTSC interlace mode, so
530most graphical effects will work correctly.
531
532Sound support is implemented, but is still at an experimental stage.  If
533you think it could be improved and know how to do so, feel free to
534contact us (*note Contacts::).
535
536The VIC20 emulator now allows the use of the VIC1112 IEEE488 interface.
537You have to enable the hardware (by menu, resource, or commandline
538option) and then load the IEEE488 ROM (see for example
539<http://www.funet.fi/pub/cbm/schematics/cartridges/vic20/ieee-488/325329-04.bin>,
540but you have to double the size to 4k for now).  The IEEE-488 code is
541then started by 'SYS45065'.
542
543
544File: vice.info,  Node: PET emulator features,  Next: CBM-II emulator features,  Prev: VIC20 emulator features,  Up: Preface
545
5462.5 PET emulator features
547=========================
548
549The PET emulator emulates the 2001, 3032, 4032, 8032, 8096, 8296 and
550SuperPET (MicroMainFrame 9000) models, covering the whole series.  The
551hardware is pretty much the same in each and that is why one single
552program is enough to emulate all of them.  For more detailed information
553about PET hardware please refer to the 'PETdoc' file.
554
555Both the 40 column and 80 column CRTC video chips are emulated (from the
5564032 onward), but a few of the features are not implemented yet (numbers
557of rasterlines per char and lines per screen).  Fortunately, they are
558not very important for average applications.
559
560Sound is available for the PET as well, but like the VIC20's it is still
561under construction.
562
563The PET 8096 is basically a PET 8032 with a 64k extension board which
564allows remapping the upper 32k with RAM. You have to write to a special
565register at '$fff0' to remap the memory.  The PET 8296 is a 8096 but
566with a completely redesigned motherboard with 128k RAM in total.  Of the
567additional 32k RAM you can use only some in blocks of 4k, but you have
568to set jumpers on the motherboard for it.  VICE uses the command line
569options '-petram9' and '-petramA' instead.  Also, the video controller
570can handle a larger address range.  The PET 8x96 model emulations run
571the Commodore LOS-96 operating system - basically an improved BASIC 4
572version with up to 32k for BASIC text and 32k for variables.  See
573'PETdoc' for more information.
574
575The PET 8296D is an 8296 with built-in 8250 low-profile dual disk drive.
576
577The PET 8296GD is an 8296D with additionally a "HiRes Emulator" (HRE).
578This is a cheaper version of a "HRG" hi-res board which was based on
579Thomson chips.  This version instead uses no additional hardware support
580apart from some memory mapping tricks.  It has supporting software in
581the hre-*.bin rom files.
582
583The SuperPET also is a PET 8032 with an expansion board.  It can map 4k
584at a time out of 64k into the '$9***' area.  Also it has an ACIA 6551
585for RS232 communication.  The 6809 CPU that is built into the SuperPET
586is now emulated, since release 2.4, including the 6702 dongle chip.
587
588The Super-OS-9 MMU expansion, developed by TPUG (Toronto PET Users
589Group) is also emulated.
590
591The PET computers came with three major ROM revisions, so-called BASIC
5921, 2 and 4, all of which are provided.  The PET 2001 uses the version 1,
593the PET 3032 uses version 2, and the others use version 4.  The 2001 ROM
594is horribly broken with respect to IEEE488 (they shipped it before they
595tested it with the floppy drive, so only tape worked.  Therefore the
596emulator patches the ROM to fix the IEEE488 routines.
597
598As well as other low-level fixes the 2001 patch obtains the load address
599for a program file from the first two bytes of the file.  This allows
600the loading of both PET2001-saved files (that have $0400 as their load
601address) and other PET files (that have $0401).  The PET2001 saves from
602$0400 and not from $0401 as other PETs do.
603
604Moreover, the secondary addresses used are now '0' and '1' for load and
605save, respectively, and not arbitrary unused secondary addresses.
606
607To select which model to run, specify it on the command line with the
608'-model MODEL' option, where 'MODEL' can be one of a list of PET model
609numbers, all described in *note PET model::
610
611
612File: vice.info,  Node: CBM-II emulator features,  Next: SCPU64 emulator features,  Prev: PET emulator features,  Up: Preface
613
6142.6 CBM-II emulator features
615============================
616
617The CBM-II emulator emulates several types of CBM-II models.  Those
618models are known under different names in the USA and Europe.  In the
619States they have been sold as 'B128' and 'B256', in Europe as 'CBM 610',
620'CBM 620' (low-profile case) or 'CBM 710' and 'CBM 720' (high-profile
621case with monitor).  In addition to that now an experimental C510
622emulation is included.  The C510 (also known as P500) is the little
623brother of the C600/700 machines.  It runs at roughly 1 MHz and,
624surprise, it has a VIC-II instead of the CRTC. Otherwise the different
625line of computers are very similar.
626
627These computers are prepared to take a coprocessor board with an 8088 or
628Z80 CPU. Indeed there are models 'CBM 630' and 'CBM 730' that supposedly
629had those processors.  However these models are not emulated.
630
631The basic difference is the amount of RAM these machines have been
632supplied with.  The 'B128' and the 'CBM *10' models had 128k RAM, the
633others 256k.  This implies some banking scheme, as the 6502 can only
634address 64k.  And indeed those machines use a 6509, that can address 1
635MByte of RAM. It has 2 registers at addresses 0 and 1.  The indirect
636bank register at address 1 determines the bank (0-15) where the opcodes
637'LDA (zp),Y' and 'STA (zp),Y' take the data from.  The exec bank
638register at address 0 determines the bank where all other read and write
639addresses take place.
640
641The business line machines (C6xx/7xx) have the RAM in banks 1-2, resp.
6421-4.  All available banks are used for BASIC, where program code is
643separated from all variables, resp.  from normal variables, strings and
644arrays that are distributed over other banks.  The C510 instead has RAM
645in banks 0 and 1, and uses bank 1 for program and all variables.  Bank
6460, though, can be accessed by the VIC-II to display graphics.
647
648Many models have been expanded to more than the built-in memory.  In
649fact some machines have been expanded to the full 1M. Bank 15 is used as
650system bank, with only little RAM, and lots of expansion cartridge ROM
651area, the I/O and the kernal/basic ROMs.  Some models have been modified
652to map RAM into the expansion ROM area.  Those modifications can be
653emulated as well.
654
655The different settings are described in *note CBM-II model::.
656
657
658File: vice.info,  Node: SCPU64 emulator features,  Next: Keyboard emulation,  Prev: CBM-II emulator features,  Up: Preface
659
6602.7 SCPU64 emulator features
661============================
662
663The XSCPU64 emulator is a simulation of a C64 equipped with a SuperCPU64
664V2B. Features:
665
666   * 20 MHz asynchronous single cycle 65816 CPU core with proper dummy
667     and invalid cycle handling.
668   * 128 KiB static RAM, 0-16 MiB SIMM RAM, 64-512 KiB EPROM emulated
669     and their respective timing details.
670   * All RAM optimization configurations supported with write buffer.
671   * I/O area access delays, write through to SRAM implemented.
672   * Memory mappings including cartridge and boot memory map and kernal
673     shadow.
674   * Hardware registers and switches implemented.
675   * Replacement SCPU64 ROM compatible with the original to avoid
676     distribution problems
677   * It's using the single cycle VICII core for accurate simulation
678
679Still to do:
680
681   * Measure and verify VICII interrupt phase shift
682   * Measure and verify BA phase shift
683   * SIMM RAM extra 7.5 cycle refresh delay every 10us missing.
684   * CPU NMI support for "reset" button
685
686The emulation is quite accurate but not perfect.  If you code something
687timing intensive using this simulation please always check it on real
688hardware to avoid bad surprises.
689
690The hardware itself is asynchronous in nature, therefore caution must be
691taken to not do long timing loops without synchronization in 20 MHz
692mode.  Also don't squeeze out the last remaining cycles without leaving
693a safety buffer.  Synchronization points can be created by doing I/O
694reads or writes and leaving a few hundred cycles left each frame will
695not hurt.
696
697Otherwise it can happen that the code is running on this version of VICE
698or my SCPU64 V2+C128D perfectly but nowhere else due to manufacturing
699variations and frequency drifts.
700
701
702File: vice.info,  Node: Keyboard emulation,  Next: Joystick emulation,  Prev: SCPU64 emulator features,  Up: Preface
703
7042.8 The keyboard emulation
705==========================
706
707There are two ways of emulating the keyboard in VICE.
708
709The default way ("symbolic mapping") is to map every key combination to
710the corresponding key combination on the real machine: for example, if
711you press <*>, which is bound to 'Shift-8' on a U.S. keyboard, in the
712C64 emulator, the emulated machine will have just the _unshifted_ <*>
713key pressed (as <*> is unshifted on the C64 keyboard).  Likewise,
714pressing <'> on the same U.S. keyboard without any shift key will cause
715the combination 'Shift-7' to be pressed in the emulated C64.  This way,
716it becomes quite obvious what keys should be typed to obtain all the
717symbols.
718
719There is, however, one problem with symbolic mapping: some keys really
720need to be mapped specially regardless.  The most important examples
721being, in the VIC20, C64 and C128 emulators, that <CTRL> is mapped to
722<Tab> and that the <Commodore> key is mapped to the left <Control>).
723The <RUN/STOP> key is mapped to the <ESC> key on the PC keyboard.  The
724PET emulator, lacking the <Commodore> key but having an <ESC> key, uses
725the left <Control> key as <RUN/STOP> and the <ESC> key as <ESC> of
726course.
727
728The second way ("positional mapping") is to map every key on the "real"
729keyboard to the key which has the same position on the keyboard of the
730emulated machine.  This way, no <Shift> key is forced by the program
731(with the exception of the function keys <F2>, <F4>, <F6> and <F8>,
732which require <Shift> on the Commodore keyboards), and the keyboard is
733more comfortable to use in those programs (such as some games) that
734require the keys to be in the correct positions.
735
736*Warning:* unlike the real C64, VICE "presses" the <Shift> key
737_together_ with the key to shift when the <Shift> must be forced.  In
738most cases this should work fine, but some keyboard routines are quite
739picky and tend not to recognize the shift key because of this.  For
740instance, 'F6' (which on the real C64 is obtained with 'Shift + F5')
741could be recognized as 'F5'.  In that case, use the shift key manually
742(i.e., type 'Shift + F5' in the example).  Yes, we know this is a bug.
743
744The 'RESTORE' key is mapped to 'Page Up' (or 'Prev') by default.
745
746
747File: vice.info,  Node: Joystick emulation,  Next: Disk drive emulation,  Prev: Keyboard emulation,  Up: Preface
748
7492.9 The joystick emulation
750==========================
751
752Joysticks can be emulated both via the keyboard and via a real joystick
753connected to the host machine (the latter only works on GNU/Linux
754systems).
755
756There are two keyboard layouts for joystick use, known as "numpad" and
757"custom".
758
759The "numpad" layout uses the numeric keypad keys, i.e., the numbers
760<1>...<9> which emulate all the directions including the diagonal ones;
761<0> emulates the fire button.
762
763The "custom" layout uses the keys <w>, <e>, <r>, <s>, <d>, <f>, <x>,
764<c>, <v> for the directions and <space> for the fire button instead.
765
766
767File: vice.info,  Node: Disk drive emulation,  Next: Supported file formats,  Prev: Joystick emulation,  Up: Preface
768
7692.10 The disk drive emulation
770=============================
771
772All the emulators support up to 4 external disk drives as devices 8, 9,
77310 and 11.  Each of these devices can emulate virtual Commodore 1541,
7741541-II, 1571, 1581, 2031, 2040, 3040, 4040, 1001, 8050 and 8250 drives
775in one of four ways:
776
777   * using disk images, i.e., files that contain a dump of all the
778     blocks contained in a real floppy disk (if you want more
779     information about what a disk image is, consult the
780     'comp.emulators.cbm' FAQ);
781   * accessing file system directories, thus giving you the use of files
782     without having to copy them to disk images; this also allows you to
783     read and write files in the 'P00' format (again, consult the
784     'comp.emulators.cbm' FAQ for more info).
785   * accessing a real device connected to the host machine.  As of VICE
786     1.11 it is possible to connect real drives like Commodore 1541 to
787     the printer port of the host using the XA1541 or XM1541 cable.
788     Currently this only works on Linux or Windows using the OpenCBM
789     library.  You can get it from
790     <http://www.lb.shuttle.de/puffin/cbm4linux> (cbm4linux, Linux
791     version) or from <http://cbm4win.sf.net> (cbm4win, Windows
792     version).
793
794   * directly using the disk drive of the host.  The 3.5" disk drive of
795     the host can be used to read or write Commodore 1581 formatted
796     disks.  Currently this raw drive access feature is only available
797     for Linux hosts.
798
799When using disk images there are two available types of drive emulation.
800One of them the "virtual drive" emulation.  It does _not_ really emulate
801the serial line, but patches the kernal ROM (with the so-called "kernal
802traps") so that serial line operations can be emulated via C language
803routines.  This emulation is very fast, but only allows use of standard
804DOS functions (and not even all of them).  For real device or raw drive
805access it is required to enable this type of emulation.
806
807The IEEE488 drives (2031, 2040, 3040, 4040, 1001, 8050 and 8250) do not
808use kernal traps.  Instead the IEEE488 interface lines are monitored and
809the data is passed to the drive emulation.  To use them on the C64, you
810need to enable the IEEE488 interface emulation.  Only if the IEEE488
811emulation is enabled, those drives can be selected.
812
813The other alternative is a "true drive" emulation.  The Commodore disk
814drives are provided with their own CPU (a 6502 as the VIC20 and the
815PETs) and their own RAM and ROM. So, in order to more closely emulate
816its features, a complete emulation of this hardware must be provided and
817that is what the "hardware level" emulation does.  When the "hardware
818level" emulation is used, the kernal routines remain unpatched and the
819serial line is fully emulated.  The problem with this emulation is that
820it needs a lot of processing power, mainly because the emulator has to
821emulate two CPUs instead of one.
822
823The PETs do not use a serial IEC bus to communicate with the floppy
824drive but instead use the parallel IEEE488 bus.  This does _byte by
825byte_ transfers, as opposed to the _bit by bit_ transfers of the C64 and
826VIC20, so making it feasible to emulate the parallel line completely
827while emulating the drive at DOS level only.  The IEEE488 line
828interpreter maps the drives 8-11 (as described above) to the IEEE488
829disk units, and no kernal traps are needed.  The same emulation of the
830Commodore IEEE488 bus interface is available for the C64 and the VIC20.
831With IEEE488 drives you can have true 2031 emulation at unit #8, and
832still have filesystem access at units #10 or #11, because monitoring the
833IEEE488 lines does not interfere with the true drive emulation.
834
835The IEEE488 disk drives 2040, 3040, 4040, 8050 and 8250 are Dual Drive
836Floppy Disks.  This means that these drives handle two disks.  To
837accomplish the emulation, only two disks can be emulated, namely units
838#8 and #10.  The attached image, track display and LED display of unit
839#9 and #11 are used for the second drive of the dual disk drives.  On
840unix the unit number display (8 or 9, 10 or 11) in the emulation window
841changes to the drive number display (0 or 1).
842
843The Commodore 2040, 3040, 4040, 1001, 8050 and 8250 disk drives are
844so-called "old-style" disk drives.  Their architecture includes not one,
845but two processors of the 6502 type, namely a 6502 for the file handling
846and communication with the PET (IP), and a 6504 (which is a 6502 with
847reduced address space) for the drive handling (FDC). Both processors
848communicate over a shared memory area.  The IP writes commands to
849read/write blocks to this area and the FDC executes them.  To make the
850emulation feasible, the FDC processor is not emulated cycle-exactly as a
8516504, but simply by checking the commands and executing them on the
852host.  This provides a fast FDC emulation, but disallows the sending the
853FDC processor commands to execute code.  Applications where this is
854necessary are believed to be rather seldom.  Only the format command
855uses this feature, but this is checked for.
856
857The dual disk drive 2040 emulates one of the very first CBM disk drives.
858This drive has DOS version 1.  DOS1 uses an own disk type, that is
859closely related to the 1541 disk image.  Only on tracks 18-24 DOS1 disks
860have a sector more than 1541 disks.  DOS1 disk images have the extension
861.d67.
862
863The dual disk drives 3040 and 4040 use the same logical disk format as
864the VC1541 and the 2031.  In fact, the 4040 was the first disk with DOS
865version 2.  The 3040 emulated here originally was the same as 2040, only
866for the european 30xx PET series.  As many of the original DOS1 disk
867drives were upgraded (a simple ROM upgrade!)  to DOS2, I use the 3040
868number for a DOS 2.0 disk drive, and 4040 for a revised DOS 2 disk
869drive.  It is, however, not yet clear whether the disks here are write
870compatible to the 1541, as rumors exist that the write gap between
871sectors is different.  But read compatible they are.  As VICE emulates
872the FDC processor in C and not as 6504 emulation, this does not matter
873in VICE.
874
875The drives 1001, 8050 and 8250 do actually have the very same DOS ROM.
876Only the code in the FDC is different, which is taken care of by VICE.
877So for all three of those disk drives, only 'dos1001' is needed.  The
878DOS version used is 2.7.
879
880
881File: vice.info,  Node: Supported file formats,  Next: Common problems,  Prev: Disk drive emulation,  Up: Preface
882
8832.11 Supported file formats
884===========================
885
886VICE supports the most popular Commodore file formats:
887
888   * 'X64' or 'D64' disk image files; Used by the 1541, 2031, 3040, 4040
889     drives.
890
891   * 'G64' GCR-encoded 1541 disk image files
892
893   * 'P64' lowlevel NRZI flux pulse disk image files
894
895   * 'D67' CBM2040 (DOS1) disk image format
896
897   * 'D71' VC1571 disk image format
898
899   * 'D81' VC1581 disk image format
900
901   * 'D80' CBM8050 disk image format
902
903   * 'D82' CBM8250/1001 disk image format
904
905   * 'D1M' FD2000/FD4000 DD disk image format
906
907   * 'D2M' FD2000/FD4000 HD disk image format
908
909   * 'D4M' FD4000 ED disk image format
910
911   * 'T64' tape container files (read-only)
912
913   * 'TAP' lowlevel tape image files
914
915   * 'P00' program files
916
917   * 'CRT' C64 cartridge image files
918
919An utility ('c1541', *note c1541::) is provided to allow transfers and
920conversions between these formats.
921
922Notice that the use of the 'X64' file format is depreciated now.
923
924You can convert an 'X64' file back into a 'D64' file with the UNIX 'dd'
925command:
926
927     dd bs=64 skip=1 if=IMAGE.X64 of=IMAGE.D64
928
929*Note File formats::.  for a technical description of the supported file
930formats.
931
932
933File: vice.info,  Node: Common problems,  Prev: Supported file formats,  Up: Preface
934
9352.12 Common problems
936====================
937
938This section tries to describe the most common known problems with VICE,
939and how to resolve them.
940
941* Menu:
942
943* Sound problems::
944* Video problems::
945* Printer problems::
946* PET keyboard problems::
947
948
949File: vice.info,  Node: Sound problems,  Next: Video problems,  Prev: Common problems,  Up: Common problems
950
9512.12.1 Sound problems
952---------------------
953
954VICE should compile and run without major problems on many systems, but
955there are some known issues related to the sound driver.
956
957If you are having sound problems, such as skipping, first monitor how
958much CPU time the respective emulator is taking on your system.  To run
959smoothly, on a modern system, it should really never go over 50% or so,
960except for very short peaks that should also stay well beyond 90%.  If
961you see it takes more, try disabling some of the most CPU intense
962features (disable CRT emulation, use fastsid instead of reSID, disable
963true drive emulation).
964
965If the CPU usage is ok, try using a different sound driver.  You may
966also try increasing the sound buffer size (although the default should
967be ok for modern systems).
968
969Linux, AIX and SGI systems should play sound without any problems; if
970you are running Linux please use a 2.x kernel, as VICE needs some
971features that were not implemented in older versions of the Linux sound
972driver.
973
974Windows should play sound ok.
975
976macOS is currently untested.
977
978All platforms that can run the SDL port (like Amiga, BeOS, etc) should
979be able to play sound via SDL.
980
981On the other hand, HP-UX and Solaris machines are known to cause
982troubles.  If you think you can help debugging the code for these
983systems, your help would be really appreciated.  We are having troubles
984finding HP-UX and SUN consoles to work at...
985
986Some problems have been reported with the proprietary version of the
987Open Sound System for Linux.  With a Crystal sound card, sound output
988was significantly delayed and, apparently, the allocated buffer size was
989completely wrong.  This is not a VICE bug, but rather an OSS bug.
990
991
992File: vice.info,  Node: Video problems,  Next: Printer problems,  Prev: Sound problems,  Up: Common problems
993
9942.12.2 Video problems
995---------------------
996
997Due to the way VICE currently handles its main loop, a common problem
998with video sync occurs when the real (the monitors) frame rate is very
999close to, equal, or lower than the framerate of the emulated machine.
1000We recommend to use a framerate which is slightly higher than that (eg
100151Hz for the C64).
1002
1003
1004File: vice.info,  Node: Printer problems,  Next: PET keyboard problems,  Prev: Video problems,  Up: Common problems
1005
10062.12.3 Printer problems
1007-----------------------
1008
1009VICE supports the emulation of a printer either on the userport or as
1010IEC device 4.  Unfortunately the Commodore IEC routines do not send all
1011commands to the IEC bus.  For example an 'OPEN 1,4' is not seen on the
1012IEC bus.  Also a 'CLOSE 1' after that is not seen.  VICE can see from
1013printing that there was an 'OPEN', but it cannot see when the close was.
1014Also a "finish print job" cannot be seen on the userport device.  To
1015flush the printer buffer (write to 'print.dump' or to the printer) now a
1016menu entry can be used.  Disabling and re-enabling the printer should
1017work as well.
1018
1019The printing services have not been extensively tested but apart from
1020the problem mentioned above it should work fine now.
1021
1022
1023File: vice.info,  Node: PET keyboard problems,  Prev: Printer problems,  Up: Common problems
1024
10252.12.4 PET keyboard problems
1026----------------------------
1027
1028If you find that the German keyboard mapping (plus German charset) does
1029not print uppercase umlauts, then you are right.  The umlauts replace
1030the [,\ and ] characters in the charset.  The keys that make these
1031characters do not have a different entry in the PET editor ROM tables
1032when shifted.  Thus it is not possible to get the uppercase umlauts in
1033the editor.  Nevertheless other programs are reported to change the
1034keyboard mapping table and thus allow the use of the shifted (uppercase)
1035umlauts.
1036
1037Anyway, the VICE keyboard mappings are far from being perfect and we are
1038open to any suggestions.
1039
1040
1041File: vice.info,  Node: Usage,  Next: System files,  Prev: Preface,  Up: Top
1042
10433 Invoking the emulators
1044************************
1045
1046The names of the available emulators are:
1047
1048   * 'vsid', the SID player
1049
1050   * 'x64', the fast C64 emulator
1051
1052   * 'x64sc', the accurate C64 emulator
1053
1054   * 'x64dtv', the C64DTV emulator
1055
1056   * 'x128', the C128 emulator
1057
1058   * 'xvic', the VIC20 emulator
1059
1060   * 'xpet', the PET emulator
1061
1062   * 'xplus4', the PLUS4 emulator
1063
1064   * 'xcbm2', the CBM-II emulator (CRTC models)
1065
1066   * 'xcbm5x0', the CBM-II emulator (VIC-II models)
1067
1068   * 'xscpu64', the SCPU64 emulator
1069
1070You can run each of them by simply typing the name from a shell or by
1071configuring your window manager for example to use them to open disk
1072images.
1073
1074If you want to look at the log output, or use the monitor in a port
1075which does not have a dedicated monitor UI yet, you should always run
1076them from a terminal window such as 'xterm' or 'rxvt'.  For example, you
1077could do
1078
1079     xterm -e x64sc
1080
1081* Menu:
1082
1083* Command-line initialization::
1084* Command-line autostart::
1085
1086
1087File: vice.info,  Node: Command-line initialization,  Next: Command-line autostart,  Prev: Usage,  Up: Usage
1088
10893.1 Command-line options used during initialization
1090===================================================
1091
1092There are several options you can specify on the command line.  Some of
1093them are used to specify emulation settings and will be described in
1094detail later (*note Settings and resources:: for a complete list).  The
1095remaining options are used only to give usage information or to
1096initialize the emulator in some way:
1097
1098'-help'
1099'-?'
1100     List all the available command-line options and their meaning.
1101
1102'-features'
1103     List all compile time features
1104
1105'-default'
1106     Set default resources (*note Settings and resources::).  This will
1107     override all the settings specified before, but not the settings
1108     specified afterwards on the command line.
1109
1110'-config <filename>'
1111     Specify config file
1112
1113'-dumpconfig <filename>'
1114     Write the complete config into file.  Normally only resources that
1115     have been changed from their default value would be written to the
1116     config file, however with this option you can see all resources and
1117     their current values.
1118
1119'-logfile <name>'
1120     Specify log file name ('LogFileName').
1121
1122'-monlog <name>'
1123     Specify log file name for the monitor.
1124
1125'-verbose'
1126     Enable verbose log output.
1127
1128'-silent'
1129     Disable all log output (except errors).
1130
1131'-keybuf <string>'
1132     Put the specified string into the keyboard buffer.
1133
1134'-console'
1135     Console mode (for music playback, or for running the emulator test
1136     programs)
1137
1138'-limitcycles <cycles>'
1139     Automatically exit the emulator after a given number of cycles.
1140
1141'-chdir <directory>'
1142     Change the working directory.
1143
1144'-autostart <name>'
1145     Autostart <name> (*note Command-line autostart::).
1146
1147'-autoload <name>'
1148     Attach and autoload tape/disk image <name>
1149
1150'-1 <Name>'
1151     Attach <Name> as a tape image file.
1152'-8 <Name>'
1153'-9 <Name>'
1154'-10 <Name>'
1155'-11 <Name>'
1156     Attach <Name> as a disk image to device 8, 9, 10 or 11.
1157
1158'-attach8ro'
1159'-attach9ro'
1160'-attach10ro'
1161'-attach11ro'
1162     Attach disk image for drive #8-11 read only
1163     ('AttachDevice8Readonly=1', 'AttachDevice9Readonly=1',
1164     'AttachDevice10Readonly=1', 'AttachDevice11Readonly=1') (all
1165     emulators except vsid).
1166
1167'-attach8rw'
1168'-attach9rw'
1169'-attach10rw'
1170'-attach11rw'
1171     Attach disk image for drive #8-11 read write (if possible)
1172     ('AttachDevice8Readonly=0', 'AttachDevice9Readonly=0',
1173     'AttachDevice10Readonly=0', 'AttachDevice11Readonly=0') (all
1174     emulators except vsid).
1175
1176'-exitscreenshot <name>'
1177     Specify name of a screenshot file that will be written when the
1178     emulator exits.  ('ExitScreenshotName').
1179
1180'-exitscreenshotvicii <name>'
1181     Specify name of a screenshot file that will be written when the
1182     emulator exits.  ('ExitScreenshotName1').  (x128)
1183
1184
1185File: vice.info,  Node: Command-line autostart,  Prev: Command-line initialization,  Up: Usage
1186
11873.2 Autostarting programs from the command-line
1188===============================================
1189
1190It is possible to let the emulator "autostart" a disk or tape image
1191file, by simply specifying its name as the _last_ argument on the
1192command line, for example
1193
1194     x64sc lovelygame.d64
1195
1196will start the C64 emulator, attaching 'lovelygame.d64' as a disk image
1197and running the first program on it.  You can also specify the name of
1198the program on the fisk image by appending a colon (':') the name itself
1199to the argument; for example
1200
1201     x64sc "lovelygame.d64:run me"
1202
1203will run the program named 'run me' on 'lovelygame.d64' instead of the
1204first one.
1205
1206Using the command-line option '-autostart' is equivalent; so the same
1207result can be obtained with
1208
1209     x64sc -autostart "lovelygame.d64:run me"
1210
1211If you specify a raw CBM or P00 file, the emulator will setup the file
1212system based drive emulation so that it is enabled and accesses the
1213directory containing the file first.  This is a very convenient way to
1214start multi-file programs stored in file system directories and not
1215requiring "true" drive emulation.
1216
1217*Note Disk and tape images::.  for more information about images and
1218autostart.
1219
1220
1221File: vice.info,  Node: System files,  Next: Basics,  Prev: Usage,  Up: Top
1222
12234 System files
1224**************
1225
1226In order to work properly, the emulators need to load a few system
1227files:
1228
1229   * the "system ROMs", raw binary files containing copies of the
1230     original ROMs of the machine you are emulating;
1231
1232   * the "keyboard maps", text files describing the keyboard layout;
1233
1234   * the "palette files", text files describing the colors of the
1235     machine you are emulating.
1236
1237   * the "romset files", text files describing the different ROMs to
1238     load.
1239
1240The place where they will be searched for depends on the value of the
1241'Directory' resource, which is a colon (':')-separated search path list,
1242like the UNIX 'PATH' environment variable.  The default value is
1243
1244     PREFIX/lib/vice/EMU:$HOME/.vice/EMU:BOOTPATH/EMU
1245
1246Where 'PREFIX' is the installation prefix (usually '/usr/local'), 'EMU'
1247is the name of the emulated machine ('C64', 'C64DTV', 'C128', 'PET',
1248'PLUS4', 'CBM-II', 'SCPU64' or 'VIC20') and 'BOOTPATH' is the directory
1249where the executable resides.  The disk drive ROMs are looked for in a
1250directory with 'EMU' set to 'DRIVES'.  '$HOME' is the user's home
1251directory.
1252
1253For example, if you have the C64 emulator installed in
1254
1255     /usr/local/bin/x64
1256
1257then the value will be
1258
1259     /usr/local/lib/vice/C64:$HOME/.vice/C64:/usr/local/bin/C64
1260
1261And system files will be searched for under the following directories,
1262in the specified order:
1263
1264  1. '/usr/local/lib/VICE/C64'
1265  2. '$HOME/.vice/C64'
1266  3. '/usr/local/bin/C64'
1267
1268System files can still be installed in a different directory if you
1269specify a complete path instead of just a file name.  For example, if
1270you specify './kernal' as the kernal image name, the kernal image will
1271be loaded from the current directory.  This can be done by using
1272command-line options or by modifying resource values (*note Resource
1273files::).
1274
1275* Menu:
1276
1277* ROM files::                   Files containing dumps of the original ROMs.
1278* Keymap files::                Files describing the keyboard layout.
1279* Palette files::               Files defining the machine's colors.
1280* Romset files::                Files defining the machine's ROM set.
1281
1282
1283File: vice.info,  Node: ROM files,  Next: Keymap files,  Prev: System files,  Up: System files
1284
12854.1 ROM files
1286=============
1287
1288Every emulator requires its own ROM set.  For the VIC20 and the C64, the
1289ROM set consists of the following files:
1290
1291   * 'kernal', the Kernal ROM (8 KBytes)
1292
1293   * 'basic', the Basic ROM (8 KBytes)
1294
1295   * 'chargen', the character generator ROM (4 Kbytes)
1296
1297The C128 needs the following files:
1298
1299   * 'kernal', the Kernal ROM (8 Kbytes)
1300
1301   * 'basic', the Basic + Editor ROM (32 Kbytes)
1302
1303   * 'chargen', the character generator ROM (4 Kbytes)
1304
1305The C128, VIC20, SCPU64 and C64 emulators also need the following DOS
1306ROMs for the hardware-level emulation of the 1540, 1541, 1571, 1581,
13072000 and 4000 disk drives:
1308
1309   * 'dos1540', the 1540 drive ROM (16 Kbytes)
1310
1311   * 'dos1541', the 1541 drive ROM (16 Kbytes)
1312
1313   * 'dos1541II', the 1541-II drive ROM (16 Kbytes)
1314
1315   * 'dos1571', the 1571 drive ROM (32 Kbytes)
1316
1317   * 'dos1581', the 1581 drive ROM (32 Kbytes)
1318
1319   * 'dos2000', the 2000 drive ROM (32 Kbytes)
1320
1321   * 'dos4000', the 4000 drive ROM (32 Kbytes)
1322
1323In addition to those all emulators can handle a parallel IEEE488
1324interface (the C64 and C128 via '$df**' extension, the VIC20 via VIC1112
1325emulation) so they also need the DOS ROM for the IEEE disk drives:
1326
1327   * 'dos2031', the 2031 drive ROM (16 Kbytes) (DOS 2.6, Commodore ROM
1328     images 901484-03 and 901484-05)
1329
1330   * 'dos2040', the 2040 drive ROM (8 Kbytes) (DOS 1, Commodore ROM
1331     images 901468-06, 901468-07)
1332
1333   * 'dos3040', the 3040 drive ROM (12 Kbytes) (DOS 2, Commodore ROM
1334     images 901468-11, 901468-12 and 901468-13)
1335
1336   * 'dos4040', the 4040 drive ROM (12 Kbytes) (DOS 2, Commodore ROM
1337     images 901468-14, 901468-15 and 901468-16)
1338
1339   * 'dos1001', the 1001/8050/8250 drive ROM (16 Kbytes) (DOS 2.7,
1340     Commodore ROM images 901887-01 and 901888-01)
1341
1342Note that there are other DOS images on the internet.  The DOS 2.5
1343images might be used with the 8050, but it cannot handle the double
1344sided drives of the 1001 and 8250 and it is not supported by VICE.
1345
1346The PET emulator uses an expanded setup, because there are three major
1347versions of the Basic and the Kernal, and many versions of the Editor
1348ROM. In addition there are cartridge ROM sockets.
1349
1350The Kernal files contain the memory from range $F000-$FFFF, the Basic
1351ROMs either the range $C000-$DFFF or $B000-$DFFF. To handle the
1352different screen sizes and keyboards, different so-called "editor-ROMs"
1353for the memory range $E000-$E800 are provided.  The PET ROMs have the
1354following names:
1355
1356   * 'kernal1', the PET2001 Kernal ROM (4 KBytes) (Commodore ROM images
1357     901447-06 and 901447-07)
1358   * 'kernal2', the PET3032 Kernal ROM (4 KBytes) (Commodore ROM image
1359     901465-03)
1360   * 'kernal4', the PET4032/8032 Kernal ROM (4 KBytes) (Commodore ROM
1361     image 901465-22)
1362
1363   * 'basic1', the PET2001 Basic 1 ROM (8 KBytes) (Commodore ROM images
1364     901447-09, 901447-02, 901447-03, 901447-04.bin.  The -09 ROM is the
1365     revised -01 ROM)
1366   * 'basic2', the PET3032 Basic 2 ROM (8 KBytes) (Commodore ROM images
1367     901465-01 and 901465-01)
1368   * 'basic4', the PET4032/8032 Basic 4 ROM (12 KBytes) (Commodore ROM
1369     images 901465-23, 901465-20 and 901465-21.  The -23 ROM is a
1370     revised -19 ROM)
1371
1372   * 'edit1g', the PET2001 editor for graphics keyboards (2 KBytes)
1373     (Commodore ROM image 901447-05)
1374   * 'edit2b', the PET3032 editor for business keyboards (2 KBytes)
1375     (Commodore ROM image 901474-01)
1376   * 'edit2g', the PET3032 editor for graphics keyboards (2 KBytes)
1377     (Commodore ROM image 901447-24)
1378   * 'edit4g40', the PET4032 editor for graphics keyboards (2 KBytes)
1379     (Commodore ROM image 901498-01)
1380   * 'edit4b40', the PET4032 editor for business keyboards (2 KBytes)
1381     (Commodore ROM image 901474-02)
1382   * 'edit4b80', the PET8032 editor for business keyboards (2 KBytes)
1383     (Commodore ROM image 901474-04-?)
1384
1385   * 'chargen', the character generator ROM (2k).  It has two sets with
1386     128 chars each.  The second (inverted) half of each set is computed
1387     from the first half by inverting it.  This is a PET hardware
1388     feature.  (Commodore ROM image 901447-10)
1389   * 'chargen.de', the character generator ROM (2k).  This version is a
1390     patched German charset, with the characters [, \ and ] replaced by
1391     umlauts.  It has been provided by U. Guettich and he reports that
1392     it is supported by some programs.
1393
1394   * 'characters.901640-01.bin', the SuperPET character generator ROM
1395     (4k).  The first half is the same as 'chargen', the second half
1396     contains, instead of an upper and lower case set, an ASCII
1397     character set and an APL character set.  For these sets, the screen
1398     code is equal to the ASCII/APL code.
1399   * 'waterloo-[abcdf]000.901898-0[1-5].bin',
1400     'waterloo-e000.901897-01.bin'.  The Waterloo system ROMs.
1401
1402   * 'hre-9000.324992-02.bin' HiRes Emulator (at $9000) and
1403     'hre-a000.324993-02.bin' HiRes BASIC (at $A000).  These are the two
1404     roms for supporting the HRE on the 8296.  The ROMs are initialized
1405     by the command 'SYS 36864'.
1406
1407The PETs also have sockets for extension ROMs for the addresses
1408$9000-$9FFF, $A000-$AFFF and $B000-$BFFF (the last one for PET2001 and
1409PET3032 only).  You can specify ROM image files for those extensions
1410command line options '-petrom9', '-petromA' and '-petromB' resp.
1411
1412An alternative would be to specify a long kernal ROM with the '-kernal'
1413option that includes the extension ROM areas.
1414
1415Also, you can specify replacements for the basic ROM at $B000-$DFFF with
1416the '-petromBasic' option and for the editor ROM at $E000-$E7FF with the
1417'-petromEditor' option.
1418
1419The CBM-II emulator again uses another setup.  For those models the
1420kernal used is the same for all.  However, for different amounts of
1421memory exist different versions of the BASIC ROMs.  The 128k RAM version
1422(C610, C710, B128) uses one bank of 64k for the BASIC text and another
1423one for all the variables.  The 256k RAM version uses one bank for text,
1424one for variables, one for arrays and one for strings.
1425
1426Also the character generator ROMs have a format different from the
1427above.  The other character ROMs have 8 bytes of pixel data per
1428character.  Those ROMs have 16 bytes per character instead.  The C6x0
1429only uses the first 8 of it, but the C7x0 uses 14 lines per character
1430and needs those increased ROMs.  Both ROMs hold, like the PET, two
1431character sets with 128 characters each.  Again the second half of the
1432full (256 char) character set is computed by inverting.
1433
1434   * 'kernal', the KERNAL (8k) for the business machines (6xx/7xx)
1435
1436   * 'kernal.500', the KERNAL (8k) for the personal machine (510)
1437     (901234-02)
1438
1439   * 'basic.128', the CBM-II 128k BASIC (16k)
1440
1441   * 'basic.256', CBM-II 256k BASIC (16k)
1442
1443   * 'basic.500', C510 BASIC (16k) (901236-02 + 901235-02)
1444
1445   * 'chargen.500', character generator ROM for the C5x0 (4k)
1446     (901225-01)
1447
1448   * 'chargen.600', character generator ROM for the C6x0 (4k)
1449
1450   * 'chargen.700', character generator ROM for the C7x0 (4k)
1451
1452The SCPU64 needs the following files:
1453
1454   * 'scpu64', the SCPU64 ROM (128 Kbytes)
1455
1456   * 'chargen', the character generator ROM (4 Kbytes)
1457
1458
1459File: vice.info,  Node: Keymap files,  Next: Palette files,  Prev: ROM files,  Up: System files
1460
14614.2 Keymap files
1462================
1463
1464"Keymap files" are used to define the keyboard layout, defining which
1465key (or combination of keys) must be mapped to each keysym.
1466
1467In other words, the keyboard emulation works like this: whenever the
1468user presses or releases a key while the emulation window has the input
1469focus, the emulator receives an X-Window event with a value that
1470identifies that key.  That value is called a "keysym" and is unique to
1471that key.  The emulator then looks up that keysym in an internal table
1472that tells it which key(s) to press or release on the emulated keyboard.
1473
1474This table is described by the keymap file, which is made up of lines
1475like the following:
1476
1477     KEYSYM ROW COLUMN SHIFTFLAG
1478
1479Where:
1480
1481   * 'KEYSYM' is a string identifying the keysym: you can use the 'xev'
1482     utility (shipped with the X Window system) to see what keysym is
1483     bound to any key;
1484
1485   * 'ROW' and 'COLUMN' identify the key on the emulated keyboard;
1486
1487   * 'SHIFTFLAG' can have one of the following values:
1488
1489        * '0': the key is never shifted;
1490
1491        * '1': the key is shifted;
1492
1493        * '2': the key is the left shift;
1494
1495        * '4': the key is the right shift;
1496
1497        * '8': the key can be (optionally) shifted by the user.
1498
1499The 'SHIFTFLAG' is useful if you want certain keys to be "artificially"
1500shifted by the emulator, and not by the user.  For example, <F2> is
1501shifted on the C64 keyboard, but you might want it to be mapped to the
1502unshifted <F2> key on the PC keyboard.  To do so, you just have to use a
1503line like the following:
1504
1505     F2 0 4 1
1506
1507where '0' and '4' identify the key (row 0, column 4 on the keyboard
1508matrix), and '1' specifies that every time the user presses <F2> the
1509shift key on the C64 keyboard must be pressed.
1510
1511There are also some special commands you can put into the keyboard file;
1512they are recognized because they start with an exclamation mark:
1513
1514   * '!CLEAR' clears the currently loaded keyboard map; it is necessary
1515     to put this at the beginning of the file if you want the keymap
1516     file to override all of the current internal settings;
1517
1518   * '!LSHIFT', '!RSHIFT', followed by a row and a column value, specify
1519     where the left and right shift keys are located on the emulated
1520     keyboard; for example, C64 default keymaps will specify
1521
1522          !LSHIFT 1 7
1523          !RSHIFT 6 4
1524
1525Any line starting with the '#' sign, instead, is completely ignored.
1526This is useful for adding comments within the keymap file.
1527
1528VICE keymap files have the '.vkm' default extension, and every emulator
1529comes with a default positional mapping and a default symbolic mapping.
1530
1531
1532File: vice.info,  Node: Palette files,  Next: Romset files,  Prev: Keymap files,  Up: System files
1533
15344.3 Palette files
1535=================
1536
1537"Palette files" are used to specify the colors used in the emulators.
1538They are made up of lines like the following:
1539
1540     RED GREEN BLUE DITHER
1541
1542where 'RED', 'GREEN' and 'BLUE' are hexadecimal values ranging from 0 to
1543FF and specifying the amount of red, green and blue you want for each
1544color and 'DITHER' is a 4-bit hexadecimal number specifying the pattern
1545you want when rendering on a B/W display.
1546
1547You have to include as many lines as the number of colors the emulated
1548machine has, and the order of the lines must respect the one used in the
1549machine (so the N'th line must contain the specifications for color N -
15501 in the emulated machine).
1551
1552Lines starting with the '#' sign are completely ignored.  This is useful
1553for adding comments (such as color names) within the palette file.
1554
1555For example, the default PET palette file (which has only two colors, 0
1556for background and 1 for foreground), looks like the following:
1557
1558     #
1559     # VICE Palette file
1560     #
1561     # Syntax:
1562     # Red Green Blue Dither
1563     #
1564
1565     # Background
1566     00 00 00 0
1567
1568     # Foreground
1569     00 FF 00 F
1570
1571
1572File: vice.info,  Node: Romset files,  Prev: Palette files,  Up: System files
1573
15744.4 Romset files
1575================
1576
1577The Romset files are not used by default on all emulators.  You might
1578have recognized that the names of the ROM images are saved in resources.
1579Loading a Romset file now just means a 'shortcut' to changing all the
1580resources with ROM image names and reloading the ROMs.
1581
1582The PET and CBM-II emulators use this feature to change between the
1583different ROM versions available for those machines.  E.g.  the Romset
1584file for the PET 2001 is
1585
1586     KernalName="pet2001"
1587     EditorName=
1588     ChargenName="chargen"
1589     RomModule9Name=
1590     RomModuleAName=
1591     RomModuleBName=
1592
1593As you can see, the file even uses the same syntax as the resource file,
1594it is just a bit stripped down.
1595
1596While a Romset file is processed, the directory where the Romset file
1597was found is temporarily prepended to the search path ('Directory'
1598resource).  This also means that if you have a setting for 'Directory'
1599in it, its effect is limited to the Romset file itself.
1600
16014.4.1 Romset command line options
1602---------------------------------
1603
1604'-romsetfile <File>'
1605     load the given romset file
1606
1607'-romsetarchive <File>'
1608     load the given romset archive
1609
1610'-romsetarchiveselect <Item number>'
1611     select the given item from the current romset archive
1612
1613
1614File: vice.info,  Node: Basics,  Next: Settings and resources,  Prev: System files,  Up: Top
1615
16165 Basic operation
1617*****************
1618
1619This section describes the basic things you can do once the emulator has
1620been fired up.
1621
1622* Menu:
1623
1624* Emulation window::            The window the emulator runs in.
1625* Menus::                       Using emulator menus.
1626* Help::                        Getting help if you are stuck.
1627* File Selector::               Selecting files interactively.
1628* Disk and tape images::        Using virtual disks and tapes.
1629* Reset::                       Resetting the virtual machines.
1630
1631
1632File: vice.info,  Node: Emulation window,  Next: Menus,  Prev: Basics,  Up: Basics
1633
16345.1 The emulation window
1635========================
1636
1637When the emulator is run, the screen of the emulated machine is
1638displayed in a standard X Window which we will call the "emulation
1639window".  This window will be updated in real time, displaying the same
1640contents that a real monitor or TV set would.
1641
1642Below the emulation window there is an area which is used to display
1643information about the state of the emulator; we will call this area the
1644"status bar".
1645
1646On the extreme left of the status bar, there is a "performance meter".
1647This displays the current relative speed of the emulator (as a
1648percentage) and the update frequency (in frames per second).  All the
1649machines emulated are PAL, so the update frequency will be 50 frames per
1650second if your system is fast enough to allow emulation at the speed of
1651the real machine.
1652
1653On the extreme right of the status bar, there is a "drive status
1654indicator".  This is only visible if the hardware-level ("True") 1541
1655emulation is turned on.  In that case, the drive status indicator will
1656contain a rectangle emulating the drive LED and will display the current
1657track position of the drive's read/write head.
1658
1659
1660File: vice.info,  Node: Menus,  Next: Help,  Prev: Emulation window,  Up: Basics
1661
16625.2 Using the menus
1663===================
1664
1665It is possible to execute some commands and change emulation parameters
1666while the emulator is running: when the pointer is over the emulation
1667window, two menus are available by pressing either the left or right
1668mouse buttons.  The left mouse button will open the "command menu" from
1669which several emulation-related commands can be executed; the right
1670mouse button will open the "settings menu" from which emulation
1671parameters can be changed.  The basic difference between the command and
1672the settings menu is that, while commands have only effect on the
1673current session, settings can be saved and later used with the "Save
1674settings" and "Load settings" right-button menu items, respectively.
1675"Restore default settings" restores the factory defaults.  *Note
1676Settings and resources::.  for more information about how settings work
1677in VICE.
1678
1679Sometimes commands can be reached via "shortcuts" or "hotkeys", i.e., it
1680is possible to execute them by pressing a sequence of keys instead of
1681going through the menu with the mouse.  Where shortcuts exist, they are
1682displayed in parentheses at the right edge of the menu item.  In VICE,
1683all shortcuts must begin with the <Meta> or <Alt> key.  So, for example,
1684to attach a disk image to drive #8 (the corresponding menu item displays
1685"M-8"), you have to press the <Meta> (or <Alt>) and then <8>.
1686
1687Note that no other key presses are passed on to the emulated machine
1688while either <Meta> or <Alt> are held down.
1689
1690
1691File: vice.info,  Node: Help,  Next: File Selector,  Prev: Menus,  Up: Basics
1692
16935.3 Getting help
1694================
1695
1696At any time, if you get stuck or do not remember how to perform a
1697certain action, you can use the "Browse manuals" command (from the help
1698menu).  This will open either the PDF or popup a browser and open the
1699HTML version of the documentation.
1700
1701Notice that on Linux this requires VICE to be properly (and fully)
1702installed, eg with a 'make install'.
1703
1704
1705File: vice.info,  Node: File Selector,  Next: Disk and tape images,  Prev: Help,  Up: Basics
1706
17075.4 Using the file selector
1708===========================
1709
1710In those situations where it is necessary to specify a file name, all of
1711the VICE emulators will pop up a file selector window allowing you to
1712select or specify a file interactively.
1713
1714To the left of the file selector, there is a list of ancestor
1715directories: by clicking on them, you can ascend the directory tree.  To
1716the right, there is a list of the files in the current directory; files
1717can be selected by clicking on them.  If you click on a directory, that
1718directory becomes the current one; if you click on an ordinary file, it
1719becomes the active selection.
1720
1721At the top, there is a "directory box", with the complete path of the
1722current directory, and a "file name box", with the name of the currently
1723selected file.  At the bottom there are two buttons: "OK" confirms the
1724selected file and "Cancel" abandons the file selector without cancelling
1725the operation.
1726
1727It is also possible to specify what files you want to show in the file
1728selector by writing an appropriate shell-like pattern in the directory
1729box; e.g., '~/*.[dx]64' will only show files in the home directory whose
1730name ends with either '.d64' or with '.x64'.
1731
1732
1733File: vice.info,  Node: Disk and tape images,  Next: Reset,  Prev: File Selector,  Up: Basics
1734
17355.5 Using disk and tape images
1736==============================
1737
1738The emulator is able to emulate disk drives and tape recorders if
1739provided with suitable "disk images" or "tape images".  An "image" is a
1740raw dump of the contents of the media, and must be "attached" before the
1741emulator can use it.  "Attaching" a disk or tape image is like
1742"virtually" inserting a diskette or a cassette into the disk drive or
1743the tape recorder: once an image is attached, the emulator is able to
1744use it as a storage media.
1745
1746There are five commands (in the left button menu) that deal with disk
1747and tape images:
1748
1749   * Attach Disk Image
1750   * Detach Disk Image
1751   * Attach Tape Image
1752   * Detach Tape Image
1753   * Smart-attach a file
1754
1755The first four commands are used to insert and remove the virtual disks
1756and cassettes from the respective units.  On the other hand, the last
1757commands tries to guess the type of the image you are attaching from its
1758name and size, and attaches it to the most reasonable device.
1759
1760Supported formats are 'D64', 'G64', 'P64' and the ancient 'X64' for disk
1761images (devices 8, 9 and 10) and 'T64' and 'TAP' for tape images.
1762
1763Notice that 'T64' support is _read-only_, and that the cassette is
1764automatically rewound when you reach its end.  For actually emulating
1765tape, the 'TAP' format is highly recommended.
1766
1767Another important feature is that raw Commodore BASIC binary files and
1768.P00 files can be attached as tapes.  As you can autostart a tape image
1769when it is attached (*note Autostart::), this allows you to autostart
1770these particular files as well.
1771
1772You can attach a disk for which you do not have write permissions: when
1773this happens, the 1541 emulator will emulate a write-protected disk.
1774This is also useful if you want to prevent certain disk images from
1775being written to; in the latter case, just remove the write permission
1776for that file, e.g., by doing a 'chmod a-w'.
1777
1778* Menu:
1779
1780* Previewing contents::         Looking into the image before attaching it.
1781* Autostart::                   Starting a program automagically.
1782* Compressed files::            Dealing with compressed files.
1783* Zipcode and Lynx::            Using Zipcoded ([1-4]!*) and Lynx files.
1784
1785
1786File: vice.info,  Node: Previewing contents,  Next: Autostart,  Prev: Disk and tape images,  Up: Disk and tape images
1787
17885.5.1 Previewing the image contents
1789-----------------------------------
1790
1791It is possible to examine the directory of a disk or tape image before
1792attaching it.  Just press the "Contents" button in the file selector
1793window and a new window will pop up with the contents of the selected
1794image.
1795
1796Notice that this function automatically translates the directory from
1797PETSCII to ASCII; but, due to differences in the two encodings, it is
1798not always possible to translate all the characters, so you might get
1799funny results when "weird" characters such as the semi-graphical ones
1800are being used.
1801
1802
1803File: vice.info,  Node: Autostart,  Next: Compressed files,  Prev: Previewing contents,  Up: Disk and tape images
1804
18055.5.2 "Autostarting" an image
1806-----------------------------
1807
1808If you want to reset the machine and run the first program on a certain
1809image without typing any commands at the Commodore BASIC prompt, you can
1810use the "Autostart" button in the file selector window after selecting a
1811proper disk or tape image file.
1812
1813Notice that, if true drive emulation is turned on, it will be turned off
1814before running the program and then turned on again after it has been
1815loaded.  This way, you get the maximum possible speed while loading the
1816file, but you do not lose compatibility once the program itself is
1817running.
1818
1819This method is not completely safe, because some autostarting methods
1820might cause the true drive emulation not to be turned on again.  In such
1821cases, the best thing to do is to disable kernal traps (which will cause
1822true drive emulation to be always kept turned on), or to manually load
1823the program with true drive emulation turned on.
1824
1825
1826File: vice.info,  Node: Compressed files,  Next: Zipcode and Lynx,  Prev: Autostart,  Up: Disk and tape images
1827
18285.5.3 Using compressed files
1829----------------------------
1830
1831It is also possible to attach disk or tape images that have been
1832compressed through various algorithms; compression formats are
1833identified from the file extension.  The following formats are supported
1834(the expected file name extension is in parenthesis):
1835
1836   * GNU Zip ('.gz' or '.z');
1837   * BZip version 2 ('.bz2');
1838   * PkZip ('.zip');
1839   * GNU Zipped TAR archives ('.tar.gz', '.tgz');
1840   * Zoo ('.zoo').
1841
1842PkZip, 'tar.gz', 'lha' and 'zoo' support is _read-only_ and always uses
1843the _first_ 'T64' or 'D64' file in the archive.  So archives containing
1844multiple files will always be handled as if they contain only a single
1845file.
1846
1847Windows and DOS don't contain the needful programs to handle compressed
1848archives.  Get gzip and unzip for Windows at
1849<ftp://ftp.freesoftware.com/pub/infozip/WIN32> and for DOS at
1850<ftp://ftp.freesoftware.com/pub/infozip/MSDOS>.  Don't use pkunzip for
1851DOS, it doesn't work.  The programs to use BZip2 archives may be found
1852at <http://sourceware.cygnus.com/bzip2>.  Just put the programs
1853(unzip.exe, gzip.exe, bzip2.exe) into a directory of your search path
1854(e.g.  C:\DOS or C:\WINDOWS\COMMAND; have a look at the PATH variable).
1855
1856
1857File: vice.info,  Node: Zipcode and Lynx,  Prev: Compressed files,  Up: Disk and tape images
1858
18595.5.4 Using Zipcode and Lynx images
1860-----------------------------------
1861
1862Since version 0.15, the VICE emulators have been able to attach disks
1863packed with Zipcode or Lynx directly, removing the need to manually
1864convert them into 'D64' or 'X64' files with 'c1541'.  This is achieved
1865by automatically invoking 'c1541', letting it decode the file into a
1866temporary image and attaching the resulting temporary image read-only.
1867For this to work, the directory containing 'c1541' must be in your
1868'PATH'.
1869
1870This uses the '-unlynx' and '-zcreate' options of 'c1541' (*note c1541
1871commands and options::); these commands are not very reliable yet, and
1872could fail with certain kinds of Lynx and Zipcode images (for example,
1873they cannot deal with 'DEL' files properly).  So please use them with
1874caution.
1875
1876Lynx files usually come as '.lnx' files which are unpacked into single
1877disk images.  On the other hand, Zipcode files do not have a particular
1878extension (although '.z64' is sometimes used), and represent a disk by
1879means of component files, named as follows:
1880
1881   * '1!NAME'
1882   * '2!NAME'
1883   * '3!NAME'
1884   * '4!NAME'
1885
1886If you attach as a disk image (or smart-attach) any one of these files,
1887the emulator will simply pick up the other three (by examining the name)
1888and then build a disk image using all four.
1889
1890
1891File: vice.info,  Node: Reset,  Prev: Disk and tape images,  Up: Basics
1892
18935.6 Resetting the machine
1894=========================
1895
1896You can reset the emulated machine at any time by using the "Reset"
1897command from the command menu.  There are two types of reset:
1898
1899   * "soft reset", which simply resets the CPU and all the other chips;
1900   * "hard reset", which also clears up the contents of RAM.
1901
1902A "soft reset" is the same as a hardware reset achieved by pulling the
1903RESET line down; a "hard reset" is more like a power on/power off
1904sequence in that it makes sure the whole RAM is cleared.
1905
1906It is possible that a soft reset may not be enough to take the machine
1907to the OS initialization sequence: in such cases, you will have to do a
1908hard reset instead.
1909
1910This is especially the case for the CBM-II emulators.  Those machines
1911examine a memory location and if they find a certain "magic" value they
1912only do what you know from the C64 as 'Run/Stop-Restore'.  Therefore, to
1913really reset a CBM-II use hard reset.
1914
1915
1916File: vice.info,  Node: Settings and resources,  Next: Machine-specific features,  Prev: Basics,  Up: Top
1917
19186 Settings and resources
1919************************
1920
1921In the VICE emulators, all the settings are stored in entities known as
1922called "resources".  Each resource has a name and a value which may be
1923either an integer or a string.  Integer values are often used as boolean
1924values with the usual convention of using zero for "false" and any other
1925value for "true".
1926
1927Resource values can be changed via the right-button menu (the "settings"
1928menu), via command-line options or via the "resource file".
1929
1930The "resource file" is a human-readable file containing resource values:
1931it is called 'vicerc' and is stored in the directory '.vice/' in the
1932user's home directory.  It is possible to dump the current values of the
1933resources into that file or load the values stored into that file as the
1934current values, at any time.  This is achieved with the "Save settings"
1935and "Load settings" right menu items.  A third menu item, "Restore
1936Default Settings", can be used to reset all the values to the factory
1937defaults.
1938
1939A special resource, 'SaveResourcesOnExit', if set to a non zero value,
1940causes the emulator to ask you if you want to save the current (changed)
1941settings before exiting, and can be toggled with the "Save settings on
1942exit" command from the right-button menu.
1943
1944Notice that not all the resources can be changed from the menus; some of
1945them can only be changed by manually modifying the resource file or by
1946using command-line options.
1947
1948* Menu:
1949
1950* Resource files::              Format of resource files.
1951* Resources and command-line::  Specifying settings from the
1952                                command-line
1953
1954* Performance settings::        Settings that affect speed of execution.
1955* Video settings::              Settings dealing with the video output.
1956* Keyboard settings::           Settings relative to the keyboard emulation.
1957* Control port settings::       Settings that control what device is emulated on available control ports.
1958* Sound settings::              Settings that control audio playback
1959* Drive settings::              Settings that control disk-drive emulation.
1960* Peripheral settings::         Settings for emulated external devices.
1961* RS232 settings::              Settings for the RS232 emulation.
1962* Monitor settings::            Settings for the built-in monitor.
1963* Misc settings::               Other settings.
1964
1965
1966File: vice.info,  Node: Resource files,  Next: Resources and command-line,  Prev: Settings and resources,  Up: Settings and resources
1967
19686.1 Format of resource files
1969============================
1970
1971A resource file is made up of several sections; sections have the
1972purpose of separating the resources of a certain emulator from the ones
1973of the other emulators.  A section starts with the name of an emulator
1974in brackets (e.g., '[C64]') and ends when another section starts or when
1975the file ends.
1976
1977Every line in a section has the following format:
1978
1979     RESOURCE=VALUE
1980
1981where 'RESOURCE' is the name of a resource and 'VALUE' is its assigned
1982value.  Resource names are case-sensitive and resource values are either
1983strings or integers.  Strings must start and end with a double quote
1984character ('"'), while integers must be given in decimal notation.
1985
1986Here is an example of a stripped-down '.vice/vicerc' file:
1987
1988     [VIC20]
1989     SaveResourcesOnExit=0
1990     FileSystemDevice8=1
1991     FSDevice8ConvertP00=1
1992     FSDevice8Dir="/home/ettore/cbm/stuff/vic20p00"
1993     FSDevice8SaveP00=1
1994     FSDevice8HideCBMFiles=1
1995     [C64]
1996     SaveResourcesOnExit=1
1997     FileSystemDevice8=1
1998     FSDevice8ConvertP00=1
1999     FSDevice8Dir="/home/ettore/cbm/stuff/c64p00"
2000     FSDevice8SaveP00=1
2001     FSDevice8HideCBMFiles=1
2002
2003Notice that, when resource values are saved with "Save settings", the
2004emulator only modifies its own section, leaving the others unchanged.
2005
2006
2007File: vice.info,  Node: Resources and command-line,  Next: Performance settings,  Prev: Resource files,  Up: Settings and resources
2008
20096.2 Using command-line options to change resources
2010==================================================
2011
2012Resources can also be changed via command-line options.
2013
2014Command-line options always override the defaults from '.vice/vicerc',
2015and their assignments last for the whole session.  So, if you specify a
2016certain command-line option that changes a certain resource from its
2017default value and then use "Save Settings", the value specified with the
2018command-line option will be saved back to the resource file.
2019
2020Command-line options can begin with with a minus sign ('-') or with a
2021plus sign ('+').  Options beginning with a minus sign may require an
2022additional parameter, while the ones beginning with the plus sign never
2023require one.
2024
2025Moreover, options beginning with a plus sign always have a counterpart
2026with the same name, but with a minus sign; in that case, the option
2027beginning with a minus sign is used to _enable_ a certain feature, while
2028the one beginning with a plus sign is used to _disable_ the same feature
2029(this is an X11 convention).  For example, '-mitshm' enables support of
2030MITSHM, while '+mitshm' disables it.
2031
20326.3 Autostart settings
2033======================
2034
20356.3.1 Autostart resources
2036-------------------------
2037
2038All these resources are available for all emulators except vsid.
2039
2040'AutostartPrgDiskImage'
2041     String specifying the filename of the disk image used when
2042     autostarting a prg file and "copy to D64" is enabled (all emulators
2043     except vsid).
2044
2045'AutostartBasicLoad'
2046     Boolean, if true load to basic start using ,8 when autostarting
2047     (all emulators except vsid).
2048
2049'AutostartRunWithColon'
2050     Boolean, if true put a colon after the load command when
2051     autostarting (all emulators except vsid).
2052
2053'AutostartHandleTrueDriveEmulation'
2054     Boolean, if true handle (enable/disable) True Drive Emulation on
2055     autostart (all emulators except vsid).
2056
2057'AutostartWarp'
2058     Boolean, if true temporarily enable warp mode when autostarting
2059     (all emulators except vsid).
2060
2061'AutostartPrgMode'
2062     Integer specifying the autostart mode for prg files (all emulators
2063     except vsid).  (0: virtual filesystem, 1: inject to RAM, 2: copy to
2064     D64)
2065
2066'AutostartDelayRandom'
2067     Boolean, enables a short (0-10 frames) random delay on autostart.
2068     This is added to the 'AutostartDelay' (all emulators except vsid).
2069
2070'AutostartDelay'
2071     Integer specifying the delay in seconds required to wait for the
2072     kernal reset routine before autostart.  (0: use builtin value for
2073     standard kernal) When tweaking this value start with 'large' values
2074     and then lower it, a value that is too small results in autostart
2075     not happening.  (all emulators except vsid).  (0..1000)
2076
20776.3.2 Autostart command-line options
2078------------------------------------
2079
2080All these command-line options are available for all emulators except
2081vsid.
2082
2083'-autostartprgdiskimage <Name>'
2084     Set disk image for autostart of PRG files ('AutostartPrgDiskImage')
2085     (all emulators except vsid).
2086
2087'-basicload'
2088     On autostart, load to BASIC start (without ',1')
2089     ('AutostartBasicLoad=1') (all emulators except vsid).
2090'+basicload'
2091     On autostart, load with ',1' ('AutostartBasicLoad=0') (all
2092     emulators except vsid).
2093
2094'-autostartwithcolon'
2095     On autostart, use the 'RUN' command with a colon, i.e., 'RUN:'
2096     ('AutostartRunWithColon=1').  (all emulators except vsid)
2097'+autostartwithcolon'
2098     On autostart, do not use the 'RUN' command with a colon; i.e.,
2099     'RUN' ('AutostartRunWithColon=0') (all emulators except vsid).
2100
2101'-autostart-handle-tde'
2102'+autostart-handle-tde'
2103     Handle/Do not handle True Drive Emulation on autostart
2104     ('AutostartHandleTrueDriveEmulation=1',
2105     'AutostartHandleTrueDriveEmulation=0') (all emulators except vsid).
2106
2107'-autostart-warp'
2108'+autostart-warp'
2109     Enable/disable warp mode during autostart ('AutostartWarp=1',
2110     'AutostartWarp=0') (all emulators except vsid).
2111
2112'-autostartprgmode <Mode>'
2113     Set autostart mode for PRG files ('AutostartPrgMode') (all
2114     emulators except vsid).  (0: virtual filesystem, 1: inject to RAM,
2115     2: copy to D64)
2116
2117'-autostart-delay-random'
2118'+autostart-delay-random'
2119     Enable/disable random delay on autostart ('AutostartDelayRandom')
2120     (all emulators except vsid).
2121
2122'-autostart-delay <seconds>'
2123     Set initial autostart delay in seconds for the kernal reset routine
2124     before autostart.  (0: use builtin value for standard kernal).
2125     When tweaking this value start with 'large' values and then lower
2126     it, a value that is too small results in autostart not happening.
2127     ('AutostartDelay') (all emulators except vsid).  (0..1000)
2128
2129
2130File: vice.info,  Node: Performance settings,  Next: Video settings,  Prev: Resources and command-line,  Up: Settings and resources
2131
21326.4 Performance settings
2133========================
2134
2135It is possible to control the emulation speed by using the "Maximum
2136speed" menu item in the right-button menu.  The default setting is
2137'100', which causes the emulation to never run faster than the real
2138machine.  A higher value allows the emulator to run faster, a lower one
2139may force it to run slower.  The setting "No limit" means to run as fast
2140as possible, without limiting speed.
2141
2142It is also possible to control the emulator's rate of frame update using
2143the "Refresh rate" setting; the value ranges from "1/1" (update 1/1 of
2144the frames of the real machine, that is 50 frames per second) to "1/10"
2145(update 1 every 10 frames) and can be changed via the "Refresh Rate"
2146submenu.  The "Auto" setting means to dynamically adapt the refresh rate
2147to the current speed of the host machine, making sure the maximum speed
2148specified by the via "Maxium speed" is always reached if possible.  In
2149any case, the refresh rate will never be worse than 1/10 if this option
2150is specified.
2151
2152Note that you cannot simultaneously specify "Auto" as the refresh rate
2153and "No limit" as the maximum speed..
2154
2155Moreover, a special "warp speed" mode is provided and can be toggled
2156with the "Enable Warp Mode" menu item.  If this mode is enabled, it will
2157cause the emulator to disable any speed limit, turn sound emulation off
2158and use a 1/10 refresh rate, so that it will run at the maximum possible
2159speed.
2160
2161* Menu:
2162
2163* Performance resources::
2164* Performance options::
2165
2166
2167File: vice.info,  Node: Performance resources,  Next: Performance options,  Prev: Performance settings,  Up: Performance settings
2168
21696.4.1 Performance resources
2170---------------------------
2171
2172'Speed'
2173     Integer specifying the maximum relative speed, as a percentage.
2174     '0' stands for "no limit".
2175
2176'RefreshRate'
2177     Integer specifying the refresh rate; a value of 'n' specifies a
2178     refresh rate of 1/'n'.  A value of '0' enables automatic frame
2179     skipping.
2180
2181'WarpMode'
2182     Booolean specifying whether "warp mode" is turned on or not.
2183
2184
2185File: vice.info,  Node: Performance options,  Prev: Performance resources,  Up: Performance settings
2186
21876.4.2 Performance command-line options
2188--------------------------------------
2189
2190'-speed <percent>'
2191     Specifies the maximum speed as a percentage.  '0' stands for "no
2192     limit" ('Speed').
2193
2194'-refresh <value>'
2195     Specifies refresh rate, a value of 'n' specifies a refresh rate of
2196     1/'n'.  A value of '0' enables automatic frame skipping
2197     ('RefreshRate').
2198
2199'-warp'
2200'+warp'
2201     Enable/Disable warp mode ('WarpMode=1', 'WarpMode=0').
2202
2203
2204File: vice.info,  Node: Video settings,  Next: Keyboard settings,  Prev: Performance settings,  Up: Settings and resources
2205
22066.5 Video settings
2207==================
2208
2209The following right-button menu items control the video output.  On
2210emulators that include two video chips (like 'x128') all options exist
2211twice, once for each chip.
2212
2213   * "Video Cache" enables a video cache that can speed up the emulation
2214     when little graphics activity is going on; it is especially useful
2215     when you run the emulator on a networked X terminal as it can
2216     reduce the network bandwidth required.  However, this setting can
2217     actually make the emulator slower when there is little graphics
2218     activity and the amount of work needed to maintain the cache is
2219     greater than the amount of work that would be wasted by not using
2220     it (if any).
2221
2222   * "Double Size" toggles "double-size mode", which makes the emulation
2223     window twice as big.  When emulating an 80-column PET, only the
2224     height is doubled, so that the aspect ratio is closer to that of
2225     the real thing.
2226
2227   * "Double Scan" toggles "double-scan mode", which causes the emulator
2228     to draw only odd lines when running in double-size mode (this saves
2229     some CPU time and also makes the emulation window look more like an
2230     old monitor).
2231
2232* Menu:
2233
2234* Video resources::
2235
22366.5.1 using openGL Rastersynchronization under X11
2237--------------------------------------------------
2238
2239Warning: To get full retro experience with synchronization to the
2240vertrical raster retrace messing with X11 modelines (resolution and
2241refresh frequencies) is necessary.  This description is a suggestion -
2242Follow this instructions at your own risk!
2243
2244The following was tested under Ubuntu Linux (8.04) featuring Xorg
2245Xserver 1:7.3+10ubuntu and mesa openGL including HW support (NVIDIA
2246driver) supporting glx version 1.4 supplying GLX_SGI_video_sync.
2247
2248It is assumed that this works also on other systems supporting the
2249required extensions.
2250
2251Preconditions:
2252   * openGL extension GLX_SGI_video_sync in your X11 setup.  The
2253     availability of the extension is checked at startup.
2254
2255   * XRandR extension to switch proper modes (50Hz for PAL, 60Hz for
2256     NTSC) is mandatory, proper modelines in your /etc/X11/xorg.conf
2257     must be present.
2258
2259If your systems lacks 50 or 60Hz modes you might try using 'gtf'
2260(typcally shipped with Xorg, xserver) - see related man page.
2261
2262You might need to add the output such as:
2263     # 800x600 # 50.00 Hz (GTF) hsync: 30.90 kHz; pclk: 31.15 MHz
2264     Modeline "800x600_50.00" 31.15 800 824 904 1008 600 601 604 618 -HSync +Vsync
2265to you Monitor Section of /etc/X11/xorg.conf and add the resolution to
2266the 'Screen' section.
2267
2268Sometimes some consistency checks within the display driver drop this
2269resolutions again.  To drop e.g.  the autodetection features in the
2270NVIDIA driver you might add 'Option "UseEDID" "FALSE"' in section
2271'Device'.
2272
2273XRandR cannot cope properly with the DynamicTwinView feature of the
2274proprietary nvidia driver.  You might need
2275
2276'Option "DynamicTwinView" "False"'
2277
2278to get proper results (in Screen or Device section of you xorg.conf).
2279
2280ATTENTION: Disabling such features might allow X11 to access your HW in
2281a way that it gets damaged!  You are at your own risk!
2282
2283Enable fullscreen (not necessary, but makes sense):
2284   * choose your preferred resolution/refresh XRandR Resolutions and
2285     enable XRandR as fullscreen device (50Hz/PAL or 60Hz/NTSC mode).
2286   * Activate fullscreen with 'Alt-D'.
2287   * choose 'OpenGL Rastersynchronization' in the video chip menu
2288     (VIC-II Settings, VIC Setting, etc.)
2289
2290Note that:
2291   * the current implementation is dropping synchronization silently in
2292     case the display frequency isn't aligned (50Hz for PAL, 60Hz for
2293     NTSC).
2294
2295   * On some systems the XRandR system isn't informed about desktop
2296     display frequency changes if you switch resolutions via hotkeys
2297     like CTRL-Alt-+ (Numpad), which is possible e.g.  with the X11
2298     implementation of Xorg.
2299
2300     In that case you can override/tell the current frequency via menu:
2301     Settings->VICII Settings->Desktop Refreshrate (e.g.  in x64) (this
2302     shouldn't be necessary if you use fullscreen via XRandR.
2303
2304
2305File: vice.info,  Node: Video resources,  Prev: Video settings,  Up: Video settings
2306
23076.5.2 Video resources
2308---------------------
2309
2310The following resources affect the screen emulation.
2311
2312'HwScalePossible'
2313     Boolean that indicates whether hardware scaling is possible or not.
2314
2315'openGL_sync'
2316     Boolean, if true enable Open-GL frame sync.
2317
2318'openGL_no_sync'
2319     Boolean, if true Open-GL sync is not available.
2320
2321'Speed'
2322     Integer specifying the maximum relative speed, as a percentage.
2323     '0' stands for "no limit".
2324
2325'RefreshRate'
2326     Integer specifying the refresh rate, a value of 'n' specifies a
2327     refresh rate of 1/'n'.  A value of '0' enables automatic frame
2328     skipping.
2329
2330'WarpMode'
2331     Boolean specifying whether "warp mode" is turned on or not.
2332
23336.5.3 Video command line options
2334--------------------------------
2335
2336'-hwscalepossible'
2337'+hwscalepossible'
2338     Enable/Disable the possibility of hardware scaling
2339     'HwScalePossible=1' or 'HwScalePossible=1').
2340
2341
2342File: vice.info,  Node: Keyboard settings,  Next: Control port settings,  Prev: Video settings,  Up: Settings and resources
2343
23446.6 Keyboard settings
2345=====================
2346
2347It is possible to specify whether the "positional" or "symbolic"
2348keyboard mapping should be used with the "Keyboard mapping type" submenu
2349(*note Keyboard emulation:: for an explanation of positional and
2350symbolic mappings).
2351
2352The keyboard settings submenu also allows you to:
2353
2354   * Load custom-made positional and symbolic keymap files ("Set
2355     symbolic keymap file" and "Set positional keymap file").
2356   * Dump the current keymap to a user-defined keymap file ("Dump to
2357     keymap file").
2358
2359* Menu:
2360
2361* Keyboard resources::
2362* Keyboard options::
2363
2364
2365File: vice.info,  Node: Keyboard resources,  Next: Keyboard options,  Prev: Keyboard settings,  Up: Keyboard settings
2366
23676.6.1 Keyboard resources
2368------------------------
2369
2370'KeymapIndex'
2371     Integer identifying which keymap is being used.  (0: symbolic, 1:
2372     positional, 2: symbolic (user), 3: positional (user)).
2373
2374'KeymapSymFile'
2375     String specifying the name of the keymap file for the symbolic
2376     mapping (*note Keyboard emulation:: (this will be set indirectly by
2377     changing 'KeymapIndex', 'KeyboardMapping' or 'KeyboardType').
2378
2379'KeymapPosFile'
2380     String specifying the name of the keymap file for the positional
2381     mapping (*note Keyboard emulation:: (this will be set indirectly by
2382     changing 'KeymapIndex', 'KeyboardMapping' or 'KeyboardType').
2383
2384'KeymapUserSymFile'
2385     String specifying the name of the user keymap file for symbolic
2386     mapping (*note Keyboard emulation::
2387
2388'KeymapUserPosFile'
2389     String specifying the name of the user keymap file for positional
2390     mapping (*note Keyboard emulation::
2391
2392'KeyboardMapping'
2393     Integer specifying the keyboard layout of the host.  (0: American
2394     1: British 2: German 3: Danish 4: Norwegian 5: Finnish 6: Italian).
2395
2396'KeyboardType'
2397     Integer specifying the emulated type of keyboard.  (machine
2398     specific, currently always 0 except for xpet: 0: Business (us) 1:
2399     Business (uk) 2: Business (de) 3: Business (jp) 4: Graphics (us)).
2400
2401
2402File: vice.info,  Node: Keyboard options,  Prev: Keyboard resources,  Up: Keyboard settings
2403
24046.6.2 Keyboard command-line options
2405-----------------------------------
2406
2407'-keymap <number>'
2408     Specifies which keymap is being used ('KeymapIndex' 0: symbolic, 1:
2409     positional, 2: symbolic (user), 3: positional (user)).
2410
2411'-symkeymap <Name>'
2412     Specify filename of the symbolic user keymap file
2413     ('KeymapUserSymFile').
2414
2415'-poskeymap <Name>'
2416     Specify filename of the positional user keymap file
2417     ('KeymapUserPosFile').
2418
2419'-keyboardmapping <number>'
2420     Specifies the keyboard layout of the host ('KeyboardMapping' 0:
2421     American 1: British 2: German 3: Danish 4: Norwegian 5: Finnish 6:
2422     Italian).
2423
2424'-keyboardtype <number>'
2425     Specifies the emulated type of keyboard ('KeyboardType' machine
2426     specific, currently always 0 except for xpet: 0: Business (us) 1:
2427     Business (uk) 2: Business (de) 3: Business (jp) 4: Graphics (us)).
2428
2429
2430File: vice.info,  Node: Control port settings,  Next: Sound settings,  Prev: Keyboard settings,  Up: Settings and resources
2431
2432The control port settings submenu allows you to select which control
2433port device is connected to a control port.
2434
2435* Menu:
2436
2437* Control port resources::
2438* Control port options::
2439
2440
2441File: vice.info,  Node: Control port resources,  Next: Control port options,  Prev: Control port settings,  Up: Control port settings
2442
24436.6.3 Control port resources
2444----------------------------
2445
2446'JoyPort1Device'
2447     Set the device attached to: control port 1 (x64, x64sc, x64dtv,
2448     xscpu64, x128, xcbm5x0, xplus4) control port (xvic).  (x64, x64sc,
2449     xscpu, x128, xcbm5x0, xvic: 0: None, 1: Joystick, 2: Paddles, 3:
2450     Mouse (1351), 4: Mouse (NEOS), 5: Mouse (Amiga), 6: Mouse (CX-22),
2451     7: Mouse (Atari ST), 8: Mouse (SmartMouse), 9: Mouse (Micromys),
2452     10: KoalaPad, 11: Light Pen (up trigger), 12: Light Pen (left
2453     trigger), 13: Datel Light Pen, 14: Magnum Light Phaser, 15: Stack
2454     Light Rifle, 16: Inkwell Light Pen, 17: Sampler (2bit)) (x64dtv,
2455     xplus4: 0: None, 1: Joystick, 6: Mouse (CX-22), 17: Sampler (2bit))
2456
2457'JoyPort2Device'
2458     Set the device attached to: control port 2 (x64, x64sc, x64dtv,
2459     xscpu64, x128, xcbm5x0, xplus4) (x64, x64sc, xscpu, x128, xcbm5x0:
2460     0: None, 1: Joystick, 2: Paddles, 3: Mouse (1351), 4: Mouse (NEOS),
2461     5: Mouse (Amiga), 6: Mouse (CX-22), 7: Mouse (Atari ST), 8: Mouse
2462     (SmartMouse), 9: Mouse (Micromys), 10: KoalaPad, 17: Sampler
2463     (2bit)) (x64dtv, xplus4: 0: None, 1: Joystick, 6: Mouse (CX-22),
2464     17: Sampler (2bit))
2465
2466'JoyPort3Device'
2467     Set the device attached to: userport joystick adapter port 1 (x64,
2468     x64sc, xscpu64, x128, xcbm2, xpet, xvic) userport joystick adapter
2469     port (x64dtv) sidcart control port (xplus4).  (x64, x64sc, x64dtv,
2470     xscpu, x128, xcbm2, xpet, xvic: 0: None, 1: Joystick, 6: Mouse
2471     (CX-22), 17: Sampler (2bit)) (xplus4: 0: None, 1: Joystick, 2:
2472     Paddles, 3: Mouse (1351), 4: Mouse (NEOS), 5: Mouse (Amiga), 6:
2473     Mouse (CX-22), 7: Mouse (Atari ST), 8: Mouse (SmartMouse), 9: Mouse
2474     (Micromys), 10: KoalaPad, 17: Sampler (2bit))
2475
2476'JoyPort4Device'
2477     Set the device attached to: userport joystick adapter port 2 (x64,
2478     x64sc, xscpu64, x128, xcbm2, xpet, xvic) (x64, x64sc, xscpu, x128,
2479     xcbm2, xpet, xvic: 0: None, 1: Joystick, 6: Mouse (CX-22), 17:
2480     Sampler (2bit))
2481
2482'JoyPort5Device'
2483     Set the device attached to: SidCart on the Plus4 (xplus4)
2484
2485'BBRTCSave'
2486     Enable saving of the battery-backed real time clock data.
2487
2488
2489File: vice.info,  Node: Control port options,  Prev: Control port resources,  Up: Control port settings
2490
24916.6.4 Control port command-line options
2492---------------------------------------
2493
2494'-controlport1device <device>'
2495     Set the device attached to: control port 1 (x64, x64sc, x64dtv,
2496     xscpu, x128, xcbm5x0, xplus4) control port (xvic)
2497     ('JoyPort1Device').  (x64, x64sc, xscpu, x128, xcbm5x0, xvic: 0:
2498     None, 1: Joystick, 2: Paddles, 3: Mouse (1351), 4: Mouse (NEOS), 5:
2499     Mouse (Amiga), 6: Mouse (CX-22), 7: Mouse (Atari ST), 8: Mouse
2500     (SmartMouse), 9: Mouse (Micromys), 10: KoalaPad, 11: Light Pen (up
2501     trigger), 12: Light Pen (left trigger), 13: Datel Light Pen, 14:
2502     Magnum Light Phaser, 15: Stack Light Rifle, 16: Inkwell Light Pen,
2503     17: Sampler (2bit)) (x64dtv, xplus4: 0: None, 1: Joystick, 6: Mouse
2504     (CX-22), 17: Sampler (2bit))
2505
2506'-controlport2device <device>'
2507     Set the device attached to: control port 2 (x64, x64sc, x64dtv,
2508     xscpu, x128, xcbm5x0, xplus4) ('JoyPort2Device').  (x64, x64sc,
2509     xscpu, x128, xcbm5x0: 0: None, 1: Joystick, 2: Paddles, 3: Mouse
2510     (1351), 4: Mouse (NEOS), 5: Mouse (Amiga), 6: Mouse (CX-22), 7:
2511     Mouse (Atari ST), 8: Mouse (SmartMouse), 9: Mouse (Micromys), 10:
2512     KoalaPad, 17: Sampler (2bit)) (x64dtv, xplus4: 0: None, 1:
2513     Joystick, 6: Mouse (CX-22), 17: Sampler (2bit))
2514
2515'-controlport3device <device>'
2516     Set the device attached to: userport joystick adapter port 1 (x64,
2517     x64sc, xscpu, x128, xcbm2, xpet, xvic) userport joystick adapter
2518     port (x64dtv) sidcart control port (xplus4) ('JoyPort3Device').
2519     (x64, x64sc, x64dtv, xscpu, x128, xcbm2, xpet, xvic: 0: None, 1:
2520     Joystick, 6: Mouse (CX-22), 17: Sampler (2bit)) (xplus4: 0: None,
2521     1: Joystick, 2: Paddles, 3: Mouse (1351), 4: Mouse (NEOS), 5: Mouse
2522     (Amiga), 6: Mouse (CX-22), 7: Mouse (Atari ST), 8: Mouse
2523     (SmartMouse), 9: Mouse (Micromys), 10: KoalaPad, 17: Sampler
2524     (2bit))
2525
2526'-controlport4device <device>'
2527     Set the device attached to: userport joystick adapter port 2 (x64,
2528     x64sc, xscpu, x128, xcbm2, xpet, xvic) ('JoyPort4Device').  (x64,
2529     x64sc, xscpu, x128, xcbm2, xpet, xvic: 0: None, 1: Joystick, 6:
2530     Mouse (CX-22), 17: Sampler (2bit))
2531
2532'-controlport5device <device>'
2533     Set the device attached to: SID cart joystick port (xplus4)
2534     ('JoyPort5Device').  (xplus4: 0: None, 1: Joystick, 2: Paddles, 3:
2535     Mouse (1351), 4: Mouse (NEOS), 5: Mouse (Amiga), 6: Mouse (CX-22),
2536     7: Mouse (Atari ST), 8: Mouse (SmartMouse), 9: Mouse (Micromys),
2537     10: KoalaPad, 17: Sampler (2bit), 18: Sampler (4bit), 19: BBRTC,
2538     20: Paperclip64 dongle, 21: Coplin Keypad, 22: Cardco Cardkey 1
2539     keypad, 23: Atari CX85 keypad, 24: RushWare Keypad, 25: Atari CX21
2540     keypad)
2541
2542'-bbrtcsave'
2543'+bbrtcsave'
2544     Enable/Disable saving of the battery-backed real time clock data
2545     ('BBRTCSave').
2546
25476.7 Joystick settings
2548=====================
2549
25506.7.1 Joystick resources
2551------------------------
2552
2553'JoyDevice1'
2554'JoyDevice2'
2555'JoyDevice3'
2556'JoyDevice4'
2557'JoyDevice5'
2558     Integer specifying which joystick device the emulator should use
2559     for joystick emulation for ports 1 - 5, respectively.  (0=None,
2560     1=Joystick 1, 2=Joystick 2, 4=Numpad, 8=Keyset 1, 16=Keyset 2 on
2561     OS/2) (0=None, 1=Numpad, 2=Keyset 1, 3=Keyset 2, 4=HID joystick 0,
2562     5=HID joystick 1 on Mac OS X) The available joysticks might differ
2563     depending on operating system and joystick support in the OS (Linux
2564     joystick module must be available for example).
2565
2566'JoyOpposite'
2567     Boolean, if true allow (usually impossible) bitcombinations for
2568     opposite directions.  (all emulators except vsid)
2569
2570'UserportJoy'
2571     Boolean to enable/disable extra joysticks (all emulators except
2572     xcbm5x0 and vsid).
2573
2574'UserportJoyType'
2575     Integer specifying the type of adapter used for the extra joysticks
2576     (all emulators except xcbm5x0 and vsid).  (0: Classical
2577     Games/Protovision, 1: PET, 2: Hummer, 3: OEM, 4: Digital
2578     Excess/Hitmen, 5: Kingsoft, 6: Starbyte) 4, 5 and 6 are x64, x64sc,
2579     xscpu64 and x128 only.
2580
2581'Mouse'
2582     Boolean, enables mouse emulation
2583
2584'SmartMouseRTCSave'
2585     Boolean, specified whether to save real time clock data for the
2586     SmartMouse
2587
2588'KeySet1NorthWest'
2589'KeySet1North'
2590'KeySet1NorthEast'
2591'KeySet1East'
2592'KeySet1SouthEast'
2593'KeySet1South'
2594'KeySet1SouthWest'
2595'KeySet1West'
2596'KeySet1Fire'
2597     Integers specifying the keycodes for keyset 1 (all emulators except
2598     vsid).
2599
2600'KeySet2NorthWest'
2601'KeySet2North'
2602'KeySet2NorthEast'
2603'KeySet2East'
2604'KeySet2SouthEast'
2605'KeySet2South'
2606'KeySet2SouthWest'
2607'KeySet2West'
2608'KeySet2Fire'
2609     Integers specifying the keycodes for keyset 2 (all emulators except
2610     vsid).
2611
2612'KeySetEnable'
2613     Boolean that specifies whether user defined keysets are enabled
2614     (all emulators except vsid).
2615
2616'KbdbufDelay'
2617     Integer specifying the additional keyboard delay.  (0: use default)
2618
26196.7.2 Joystick command-line options
2620-----------------------------------
2621
2622'-joydev1 <range>'
2623'-joydev2 <range>'
2624     Set the device for joystick emulation of port 1 and 2,
2625     respectively.  ('JoyDevice1', 'JoyDevice2').  The range for OS/2
2626     is, valid numbers in the range are 0, 1, 2, 4, 8 and 16.
2627'-extrajoydev1 <0-8>'
2628'-extrajoydev2 <0-8>'
2629'-extrajoydev3 <0-8>'
2630     Set device for extra joystick port 1, 2 and 3.
2631
2632'-joyopposite'
2633'+joyopposite'
2634     Enable/disable opposite joystick directions ('JoyOpposite=1',
2635     'JoyOpposite=0').  (all emulators except vsid)
2636
2637'-userportjoy'
2638'+userportjoy'
2639     Enable/disable extra joystick(s) ('UserportJoy=1',
2640     'UserportJoy=0').  (all emulators except xcbm5x0 and vsid).
2641
2642'-userportjoytype <Type>'
2643     Set extra joystick type ('UserportJoyType') (all emulators except
2644     xcbm5x0 and vsid).  (0: Classical Games/Protovision, 1: PET, 2:
2645     Hummer, 3: OEM, 4: Digital Excess/Hitmen, 5: Kingsoft, 6: Starbyte)
2646     4, 5 and 6 are x64, x64sc, xscpu64 and x128 only.
2647
2648'-mouse'
2649'+mouse'
2650     Enable/Disable mouse grab
2651
2652'-smartmousertcsave'
2653'+smartmousertcsave'
2654     Enable/Disable saving of the real time clock data for the
2655     SmartMouse
2656
2657'-keyset'
2658'+keyset'
2659     Enable/disable user defined keyset ('KeySetEnable=1',
2660     'KeySetEnable=0') (all emulators except vsid).
2661
2662'-keybuf-delay <value>'
2663     Set additional keyboard buffer delay ('KbdbufDelay').  (0: use
2664     default)
2665
2666
2667File: vice.info,  Node: Sound settings,  Next: Drive settings,  Prev: Control port settings,  Up: Settings and resources
2668
26696.8 Sound settings
2670==================
2671
2672The following menu items control sound output:
2673
2674   * "Enable sound playback" turns sound emulation on and off.
2675
2676   * "Sound synchronization" specifies the method for syncronizing the
2677     sound playback.  Possible settings are:
2678        * "Flexible", i.e., the audio renderer flexibly adds/removes
2679          samples to the output to smoothly adapt the playback to slight
2680          changes in the speed of the emulator.
2681        * "Adjusting" works like "flexible", but supports bigger
2682          differences in speed.  For example, if the emulation speed
2683          drops down from from 100% to 50%, audio slows down by the same
2684          amount too.
2685        * "Exact", instead, makes the audio renderer output always the
2686          same sounds you would hear from the real thing, without trying
2687          to adapt the ratio; to compensate the tolerances in speed,
2688          some extra frames will be skipped or added.
2689
2690   * "Sample rate" specifies the sampling frequency, ranging from 8000
2691     to 48000 Hz (not all the sound cards and/or sound drivers can
2692     support all the frequencies, so actually the nearest candidate will
2693     be chosen).
2694
2695   * "Buffer size" specifies the size of the audio buffer; the bigger
2696     the buffer, the longer the delay with which sounds are played.  You
2697     should pick the smallest value your machine can handle without
2698     problems.
2699
2700   * "Sound suspend time", will cause the audio playback to pause for
2701     the specified number of seconds whenever some clicking happens.  If
2702     "Keep going" is selected, no pausing is done.
2703
2704     The following menu items control sound input:
2705
2706   * "Sampler Device" specifies the host device/method used for
2707     sampling/sound input, currently portaudio (if linked in) and file
2708     methods are supported.
2709
2710   * "Sampler Gain" specifies the amount of gain (increase the input
2711     volume if above 100 or decrease the input volume if below 100) for
2712     the input of the sampler device.
2713
2714   * "Sampler File" specifies the name of the file to be uses as an
2715     input source for the 'file' method/device.
2716
2717* Menu:
2718
2719* Sound resources::
2720* Sound options::
2721
2722
2723File: vice.info,  Node: Sound resources,  Next: Sound options,  Prev: Sound settings,  Up: Sound settings
2724
27256.8.1 Sound resources
2726---------------------
2727
2728'Sound'
2729     Boolean specifying whether audio emulation is turned on.
2730
2731'SoundSpeedAdjustment'
2732     Integer specifying what speed adjustment method the audio renderer
2733     should use.  (0: flexible, 1: adjusting, 2: exact)
2734
2735'SoundSampleRate'
2736     Integer specifying the sampling frequency in Hz (not all the sound
2737     cards and/or sound drivers can support all the frequencies, so
2738     actually the nearest candidate will be chosen).  (8000..48000)
2739
2740'SoundBufferSize'
2741     Integer specifying the size of the audio buffer, in milliseconds.
2742
2743'SoundSuspendTime'
2744     Integer specifying the pause interval when audio underflows
2745     ("clicks") happen.  '0' means no pause is done.
2746
2747'SoundDeviceName'
2748     String specifying the audio driver.
2749
2750     Implemented drivers are:
2751
2752        * 'ahi', for the Amiga/Morphos/Aros sound driver.
2753        * 'aix', for the IBM AIX sound driver.
2754        * 'allegro', for the DOS Allegro sound driver.
2755        * 'alsa', for the linux ALSA sound driver.
2756        * 'arts', for the *nix ARTS sound driver.
2757        * 'beos', for the BeOS/Zeta/Haiku sound driver.
2758        * 'bsp', for the BeOS/Zeta/Haiku BeOS Media Kit sound driver.
2759        * 'coreaudio', for the Mac OS X sound driver ('SoundDeviceArg'
2760          specifies the audio device, default system output by default).
2761        * 'dart', for the OS/2 sound driver.
2762        * 'dummy', fully emulating the sound output chip(s), but not
2763          actually playing samples.
2764        * 'dx', for the Windows Direct-X sound driver.
2765        * 'hpux', for the HP-UX audio device (unfinished;
2766          'SoundDeviceArg' specifies the audio device, '/dev/audio' by
2767          default).
2768        * 'midas', for the DOS Midas sound driver.
2769        * 'pulse', for the Pulseaudio sound driver.
2770        * 'sdl', for the Simple DirectMedia Layer audio driver.
2771        * 'sgi', for the Silicon Graphics audio device ('SoundDeviceArg'
2772          specifies the audio device, '/dev/audio' by default);
2773        * 'speed', like 'dummy' but also calculating samples (mainly
2774          used to evaluate the speed of the sample generator);
2775        * 'sun', for the Solaris and NetBDS audio device (unfinished;
2776          'SoundDeviceArg' specifies the audio device, '/dev/audio' by
2777          default).
2778        * 'uss', for the Linux/FreeBSD Universal Sound System driver
2779          ('SoundDeviceArg' specifies the audio device, '/dev/dsp' by
2780          default);
2781        * 'wmm', for the Windows Multimedia Waveout sound device.
2782
2783     These drivers will actually be present only if the VICE
2784     configuration script detected the corresponding development support
2785     at the time of compilation.
2786
2787'SoundDeviceArg'
2788     String specifying an additional parameter for the audio driver (see
2789     'SoundDeviceName').
2790
2791'SoundRecordDeviceName'
2792     String specifying the driver used for sound recording.
2793
2794     Implemented drivers are:
2795
2796        * 'aiff', for the Apple Interchange File Format 16bit sound
2797          recorder driver.
2798        * 'dump', writing all the write accesses to the registers to a
2799          file (specified by 'SoundDeviceArg', default value is
2800          'vicesnd.sid');
2801        * 'fs', writing samples to a file (specified by
2802          'SoundDeviceArg'; default is 'vicesnd.raw'); 'iff', for the
2803          Amiga Interchange File Format (8SVX) 8bit sound recorder
2804          driver.
2805        * 'mp3', for the MP3 sound recorder driver.
2806        * 'flac', for the FLAC sound recorder driver.
2807        * 'ogg', for the ogg/vorbis sound recorder driver.
2808        * 'voc', for the Creative Voice (VOC) sound recorder driver.
2809        * 'wav', for the RIFF/WAV sound recorder driver.
2810
2811     These drivers will actually be present only if the VICE
2812     configuration script detected the corresponding development support
2813     at the time of compilation.
2814
2815'SoundRecordDeviceArg'
2816     String specifying additional arguments for sound recording.
2817
2818'SoundFragmentSize'
2819     Integer specifying the fragment size.  (0: very small, 1: small, 2:
2820     medium, 3: large, 4: very large)
2821
2822'SoundVolume'
2823     Integer specifying the master volume in percent.  (0..100)
2824
2825'SoundOutput'
2826     Integer specifying the type of sound output.  Output is selectable
2827     between 'system' (system decides to use mono or stereo output based
2828     on the presence of a stereo sid), 'always mono' (output is always
2829     mono, stereo streams are mixed into a mono stream) or 'always
2830     stereo' (output is always stereo, mono streams are multiplexed to a
2831     stereo stream).  (0: system, 1: mono, 2: stereo)
2832
2833'SamplerDevice'
2834     Integer specifying the device/method to be used for sound input.
2835     (0: sample file device, 1: PortAudio device)
2836
2837'SamplerGain'
2838     Integer specifying the gain to be used for sound input.  (>100
2839     increase input volume, <100: decrease input volume)
2840
2841'SampleName'
2842     String specifying the name of the file/sample to be used as the
2843     input source for the 'file' sampler device.
2844
2845
2846File: vice.info,  Node: Sound options,  Prev: Sound resources,  Up: Sound settings
2847
28486.8.2 Sound command-line options
2849--------------------------------
2850
2851'-sound'
2852'+sound'
2853     Enable/disable sound emulation ('Sound=1', 'Sound=0').
2854
2855'-soundsync <sync>'
2856     Specify the sound speed adjustment method ('SoundSpeedAdjustment').
2857     (0: flexible, 1: adjusting, 2: exact)
2858
2859'-soundrate <value>'
2860     Specify the sound playback sample rate ('SoundSampleRate').
2861     (8000..48000)
2862
2863'-soundoutput <output mode>'
2864     Sound output mode ('SoundOutput').  (0: system decides mono/stereo,
2865     1: always mono, 2: always stereo)
2866
2867'-soundbufsize <value>'
2868     Specify the size of the audio buffer in milliseconds
2869     ('SoundBufferSize').
2870
2871'-soundfragsize <value>'
2872     Set sound fragment size ('SoundFragmentSize').  (0: very small, 1:
2873     small, 2: medium, 3: large, 4: very large)
2874
2875'-sounddev <Name>'
2876     Specifies the name of the audio device ('SoundDeviceName').  (ahi,
2877     aix, allegro, alsa, arts, beos, bsp, coreaudio, dart, dummy, dx,
2878     hpux, midas, pulse, sdl, sgi, sun, uss, wmm)
2879
2880'-soundarg <args>'
2881     Specifies an additional parameter for the audio device
2882     ('SoundDeviceArg').
2883
2884'-soundrecdev <name>'
2885     Specify recording sound driver ('SoundRecordDeviceName').  (aiff,
2886     dump, fs, iff, mp3, flac, ogg, speed, voc, wav)
2887
2888'-soundrecarg <args>'
2889     Specify initialization parameters for recording sound driver
2890     ('SoundRecordDeviceArg').
2891
2892'-soundsuspend <seconds>'
2893     Specify the pause interval when audio underflows (clicks) happen.
2894     0 means no pause is done ('SoundSuspendTime').
2895
2896'-soundvolume <volume>'
2897     Specify the sound volume ('SoundVolume').  (0..100)
2898
2899'-samplerdev <device number>'
2900     Specify the device to use for audio input ('SamplerDevice').  (0:
2901     file device, 1: portaudio device)
2902
2903'-samplergain <percent>'
2904     Specify the amount of gain (volume increase/decrease) for the audio
2905     input device ('SamplerGain').  (0..200)
2906
2907'-samplename <name>'
2908     Specify the name of the file to use for the 'file' audio input
2909     device ('SampleFile').
2910
29116.9 Tape settings
2912=================
2913
2914These settings are used to control the hardware-level emulation of the
2915Tape drive.
2916
29176.9.1 Tape resources
2918--------------------
2919
2920'Datasette'
2921     Boolean specifying whether to emulate the datasette.
2922
2923'DatasetteResetWithCPU'
2924     Boolean specifying whether to reset (rewind) the tape when
2925     resetting the CPU.
2926
2927'DatasetteZeroGapDelay'
2928     Integer specifying the delay in cycles for a zero in the tap.
2929
2930'DatasetteSpeedTuning'
2931     Integer specifying the number of cycles added to each gap in the
2932     tap.
2933
2934'DatasetteTapeWobble'
2935     Integer specifying the maximum random number of cycles added to
2936     each gap in the tap.
2937
29386.9.2 Tape command-line options
2939-------------------------------
2940
2941'-datasette'
2942'+datasette'
2943     Enable/disable datasette emulation ('Datasette=1', 'Datasette=0').
2944
2945'-dsresetwithcpu'
2946'+dsresetwithcpu'
2947     Enable/disable automatic Datasette-Reset
2948     ('DatasetteResetWithCPU=1', 'DatasetteResetWithCPU=0').
2949
2950'-dszerogapdelay <value>'
2951     Set delay in cycles for a zero in the tap
2952     ('DatasetteZeroGapDelay').
2953
2954'-dsspeedtuning <value>'
2955     Set number of cycles added to each gap in the tap
2956     ('DatasetteSpeedTuning').
2957
2958'-dstapewobble <value>'
2959     Set maximum random number of cycles added to each gap in the tap
2960     ('DatasetteTapeWobble').
2961
2962
2963File: vice.info,  Node: Drive settings,  Next: Peripheral settings,  Prev: Sound settings,  Up: Settings and resources
2964
29656.10 Drive settings
2966===================
2967
2968These settings are used to control the hardware-level emulation of the
2969Disk drives.  When hardware-level emulation is turned on, only drives 8
2970and 9 are being emulated.
2971
2972The following settings affect both drives:
2973
2974   * "Enable true drive emulation" enables the (slow) hardware-level
2975     emulation of the drives for maximum compatibility.  This must be
2976     turned on for any of the following settings to have effect.
2977
2978   * "Drive sync factor" specifies the speed of the drive's CPU. This
2979     can be used to help loading certain programs that have trouble with
2980     the default PAL setting (for example, programs designed for NTSC
2981     machines).  The ratio is calculated as follows:
2982
2983          sync_factor = 65536 * clk_drive / clk_machine
2984
2985     where 'clk_drive' and 'clk_machine' are clock speeds in MHz.  The
2986     menu lets you choose between the PAL and NTSC values, and also lets
2987     you specify whatever value you want.  Be careful when changing it,
2988     though, because a wrong value can break things and even corrupt
2989     disk images.
2990
2991The following settings, instead, are specific of each drive:
2992
2993   * "Drive model" specifies the model of the drive being emulated.
2994     *Warning:* This will reset the drive.
2995
2996   * "Enable parallel cable" enables emulation of a SpeedDOS parallel
2997     cable; if you switch this option on and replace the original
2998     Commodore ROMs with SpeedDOS-compatible ones, you can speed up
2999     loading/saving times.
3000
3001   * "Idle method" specifies which method the drive emulation should use
3002     to save CPU cycles in the host CPU. There are three methods:
3003
3004        * "Skip cycles": Each time the serial line is accessed by the
3005          C64, the drive executes all the cycles since the last time it
3006          ran.  If the number of elapsed cycles is larger than a certain
3007          value, the drive discards part of them.
3008        * "Trap idle": The disk drive is still emulated upon serial line
3009          accesses as with the previous option, but it is also always
3010          emulated at the end of each screen frame.  If the drive gets
3011          into the DOS idle loop, only pending interrupts are emulated
3012          to save time.
3013        * "No traps": Like "Trap idle", but without any traps at all.
3014          So basically the drive works exactly as with the real thing,
3015          and nothing is done to reduce the power needs of the drive
3016          emulation.
3017
3018     The first option ("Skip cycles") is usually best for performance,
3019     as the drive is emulated as little as possible; on the other hand,
3020     you may notice sudden slowdowns (when the drive executes several
3021     cycles at once) and the LED status is never updated (because it
3022     would not be possible to do correctly so).  Moreover, if the drive
3023     tries to get in sync with the computer in some weird way and the
3024     computer does not access the serial line for a long time, it is
3025     possible that some cycles are discarded and the sync is lost.
3026     Notice that this hack will have no effect on performance if a
3027     program continuously reads from the IEC port, as the drive will
3028     have to be fully emulated in any case (some stupid programs do
3029     this, even when they don't actually need to use the drive).
3030
3031     The second option ("Trap idle") is usually a bit slower, as at
3032     least interrupts are always emulated, but ensures the LED state is
3033     always updated correctly and always keeps the drive and the
3034     computer in sync.  On the other hand, if a program installs a
3035     non-standard idle loop in the drive, the drive CPU has to be
3036     emulated even when not necessary and the global emulation speed is
3037     then _much_ slower.
3038
3039   * "40-track image support" specifies how 40-track ("extended") disk
3040     images should be supported.  There are three possible ways:
3041
3042        * "Never extend" never extends disk images at all (so if a
3043          program tries to write tracks beyond the 35th, it is not
3044          allowed to do so);
3045        * "Ask on extend" prompts the user as soon as a program tries to
3046          write tracks beyond the 35th, and the user can then choose
3047          whether he wants the disk image to be extended or not;
3048        * "Extend on access" simply extends the disk image as soon the
3049          program needs it, without prompting the user.
3050
3051* Menu:
3052
3053* Drive resources::
3054* Drive options::
3055
3056
3057File: vice.info,  Node: Drive resources,  Next: Drive options,  Prev: Drive settings,  Up: Drive settings
3058
30596.10.1 Drive resources
3060----------------------
3061
3062'DriveTrueEmulation'
3063     Boolean controlling whether the "true" drive emulation is turned
3064     on.
3065
3066'DriveSoundEmulation'
3067     Boolean controlling whether the drive noise emulation is turned on
3068     (all emulators except vsid).
3069
3070'DriveSoundEmulationVolume'
3071     Integer specifying the volume of the drive noise emulation (all
3072     emulators except vsid).  (0..4000)
3073
3074'Drive8Type'
3075'Drive9Type'
3076'Drive10Type'
3077'Drive11Type'
3078     Integers specifying the model number for drives 8 to 11.  Possible
3079     values are '1541' [all emulators except xcbm2, xcbm5x0, xpet and
3080     vsid], '1542' (1541-II) [all emulators except xcbm2, xcbm5x0, xpet
3081     and vsid], '1570' [all emulators except xcbm2, xcbm5x0, xpet and
3082     vsid], '1571' [all emulators except xcbm2, xcbm5x0, xpet and vsid],
3083     '1573' (1571CR) [x128 only], '1551' [xplus4 only], '1581' [all
3084     emulators except xcbm2, xcbm5x0, xpet and vsid], '1001' [all
3085     emulators except x64dtv, xplus4 and vsid], '2000' [all emulators
3086     except xcbm2, xcbm5x0, xpet and vsid], '2031' [all emulators except
3087     x64dtv, xplus4 and vsid], '2040' [all emulators except x64dtv,
3088     xplus4 and vsid], '3040' [all emulators except x64dtv, xplus4 and
3089     vsid], '4000' [all emulators except xcbm2, xcbm5x0, xpet and vsid],
3090     '4040' [all emulators except x64dtv, xplus4 and vsid], '8050' [all
3091     emulators except x64dtv, xplus4 and vsid], '8250' [all emulators
3092     except x64dtv, xplus4 and vsid].
3093
3094'Drive8RTCSave'
3095     Integer specifying whether the RTC data of drive 8 should be saved
3096     when changed or not (drive type 2000/4000 only).
3097
3098'Drive9RTCSave'
3099     Integer specifying whether the RTC data of drive 9 should be saved
3100     when changed or not (drive type 2000/4000 only).
3101
3102'Drive10RTCSave'
3103     Integer specifying whether the RTC data of drive 10 should be saved
3104     when changed or not (drive type 2000/4000 only).
3105
3106'Drive11RTCSave'
3107     Integer specifying whether the RTC data of drive 11 should be saved
3108     when changed or not (drive type 2000/4000 only).
3109
3110'Drive8ParallelCable'
3111'Drive9ParallelCable'
3112'Drive10ParallelCable'
3113'Drive11ParallelCable'
3114     integers controlling what type of parallel cable is emulated for
3115     drives 8 to 11 (x64, x64sc, xscpu64, x128 and xplus4 only).  x64,
3116     x64sc, xscpu64, x128: (0: None, 1: Standard, 2: Dolphin DOS 3, 3:
3117     Formel64) xplus4: (0: None, 1: Standard)
3118
3119'Drive8ProfDOS'
3120'Drive9ProfDOS'
3121'Drive10ProfDOS'
3122'Drive11ProfDOS'
3123     Booleans controlling whether Professional DOS is emulated or not
3124     for drives 8 to 11 (x64, x64sc, xscpu64 and x128 only).
3125
3126'Drive8SuperCard'
3127'Drive9SuperCard'
3128'Drive10SuperCard'
3129'Drive11SuperCard'
3130     Booleans controlling whether Super Card is emulated or not for
3131     drives 8 to 11 (x64, x64sc, xscpu64 and x128 only).
3132
3133'Drive8StarDos'
3134'Drive9StarDos'
3135'Drive10StarDos'
3136'Drive11StarDos'
3137     Booleans controlling whether StarDOS is emulated or not for drives
3138     8 to 11 (x64, x64sc, xscpu64 and x128 only).
3139
3140'Drive8RAM2000'
3141'Drive8RAM4000'
3142'Drive8RAM6000'
3143'Drive8RAM8000'
3144'Drive8RAMA000'
3145'Drive9RAM2000'
3146'Drive9RAM4000'
3147'Drive9RAM6000'
3148'Drive9RAM8000'
3149'Drive9RAMA000'
3150'Drive10RAM2000'
3151'Drive10RAM4000'
3152'Drive10RAM6000'
3153'Drive10RAM8000'
3154'Drive10RAMA000'
3155'Drive11RAM2000'
3156'Drive11RAM4000'
3157'Drive11RAM6000'
3158'Drive11RAM8000'
3159'Drive11RAMA000'
3160     Booleans controlling whether a RAM block is emulated at the
3161     respective block or not for drives 8 to 11 respectively.
3162
3163'Drive8ExtendImagePolicy'
3164'Drive9ExtendImagePolicy'
3165'Drive10ExtendImagePolicy'
3166'Drive11ExtendImagePolicy'
3167     Integer specifying the policy for 40-track support for drives 8 to
3168     11.  (0: never extend, 1: ask on extend, 2: extend on access)
3169
3170'Drive8IdleMethod'
3171'Drive9IdleMethod'
3172'Drive10IdleMethod'
3173'Drive11IdleMethod'
3174     Integers specifying the idling method for the drive CPU. *Note
3175     Drive settings::.  (0: none, 1: skip cycles, 2: trap idle)
3176
3177'Drive8RPM'
3178'Drive9RPM'
3179'Drive10RPM'
3180'Drive11RPM'
3181     Integers specifying the rotation speed of the drive, multiplied by
3182     100, so 300rpm equals 30000.
3183
3184'Drive8Wobble'
3185'Drive9Wobble'
3186'Drive10Wobble'
3187'Drive11Wobble'
3188     Integers specifying the random deviation of the rotation speed,
3189     multiplied by 100 so 100 equals +/- 1rpm.
3190
3191'DosName1540'
3192'DosName1541'
3193'DosName1541ii'
3194'DosName1570'
3195'DosName1571'
3196'DosName1581'
3197'DosName2000'
3198'DosName4000'
3199     Strings specifying the names of the ROM images for the drive
3200     emulation.  (all emulators except xcbm2, xcbm5x0, xpet and vsid)
3201
3202'DosName1551'
3203     String specifying the name of the ROM image for the drive
3204     emulation.  (xplus4 only)
3205
3206'DosName1571cr'
3207     String specifying the name of the ROM image for the drive
3208     emulation.  (x128 only)
3209
3210'DosName2031'
3211'DosName2040'
3212'DosName3040'
3213'DosName4040'
3214'DosName1001'
3215     Strings specifying the names of the ROM images for the drive
3216     emulation.  (all emulators except x64dtv, xplus4 and vsid)
3217
3218'DriveProfDOS1571Name'
3219     String specifying the filename of the 1571 professional DOS ROM
3220     image (x64, x64sc, xscpu64 and x128 only).
3221
3222'DriveSuperCardName'
3223     String specifying the filename of the Super Card ROM image (x64,
3224     x64sc, xscpu64 and x128 only).
3225
3226'DriveStarDosName'
3227     String specifying the filename of the image of the lower half of
3228     the StarDOS ROM (x64, x64sc, xscpu64 and x128 only).
3229
3230'RawDriveDriver'
3231     String specifying the name of the device to be used for raw block
3232     access.
3233
3234
3235File: vice.info,  Node: Drive options,  Prev: Drive resources,  Up: Drive settings
3236
32376.10.2 Drive command-line options
3238---------------------------------
3239
3240'-truedrive'
3241'+truedrive'
3242     Enable/disable true drive emulation ('DriveTrueEmulation=1',
3243     'DriveTrueEmulation=0').
3244
3245'-drivesound'
3246'+drivesound'
3247     Enable/disable drive sound emulation ('DriveSoundEmulation=1',
3248     'DriveSoundEmulation=0') (all emulators except vsid).
3249
3250'-drivesoundvolume <Volume>'
3251     Set the volume of the drive sound emulation
3252     ('DriveSoundEmulationVolume=1', 'DriveSoundEmulationVolume=0') (all
3253     emulators except vsid).
3254
3255'-drive8type <Type>'
3256'-drive9type <Type>'
3257'-drive10type <Type>'
3258'-drive11type <Type>'
3259     Specifies the drive types for drives 8-11, respectively.  Possible
3260     values for 'TYPE' are '1541' [all emulators except xcbm2, xcbm5x0,
3261     xpet and vsid], '1542' (meaning 1541-II) [all emulators except
3262     xcbm2, xcbm5x0, xpet and vsid], '1551' [xplus4 only], '1570' [all
3263     emulators except xcbm2, xcbm5x0, xpet and vsid], '1571' [all
3264     emulators except xcbm2, xcbm5x0, xpet and vsid], '1573' (meaning
3265     1571cr) [x128 only], '1581' [all emulators except xcbm2, xcbm5x0,
3266     xpet and vsid], '2000' [all emulators except xcbm2, xcbm5x0, xpet
3267     and vsid], '4000' [all emulators except xcbm2, xcbm5x0, xpet and
3268     vsid], '2031' [all emulators except x64dtv, xplus4 and vsid],
3269     '2040' [all emulators except x64dtv, xplus4 and vsid], '3040' [all
3270     emulators except x64dtv, xplus4 and vsid], '4040' [all emulators
3271     except x64dtv, xplus4 and vsid], '1001' [all emulators except
3272     x64dtv, xplus4 and vsid], '8050' [all emulators except x64dtv,
3273     xplus4 and vsid] and '8250' [all emulators except x64dtv, xplus4
3274     and vsid].
3275
3276'-drive8rtcsave'
3277'-drive8rtcsave'
3278     Enable/disable the saving of the RTC data for drive 8 when changed
3279     (drive type 2000/4000 only) ('Drive8RTCSave=1', 'Drive8RTCSave=0').
3280
3281'-drive9rtcsave'
3282'-drive9rtcsave'
3283     Enable/disable the saving of the RTC data for drive 9 when changed
3284     (drive type 2000/4000 only) ('Drive9RTCSave=1', 'Drive9RTCSave=0').
3285
3286'-drive10rtcsave'
3287'-drive10rtcsave'
3288     Enable/disable the saving of the RTC data for drive 10 when changed
3289     (drive type 2000/4000 only) ('Drive10RTCSave=1',
3290     'Drive10RTCSave=0').
3291
3292'-drive11rtcsave'
3293'-drive11rtcsave'
3294     Enable/disable the saving of the RTC data for drive 11 when changed
3295     (drive type 2000/4000 only) ('Drive11RTCSave=1',
3296     'Drive11RTCSave=0').
3297
3298'-parallel8 <type>'
3299'-parallel9 <type>'
3300'-parallel10 <type>'
3301'-parallel11 <type>'
3302     Set parallel cable type for drives 8-11 respectively
3303     ('Drive8ParallelCable', 'Drive9ParallelCable',
3304     'Drive10ParallelCable', 'Drive11ParallelCable') (x64, x64sc,
3305     xscpu64, x128 and xplus4 only).  x64, x64sc, xscpu64, x128: (0:
3306     None, 1: Standard, 2: Professional DOS, 3: Formel64) xplus4: (0:
3307     None, 1: Standard)
3308
3309'-drive8idle <method>'
3310'-drive9idle <method>'
3311'-drive10idle <method>'
3312'-drive11idle <method>'
3313     Specifies <method> as the idling method for drives 8-11
3314     respectively ('Drive8IdleMethod', 'Drive9IdleMethod',
3315     'Drive10IdleMethod'), 'Drive11IdleMethod').  (0: none, 1: skip
3316     cycles, 2: trap idle)
3317
3318'-drive8extend <method>'
3319'-drive9extend <method>'
3320'-drive10extend <method>'
3321'-drive11extend <method>'
3322     Specifies <method> as the track 40 extend policy in drives 8-11
3323     respectively ('Drive8ExtendImagePolicy', 'Drive9ExtendImagePolicy',
3324     'Drive10ExtendImagePolicy', 'Drive11ExtendImagePolicy').  (0: never
3325     extend, 1: ask on extend, 2: extend on access)
3326
3327'-drive8rpm <rpm>'
3328'-drive9rpm <rpm>'
3329'-drive10rpm <rpm>'
3330'-drive11rpm <rpm>'
3331     Specifies the rotation speed of the drive, multiplied by 100 so
3332     300rpm equal 30000.
3333
3334'-drive8wobble <wobble>'
3335'-drive9wobble <wobble>'
3336'-drive10wobble <wobble>'
3337'-drive11wobble <wobble>'
3338     Specifies random amount of wobble added to the rotation speed.
3339
3340'-dos1540 <name>'
3341     Specify the ROM name for the 1540 emulation ('DosName1540').  (all
3342     emulators except xcbm2, xcbm5x0, xpet and vsid)
3343
3344'-dos1541 <name>'
3345     Specify the ROM name for the 1541 emulation ('DosName1541').  (all
3346     emulators except xcbm2, xcbm5x0, xpet and vsid)
3347
3348'-dos1541II <name>'
3349     Specify the ROM name for the 1541-II emulation ('DosName1541ii').
3350     (all emulators except xcbm2, xcbm5x0, xpet and vsid)
3351
3352'-dos1551 <name>'
3353     Specify the ROM name for the 1551 emulation ('DosName1551').
3354     (xplus4 only)
3355
3356'-dos1570 <name>'
3357     Specify the ROM name for the 1570 emulation ('DosName1570').  (all
3358     emulators except xcbm2, xcbm5x0, xpet and vsid)
3359
3360'-dos1571 <name>'
3361     Specify the ROM name for the 1571 emulation ('DosName1571').  (all
3362     emulators except xcbm2, xcbm5x0, xpet and vsid)
3363
3364'-dos1571cr <name>'
3365     Specify the ROM name for the 1571 emulation ('DosName1571CR').
3366     (x128 only)
3367
3368'-dos1581 <name>'
3369     Specify the ROM name for the 1581 emulation ('DosName1581').  (all
3370     emulators except xcbm2, xcbm5x0, xpet and vsid)
3371
3372'-dos2000 <name>'
3373     Specify the ROM name for the FD2000 emulation ('DosName2000').
3374     (all emulators except xcbm2, xcbm5x0, xpet and vsid)
3375
3376'-dos4000 <name>'
3377     Specify the ROM name for the FD4000 emulation ('DosName4000').
3378     (all emulators except xcbm2, xcbm5x0, xpet and vsid)
3379
3380'-dos2031 <name>'
3381     Specify the ROM name for the 2031 emulation ('DosName2031').  (all
3382     emulators except x64dtv, xplus4 and vsid)
3383
3384'-dos2040 <name>'
3385     Specify the ROM name for the 2040 emulation ('DosName2040').  (all
3386     emulators except x64dtv, xplus4 and vsid)
3387
3388'-dos3040 <name>'
3389     Specify the ROM name for the 3040 emulation ('DosName3040').  (all
3390     emulators except x64dtv, xplus4 and vsid)
3391
3392'-dos4040 <name>'
3393     Specify the ROM name for the 4040 emulation ('DosName4040').  (all
3394     emulators except x64dtv, xplus4 and vsid)
3395
3396'-dos1001 <name>'
3397     Specify the ROM name for the 1001, 8050 and 8250 emulations
3398     ('DosName1001').  (all emulators except x64dtv, xplus4 and vsid)
3399
3400'-drive8ram2000, +drive8ram2000'
3401     Enable/disable 8KB RAM expansion at $2000-$3FFF for drive 8
3402     ('Drive8RAM2000=1', 'Drive8RAM2000=0').
3403
3404'-drive9ram2000, +drive9ram2000'
3405     Enable/disable 8KB RAM expansion at $2000-$3FFF for drive 9
3406     ('Drive9RAM2000=1', 'Drive9RAM2000=0').
3407
3408'-drive10ram2000, +drive10ram2000'
3409     Enable/disable 8KB RAM expansion at $2000-$3FFF for drive 10
3410     ('Drive10RAM2000=1', 'Drive10RAM2000=0').
3411
3412'-drive11ram2000, +drive11ram2000'
3413     Enable/disable 8KB RAM expansion at $2000-$3FFF for drive 11
3414     ('Drive11RAM2000=1', 'Drive11RAM2000=0').
3415
3416'-drive8ram4000, +drive8ram4000'
3417     Enable/disable 8KB RAM expansion at $4000-$5FFF for drive 8
3418     ('Drive8RAM4000=1', 'Drive8RAM4000=0').
3419
3420'-drive9ram4000, +drive9ram4000'
3421     Enable/disable 8KB RAM expansion at $4000-$5FFF for drive 9
3422     ('Drive9RAM4000=1', 'Drive9RAM4000=0').
3423
3424'-drive10ram4000, +drive10ram4000'
3425     Enable/disable 8KB RAM expansion at $4000-$5FFF for drive 10
3426     ('Drive10RAM4000=1', 'Drive10RAM4000=0').
3427
3428'-drive11ram4000, +drive11ram4000'
3429     Enable/disable 8KB RAM expansion at $4000-$5FFF for drive 11
3430     ('Drive11RAM4000=1', 'Drive11RAM4000=0').
3431
3432'-drive8ram6000, +drive8ram6000'
3433     Enable/disable 8KB RAM expansion at $6000-$7FFF for drive 8
3434     ('Drive8RAM6000=1', 'Drive8RAM6000=0').
3435
3436'-drive9ram6000, +drive9ram6000'
3437     Enable/disable 8KB RAM expansion at $6000-$7FFF for drive 9
3438     ('Drive9RAM6000=1', 'Drive9RAM6000=0').
3439
3440'-drive10ram6000, +drive10ram6000'
3441     Enable/disable 8KB RAM expansion at $6000-$7FFF for drive 10
3442     ('Drive10RAM6000=1', 'Drive10RAM6000=0').
3443
3444'-drive11ram6000, +drive11ram6000'
3445     Enable/disable 8KB RAM expansion at $6000-$7FFF for drive 11
3446     ('Drive11RAM6000=1', 'Drive11RAM6000=0').
3447
3448'-drive8ram8000, +drive8ram8000'
3449     Enable/disable 8KB RAM expansion at $8000-$9FFF for drive 8
3450     ('Drive8RAM8000=1', 'Drive8RAM8000=0').
3451
3452'-drive9ram8000, +drive9ram8000'
3453     Enable/disable 8KB RAM expansion at $8000-$9FFF for drive 9
3454     ('Drive9RAM8000=1', 'Drive9RAM8000=0').
3455
3456'-drive10ram8000, +drive10ram8000'
3457     Enable/disable 8KB RAM expansion at $8000-$9FFF for drive 10
3458     ('Drive10RAM8000=1', 'Drive10RAM8000=0').
3459
3460'-drive11ram8000, +drive11ram8000'
3461     Enable/disable 8KB RAM expansion at $8000-$9FFF for drive 11
3462     ('Drive11RAM8000=1', 'Drive11RAM8000=0').
3463
3464'-drive8rama000, +drive8rama000'
3465     Enable/disable 8KB RAM expansion at $A000-$BFFF for drive 8
3466     ('Drive8RAMA000=1', 'Drive8RAMA000=0').
3467
3468'-drive9rama000, +drive9rama000'
3469     Enable/disable 8KB RAM expansion at $A000-$BFFF for drive 9
3470     ('Drive9RAMA000=1', 'Drive9RAMA000=0').
3471
3472'-drive10rama000, +drive10rama000'
3473     Enable/disable 8KB RAM expansion at $A000-$BFFF for drive 10
3474     ('Drive10RAMA000=1', 'Drive10RAMA000=0').
3475
3476'-drive11rama000, +drive11rama000'
3477     Enable/disable 8KB RAM expansion at $A000-$BFFF for drive 11
3478     ('Drive11RAMA000=1', 'Drive11RAMA000=0').
3479
3480'-drive8profdos'
3481'+drive8profdos'
3482     Enable/disable Professional DOS for drive 8 ('Drive8ProfDOS=1',
3483     'Drive8ProfDOS=0') (x64, x64sc, xscpu64 and x128 only).
3484
3485'-drive9profdos'
3486'+drive9profdos'
3487     Enable/disable Professional DOS for drive 9 ('Drive9ProfDOS=1',
3488     'Drive9ProfDOS=0') (x64, x64sc, xscpu64 and x128 only).
3489
3490'-drive10profdos'
3491'+drive10profdos'
3492     Enable/disable Professional DOS for drive 10 ('Drive10ProfDOS=1',
3493     'Drive10ProfDOS=0') (x64, x64sc, xscpu64 and x128 only).
3494
3495'-drive11profdos'
3496'+drive11profdos'
3497     Enable/disable Professional DOS for drive 11 ('Drive11ProfDOS=1',
3498     'Drive11ProfDOS=0') (x64, x64sc, xscpu64 and x128 only).
3499
3500'-profdos1571 <name>'
3501     Specify name of Professional DOS 1571 ROM image
3502     ('DriveProfDOS1571Name') (x64, x64sc, xscpu64 and x128).
3503
3504'-drive8supercard'
3505'+drive8supercard'
3506     Enable/disable Super Card for drive 8 ('Drive8SuperCard=1',
3507     'Drive8SuperCard=0') (x64, x64sc, xscpu64 and x128 only).
3508
3509'-drive9supercard'
3510'+drive9supercard'
3511     Enable/disable Super Card for drive 9 ('Drive9SuperCard=1',
3512     'Drive9SuperCard=0') (x64, x64sc, xscpu64 and x128 only).
3513
3514'-drive10supercard'
3515'+drive10supercard'
3516     Enable/disable Super Card for drive 10 ('Drive10SuperCard=1',
3517     'Drive10SuperCard=0') (x64, x64sc, xscpu64 and x128 only).
3518
3519'-drive11supercard'
3520'+drive11supercard'
3521     Enable/disable Super Card for drive 11 ('Drive11SuperCard=1',
3522     'Drive11SuperCard=0') (x64, x64sc, xscpu64 and x128 only).
3523
3524'-supercard <name>'
3525     Specify name of Super Card ROM image ('DriveSuperCardName') (x64,
3526     x64sc, xscpu64 and x128 only).
3527
3528'-drive8stardos'
3529'+drive8stardos'
3530     Enable/disable StarDOS for drive 8 ('Drive8StarDos=1',
3531     'Drive8StarDos=0') (x64, x64sc, xscpu64 and x128 only).
3532
3533'-drive9stardos'
3534'+drive9stardos'
3535     Enable/disable StarDOS for drive 9 ('Drive9StarDos=1',
3536     'Drive9StarDos=0') (x64, x64sc, xscpu64 and x128 only).
3537
3538'-drive10stardos'
3539'+drive10stardos'
3540     Enable/disable StarDOS for drive 10 ('Drive10StarDos=1',
3541     'Drive10StarDos=0') (x64, x64sc, xscpu64 and x128 only).
3542
3543'-drive11stardos'
3544'+drive11stardos'
3545     Enable/disable StarDOS for drive 11 ('Drive11StarDos=1',
3546     'Drive11StarDos=0') (x64, x64sc, xscpu64 and x128 only).
3547
3548'-stardos <name>'
3549     Specify name of the image of the lower half of the StarDOS ROM.
3550     (Attach the upper half using the -dos1541 option.)
3551     ('DriveStarDosName') (x64, x64sc, xscpu64 and x128 only).
3552
3553'-rawdrive <name>'
3554     Set raw drive device name ('RawDriveDriver')
3555
3556
3557File: vice.info,  Node: Peripheral settings,  Next: RS232 settings,  Prev: Drive settings,  Up: Settings and resources
3558
35596.11 Peripheral settings
3560========================
3561
3562VICE is able to support some special peripherals:
3563
3564   * "file system devices", pseudo-drives accessing the Unix file
3565     system;
3566   * printers.
3567
3568These features depend on some "kernal traps" that replace the existing
3569routines in the original Commodore operating system with custom-made C
3570routines.
3571
3572* Menu:
3573
3574* File system device settings::  Settings for file system devices.
3575* Printer settings::            Settings for emulating a printer.
3576* No kernal traps::             Disabling kernal traps completely.
3577
3578
3579File: vice.info,  Node: File system device settings,  Next: Printer settings,  Prev: Peripheral settings,  Up: Peripheral settings
3580
35816.11.1 Settings for file system devices
3582---------------------------------------
3583
3584These settings deal with the drive-like peripherals connected to the bus
3585of the emulated machine.  The first setting relates to the parallel
3586IEEE488 interface.  With this interface a special engine is used to
3587listen to the bus lines to translates them to the filesystem code.  Thus
3588the PET will always detect a drive for example, but it can also use
3589drives 10 and 11 even together with true disk drive emulation.
3590
3591   * "Enable virtual devices", enables the peripheral access via the
3592     fast disk emulation (either kernal traps or IEEE488 interface).
3593     Both, filesystem and disk image access via fast drive emulation,
3594     are affected.
3595
3596Four peripherals, numbered from 8 to 11, are accessible; each of them
3597provides the following settings:
3598
3599   * "File system access", if enabled, allows the device to emulate a
3600     drive accessing a file system directory; note that when a disk
3601     image is attached to the same drive, the directory is no longer
3602     visible and the attached disk is used instead.
3603   * "File system directory" specifies the directory to be accessed by
3604     the drive.
3605   * "Convert P00 file names", if enabled, allows access to P00 files
3606     using their built-in name instead of the Unix one.
3607   * "Create P00 files on save", if enabled, creates P00 files (instead
3608     of raw CBM files) whenever a program creates a file.
3609
3610Note that, by default, all drives create P00 files on save.
3611
3612* Menu:
3613
3614* File system device resources::
3615* File system device options::
3616
3617
3618File: vice.info,  Node: File system device resources,  Next: File system device options,  Prev: File system device settings,  Up: File system device settings
3619
36206.11.1.1 Resources for file system devices
3621..........................................
3622
3623'IECDevice8'
3624'IECDevice9'
3625'IECDevice10'
3626'IECDevice11'
3627     Booleans that specify whether IEC device emulation for device #8 to
3628     #11 is enabled.
3629
3630'FileSystemDevice8'
3631'FileSystemDevice9'
3632'FileSystemDevice10'
3633'FileSystemDevice11'
3634     Integers specifying the device type for device 8-11 respectively
3635     (all emulators except vsid).  (0: None, 1: Filesystem, 2: OpenCBM
3636     (Real), 3: Block Device (Raw))
3637
3638'FSDevice8ConvertP00'
3639'FSDevice9ConvertP00'
3640'FSDevice10ConvertP00'
3641'FSDevice11ConvertP00'
3642     Booleans specifying whether on-read support for P00 files is
3643     enabled on drives 8, 9, 10 and 11 respectively (all emulators
3644     except vsid).
3645
3646'FSDevice8SaveP00'
3647'FSDevice9SaveP00'
3648'FSDevice10SaveP00'
3649'FSDevice11SaveP00'
3650     Booleans specifying whether the drives should create P00 files
3651     instead of plain CBM ones for drives 8, 9, 10 and 11 respectively
3652     (all emulators except vsid).
3653
3654'FSDevice8HideCBMFiles'
3655'FSDevice9HideCBMFiles'
3656'FSDevice10HideCBMFiles'
3657'FSDevice11HideCBMFiles'
3658     Booleans specifying whether non-P00 files should be invisible for
3659     drives 8, 9, 10 and 11 respectively (all emulators except vsid).
3660
3661'FSDevice8Dir'
3662'FSDevice9Dir'
3663'FSDevice10Dir'
3664'FSDevice11Dir'
3665     Strings specifying the directories to which drives 8, 9, 10 and 11
3666     have access (all emulators except vsid).
3667
3668
3669File: vice.info,  Node: File system device options,  Prev: File system device resources,  Up: File system device settings
3670
36716.11.1.2 Command-line options for file system devices
3672.....................................................
3673
3674'-iecdevice8'
3675'+iecdevice8'
3676     Enable/disable IEC device emulation for device #8 ('IECDevice8=1',
3677     'IECDevice8=0').
3678
3679'-iecdevice9'
3680'+iecdevice9'
3681     Enable/disable IEC device emulation for device #9 ('IECDevice9=1',
3682     'IECDevice9=0').
3683
3684'-iecdevice10'
3685'+iecdevice10'
3686     Enable/disable IEC device emulation for device #10
3687     ('IECDevice10=1', 'IECDevice10=0').
3688
3689'-iecdevice11'
3690'+iecdevice11'
3691     Enable/disable IEC device emulation for device #11
3692     ('IECDevice11=1', 'IECDevice11=0').
3693
3694'-device8 <type>'
3695'-device9 <type>'
3696'-device10 <type>'
3697'-device11 <type>'
3698     Set device type for device 8-11 respectively ('FileSystemDevice8',
3699     'FileSystemDevice9', 'FileSystemDevice10', 'FileSystemDevice11')
3700     (all emulators except vsid).  (0: None, 1: Filesystem, 2: OpenCBM
3701     (Real), 3: Block device (Raw))
3702
3703'-fs8 <Name>'
3704'-fs9 <Name>'
3705'-fs10 <Name>'
3706'-fs11 <Name>'
3707     Specify the paths for the file system access on drives 8, 9, 10 and
3708     11, respectively ('FSDevice8Dir', 'FSDevice9Dir', 'FSDevice10Dir'
3709     and 'FSDevice11Dir') (all emulators except vsid).
3710
3711'-fs8convertp00'
3712'+fs8convertp00'
3713     Enable/disable on-read support for P00 files on drive 8
3714     ('FSDevice8ConvertP00=1', 'FSDevice8ConvertP00=0') (all emulators
3715     except vsid).
3716
3717'-fs9convertp00'
3718'+fs9convertp00'
3719     Enable/disable on-read support for P00 files on drive 9
3720     ('FSDevice9ConvertP00=1', 'FSDevice9ConvertP00=0') (all emulators
3721     except vsid).
3722
3723'-fs10convertp00'
3724'+fs10convertp00'
3725     Enable/disable on-read support for P00 files on drive 10
3726     ('FSDevice10ConvertP00=1', 'FSDevice10ConvertP00=0') (all emulators
3727     except vsid).
3728
3729'-fs11convertp00'
3730'+fs11convertp00'
3731     Enable/disable on-read support for P00 files on drive 11
3732     ('FSDevice11ConvertP00=1', 'FSDevice11ConvertP00=0') (all emulators
3733     except vsid).
3734
3735'-fs8savep00'
3736'+fs8savep00'
3737     Enable/disable saving P00 files on drive 8 ('FSDevice8SaveP00=1',
3738     'FSDevice8SaveP00=0') (all emulators except vsid).
3739
3740'-fs9savep00'
3741'+fs9savep00'
3742     Enable/disable saving P00 files on drive 9 ('FSDevice9SaveP00=1',
3743     'FSDevice9SaveP00=0') (all emulators except vsid).
3744
3745'-fs10savep00'
3746'+fs10savep00'
3747     Enable/disable saving P00 files on drive 10 ('FSDevice10SaveP00=1',
3748     'FSDevice10SaveP00=0') (all emulators except vsid).
3749
3750'-fs11savep00'
3751'+fs11savep00'
3752     Enable/disable saving P00 files on drive 11 ('FSDevice11SaveP00=1',
3753     'FSDevice11SaveP00=0') (all emulators except vsid).
3754
3755'-fs8hidecbm'
3756'+fs8hidecbm'
3757     Enable/disable hiding of CBM files for drive 8
3758     ('FSDevice8HideCBMFiles=1', 'FSDevice8HideCBMFiles=0') (all
3759     emulators except vsid).
3760
3761'-fs9hidecbm'
3762'+fs9hidecbm'
3763     Enable/disable hiding of CBM files for drive 9
3764     ('FSDevice9HideCBMFiles=1', 'FSDevice9HideCBMFiles=0') (all
3765     emulators except vsid).
3766
3767'-fs10hidecbm'
3768'+fs10hidecbm'
3769     Enable/disable hiding of CBM files for drive 10
3770     ('FSDevice10HideCBMFiles=1', 'FSDevice10HideCBMFiles=0') (all
3771     emulators except vsid).
3772
3773'-fs11hidecbm'
3774'+fs11hidecbm'
3775     Enable/disable hiding of CBM files for drive 11
3776     ('FSDevice11HideCBMFiles=1', 'FSDevice11HideCBMFiles=0') (all
3777     emulators except vsid).
3778
3779'-flipname <name>'
3780     Specify name of the flip list file image ('FliplistName') (all
3781     emulators except vsid).
3782
3783
3784File: vice.info,  Node: Printer settings,  Next: No kernal traps,  Prev: File system device settings,  Up: Peripheral settings
3785
37866.11.2 Printer settings
3787-----------------------
3788
3789The VICE emulators can emulate printers connected to either the IEC
3790buffer or the user port.  Emulation can be achieved by redirecting the
3791printer output to a file or by piping it through an external process.
3792This is defined by so-called "printer device file names"; a printer
3793device file name can be either a simple path, or a command name
3794preceeded by a pipe symbol '|'.
3795
3796For example, printer device 'filename' will cause the output to be
3797appended to the file 'filename', while printer device '|lpr' will cause
3798the 'lpr' command to be executed and be fed the printer output.  The
3799printer output will not be converted but saved as printed by the
3800emulated machine.
3801
3802Up to three printer devices may be specified through the following
3803resources:
3804
3805   * device 1, whose default value is 'print.dump';
3806   * device 2, whose default value is '|lpr'.
3807   * device 3, whose default value is '|petlp -F PS|lpr';
3808
3809So, basically, by default printer device 1 will dump printer output to
3810'print.dump'; printer device 2 will print it via 'lpr' directly to the
3811printer and device 3 will print it via 'petlp' (a not-yet-complete
3812utility that will produce Postscript output from the Commodore printer
3813code) and then to the printer via 'lpr'.
3814
3815* Menu:
3816
3817* Printer resources::
3818* Printer options::
3819
3820
3821File: vice.info,  Node: Printer resources,  Next: Printer options,  Prev: Printer settings,  Up: Printer settings
3822
38236.11.2.1 Printer resources
3824..........................
3825
3826'IECDevice4'
3827'IECDevice5'
3828'IECDevice6'
3829'IECDevice7'
3830     Booleans that specify whether IEC device emulation for device #4,
3831     #5, #6 and #7 is enabled.
3832
3833'PrinterTextDevice1'
3834'PrinterTextDevice2'
3835'PrinterTextDevice3'
3836     Strings specifying the printer devices (*note Printer settings::).
3837
3838'Printer4TextDevice'
3839'Printer5TextDevice'
3840'Printer6TextDevice'
3841     Integer (ranging from 0 to 2, for device 1-3) specifying what
3842     printer device (*note Printer settings::) the IEC printer is using.
3843
3844'Printer4'
3845'Printer5'
3846'Printer6'
3847     Integer specifying how the printer (device 4-6) is being emulated.
3848     (0: None, 1: Filesystem, 2: Real)
3849
3850'Printer7'
3851     Integer specifying how printer 7 is being emulated.  (0: None, 2:
3852     Real)
3853
3854'Printer4Driver'
3855     String specifying the printer output driver.  (raw, ascii, mps803,
3856     nl10)
3857
3858'Printer5Driver'
3859     String specifying the printer output driver.  (raw, ascii, mps803,
3860     nl10)
3861
3862'Printer6Driver'
3863     String specifying the printer output driver.  (raw, 1520)
3864
3865'Printer4Output'
3866'Printer5Output'
3867'Printer6Output'
3868     Strings specifying the IEC printer output device.  (text, graphics)
3869
3870'PrinterUserport'
3871     Boolean specifying if the user-port printer is being emulated.
3872
3873'PrinterUserportTextDevice'
3874     Integer (ranging from 0 to 2, for device 1-3) specifying what
3875     printer device the user-port printer is using.
3876
3877'PrinterUserportDriver'
3878     String specifying the user-port printer output driver.
3879     (ascii/nl10/raw)
3880
3881'PrinterUserportOutput'
3882     String specifying the user-port printer output device.  (text,
3883     graphics)
3884
3885
3886File: vice.info,  Node: Printer options,  Prev: Printer resources,  Up: Printer settings
3887
38886.11.2.2 Printer command-line options
3889.....................................
3890
3891'-iecdevice4'
3892'+iecdevice4'
3893     Enable/disable IEC device emulation for device #4 ('IECDevice4=1',
3894     'IECDevice4=0').
3895
3896'-iecdevice5'
3897'+iecdevice5'
3898     Enable/disable IEC device emulation for device #5 ('IECDevice5=1',
3899     'IECDevice5=0').
3900
3901'-iecdevice6'
3902'+iecdevice6'
3903     Enable/disable IEC device emulation for device #6 ('IECDevice6=1',
3904     'IECDevice6=0').
3905
3906'-iecdevice7'
3907'+iecdevice7'
3908     Enable/disable IEC device emulation for device #7 ('IECDevice7=1',
3909     'IECDevice7=0').
3910
3911'-device4 <type>'
3912     Set device type for device 4 ('Printer4').  (0: None, 1:
3913     Filesystem, 2: Real)
3914
3915'-device5 <type>'
3916     Set device type for device 5 ('Printer5').  (0: None, 1:
3917     Filesystem, 2: Real)
3918
3919'-device6 <type>'
3920     Set device type for device 6 ('Printer6').  (0: None, 1:
3921     Filesystem, 2: Real)
3922
3923'-device7 <type>'
3924     Set device type for device 7 ('Printer7').  (0: None, 2: Real)
3925
3926'-prtxtdev1 <name>'
3927'-prtxtdev2 <name>'
3928'-prtxtdev3 <name>'
3929     Specify name of printer text device or dump file
3930     ('PrinterTextDevice1', 'PrinterTextDevice2', 'PrinterTextDevice3').
3931
3932'-pr4txtdev <0-2>'
3933'-pr5txtdev <0-2>'
3934'-pr6txtdev <0-2>'
3935     Specify printer text output device for IEC printer #4-6
3936     ('Printer4TextDevice', 'Printer5TextDevice', 'Printer6TextDevice').
3937
3938'-pr4output <name>'
3939     Specify name of output device for device #4 ('Printer4Output').
3940     (text, graphics)
3941
3942'-pr5output <name>'
3943     Specify name of output device for device #5 ('Printer5Output').
3944     (text, graphics)
3945
3946'-pr6output <name>'
3947     Specify name of output device for device #6 ('Printer6Output').
3948     (text, graphics)
3949
3950'-pr4drv <name>'
3951     Specify name of printer driver for device #4 ('Printer4Driver').
3952     (raw, ascii, mps803, nl10)
3953
3954'-pr5drv <name>'
3955     Specify name of printer driver for device #5 ('Printer5Driver').
3956     (raw, ascii, mps803, nl10)
3957
3958'-pr6drv <name>'
3959     Specify name of printer driver for device #6 ('Printer6Driver').
3960     (raw, 1520)
3961
3962'-pruser'
3963'+pruser'
3964     Enable/disable emulation of the userport printer emulation
3965     ('PrUser=1', 'PrUser=0').
3966
3967'-prusertxtdev <0-2>'
3968     Specify printer text output device for userport printer
3969     ('PrinterUserportTextDevice').
3970
3971'-pruseroutput <name>'
3972     Specify name of output device for the userport printer
3973     ('PrinterUserportOutput').  (text, graphics)
3974
3975'-pruserdrv <name>'
3976     Specify name of printer driver for the userport printer
3977     ('PrinterUserportDriver').
3978
3979
3980File: vice.info,  Node: No kernal traps,  Prev: Printer settings,  Up: Peripheral settings
3981
39826.11.3 Disabling kernal traps
3983-----------------------------
3984
3985If you have compatibility problems, you can completely disable Kernal
3986traps with the "Disable kernal traps" option.  This will of course
3987disable all the features that depend on it, such as the fast 1541
3988emulation (so you will have to turn true 1541 emulation on if you want
3989to be able to read or write disk images) and tape support.
3990
3991* Menu:
3992
3993* No traps resources::
3994* No traps options::
3995
3996
3997File: vice.info,  Node: No traps resources,  Next: No traps options,  Prev: No kernal traps,  Up: No kernal traps
3998
39996.11.3.1 Resources to control Kernal traps
4000..........................................
4001
4002'VirtualDevices'
4003     Boolean specifying whether all the mechanisms for virtual device
4004     emulation should be enabled.  Serial IEC devices use kernal traps,
4005     parallel IEEE488 devices use an own IEEE488 engine.  Both are
4006     switched on and off with this resource.
4007
4008
4009File: vice.info,  Node: No traps options,  Prev: No traps resources,  Up: No kernal traps
4010
40116.11.3.2 Command-line options to control Kernal traps
4012.....................................................
4013
4014'-virtualdev'
4015'+virtualdev'
4016     Enable/disable virtual devices ('VirtualDevices=1',
4017     'VirtualDevices=0').
4018
4019
4020File: vice.info,  Node: RS232 settings,  Next: Monitor settings,  Prev: Peripheral settings,  Up: Settings and resources
4021
40226.12 RS232 settings
4023===================
4024
4025The VICE emulators can emulate the RS232 device most of the machines
4026have.  The C64, C128 and VIC20 emulators emulate the userport RS232
4027interface at 300 and 1200 baud.  The C64 and C128 can also use the 9600
4028baud interface by Daniel Dallmann, using the shift registers of the two
4029CIA 6526 chips.  The PET can have a 6551 ACIA RS232 interface when
4030running as a SuperPET, and the CBM-II has such an ACIA by default.  The
4031C64 and C128 emulators can emulate an ACIA 6551 (also known as Datapump
4032for example) as extension at '$de**'.
4033
4034Emulation can be achieved by either:
4035
4036   * connecting a real UNIX serial device;
4037   * dumping to a file;
4038   * piping through a process.
4039
4040It is possible to define up to four UNIX serial devices, and then decide
4041which interface should be connected to which device.  This is done by
4042so-called "rs232 device file names"; an rs232 device file name can be
4043either a simple path, or a command name preceeded by a pipe symbol '|'.
4044If the path specifies a special device (e.g.  '/dev/ttyS0') it is
4045recognized by VICE and the emulator can set the baudrate.
4046
4047For example, rs232 device 'filename' will cause the output to be written
4048(not appended) to the file 'filename', while printer device '|lpr' will
4049cause the 'lpr' command to be executed and be fed the rs232 output.  The
4050rs232 output will not be converted but saved as sent by the emulated
4051machine.  The same holds true for the rs232 input.  If the command
4052writes data to the standard output it will be caught by VICE and sent
4053back to the emulator.  Also the data sent by the pseudo device will be
4054sent back to VICE.
4055
4056For example you can setup a null-modem cable between two serial ports of
4057your PC, setup one port for login and use the other in VICE. Then you
4058can login from your emulator via the RS232 emulation and the null-modem
4059cable to your machine again.
4060
4061You can not simply run a shell from VICE, as the shell will notice that
4062it does not run on its own pseudo terminal and will thus buffer its
4063output.  You need to write some program that opens an own pseudo
4064terminal and runs the shell from there (not yet finished).
4065
4066Up to four RS232 devices may be specified through the following
4067resources:
4068
4069   * device 1, whose default value is '/dev/ttyS0';
4070   * device 2, whose default value is '/dev/ttyS1';
4071   * device 3, whose default value is 'rs232.dump';
4072   * device 4, whose default value is '|lpr'.
4073
4074For the first two devices you can change the baudrate the tty device is
4075set to by specifying it on the commandline or in the menu.  This
4076baudrate is 9600 by default for the latter two, but can be changed only
4077by resources (The baudrate is independent from the baudrate the emulator
4078actually expects).
4079
4080* Menu:
4081
4082* RS232 resources::
4083* RS232 options::
4084* RS232 usage::
4085
4086
4087File: vice.info,  Node: RS232 resources,  Next: RS232 options,  Prev: RS232 settings,  Up: RS232 settings
4088
40896.12.1 RS232 resources
4090----------------------
4091
4092'RsDevice1'
4093'RsDevice2'
4094'RsDevice3'
4095'RsDevice4'
4096     Strings specifying the RS232 devices (*note RS232 settings::).
4097
4098'Acia1Enable'
4099     Boolean specifying whether the ACIA (Swiftlink, Turbo232) cartridge
4100     should be emulated or not (x64, x64sc, xscpu64, x128 and xvic only,
4101     and only if RS232 support is enabled and supported at compile
4102     time).
4103
4104'Acia1Dev'
4105     Integer specifying what RS232 device (*note RS232 settings::) the
4106     ACIA is using (all emulators except x64dtv and vsid, and only if
4107     RS232 support is enabled and supported at compile time).
4108
4109'Acia1Base'
4110     Integer specifying the base address for the emulated ACIA chip
4111     (x64, x64sc, xscpu64, xvic and x128 only, and only if RS232 support
4112     is enabled and supported at compile time).  (xvic: $9800/$9C00,
4113     x128: $D700/$DE00/$DF00, x64, x64sc, xscpu64: $DE00/$DF00)
4114
4115'Acia1Mode'
4116     Integer specifying the type of emulated RS232 interface (x64,
4117     x64sc, xscpu64, xvic and x128 only, and only if RS232 support is
4118     enabled and supported at compile time).  (0: normal, 1: Swiftlink,
4119     2: Turbo232)
4120
4121'Acia1Irq'
4122     Integer specifying which interrupt to use (x64, x64sc, xscpu64,
4123     xvic and x128 only, and only if RS232 support is enabled and
4124     supported at compile time).  (0 = none, 1 = IRQ, 2 = NMI)
4125
4126'RsUserEnable'
4127     Boolean specifying if the user-port RS232 interface is being
4128     emulated (C64, C128 and VIC20).
4129
4130'RsUserBaud'
4131     Integer specifying the baudrate of the user-port RS232 interface
4132     (C64, C128 and VIC20).
4133
4134'RsUserDev'
4135     Integer (ranging from 0 to 3, for device 1-4) specifying what RS232
4136     device the user-port interface is using (C64, C128 and VIC20).
4137
4138
4139File: vice.info,  Node: RS232 options,  Next: RS232 usage,  Prev: RS232 resources,  Up: RS232 settings
4140
41416.12.2 RS232 command-line options
4142---------------------------------
4143
4144'-rsdev1 <Name>'
4145'-rsdev2 <Name>'
4146'-rsdev3 <Name>'
4147'-rsdev4 <Name>'
4148     Specify <Name> as RS232 devices 1, 2, 3 and 4, respectively
4149     ('RsDevice1', 'RsDevice2' 'RsDevice3' and 'RsDevice4').
4150
4151'-acia1'
4152'+acia1'
4153     Enable/Disable the $DE** ACIA RS232 interface emulation
4154     ('Acia1Enable=1', 'Acia1Enable=0') (x64, x64sc, xscpu64, x128 and
4155     xvic only, and only if RS232 support is enabled and supported at
4156     compile time).
4157
4158'-myaciadev <0-3>'
4159     Specify RS232 device the ACIA should work on (all emulators except
4160     x64dtv and vsid, and only if RS232 support is enabled and supported
4161     at compile time)
4162
4163'-acia1base <Base address>'
4164     Set the base address of the ACIA cartridge ('Acia1Base') (x64,
4165     x64sc, xscpu, x128 and xvic only, and only if RS232 support is
4166     enabled and supported at compile time).  (xvic: $9800/$9C00, x128:
4167     $D700/$DE00/$DF00, x64, x64sc, xscpu: $DE00/$DF00)
4168
4169'-acia1mode <mode>'
4170     Set the ACIA mode ('Acia1Mode') (x64, x64sc, xscpu64, xvic and x128
4171     only, and only if RS232 support is enabled and supported at compile
4172     time).  (0: Normal, 1: Swiftlink, 2: Turbo232)
4173
4174'-acia1irq <interrupt>'
4175     Set the ACIA interrupt ('Acia1Irq') (x64, x64sc, xscpu64, xvic and
4176     x128 only, and only if RS232 support is enabled and supported at
4177     compile time).  (0: None, 1: IRQ, 2: NMI)
4178
4179'-rsuser'
4180'+rsuser'
4181     Enable or disable emulation of the userport RS232 emulation
4182     ('RsUser'; C64, C128 and VIC20)
4183
4184'-rsuserbaud <baud>'
4185     Set the baud rate of the RS232 userport emulation.
4186
4187'-rsuserdev <0-3>'
4188     Specify device for the userport RS232 emulation ('RsUserDev'; C64,
4189     C128 and VIC20).
4190
4191
4192File: vice.info,  Node: RS232 usage,  Prev: RS232 options,  Up: RS232 settings
4193
41946.12.3 RS232 usage example
4195--------------------------
4196
4197Here we give you a simple example how to set up an emulated C64 using
4198the modem connected to your PC. The following list shows each step.
4199
4200'Attach your modem to your PC at a serial port.'
4201     Normally you should set it up to use the modem as "/dev/modem".
4202'start VICE'
4203
4204'Setup VICE to use your modem as "serial device 1"'
4205     Go to the RS232 settings menu and change "Serial 1 device" to
4206     "/dev/modem" (or the device where you attached your modem to) Then
4207     go to the RS232 settings menu and change "Serial 1 baudrate" to the
4208     baudrate your modem should run at.  Watch out, e.g.  on Linux there
4209     is an additional multiplier to multiply with the baudrate (so e.g.
4210     19200 gives 115200 or so baud) See the "setserial" manpage on Linux
4211     for example.  However, most modems should be able to autodetect the
4212     speed to the computer as well.
4213
4214'Select the RS232 emulation your programs use'
4215     If you want to use the Userport emulation, go to the RS232 settings
4216     and change "Userport RS232 Device" to "Serial 1".  If you want ACIA
4217     emulation (swiftlink or what's it called?)  then change "ACIA $DE**
4218     device" to "Serial 1".
4219
4220'Enable the emulation'
4221     Go to the RS232 settings and select either "ACIA $DE** emulation"
4222     or Userport 300/1200 baud or CIA 9600 baud emulation.
4223
4224'Load your program and start it.'
4225     If it is able to detect an RS232 cartridge like swiftlink or so,
4226     try to detect the ACIA emulation if enabled.  Otherwise just set
4227     the baudrate to either 300, 1200 or 9600 according to what you
4228     enabled in the VICE menu for the userport.
4229
42306.13 Tape port devices
4231======================
4232
42336.13.1 Tape port resources
4234--------------------------
4235
4236'CPClockF83'
4237     Boolean specifying whether the CP Clock F83 (PCF8583 RTC) is
4238     enabled.
4239
4240'CPClockF83Save'
4241     Boolean specifying whether the CP Clock F83 (PCF8583 RTC) data is
4242     saved when changed.
4243
4244'TapeSenseDongle'
4245     Boolean specifying whether the tape sense dongle is enabled.
4246
4247'DTLBasicDongle'
4248     Boolean specifying whether the DTL Basic dongle is enabled.
4249
42506.13.2 Tape port command line options
4251-------------------------------------
4252
4253'-cpclockf83'
4254'+cpclockf83'
4255     Enable/Disable CP Clock F83 (PCF8583 RTC) ('CPClockF83=1',
4256     'CPClockF83=0').
4257
4258'-cpclockf83save'
4259'+cpclockf83save'
4260     Enable/Disable saving of the CP Clock F83 (PCF8583 RTC) data when
4261     changed ('CPClockF83Save=1', 'CPClockF83Save=0').
4262
4263'-tapesensedongle'
4264'+tapesensedongle'
4265     Enable/Disable tape sense dongle ('TapeSenseDongle=1',
4266     'TapeSenseDongle=0').
4267
4268'-dtlbasicdongle'
4269'+dtlbasicdongle'
4270     Enable/Disable DTL Basic dongle ('DTLBasicDongle=1',
4271     'DTLBasicDongle=0').
4272
42736.14 Userport devices
4274=====================
4275
42766.14.1 Userport resources
4277-------------------------
4278
4279'UserportCollisionHandling'
4280     Boolean specifying the way the Userport collisions should be
4281     handled, (0: error message and detach all involved devices, 1:
4282     error message and detach last attached involved device, 2: warning
4283     in log and 'AND' the valid return values)
4284
4285'UserportDIGIMAX'
4286     Boolean specifying whether the userport DigiMAX device is enabled.
4287
4288'Userport4bitSampler'
4289     Boolean specifying whether the Userport 4bit sampler is enabled.
4290
4291'Userport8BSS'
4292     Boolean specifying whether the Userport 8bit stereo sampler is
4293     enabled.
4294
4295'UserportRTC58321a'
4296     Boolean specifying whether the userport RTC is emulated or not
4297     (xpet, cbm2, x64, x64sc, xscpu64 and x128 only).
4298
4299'UserportRTC58321aSave'
4300     Boolean specifying whether the userport RTC data is saved when
4301     changed or not (xpet, cbm2, x64, x64sc, xscpu64 and x128 only).
4302
4303'UserportRTCDS1307'
4304     Boolean specifying whether the userport RTC is emulated or not
4305     (xpet, cbm2, x64, x64sc, xscpu64 and x128 only).
4306
4307'UserportRTCDS1307Save'
4308     Boolean specifying whether the userport RTC data is saved when
4309     changed or not (xpet, cbm2, x64, x64sc, xscpu64 and x128 only).
4310
43116.14.2 Userport command line options
4312------------------------------------
4313
4314'-userportcollision'
4315     Select the way the Userport collisions should be handled, (0: error
4316     message and detach all involved devices, 1: error message and
4317     detach last attached involved device, 2: warning in log and 'AND'
4318     the valid return values) ('UserportCollisionHandling')
4319
4320'-userportdigimax'
4321'+userportdigimax'
4322     Enable/Disable the userport DigiMAX device ('UserportDIGIMAX=1',
4323     'UserportDIGIMAX=0')
4324
4325'-userport4bitsampler'
4326'+userport4bitsampler'
4327     Enable/Disable Userport 4bit sampler ('Userport4bitSampler=1',
4328     'Userport4bitSampler=0')
4329
4330'-userport8bss'
4331'+userport8bss'
4332     Enable/Disable Userport 8bit stereo sampler ('Userport8BSS=1',
4333     'Userport8BSS=0')
4334
4335'-userportrtc58321a'
4336'+userportrtc58321a'
4337     Enable/disable the userport RTC emulation ('UserportRTC58321a=1',
4338     'UserportRTC58321a=0') (xpet, cbm2, x64, x64sc, xscpu64 and x128
4339     only).
4340
4341'-userportrtc58321asave'
4342'+userportrtc58321asave'
4343     Disable/enable saving of the userport RTC data when changed
4344     ('UserportRTC58321aSave=1', 'UserportRTC58321aSave=0') (xpet, cbm2,
4345     x64, x64sc, xscpu64 and x128 only).
4346
4347'-userportrtcds1307'
4348'+userportrtcds1307'
4349     Enable/disable the userport RTC emulation ('UserportRTCDS1307=1',
4350     'UserportRTCDS1307=0') (xpet, cbm2, x64, x64sc, xscpu64 and x128
4351     only).
4352
4353'-userportrtcds1307save'
4354'+userportrtcds1307save'
4355     Disable/enable saving of the userport RTC data when changed
4356     ('UserportRTCDS1307Save=1', 'UserportRTCDS1307Save=0') (xpet, cbm2,
4357     x64, x64sc, xscpu64 and x128 only).
4358
4359
4360File: vice.info,  Node: Monitor settings,  Next: Misc settings,  Prev: RS232 settings,  Up: Settings and resources
4361
43626.15 Monitor settings
4363=====================
4364
4365This section lists command-line options specific to the built-in
4366monitor.
4367
4368* Menu:
4369
4370* Monitor options::
4371
4372
4373File: vice.info,  Node: Monitor options,  Up: Monitor settings
4374
43756.15.1 Monitor resources
4376------------------------
4377
4378'KeepMonitorOpen'
4379     Boolean, if true the monitor window may stay open when the
4380     emulation is running, eg to look at trace-point output.  (Not all
4381     ports/UIs support this, in that case this setting has no effect.)
4382
4383'MonitorServer'
4384     Boolean specifying whether the remote monitor server is enabled.
4385
4386'MonitorServerAddress'
4387     String specifying the address the remote monitor server listens to
4388     (ip4://127.0.0.1:6510)
4389
4390'NativeMonitor'
4391     Boolean specifying whether the native monitor is enabled.  When
4392     enabled, the monitor will not run in the interface of the emulator,
4393     but instead work in the spawning terminal.
4394
43956.15.2 Monitor command-line options
4396-----------------------------------
4397
4398'-moncommands <Name>'
4399     Execute the commands from the file <Name> in the monitor after
4400     starting up.  This command line switch is mainly thought to load
4401     labels and to set breakpoints.  Not all other commands are useful
4402     to be executed in this way, some may even lead to strange effects.
4403
4404'-initbreak <address>'
4405     Set an initial breakpoint for the monitor.  Addresses with prefix
4406     "0x" are hexadecimal.
4407
4408'-keepmonopen'
4409'+keepmonopen'
4410     Enable/disable keeping the monitor window open
4411     ('KeepMonitorOpen=1', 'KeepMonitorOpen=0').
4412
4413'-remotemonitor'
4414'+remotemonitor'
4415     Enable/Disable remote monitor
4416
4417'-remotemonitoraddress <name>'
4418     The local address the remote monitor should bind to
4419
4420'-nativemonitor'
4421'+nativemonitor'
4422     Enable/Disable native monitor.  ('NativeMonitor=1',
4423     'NativeMonitor=0').
4424
44256.16 Memory settings
4426====================
4427
44286.16.1 Memory resources
4429-----------------------
4430
4431'RAMInitStartValue'
4432     Integer specifying the value for the very first RAM address after
4433     powerup (all emulators except vsid).  (0..255)
4434
4435'RAMInitValueInvert'
4436     Integer specifying the length of the memory block initialized with
4437     the same value (all emulators except vsid).
4438
4439'RAMInitPatternInvert'
4440     Integer specifying the length of the memory block initialized with
4441     the same pattern (all emulators except vsid).
4442
44436.16.2 Memory command-line options
4444----------------------------------
4445
4446'-raminitstartvalue <value>'
4447     Set the value for the very first RAM address after powerup
4448     ('RAMInitStartValue') (all emulators except vsid).  (0..255)
4449
4450'-raminitvalueinvert <num of bytes>'
4451     Length of memory block initialized with the same value
4452     ('RAMInitValueInvert') (all emulators except vsid).
4453
4454'-raminitpatterninvert <num of bytes>'
4455     Length of memory block initialized with the same pattern
4456     ('RAMInitPatternInvert') (all emulators except vsid).
4457
44586.17 Debug settings
4459===================
4460
44616.17.1 Debug resources
4462----------------------
4463
4464'TapeLog'
4465     Boolean specifying whether the tape log device is enabled.
4466
4467'TapeLogDestination'
4468     Integer specifying where the tape log goes to (0=Enable logging to
4469     the emulator log file 1=Enable logging to a file).
4470
4471'TapeLogfilename'
4472     String that specifies the tape log file name
4473
4474'DebugCartEnable'
4475     Boolean specifying whether the debug "cartridge" used for the test
4476     suite is enabled.
4477
4478     The following are only available when the emulators were compiled
4479     in DEBUG mode:
4480
4481'TraceMode'
4482     Integer specifying the trace mode (0=normal 1=small 2=history)
4483
4484'AutoPlaybackFrames'
4485     Amount of automatic playback frames
4486
4487'MainCPU_TRACE'
4488     Trace the main CPU / Do not trace the main CPU
4489'Drive0CPU_TRACE'
4490     Trace the drive 0 CPU / Do not trace the drive 0 CPU
4491'Drive1CPU_TRACE'
4492     Trace the drive 1 CPU / Do not trace the drive 1 CPU
4493'Drive2CPU_TRACE'
4494     Trace the drive 2 CPU / Do not trace the drive 2 CPU
4495'Drive3CPU_TRACE'
4496     Trace the drive 3 CPU / Do not trace the drive 3 CPU
4497
44986.17.2 Debug command-line options
4499---------------------------------
4500
4501'-core'
4502'+core'
4503     Enable/disable generation of core dumps ('DoCoreDump=1',
4504     'DoCoreDump=0') (all emulators except vsid).
4505
4506'-debug'
4507'+debug'
4508     Disable/enable calling of the exception handler ('DoCoreDump=1',
4509     'DoCoreDump=0') (all emulators except vsid).
4510
4511'-debugcart'
4512'+debugcart'
4513     Enable/disable the debug "cartridge" used for the test suite.
4514
4515'-tapelog'
4516'+tapelog'
4517     Enable/Disable the tape log device.  ('TapeLog=1', 'TapeLog=0').
4518
4519'-tapelogtofile'
4520     Enable logging to a file ('TapeLogDestination=1').
4521
4522'-tapelogtolog'
4523     Enable logging to the emulator log file ('TapeLogDestination=0').
4524
4525'-tapelogimage <name>'
4526     Specify tape log file name ('TapeLogfilename').
4527
4528     The following are only available when the emulators were compiled
4529     in DEBUG mode:
4530
4531'-trace_maincpu'
4532'+trace_maincpu'
4533     Trace the main CPU / Do not trace the main CPU ('MainCPU_TRACE=1',
4534     'MainCPU_TRACE=0')
4535
4536'-trace_drive0'
4537'+trace_drive0'
4538     Trace the drive 0 CPU / Do not trace the drive 0 CPU
4539     ('Drive0CPU_TRACE=1', 'Drive0CPU_TRACE=0')
4540
4541'-trace_drive1'
4542'+trace_drive1'
4543     Trace the drive 1 CPU / Do not trace the drive 1 CPU
4544     ('Drive1CPU_TRACE=1', 'Drive1CPU_TRACE=0')
4545
4546'-trace_drive2'
4547'+trace_drive2'
4548     Trace the drive 2 CPU / Do not trace the drive 2 CPU
4549     ('Drive2CPU_TRACE=1', 'Drive2CPU_TRACE=0')
4550
4551'-trace_drive3'
4552'+trace_drive3'
4553     Trace the drive 3 CPU / Do not trace the drive 3 CPU
4554     ('Drive3CPU_TRACE=1', 'Drive3CPU_TRACE=0')
4555
4556'-trace_mode <value>'
4557     Trace mode (0=normal 1=small 2=history)
4558
4559'-autoplaybackframes <frames>'
4560     Set the amount of automatic playback frames
4561
45626.18 Network Play settings
4563==========================
4564
45656.18.1 Network Play resources
4566-----------------------------
4567
4568'NetworkServerName'
4569     String specifying the name of the remote server.
4570
4571'NetworkServerBindAddress'
4572     String specifying the IP of the remote server.
4573
4574'NetworkServerPort'
4575     Integer specifying the port used for network play.
4576
4577'NetworkControl'
4578     Integer specifying whether the emulator is running as server or
4579     client (0: client, 1: server)
4580
45816.18.2 Network Play command-line options
4582----------------------------------------
4583
4584'-netplayserver <name>'
4585     Set the name of the remote server.
4586
4587'-netplaybind <ip>'
4588     Set the IP of the remote server.
4589
4590'-netplayport <port>'
4591     Set the port used for network play.
4592
4593'-netplayctrl <flag>'
4594     Specify whether the emulator is running as server or client (0:
4595     client, 1: server)
4596
4597
4598File: vice.info,  Node: Misc settings,  Prev: Monitor settings,  Up: Settings and resources
4599
46006.19 Miscellaneous settings
4601===========================
4602
4603This section lists generic resources that do not fit in the other
4604categories.
4605
4606* Menu:
4607
4608* Misc resources::
4609* Misc options::
4610
4611
4612File: vice.info,  Node: Misc resources,  Next: Misc options,  Prev: Misc settings,  Up: Misc settings
4613
46146.19.1 Miscellaneous resources
4615------------------------------
4616
4617'JAMAction'
4618     Integer specifying the action to take when the CPU encounters a
4619     'JAM' opcode.  (0: show dialog, 1: continue emulation, 2: start
4620     monitor, 3: soft reset, 4: hard reset, 5: quit emulator)
4621
4622'Directory'
4623     String specifying the search path for system files.  It is defined
4624     as a sequence of directory names, separated by colons (':'), just
4625     like the 'PATH' variable in the shell.  The special string '$$'
4626     stands for the default search path.
4627
4628'DoCoreDump'
4629     Boolean specifying whether the emulator should dump core when it
4630     gets a signal (all emulators except vsid).
4631
4632'LogFileName'
4633     String specifying the filename of the current log file.
4634
4635'ExitScreenshotName'
4636     String specifying the filename of a screenshot file that will be
4637     written when the emulator exits.
4638
4639'ExitScreenshotName1'
4640     String specifying the filename of a screenshot file that will be
4641     written when the emulator exits.  (x128)
4642
4643'FliplistName'
4644     String specifying the filename of the current flip list.  (Drive 8
4645     only) (all emulators except vsid).
4646
4647'AttachDevice8Readonly'
4648'AttachDevice9Readonly'
4649'AttachDevice10Readonly'
4650'AttachDevice11Readonly'
4651     Booleans that specify whether to attach images on drives 8 to 11
4652     read-only or not (all emulators except vsid).
4653
4654
4655File: vice.info,  Node: Misc options,  Prev: Misc resources,  Up: Misc settings
4656
46576.19.2 Miscellaneous command-line options
4658-----------------------------------------
4659
4660'-jamaction <Type>'
4661     Specify the action to take when the CPU encounters a 'JAM' opcode
4662     ('JAMAction') (0: Show dialog, 1: continue emulation, 2: start
4663     monitor, 3: soft reset, 4: hard reset, 5: quit emulator).
4664
4665'-directory <Path>'
4666     Specify the system file search path ('Directory').
4667
4668
4669File: vice.info,  Node: Machine-specific features,  Next: Platform-specific features,  Prev: Settings and resources,  Up: Top
4670
46717 Machine-specific features
4672***************************
4673
4674* Menu:
4675
4676* C64/128-specific::            Commands and settings specific to the
4677                                C64/128 emulators
4678* C128-specific::               Commands and settings specific to the
4679                                C128 emulator
4680* C64DTV-specific::             Commands and settings specific to the
4681                                C64DTV emulator
4682* SCPU64-specific::             Commands and settings specific to the
4683                                SCPU64 emulator
4684* VIC20-specific::              Commands and settings specific to the
4685                                VIC20 emulator
4686* PLUS4-specific::              Commands and settings specific to the
4687                                PLUS4 emulator
4688* PET-specific::                Commands and settings specific to the
4689                                PET emulator
4690* CBM-II-specific::             Commands and settings specific to the
4691                                CBM-II emulator
4692* VSID-specific::               Commands and settings specific to the
4693                                VSID music player
4694
4695
4696File: vice.info,  Node: C64/128-specific,  Next: C128-specific,  Prev: Machine-specific features,  Up: Machine-specific features
4697
46987.1 C64/128-specific commands and settings
4699==========================================
4700
4701This section lists the settings and commands that are C64/128 specific
4702and thus are not present in the other emulators.
4703
4704* Menu:
4705
4706* C64 cartridges::              Using cartridges with the C64 emulator.
4707* VIC-II settings::             Settings that control the video chip.
4708* SID settings::                Settings that control the audio chip.
4709* C64 I/O extension settings::  Settings that enable special extensions.
4710* C64 system ROM settings::     Settings to control the C64 system ROMs.
4711
4712
4713File: vice.info,  Node: C64 cartridges,  Next: VIC-II settings,  Prev: C64/128-specific,  Up: C64/128-specific
4714
47157.1.1 Using cartridges
4716----------------------
4717
4718The cartridge system is organized in "Slots" to allow more than one
4719cartridge connected at a time, like it can be done using an expansion
4720port expander on a real C64 (see below).
4721
4722Generally a cartridge can be enabled by attaching its respective
4723cartridge image, or using the respective menu option for cartridges that
4724do not require an image.
4725
4726x64, x64sc and x128 allow you to attach the following kinds of images:
4727
4728   * '.crt' images, as used by the CCS64 emulator by Per H�kan Sundell
4729   * raw '.bin' images, with or without load address
4730
4731"Cartridge images" are like disk images, but contain the contents of
4732cartridge ROM and/or RAM images instead of disk images.
4733
4734To attach cartridges, use the "Attach a cartridge image" submenu.  When
4735using '.crt' images, this will work for every cartridge which is
4736supported.  For raw '.bin' images you might have to use command line
4737options.
4738
4739When you have successfully attached a cartridge image, you should then
4740reset the machine to make sure the cartridge initializes itself.  (Or
4741enable the "reset on cartridge change" option).
4742
4743Of course, it is also possible to detach a currently attached cartridge
4744image ("Detach cartridge image").
4745
4746If you are using a freezer cart like an Action Replay cartridge, you can
4747emulate the cartridge's freeze button with the "Cartridge freeze"
4748command.
4749
4750The imaginary expansion port expander is organized in 4 slots, the
4751cartridges are associated with them like this:
4752
47537.1.1.1 Slot 0
4754..............
4755
4756All carts that have a passthrough connector go here.  Once a "Slot 0"
4757cartridge is enabled all further cartridges are connected to its
4758respective passthrough port.
4759
4760Only one cartridge of this type can be active at a time.
4761
4762"Slot 0" carts have individual "enable" switches, enabling means
4763enabling permanently.
4764
4765The following cartridges are emulated in this slot:
4766
4767   * IEEE-488 Interface
4768     (<http://www.funet.fi/pub/cbm/schematics/cartridges/c64/ieee-488/eprom.bin>)
4769   * Magic Voice
4770   * MMC64
4771
47727.1.1.2 Slot 1
4773..............
4774
4775Mostly RAM based cartridges which for one reason or the other might make
4776sense to be enabled together with one of the "Main Slot" cartridges go
4777here.
4778
4779Only one cartridge of this type can be active at a time.
4780
4781"Slot 1" carts have individual "enable" switches, enabling means
4782enabling permanently
4783
4784The following cartridges are emulated in this slot:
4785
4786   * Double Quick Brown Box (DQBB)
4787   * Expert Cartridge
4788   * ISEPIC
4789   * RamCart
4790
47917.1.1.3 Main Slot
4792.................
4793
4794All other cartridges which are not pure i/o extensions go here.
4795
4796Only one cartridge of this type can be active at a time.
4797
4798Cartridges in the "Main Slot" must be explicitly set as default to
4799enable them permanently.
4800
4801The following cartridges are emulated in this slot:
4802
4803   * generic 4K, 8K and 16K game- and ultimax cartridges
4804   * Action Replay V5
4805   * Action Replay MK2
4806   * Action Replay MK3
4807   * Action Replay MK4
4808   * Atomic Power
4809   * C64 Games System
4810   * Capture
4811   * Comal 80
4812   * Dela EP64
4813   * Dela EP7x8
4814   * Dela EP256
4815   * Diashow-Maker
4816   * Dinamic
4817   * EasyFlash
4818   * Epyx FastLoad
4819   * EXOS
4820   * The Final Cartridge
4821   * The Final Cartridge III
4822   * Final Cartridge Plus
4823   * Freeze Frame
4824   * Freeze Machine
4825   * Fun Play
4826   * Game Killer
4827   * IDE64 (<http://www.ide64.org>)
4828   * KCS Power Cartridge
4829   * MACH 5
4830   * Magic Desk
4831   * Magic Formel
4832   * Mikro Assembler
4833   * MMC Replay
4834   * Ocean
4835   * Prophet64
4836   * REX 256k EPROM Cart
4837   * REX Utility
4838   * Retro Replay
4839   * RGCD
4840   * RR-Net MK3
4841   * ROSS
4842   * Simons' BASIC
4843   * Snapshot 64
4844   * Stardos
4845   * Structured BASIC
4846   * Super Explode V5.0
4847   * Super Games
4848   * Super Snapshot V4
4849   * Super Snapshot V5
4850   * Warp Speed
4851   * Westermann Learning
4852   * Zaxxon
4853
48547.1.1.4 I/O Slot
4855................
4856
4857All carts that are pure I/O extensions go here.
4858
4859Any number of "I/O Slot" Carts may be active at a time.
4860
4861"I/O Slot" carts have individual "enable" switches, enabling means
4862enabling permanently.
4863
4864The following cartridges are emulated in this slot:
4865
4866   * ACIA (Swiftlink, Turbo232)
4867   * DigiMAX
4868   * DS12C887 RTC
4869   * Ethernet (The Final Ethernet, RR-Net)
4870   * GEO-RAM
4871   * MIDI (Passport/Syntech, Datel/Siel/JMS/C-Lab, Maplin, Namesoft,
4872     Sequential)
4873   * RAM Expansion Module (REU)
4874   * SFX Sound Expander
4875   * SFX Sound Sampler
4876
48777.1.1.5 Expected behaviour
4878..........................
4879
4880When the emulator is run without arguments, all settings from the config
4881file should be applied and arguments override settings from the config
4882file.
4883
4884When saving the settings to the config file it is expected that on the
4885next run of the emulator all settings will be in the same state as they
4886were when saved.
4887
4888There is an exception to this rule: the cartridge in the "Main Slot"
4889must be explicitly set as default before it gets saved to the config
4890file.
4891
4892'+cart' should disable ALL cartridges, including eventually activated
4893REU, Swithlink and all similar expansionport devices.
4894
4895'-cartXYZ' options should generally attach AND activate a cart of type
4896XYZ. As a consequence, attaching carts this way which are NOT in the
4897"Main Slot" will also enable the cart permanently.
4898
48997.1.1.6 Common problems
4900.......................
4901
4902If attaching a cartridge does not work as expected, this may be because
4903of various reasons:
4904
4905   * Not seldomly the CRT type is incorrectly set in '.crt' files found
4906     "in the wild".  Make sure this is not the case (if in doubt use
4907     'cartconv' to verify and/or fix).
4908
4909   * You may have unintentionally enabled more than one cartridge at
4910     once, for example by saving the settings with REU enabled, and then
4911     later attaching a game cartridge from the command-line.  The
4912     cartridge system will allow certain combinations, but (as on the
4913     real thing) not all do (can) actually work.  To make sure this is
4914     not the case, either detach all cartridges from the menus, or use
4915     '+cart' on the command-line.
4916
4917   * The cartridge image might be broken.  Try one from a different
4918     source.  If you are sure the dump is ok (for example because you
4919     dumped it yourself) then make sure it is in proper linear order (on
4920     some cartridges, for example "capture", address and/or data lines
4921     at the eprom are shuffled around so a dump made with an eprom
4922     burner can not be used as is).
4923
4924   * Last not least you might have encountered a bug in the emulation.
4925     If you suspect this is the case, and you can still reproduce the
4926     bug after checking the things above, please file a bug report
4927     including the following information:
4928
4929        * attach your vicerc and a reference to the cartridge binaries
4930        * if you can, comment in the respective DEBUGXYZ macros
4931          prominently defined at the top of these files:
4932          src/c64/cart/c64cart.c src/c64/cart/c64cartmem.c
4933          src/c64/c64io.c src/c64/c64export.c and then recompile.  this
4934          will add debug output that might make it much easier to locate
4935          certain problems.
4936
49377.1.1.7 IEEE-488 interface
4938..........................
4939
4940To be able to use an IEEE drive, you need to enable IEEE emulation for
4941the emulator.  To do this, follow the following steps:
4942
4943Download the IEEE 488 ROM image from the CBM archives (formerly known as
4944FUNET) Attach that image with File/Attach cartridge image/IEEE488
4945interface image.
4946
4947Make sure you have a one-drive system only (that is, go to
4948Settings/Peripheral Setting, uncheck "use IEC device" for all devices,
4949go to Settings/Drive Settings and select "Floppy type" as "none" for all
4950drives other than drive 8.
4951
4952After this, all drives can be selected in x64 and x128.
4953
49547.1.1.8 The Final Cartridge 3
4955.............................
4956
4957The Final Cartridge 3 detects whether a mouse is connected when it
4958starts and disables mouse support if it doesnt detect one.  So to make
4959mouse emulation work you must either enable it on the command line, or
4960reset the cartridge after enabling it from the user interface.
4961
49627.1.2 C64 cartridge settings
4963----------------------------
4964
49657.1.2.1 C64 cartridge resources
4966...............................
4967
4968'IOCollisionHandling'
4969     Integer specifying the way the I/O collisions should be handled.
4970     (0: error message and detach all involved carts, 1: error message
4971     and detach last attached involved carts, 2: warning in log and
4972     'AND' the valid return values)
4973
4974'CartridgeReset'
4975     Boolean specifying whether the machine should be reset when a
4976     cartridge is changed.
4977
4978'CartridgeType'
4979     Integer specifying the type of cartridge emulated in the "main"
4980     slot.
4981
4982     The following cartridge types are valid:
4983
4984        * - 6: Ultimax
4985        * - 3: Generic 8k
4986        * - 2: Generic 16k
4987        * - 1: None
4988        * 0: CRT
4989        * 1: Action Replay V5
4990        * 2: KCS Power Cartridge
4991        * 3: The Final Cartridge III
4992        * 4: Simons' BASIC
4993        * 5: Ocean
4994        * 6: Expert Cartridge
4995        * 7: Fun Play
4996        * 8: Super Games
4997        * 9: Atomic Power / Nordic Power
4998        * 10: Epyx FastLoad
4999        * 11: Westermann Learning
5000        * 12: REX Utility
5001        * 13: The Final Cartridge
5002        * 14: Magic Formel
5003        * 15: C64 Games System
5004        * 16: Warp Speed
5005        * 17: Dinamic
5006        * 18: Zaxxon
5007        * 19: Magic Desk
5008        * 20: Super Snapshot V5
5009        * 21: Comal 80
5010        * 22: Structured BASIC
5011        * 23: ROSS
5012        * 24: Dela EP64
5013        * 25: Dela EP7x8
5014        * 26: Dela EP256
5015        * 27: REX 256k EPROM Cart
5016        * 28: Mikro Assembler
5017        * 29: Final Cartridge Plus
5018        * 30: Action Replay MK4
5019        * 31: Stardos
5020        * 32: EasyFlash
5021        * 33: EasyFlash Xbank
5022        * 34: Capture
5023        * 35: Action Replay MK3
5024        * 36: Retro Replay
5025        * 37: MMC64
5026        * 38: MMC Replay
5027        * 39: IDE64
5028        * 40: Super Snapshot V4
5029        * 41: IEEE-488 Interface
5030        * 42: Game Killer
5031        * 43: Prophet64
5032        * 44: EXOS
5033        * 45: Freeze Frame
5034        * 46: Freeze Machine
5035        * 47: Snapshot 64
5036        * 48: Super Explode V5.0
5037        * 49: Magic Voice
5038        * 50: Action Replay MK2
5039        * 51: MACH 5
5040        * 52: Diashow-Maker
5041        * 53: Pagefox
5042        * 54: Kingsoft
5043        * 55: Silverrock 128K Cartridge
5044        * 56: Formel 64
5045        * 57: RGCD
5046        * 58: RR-Net MK3
5047        * 59: EasyCalc
5048        * 60: GMod2
5049
5050'CartridgeFile'
5051     String specifying the filename of the image for the cartridge
5052     emulated in the "main" slot.
5053
5054'DQBB'
5055     Boolean specifying whether the Double Quick Brown Box should be
5056     emulated or not.
5057
5058'DQBBfilename'
5059     String specifying the filename of the DQBB RAM image.
5060
5061'DQBBImageWrite'
5062     Boolean, if true write back the DQBB image file automatically,
5063     incase the RAM contents changed, when detaching or quitting the
5064     emulator.
5065
5066'EasyFlashJumper'
5067     Boolean specifying whether the Easy Flash jumper is set.
5068
5069'EasyFlashWriteCRT'
5070     Boolean, if true write back the Easy Flash image file
5071     automatically, incase the contents changed, when detaching or
5072     quitting the emulator.
5073
5074'EasyFlashOptimizeCRT'
5075     Boolean, if true omit empty (filled with $ff) banks from the .crt
5076     image when writing.
5077
5078'ExpertCartridgeEnabled'
5079     Boolean specifying whether the Expert Cartridge should be emulated
5080     or not.
5081
5082'Expertfilename'
5083     String specifying the filename of the Expert Cartridge RAM image.
5084
5085'ExpertImageWrite'
5086     Boolean, if true write back the Expert Cartridge image file
5087     automatically, incase the RAM contents changed, when detaching or
5088     quitting the emulator.
5089
5090'ExpertCartridgeMode'
5091     Integer specifying the state of the expert cartridge switch.  (0:
5092     off, 1: prg, 2: on)
5093
5094'GMod2EEPROMImage'
5095     String that specifies the name of the raw GMod2 EEPROM image.
5096
5097'GMod2FlashWrite'
5098     Boolean that specifies wether writes to GMod2 EEPROM image are
5099     enabled.
5100
5101'GMod2EEPROMRW'
5102     Boolean that specifies wether the GMod2 ROM is saved at exit
5103
5104'IDE64version'
5105     Integer specifying whether the emulated card version is V3.4, V4.1
5106     or V4.2.  This is automatically detected most of the time for .crt
5107     cartridge images.
5108
5109'IDE64Image1'
5110'IDE64Image2'
5111'IDE64Image3'
5112'IDE64Image4'
5113     Strings specifying the full path to the four harddisk images.  If a
5114     file is non-existing the drive is not emulated.  Some older IDEDOS
5115     versions only support the first two harddisks.
5116
5117'IDE64Cylinders1'
5118'IDE64Cylinders2'
5119'IDE64Cylinders3'
5120'IDE64Cylinders4'
5121     Integers specifying the number of cylinders for the four harddisk
5122     images.  (1..65535)
5123
5124'IDE64Heads1'
5125'IDE64Heads2'
5126'IDE64Heads3'
5127'IDE64Heads4'
5128     Integers specifying the number of heads for the four harddisk
5129     images.  (1..16)
5130
5131'IDE64Sectors1'
5132'IDE64Sectors2'
5133'IDE64Sectors3'
5134'IDE64Sectors4'
5135     Integers specifying the number of sectors for the four harddisk
5136     images.  (1..63)
5137
5138'IDE64AutodetectSize1'
5139'IDE64AutodetectSize2'
5140'IDE64AutodetectSize3'
5141'IDE64AutodetectSize4'
5142     Booleans specifying whether the disk geometry should be auto
5143     detected based on the disk image for the respective harddisk, or
5144     the cylinder/head/sector resources above should be used.
5145
5146'IDE64USBServerAddress'
5147     String specifying the address the IDE64 USB server listens to
5148     (ip4://127.0.0.1:64245)
5149'IDE64USBServer'
5150     Boolean specifying whether the IDE64 USB server is enabled.
5151
5152'IDE64RTCSave'
5153     Boolean specifying whether the IDE64 RTC data should be saved when
5154     changed or not.
5155
5156'IDE64ClockPort'
5157     Integer that specifies the enabled IDE64 Clockport device.  (0:
5158     None, 2: RRNet, 4: MP3@64)
5159
5160'SBDIGIMAX'
5161     Boolean that specifies whether the Short Bus DigiMAX expansion is
5162     enabled.
5163
5164'SBDIGIMAXbase'
5165     Integer specifying the Base address of the Short Bus DigiMAX
5166     expansion.  (0xDE40/0xDE48)
5167
5168'SBETFE'
5169     Boolean specifying whether the Short Bus ETFE expansion is enabled
5170
5171'SBETFEbase'
5172     Integer specifying the Base address of the Short Bus ETFE
5173     expansion.  ($de00, $de10, $df00)
5174
5175'IEEE488'
5176     Boolean specifying whether the IEEE488 interface should be emulated
5177     or not.
5178
5179'IEEE488Image'
5180     String specifying the filename of the IEEE488 ROM image.
5181
5182'IsepicCartridgeEnabled'
5183     Boolean specifying whether ISEPIC should be emulated or not.
5184
5185'Isepicfilename'
5186     String specifying the filename of the ISEPIC RAM image.
5187
5188'IsepicSwitch'
5189     Boolean specifying the status of the ISEPIC switch.  (0: off, 1:
5190     on)
5191
5192'IsepicImageWrite'
5193     Boolean, if true write back the ISEPIC image file automatically,
5194     incase the RAM contents changed, when detaching or quitting the
5195     emulator.
5196
5197'MagicVoiceCartridgeEnabled'
5198     Boolean specifying whether the Magic Voice should be emulated or
5199     not.
5200
5201'MagicVoiceImage'
5202     String specifying the filename of the Magic Voice ROM image.
5203
5204'MMC64'
5205     Boolean specifying whether the MMC64 should be emulated or not.
5206
5207'MMC64BIOSfilename'
5208     String specifying the filename of the MMC64 Flash ROM image.
5209
5210'MMC64_bios_write'
5211     Boolean, if true write back the MMC64 Flash ROM image file
5212     automatically, incase the contents changed, when detaching or
5213     quitting the emulator.
5214
5215'MMC64_flashjumper'
5216     Boolean that specifies whether the MMC64 flash jumper is set.
5217
5218'MMC64_revision'
5219     Integer specifying the MMC64 hardware revision.  (0: Revision A, 1:
5220     Revision B)
5221
5222'MMC64imagefilename'
5223     String specifying the filename of the SD-Card image used by the
5224     MMC64 emulation.
5225
5226'MMC64_RO'
5227     Boolean, if true the SD-Card image is mounted read-only.
5228
5229'MMC64_sd_type'
5230     Integer that specifies the reported type for the emulated SD-Card.
5231     (0: Auto, 1: MMC, 2: SD, 3: SDHC)
5232
5233'MMC64ClockPort'
5234     Integer that specifies the clockport device used.  (0: None, 1:
5235     ETH64-II, 2: RRNet, 3: Silver Surfer, 4: MP3@64, 5: Catweasel MkIII
5236     SID)
5237
5238'MMCRCardImage'
5239     String specifying the filename of the SD-Card image used by the
5240     MMCR emulation.
5241
5242'MMCREEPROMImage'
5243     String specifying the filename of the MMCR EEPROM image.
5244
5245'MMCRRescueMode'
5246     Boolean specifying if the rescue mode (both buttons pressed during
5247     powerup) of the MMCR is active.
5248
5249'MMCRImageWrite'
5250     Boolean, if true write back the MMCR Flash ROM image file
5251     automatically, incase the contents changed, when detaching or
5252     quitting the emulator.
5253
5254'MMCRCardRW'
5255     Boolean specifying if the SD-Card image used by the MMCR emulation
5256     is writeable.
5257
5258'MMCRSDType'
5259     Integer that specifies the reported type for the emulated SD-Card.
5260     (0: Auto, 1: MMC, 2: SD, 3: SDHC)
5261
5262'MMCREEPROMRW'
5263     Boolean specifying if the MMCR EEPROM image is writeable.
5264
5265'MMCRClockPort'
5266     Integer that specifies the clockport device.  (0: None, 1:
5267     ETH64-II, 2: RRNet, 3: Silver Surfer, 4: MP3@64, 5: Catweasel MkIII
5268     SID)
5269
5270'RAMCART'
5271     Boolean specifying whether the RAMCart should be emulated or not.
5272
5273'RAMCARTfilename'
5274     String specifying the filename of the RAMCart RAM image.
5275
5276'RAMCARTImageWrite'
5277     Boolean, if true write back the RAMCart image file automatically,
5278     incase the RAM contents changed, when detaching or quitting the
5279     emulator.
5280
5281'RAMCART_RO'
5282     Boolean, if true the RAMCart contents are read only.
5283
5284'RAMCARTsize'
5285     Integer specifying the size of the RAMCart in KB. (64, 128)
5286
5287'RRrevision'
5288     Integer specifying the RR hardware revision.  (0: Retro Replay, 1:
5289     Nordic Replay)
5290
5291'RRFlashJumper'
5292     Boolean specifying whether the RR flash jumper is set or not.
5293
5294'RRBankJumper'
5295     Boolean specifying whether the RR bank jumper is set or not.
5296
5297'RRBiosWrite'
5298     Boolean, if true write back the RR Flash ROM image file
5299     automatically, incase the contents changed, when detaching or
5300     quitting the emulator.
5301
5302'RRClockPort'
5303     Integer that specifies the clockport device.  (0: None, 1:
5304     ETH64-II, 2: RRNet, 3: Silver Surfer, 4: MP3@64, 5: Catweasel MkIII
5305     SID)
5306
5307'RRNETMK3_flashjumper'
5308     Boolean specifying whether the RRNETMK3 Flash Jumper is set.
5309
5310'RRNETMK3_bios_write'
5311     Boolean specifying whether to save the RRNETMK3 bios when changed.
5312
5313'SSRamExpansion'
5314     Boolean, if true enable the 32k addon RAM of the Supersnapshot V5
5315
53167.1.2.2 C64 cartridge command-line options
5317..........................................
5318
5319'-iocollision <method>'
5320     Select the way the I/O collisions should be handled
5321     ('IOCollisionHandling').  (0: error message and detach all involved
5322     carts, 1: error message and detach last attached involved carts, 2:
5323     warning in log and 'AND' the valid return values
5324
5325'+cart'
5326     Disable all cartridges (which would eventually be enabled in the
5327     config file).
5328
5329'-cartreset'
5330'+cartreset'
5331     Reset/Do not reset machine if a cartridge is attached or detached
5332     ('CartridgeReset=1', 'CartridgeReset=0').
5333
5334'-cart8 <name>'
5335     Attach generic 8KB cartridge image.
5336
5337'-cart16 <name>'
5338     Attach generic 16KB cartridge image.
5339
5340'-cartultimax <name>'
5341     Attach generic 16kB Ultimax cartridge image.
5342
5343'-cartcrt <name>'
5344     Attach CRT cartridge image.
5345
5346'-cartap <name>'
5347     Attach raw 32KB Atomic Power cartridge image.
5348
5349'-cartar2 <name>'
5350     Attach raw 16kB Action Replay MK2 cartridge image.
5351
5352'-cartar3 <name>'
5353     Attach raw 16KB Action Replay MK3 cartridge image.
5354
5355'-cartar4 <name>'
5356     Attach raw 32KB Action Replay MK4 cartridge image.
5357
5358'-cartar5 <name>'
5359     Attach raw 32KB Action Replay cartridge image.
5360
5361'-cartcap <name>'
5362     Attach raw 8kB Capture cartridge image.
5363
5364'-cartcomal <name>'
5365     Attach raw 64kB Comal 80 cartridge image.
5366
5367'-cartdep256 <name>'
5368     Attach raw Dela EP256 cartridge image.
5369
5370'-cartdep64 <name>'
5371     Attach raw Dela EP64 cartridge image.
5372
5373'-cartdep7x8 <name>'
5374     Attach raw Dela EP7x8 cartridge image.
5375
5376'-cartdin <name>'
5377     Attach raw 128kB Dinamic cartridge image.
5378
5379'-cartdsm <name>'
5380     Attach raw 8kB Diashow-Maker cartridge image.
5381
5382'-cartdqbb <name>'
5383     Attach raw 16kB Double Quick Brown Box cartridge image.
5384
5385'-dqbb'
5386'+dqbb'
5387     Enable/disable Double Quick Brown Box ('DQBB=1', 'DQBB=0').
5388
5389'-dqbbimage <name>'
5390     Specify Double Quick Brown Box filename ('DQBBfilename').
5391
5392'-dqbbimagerw'
5393'+dqbbimagerw'
5394     Allow/disallow writing to DQBB image ('DQBBImageWrite=1',
5395     'DQBBImageWrite=0').
5396
5397'-carteasy <name>'
5398     Attach raw EasyFlash cartridge image.
5399
5400'-carteasycalc <name>'
5401     Attach raw 24kB Easy Calc Result cartridge image
5402
5403'-easyflashjumper'
5404'+easyflashjumper'
5405     Enable/disable EasyFlash jumper ('EasyFlashJumper=1',
5406     'EasyFlashJumper=0').
5407
5408'-easyflashcrtwrite'
5409'+easyflashcrtwrite'
5410     Allow/Disallow writing to EasyFlash .crt image
5411     ('EasyFlashWriteCRT=1', 'EasyFlashWriteCRT=0').
5412
5413'-easyflashcrtoptimize'
5414'+easyflashcrtoptimize'
5415     Allow/Disallow EasyFlash .crt image optimizing (omitting of empty
5416     banks) on write ('EasyFlashOptimizeCRT=1',
5417     'EasyFlashOptimizeCRT=0').
5418
5419'-cartepyx <name>'
5420     Attach raw 8KB Epyx FastLoad cartridge image.
5421
5422'-cartexos <name>'
5423     Attach raw 8kB EXOS cartridge image.
5424
5425'-cartexpert <name>'
5426     Attach raw 8kB Expert Cartridge image.
5427
5428'-expert'
5429'+expert'
5430     Enable/Disable the Expert Cartridge ('ExpertCartridgeEnabled=1',
5431     'ExpertCartridgeEnabled=0').
5432
5433'-expertimagename <name>'
5434     Set Expert Cartridge image name ('Expertfilename').
5435
5436'-expertimagerw'
5437'+expertimagerw'
5438     Allow/Disallow writing to Expert Cartridge image
5439     ('ExpertImageWrite=1', 'ExpertImageWrite=0').
5440
5441'-expertmode <mode>'
5442     Set Expert Cartridge mode ('ExpertCartridgeMode').  (0: off, 1:
5443     prg, 2: on)
5444
5445'-cartf64 <Name>'
5446     Attach raw 32kB Formel 64 image.
5447
5448'-cartfc1 <name>'
5449     Attach raw 16kB Final Cartridge image.
5450
5451'-cartfc3 <name>'
5452     Attach raw 64kB Final Cartridge III image.
5453
5454'-cartfcplus <name>'
5455     Attach raw 32kB Final Cartridge Plus image.
5456
5457'-cartff <name>'
5458     Attach raw 8kB Freeze Frame image.
5459
5460'-cartfm <name>'
5461     Attach raw 32kB Freeze Machine image.
5462
5463'-cartfp <name>'
5464     Attach raw 128kB Fun Play/Power Play cartridge image.
5465
5466'-cartgmod2 <name>'
5467     Attach raw GMod2 cartridge image.
5468
5469'-gmod2eepromimage <name>'
5470     Attach raw GMod2 EEPROM image ('GMod2EEPROMImage').
5471
5472'-gmod2eepromrw'
5473'+gmod2eepromrw'
5474     Enable/Disable writes to GMod2 EEPROM image ('GMod2EEPROMRW=1',
5475     'GMod2EEPROMRW=0').
5476
5477'-gmod2flashwrite'
5478'+gmod2flashwrite'
5479     Enable/Disable saving of the GMod2 ROM at exit
5480     ('GMod2FlashWrite=1', 'GMod2FlashWrite=0').
5481
5482'-cartgk <name>'
5483     Attach raw 8KB Game Killer cartridge image.
5484
5485'-cartgs <name>'
5486     Attach raw 512kB Game System cartridge image.
5487
5488'-cartide64 <name>'
5489     Attach raw 64KB or 128KB IDE64 cartridge image.
5490
5491'-IDE64image1 <name>'
5492'-IDE64image2 <name>'
5493'-IDE64image3 <name>'
5494'-IDE64image4 <name>'
5495     Specify path to the image files for IDE64 harddisks ('IDE64Image1',
5496     'IDE64Image2', 'IDE64Image3', 'IDE64Image4').
5497
5498'-IDE64cyl1 <value>'
5499'-IDE64cyl2 <value>'
5500'-IDE64cyl3 <value>'
5501'-IDE64cyl4 <value>'
5502     Set number of cylinders for the IDE64 harddisk emulation
5503     ('IDE64Cylinders1', 'IDE64Cylinders2', 'IDE64Cylinders3',
5504     'IDE64Cylinders1').  (1..65535)
5505
5506'-IDE64hds1 <value>'
5507'-IDE64hds2 <value>'
5508'-IDE64hds3 <value>'
5509'-IDE64hds4 <value>'
5510     Set number of heads for the IDE64 harddisk emulation
5511     ('IDE64Heads1', 'IDE64Heads2', 'IDE64Heads3', 'IDE64Heads4').
5512     (1..16)
5513
5514'-IDE64sec1 <value>'
5515'-IDE64sec2 <value>'
5516'-IDE64sec3 <value>'
5517'-IDE64sec4 <value>'
5518     Set number of sectors for the IDE64 harddisk emulation
5519     ('IDE64Sectors1', 'IDE64Sectors2', 'IDE64Sectors3',
5520     'IDE64Sectors4').  (1..63)
5521
5522'-IDE64autosize1'
5523'+IDE64autosize1'
5524     Autodetect geometry of formatted image or do not autodetect and use
5525     specified geometry ('IDE64AutodetectSize1=1',
5526     'IDE64AutodetectSize1=0').
5527
5528'-IDE64autosize2'
5529'+IDE64autosize2'
5530     Autodetect geometry of formatted image or do not autodetect and use
5531     specified geometry ('IDE64AutodetectSize2=1',
5532     'IDE64AutodetectSize2=0').
5533
5534'-IDE64autosize3'
5535'+IDE64autosize3'
5536     Autodetect geometry of formatted image or do not autodetect and use
5537     specified geometry ('IDE64AutodetectSize3=1',
5538     'IDE64AutodetectSize3=0').
5539
5540'-IDE64autosize4'
5541'+IDE64autosize4'
5542     Autodetect geometry of formatted image or do not autodetect and use
5543     specified geometry ('IDE64AutodetectSize4=1',
5544     'IDE64AutodetectSize4=0').
5545
5546'-IDE64version <value>'
5547     Select IDE64 version V3 (0), V4.1 (1) or V4.2 (2).
5548     ('IDE64version').  (0..2)
5549
5550'-IDE64USB'
5551'+IDE64USB'
5552     Enable/Disable IDE64 USB server
5553'-IDE64USBAddress <name>'
5554     The local address the IDE64 USB server should bind to
5555
5556'-IDE64rtcsave'
5557'+IDE64rtcsave'
5558     Enable/disable saving of IDE64 RTC data when changed
5559     ('IDE64RTCSave=1', 'IDE64RTCSave=0').
5560
5561'-ide64clockportdevice'
5562     Enable IDE64 Clockport device (0: None, 2: RRNet, 4: MP3@64)
5563     ('IDE64ClockPort').
5564
5565'-sbdigimax'
5566'+sbdigimax'
5567     Enable/Disable the Short Bus DigiMAX expansion ('SBDIGIMAX').
5568
5569'-sbdigimaxbase'
5570     Set Base address of the Short Bus DigiMAX expansion (0xDE40/0xDE48)
5571     ('SBDIGIMAXbase').
5572
5573'-sbetfe'
5574'+sbetfe'
5575     Enable/Disable the Short Bus ETFE expansion ('SBETFE').
5576
5577'-sbetfebase'
5578     Set Base address of the Short Bus ETFE expansion (56832: $de00,
5579     56848: $de10, 57088: $df00) ('SBETFEbase').
5580
5581'-cartieee <name>'
5582     Attach CBM IEEE-488 cartridge image.
5583
5584'-ieee488'
5585'+ieee488'
5586     Enable/disable emulation of the IEEE488 interface ('IEEE488=1',
5587     'IEEE488=0').  .
5588'-ieee488image <name>'
5589     Set IEEE488 interface image name ('IEEE488Image').
5590
5591'-isepic'
5592'+isepic'
5593     Enable/disable the ISEPIC cart ('IsepicCartridgeEnabled=1',
5594     'IsepicCartridgeEnabled=0').
5595
5596'-isepicswitch'
5597'+isepicswitch'
5598     Enable/disable the ISEPIC switch ('IsepicSwitch=1',
5599     'IsepicSwitch=0').
5600
5601'-cartisepic <name>'
5602     Attach raw 2kB ISEPIC cartridge image.
5603
5604'-isepicimagename <name>'
5605     Set ISEPIC image name ('Isepicfilename').
5606
5607'-isepicimagerw'
5608'+isepicimagerw'
5609     Allow/disallow writing to ISEPIC image ('IsepicImageWrite=1',
5610     'IsepicImageWrite=0').
5611
5612'-cartkcs <name>'
5613     Attach raw 16kB KCS Power cartridge image.
5614
5615'-cartks <name>'
5616     Attach raw 24kB Kingsoft cartridge image.
5617
5618'-cartmach5 <name>'
5619     Attach raw 8kB MACH 5 cartridge image.
5620
5621'-cartmd <name>'
5622     Attach raw 32/64/128kB Magic Desk cartridge image.
5623
5624'-cartmf <name>'
5625     Attach raw Magic Formel cartridge image.
5626
5627'-cartmikro <name>'
5628     Attach raw 8kB Mikro Assembler cartridge image.
5629
5630'-mmc64'
5631'+mmc64'
5632     Enable/disable the MMC64 expansion ('MMC64=1', 'MMC64=0').
5633
5634'-cartmmc64 <name>'
5635     Attach raw 8kB MMC64 cartridge image.
5636
5637'-mmc64bios <name>'
5638     Specify name of MMC64 BIOS image ('MMC64BIOSfilename').
5639
5640'-mmc64image <name>'
5641     Specify name of MMC64 image ('MMC64imagefilename').
5642
5643'-mmc64readonly'
5644     Set the MMC64 card to read-only ('MMC64_RO=1').
5645
5646'-mmc64readwrite'
5647     Set the MMC64 card to read/write ('MMC64_RO=0').
5648
5649'-mmc64flash'
5650'+mmc64flash'
5651     Enable/Disable the MMC64 flash jumper ('MMC64_flashjumper=1',
5652     'MMC64_flashjumper=0').
5653
5654'-mmc64bioswrite'
5655     Save the MMC64 bios when changed ('MMC64_bios_write'=1).
5656
5657'-mmc64biosreadonly'
5658     Do not save the MMC64 bios when changed ('MMC64_bios_write'=0).
5659
5660'-mmc64rev <revision>'
5661     Specify MMC64 revision ('MMC64_revision').  (0: Revision A, 1:
5662     Revision B)
5663
5664'-mmc64sdtype <type>'
5665     Specify MMC64 SD type ('MMC64_sd_type').  (0: Auto, 1: MMC, 2: SD,
5666     3: SDHC)
5667
5668'-mmc64clockportdevice <device>'
5669     Set MMC64 clockport device ('MMC64ClockPort') (0: None, 1:
5670     ETH64-II, 2: RRNet, 3: Silver Surfer, 4: MP3@64, 5: Catweasel MkIII
5671     SID)
5672
5673'-cartmmcr <name>'
5674     Attach raw 512kB MMC Replay cartridge image.
5675
5676'-mmcrrescue'
5677'+mmcrrescue'
5678     Enable/disable MMC Replay rescue mode ('MMCRRescueMode=1',
5679     'MMCRRescueMode=0').
5680
5681'-mmcrimagerw'
5682'+mmcrimagerw'
5683     Allow/disallow writing to MMC Replay image ('MMCRImageWrite=1',
5684     'MMCRImageWrite=0').
5685
5686'-mmcrsdtype <type>'
5687     Specify MMC Replay SD type ('MMCRSDType').  (0: Auto, 1: MMC, 2:
5688     SD, 3: SDHC)
5689
5690'-mmcrcardimage <filename>'
5691     Specify MMC Replay card image filename ('MMCRCardImage').
5692
5693'-mmcrcardrw'
5694'+mmcrcardrw'
5695     Allow/disallow writes to MMC Replay card image ('MMCRCardRW=1',
5696     'MMCRCardRW=0').
5697
5698'-mmcreepromimage <filename>'
5699     Specify MMC Replay EEPROM image filename ('MMCREEPROMImage').
5700
5701'-mmcreepromrw'
5702'+mmcreepromrw'
5703     Allow/disallow writes to MMC Replay EEPROM image ('MMCREEPROMRW=1',
5704     'MMCREEPROMRW=0').
5705
5706'-mmcrclockportdevice <id>'
5707     Set MMC Replay clockport device ('MMCRClockPort').  (0: None, 1:
5708     ETH64-II, 2: RRNet, 3: Silver Surfer, 4: MP3@64, 5: Catweasel MkIII
5709     SID)
5710
5711'-cartmv <name>'
5712     Attach raw 16kB Magic Voice cartridge image.
5713
5714'-magicvoiceimage <name>'
5715     Specify Magic Voice cartridge ROM image filename
5716     ('MagicVoiceImage').
5717
5718'-magicvoice'
5719'+magicvoice'
5720     Enable/disable Magic Voice cartridge
5721     ('MagicVoiceCartridgeEnabled=1', 'MagicVoiceCartridgeEnabled=0').
5722
5723'-cartocean <name>'
5724     Attach raw Ocean cartridge image.
5725
5726'-cartp64 <name>'
5727     Attach raw 256KB Prophet 64 cartridge image.
5728
5729'-cartpf <name>'
5730     Attach raw 64kb Pagefox cartridge image.
5731
5732'-cartramcart <name>'
5733     Attach raw RamCart cartridge image.
5734
5735'-ramcart'
5736'+ramcart'
5737     Enable/disable the RAMCART expansion ('RAMCART=1', 'RAMCART=0').
5738
5739'-ramcartsize <size in KB>'
5740     Size of the RAMCART expansion ('RAMCARTsize').  (64, 128)
5741
5742'-ramcartimage <name>'
5743     Specify name of RAMCART image ('RAMCARTfilename').
5744
5745'-ramcartimagerw'
5746'+ramcartimagerw'
5747     Allow/disallow writing to RAMCart image ('RAMCARTImageWrite=1',
5748     'RAMCARTImageWrite=0').
5749
5750'-ramcartro'
5751     Set the RamCart switch to read-only ('RAMCART_RO=1').
5752
5753'-ramcartrw'
5754     Set the RamCart switch to read-only ('RAMCART_RO=0').
5755
5756'-cartrep256 <name>'
5757     Attach raw REX EP256 cartridge image.
5758
5759'-cartrgcd <Name>'
5760     Attach raw 64kB RGCD cartridge image.
5761
5762'-cartross <name>'
5763     Attach raw 16/32kB ROSS cartridge image.
5764
5765'-cartrrnet <name>'
5766     Attach raw 8KB RR-Net MK3 cartridge image.
5767
5768'-cartrr <name>'
5769     Attach raw 64KB Retro Replay cartridge image.
5770
5771'-rrbioswrite'
5772'+rrbioswrite'
5773     Enable/disable saving of the RR ROM at exit ('RRBiosWrite=1',
5774     'RRBiosWrite=0').
5775
5776'-rrbankjumper'
5777'+rrbankjumper'
5778     Set/unset RR Bank Jumper ('RRBankJumper=1', 'RRBankJumper=0').
5779
5780'-rrflashjumper'
5781'+rrflashjumper'
5782     Set/unset RR Flash Jumper ('RRFlashJumper=1', 'RRFlashJumper=0').
5783
5784'-rrrev <Revision>'
5785     Set the RR revision ('RRrevision').  (0: Retro Replay, 1: Nordic
5786     Replay)
5787
5788'-rrclockportdevice <device>'
5789     Set the RR clockport device ('RRClockPort') (0: None, 1: ETH64-II,
5790     2: RRNet, 3: Silver Surfer, 4: MP3@64, 5: Catweasel MkIII SID)
5791
5792'-rrnetmk3flash'
5793'+rrnetmk3flash'
5794     SetRemove the RRNETMK3 Flash Jumper ('RRNETMK3_flashjumper=1',
5795     'RRNETMK3_flashjumper=0').
5796
5797'-rrnetmk3bioswrite'
5798'+rrnetmk3bioswrite'
5799     Save/Do not save the RRNETMK3 bios when changed
5800     ('RRNETMK3_bios_write=1', 'RRNETMK3_bios_write=0').
5801
5802'-cartru <name>'
5803     Attach raw 8kB REX Utility cartridge image.
5804
5805'-carts64 <name>'
5806     Attach raw 4kB Snapshot 64 cartridge image.
5807
5808'-cartsb <name>'
5809     Attach raw Structured Basic cartridge image.
5810
5811'-cartse5 <name>'
5812     Attach raw 16kB Super Explode V5 cartridge image.
5813
5814'-cartsg <name>'
5815     Attach raw 64kB Super Games cartridge image.
5816
5817'-cartsilver <Name>'
5818     Attach raw Silverrock 128 cartridge image.
5819
5820'-cartsimon <name>'
5821     Attach raw 16kB Simons' Basic cartridge image.
5822
5823'-cartss4 <name>'
5824     Attach raw 32KB Super Snapshot V4 cartridge image.
5825
5826'-cartss5 <name>'
5827     Attach raw 64KB Super Snapshot V5 cartridge image.
5828
5829'-ssramexpansion'
5830'+ssramexpansion'
5831     Enable/disable 32k addon RAM. ('SSRamExpansion=1',
5832     'SSRamExpansion=0').
5833
5834'-cartstar <name>'
5835     Attach raw 16KB Stardos cartridge image.
5836
5837'-cartwl <name>'
5838     Attach raw 16KB Westermann Learning cartridge image.
5839
5840'-cartws <name>'
5841     Attach raw 8kB Warp Speed cartridge image.
5842
5843'-cartzaxxon <name>'
5844     Attach raw 16kB Zaxxon cartridge image.
5845
58467.1.3 CIA settings
5847------------------
5848
58497.1.3.1 CIA resources
5850.....................
5851
5852'CIA1Model'
5853     Integer specifying CIA1 model (all emulators except x64dtv, xpet,
5854     xplus4, xvic).  (0: old 6526, 1: new 6526A)
5855
5856'CIA2Model'
5857     Integer specifying CIA2 model (all emulators except x64dtv, xcbm2,
5858     xcbm5x0, xpet, xplus4, xvic).  (0: old 6526, 1: new 6526A)
5859
58607.1.3.2 CIA command-line options
5861................................
5862
5863'-ciamodel <model>'
5864     Set both CIA models ('CIA1Model', 'CIA2Model') (all emulators
5865     except x64dtv, xcbm2, xcbm5x0, xpet, xplus4, xvic).  (0: old 6526,
5866     1: new 6526A)
5867
5868'-cia1model <model>'
5869     Set CIA1 model ('CIA1Model') (all emulators except x64dtv, xpet,
5870     xplus4, xvic).  (0: old 6526, 1: new 6526A)
5871
5872'-cia2model <model>'
5873     Set CIA2 model ('CIA2Model') (all emulators except x64dtv, xcbm2,
5874     xcbm5x0, xpet, xplus4, xvic).  (0: old 6526, 1: new 6526A)
5875
5876
5877File: vice.info,  Node: VIC-II settings,  Next: SID settings,  Prev: C64 cartridges,  Up: C64/128-specific
5878
58797.1.4 VIC-II settings
5880---------------------
5881
5882These settings control the emulation of the VIC-II (MOS6569) video chip
5883used in both the C64 and the C128.
5884
5885   * "Sprite-sprite collisions" and "Sprite-background collisions", if
5886     enabled, cause the hardware detection of sprite-to-sprite and
5887     sprite-to-background collisions of the VIC-II to be emulated.  This
5888     feature is used by many games, and disabling either of the two
5889     detection systems can sometimes make you invincible (although there
5890     is also a chance that also enemies become invincible then).
5891
5892   * "Color set" can be used to dynamically change the palette file
5893     being used by choosing one of the available predefined color sets,
5894     for example:
5895
5896        * 'pepto-pal.vpl' ("Pepto PAL"), a Palette calculated by Philip
5897          "Pepto" Timmermann (<http://www.pepto.de/projects/colorvic/>).
5898          (This is the default)
5899        * 'vice.vpl' ("VICE"), the old default VICE palette.
5900        * 'c64s.vpl' ("C64S"), palette taken from the shareware C64S
5901          emulator by Miha Peternel.
5902        * 'ccs64.vpl' ("CCS64"), palette taken from the shareware CCS64
5903          emulator by Per H�kan Sundell.
5904        * 'frodo.vpl' ("Frodo"), palette taken from the free Frodo
5905          emulator by Christian Bauer (<https://frodo.cebix.net/>).
5906        * 'pc64.vpl' ("PC64"), palette taken from the free PC64 emulator
5907          by Wolfgang Lorenz.
5908        * 'godot.vpl' ("GoDot"), palette as suggested by the authors of
5909          the C64 graphics package GoDot (<https://www.godot64.de>).
5910
5911* Menu:
5912
5913* VIC-II resources::
5914* VIC-II options::
5915
5916
5917File: vice.info,  Node: VIC-II resources,  Next: VIC-II options,  Prev: VIC-II settings,  Up: VIC-II settings
5918
59197.1.4.1 VIC-II resources
5920........................
5921
5922'VICIIModel'
5923     Integer that specifies VIC-II model (x64sc, xscpu64 only).  (6569,
5924     6569r1, 8565, 6567, 8562, 6567r56a, 6572)
5925
5926'VICIICheckSsColl'
5927     Boolean specifying whether the sprite-sprite hardware collision
5928     detection must be emulated.
5929
5930'VICIICheckSbColl'
5931     Boolean specifying whether the sprite-background hardware collision
5932     detection must be emulated.
5933
5934'VICIIVSPBug'
5935     Boolean specifying whether the "VSP Bug" must be emulated (x64sc,
5936     xscpu64 only).
5937
5938'VICIIVideoCache'
5939     Boolean specifying whether the video cache is turned on.
5940
5941'VICIIDoubleSize'
5942     Boolean specifying whether double-size mode is turned on.
5943
5944'VICIIDoubleScan'
5945     Boolean specifying whether double-scan mode is turned on.
5946
5947'VICIINewLuminances'
5948     Boolean specifying whether to use new (9 steps) luminances.
5949
5950'VICIIPaletteFile'
5951     String specifying the name of the palette file being used.  The
5952     '.vpl' extension is optional.
5953
5954'VICIIExternalPalette'
5955     Boolean specifying whether to use external palette file or not.
5956
5957'VICIIColorSaturation'
5958     Integer specifying saturation of internal calculated palette.
5959     (0..2000)
5960
5961'VICIIColorContrast'
5962     Integer specifying contrast of internal calculated palette.
5963     (0..2000)
5964
5965'VICIIColorBrightness'
5966     Integer specifying brightness of internal calculated palette.
5967     (0..2000)
5968
5969'VICIIColorGamma'
5970     Integer specifying gamma of internal calculated palette.  (0..4000)
5971
5972'VICIIColorTint'
5973     Integer specifying tint of internal calculated palette.  (0..2000)
5974
5975'VICIIPALScanLineShade'
5976     Integer specifying amount of scan line shading for the CRT
5977     emulation.  (0..1000)
5978
5979'VICIIPALBlur'
5980     Integer specifying amount of horizontal blur for the CRT emulation.
5981     (0..1000)
5982
5983'VICIIPALOddLinePhase'
5984     Integer specifying phase for color carrier in odd lines.  (0..2000)
5985
5986'VICIIPALOddLineOffset'
5987     Integer specifying phase offset for color carrier in odd lines.
5988     (0..2000)
5989
5990'VICIIAudioLeak'
5991     Boolean specifying whether to enable/disable video to audio leak
5992     emulation.
5993
5994'VICIIFilter'
5995     Integer specifying rendering filter.  (0: None, 1: CRT emulation,
5996     2: Scale2x)
5997
5998'VICIIBorderMode'
5999     Integer specifying border display mode.  (0: normal, 1: full, 2:
6000     debug, 3: none)
6001
6002
6003File: vice.info,  Node: VIC-II options,  Prev: VIC-II resources,  Up: VIC-II settings
6004
60057.1.4.2 VIC-II command-line options
6006...................................
6007
6008'-VICIIcheckss'
6009'+VICIIcheckss'
6010     Enable/disable emulation of hardware sprite-sprite collision
6011     detection ('VICIICheckSsColl=1', 'VICIICheckSsColl=0').
6012
6013'-VICIIchecksb'
6014'+VICIIchecksb'
6015     Enable/disable emulation of hardware sprite-background collision
6016     detection ('VICIICheckSbColl=1', 'VICIICheckSbColl=0').
6017
6018'-VICIIvspbug'
6019'+VICIIvspbug'
6020     Enable/disable emulation of the "VSP bug" ('VICIIVSPBug=1',
6021     'VICIIVSPBug=0') (x64sc, xscpu64 only).
6022
6023'-VICIIvcache'
6024'+VICIIvcache'
6025     Enable/disable the video cache ('VICIIVideoCache=1',
6026     'VICIIVideoCache=0').
6027
6028'-VICIIdsize'
6029'+VICIIdsize'
6030     Enable/disable the double size mode ('VICIIDoubleSize=1',
6031     'VICIIDoubleSize=0').
6032
6033'-VICIIdscan'
6034'+VICIIdscan'
6035     Enable/disable the double scan mode ('VICIIDoubleScan=1',
6036     'VICIIDoubleScan=0').
6037
6038'-VICIIfilter <Mode>'
6039     Select rendering filter ('VICIIFilter').  (0: None, 1: CRT
6040     emulation, 2: Scale2x)
6041
6042'-VICIIintpal'
6043     Use an internal calculated palette ('VICIIExternalPalette=0').
6044
6045'-VICIIextpal'
6046     Use an external palette (file) ('VICIIExternalPalette=1').
6047
6048'-VICIIpalette <Name>'
6049     Specify the name of the palette file ('VICIIPaletteFile').
6050
6051'-VICIIborders <mode>'
6052     Set VIC-II border display mode ('VICIIBorderMode').  (0: normal, 1:
6053     full, 2: debug, 3: none)
6054
6055'-VICIImodel <model>'
6056     Set VIC-II model ('VICIIModel') (x64sc and xscpu64 only).  (6569,
6057     6569r1, 8565, 6567, 8562, 6567r56a, 6572)
6058
6059'-VICIInewluminance'
6060'+VICIInewluminance'
6061     Enable/disable new luminances ('VICIINewLuminances=1',
6062     'VICIINewLuminances=0').
6063
6064'-VICIIsaturation <0-2000>'
6065     Set saturation of internal calculated palette
6066     ('VICIIColorSaturation').
6067
6068'-VICIIcontrast <0-2000>'
6069     Set contrast of internal calculated palette ('VICIIColorContrast').
6070
6071'-VICIIbrightness <0-2000>'
6072     Set brightness of internal calculated palette
6073     ('VICIIColorBrightness').
6074
6075'-VICIIgamma <0-4000>'
6076     Set gamma of internal calculated palette ('VICIIColorGamma').
6077
6078'-VICIItint <0-2000>'
6079     Set tint of internal calculated palette ('VICIIColorTint').
6080
6081'-VICIIoddlinesphase <0-2000>'
6082     Set phase for color carrier in odd lines ('VICIIPALOddLinePhase').
6083
6084'-VICIIoddlinesoffset <0-2000>'
6085     Set phase offset for color carrier in odd lines
6086     ('VICIIPALOddLineOffset').
6087
6088'-VICIIcrtblur <0-1000>'
6089     Amount of horizontal blur for the CRT emulation ('VICIIPALBlur').
6090
6091'-VICIIcrtscanlineshade <0-1000>'
6092     Amount of scan line shading for the CRT emulation
6093     ('VICIIPALScanLineShade').
6094
6095'-VICIIaudioleak'
6096'+VICIIaudioleak'
6097     Enable/disable video to audio leak emulation ('VICIIAudioLeak=1',
6098     'VICIIAudioLeak=0').
6099
6100
6101File: vice.info,  Node: SID settings,  Next: C64 I/O extension settings,  Prev: VIC-II settings,  Up: C64/128-specific
6102
61037.1.5 SID settings
6104------------------
6105
6106These settings control the emulation of the SID (MOS6581 or MOS8580)
6107audio chip.
6108
6109   * "Second SID" maps a second SID chip into the address space for
6110     stereo sound.  This emulates e.g.  the "SID Symphony Stereo
6111     Cartridge" from Dr.  Evil Laboratories.  The second SID can be used
6112     with software such as "Stereo SID Player" by Mark Dickenson or "The
6113     Enhanced Sidplayer" by Craig Chamberlain.
6114
6115   * "Second SID base address" sets the start address for the second SID
6116     chip.  Software normally uses $DE00 or $DF00, since $DE00-$DEFF and
6117     $DF00-$DFFF can be mapped through the cartridge port of the C64.
6118     The default start address is $DE00.
6119
6120   * "Emulate filters" causes the built-in programmable filters of the
6121     SID chip to be emulated.  A lot of C64 music requires them to be
6122     emulated properly, but their emulation requires some additional
6123     processor power.
6124
6125   * "ChipModel" specifies the model of the SID chip being emulated:
6126     there are two slightly different generations of SID chips: MOS6581
6127     ones and MOS8580 ones.
6128
6129   * "Use reSID emulation" specifies whether the more accurate (and
6130     resource hungry) reSID emulation is turned on or off.
6131
6132   * "reSID sampling method" selects the method for conversion of the
6133     SID output signal to a sampling rate appropriate for playback by
6134     standard digital sound equipment.  Possible settings are:
6135        * "Fast" simply clocks the SID chip at the output sampling
6136          frequency, picking the nearest sample.  This yields acceptable
6137          sound quality, but sampling noise is noticeable in some cases,
6138          especially with SID combined waveforms.  The sound emulation
6139          is still cycle exact.
6140        * "Interpolating" clocks the SID chip each cycle, and calculates
6141          each sample with linear interpolation.  The sampling noise is
6142          now strongly attenuated by the SID external filter (as long as
6143          "Emulate filters" is selected), and the linear interpolation
6144          further improves the sound quality.
6145        * "Resampling" clocks the SID chip each cycle, and uses the
6146          theoretically correct method for sample generation.  This
6147          delivers CD quality sound, but is extremely CPU intensive, and
6148          is thus most useful for non-interactive sound generation.
6149          Unless you have a very fast machine, that is.
6150
6151   * "reSID resampling passband" specifies the percentage of the total
6152     bandwidth allocated to the resampling filter passband.  The work
6153     rate of the resampling filter is inversely proportional to the
6154     remaining transition band percentage.  This implies that e.g.  with
6155     the transition band starting at ~ 20kHz, it is faster to generate
6156     48kHz than 44.1kHz samples.  For CD quality sound generation at
6157     44.1kHz the passband percentage should be set to 90 (i.e.  the
6158     transition band starting at almost 20kHz).
6159
6160* Menu:
6161
6162* SID resources::
6163* SID options::
6164
6165
6166File: vice.info,  Node: SID resources,  Next: SID options,  Prev: SID settings,  Up: SID settings
6167
61687.1.5.1 SID resources
6169.....................
6170
6171'SidStereo'
6172     Integer specifying the amount of emulated extra SIDs.  (0: off, 1:
6173     1 extra sid, 2: 2 extra sids, 3: three extra sids)
6174
6175'SidStereoAddressStart'
6176     Integer specifying the base address of the second SID (x64, x64sc,
6177     xscpu64, x128 and vsid only).  (x128: 0xD420, 0xD440, 0xD460,
6178     0xD480, 0xD4A0, 0xD4C0, 0xD4E0, 0xD700, 0xD720, 0xD740, 0xD760,
6179     0xD780, 0xD7A0, 0xD7C0, 0xD7E0, 0xDE00, 0xDE20, 0xDE40, 0xDE60,
6180     0xDE80, 0xDEA0, 0xDEC0, 0xDEE0, 0xDF00, 0xDF20, 0xDF40, 0xDF60,
6181     0xDF80, 0xDFA0, 0xDFC0, 0xDFE0) (x64, x64sc, xscpu64, vsid: 0xD420,
6182     0xD440, 0xD460, 0xD480, 0xD4A0, 0xD4C0, 0xD4E0, 0xD500, 0xD520,
6183     0xD540, 0xD560, 0xD580, 0xD5A0, 0xD5C0, 0xD5E0, 0xD600, 0xD620,
6184     0xD640, 0xD660, 0xD680, 0xD6A0, 0xD6C0, 0xD6E0, 0xD700, 0xD720,
6185     0xD740, 0xD760, 0xD780, 0xD7A0, 0xD7C0, 0xD7E0, 0xDE00, 0xDE20,
6186     0xDE40, 0xDE60, 0xDE80, 0xDEA0, 0xDEC0, 0xDEE0, 0xDF00, 0xDF20,
6187     0xDF40, 0xDF60, 0xDF80, 0xDFA0, 0xDFC0, 0xDFE0)
6188
6189'SidTripleAddressStart'
6190     Integer specifying the base address of the third SID (x64, x64sc,
6191     xscpu64, x128 and vsid only).  (x128: 0xD420, 0xD440, 0xD460,
6192     0xD480, 0xD4A0, 0xD4C0, 0xD4E0, 0xD700, 0xD720, 0xD740, 0xD760,
6193     0xD780, 0xD7A0, 0xD7C0, 0xD7E0, 0xDE00, 0xDE20, 0xDE40, 0xDE60,
6194     0xDE80, 0xDEA0, 0xDEC0, 0xDEE0, 0xDF00, 0xDF20, 0xDF40, 0xDF60,
6195     0xDF80, 0xDFA0, 0xDFC0, 0xDFE0) (x64, x64sc, xscpu64, vsid: 0xD420,
6196     0xD440, 0xD460, 0xD480, 0xD4A0, 0xD4C0, 0xD4E0, 0xD500, 0xD520,
6197     0xD540, 0xD560, 0xD580, 0xD5A0, 0xD5C0, 0xD5E0, 0xD600, 0xD620,
6198     0xD640, 0xD660, 0xD680, 0xD6A0, 0xD6C0, 0xD6E0, 0xD700, 0xD720,
6199     0xD740, 0xD760, 0xD780, 0xD7A0, 0xD7C0, 0xD7E0, 0xDE00, 0xDE20,
6200     0xDE40, 0xDE60, 0xDE80, 0xDEA0, 0xDEC0, 0xDEE0, 0xDF00, 0xDF20,
6201     0xDF40, 0xDF60, 0xDF80, 0xDFA0, 0xDFC0, 0xDFE0)
6202
6203'SidQuadAddressStart'
6204     Integer specifying the base address of the third SID (x64, x64sc,
6205     xscpu64, x128 and vsid only).  (x128: 0xD420, 0xD440, 0xD460,
6206     0xD480, 0xD4A0, 0xD4C0, 0xD4E0, 0xD700, 0xD720, 0xD740, 0xD760,
6207     0xD780, 0xD7A0, 0xD7C0, 0xD7E0, 0xDE00, 0xDE20, 0xDE40, 0xDE60,
6208     0xDE80, 0xDEA0, 0xDEC0, 0xDEE0, 0xDF00, 0xDF20, 0xDF40, 0xDF60,
6209     0xDF80, 0xDFA0, 0xDFC0, 0xDFE0) (x64, x64sc, xscpu64, vsid: 0xD420,
6210     0xD440, 0xD460, 0xD480, 0xD4A0, 0xD4C0, 0xD4E0, 0xD500, 0xD520,
6211     0xD540, 0xD560, 0xD580, 0xD5A0, 0xD5C0, 0xD5E0, 0xD600, 0xD620,
6212     0xD640, 0xD660, 0xD680, 0xD6A0, 0xD6C0, 0xD6E0, 0xD700, 0xD720,
6213     0xD740, 0xD760, 0xD780, 0xD7A0, 0xD7C0, 0xD7E0, 0xDE00, 0xDE20,
6214     0xDE40, 0xDE60, 0xDE80, 0xDEA0, 0xDEC0, 0xDEE0, 0xDF00, 0xDF20,
6215     0xDF40, 0xDF60, 0xDF80, 0xDFA0, 0xDFC0, 0xDFE0)
6216
6217'SidFilters'
6218     Boolean specifying whether the built-in SID filters must be
6219     emulated.
6220
6221'SidModel'
6222     Integer specifying what model of the SID must be emulated.  (0:
6223     6581, 1: 8580, 2: 8580D, 3: 6581R4, 4: DTVSID)
6224
6225'SidEngine'
6226     Integer specifying what SID engine will be used.  (0: FastSID, 1:
6227     ReSID, 2: Catweasel MKIII, 3: HardSID, 4: ParSID Port 1, 5: ParSID
6228     Port 2, 6: ParSID Port 3)
6229
6230'SidResidSampling'
6231     Integer specifying the sampling method ('0': Fast, '1':
6232     Interpolation, '2': Resampling, '3': Fast Resampling)
6233
6234'SidResidPassband'
6235     Integer specifying the resampling filter passband in percentage of
6236     the total bandwidth ('0 - 90').
6237
6238'SidResidGain'
6239     Integer that specifies reSID gain in percent [97] (90..100)
6240'SidResidFilterBias'
6241     Integer that specifies reSID filter bias, which can be used to
6242     adjust DAC bias in millivolts.  [0] (-5000..5000)
6243
6244
6245File: vice.info,  Node: SID options,  Prev: SID resources,  Up: SID settings
6246
62477.1.5.2 SID command-line options
6248................................
6249
6250'-sidstereo'
6251     Specify the amount of extra SID chips to emulate ('SidStereo').
6252     (0: off, 1: 1 extra sid, 2: 2 extra sids)
6253
6254'-sidstereoaddress <Base address>'
6255     Specifies the start address for the second SID chip
6256     ('SidStereoAddressStart') (x64, x64sc, xscpu64, x128 and vsid
6257     only).  (x128: 0xD420, 0xD440, 0xD460, 0xD480, 0xD4A0, 0xD4C0,
6258     0xD4E0, 0xD700, 0xD720, 0xD740, 0xD760, 0xD780, 0xD7A0, 0xD7C0,
6259     0xD7E0, 0xDE00, 0xDE20, 0xDE40, 0xDE60, 0xDE80, 0xDEA0, 0xDEC0,
6260     0xDEE0, 0xDF00, 0xDF20, 0xDF40, 0xDF60, 0xDF80, 0xDFA0, 0xDFC0,
6261     0xDFE0) (x64, x64sc, xscpu64, vsid: 0xD420, 0xD440, 0xD460, 0xD480,
6262     0xD4A0, 0xD4C0, 0xD4E0, 0xD500, 0xD520, 0xD540, 0xD560, 0xD580,
6263     0xD5A0, 0xD5C0, 0xD5E0, 0xD600, 0xD620, 0xD640, 0xD660, 0xD680,
6264     0xD6A0, 0xD6C0, 0xD6E0, 0xD700, 0xD720, 0xD740, 0xD760, 0xD780,
6265     0xD7A0, 0xD7C0, 0xD7E0, 0xDE00, 0xDE20, 0xDE40, 0xDE60, 0xDE80,
6266     0xDEA0, 0xDEC0, 0xDEE0, 0xDF00, 0xDF20, 0xDF40, 0xDF60, 0xDF80,
6267     0xDFA0, 0xDFC0, 0xDFE0)
6268
6269'-sidtripleaddress ADDRESS'
6270     Specifies the start address for the third SID chip
6271     ('SidTripleAddressStart') (x64, x64sc, xscpu64, x128 and vsid
6272     only).  (x128: 0xD420, 0xD440, 0xD460, 0xD480, 0xD4A0, 0xD4C0,
6273     0xD4E0, 0xD700, 0xD720, 0xD740, 0xD760, 0xD780, 0xD7A0, 0xD7C0,
6274     0xD7E0, 0xDE00, 0xDE20, 0xDE40, 0xDE60, 0xDE80, 0xDEA0, 0xDEC0,
6275     0xDEE0, 0xDF00, 0xDF20, 0xDF40, 0xDF60, 0xDF80, 0xDFA0, 0xDFC0,
6276     0xDFE0) (x64, x64sc, xscpu64, vsid: 0xD420, 0xD440, 0xD460, 0xD480,
6277     0xD4A0, 0xD4C0, 0xD4E0, 0xD500, 0xD520, 0xD540, 0xD560, 0xD580,
6278     0xD5A0, 0xD5C0, 0xD5E0, 0xD600, 0xD620, 0xD640, 0xD660, 0xD680,
6279     0xD6A0, 0xD6C0, 0xD6E0, 0xD700, 0xD720, 0xD740, 0xD760, 0xD780,
6280     0xD7A0, 0xD7C0, 0xD7E0, 0xDE00, 0xDE20, 0xDE40, 0xDE60, 0xDE80,
6281     0xDEA0, 0xDEC0, 0xDEE0, 0xDF00, 0xDF20, 0xDF40, 0xDF60, 0xDF80,
6282     0xDFA0, 0xDFC0, 0xDFE0)
6283
6284'-sidquadaddress ADDRESS'
6285     Specifies the start address for the forth SID chip
6286     ('SidQuadAddressStart') (x64, x64sc, xscpu64, x128 and vsid only).
6287     (x128: 0xD420, 0xD440, 0xD460, 0xD480, 0xD4A0, 0xD4C0, 0xD4E0,
6288     0xD700, 0xD720, 0xD740, 0xD760, 0xD780, 0xD7A0, 0xD7C0, 0xD7E0,
6289     0xDE00, 0xDE20, 0xDE40, 0xDE60, 0xDE80, 0xDEA0, 0xDEC0, 0xDEE0,
6290     0xDF00, 0xDF20, 0xDF40, 0xDF60, 0xDF80, 0xDFA0, 0xDFC0, 0xDFE0)
6291     (x64, x64sc, xscpu64, vsid: 0xD420, 0xD440, 0xD460, 0xD480, 0xD4A0,
6292     0xD4C0, 0xD4E0, 0xD500, 0xD520, 0xD540, 0xD560, 0xD580, 0xD5A0,
6293     0xD5C0, 0xD5E0, 0xD600, 0xD620, 0xD640, 0xD660, 0xD680, 0xD6A0,
6294     0xD6C0, 0xD6E0, 0xD700, 0xD720, 0xD740, 0xD760, 0xD780, 0xD7A0,
6295     0xD7C0, 0xD7E0, 0xDE00, 0xDE20, 0xDE40, 0xDE60, 0xDE80, 0xDEA0,
6296     0xDEC0, 0xDEE0, 0xDF00, 0xDF20, 0xDF40, 0xDF60, 0xDF80, 0xDFA0,
6297     0xDFC0, 0xDFE0)
6298
6299'-sidenginemodel <engine and model>'
6300     Specify engine and model for the emulated SID chip ('SidEngine',
6301     'SidModel').  (FastSID 6581: 0/fast/fastold/fast6581, FastSID 8580:
6302     1/fastnew/fast8580, ReSID 6581: 256/resid/residold/resid6581, ReSID
6303     8580: 257/residnew/resid8580, ReSID 8580 + digiboost:
6304     258/residdigital/residd/residnewd/resid8580d, DTVSID:
6305     260/dtv/c64dtv/dtvsid, Catweasel MKIII:
6306     512/catweaselmkiii/catweasel3/catweasel/cwmkiii/cw3/cw, HardSID:
6307     768/hardsid/hard/hs, ParSID Port 1: 1024/parsid/parsid1/par1/lpt1,
6308     ParSID Port 2: 1280/parsid2/par2/lpt2 ParSID Port 3:
6309     1536/parsid3/par3/lpt3)
6310
6311'-sidfilters'
6312'+sidfilters'
6313     Enable/disable emulation of the built-in SID filters
6314     ('SidFilters=1', 'SidFilters=0').
6315
6316'-residsamp METHOD'
6317     Specifies the sampling method; fast ('SidResidSampling=0'),
6318     interpolating ('SidResidSampling=1'), resampling
6319     ('SidResidSampling=2'), fast resampling ('SidResidSampling=3').
6320
6321'-residpass PERCENTAGE'
6322     Specifies the resampling filter passband in percentage of the total
6323     bandwidth ('SidResidPassband=0-90').
6324
6325'-residgain PERCENTAGE'
6326     Specifies reSID gain in percent (90 - 100).
6327
6328'-residfilterbias <number>'
6329     reSID filter bias setting, which can be used to adjust DAC bias in
6330     millivolts.
6331
6332
6333File: vice.info,  Node: C64 I/O extension settings,  Next: C64 system ROM settings,  Prev: SID settings,  Up: C64/128-specific
6334
63357.1.6 C64 I/O extension settings
6336--------------------------------
6337
6338I/O extensions are (usually) cartridges which do not map into ROM space,
6339but use only the I/O space at address range $DE00 ... $DEFF and/or $DF00
6340... $DFFF.
6341
6342Please use these extensions only when needed, as they might cause
6343compatibility problems.
6344
6345The following I/O extensions are available:
6346
6347   * ACIA (Swiftlink, Turbo232)
6348
6349   * DigiMAX
6350
6351   * DS12C887 RTC
6352
6353   * Ethernet (The Final Ethernet, RR-Net)
6354
6355   * GEO-RAM
6356
6357   * MIDI (Passport, Datel, Maplin, Namesoft, Sequential)
6358
6359   * REU - The "RAM Expansion Module" extension emulates a standard
6360     Commodore RAM Expansion Unit; this can be used with GEOS and other
6361     programs that are designed to take advantage of it.  This currently
6362     works only in the C64 emulator.
6363
6364   * SFX Sound Expander
6365
6366   * SFX Sound Sampler
6367
6368* Menu:
6369
6370* C64 I/O extension resources::
6371* C64 I/O extension options::
6372
6373
6374File: vice.info,  Node: C64 I/O extension resources,  Next: C64 I/O extension options,  Prev: C64 I/O extension settings,  Up: C64 I/O extension settings
6375
63767.1.6.1 C64 I/O extension resources
6377...................................
6378
6379'DIGIMAX'
6380     Boolean specifying whether the DigiMAX cartridge should be emulated
6381     or not.
6382
6383'DIGIMAXbase'
6384     Integer specifying the DigiMAX base address.  (0xDD00: useport,
6385     0xDE00, 0xDE20, 0xDE40, 0xDE60, 0xDE80, 0xDEA0, 0xDEC0, 0xDEE0,
6386     0xDF00, 0xDF20, 0xDF40, 0xDF60, 0xDF80, 0xDFA0, 0xDFC0, 0xDFE0)
6387
6388'DS12C887RTC'
6389     Boolean specifying whether the DS12C887 RTC cartridge should be
6390     emulated or not.
6391
6392'DS12C887RTCbase'
6393     Integer specifying the DS12C887 RTC base address.  x128: (0xD700,
6394     0xDE00, 0xDF00) x64, x64sc, xscpu64: (0xD500, 0xD600, 0xD700,
6395     0xDE00, 0xDF00)
6396
6397'DS12C887RTCRunMode'
6398     Boolean specifying whether the DS12C887 RTC cartridge starts out
6399     running or halted.  (0: halted, 1: running)
6400
6401'DS12C887RTCSave'
6402     Boolean specifying whether the DS12C887 RTC data should be saved
6403     when changed or not.
6404
6405'ETHERNETCART_ACTIVE'
6406     Boolean that specifies whether the CS8900 ethernet interface
6407     emulation is active.
6408'ETHERNET_INTERFACE'
6409     String specifying the device name of the ethernet device to use for
6410     the emulation.
6411'ETHERNET_DISABLED'
6412     Boolean that specified whether ethernet emulation has been disabled
6413     because it is not available in the current configuration.
6414'ETHERNETCARTMode'
6415     Boolean that specifies whether RR-Net compatible mapping is
6416     enabled.
6417'ETHERNETCARTBase'
6418     Integer specifying the I/O base address of the emulated ethernet
6419     cartridge,
6420
6421'GEORAM'
6422     Boolean specifying whether the GEO-RAM cartridge should be emulated
6423     or not.  (x64, x64sc, x128).
6424
6425'GEORAMfilename'
6426     String specifying the filename of the GEORAM image.  (x64, x64sc,
6427     x128).
6428
6429'GEORAMImageWrite'
6430     Boolean, if true write back the GEO-RAM image file automatically,
6431     incase the RAM contents changed, when detaching or quitting the
6432     emulator.  (x64, x64sc, x128).
6433
6434'GEORAMsize'
6435     Integer specifying the size of the emulated GEO-RAM in KB. (64,
6436     128, 256, 512, 1024, 2048, 4096).  (x64, x64sc, x128).
6437
6438'MIDIEnable'
6439     Boolean specifying whether the MIDI cartridge should be emulated or
6440     not (x64, x64sc, xscpu64, x128 only, and only if MIDI support is
6441     enabled and available at compile time).
6442
6443'MIDIMode'
6444     Integer specifying the type of emulated MIDI interface (x64, x64sc,
6445     xscpu64 and x128 only, and only if MIDI support is enabled and
6446     available at compile time).  (0: Sequential, 1: Passport/Syntech,
6447     2: DATEL/Siel/JMS, 3: Namesoft, 4: Maplin)
6448
6449'REU'
6450     Boolean specifying whether the RAM Expansion Module should be
6451     emulated or not.
6452
6453'REUfilename'
6454     String specifying the filename of the REU image.
6455
6456'REUImageWrite'
6457     Boolean, if true write back the REU image file automatically, in
6458     case the RAM contents changed, when detaching or quitting the
6459     emulator.
6460
6461'REUsize'
6462     Integer specifying the size of the emulated REU in KB. (128, 256,
6463     512, 1024, 2048, 4096, 8192, 16384)
6464
6465'SFXSoundExpander'
6466     Boolean specifying whether the SFX Sound Expander should be
6467     emulated or not.
6468
6469'SFXSoundExpanderChip'
6470     Integer specifying which YM chip is emulated.  (3526, 3812)
6471
6472'SFXSoundSampler'
6473     Boolean specifying whether the SFX Sound Sampler should be emulated
6474     or not.
6475
6476
6477File: vice.info,  Node: C64 I/O extension options,  Prev: C64 I/O extension resources,  Up: C64 I/O extension settings
6478
64797.1.6.2 C64 I/O extension command-line options
6480..............................................
6481
6482'-digimax'
6483'+digimax'
6484     Enable/disable the DigiMAX cartridge ('DIGIMAX=1', 'DIGIMAX=0').
6485
6486'-digimaxbase <base address>'
6487     Base address of the DigiMAX cartridge ('DIGIMAXbase').  (0xDD00:
6488     userport, 0xDE00, 0xDE20, 0xDE40, 0xDE60, 0xDE80, 0xDEA0, 0xDEC0,
6489     0xDEE0, 0xDF00, 0xDF20, 0xDF40, 0xDF60, 0xDF80, 0xDFA0, 0xDFC0,
6490     0xDFE0)
6491
6492'-ds12c887rtc'
6493'+ds12c887rtc'
6494     Enable/disable the DS12C887 RTC cartridge ('DS12C887RTC=1',
6495     'DS12C887RTC=0').
6496
6497'-ds12c887rtcbase <base address>'
6498     Base address of the DS12C887 RTC cartridge ('DS12C887RTCbase').
6499     x128: (0xD700, 0xDE00, 0xDF00) x64, x64sc, xscpu64: (0xD500,
6500     0xD600, 0xD700, 0xDE00, 0xDF00)
6501
6502'-ds12c887rtchalted'
6503     Set the DS12C887 RTC oscillator to 'halted'
6504     ('DS12C887RTCRunMode=0').
6505'-ds12c887rtcrunning'
6506     Set the DS12C887 RTC oscillator to 'running'
6507     ('DS12C887RTCRunMode=1').
6508
6509'-ds12c887rtcsave'
6510'+ds12c887rtcsave'
6511     Enable/disable saving of the DS12C887 RTC data when changed
6512     ('DS12C887RTCSave=1', 'DS12C887RTCSave=0').
6513
6514'-miditype <0-4>'
6515     Set MIDI interface type ('MIDIMode') (x64, x64sc, xscpu64 and x128
6516     only, and only if MIDI support is enabled and available at compile
6517     time).  (0: Sequential, 1: Passport/Syntech, 2: DATEL/Siel/JMS, 3:
6518     Namesoft, 4: Maplin)
6519
6520'-midi'
6521'+midi'
6522     Enable/disable MIDI emulation ('MIDIEnable=1', 'MIDIEnable=0')
6523     (x64, x64sc, xscpu64 and x128 only, and only if MIDI support is
6524     enabled and available at compile time).  (0: Sequential, 1:
6525     Passport/Syntech, 2: DATEL/Siel/JMS, 3: Namesoft, 4: Maplin)
6526
6527'-georam'
6528'+georam'
6529     Enable/disable the GEORAM expansion unit ('GEORAM=1', 'GEORAM=0').
6530
6531'-cartgeoram <name>'
6532     Attach raw GEO-RAM cartridge image.
6533
6534'-georamimage <name>'
6535     Specify name of GEORAM image ('GEORAMfilename').
6536
6537'-georamimagerw'
6538'+georamimagerw'
6539     Allow/disallow writing to GEORAM image ('GEORAMImageWrite=1',
6540     'GEORAMImageWrite=0').
6541
6542'-georamsize <size in KB>'
6543     Size of the GEORAM expansion unit ('GEORAMsize').  (64, 128, 256,
6544     512, 1024, 2048, 4096)
6545
6546'-reu'
6547'+reu'
6548     Enable/disable emulation of the RAM Expansion Module ('REU=1',
6549     'REU=0').
6550
6551'-cartreu <name>'
6552     Attach raw REU cartridge image.
6553
6554'-reuimage <name>'
6555     Specify name of REU image ('REUfilename').
6556
6557'-reuimagerw'
6558'+reuimagerw'
6559     Allow/disallow writing to REU image ('REUImageWrite=1',
6560     'REUImageWrite=0').
6561
6562'-reusize <size in KB>'
6563     Size of the RAM expansion unit ('REUsize').  (128, 256, 512, 1024,
6564     2048, 4096, 8192, 16384)
6565
6566'-sfxse'
6567'+sfxse'
6568     Enable/disable the SFX soundexpander cartridge
6569     ('SFXSoundExpander=1', 'SFXSoundExpander=0').
6570
6571'-sfxsetype <type>'
6572     Set YM chip type ('SFXSoundExpanderChip').  (3526, 3812)
6573
6574'-sfxss'
6575'+sfxss'
6576     Enable/disable the SFX Sound Sampler cartridge
6577     ('SFXSoundSampler=1', 'SFXSoundSampler=0').
6578
6579'-cs8900ioif <name>'
6580     Set the system ethernet interface for Ethernet Cartridge emulation
6581
6582'-ethernetcart'
6583'+ethernetcart'
6584     Disable/Enable the Ethernet Cartridge (TFE/RR-Net/64NIC/FB-NET)
6585
6586'-ethernetcartmode <Mode>'
6587     Mode of Ethernet Cartridge (0: TFE, 1: RR-Net)
6588
6589'-ethernetcartbase <Base address>'
6590     Base address of the Ethernet Cartridge.  (0xDE00, 0xDE10, 0xDE20,
6591     0xDE30, 0xDE40, 0xDE50, 0xDE60, 0xDE70, 0xDE80, 0xDE90, 0xDEA0,
6592     0xDEB0, 0xDEC0, 0xDED0, 0xDEE0, 0xDEF0, 0xDF00, 0xDF10, 0xDF20,
6593     0xDF30, 0xDF40, 0xDF50, 0xDF60, 0xDF70, 0xDF80, 0xDF90, 0xDFA0,
6594     0xDFB0, 0xDFC0, 0xDFD0, 0xDFE0, 0xDFF0)
6595
6596'-tfe'
6597     Enable the Ethernet Cartridge in TFE ("The Final Ethernet")
6598     compatible mode and set default I/O address
6599
6600'-rrnet'
6601     Enable the Ethernet Cartridge in RR-Net compatible mode and set
6602     default I/O address
6603
6604'-burstmod <value>'
6605     Set the kind of burst modification.  This emulates the fast serial
6606     bus connection as described at
6607     <http://www.cs.tut.fi/~albert/Dev/burst/>, with the wire to the
6608     tape port cut ('BurstMod').  (0: None, 1: CIA-1, 2: CIA-2)
6609
6610
6611File: vice.info,  Node: C64 system ROM settings,  Prev: C64 I/O extension settings,  Up: C64/128-specific
6612
66137.1.7 C64 system ROM settings
6614-----------------------------
6615
6616These settings can be used to control what system ROMs are loaded in the
6617C64 emulator at startup.  They cannot be changed from the menus.
6618
6619* Menu:
6620
6621* C64 system ROM resources::
6622* C64 system ROM options::
6623
6624
6625File: vice.info,  Node: C64 system ROM resources,  Next: C64 system ROM options,  Prev: C64 system ROM settings,  Up: C64 system ROM settings
6626
66277.1.7.1 C64 system ROM resources
6628................................
6629
6630'BasicName'
6631     String specifying the name of the Basic ROM (default 'basic').
6632
6633'ChargenName'
6634     String specifying the name of the character generator ROM (default
6635     'chargen').
6636
6637'KernalName'
6638     String specifying the name of the Kernal ROM (default 'kernal').
6639
6640'KernalRev'
6641     String specifying the Kernal revision.  This resource can be used
6642     to control what revision of the C64 kernal is being used; it cannot
6643     be changed at runtime.  VICE is able to automatically convert one
6644     ROM revision into another, by manually patching the loaded image.
6645     This way, it is possible to use any of the ROM revisions without
6646     changing the ROM set.  Valid values are:
6647
6648     '0'
6649          Kernal revision 0;
6650     '3'
6651          Kernal revision 3;
6652     'sx'
6653     '67'
6654          Commodore SX-64 ROM;
6655     '100'
6656     '4064'
6657          Commodore 4064 (also known as "PET64" or "Educator 64") ROM.
6658
6659
6660File: vice.info,  Node: C64 system ROM options,  Prev: C64 system ROM resources,  Up: C64 system ROM settings
6661
66627.1.7.2 C64 system ROM command-line options
6663...........................................
6664
6665'-basic <name>'
6666     Specify filename of the Basic ROM file ('BasicName').
6667
6668'-chargen <name>'
6669     Specify filename of the character generator ROM file
6670     ('ChargenName').
6671
6672'-kernal <name>'
6673     Specify filename of the Kernal ROM file ('KernalName').
6674
6675'-kernalrev <revision>'
6676     Specify Kernal revision ('KernalRev').  (1/2/3, 67/sx, 100/4064)
6677
66787.1.8 C64 settings
6679------------------
6680
66817.1.8.1 C64 resources
6682.....................
6683
6684'GlueLogic'
6685     Integer specifying the type of emulated glue-logic.  (0: discrete,
6686     1: custom IC)
6687
6688'BurstMod'
6689     Integer specifying the kind of Burst-Mode modification.  (0: None,
6690     1: CIA-1, 2: CIA-2)
6691
6692'BoardType'
6693     Integer specifying the type of emulated board (not available in
6694     xscpu64).  (0: C64, 1: MAX)
6695
6696'IECReset'
6697     Integer specifying if the IEC bus resets when the CPU resets.  (0:
6698     No, 1: Yes)
6699
6700'MemoryHack'
6701     Integer specifying what memory expansion hack is active.  (0: None,
6702     1: C64 256K, 2: PLUS60K, 3: PLUS256K)
6703
6704'PLUS60Kfilename'
6705     String specifying the filename of the PLUS60K RAM image.
6706
6707'PLUS60Kbase'
6708     Integer that specifies the base address of the PLUS60K RAM
6709     expansion.  (0xD040, 0xD100)
6710
6711'PLUS256Kfilename'
6712     String specifying the filename of the PLUS256K RAM image.
6713
6714'C64_256Kfilename'
6715     String specifying the filename of the 256K RAM image.
6716
6717'C64_256Kbase'
6718     Integer that specifies the base address of the 256K RAM expansion.
6719     (0xDE00/0xDE80/0xDF00/0xDF80)
6720
6721'MachineVideoStandard'
6722     Integer that specifies the video standard of the emulated machine
6723     (0: PAL, 1: Old PAL, 2: NTSC, 3: Old NTSC, 4: PAL-N).
6724
6725'CPMCart'
6726     Boolean that specifies if a CP/M cartridge is attached.
6727
6728'TapecartEnabled'
6729     Boolean that specifies if a tapecart is attached.
6730
6731'TapecartUpdateTCRT'
6732     Boolean, if true write back the tapecart memory contents back to
6733     the .tcrt file when detaching the image or quitting the emulator.
6734
6735'TapecartOptimizeTCRT'
6736     Boolean, when set to true the .tcrt image will be optimized by
6737     leaving out blank space at the end when saving.
6738
6739'TapecartLogLevel'
6740     Integer that specifies the tapecart emulation log level.  At the
6741     default level of 0, only errors are logged.  Level 1 additionally
6742     logs mode changes and command bytes and level 2 adds details of
6743     command parameters.
6744
6745'TapecartTCRTFilename'
6746     String specifying the file name of the current tapecart image.
6747
67487.1.8.2 C64 command-line options
6749................................
6750
6751'-gluelogictype <type>'
6752     Set glue logic type ('GlueLogic').  (0: discrete, 1: 252535-01)
6753
6754'-iecreset <value>'
6755     Set IEC reset bahaviour ('IECReset').  (0: Do not reset with CPU
6756     reset, 1: Reset with CPU reset)
6757
6758'-memoryexphack <device>'
6759     Set active memory expansion hack ('MemoryHack').  (0: None, 1: C64
6760     256K, 2: PLUS60K, 3: PLUS256K)
6761
6762'-plus60kimage <name>'
6763     Specify name of PLUS60K image ('PLUS60Kfilename').
6764
6765'-plus60kbase <base address>'
6766     Base address of the PLUS60K expansion ('PLUS60Kbase').
6767     (0xD040/0xD100)
6768
6769'-plus256kimage <name>'
6770     Specify name of PLUS256K image ('PLUS256Kfilename').
6771
6772'-256kimage <name>'
6773     Specify name of 256K image ('C64_256Kfilename').
6774
6775'-256kbase <base address>'
6776     Base address of the 256K expansion ('C64_256Kbase').  (0xDE00,
6777     0xDE80, 0xDF00, 0xDF80)
6778
6779'-pal'
6780     Use PAL sync factor ('MachineVideoStandard=1').
6781
6782'-ntsc'
6783     Use NTSC sync factor ('MachineVideoStandard=2').
6784
6785'-ntscold'
6786     Use old NTSC sync factor ('MachineVideoStandard=3').
6787
6788'-paln'
6789     Use PAL-N sync factor ('MachineVideoStandard=4').
6790
6791'-model <Model>'
6792     Set the C64 model ('VICIIModel', 'CIA1Model', 'CIA2Model',
6793     'GlueLogic', 'BoardType', 'IECReset', 'KernalName', 'ChargenName',
6794     'SidEngine', 'SidModel') (x64 and x64sc only).  (c64/c64c/c64old,
6795     ntsc/newntsc/oldntsc, drean, jap, c64gs, pet64, ultimax)
6796
6797'-cpmcart'
6798'+cpmcart'
6799     Enable/disable the CP/M cartridge ('CPMCart=1', 'CPMCart=0')
6800
6801'-tapecart'
6802'+tapecart'
6803     Enable/disable tapecart emulation ('TapecartEnabled=1',
6804     'TapecartEnabled=0')
6805
6806'-tcrt <name>'
6807     Specify tapecart .tcrt image filename ('TapecartTCRTFilename')
6808
6809'-tapecartupdatetcrt'
6810'+tapecartupdatetcrt'
6811     Specify if the attached .tcrt image should be updated when the
6812     emulated tapecart is written to.  ('TapecartUpdateTCRT=1',
6813     'TapecartUpdateTCRT=0')
6814
6815'-tapecartoptimizetcrt'
6816'+tapecartoptimizetcrt'
6817     Specify if writing to a .tcrt file should optimize its size by
6818     leaving out blank space at the end.  ('TapecartOptimizeTCRT=1',
6819     'TapecartOptimizeTCRT=0')
6820
6821'-tapecartloglevel <number>'
6822     Specify the tapecart log level.  The default level of 0 only logs
6823     errors.  Level 1 additionally logs mode changes and command bytes
6824     and level 2 adds details of command parameters.
6825
6826
6827File: vice.info,  Node: C128-specific,  Next: C64DTV-specific,  Prev: C64/128-specific,  Up: Machine-specific features
6828
68297.2 C128-specific commands and settings
6830=======================================
6831
68327.2.1 VDC settings
6833------------------
6834
68357.2.1.1 VDC resources
6836.....................
6837
6838'VDC64KB'
6839     Boolean to enabled/disable full 64k video ram.
6840
6841'VDCRevision'
6842     Integer specifying the VDC hardware revision (0: Rev 0, 1: Rev 1,
6843     2: Rev 2).
6844
6845'VDCVideoCache'
6846     Boolean specifying whether the video cache is turned on.
6847
6848'VDCDoubleSize'
6849     Boolean specifying whether double-size mode is turned on.
6850
6851'VDCDoubleScan'
6852     Boolean specifying whether double-scan mode is turned on.
6853
6854'VDCStretchVertical'
6855     Boolean specifying whether vertical stretching is turned on.
6856
6857'VDCPaletteFile'
6858     String specifying the name of the palette file being used.  The
6859     '.vpl' extension is optional.
6860
6861'VDCExternalPalette'
6862     Boolean specifying whether to use external palette file or not.
6863
6864'VDCColorSaturation'
6865     Integer specifying saturation of internal calculated palette.
6866     (0..2000)
6867
6868'VDCColorContrast'
6869     Integer specifying contrast of internal calculated palette.
6870     (0..2000)
6871
6872'VDCColorBrightness'
6873     Integer specifying brightness of internal calculated palette.
6874     (0..2000)
6875
6876'VDCColorGamma'
6877     Integer specifying gamma of internal calculated palette.  (0..4000)
6878
6879'VDCColorTint'
6880     Integer specifying tint of internal calculated palette.  (0..2000)
6881
6882'VDCPALScanLineShade'
6883     Integer specifying amount of scan line shading for the CRT
6884     emulation.  (0..1000)
6885
6886'VDCPALBlur'
6887     Integer specifying amount of horizontal blur for the CRT emulation.
6888     (0..1000)
6889
6890'VDCPALOddLinePhase'
6891     Integer specifying phase for color carrier in odd lines.  (0..2000)
6892
6893'VDCPALOddLineOffset'
6894     Integer specifying phase offset for color carrier in odd lines.
6895     (0..2000)
6896
6897'VDCAudioLeak'
6898     Boolean specifying whether to enable/disable video to audio leak
6899     emulation.
6900
6901'VDCFilter'
6902     Integer specifying rendering filter (0: None, 1: CRT emulation, 2:
6903     Scale2x)
6904
69057.2.1.2 VDC command-line options
6906................................
6907
6908'-VDCvcache'
6909'+VDCvcache'
6910     Enable/disable the video cache ('VDCVideoCache=1',
6911     'VDCVideoCache=0').
6912
6913'-VDCdsize'
6914'+VDCdsize'
6915     Enable/disable double size ('VDCDoubleSize=1', 'VDCDoubleSize=0').
6916
6917'-VDCstretchvertical'
6918'+VDCstretchvertical'
6919     Enable/Disable vertical stretching ('VDCStretchVertical=1',
6920     'VDCStretchVertical=0').
6921
6922'-VDCdscan'
6923'+VDCdscan'
6924     Enable/disable double scan ('VDCDoubleScan=1', 'VDCDoubleScan=0').
6925
6926'-VDCintpal'
6927     Use an internal calculated palette ('VDCExternalPalette=0').
6928
6929'-VDCextpal'
6930     Use an external palette (file) ('VDCExternalPalette=1').
6931
6932'-VDCpalette <name>'
6933     Specify name of file of external palette ('VDCPaletteFile').
6934
6935'-VDC16KB'
6936     Set the VDC memory size to 16KB ('VDC64KB=0').
6937
6938'-VDC64KB'
6939     Set the VDC memory size to 64KB ('VDC64KB=1').
6940
6941'-VDCRevision <number>'
6942     Set VDC revision ('VDCRevision').  (0..2)
6943
6944'-VDCsaturation <0-2000>'
6945     Set saturation of internal calculated palette
6946     ('VDCColorSaturation').
6947
6948'-VDCcontrast <0-2000>'
6949     Set contrast of internal calculated palette ('VDCColorContrast').
6950
6951'-VDCbrightness <0-2000>'
6952     Set brightness of internal calculated palette
6953     ('VDCColorBrightness').
6954
6955'-VDCgamma <0-4000>'
6956     Set gamma of internal calculated palette ('VDCColorGamma').
6957
6958'-VDCtint <0-2000>'
6959     Set tint of internal calculated palette ('VDCColorTint').
6960
6961'-VDCoddlinesphase <0-2000>'
6962     Set phase for color carrier in odd lines ('VDCPALOddLinePhase').
6963
6964'-VDCoddlinesoffset <0-2000>'
6965     Set phase offset for color carrier in odd lines
6966     ('VDCPALOddLineOffset').
6967
6968'-VDCcrtblur <0-1000>'
6969     Amount of horizontal blur for the CRT emulation ('VDCPALBlur').
6970
6971'-VDCcrtscanlineshade <0-1000>'
6972     Amount of scan line shading for the CRT emulation
6973     ('VDCPALScanLineShade').
6974
6975'-VDCaudioleak'
6976'+VDCaudioleak'
6977     Enable/disable video to audio leak emulation ('VDCAudioLeak=1',
6978     'VDCAudioLeak=0').
6979
6980'-VDCfilter <Mode>'
6981     Select rendering filter ('VDCFilter').  (0: None, 1: CRT emulation,
6982     2: Scale2x)
6983
69847.2.2 C128 system ROM settings
6985------------------------------
6986
69877.2.2.1 C128 system ROM resources
6988.................................
6989
6990'ChargenIntName'
6991     String specifying the filename of the international character
6992     generator ROM image.
6993
6994'ChargenDEName'
6995     String specifying the filename of the German character generator
6996     ROM image.
6997
6998'ChargenFRName'
6999     String specifying the filename of the French character generator
7000     ROM image.
7001
7002'ChargenSEName'
7003     String specifying the filename of the Swedish character generator
7004     ROM image.
7005
7006'ChargenCHName'
7007     String specifying the filename of the Swiss character generator ROM
7008     image.
7009
7010'ChargenNOName'
7011     String specifying the filename of the Norwegian character generator
7012     ROM image.
7013
7014'KernalIntName'
7015     String specifying the filename of the international Kernal ROM
7016     image.
7017
7018'KernalDEName'
7019     String specifying the filename of the German Kernal ROM image.
7020
7021'KernalFIName'
7022     String specifying the filename of the Finnish Kernal ROM image.
7023
7024'KernalFRName'
7025     String specifying the filename of the French Kernal ROM image.
7026
7027'KernalITName'
7028     String specifying the filename of the Italian Kernal ROM image.
7029
7030'KernalNOName'
7031     String specifying the filename of the Norwegian Kernal ROM image.
7032
7033'KernalSEName'
7034     String specifying the filename of the Swedish Kernal ROM image.
7035
7036'KernalCHName'
7037     String specifying the filename of the Swiss Kernal ROM image.
7038
7039'BasicLoName'
7040'BasicHiName'
7041     Strings specifying the filename of the Basic ROM images.
7042
7043'Kernal64Name'
7044     String specifying the filename of the C64 Kernal ROM image.
7045
7046'Basic64Name'
7047     String specifying the filename of the C64 Basic ROM image.
7048
7049'InternalFunctionROM'
7050     Integer specifying the internal function ROM type (0: None, 1: ROM,
7051     2: RAM, 3: RTC).
7052
7053'InternalFunctionName'
7054     String specifying the filename of the ROM image for the internal
7055     function ROM.
7056
7057'InternalFunctionROMRTCSave'
7058     Boolean to enable/disable the saving of the Internal Function RTC
7059     data when changed.
7060
7061'ExternalFunctionROM'
7062     Integer specifying the external function ROM type (0: None, 1: ROM,
7063     2: RAM, 3: RTC)
7064
7065'ExternalFunctionName'
7066     String specifying the filename of the ROM image for the external
7067     function ROM.
7068
7069'ExternalFunctionROMRTCSave'
7070     Boolean to enable/disable the saving of the External Function RTC
7071     data when changed.
7072
70737.2.2.2 C128 system ROM command-line options
7074............................................
7075
7076'-basic64 <name>'
7077     Specify name of C64 mode BASIC ROM image ('Basic64Name').
7078
7079'-kernal64 <name>'
7080     Specify name of C64 mode Kernal ROM image ('Kernal64Name').
7081
7082'-basiclo <name>'
7083     Specify name of BASIC ROM image (lower part) ('BasicLoName').
7084
7085'-basichi <name>'
7086     Specify name of BASIC ROM image (higher part) ('BasicHiName').
7087
7088'-kernal <name>'
7089     Specify name of international Kernal ROM image ('KernalIntName').
7090
7091'-kernalde <name>'
7092     Specify name of German Kernal ROM image ('KernalDEName').
7093
7094'-kernalfi <name>'
7095     Specify name of Finnish Kernal ROM image ('KernalFIName').
7096
7097'-kernalfr <name>'
7098     Specify name of French Kernal ROM image ('KernalFRName').
7099
7100'-kernalit <name>'
7101     Specify name of Italian Kernal ROM image ('KernalITName').
7102
7103'-kernalno <name>'
7104     Specify name of Norwegian Kernal ROM image ('KernalNOName').
7105
7106'-kernalse <name>'
7107     Specify name of Swedish Kernal ROM image ('KernalSEName').
7108
7109'-kernalch <name>'
7110     Specify name of Swiss Kernal ROM image ('KernalCHName').
7111
7112'-chargen <name>'
7113     Specify name of international character generator ROM image
7114     ('ChargenIntName').
7115
7116'-chargde <name>'
7117     Specify name of German character generator ROM image
7118     ('ChargenDEName').
7119
7120'-chargfr <name>'
7121     Specify name of French character generator ROM image
7122     ('ChargenFRName').
7123
7124'-chargse <name>'
7125     Specify name of Swedish character generator ROM image
7126     ('ChargenSEName').
7127
7128'-chargch <name>'
7129     Specify name of Swiss character generator ROM image
7130     ('ChargenCHName').
7131
7132'-chargno <name>'
7133     Specify name of Norwegian character generator ROM image
7134     ('ChargenNOName').
7135
7136'-intfunc <type>'
7137     Set the internal Function ROM type ('InternalFunctionROM').  (0:
7138     None, 1: ROM, 2: RAM, 3: RTC)
7139
7140'-intfrom <name>'
7141     Specify name of internal Function ROM image
7142     ('InternalFunctionName').
7143
7144'-intfuncrtcsave'
7145'+intfuncrtcsave'
7146     Enable/disable the saving of the Internal Function RTC data when
7147     changed ('InternalFunctionROMRTCSave=1',
7148     'InternalFunctionROMRTCSave=0').
7149
7150'-extfunc <type>'
7151     Set the external Function ROM type ('ExternalFunctionROM').  (0:
7152     None, 1: ROM, 2: RAM, 3: RTC)
7153
7154'-extfrom <name>'
7155     Specify name of external Function ROM image
7156     ('ExternalFunctionName').
7157
7158'-extfuncrtcsave'
7159'+extfuncrtcsave'
7160     Enable/disable the saving of the External Function RTC data when
7161     changed ('ExternalFunctionROMRTCSave=1',
7162     'ExternalFunctionROMRTCSave=0').
7163
71647.2.3 C128 settings
7165-------------------
7166
71677.2.3.1 C128 resources
7168......................
7169
7170'C128ColumnKey'
7171     Boolean specifying the status of the 40/80 columns key.  (0: Not
7172     pressed, 1: Pressed)
7173
7174'Go64Mode'
7175     Boolean, if true enter C64 mode on reset.
7176
7177'C128FullBanks'
7178     Boolean to enable/disable RAM banks 2 and 3.
7179
7180'MachineType'
7181     Integer specifying the C128 machine type.  (0: International, 1:
7182     Finnish, 2: French, 3: German, 4: Italian, 5: Norwegian, 6:
7183     Swedish)
7184
7185'MachineVideoStandard'
7186     Integer that specifies the video standard of the emulated machine
7187     (1: PAL, 2: NTSC).
7188
71897.2.3.2 C128 command-line options
7190.................................
7191
7192'-40col'
7193     Activate 40 column mode ('C128ColumnKey=1').
7194
7195'-80col'
7196     Activate 80 column mode ('C128ColumnKey=0').
7197
7198'-go64'
7199     Always switch to C64 mode on reset ('Go64Mode=1'.
7200'+go64'
7201     Always switch to C128 mode on reset ('Go64Mode=0'.
7202
7203'-pal'
7204     Use PAL sync factor ('MachineVideoStandard=1').
7205
7206'-ntsc'
7207     Use NTSC sync factor ('MachineVideoStandard=2').
7208
7209'-model <Model>'
7210     Set the C128 model ('MachineVideoStandard', 'CIA1Model',
7211     'CIA2Model', 'VICIINewLuminances', 'VDCRevision', 'VDC64KB',
7212     'SidEngine', 'SidModel').  (c128/c128dcr, pal/ntsc)
7213
7214'-c128fullbanks'
7215'+c128fullbanks'
7216     Enable/disable RAM banks 2 and 3 ('C128FullBanks=1',
7217     'C128FullBanks=0').
7218
7219'-machinetype <Type>'
7220     Set the C128 machine type ('MachineType').  (0: International, 1:
7221     Finnish, 2: French, 3: German, 4: Italian, 5: Norwegian, 6:
7222     Swedish)
7223
7224
7225File: vice.info,  Node: C64DTV-specific,  Next: SCPU64-specific,  Prev: C128-specific,  Up: Machine-specific features
7226
72277.3 C64DTV-specific commands and settings
7228=========================================
7229
7230This section lists the settings and commands that are C64DTV specific
7231and thus are not present in the other emulators.
7232
7233* Menu:
7234
7235* C64DTV ROM image::
7236* DTV revision::
7237* LumaFix::
7238* Userport::
7239* Debug::
7240* Monitor DTV features::
7241
7242
7243File: vice.info,  Node: C64DTV ROM image,  Next: DTV revision,  Prev: C64DTV-specific,  Up: C64DTV-specific
7244
72457.3.1 C64DTV ROM image
7246----------------------
7247
7248The DTV has a 2MB Flash chip which contains the kernal, basic and
7249character set ROMs along with other data, such as games in the case of
7250the original C64DTV ROM.
7251
7252The image file is a dump of the flash chip.  It is exactly 2MB (2097152
7253bytes).
7254
7255If you do not have a suitable image file, an image using the C64 kernal,
7256basic and charset is automatically created.
7257
7258If writing to the C64DTV ROM is enabled, the image file is rewritten
7259with the current data when exiting x64dtv.
7260
7261Note that x64dtv tries to load the image file from the C64DTV directory
7262first, and if it isn't found there, x64dtv tries to load it from the
7263current directory.  If you do not have 'dtvrom.bin' in your C64DTV
7264directory and writing to DTV ROM is enabled, the 'dtvrom.bin' file is
7265created to the current directory.
7266
7267NOTE: The original C64DTV ROM has somewhat distorted colors, normally
7268you should use a patched rom.
7269
7270'-c64dtvromimage <name>'
7271     Specify filename of the C64DTV ROM image ('c64dtvromfilename').
7272
7273'-c64dtvromrw'
7274'+c64dtvromrw'
7275     Enable/disable writing to C64DTV ROM image ('c64dtvromrw=1',
7276     'c64dtvromrw=0').
7277
7278The trueflashfs option is analogous to True drive emulation.  If
7279disabled, any file access to the flash filesystem (device 1) will go to
7280the local file system instead.
7281
7282'-trueflashfs'
7283'+trueflashfs'
7284     Enable/disable true hardware flash file system ('FlashTrueFS=1',
7285     'FlashTrueFS=0').
7286
7287'-fsflash <name>'
7288     Specify the directory for the flash file system device
7289     ('FSFlashDir').
7290
7291
7292File: vice.info,  Node: DTV revision,  Next: LumaFix,  Prev: C64DTV ROM image,  Up: C64DTV-specific
7293
72947.3.2 DTV revision
7295------------------
7296
7297The DTV revision 2 has a bug in the Blitter.  Using revision 3 is
7298recommended.  Emulation of DTV revision 2 including Blitter bug is
7299intended for testing DTV software.
7300
7301'-dtvrev <revision>'
7302     Specify DTV revision ('DtvRevision').  (2: DTV2, 3: DTV3)
7303
7304
7305File: vice.info,  Node: LumaFix,  Next: Userport,  Prev: DTV revision,  Up: C64DTV-specific
7306
73077.3.3 LumaFix
7308-------------
7309
7310The PAL C64DTVs have wrong resistors in the video output circuit, which
7311causes incorrect luminances.  Several hardware solutions ("LumaFixes")
7312have been developed to fix this flaw.
7313
7314The fixed video output is emulated by selecting "New Luminances".  The
7315unmodified C64DTV video output can be emulated with "Old Luminances".
7316
7317The default setting is "New Luminances".
7318
7319
7320File: vice.info,  Node: Userport,  Next: Debug,  Prev: LumaFix,  Up: C64DTV-specific
7321
73227.3.4 Userport
7323--------------
7324
7325The C64DTV userport emulation currently supports three devices: Hummer
7326ADC, userport joystick and PS/2 mouse.
7327
7328The joystick that controls either the Hummer ADC or userport joystick
7329can be selected using the same parameter or menu option.
7330
7331While using the Hummer ADC, joystick UP and DOWN are mapped to the
7332Hummer buttons A and B respectively.  LEFT and RIGHT set the ADCs output
7333to 0 and 255.  Centering the joystick results in the ADC value of 128.
7334
7335Currently the Hummer ADC and userport joystick are mutually exclusive.
7336This means that enabling one disables the other.  PS/2 mouse emulation
7337can be used simultaneously with either Hummer ADC or userport joystick.
7338
7339'-hummeradc'
7340'+hummeradc'
7341     Enable/Disable Hummer ADC ('HummerADC=1', 'HummerADC=0').
7342
7343'-ps2mouse'
7344'+ps2mouse'
7345     Enable/disable PS/2 mouse on userport ('ps2mouse=1', 'ps2mouse=0').
7346
7347
7348File: vice.info,  Node: Debug,  Next: Monitor DTV features,  Prev: Userport,  Up: C64DTV-specific
7349
73507.3.5 Debug
7351-----------
7352
7353Debugging information on Blitter, DMA and Flash can be enabled with
7354command line parameters.  This can be useful for DTV software
7355development.
7356
7357'-dtvblitterlog'
7358'+dtvblitterlog'
7359     Enable or disable DTV Blitter log
7360
7361'-dtvdmalog'
7362'+dtvdmalog'
7363     Enable or disable DTV DMA log
7364
7365'-dtvflashlog'
7366'+dtvflashlog'
7367     Enable or disable DTV Flash log
7368
7369
7370File: vice.info,  Node: Monitor DTV features,  Prev: Debug,  Up: C64DTV-specific
7371
73727.3.6 Monitor DTV features
7373--------------------------
7374
7375Currently the registers A, Y and X are registers R0, R1 and R2
7376regardless of the mapping, which can be seen and modified via the
7377registers ACM and XYM.
7378
7379The monitor can access all 2MB of RAM and 2MB of Flash, but only 64 kB
7380at a time.  The 64kB bank can be selected with "bank ram00".."ram1f" for
7381RAM and "bank rom00".."rom1f" for Flash.
7382
7383The "load" command can load large files (>64kB) correctly if the bank is
7384set to "ramXX", where XX is the starting bank (usually "bank00").
7385
73867.3.7 DTV resources
7387-------------------
7388
7389'DtvRevision'
7390     Integer specifying the emulated DTV revision.  (2: DTV2, 3: DTV3)
7391
7392'ChargenName'
7393     String specifying the name of the character generator ROM (default
7394     'chargen').
7395
7396'KernalName'
7397     String specifying the name of the Kernal ROM (default 'kernal').
7398
7399'BasicName'
7400     String specifying the name of the Basic ROM (default 'basic').
7401
7402'c64dtvromfilename'
7403     String specifying the filename of the DTV Flash ROM image.
7404
7405'c64dtvromrw'
7406     Boolean that specifies whether the emulated Flash ROM is writeable.
7407
7408'FSFlashDir'
7409     String specifying the working directory for the flash file system.
7410
7411'FlashTrueFS'
7412     Boolean, enables true hardware flash file system.
7413
7414'HummerADC'
7415     Boolean to enable/disable the Hummer ADC emulation.
7416
7417'ps2mouse'
7418     Boolean to enable/disable PS/2 Mouse emulation.
7419
7420'DtvBlitterLog'
7421     Boolean, enables Blitter logging.
7422'DtvDMALog'
7423     Boolean, enables DMA logging.
7424'DtvFlashLog'
7425     Boolean, enables Flash ROM logging.
7426
7427'MachineVideoStandard'
7428     Integer that specifies the video standard of the emulated machine.
7429     (1: PAL, 2: NTSC)
7430
74317.3.8 DTV command-line options
7432------------------------------
7433
7434'-model <Model>'
7435     Set the DTV model ('MachineVideoStandard', 'DtvRevision',
7436     'HummerADC').  (v2/v2pal/v2ntsc, v3/v3pal/v3ntsc, hummer)
7437
7438'-pal'
7439     Use PAL sync factor ('MachineVideoStandard=1').
7440
7441'-ntsc'
7442     Use NTSC sync factor ('MachineVideoStandard=2').
7443
7444'-chargen <name>'
7445     Specify filename of the character generator ROM file
7446     ('ChargenName').
7447
7448'-kernal <name>'
7449     Specify filename of the Kernal ROM file ('KernalName').
7450
7451'-basic <name>'
7452     Specify the filename of the Basic ROM file ('BasicName').
7453
7454
7455File: vice.info,  Node: SCPU64-specific,  Next: VIC20-specific,  Prev: C64DTV-specific,  Up: Machine-specific features
7456
74577.4 SCPU64-specific commands and settings
7458=========================================
7459
74607.4.1 SCPU64 resources
7461----------------------
7462
7463'ChargenName'
7464     String specifying the name of the character generator ROM (default
7465     'chargen').
7466
7467'SCPU64Name'
7468     String specifying the name of the SCPU64 ROM (default 'scpu64').
7469
7470'MachineVideoStandard'
7471     Integer that specifies the video standard of the emulated machine
7472     (4: PAL-N, 3: Old NTSC, 1: PAL, 2: NTSC).
7473
7474'IECReset'
7475     Integer specifying if the IEC bus resets when the CPU resets.  (0:
7476     No, 1: Yes)
7477
7478'BurstMod'
7479     Integer specifying the kind of Burst-Mode modification.  (0: None,
7480     1: CIA-1, 2: CIA-2)
7481
7482'SIMMSize'
7483     Integer specifying the size of the SIMM RAM. (0, 1, 4, 8, 16)
7484
7485'JiffySwitch'
7486     Boolean to enable/disable the jiffy switch.
7487
7488'SpeedSwitch'
7489     Boolean to enable/disable the speed switch.
7490
7491'GlueLogic'
7492     Integer specifying the type of emulated glue-logic.  (0: discrete,
7493     1: custom IC)
7494
74957.4.2 SCPU64 command-line options
7496---------------------------------
7497
7498'-chargen <name>'
7499     Specify filename of the character generator ROM file
7500     ('ChargenName').
7501
7502'-scpu64 <Name>'
7503     Specify filename of the SCPU64 ROM file ('SCPU64Name').
7504
7505'-model <Model>'
7506     Set the C64 model ('MachineVideoStandard', 'CIA1Model',
7507     'CIA2Model', 'VICIINewLuminances', 'IECReset', 'ChargenName',
7508     'SidEngine', 'SidModel').  (c64/c64c/c64old, ntsc/newntsc/oldntsc,
7509     drean, jap, c64gs)
7510
7511'-pal'
7512     Use PAL sync factor ('MachineVideoStandard=1').
7513
7514'-ntsc'
7515     Use NTSC sync factor ('MachineVideoStandard=2').
7516
7517'-ntscold'
7518     Use old NTSC sync factor ('MachineVideoStandard=3').
7519
7520'-paln'
7521     Use PAL-N sync factor ('MachineVideoStandard=4').
7522
7523'-iecreset <value>'
7524     Set IEC reset bahaviour ('IECReset').  (0: Do not reset with CPU
7525     reset, 1: Reset with CPU reset)
7526
7527'-burstmod <value>'
7528     Set the kind of burst modification.  This emulates the fast serial
7529     bus connection as described at
7530     <http://www.cs.tut.fi/~albert/Dev/burst/>, with the wire to the
7531     tape port cut ('BurstMod').  (0: None, 1: CIA-1, 2: CIA-2)
7532
7533'-simmsize <number>'
7534     Set the size of the SIMM RAM ('SIMMSize').  (0, 1, 4, 8, 16)
7535
7536'-jiffyswitch'
7537'+jiffyswitch'
7538     Enable/disable the jiffy switch ('JiffySwitch=1', 'JiffySwitch=0').
7539
7540'-speedswitch'
7541'+speedswitch'
7542     Enable/disable the speed switch ('SpeedSwitch=1', 'SpeedSwitch=0').
7543
7544'-gluelogictype <type>'
7545     Set glue logic type ('GlueLogic').  (0: discrete, 1: 252535-01)
7546
7547
7548File: vice.info,  Node: VIC20-specific,  Next: PLUS4-specific,  Prev: SCPU64-specific,  Up: Machine-specific features
7549
75507.5 VIC20-specific commands and settings
7551========================================
7552
7553This section lists the settings and commands that are VIC20-specific and
7554thus are not present in the other emulators.
7555
7556* Menu:
7557
7558* VIC20 cartridges::
7559* VIC20 memory expansions::
7560* VIC20 system ROM settings::
7561
7562
7563File: vice.info,  Node: VIC20 cartridges,  Next: VIC20 memory expansions,  Prev: VIC20-specific,  Up: VIC20-specific
7564
75657.5.1 Using cartridge images
7566----------------------------
7567
7568As with the C64 (*note C64 cartridges::), it is possible to attach
7569several types of cartridge images:
7570
7571   * 4 or 8 Kbyte cartridges located at $2000;
7572   * 4 or 8 Kbyte cartridges located at $4000;
7573   * 4 or 8 Kbyte cartridges located at $6000;
7574   * 4 or 8 Kbyte cartridges located at $A000;
7575   * 4 Kbyte cartridges located at $B000.
7576
7577This can all be done via the "Attach cartridge image..." command in the
7578left-button menu.  It is also possible to let xvic "guess" the type of
7579cartridge using "Smart-attach cartridge image...".
7580
7581Notice that several cartridges are actually made up of two pieces (and
7582two files), that need to be loaded separately at different addresses.
7583In that case, you have to know the addresses (which are usually
7584specified in the file name) and use the "attach" command twice.
7585
7586A special kind of cartridge file is where the two files mentioned above
7587are concatenated (with removing the two byte load address of the second
7588image) into one 16k image.  There are only few of those images, though.
7589Normally the second part is located at $A000.  Vice can now attach such
7590concatenated files at the start address $2000, $4000, and $6000.  The
7591second half of such an image is moved to $A000.  If you encounter 16k
7592images that have the second half not at $A000 you can split the image
7593into two halfs (i.e.  one 8194 byte and one 8192 byte, because the first
7594has the load address) and attach both files separately.
7595
7596One cartridge that is currently only partially supported here is the
7597VIC1112 IEEE488 interface.  You have to load the ROM as a cartridge, but
7598you also have to enable the IEEE488 hardware by menu.
7599
76007.5.2 VIC20 cartridge settings
7601------------------------------
7602
76037.5.2.1 VIC20 cartridge resources
7604.................................
7605
7606'CartridgeReset'
7607     Boolean specifying whether the machine should be reset when a
7608     cartridge is changed.
7609
7610'CartridgeType'
7611     Integer specifying the type of cartridge emulated.
7612
7613     The following cartridge types are valid:
7614
7615        * - 1: None
7616        * 1: Generic
7617        * 2: Megacart
7618        * 3: Final Expansion
7619        * 4: Vic Flash Plugin
7620        * 5: IEEE-4888
7621        * 6: SIDCart
7622        * 0x8000: Auto Detect
7623        * 0x8002: 4KB at $2000-$2FFF
7624        * 0x8003: 8KB at $2000-$3FFF
7625        * 0x8004: 4KB at $6000-$6FFF
7626        * 0x8005: 8KB at $6000-$7FFF
7627        * 0x8006: 4KB at $A000-$AFFF
7628        * 0x8007: 8KB at $A000-$BFFF
7629        * 0x8008: 4KB at $B000-$BFFF
7630        * 0x8009: 8KB at $4000-$5FFF
7631        * 0x800A: 4KB at $4000-$4FFF
7632        * 0x8013: 16KB at $2000-$5FFF
7633        * 0x8015: 16KB at $6000-$9FFF
7634        * 0x8019: 16KB at $4000-$7FFF
7635
7636'CartridgeFile'
7637     String specifying the filename of the image for the current
7638     cartridge.
7639
7640'IOCollisionHandling'
7641     Integer specifying the way the I/O collisions should be handled.
7642     (0: error message and detach all involved carts, 1: error message
7643     and detach last attached involved carts, 2: warning in log and
7644     'AND' the valid return values)
7645
7646'GenericCartridgeFile2000'
7647'GenericCartridgeFile4000'
7648'GenericCartridgeFile6000'
7649'GenericCartridgeFileA000'
7650'GenericCartridgeFileB000'
7651     Strings specifying the name of the respective cartridge ROM images.
7652
7653'FinalExpansionWriteBack'
7654     Boolean, if true write back the Flash ROM image file automatically,
7655     incase the contents changed, when detaching or quitting the
7656     emulator.
7657
7658'VicFlashPluginWriteBack'
7659     Boolean, if true write back the Flash ROM image file automatically,
7660     incase the contents changed, when detaching or quitting the
7661     emulator.
7662
7663'MegaCartNvRAMfilename'
7664     String specifying the filename of the MegaCart NvRAM image.
7665
7666'MegaCartNvRAMWriteBack'
7667     Boolean, if true write back the NvRAM image file automatically,
7668     incase the RAM contents changed, when detaching or quitting the
7669     emulator.
7670
7671'UltiMemWriteBack'
7672     Boolean, if true write back the Flash ROM image file automatically,
7673     incase the contents changed, when detaching or quitting the
7674     emulator.
7675
7676'IO2RAM'
7677     Boolean specifying whether the I/O-2 ($9800-$9BFF) RAM cartridge
7678     should be emulated or not.
7679
7680'IO3RAM'
7681     Boolean specifying whether the I/O-3 ($9C00-$9FFF) RAM cartridge
7682     should be emulated or not.
7683
7684'VFLImod'
7685     Boolean specifying whether the VFLI modification should be enabled.
7686
7687'SFXSoundExpander'
7688     Boolean specifying whether the SFX Sound Expander should be
7689     emulated or not.
7690
7691'SFXSoundExpanderChip'
7692     Integer specifying which YM chip is emulated.  (3526, 3812)
7693
7694'SFXSoundExpanderIOSwap'
7695     Boolean, swap io mapping (map cart I/O to VIC20 I/O-2) or don't
7696     swap io mapping (map cart I/O to VIC20 I/O-3).
7697
7698'SFXSoundSampler'
7699     Boolean specifying whether the SFX Sound Sampler should be emulated
7700     or not.
7701
7702'SFXSoundSamplerIOSwap'
7703     Boolean, swap io mapping (map cart I/O to VIC20 I/O-2) or don't
7704     swap io mapping (map cart I/O to VIC20 I/O-3).
7705
7706'GEORAMfilename'
7707     String specifying the filename of the GEORAM image.
7708
7709'GEORAM'
7710     Boolean specifying whether the GEO-RAM cartridge (using the
7711     MasC=uerade cartridge adapter) should be emulated or not.
7712
7713'GEORAMsize'
7714     Integer specifying the size of the emulated GEO-RAM in KB. (64,
7715     128, 256, 512, 1024, 2048, 4096).
7716
7717'GEORAMImageWrite'
7718     Boolean, if true write back the GEO-RAM image file automatically,
7719     incase the RAM contents changed, when detaching or quitting the
7720     emulator.
7721
7722'GEORAMIOSwap'
7723     Boolean specifying whether the io mapping should be swapped (map
7724     cart I/O-1 to VIC20 I/O-3 and cart I/O-2 to VIC20 I/O-2) or not
7725     (map cart I/O-2 to VIC20 I/O-2 and cart I/O-2 to VIC20 I/O-3).
7726
7727'SidCart'
7728     Boolean specifying whether SID-Cart emulation is enabled or not.
7729
7730'SidAddress'
7731     Integer that specifies the base address of the emulated SID chip.
7732     (0x9800, 0x9C00)
7733
7734'SidClock'
7735     Integer specifying the clock rate used for the emulated SID chip
7736     (0: C64, 1: VIC20)
7737
7738'DIGIMAX'
7739     Boolean specifying whether the DigiMAX cartridge (using the
7740     MasC=uerade cartridge adapter) should be emulated or not.
7741
7742'DIGIMAXbase'
7743     Integer specifying the DigiMAX base address.  (0x9800, 0x9820,
7744     0x9840, 0x9860, 0x9880, 0x98A0, 0x98C0, 0x98E0, 0x9C00, 0x9C20,
7745     0x9C40, 0x9C60, 0x9C80, 0x9CA0, 0x9CC0, 0x9CE0)
7746
7747'DS12C887RTC'
7748     Boolean specifying whether the DS12C887 RTC cartridge (using the
7749     MasC=uerade cartridge adapter) should be emulated or not.
7750
7751'DS12C887RTCbase'
7752     Integer specifying the DS12C887 RTC base address.  (0x9800, 0x9C00)
7753
7754'DS12C887RTCRunMode'
7755     Boolean specifying whether the DS12C887 RTC cartridge starts out
7756     running or halted.  (0: halted, 1: running)
7757
7758'DS12C887RTCSave'
7759     Boolean specifying whether the DS12C887 RTC data should be saved
7760     when changed or not.
7761
7762'IEEE488'
7763     Boolean specifying whether the IEEE488 interface should be emulated
7764     or not.
7765
7766'MachineVideoStandard'
7767     Integer that specifies the video standard of the emulated machine
7768     (1: PAL, 2: NTSC).
7769
77707.5.2.2 VIC20 cartridge command-line options
7771............................................
7772
7773'-iocollision <method>'
7774     Select the way the I/O collisions should be handled
7775     ('IOCollisionHandling').  (0: error message and detach all involved
7776     carts, 1: error message and detach last attached involved carts, 2:
7777     warning in log and 'AND' the valid return values
7778
7779'-cartreset'
7780'+cartreset'
7781     Do/don't reset machine if a cartridge is attached or detached
7782     ('CartridgeReset=1', 'CartridgeReset').
7783
7784'-cart2 <name>'
7785     Specify 4/8/16K extension ROM name at $2000
7786'-cart4 <name>'
7787     Specify 4/8/16K extension ROM name at $4000
7788'-cart6 <name>'
7789     Specify 4/8/16K extension ROM name at $6000
7790'-cartA <name>'
7791     Specify 4/8K extension ROM name at $A000
7792'-cartB <name>'
7793     Specify 4K extension ROM name at $B000
7794'-cartgeneric <name>'
7795     Specify generic extension ROM name
7796
7797'-cartbb <name>'
7798     Specify Behr-Bonz extension ROM name
7799
7800'-cartmega <name>'
7801     Specify Mega-Cart extension ROM name
7802
7803'-mcnvramfile <name>'
7804     Set Mega-Cart NvRAM filename ('MegaCartNvRAMfilename').
7805
7806'-mcnvramwriteback'
7807'+mcnvramwriteback'
7808     Enable/Disable Mega-Cart NvRAM writeback
7809     ('MegaCartNvRAMWriteBack=1', 'MegaCartNvRAMWriteBack=0').
7810
7811'-cartfe <name>'
7812     Specify Final Expansion extension ROM name
7813
7814'-fewriteback'
7815'+fewriteback'
7816     Enable/disable Final Expansion write back to ROM file
7817     ('FinalExpansionWriteBack=1', 'FinalExpansionWriteBack=0').
7818
7819'-cartfp <name>'
7820     Specify Vic Flash Plugin extension ROM name
7821
7822'-fpwriteback'
7823'+fpwriteback'
7824     Enable/Disable Vic Flash Plugin write back to ROM file
7825     ('VicFlashPluginWriteBack=1', 'VicFlashPluginWriteBack=0').
7826
7827'-ultimem <name>'
7828     Specify Ultimem extension ROM name
7829
7830'-umwriteback'
7831'+umwriteback'
7832     Enable/disable UltiMem write back to ROM file
7833     ('UltiMemWriteBack=1', 'UltiMemWriteBack=0').
7834
7835'-io2ram'
7836'+io2ram'
7837     Enable/disable the I/O-2 ($9800-$9BFF) RAM cartridge ('IO2RAM=1',
7838     'IO2RAM=0').
7839
7840'-io3ram'
7841'+io3ram'
7842     Enable/disable the I/O-3 ($9C00-$9FFF) RAM cartridge ('IO3RAM=1',
7843     'IO3RAM=0').
7844
7845'-ieee488'
7846'+ieee488'
7847     Enable/disable VIC-1112 IEEE488 interface ('IEEE488=1',
7848     'IEEE488=0').
7849
7850'-vflimod'
7851'+vflimod'
7852     Enable/disable VIC-20 VFLI modification ('VFLImod=1', 'VFLImod=0')
7853
7854'-sidcart'
7855'+sidcart'
7856     Enable/disable SID Cartridge ('SidCart=1', 'SidCart=0').
7857
7858'-sidcartaddress <address>'
7859     Specify address of the SID Cartridge ('SidAddress').  (0x9800,
7860     0x9C00)
7861
7862'-sidcartclock <clock>'
7863     Specify clock of the SID Cartridge ('SidClock').  (0: C64, 1:
7864     VIC20)
7865
7866'-cs8900ioif <name>'
7867     Set the system ethernet interface for Ethernet Cartridge emulation
7868
7869'-ethernetcart'
7870'+ethernetcart'
7871     Disable/Enable the Ethernet Cartridge (TFE/RR-Net/64NIC/FB-NET)
7872
7873'-ethernetcartmode <Mode>'
7874     Mode of Ethernet Cartridge (0: TFE, 1: RR-Net)
7875
7876'-ethernetcartbase <Base address>'
7877     Base address of the Ethernet Cartridge.  (0x9800, 0x9810, 0x9820,
7878     0x9830, 0x9840, 0x9850, 0x9860, 0x9870, 0x9880, 0x9890, 0x98A0,
7879     0x98B0, 0x98C0, 0x98D0, 0x98E0, 0x98F0, 0x9C00, 0x9C10, 0x9C20,
7880     0x9C30, 0x9C40, 0x9C50, 0x9C60, 0x9C70, 0x9C80, 0x9C90, 0x9CA0,
7881     0x9CB0, 0x9CC0, 0x9CD0, 0x9CE0, 0x9CF0)
7882
7883'-tfe'
7884     Enable the Ethernet Cartridge in TFE ("The Final Ethernet")
7885     compatible mode and set default I/O address
7886
7887'-rrnet'
7888     Enable the Ethernet Cartridge in RR-Net compatible mode and set
7889     default I/O address
7890
7891'-digimax'
7892'+digimax'
7893     Enable/disable the DigiMAX cartridge (using the MasC=uerade
7894     cartridge adapter) ('DIGIMAX=1', 'DIGIMAX=0').
7895
7896'-digimaxbase <base address>'
7897     Base address of the DigiMAX cartridge ('DIGIMAXbase').  (0x9800,
7898     0x9820, 0x9840, 0x9860, 0x9880, 0x98A0, 0x98C0, 0x98E0, 0x9C00,
7899     0x9C20, 0x9C40, 0x9C60, 0x9C80, 0x9CA0, 0x9CC0, 0x9CE0)
7900
7901'-ds12c887rtc'
7902'+ds12c887rtc'
7903     Enable/disable the DS12C887 RTC cartridge (using the MasC=uerade
7904     cartridge adapter) ('DS12C887RTC=1', 'DS12C887RTC=0').
7905
7906'-ds12c887rtcbase <base address>'
7907     Base address of the DS12C887 RTC cartridge ('DS12C887RTCbase').
7908     (0x9800, 0x9C00)
7909
7910'-ds12c887rtchalted'
7911     Set the DS12C887 RTC oscillator to 'halted'
7912     ('DS12C887RTCRunMode=0').
7913'-ds12c887rtcrunning'
7914     Set the DS12C887 RTC oscillator to 'running'
7915     ('DS12C887RTCRunMode=1').
7916
7917'-ds12c887rtcsave'
7918'+ds12c887rtcsave'
7919     Enable/disable saving of the DS12C887 RTC data when changed
7920     ('DS12C887RTCSave=1', 'DS12C887RTCSave=0').
7921
7922'-sfxse'
7923'+sfxse'
7924     Enable/disable the SFX soundexpander cartridge (using the
7925     MasC=uerade cartridge adapter) ('SFXSoundExpander=1',
7926     'SFXSoundExpander=0').
7927
7928'-sfxsetype <type>'
7929     Set YM chip type ('SFXSoundExpanderChip').  (3526, 3812)
7930
7931'-sfxseioswap'
7932     Swap io mapping (map cart I/O to VIC20 I/O-2)
7933     ('SFXSoundExpanderIOSwap=1').
7934'+sfxseioswap'
7935     Swap io mapping (map cart I/O to VIC20 I/O-3)
7936     ('SFXSoundExpanderIOSwap=0').
7937
7938'-sfxssioswap'
7939     Swap io mapping (map cart I/O to VIC20 I/O-2)
7940     ('SFXSoundSamplerIOSwap=1').
7941'+sfxssioswap'
7942     Don't swap io mapping (map cart I/O to VIC20 I/O-3)
7943     ('SFXSoundSamplerIOSwap=0').
7944
7945'-sfxss'
7946'+sfxss'
7947     Enable/disable the SFX Sound Sampler cartridge
7948     ('SFXSoundSampler=1', 'SFXSoundSampler=0').
7949
7950'-georamioswap'
7951     Swap the io mapping (map cart I/O-1 to VIC20 I/O-3 and cart I/O-2
7952     to VIC20 I/O-2) ('GEORAMIOSwap=1').
7953'+georamioswap'
7954     Do not swap the io mapping (map cart I/O-2 to VIC20 I/O-2 and cart
7955     I/O-2 to VIC20 I/O-3) ('GEORAMIOSwap=0').
7956
7957'-georam'
7958'+georam'
7959     Enable/disable the GEORAM expansion unit (using the MasC=uerade
7960     cartridge adapter) ('GEORAM=1', 'GEORAM=0').
7961
7962'-georamimage <name>'
7963     Specify name of GEORAM image ('GEORAMfilename').
7964
7965'-georamimagerw'
7966'+georamimagerw'
7967     Allow/disallow writing to GEORAM image ('GEORAMImageWrite=1',
7968     'GEORAMImageWrite=0').
7969
7970'-georamsize <size in KB>'
7971     Size of the GEORAM expansion unit ('GEORAMsize').  (64, 128, 256,
7972     512, 1024, 2048, 4096)
7973
7974'-model <model>'
7975     Specify the VIC20 model you want to emulate
7976     ('MachineVideoStandard', 'RamBlock0', 'RamBlock1', 'RamBlock2',
7977     'RamBlock3' and 'RamBlock5').  (vic20/vic20pal/vic20ntsc, vic21)
7978
7979'-pal'
7980     Use PAL sync factor ('MachineVideoStandard=1').
7981
7982'-ntsc'
7983     Use NTSC sync factor ('MachineVideoStandard=2').
7984
79857.5.3 VIC settings
7986------------------
7987
79887.5.3.1 VIC resources
7989.....................
7990
7991'VICVideoCache'
7992     Boolean specifying whether the video cache is turned on.
7993
7994'VICDoubleSize'
7995     Boolean specifying whether double-size mode is turned on.
7996
7997'VICDoubleScan'
7998     Boolean specifying whether double-scan mode is turned on.
7999
8000'VICPaletteFile'
8001     String specifying the name of the palette file being used.  The
8002     '.vpl' extension is optional.
8003
8004'VICExternalPalette'
8005     Boolean specifying whether to use external palette file or not.
8006
8007'VICColorSaturation'
8008     Integer specifying saturation of internal calculated palette.
8009     (0..2000)
8010
8011'VICColorContrast'
8012     Integer specifying contrast of internal calculated palette,
8013     (0..2000)
8014
8015'VICColorBrightness'
8016     Integer specifying brightness of internal calculated palette.
8017     (0..2000)
8018
8019'VICColorGamma'
8020     Integer specifying gamma of internal calculated palette.  (0..4000)
8021
8022'VICColorTint'
8023     Integer specifying tint of internal calculated palette.  (0..2000)
8024
8025'VICPALScanLineShade'
8026     Integer specifying amount of scan line shading for the CRT
8027     emulation.  (0..1000)
8028
8029'VICPALBlur'
8030     Integer specifying amount of horizontal blur for the CRT emulation.
8031     (0..1000)
8032
8033'VICPALOddLinePhase'
8034     Integer specifying phase for color carrier in odd lines.  (0..2000)
8035
8036'VICPALOddLineOffset'
8037     Integer specifying phase offset for color carrier in odd lines.
8038     (0..2000)
8039
8040'VICAudioLeak'
8041     Boolean specifying whether to enable/disable video to audio leak
8042     emulation.
8043
8044'VICFilter'
8045     Integer specifying the rendering filter.  (0: None, 1: CRT
8046     emulation, 2: Scale2x)
8047
8048'VICBorderMode'
8049     Integer specifying border display mode (0: normal, 1: full, 2:
8050     debug, 3: none)
8051
80527.5.3.2 VIC command-line options
8053................................
8054
8055'-VICvcache'
8056'+VICvcache'
8057     Enable/disable the video cache ('VICVideoCache=1',
8058     'VICVideoCache=0').
8059
8060'-VICdsize'
8061'+VICdsize'
8062     Enable/disable the double size mode ('VICDoubleSize=1',
8063     'VICDoubleSize=0').
8064
8065'-VICdscan'
8066'+VICdscan'
8067     Enable/disable the double scan mode ('VICDoubleScan=1',
8068     'VICDoubleScan=0').
8069
8070'-VICfilter <Mode>'
8071     Select rendering filter ('VICFilter').  (0: None, 1: CRT emulation,
8072     2: Scale2x)
8073
8074'-VICpalette NAME'
8075     Specify the name of the palette file ('VICPaletteFile').
8076
8077'-VICintpal'
8078     Use an internal calculated palette ('VICExternalPalette=0').
8079
8080'-VICextpal'
8081     Use an external palette (file) ('VICExternalPalette=1').
8082
8083'-VICborders <mode>'
8084     Set VIC border display mode ('VICBorderMode').  (0: normal, 1:
8085     full, 2: debug, 3: none)
8086
8087'-VICsaturation <0-2000>'
8088     Set saturation of internal calculated palette
8089     ('VICColorSaturation').
8090
8091'-VICcontrast <0-2000>'
8092     Set contrast of internal calculated palette ('VICColorContrast').
8093
8094'-VICbrightness <0-2000>'
8095     Set brightness of internal calculated palette
8096     ('VICColorBrightness').
8097
8098'-VICgamma <0-4000>'
8099     Set gamma of internal calculated palette ('VICColorGamma').
8100
8101'-VICtint <0-2000>'
8102     Set tint of internal calculated palette ('VICColorTint').
8103
8104'-VICoddlinesphase <0-2000>'
8105     Set phase for color carrier in odd lines ('VICPALOddLinePhase').
8106
8107'-VICoddlinesoffset <0-2000>'
8108     Set phase offset for color carrier in odd lines.
8109     ('VICPALOddLineOffset').
8110
8111'-VICcrtblur <0-1000>'
8112     Amount of horizontal blur for the CRT emulation ('VICPALBlur').
8113
8114'-VICcrtscanlineshade <0-1000>'
8115     Amount of scan line shading for the CRT emulation
8116     ('VICPALScanLineShade').
8117
8118'-VICaudioleak'
8119'+VICaudioleak'
8120     Enable/disable video to audio leak emulation ('VICAudioLeak=1',
8121     'VICAudioLeak=0').
8122
8123
8124File: vice.info,  Node: VIC20 memory expansions,  Next: VIC20 system ROM settings,  Prev: VIC20 cartridges,  Up: VIC20-specific
8125
81267.5.4 Changing memory configuration
8127-----------------------------------
8128
8129It is possible to change the VIC20 memory configuration in two ways: by
8130enabling and/or disabling certain individual memory blocks, or by
8131choosing one among a few typical memory configurations.  The former can
8132be done by modifying resource values directly or from the right-button
8133menu; the latter can only be done from the menu.
8134
8135There are 5 RAM expansion blocks in the VIC20, numbered 0, 1, 2, 3 and
81365:
8137
8138   * block 0 (3 Kbytes at $0400-$0FFF);
8139   * block 1 (8 Kbytes at $2000-$3FFF);
8140   * block 2 (8 Kbytes at $4000-$5FFF);
8141   * block 3 (8 Kbytes at $6000-$7FFF);
8142   * block 5 (8 Kbytes at $A000-$BFFF).
8143
8144These blocks are called "expansion blocks" because they are not present
8145a stock ("unexpanded") machine.  Each of them is associated to a boolean
8146'RamBlockX' resource (where 'X' is the block number) that specifies
8147whether the block is enabled or not.
8148
8149There are also some common memory configurations you can pick from the
8150right-button menu:
8151
8152   * no RAM expansion blocks at all;
8153   * all RAM expansion blocks enabled;
8154   * 3K expansion (only block 0 is enabled);
8155   * 8K expansion (only block 1 is enabled);
8156   * 16K expansion (only blocks 1 and 2 are enabled);
8157   * 24K expansion (only blocks 1, 2 and 3 are enabled).
8158
8159* Menu:
8160
8161* VIC20 memconf resources::
8162* VIC20 memconf options::
8163
8164
8165File: vice.info,  Node: VIC20 memconf resources,  Next: VIC20 memconf options,  Prev: VIC20 memory expansions,  Up: VIC20 memory expansions
8166
81677.5.4.1 VIC20 memory configuration resources
8168............................................
8169
8170'RAMBlock0'
8171'RAMBlock1'
8172'RAMBlock2'
8173'RAMBlock3'
8174'RAMBlock5'
8175     Booleans specifying whether RAM blocks 0, 1, 2, 3 and 5 must be
8176     enabled.
8177
8178
8179File: vice.info,  Node: VIC20 memconf options,  Prev: VIC20 memconf resources,  Up: VIC20 memory expansions
8180
81817.5.4.2 VIC20 memory configuration command-line options
8182.......................................................
8183
8184'-memory <config>'
8185     Specify memory configuration.  It must be a comma-separated list of
8186     options, each of which can be one the following:
8187
8188        * 'none' (no extension);
8189        * 'all' (all blocks);
8190        * '3k' (3k space in block 0);
8191        * '8k' (first 8k extension block);
8192        * '16k' (first and second 8k extension blocks);
8193        * '24k' (first, second and 3rd extension blocks);
8194        * '0', '1', '2', '3', '5' (memory in respective blocks);
8195        * '04', '20', '40', '60', 'A0' (memory at respective address.
8196
8197     For example,
8198
8199          xvic -memory none
8200
8201     gives an unexpanded VIC20.  While
8202
8203          xvic -memory 60,a0
8204
8205     or
8206
8207          xvic -memory 3,5
8208
8209     enables memory in blocks 3 and 5, which is the usual configuration
8210     for 16k ROM modules.
8211
8212
8213File: vice.info,  Node: VIC20 system ROM settings,  Prev: VIC20 memory expansions,  Up: VIC20-specific
8214
82157.5.5 VIC20 system ROM settings
8216-------------------------------
8217
8218These settings can be used to control what system ROMs are loaded in the
8219VIC20 emulator at startup.  They cannot be changed from the menus.
8220
8221* Menu:
8222
8223* VIC20 system ROM resources::
8224* VIC20 system ROM options::
8225
8226
8227File: vice.info,  Node: VIC20 system ROM resources,  Next: VIC20 system ROM options,  Prev: VIC20 system ROM settings,  Up: VIC20 system ROM settings
8228
82297.5.5.1 VIC20 system ROM resources
8230..................................
8231
8232'KernalName'
8233     String specifying the name of the Kernal ROM (default 'kernal').
8234
8235'BasicName'
8236     String specifying the name of the Basic ROM (default 'basic').
8237
8238'ChargenName'
8239     String specifying the name of the character generator ROM (default
8240     'chargen').
8241
8242
8243File: vice.info,  Node: VIC20 system ROM options,  Prev: VIC20 system ROM resources,  Up: VIC20 system ROM settings
8244
82457.5.5.2 VIC20 system ROM command-line options
8246.............................................
8247
8248'-kernal <name>'
8249     Specify the filename of the Kernal ROM file ('KernalName').
8250
8251'-basic <name>'
8252     Specify the filename of the Basic ROM file ('BasicName').
8253
8254'-chargen <name>'
8255     Specify the filename of the character generator ROM file
8256     ('ChargenName').
8257
8258'-cart2 NAME'
8259'-cart4 NAME'
8260'-cart6 NAME'
8261'-cartA NAME'
8262'-cartB NAME'
8263     Specify 'NAME' as the cartridge image to attach.
8264     ('CartridgeFile2000', ..., 'CartridgeFileB000').
8265
82667.5.6 VIC20 settings
8267--------------------
8268
82697.5.6.1 VIC20 command-line options
8270..................................
8271
8272
8273File: vice.info,  Node: PLUS4-specific,  Next: PET-specific,  Prev: VIC20-specific,  Up: Machine-specific features
8274
82757.6 PLUS4-specific commands and settings
8276========================================
8277
82787.6.1 TED settings
8279------------------
8280
82817.6.1.1 TED resources
8282.....................
8283
8284'TEDVideoCache'
8285     Boolean specifying whether the video cache is turned on.
8286
8287'TEDDoubleSize'
8288     Boolean specifying whether double-size mode is turned on.
8289
8290'TEDDoubleScan'
8291     Boolean specifying whether double-scan mode is turned on.
8292
8293'TEDPaletteFile'
8294     String specifying the name of the palette file being used.  The
8295     '.vpl' extension is optional.
8296
8297'TEDExternalPalette'
8298     Boolean specifying whether to use external palette file or not.
8299
8300'TEDColorSaturation'
8301     Integer specifying saturation of internal calculated palette.
8302     (0..2000)
8303
8304'TEDColorContrast'
8305     Integer specifying contrast of internal calculated palette.
8306     (0..2000)
8307
8308'TEDColorBrightness'
8309     Integer specifying brightness of internal calculated palette.
8310     (0..2000)
8311
8312'TEDColorGamma'
8313     Integer specifying gamma of internal calculated palette.  (0..4000)
8314
8315'TEDColorTint'
8316     Integer specifying tint of internal calculated palette.  (0..2000)
8317
8318'TEDPALScanLineShade'
8319     Integer specifying amount of scan line shading for the CRT
8320     emulation.  (0..1000)
8321
8322'TEDPALBlur'
8323     Integer specifying amount of horizontal blur for the CRT emulation.
8324     (0..1000)
8325
8326'TEDPALOddLinePhase'
8327     Integer specifying phase for color carrier in odd lines.  (0..2000)
8328
8329'TEDPALOddLineOffset'
8330     Integer specifying phase offset for color carrier in odd lines.
8331     (0..2000)
8332
8333'TEDAudioLeak'
8334     Boolean specifying whether to enable/disable video to audio leak
8335     emulation.
8336
8337'TEDFilter'
8338     Integer specifying rendering filter.  (0: None, 1: CRT emulation,
8339     2: Scale2x)
8340
8341'TEDBorderMode'
8342     Integer specifying border display mode.  (0: normal, 1: full, 2:
8343     debug, 3: none)
8344
83457.6.1.2 TED command-line options
8346................................
8347
8348'-TEDvcache'
8349'+TEDvcache'
8350     Enable/disable the video cache ('TEDVideoCache=1',
8351     'TEDVideoCache=0').
8352
8353'-TEDdsize'
8354'+TEDdsize'
8355     Enable/disable double size ('TEDDoubleSize=1', 'TEDDoubleSize=0').
8356
8357'-TEDdscan'
8358'+TEDdscan'
8359     Enable/disable double scan ('TEDDoubleScan=1', 'TEDDoubleScan=0').
8360
8361'-TEDfilter <Mode>'
8362     Select rendering filter ('TEDFilter').  (0: None, 1: CRT emulation,
8363     2: Scale2x)
8364
8365'-TEDintpal'
8366     Use an internal calculated palette ('TEDExternalPalette=0').
8367
8368'-TEDextpal'
8369     Use an external palette (file) ('TEDExternalPalette=1').
8370
8371'-TEDpalette <name>'
8372     Specify name of the external palette file ('TEDPaletteFile').
8373
8374'-TEDborders <mode>'
8375     Set TED border display mode ('TEDBorderMode').  (0: normal, 1:
8376     full, 2: debug, 3: none)
8377
8378'-TEDsaturation <0-2000>'
8379     Set saturation of internal calculated palette
8380     ('TEDColorSaturation').
8381
8382'-TEDcontrast <0-2000>'
8383     Set contrast of internal calculated palette ('TEDColorContrast').
8384
8385'-TEDbrightness <0-2000>'
8386     Set brightness of internal calculated palette
8387     ('TEDColorBrightness').
8388
8389'-TEDgamma <0-4000>'
8390     Set gamma of internal calculated palette ('TEDColorGamma').
8391
8392'-TEDtint <0-2000>'
8393     Set tint of internal calculated palette ('TEDColorTint').
8394
8395'-TEDoddlinesphase <0-2000>'
8396     Set phase for color carrier in odd lines ('TEDPALOddLinePhase').
8397
8398'-TEDoddlinesoffset <0-2000>'
8399     Set phase offset for color carrier in odd lines
8400     ('TEDPALOddLineOffset').
8401
8402'-TEDcrtblur <0-1000>'
8403     Amount of horizontal blur for the CRT emulation ('TEDPALBlur').
8404
8405'-TEDcrtscanlineshade <0-1000>'
8406     Amount of scan line shading for the CRT emulation
8407     ('TEDPALScanLineShade').
8408
8409'-TEDaudioleak'
8410'+TEDaudioleak'
8411     Enable/disable video to audio leak emulation ('TEDAudioLeak=1',
8412     'TEDAudioLeak=0').
8413
84147.6.2 PLUS4 I/O extension settings
8415----------------------------------
8416
84177.6.2.1 PLUS4 I/O extension resources
8418.....................................
8419
8420'CartridgeReset'
8421     Boolean specifying whether the machine should be reset when a
8422     cartridge is changed.
8423
8424'DIGIBLASTER'
8425     Boolean to enable/disable the Digiblaster emulation.
8426
8427'SpeechEnabled'
8428     Boolean to enable/disable the emulation of the V364 speech chip.
8429
8430'SpeechImage'
8431     String specifying the filename of the speech ROM image.
8432
8433'SidCart'
8434     Boolean specifying whether SID-Cart emulation is enabled or not.
8435
8436'SidAddress'
8437     Integer that specifies the base address of the emulated SID chip.
8438     (0xFD40, 0xFE80)
8439
8440'SidClock'
8441     Integer specifying the clock rate used for the emulated SID chip
8442     (0: C64, 1: Plus4)
8443
8444'SIDCartJoy'
8445     Boolean to enable/disable the emulation of the SID-Cart control
8446     port.
8447
84487.6.2.2 PLUS4 I/O extension command-line options
8449................................................
8450
8451'-cartreset'
8452'+cartreset'
8453     Do/don't reset machine if a cartridge is attached or detached
8454     ('CartridgeReset=1', 'CartridgeReset').
8455
8456'-cart <Name>'
8457'+cart'
8458     Smart-attach cartridge image / Start without cartridge
8459
8460'-digiblaster'
8461'+digiblaster'
8462     Enable/disable the digiblaster add-on ('DIGIBLASTER=1',
8463     'DIGIBLASTER=0').
8464
8465'-sidcart'
8466'+sidcart'
8467     Enable/disable SID Cartridge ('SidCart=1', 'SidCart=0').
8468
8469'-sidcartjoy'
8470'+sidcartjoy'
8471     Enable/disable SID cartridge control port ('SIDCartJoy=1',
8472     'SIDCartJoy=0').
8473
8474'-sidcartaddress <address>'
8475     Specify address of the SID Cartridge ('SidAddress').  (0xFD40,
8476     0xFE80)
8477
8478'-sidcartclock <clock>'
8479     Specify clock of the SID Cartridge ('SidClock').  (0: C64, 1:
8480     Plus4)
8481
8482'-speech'
8483'+speech'
8484     Enable/Disable the v364 speech add-on ('SpeechEnabled=1',
8485     'SpeechEnabled=0').
8486
8487'-speechrom <name>'
8488     Attach Speech ROM image ('SpeechImage', 'SpeechEnabled').
8489
84907.6.3 PLUS4 system ROM settings
8491-------------------------------
8492
84937.6.3.1 PLUS4 system ROM resources
8494..................................
8495
8496'KernalName'
8497     String specifying the name of the Kernal ROM (default 'kernal').
8498
8499'BasicName'
8500     String specifying the name of the Basic ROM (default 'basic').
8501
8502'FunctionLowName'
8503     String specifying the filename of the Lo Function ROM.
8504
8505'FunctionHighName'
8506     String specifying the filename of the High Function ROM.
8507
8508'c1loName'
8509     String specifying the filename of cartridge 1 Lo ROM.
8510
8511'c1hiName'
8512     String specifying the filename of cartridge 1 High ROM.
8513
8514'c2loName'
8515     String specifying the filename of cartridge 2 Lo ROM.
8516
8517'c2hiName'
8518     String specifying the filename of cartridge 2 High ROM.
8519
85207.6.3.2 PLUS4 system ROM command-line options
8521.............................................
8522
8523'-kernal <Name>'
8524     Specify name of the Kernal ROM image ('KernalName').
8525
8526'-basic <Name>'
8527     Specify name of the BASIC ROM image ('BasicName').
8528
8529'-functionlo <name>'
8530     Specify name of Function low ROM image ('FunctionLowName').
8531
8532'-functionhi <name>'
8533     Specify name of Function high ROM image ('FunctionHighName').
8534
8535'-c1lo <name>'
8536     Specify name of Cartridge 1 low ROM image ('c1loName').
8537
8538'-c1hi <name>'
8539     Specify name of Cartridge 1 high ROM image ('c1HiName').
8540
8541'-c2lo <name>'
8542     Specify name of Cartridge 2 low ROM image ('c2loName').
8543
8544'-c2hi <name>'
8545     Specify name of Cartridge 2 high ROM image ('c2HiName').
8546
85477.6.4 PLUS4 settings
8548--------------------
8549
85507.6.4.1 PLUS4 resources
8551.......................
8552
8553'MachineVideoStandard'
8554     Integer that specifies the video standard of the emulated machine
8555     (1: PAL, 2: NTSC).
8556
8557'RamSize'
8558     Integer specifying the size of the memory in kByte.  (16, 32, 64)
8559
8560'MemoryHack'
8561     Integer specifying what memory expansion hack is active.  (0: None,
8562     1: C256K, 2: H256K, 3: H1024K, 4: H4096K)
8563
8564'Acia1Enable'
8565     Boolean specifying whether the ACIA should be emulated or not.
8566
85677.6.4.2 PLUS4 command-line options
8568..................................
8569
8570'-model <model>'
8571     Specify the PLUS4 model you want to emulate
8572     ('MachineVideoStandard', 'RamSize', 'KernalName', 'BasicName',
8573     'FunctionLowName', 'FunctionHighName', 'Acia1Enable',
8574     'SpeechImage', 'SpeechEnabled').  (c16/c16pal/c16ntsc,
8575     plus4/plus4pal/plus4ntsc, v364/cv364, c232)
8576
8577'-pal'
8578     Use PAL sync factor ('MachineVideoStandard=1').
8579
8580'-ntsc'
8581     Use NTSC sync factor ('MachineVideoStandard=2').
8582
8583'-ramsize <ramsize>'
8584     Specify size of RAM installed in kb ('RamSize').  (16, 32, 64)
8585
8586'-memoryexphack <device>'
8587     Set active memory expansion hack ('MemoryHack').  (0: None, 1:
8588     C256K, 2: H256K, 3: H1024K, 4: H4096K)
8589
8590'-acia'
8591'+acia'
8592     Enable/Disable the ACIA emulation
8593
8594'-userportdac'
8595'+userportdac'
8596     Enable/disable the userport DAC ('UserportDAC=1', 'UserportDAC=0').
8597
8598
8599File: vice.info,  Node: PET-specific,  Next: CBM-II-specific,  Prev: PLUS4-specific,  Up: Machine-specific features
8600
86017.7 PET-specific commands and settings
8602======================================
8603
8604This section lists the settings and commands that are PET-specific and
8605thus are not present in the other emulators.
8606
8607* Menu:
8608
8609* PET model::
8610* CRTC Settings::
8611* PET I/O extensions::
8612* PET system ROM::
8613* PET diagnostic pin::
8614* PET settings::
8615* Colour PET::
8616* PET colors::
8617* PET DWW high resolution graphics::
8618* PET HRE (HiRes Emulator) high resolution graphics::
8619
8620
8621File: vice.info,  Node: PET model,  Next: CRTC Settings,  Up: PET-specific
8622
86237.7.1 Changing PET model settings
8624---------------------------------
8625
8626With 'xpet', it is possible to change at runtime the characteristics of
8627the emulated PET so that it matches (or not) the ones of a certain PET
8628model, and it is also possible to select from a common set of PET models
8629so that all the features are selected accordingly.
8630
8631The former is done by changing the following resources (via resource
8632file, command line options or right-menu items):
8633
8634'RamSize'
8635     Integer specifying the size of the memory in kByte.  96k denotes an
8636     8096, 128k an 8296.  (4, 8, 16, 32, 96, 128)
8637
8638'IOSize'
8639     Integer specifying the size of the I/O area in Bytes for the 8296
8640     model.  (256, 2048)
8641
8642'VideoSize'
8643     Integer specifying the number of columns on the screen.  (0:
8644     Automatic from ROM, 40: 40 columns, 80: 80 columns)
8645
8646'Ram9'
8647     Boolean specifying if the 8296 can map RAM into the address range
8648     $9*** or not.
8649
8650'RamA'
8651     Boolean specifying if the 8296 can map RAM into the address range
8652     $A*** or not.
8653
8654'SuperPET'
8655     Boolean that enables/disables the SuperPET (MicroMainFrame 9000)
8656     I/O and 6809 CPU, and disables/enables the 8x96 mappings.
8657
8658'Basic1'
8659     Boolean to enable/disable the patching of a version 1 kernal ROM to
8660     make the IEEE488 interface work.
8661
8662'Basic1Chars'
8663     Boolean to enable/disable the exchanges of some characters in the
8664     character ROM that have changed between the first PET 2001 and all
8665     newer versions.
8666
8667'EoiBlank'
8668     Boolean to enable/disable the "blank screen on EOI" feature of the
8669     oldest PET 2001.
8670
8671'DiagPin'
8672     Boolean to enable/disable the diagnostic pin on the PET userport
8673     (see below).
8674
8675'ChargenName'
8676     String specifying the name of the character generator ROM (default
8677     'chargen').
8678
8679'KernalName'
8680     String specifying the name of the Kernal ROM (default 'kernal4').
8681
8682'BasicName'
8683     String specifying the name of the Basic ROM (default 'basic4').
8684
8685'EditorName'
8686     String specifying the filename of the editor ROM file.  This file
8687     contains an overlay for the editor ROM at $E000-$E7FF if necessary.
8688
8689'RomModule9Name'
8690     String specifying the filename for the $9*** Expansion ROM file.
8691     This file contains an expansion ROM image of 4k.
8692
8693'RomModuleAName'
8694     String specifying the filename for the $A*** Expansion ROM file.
8695     This file contains an expansion ROM image of 4k.
8696
8697'RomModuleBName'
8698     String specifying the filename for the $B*** Expansion ROM file.
8699     This file contains an expansion ROM image of 4k.  This file
8700     overlays the lowest 4k of a BASIC 4 ROM.
8701
8702Choosing a common PET model is done from the right-button menu instead,
8703by choosing an item from the "Model defaults" submenu.  Available models
8704are:
8705
8706   * PET 2001-8N
8707   * PET 3008
8708   * PET 3016
8709   * PET 3032
8710   * PET 3032B
8711   * PET 4016
8712   * PET 4032
8713   * PET 4032B
8714   * PET 8032
8715   * PET 8096
8716   * PET 8296
8717   * SuperPET
8718
8719Notice that this will *reset the emulated machine*.
8720
8721It is also possible to select the PET model at startup, with the
8722'-model' command-line option: for example, 'xpet -model 3032' will
8723emulate a PET 3032 while 'xpet -model 8296' will emulate a PET 8296.
8724
8725
8726File: vice.info,  Node: CRTC Settings,  Next: PET I/O extensions,  Prev: PET model,  Up: PET-specific
8727
87287.7.2 CRTC Settings
8729-------------------
8730
87317.7.2.1 CRTC resources
8732......................
8733
8734'Crtc'
8735     Boolean specifying whether to enable/disable CRTC 6545 emulation
8736     (all models from 40xx and above).
8737
8738'CrtcVideoCache'
8739     Boolean specifying whether the video cache is turned on.
8740
8741'CrtcDoubleSize'
8742     Boolean specifying whether double-size mode is turned on.
8743
8744'CrtcDoubleScan'
8745     Boolean specifying whether double-scan mode is turned on.
8746
8747'CrtcStretchVertical'
8748     Boolean specifying whether vertical stretching is turned on.
8749
8750'CrtcPaletteFile'
8751     String specifying the name of the palette file being used.  The
8752     '.vpl' extension is optional.
8753
8754'CrtcExternalPalette'
8755     Boolean specifying whether to use external palette file or not.
8756
8757'CrtcColorSaturation'
8758     Integer specifying saturation of internal calculated palette.
8759     (0..2000)
8760
8761'CrtcColorContrast'
8762     Integer specifying contrast of internal calculated palette.
8763     (0..2000)
8764
8765'CrtcColorBrightness'
8766     Integer specifying brightness of internal calculated palette.
8767     (0..2000)
8768
8769'CrtcColorGamma'
8770     Integer specifying gamma of internal calculated palette.  (0..4000)
8771
8772'CrtcColorTint'
8773     Integer specifying tint of internal calculated palette.  (0..2000)
8774
8775'CrtcPALScanLineShade'
8776     Integer specifying amount of scan line shading for the CRT
8777     emulation.  (0..1000)
8778
8779'CrtcPALBlur'
8780     Integer specifying amount of horizontal blur for the CRT emulation.
8781     (0..1000)
8782
8783'CrtcPALOddLinePhase'
8784     Integer specifying phase for color carrier in odd lines.  (0..2000)
8785
8786'CrtcPALOddLineOffset'
8787     Integer specifying phase offset for color carrier in odd lines.
8788     (0..2000)
8789
8790'CrtcAudioLeak'
8791     Boolean specifying whether to enable/disable video to audio leak
8792     emulation.
8793
8794'CrtcFilter'
8795     Integer specifying rendering filter.  (0: None, 1: CRT emulation,
8796     2: Scale2x)
8797
87987.7.2.2 CRTC command-line options
8799.................................
8800
8801'-crtc'
8802'+crtc'
8803     Enable/disable the 6545 CRTC emulation ('Crtc=1', 'Crtc=0').
8804
8805'-Crtcvcache'
8806'+Crtcvcache'
8807     Enable/disable the video cache ('CrtcVideoCache=1',
8808     'CrtcVideoCache=0').
8809
8810'-Crtcdsize'
8811'+Crtcdsize'
8812     Enable/disable double size ('CrtcDoubleSize=1',
8813     'CrtcDoubleSize=0').
8814
8815'-CRTCstretchvertical'
8816'+CRTCstretchvertical'
8817     Enable/disable vertical stretching ('CrtcStretchVertical=1',
8818     'CrtcStretchVertical=0').
8819
8820'-Crtcdscan'
8821'+Crtcdscan'
8822     Enable/disable double scan ('CrtcDoubleScan=1',
8823     'CrtcDoubleScan=0').
8824
8825'-Crtcfilter <Mode>'
8826     Select rendering filter ('CrtcFilter').  (0: None, 2: CRT
8827     emulation, 3: Scale2x)
8828
8829'-Crtcintpal'
8830     Use an internal calculated palette ('CrtcExternalPalette=0').
8831
8832'-Crtcextpal'
8833     Use an external palette (file) ('CrtcExternalPalette=1').
8834
8835'-Crtcpalette <name>'
8836     Specify the name of the palette file ('CrtcPaletteFile').
8837
8838'-Crtcsaturation <0-2000>'
8839     Set saturation of internal calculated palette
8840     ('CrtcColorSaturation').
8841
8842'-Crtccontrast <0-2000>'
8843     Set contrast of internal calculated palette ('CrtcColorContrast').
8844
8845'-Crtcbrightness <0-2000>'
8846     Set brightness of internal calculated palette
8847     ('CrtcColorBrightness').
8848
8849'-Crtcgamma <0-4000>'
8850     Set gamma of internal calculated palette ('CrtcColorGamma').
8851
8852'-Crtctint <0-2000>'
8853     Set tint of internal calculated palette ('CrtcColorTint').
8854
8855'-Crtcoddlinesphase <0-2000>'
8856     Set phase for color carrier in odd lines ('CrtcPALOddLinePhase').
8857
8858'-Crtcoddlinesoffset <0-2000>'
8859     Set phase offset for color carrier in odd lines
8860     ('CrtcPALOddLineOffset').
8861
8862'-Crtccrtblur <0-1000>'
8863     Amount of horizontal blur for the CRT emulation ('CrtcPALBlur').
8864
8865'-Crtccrtscanlineshade <0-1000>'
8866     Amount of scan line shading for the CRT emulation
8867     ('CrtcPALScanLineShade').
8868
8869'-Crtcaudioleak'
8870'+Crtcaudioleak'
8871     Enable/disable video to audio leak emulation ('CrtcAudioLeak=1',
8872     'CrtcAudioLeak=0').
8873
8874
8875File: vice.info,  Node: PET I/O extensions,  Next: PET system ROM,  Prev: CRTC Settings,  Up: PET-specific
8876
88777.7.3 PET I/O extension settings
8878--------------------------------
8879
88807.7.3.1 PET I/O extension resources
8881...................................
8882
8883'PETREU'
8884     Boolean specifying whether PET REU emulation is enabled or not.
8885
8886'PETREUfilename'
8887     String specifying the filename of the PET REU image.
8888
8889'PETREUsize'
8890     Integer specifying the size of the emulated PET REU in KB. (128,
8891     512, 1024, 2048)
8892
8893'PETDWW'
8894     Boolean specifying whether DWW emulation is enabled or not.
8895
8896'PETDWWfilename'
8897     String specifying the filename of the DWW image RAM image.
8898
8899'PETHRE'
8900     Boolean specifying whether HRE emulation is enabled or not.
8901
8902'PETColour'
8903     Integer selecting the colour extension.  (0: off, 1: RGBI, 2:
8904     Analog)
8905
8906'PETColourBG'
8907     Iteger specifying the analog colour background on PET 4032.
8908     (0..255)
8909
8910'UserportDAC'
8911     Boolean specifying whether userport DAC emulation is enabled.
8912
8913'SidCart'
8914     Boolean specifying whether SID Cart emulation is enabled or not.
8915
8916'SidAddress'
8917     Integer that specifies the base address of the emulated SID chip.
8918     (0x8F00, 0xE900)
8919
8920'SidClock'
8921     Integer specifying the clock rate used for the emulated SID chip.
8922     (0: C64, 1: PET)
8923
89247.7.3.2 PET I/O extension command-line options
8925..............................................
8926
8927'-petreu'
8928'+petreu'
8929     Enable/disable the PET Memory Expansion Unit ('PETREU=1',
8930     'PETREU=0').
8931
8932'-petreuimage <name>'
8933     Specify name of PET Ram and Expansion Unit image
8934     ('PETREUfilename').
8935
8936'-petreuramsize <size in KB>'
8937     Size of the PET Ram and Expansion Unit ('PETREUsize').  (128, 512,
8938     1024, 2048)
8939
8940'-userportdac'
8941'+userportdac'
8942     Enable/disable the userport DAC ('UserportDAC=1', 'UserportDAC=0').
8943
8944'-petdww'
8945'+petdww'
8946     Enable/disable the PET DWW hi-res board (30xx models only)
8947     ('PETDWW=1', 'PETDWW=0').
8948
8949'-petdwwimage <name>'
8950     Specify name of PET DWW RAM image ('PETDWWfilename').
8951
8952'-pethre'
8953'+pethre'
8954     Enable/disable the PET HRE extension (model 8296 only) ('PETHRE=1',
8955     'PETHRE=0').
8956
8957'-colour-rgbi'
8958     Enable the RGBI colour extension to PET 4032 ('PETColour=1').
8959
8960'-colour-analog'
8961     Enable the analog colour extension to PET 4032 ('PETColour=2').
8962
8963'-colour-analog-bg <Colour 0-255>'
8964     Select the analog colour background on PET 4032 ('PETColourBG').
8965
8966'-sidcart'
8967'+sidcart'
8968     Enable/disable the SID Cartridge ('SidCart=1', 'SidCart=0').
8969
8970'-sidcartaddress <address>'
8971     Specify address of the SID Cartridge ('SidAddress').  (0x8F00,
8972     0xE900)
8973
8974'-sidcartclock <clock>'
8975     Specify clock of the SID Cartridge ('SidClock').  (0: C64, 1: PET)
8976
8977
8978File: vice.info,  Node: PET system ROM,  Next: PET diagnostic pin,  Prev: PET I/O extensions,  Up: PET-specific
8979
89807.7.4 PET system ROM settings
8981-----------------------------
8982
89837.7.4.1 PET system ROM resources
8984................................
8985
8986'H6809RomAName'
8987'H6809RomBName'
8988'H6809RomCName'
8989'H6809RomDName'
8990'H6809RomEName'
8991'H6809RomFName'
8992     Strings specifying the filenames of the respective H6809 ROM
8993     images, relevant for the SuperPET.
8994
89957.7.4.2 PET system ROM command-line options
8996...........................................
8997
8998'-kernal <name>'
8999     Specify filename of the Kernal ROM file ('KernalName').
9000
9001'-basic <name>'
9002     Specify filename of the BASIC ROM file ('BasicName').
9003
9004'-editor NAME'
9005     Specify the filename for the editor ROM file ('EditorName').
9006
9007'-chargen <name>'
9008     Specify filename of the character generator ROM file
9009     ('ChargenName').
9010
9011'-rom9 <name>'
9012     Specify the filename for the ROM image file for the $9*** cartridge
9013     area ('RomModule9Name').
9014
9015'-romA <name>'
9016     Specify the filename for the ROM image file for the $A*** cartridge
9017     area ('RomModuleAName').
9018
9019'-romB <name>'
9020     Specify the filename for the ROM image file for the $B*** cartridge
9021     area ('RomModuleBName').
9022
9023'-6809romA <Name>'
9024     Specify 4K to 24K ROM file name at $A000 for 6809
9025     ('H6809RomAName').
9026
9027'-6809romB <Name>'
9028     Specify 4K to 20K ROM file name at $B000 for 6809
9029     ('H6809RomBName').
9030
9031'-6809romC <Name>'
9032     Specify 4K to 16K ROM file name at $C000 for 6809
9033     ('H6809RomCName').
9034
9035'-6809romD <Name>'
9036     Specify 4K to 12K ROM file name at $D000 for 6809
9037     ('H6809RomDName').
9038
9039'-6809romE <Name>'
9040     Specify 2K or 8K ROM file name at $E000 for 6809 ('H6809RomEName').
9041
9042'-6809romF <Name>'
9043     Specify 4K ROM file name at $F000 for 6809 ('H6809RomFName').
9044
9045
9046File: vice.info,  Node: PET diagnostic pin,  Next: PET settings,  Prev: PET system ROM,  Up: PET-specific
9047
90487.7.5 The PET diagnostic pin
9049----------------------------
9050
9051It is possible to enable or disable emulation of the PET diagnostic pin
9052via the 'DiagPin' resource, or the "PET userport diagnostic pin" item in
9053the right-button menu.
9054
9055When the diagnostic pin is set, the Kernal does not try to initialize
9056the BASIC, but directly jumps into the builtin machine monitor.
9057
9058
9059File: vice.info,  Node: PET settings,  Next: Colour PET,  Prev: PET diagnostic pin,  Up: PET-specific
9060
90617.7.6 PET settings
9062------------------
9063
90647.7.6.1 PET resources
9065.....................
9066
9067'MachineVideoStandard'
9068     Integer that specifies the video standard of the emulated machine
9069     (1: PAL, 2: NTSC).
9070
9071'CPUswitch'
9072     Integer specifying the status of the SuperPET CPU switch (0: 6502,
9073     1: 6809, 2: Prog.)
9074
90757.7.6.2 PET command line options
9076................................
9077
9078These are the commandline options specific for the PET models.
9079
9080'-pal'
9081     Use PAL sync factor ('MachineVideoStandard=1').
9082
9083'-ntsc'
9084     Use NTSC sync factor ('MachineVideoStandard=2').
9085
9086'-model <model>'
9087     Specify the PET model you want to emulate ('Basic1', 'Basic1Chars',
9088     'ChargenName', 'KernalName', 'BasicName', 'EditorName',
9089     'RomModule9Name', 'RomModuleAName', 'RomModuleBName',
9090     'H6809RomAName', 'H6809RomBName', 'H6809RomCName', 'H6809RomDName',
9091     'H6809RomEName', 'H6809RomFName').  (2001, 3008, 3016, 3032, 3032B,
9092     4016, 4032, 4032B, 8032, 8096, 8296, SuperPET)
9093
9094'-iosize <size>'
9095     Specify size of I/O in Bytes ('IOSize').  (256, 2048)
9096
9097'-ramsize <size>'
9098     Specify size of RAM in KB ('RamSize').  (8, 16, 32, 96, 128)
9099
9100'-videosize <size>'
9101     Specify video size ('VideoSize').  (0: Automatic from ROM, 40: 40
9102     columns, 80: 80 columns)
9103
9104'-petram9'
9105'+petram9'
9106     Switch on/off RAM mapping at address $9000-$9FFF ('Ram9=1',
9107     'Ram9=0').
9108
9109'-petramA'
9110'+petramA'
9111     Switch on/off RAM mapping at address $A000-$AFFF ('RamA=1',
9112     'RamA=0').
9113
9114'-superpet'
9115'+superpet'
9116     Enable/disable SuperPET I/O and CPU emulation ('SuperPET').
9117
9118'-cpu6502'
9119     Set SuperPET CPU switch to '6502' ('CPUswitch=0').
9120
9121'-cpu6809'
9122     Set SuperPET CPU switch to '6809' ('CPUswitch=1').
9123
9124'-cpuprog'
9125     Set SuperPET CPU switch to 'Prog' ('CPUswitch=2').
9126
9127'-basic1'
9128'+basic1'
9129     Enable/disable patching the IEEE488 section of the PET2001 ROM when
9130     detected ('Basic1=1', 'Basic1=0').
9131
9132'-basic1char'
9133'+basic1char'
9134     Enable/disable PET 2001 character generator ('Basic1Chars=1',
9135     'Basic1Chars=0').
9136
9137'-eoiblank'
9138'+eoiblank'
9139     Enable/disable EOI blanking the screen ('EoiBlank=1',
9140     'EoiBlank=0').
9141
9142'-diagpin'
9143'+diagpin'
9144     Enable/disable the diagnostic pin at the PET userport ('DiagPin=1',
9145     'DiagPin=0').
9146
9147
9148File: vice.info,  Node: Colour PET,  Next: PET colors,  Prev: PET settings,  Up: PET-specific
9149
91507.7.7 Colour PET
9151----------------
9152
9153The Colour PET is a simple extension by Steve Gray
9154<http://www.6502.org/users/sjgray/projects/colourpet/>.  It exploits the
9155similarities and differences between the 4032 and 8032 models, to use
9156memory at $8800 as colour RAM.
9157
9158There are two versions of the extension:
9159
9160with digital colour (RGBI), which can select 16 foreground and 16
9161background colours for each character cell.  The 8 colour bits are used
9162as RGBI RGBI, with the most significant bits for the background, and the
9163least significant bits for the foreground.
9164
9165With analog colour, which can use 256 foreground colours for each
9166character cell, the 8 colour bits are used as RRR GGG BB.
9167
9168
9169File: vice.info,  Node: PET colors,  Next: PET DWW high resolution graphics,  Prev: Colour PET,  Up: PET-specific
9170
91717.7.8 Changing screen colors
9172----------------------------
9173
9174It is also possible to choose what color set is used for the emulation
9175window.  This is done by specifying a palette file name (*note Palette
9176files::) in the 'PaletteName' resource.  The menu provides the following
9177values:
9178
9179   * 'green.vpl' (default, "green)"), the good old green-on-black
9180     feeling;
9181   * 'amber.vpl' ("amber"), an amber phosphor lookalike;
9182   * 'white.vpl' ("white"), simple white-on-black palette.
9183
9184
9185File: vice.info,  Node: PET DWW high resolution graphics,  Next: PET HRE (HiRes Emulator) high resolution graphics,  Prev: PET colors,  Up: PET-specific
9186
91877.7.9 DWW high resolution graphics
9188----------------------------------
9189
9190The DWW, or Double-W (1), board is a high resolution graphics board for
9191PET models 30xx.  It attaches to the internal expansion connector.  It
9192would not physically fit in 20xx, 40xx or 80xx models because their
9193connectors are physically and logically different.  Apart from this, it
9194requires address space at $EC00-$EFFF, which makes it unfit to work in
919540xx and 80xx models, which have only 256 bytes of I/O space at $E800.
9196
9197The DWW board consists of 8 KB of RAM and a PIA to control various
9198options.  The RAM can be mapped either linearly at $9000-$AFFF, or
9199bank-switched in 8 banks of 8 KB each at $EC00-$EFFF.
9200
9201It seems that in the demo programs, the BASIC versions like to POKE in
920260200, where the machine language programs use $EB00.
920360200 Port A or DDR A           $EB28
9204$EBx0 1  0 \
9205      2  1 - RAM block at $EC00 (0-7)
9206      4  2 /
9207      8  3 charrom         0 = off 1 = on
9208      16 4 hires           0 = on  1 = off
9209      32 5 extra charrom   0 = on  1 = off
9210
921160201 Control Register A: bit #3 (worth 4) controls if 60200
9212$EBx1 accesses the Data Direction Register A (0) or Port A (1).
9213
921460202 Port B or DDR B
9215$EBx2 0 = RAM is visible from $9000 - $AFFF
9216      1 = RAM is bank-switched in blocks of 1 K in $EC00 - $EFFF
9217
9218      [Control Register B is never mentioned, so putting 1 in this
9219       address would access the DDR, creating an output line, which
9220       after RESET is default 0...]
9221
9222Typical initialisation sequence:
9223    poke 60201,0        poke 60200,255          (all outputs)
9224    poke 60201,4        poke 60200,24 or 25 (16 + 8 + 1)
9225
9226Demo programs on disk PBE-110A, 110B, 111A, and 111B. (PBE = PET Benelux
9227Exchange, the Dutch PET user group)
9228
9229The memory mapping is a bit strange.  It seems each 1 K block contains
9230the pixeldata for 1 bit-line of each text line.  This is probably so
9231that the addressing of the RAM can borrow part of the addressing
9232logic/signals of the text screen.  (The screen addressing cycles through
92330-39, then increases the line (= byte offset) which is fetched from the
9234character ROM; for the graphics, the screen position selects the byte in
9235a KB and the char ROM offset selects which KB of graphics RAM).
9236
9237My notes say: to set a pixel:
9238RE = INT(Y/8): LY = Y - 8*RE    (or Y AND 7)
9239BY = INT(X/8): BI = X - 8*BY    (or X AND 7)
9240
9241when memory mapped to $9000:
9242    L = 36864 + 1024 * LY + 40 * RE + BY
9243    POKE L, PEEK(L) OR 2^BI
9244
9245when memory mapped to $EC00:
9246    POKE 60200,LY + 40 (or 8?)
9247    L = 60416 + RE * 40 + BY
9248    POKE L, PEEK(L) OR 2^BI
9249
9250Unfortunately there is no logical means of expanding the memory to 16 K,
9251so even in an 80 columns PET the resolution will be the same.
9252
9253   ---------- Footnotes ----------
9254
9255   (1) Dubbel-W bord, designed by Ben de Winter and Pieter Wolvekamp
9256
9257
9258File: vice.info,  Node: PET HRE (HiRes Emulator) high resolution graphics,  Prev: PET DWW high resolution graphics,  Up: PET-specific
9259
92607.7.10 HRE high resolution graphics
9261-----------------------------------
9262
9263This information comes from Michal Pleban <kontakt@michau.name>,
9264<http://www.cbm-ii.com>.
9265
9266This is a short information about the HRE (HiRes Emulator) graphics
9267board for PET 8296.  This is a small board that is installed on the
9268mainboard into sockets for the CRTC and character ROM. It adds the
9269ability to display 512x256 graphics on the built-in monitor.
9270
9271The board is accompanied with two extension ROMs:
9272
9273   * 324992-02 HiRes Emulator (at $9000)
9274   * 324993-02 HiRes BASIC (at $A000)
9275
9276The ROMs are initialized by the command 'SYS 36864'.
9277
9278After that, the computer recognizes additional BASIC commands like
9279DISPLAY, PLOT and so on; these commands are identical to those of the
9280HiRes Graphics boards based on Thomson chips.  All BASIC programs
9281written for the HRG boards should also work on the HRE (albeit much
9282slower).
9283
9284Upon initialization, the ROM code writes some routines into expansion
9285RAM as $8800 - they are used to manipulate the bitmap data.  The actual
9286bitmap is located in expansion RAM at addresses $A000-$DFFF, and is
9287organized linearly (first 64 bytes form the first display line, then
9288comes the next line and so on).
9289
9290The RAM is accessed for reading by writing the value #$83 into $E888.
9291This is a register in the CRTC memory space that is intercepted by the
9292board and serves as a latch to drive jumpers on the 8296D mainboard.
9293Because the ROMs are banked out this way, all video memory manipulation
9294must happen with interrupts disabled.  Normal ROM operation is restored
9295by writing #$0F into $E888.
9296
9297As usual with the 8296, the RAM can also be written even when the ROMs
9298are mapped normally.
9299
9300The board is initialized into graphics mode by modifying the following
9301values in CRTC registers (it is done by the routine located at $8C1A):
9302
9303   * Register $01 (horizontal displayed) = #$20
9304   * Register $02 (horizontal sync position) = original + #$02
9305   * Register $06 (vertical displayed) = #$20
9306   * Register $07 (vertical sync position) = original + #$04
9307   * Register $0C (RAM address high) = #$02
9308
9309The last value causes the board to switch into graphics mode; former
9310values set up propoer screen dimensions for 512x256 display.
9311
9312
9313File: vice.info,  Node: CBM-II-specific,  Next: VSID-specific,  Prev: PET-specific,  Up: Machine-specific features
9314
93157.8 CBM-II-specific commands and settings
9316=========================================
9317
9318This section lists the settings and commands that are CBM-II-specific
9319and thus are not present in the other emulators.
9320
9321* Menu:
9322
9323* CBM-II model::
9324* CBM-II commandline options::
9325* CBM-II colors::
9326
9327
9328File: vice.info,  Node: CBM-II model,  Next: CBM-II commandline options,  Prev: CBM-II-specific,  Up: CBM-II-specific
9329
93307.8.1 Changing CBM-II model
9331---------------------------
9332
9333With 'xcbm2' and 'xcbm5x0', it is possible to change at runtime the
9334characteristics of the emulated CBM so that it matches (or not) the ones
9335of a certain CBM model, and it is also possible to select from a common
9336set of CBM models so that all the features are selected accordingly.
9337
9338The former is done by changing the following resources (via resource
9339file, command line options or right-menu items):
9340
9341'RamSize'
9342     Size of memory in kByte.  xcbm2: (128, 256, 512, 1024) xcbm5x0:
9343     (64, 128, 256, 512, 1024)
9344
9345'Ram08'
9346     Boolean specifying whether the RAM should be mapped to the
9347     expansion ROM area at $0800-$0FFF or not.
9348
9349'Ram1'
9350     Boolean specifying whether the RAM should be mapped to the
9351     expansion ROM area at $1000-$1FFF or not.
9352
9353'Ram2'
9354     Boolean specifying whether the RAM should be mapped to the
9355     expansion ROM area at $2000-$3FFF or not.
9356
9357'Ram4'
9358     Boolean specifying whether the RAM should be mapped to the
9359     expansion ROM area at $4000-$5FFF or not.
9360
9361'Ram6'
9362     Boolean specifying whether the RAM should be mapped to the
9363     expansion ROM area at $6000-$7FFF or not.
9364
9365'RamC'
9366     Boolean specifying whether the RAM should be mapped to the
9367     expansion ROM area at $C000-$CFFF or not.
9368
9369'CartridgeReset'
9370     Boolean specifying whether the machine should be reset when a
9371     cartridge is changed.
9372
9373'Cart1Name'
9374     String specifying the filename for the $1000-$1FFF expansion ROM
9375     file.  This file contains a 4k ROM dump.
9376
9377'Cart2Name'
9378     String specifying the filename for the $2000-$3FFF expansion ROM
9379     file.  This file contains an 8k ROM dump.
9380
9381'Cart4Name'
9382     String specifying the filename for the $4000-$5FFF expansion ROM
9383     file.  This file contains an 8k ROM dump.
9384
9385'Cart6Name'
9386     String specifying the filename for the $6000-$7FFF expansion ROM
9387     file.  This file contains an 8k ROM dump.
9388
9389'ModelLine'
9390     The CBM-II business models have two hardcoded lines at one of the
9391     I/O ports.  From those lines the kernal determines how it should
9392     init the CRTC video chip for either 50Hz (Europe) or 60Hz (North
9393     America), and either for 8 (C6x0) or 14 (C7x0) scanlines per
9394     character.  xcbm2: (0: CBM 7x0 (50Hz), 1: 60Hz C6x0, 2: 50Hz C6x0)
9395     xcbm5x0: (1: 60Hz C5x0, 2: 50Hz C5x0)
9396
9397'ChargenName'
9398     String specifying the name of the character generator ROM (default
9399     for xcbm2: 'chargen.600', default for xcbm5x0: 'chargen.500').
9400
9401'KernalName'
9402     String specifying the name of the Kernal ROM (default for xcbm2:
9403     'kernal', default for xcbm5x0: 'kernal.500').
9404
9405'BasicName'
9406     String specifying the name of the Basic ROM (default for xcbm2:
9407     'basic.128', default for xcbm5x0: 'basic.500').
9408
9409'MachineVideoStandard'
9410     Integer that specifies the video standard of the emulated machine
9411     (1: PAL, 2: NTSC).
9412
9413Choosing a common CBM-II model is done from the right-button menu
9414instead, by choosing an item from the "Model defaults" submenu.
9415Available models are:
9416
9417   * C510 PAL or NTSC (128k RAM)
9418   * C610 PAL or NTSC (128k RAM)
9419   * C620 (256k RAM)
9420   * C620+ (1024k RAM, expanded) PAL or NTSC
9421   * C710 (128k RAM) NTSC
9422   * C720 (256k RAM) NTSC
9423   * C720+ (1024k RAM, expanded) NTSC
9424
9425Notice that this will *reset the emulated machine*.
9426
9427Warning: At this time the 5x0 and other machines are implemented in
9428different executables, so switching between those models is not
9429possible.
9430
9431It is also possible to select the CBM model at startup, with the
9432'-model' command-line option: for example, 'xcbm2 -model 610' will
9433emulate a CBM 610 while 'xcbm2 -model 620' will emulate a CBM 620.
9434
94357.8.2 CBM-II system ROM settings
9436--------------------------------
9437
94387.8.2.1 CBM-II system ROM resources
9439...................................
9440
94417.8.2.2 CBM-II system ROM command line options
9442..............................................
9443
9444'-kernal <name>'
9445     Specify the name of the Kernal ROM file ('KernalName').
9446
9447'-basic <name>'
9448     Specify the name of the Basic ROM file ('BasicName').
9449
9450'-chargen <name>'
9451     Specify the filename for the character generator ROM file
9452     ('ChargenName').
9453
9454'+cart'
9455     Disable all cartridges (which would eventually be enabled in the
9456     config file).
9457
9458'-cartreset'
9459'+cartreset'
9460     Reset/do not reset machine if a cartridge is attached or detached
9461     ('CartridgeReset=1', 'CartridgeReset=0').
9462
9463'-cart1 <name>'
9464     Specify the filename for the ROM image file for the cartridge area
9465     $1000-$1FFF ('Cart1Name').
9466
9467'-cart2 <name>'
9468     Specify the filename for the ROM image file for the cartridge area
9469     $2000-$2FFF ('Cart2Name').
9470
9471'-cart4 <name>'
9472     Specify the filename for the ROM image file for the cartridge area
9473     $4000-$5FFF ('Cart4Name').
9474
9475'-cart6 <name>'
9476     Specify the filename for the ROM image file for the cartridge area
9477     $6000-$7FFF ('Cart6Name').
9478
9479
9480File: vice.info,  Node: CBM-II commandline options,  Next: CBM-II colors,  Prev: CBM-II model,  Up: CBM-II-specific
9481
94827.8.3 CBM-II command line options
9483---------------------------------
9484
9485These are the commandline options specific for the CBM-II models.
9486
9487'-pal'
9488     Use PAL sync factor ('MachineVideoStandard=1').
9489
9490'-ntsc'
9491     Use NTSC sync factor ('MachineVideoStandard=2').
9492
9493'-ramsize <ramsize>'
9494     Specify size of RAM ('RamSize').  xcbm2: (128, 256, 512, 1024)
9495     xcbm5x0: (64, 128, 256, 512, 1024)
9496
9497'-ram08'
9498'+ram08'
9499     Enable/disable RAM mapping in bank 15 at address $0800-$0FFF
9500     ('Ram08=1', 'Ram08=0').
9501
9502'-ram1'
9503'+ram1'
9504     Enable/disable RAM mapping in bank 15 at address $1000-$1FFF
9505     ('Ram1=1', 'Ram1=0').
9506
9507'-ram2'
9508'+ram2'
9509     Enable/disable RAM mapping in bank 15 at address $2000-$3FFF
9510     ('Ram2=1', 'Ram2=0').
9511
9512'-ram4'
9513'+ram4'
9514     Enable/disable RAM mapping in bank 15 at address $4000-$5FFF
9515     ('Ram4=1', 'Ram4=0').
9516
9517'-ram6'
9518'+ram6'
9519     Enable/disable RAM mapping in bank 15 at address $6000-$7FFF
9520     ('Ram6=1', 'Ram6=0').
9521
9522'-ramC'
9523'+ramC'
9524     Enable/disable RAM mapping in bank 15 at address $C000-$CFFF
9525     ('RamC=1', 'RamC=0').
9526
9527'-model <modelnumber>'
9528     Specify CBM-II model to emulate ('ModelLine',
9529     'MachineVideoStandard', 'RamSize', 'KernalName', 'BasicName',
9530     'ChargenName').  xcbm2: (610, 620, 620+, 710, 720, 720+) xcbm5x0:
9531     (510)
9532
9533
9534File: vice.info,  Node: CBM-II colors,  Prev: CBM-II commandline options,  Up: CBM-II-specific
9535
95367.8.4 Changing screen colors
9537----------------------------
9538
9539It is also possible to choose what color set is used for the emulation
9540window.  This is done by specifying a palette file name (*note Palette
9541files::) in the 'PaletteName' resource.  The menu provides the following
9542values:
9543
9544   * 'green.vpl' (default, "green"), the good old green-on-black
9545     feeling;
9546   * 'amber.vpl' ("amber"), an amber phosphor lookalike;
9547   * 'white.vpl' ("white"), simple white-on-black palette.
9548
9549
9550File: vice.info,  Node: VSID-specific,  Prev: CBM-II-specific,  Up: Machine-specific features
9551
95527.9 VSID-specific commands and settings
9553=======================================
9554
95557.9.1 VSID settings
9556-------------------
9557
95587.9.1.1 VSID resources
9559......................
9560
9561'PSIDKeepEnv'
9562     Boolean that specifies whether to override PSID settings for Video
9563     standard and SID model.
9564
9565'PSIDTune'
9566     Integer that specifies the currently played sub tune.
9567
9568'HVSCRoot'
9569     String specifying the location of the HVSC "C64Music" directory.
9570
9571'ChargenName'
9572     String specifying the name of the character generator ROM (default
9573     'chargen').
9574
9575'KernalName'
9576     String specifying the name of the Kernal ROM (default 'kernal').
9577
9578'BasicName'
9579     String specifying the name of the Basic ROM (default 'basic').
9580
9581'KernalRev'
9582     String specifying the Kernal revision.  This resource can be used
9583     to control what revision of the C64 kernal is being used; it cannot
9584     be changed at runtime.  VICE is able to automatically convert one
9585     ROM revision into another, by manually patching the loaded image.
9586     This way, it is possible to use any of the ROM revisions without
9587     changing the ROM set.  Valid values are:
9588
9589     '0'
9590          Kernal revision 0;
9591     '3'
9592          Kernal revision 3;
9593     'sx'
9594     '67'
9595          Commodore SX-64 ROM;
9596     '100'
9597     '4064'
9598          Commodore 4064 (also known as "PET64" or "Educator 64") ROM.
9599
9600'MachineVideoStandard'
9601     Integer that specifies the video standard of the emulated machine
9602     (4: PAL-N, 3: Old NTSC, 1: PAL, 2: NTSC).
9603
96047.9.1.2 VSID command-line options
9605.................................
9606
9607'-keepenv'
9608     Override PSID settings for Video standard and SID model
9609     ('PSIDKeepEnv=1').
9610
9611'-tune <number>'
9612     Specify PSID tune <number> ('PSIDTune').
9613
9614'-chargen <name>'
9615     Specify name of character generator ROM image ('ChargenName').
9616
9617'-kernal <name>'
9618     Specify name of the Kernal ROM image ('KernalName').
9619
9620'-basic <name>'
9621     Specify name of the Basic ROM image ('BasicName').
9622
9623'-pal'
9624     Use PAL sync factor ('MachineVideoStandard=1').
9625
9626'-ntsc'
9627     Use NTSC sync factor ('MachineVideoStandard=2').
9628
9629'-ntscold'
9630     Use old NTSC sync factor ('MachineVideoStandard=3').
9631
9632'-paln'
9633     Use PAL-N sync factor ('MachineVideoStandard=4').
9634
9635
9636File: vice.info,  Node: Platform-specific features,  Next: Snapshots,  Prev: Machine-specific features,  Up: Top
9637
96388 Platform-specific features
9639****************************
9640
9641This section lists the settings and commands that are platform specific.
9642
9643* Menu:
9644
9645* SDL-specific features::
9646* GTK3 specific features::
9647
9648
9649File: vice.info,  Node: SDL-specific features,  Next: GTK3 specific features,  Up: Platform-specific features
9650
96518.1 SDL-specific features
9652=========================
9653
9654This section lists the settings and commands that are common and
9655specific to SDL, and are thus not present in other platforms.
9656
96578.1.1 SDL specific resources
9658----------------------------
9659
9660'HotkeyFile'
9661     String specifying the name of the hotkey file (all emulators except
9662     vsid).
9663
9664'MenuKey'
9665     Integer specifying the keycode for activating the SDL menu.
9666
9667'MenuKeyUp'
9668     Integer specifying the keycode for 'up' in the SDL menu.
9669
9670'MenuKeyDown'
9671     Integer specifying the keycode for 'down' in the SDL menu.
9672
9673'MenuKeyLeft'
9674     Integer specifying the keycode for 'left' in the SDL menu.
9675
9676'MenuKeyRight'
9677     Integer specifying the keycode for 'right' in the SDL menu.
9678
9679'MenuKeyPageUp'
9680     Integer specifying the keycode for 'page up' in the SDL menu.
9681
9682'MenuKeyPageDown'
9683     Integer specifying the keycode for 'page down' in the SDL menu.
9684
9685'MenuKeyHome'
9686     Integer specifying the keycode for 'home' in the SDL menu.
9687
9688'MenuKeyEnd'
9689     Integer specifying the keycode for 'end' in the SDL menu.
9690
9691'MenuKeySelect'
9692     Integer specifying the keycode for 'select' in the SDL menu.
9693
9694'MenuKeyCancel'
9695     Integer specifying the keycode for 'cancel' in the SDL menu.
9696
9697'MenuKeyExit'
9698     Integer specifying the keycode for 'exit' in the SDL menu.
9699
9700'MenuKeyMap'
9701     Integer specifying the keycode for 'map' in the SDL menu.
9702
9703'SaveResourcesOnExit'
9704     Boolean specifying whether the emulator should save changed
9705     settings before exiting.  If this is enabled, the user will be
9706     always prompted first, in case the settings have changed.
9707
9708'ConfirmOnExit'
9709     Boolean specifying whether to show a confirmation dialog on exit.
9710
9711'SDLStatusbar'
9712     Boolean to enable/disable the statusbar (all emulators except
9713     vsid).
9714
9715'SDLBitdepth'
9716     Integer specifying the bitdepth used.  (0: current, 8, 15, 16, 24,
9717     32)
9718
9719'SDLLimitMode'
9720     Integer specifying the resolution limit mode.  (0: off, 1: max, 2:
9721     fixed)
9722
9723'SDLCustomWidth'
9724     Integer specifying the custom resolution width.
9725
9726'SDLCustomHeight'
9727     Integer specifying the custom resolution height.
9728
9729'SDLKbdStatusbar'
9730     Boolean specifying whether the keyboard-status bar is enabled.
9731
9732'SDL2Renderer'
9733     String specifying the preferred SDL2 renderer.
9734
9735'SDLWindowWidth'
9736     Integer specifying the SDL window width.
9737
9738'SDLWindowHeight'
9739     Integer specifying the SDL window height.
9740
9741'SDLGLFilter'
9742     Integer specifying the OpenGL filtering mode.
9743
9744'JoyDevice1'
9745     Integer specifying which joystick device the emulator should use
9746     for the emulation of joystick 1 (all emulators except xcbm2, xpet
9747     and vsid).  (0: None, 1: Numpad, 2: Keyset 1, 3: Keyset 2, 4:
9748     Joystick (only if joystick support was present in the compile time
9749     SDL library))
9750
9751'JoyDevice2'
9752     Integer specifying which joystick device the emulator should use
9753     for the emulation of joystick 2 (all emulators except xcbm2, xpet,
9754     xvic and vsid).  (0: None, 1: Numpad, 2: Keyset 1, 3: Keyset 2, 4:
9755     Joystick (only if joystick support was present in the compile time
9756     SDL library))
9757
9758'JoyDevice3'
9759     Integer specifying which joystick device the emulator should use
9760     for the emulation of extra joystick 1 (all emulators except xcbm5x0
9761     and vsid).  (0: None, 1: Numpad, 2: Keyset 1, 3: Keyset 2, 4:
9762     Joystick (only if joystick support was present in the compile time
9763     SDL library))
9764
9765'JoyDevice4'
9766     Integer specifying which joystick device the emulator should use
9767     for the emulation of extra joystick 2 (all emulators except
9768     xcbm5x0, xplus4 and vsid).  (0: None, 1: Numpad, 2: Keyset 1, 3:
9769     Keyset 2, 4: Joystick (only if joystick support was present in the
9770     compile time SDL library))
9771
9772'CrtcSDLFullscreenMode'
9773     Integer specifying the fullscreen mode (xcbm2 and xpet only).
9774
9775'CrtcHwScale'
9776     Boolean specifying whether to enable or disable hardware scaling
9777     (xcbm2 and xpet only).
9778
9779'CrtcFullscreenDevice'
9780     String specifying the fullscreen device (xcbm2 and xpet only).
9781
9782'CrtcFullscreen'
9783     Boolean specifying whether to use fullscreen mode or not (xcbm2 and
9784     xpet only).
9785
9786'CrtcFullscreenStatusbar'
9787     Boolean specifying whether to show the status bar in fullscreen
9788     mode or not (xcbm2 and xpet only).
9789
9790'TEDSDLFullscreenMode'
9791     Integer specifying the fullscreen mode (xplus4 only).
9792
9793'TEDHwScale'
9794     Boolean specifying whether to enable or disable hardware scaling
9795     (xplus4 only).
9796
9797'TEDFullscreenDevice'
9798     String specifying the fullscreen device (xplus4 only).
9799
9800'TEDFullscreen'
9801     Boolean specifying whether to use fullscreen mode or not (xplus4
9802     only).
9803
9804'TEDFullscreenStatusbar'
9805     Boolean specifying whether to show the status bar in fullscreen
9806     mode or not (xplus4 only).
9807
9808'VDCSDLFullscreenMode'
9809     Integer specifying the fullscreen mode (x128 only).
9810
9811'VDCHwScale'
9812     Boolean specifying whether to enable or disable hardware scaling
9813     (x128 only).
9814
9815'VDCFullscreenDevice'
9816     String specifying the fullscreen device (x128 only).
9817
9818'VDCFullscreen'
9819     Boolean specifying whether to use fullscreen mode or not (x128
9820     only).
9821
9822'VDCFullscreenStatusbar'
9823     Boolean specifying whether to show the status bar in fullscreen
9824     mode or not (x128 only).
9825
9826'VICSDLFullscreenMode'
9827     Integer specifying the fullscreen mode (xvic only).
9828
9829'VICHwScale'
9830     Boolean specifying whether to enable or disable hardware scaling
9831     (xvic only).
9832
9833'VICFullscreenDevice'
9834     String specifying the fullscreen device (xvic only).
9835
9836'VICFullscreen'
9837     Boolean specifying whether to use fullscreen mode or not (xvic
9838     only).
9839
9840'VICFullscreenStatusbar'
9841     Boolean specifying whether to show the status bar in fullscreen
9842     mode or not (xvic only).
9843
9844'VICIISDLFullscreenMode'
9845     Integer specifying the fullscreen mode (all emulators except xcbm2,
9846     xpet, xplus4, xvic and vsid).
9847
9848'VICIIHwScale'
9849     Boolean specifying whether to enable or disable hardware scaling
9850     (all emulators except xcbm2, xpet, xplus4, xvic and vsid).
9851
9852'VICIIFullscreenDevice'
9853     String specifying the fullscreen device (all emulators except
9854     xcbm2, xpet, xplus4, xvic and vsid).
9855
9856'VICIIFullscreen'
9857     Boolean specifying whether to use fullscreen mode or not (all
9858     emulators except xcbm2, xpet, xplus4, xvic and vsid).
9859
9860'VICIIFullscreenStatusbar'
9861     Boolean specifying whether to show the status bar in fullscreen
9862     mode or not (all emulators except xcbm2, xpet, xplus4, xvic and
9863     vsid).
9864
9865The following resources are only present if the OpenGL library is
9866present and used at compile time.
9867
9868'AspectRatio'
9869     String/float specifying the aspect ratio.  (0.5-2.0)
9870
9871'SDLGLAspectMode'
9872     Integer specifying the OpenGL aspect mode.  (0: off, 1: custom, 2:
9873     true)
9874
9875'SDLGLFlipX'
9876     Boolean to enable/disable OpenGL horizontal screen flip.
9877
9878'SDLGLFlipY'
9879     Boolean to enable/disable OpenGL vertical screen flip.
9880
9881The following resources are only present if the SDL library has joystick
9882support at compile time and applies to all emulators except vsid.
9883
9884'JoyMapFile'
9885     String specifying the name of the joystick map file.
9886
9887'JoyThreshold'
9888     Integer specifying the joystick threshold.  (0..32767)
9889
9890'JoyFuzz'
9891     Integer specifying the joystick fuzz.  (0..32767)
9892
9893The following resource is only present if compiling for native dingoo.
9894
9895'OverClock'
9896     Boolean to enable/disable overclocking.
9897
98988.1.2 SDL specific command-line options
9899---------------------------------------
9900
9901'-hotkeyfile <name>'
9902     Set the hotkey file name ('HotkeyFile') (all emulators except
9903     vsid).
9904
9905'-menukey <key>'
9906     Set the keycode of the SDL menu activation key ('MenuKey').
9907
9908'-menukeyup <key>'
9909     Set the keycode of the 'up' key in the SDL menu ('MenuKeyUp').
9910
9911'-menukeydown <key>'
9912     Set the keycode of the 'down' key in the SDL menu ('MenuKeyDown').
9913
9914'-menukeyleft <key>'
9915     Set the keycode of the 'left' key in the SDL menu ('MenuKeyLeft').
9916
9917'-menukeyright <key>'
9918     Set the keycode of the 'right' key in the SDL menu
9919     ('MenuKeyRight').
9920
9921'-menukeypageup <key>'
9922     Set the keycode of the 'page up' key in the SDL menu
9923     ('MenuKeyPageUp').
9924
9925'-menukeypagedown <key>'
9926     Set the keycode of the 'page down' key in the SDL menu
9927     ('MenuKeyPageDown').
9928
9929'-menukeyhome <key>'
9930     Set the keycode of the 'home' key in the SDL menu ('MenuKeyHome').
9931
9932'-menukeyend <key>'
9933     Set the keycode of the 'end' key in the SDL menu ('MenuKeyEnd').
9934
9935'-menukeyselect <key>'
9936     Set the keycode of the 'select' key in the SDL menu
9937     ('MenuKeySelect').
9938
9939'-menukeycancel <key>'
9940     Set the keycode of the 'cancel' key in the SDL menu
9941     ('MenuKeyCancel').
9942
9943'-menukeyexit <key>'
9944     Set the keycode of the 'exit' key in the SDL menu ('MenuKeyExit').
9945
9946'-menukeymap <key>'
9947     Set the keycode of the 'map' key in the SDL menu ('MenuKeyMap').
9948
9949'-saveres'
9950'+saveres'
9951     Enable/disable automatic saving of settings on exit
9952     ('SaveResourcesOnExit=1', 'SaveResourcesOnExit=0').
9953
9954'-confirmonexit'
9955     Confirm quitting VICE ('ConfirmOnExit=1').
9956'+confirmonexit'
9957     Never confirm quitting VICE ('ConfirmOnExit=0').
9958
9959'-statusbar'
9960'+statusbar'
9961     Enable/disable the statusbar ('SDLStatusbar=1', 'SDLStatusbar=0')
9962     (all emulators except vsid).
9963
9964'-sdlbitdepth <bpp>'
9965     Set the display bitdepth ('SDLBitdepth').  (0: current, 8, 15, 16,
9966     24, 32)
9967
9968'-sdllimitmode <mode>'
9969     Set the resolution limit mode ('SDLLimitMode').  (0: off, 1: max,
9970     2: fixed)
9971
9972'-sdlcustomw <width>'
9973     Set the custom resolution width ('SDLCustomWidth').
9974
9975'-sdlcustomh <height>'
9976     Set the custom resolution height ('SDLCustomHeight').
9977
9978'-kbdstatusbar'
9979'+kbdstatusbar'
9980     Enable/Disable keyboard-status bar (when status bar is enabled)
9981     ('SDLKbdStatusbar=1', 'SDLKbdStatusbar=0').
9982
9983'-sdlglfilter <mode>'
9984     Set OpenGL filtering mode (0 = nearest, 1 = linear)
9985     ('SDLKbdStatusbar').
9986
9987'-sdl2renderer <renderer name>'
9988     Set the preferred SDL2 renderer ('SDL2Renderer').
9989
9990'-joydev1 <0-3> / <0-4>'
9991     Set the device for joystick emulation of port 1 ('JoyDevice1') (all
9992     emulators except xcbm2, xpet and vsid).  (0: None, 1: Numpad, 2:
9993     Keyset 1, 3: Keyset 2, 4: Joystick (only if joystick support was
9994     present in the compile time SDL library))
9995
9996'-joydev2 <0-3> / <0-4>'
9997     Set the device for joystick emulation of port 2 ('JoyDevice2') (all
9998     emulators except xcbm2, xpet, xvic and vsid).  (0: None, 1: Numpad,
9999     2: Keyset 1, 3: Keyset 2, 4: Joystick (only if joystick support was
10000     present in the compile time SDL library))
10001
10002'-extrajoydev1 <0-3> / <0-4>'
10003     Set device for extra joystick port 1 ('JoyDevice3') (all emulators
10004     except xcbm5x0 and vsid).  (0: None, 1: Numpad, 2: Keyset 1, 3:
10005     Keyset 2, 4: Joystick (only if joystick support was present in the
10006     compile time SDL library))
10007
10008'-extrajoydev2 <0-3> / <0-4>'
10009     Set device for extra joystick port 2 ('JoyDevice4') (all emulators
10010     except xcbm5x0, xplus4 and vsid).  (0: None, 1: Numpad, 2: Keyset
10011     1, 3: Keyset 2, 4: Joystick (only if joystick support was present
10012     in the compile time SDL library))
10013
10014'-CRTCSDLfullmode <Mode>'
10015     Set the fullscreen mode ('CrtcSDLFullscreenMode') (xcbm2 and xpet
10016     only).
10017
10018'-CRTChwscale'
10019'+CRTChwscale'
10020     Enable/Disable hardware scaling ('CrtcHwScale=1', 'CrtcHwScale=0')
10021     (xcbm2 and xpet only).
10022
10023'-CRTCfulldevice <device>'
10024     Select fullscreen device ('CrtcFullscreenDevice') (xcbm2 and xpet
10025     only).
10026
10027'-CRTCfull'
10028'+CRTCfull'
10029     Enable/Disable fullscreen ('CrtcFullscreen=1', 'CrtcFullscreen=0')
10030     (xcbm2 and xpet only).
10031
10032'-TEDSDLfullmode <Mode>'
10033     Set the fullscreen mode ('TEDSDLFullscreenMode') (xplus4 only).
10034
10035'-TEDhwscale'
10036'+TEDhwscale'
10037     Enable/Disable hardware scaling ('TEDHwScale=1', 'TEDHwScale=0')
10038     (xplus4 only).
10039
10040'-TEDfulldevice <device>'
10041     Select fullscreen device ('TEDFullscreenDevice') (xplus4 only).
10042
10043'-TEDfull'
10044'+TEDfull'
10045     Enable/Disable fullscreen ('TEDFullscreen=1', 'TEDFullscreen=0')
10046     (xplus4 only).
10047
10048'-VDCSDLfullmode <Mode>'
10049     Set the fullscreen mode ('VDCSDLFullscreenMode') (x128 only).
10050
10051'-VDChwscale'
10052'+VDChwscale'
10053     Enable/Disable hardware scaling ('VDCHwScale=1', 'VDCHwScale=1')
10054     (x128 only).
10055
10056'-VDCfulldevice <device>'
10057     Select fullscreen device ('VDCFullscreenDevice') (x128 only).
10058
10059'-VDCfull'
10060'+VDCfull'
10061     Enable/Disable fullscreen ('VDCFullscreen=1', 'VDCFullscreen=0')
10062     (x128 only).
10063
10064'-VICSDLfullmode <Mode>'
10065     Set the fullscreen mode ('VICSDLFullscreenMode') (xvic only).
10066
10067'-VIChwscale'
10068'+VIChwscale'
10069     Enable/Disable hardware scaling ('VICHwScale=1', 'VICHwScale=0')
10070     (xvic only).
10071
10072'-VICfulldevice <device>'
10073     Select fullscreen device ('VICFullscreenDevice') (xvic only).
10074
10075'-VICfull'
10076'+VICfull'
10077     Enable/Disable fullscreen ('VICFullscreen=1', 'VICFullscreen=0')
10078     (xvic only).
10079
10080'-VICIISDLfullmode <Mode>'
10081     Set the fullscreen mode ('VICIISDLFullscreenMode') (all emulators
10082     except xcbm2, xpet, xplus4, xvic and vsid).
10083
10084'-VICIIhwscale'
10085'+VICIIhwscale'
10086     Enable/Disable hardware scaling ('VICIIHwScale=1',
10087     'VICIIHwScale=0') (all emulators except xcbm2, xpet, xplus4, xvic
10088     and vsid).
10089
10090'-VICIIfulldevice <device>'
10091     Select fullscreen device ('VICIIFullscreenDevice') (all emulators
10092     except xcbm2, xpet, xplus4, xvic and vsid).
10093
10094'-VICIIfull'
10095'+VICIIfull'
10096     Enable/Disable fullscreen ('VICIIFullscreen=1',
10097     'VICIIFullscreen=0') (all emulators except xcbm2, xpet, xplus4,
10098     xvic and vsid).
10099
10100The following command-line options are only present if the OpenGL
10101library is present and used at compile time.
10102
10103'-aspect <aspect ratio>'
10104     Set the aspect ratio ('AspectRatio').  (0.5-2.0)
10105
10106'-sdlaspectmode <mode>'
10107     Set the aspect mode ('SDLGLAspectMode').  (0: off, 1: custom, 2:
10108     true)
10109
10110'-sdlflipx'
10111'+sdlflipx'
10112     Enable/disable OpenGL horizontal screen flip ('SDLGLFlipX=1',
10113     'SDLGLFlipX=0').
10114
10115'-sdlflipy'
10116'+sdlflipy'
10117     Enable/disable OpenGL vertical screen flip ('SDLGLFlipY=1',
10118     'SDLGLFlipY=0').
10119
10120The following command-line options are only present if the SDL library
10121has joystick support at compile time and applies to all emulators except
10122vsid.
10123
10124'-joymap <name>'
10125     Set the joystick map file name ('JoyMapFile').
10126
10127'-joythreshold <0-32767>'
10128     Set the joystick threshold ('JoyThreshold').
10129
10130'-joyfuzz <0-32767>'
10131     Set the joystick fuzz ('JoyFuzz').
10132
10133
10134File: vice.info,  Node: GTK3 specific features,  Next: SDL-specific features,  Prev: Platform-specific features
10135
101368.2 GTK3 specific features
10137==========================
10138
10139This section lists the settings and commands that are common and
10140specific to Unix, and are thus not present in other platforms.
10141
101428.2.1 GTK3 specific resources
10143-----------------------------
10144
10145'AspectRatio'
10146     String/float specifying the aspect ratio (0.5-2.0).
10147
10148'KeepAspectRatio'
10149     Boolean specifying whether the aspect ratio of the output window
10150     should be preserved.  (0: free scaling, 1: scale with fixed aspect
10151     ratio)
10152
10153'TrueAspectRatio'
10154     Boolean specifying whether to use the true (non square pixels)
10155     aspect ratio.
10156
10157'StartMinimized'
10158     Boolean specifying whether the emulator should start minimized
10159
10160'SaveResourcesOnExit'
10161     Boolean specifying whether the emulator should save changed
10162     settings before exiting.  If this is enabled, the user will be
10163     always prompted first, in case the settings have changed.
10164
10165'ConfirmOnExit'
10166     Boolean specifying whether to show a confirmation dialog on exit.
10167
10168'DisplayDepth'
10169     Integer specifying the depth of the host display.  The value '0'
10170     (the default) causes the emulator to autodetect it (all emulators
10171     except vsid).  (0..32)
10172
10173'Window0Width'
10174'Window0Height'
10175'Window0Xpos'
10176'Window0Ypos'
10177     Integers specifying the position and size of the (first) emulator
10178     window (all emulators except vsid).
10179
10180'Window1Width'
10181'Window1Height'
10182'Window1Xpos'
10183'Window1Ypos'
10184     Integers specifying the position and size of the (second) emulator
10185     window (x128 only).
10186
10187'FOURCC'
10188     String specifying the YUV FOURCC format to use.
10189
10190'UseFullscreen'
10191     Boolean specifying whether fullscreen mode is currently in use (all
10192     emulators except vsid).
10193
10194'CrtcHwScale'
10195     Boolean specifying whether to enable or disable hardware scaling
10196     (xcbm2 and xpet only).
10197
10198'CrtcFullscreenDevice'
10199     String specifying the fullscreen device (xcbm2 and xpet only).
10200
10201'CrtcFullscreen'
10202     Boolean specifying whether to use fullscreen mode or not (xcbm2 and
10203     xpet only).
10204
10205'CrtcFullscreenStatusbar'
10206     Boolean specifying whether to show the status bar in fullscreen
10207     mode or not (xcbm2 and xpet only).
10208
10209'TEDHwScale'
10210     Boolean specifying whether to enable or disable hardware scaling
10211     (xplus4 only).
10212
10213'TEDFullscreenDevice'
10214     String specifying the fullscreen device (xplus4 only).
10215
10216'TEDFullscreen'
10217     Boolean specifying whether to use fullscreen mode or not (xplus4
10218     only).
10219
10220'TEDFullscreenStatusbar'
10221     Boolean specifying whether to show the status bar in fullscreen
10222     mode or not (xplus4 only).
10223
10224'VDCHwScale'
10225     Boolean specifying whether to enable or disable hardware scaling
10226     (x128 only).
10227
10228'VDCFullscreenDevice'
10229     String specifying the fullscreen device (x128 only).
10230
10231'VDCFullscreen'
10232     Boolean specifying whether to use fullscreen mode or not (x128
10233     only).
10234
10235'VDCFullscreenStatusbar'
10236     Boolean specifying whether to show the status bar in fullscreen
10237     mode or not (x128 only).
10238
10239'VICHwScale'
10240     Boolean specifying whether to enable or disable hardware scaling
10241     (xvic only).
10242
10243'VICFullscreenDevice'
10244     String specifying the fullscreen device (xvic only).
10245
10246'VICFullscreen'
10247     Boolean specifying whether to use fullscreen mode or not (xvic
10248     only).
10249
10250'VICFullscreenStatusbar'
10251     Boolean specifying whether to show the status bar in fullscreen
10252     mode or not (xvic only).
10253
10254'VICIIHwScale'
10255     Boolean specifying whether to enable or disable hardware scaling
10256     (all emulators except xcbm2, xpet, xplus4, xvic and vsid).
10257
10258'VICIIFullscreenDevice'
10259     String specifying the fullscreen device (all emulators except
10260     xcbm2, xpet, xplus4, xvic and vsid).
10261
10262'VICIIFullscreen'
10263     Boolean specifying whether to use fullscreen mode or not (all
10264     emulators except xcbm2, xpet, xplus4, xvic and vsid).
10265
10266'VICIIFullscreenStatusbar'
10267     Boolean specifying whether to show the status bar in fullscreen
10268     mode or not (all emulators except xcbm2, xpet, xplus4, xvic and
10269     vsid).
10270
10271'JoyDevice1'
10272     Integer specifying which joystick device the emulator should use
10273     for the emulation of joystick 1 (all emulators except xcbm2, xpet
10274     and vsid).  (0: None, 1: Numpad, 2: Keyset 1, 3: Keyset 2, 4:
10275     Analog joystick 1, 5: Analog joystick 2, 6: Analog joystick 3, 7:
10276     Analog joystick 4, 8: Analog joystick 5, 9: Analog joystick 6, 10:
10277     Digital joystick 1, 11: Digital joystick 2, 12: USB joystick 1, 13:
10278     USB joystick 2)
10279
10280'JoyDevice2'
10281     Integer specifying which joystick device the emulator should use
10282     for the emulation of joystick 2 (all emulators except xcbm2, xpet,
10283     xvic and vsid).  (0: None, 1: Numpad, 2: Keyset 1, 3: Keyset 2, 4:
10284     Analog joystick 1, 5: Analog joystick 2, 6: Analog joystick 3, 7:
10285     Analog joystick 4, 8: Analog joystick 5, 9: Analog joystick 6, 10:
10286     Digital joystick 1, 11: Digital joystick 2, 12: USB joystick 1, 13:
10287     USB joystick 2)
10288
10289'JoyDevice3'
10290     Integer specifying which joystick device the emulator should use
10291     for the emulation of extra joystick 1 (all emulators except xcbm5x0
10292     and vsid).  (0: None, 1: Numpad, 2: Keyset 1, 3: Keyset 2, 4:
10293     Analog joystick 1, 5: Analog joystick 2, 6: Analog joystick 3, 7:
10294     Analog joystick 4, 8: Analog joystick 5, 9: Analog joystick 6, 10:
10295     Digital joystick 1, 11: Digital joystick 2, 12: USB joystick 1, 13:
10296     USB joystick 2)
10297
10298'JoyDevice4'
10299     Integer specifying which joystick device the emulator should use
10300     for the emulation of extra joystick 2 (all emulators except
10301     xcbm5x0, xplus4 and vsid).  (0: None, 1: Numpad, 2: Keyset 1, 3:
10302     Keyset 2, 4: Analog joystick 1, 5: Analog joystick 2, 6: Analog
10303     joystick 3, 7: Analog joystick 4, 8: Analog joystick 5, 9: Analog
10304     joystick 6, 10: Digital joystick 1, 11: Digital joystick 2, 12: USB
10305     joystick 1, 13: USB joystick 2)
10306
10307The available joysticks might differ depending on operating system and
10308joystick support in the OS.
10309
10310'Devices 4..9'
10311     Only available if joystick support is available at compile time.
10312
10313'Devices 10 and 11'
10314     Only available if digital joystick support is available at compile
10315     time.
10316
10317'Devices 12 and 13'
10318     Only available if USB joystick support is available at compile
10319     time.
10320
10321The following resources are only available if MIDI support is available
10322at compile time.
10323
10324'MIDIInDev'
10325     String specifying the MIDI input device (x64, x64sc, xscpu64, x128
10326     and xvic only).
10327
10328'MIDIOutDev'
10329     String specifying the MIDI output device (x64, x64sc, xscpu64, x128
10330     and xvic only).
10331
10332The following resource is only available if MIDI support and ALSA
10333support is available at compile time.
10334
10335'MIDIDriver'
10336     Enum specifying the MIDI driver (x64, x64sc, xscpu64, x128 and xvic
10337     only).  (0: OSS, 1: ALSA)
10338
10339The following resources are only available if RS232 device support or
10340RS232 network support is available at compile time.
10341
10342'RsDevice1Baud'
10343'RsDevice2Baud'
10344'RsDevice3Baud'
10345'RsDevice4Baud'
10346     Integers specifying the RS232 baudrate devices if the device file
10347     points to a special device (like '/dev/ttyS0'; *note RS232
10348     settings::) (all emulators except vsid).
10349
103508.2.2 GTK3 specific command-line options
10351----------------------------------------
10352
10353'-saveres'
10354'+saveres'
10355     Enable/disable automatic saving of settings on exit
10356     ('SaveResourcesOnExit=1', 'SaveResourcesOnExit=0').
10357
10358'-minimized'
10359'+minimized'
10360     Start/Do not start with minimized window ('StartMinimized=1',
10361     'StartMinimized=0').
10362
10363'-aspect <aspect ratio>'
10364     Set the aspect ratio ('AspectRatio').  (0.5-2.0)
10365
10366'-keepaspect'
10367     Enable keeping of the aspect ratio when scaling
10368     ('KeepAspectRatio=1').
10369'+keepaspect'
10370     Disable keeping of the aspect ratio when scaling (freescaling)
10371     ('KeepAspectRatio=0').
10372
10373'-trueaspect'
10374'+trueaspect'
10375     Enable/disable whether to use the true (non square pixels) aspect
10376     ratio ('TrueAspectRatio=1', ('TrueAspectRatio=0').
10377
10378'-confirmonexit'
10379     Confirm quitting VICE ('ConfirmOnExit=1').
10380'+confirmonexit'
10381     Never confirm quitting VICE ('ConfirmOnExit=0').
10382
10383'-displaydepth <value>'
10384     Specify the display depth ('DisplayDepth') (all emulators except
10385     vsid).  (0..32)
10386
10387'-fourcc <fourcc>'
10388     Set the YUV FOURCC format to use ('FOURCC').
10389
10390'-fullscreen'
10391'+fullscreen'
10392     Enable/disable fullscreen mode ('UseFullscreen=1',
10393     ('UseFullscreen=0') (all emulators except vsid).
10394
10395'-CRTChwscale'
10396'+CRTChwscale'
10397     Enable/Disable hardware scaling ('CrtcHwScale=1', 'CrtcHwScale=0')
10398     (xcbm2 and xpet only).
10399
10400'-CRTCfulldevice <device>'
10401     Select fullscreen device ('CrtcFullscreenDevice') (xcbm2 and xpet
10402     only).
10403
10404'-TEDhwscale'
10405'+TEDhwscale'
10406     Enable/Disable hardware scaling ('TEDHwScale=1', 'TEDHwScale=0')
10407     (xplus4 only).
10408
10409'-TEDfulldevice <device>'
10410     Select fullscreen device ('TEDFullscreenDevice') (xplus4 only).
10411
10412'-VDChwscale'
10413'+VDChwscale'
10414     Enable/Disable hardware scaling ('VDCHwScale=1', 'VDCHwScale=1')
10415     (x128 only).
10416
10417'-VIChwscale'
10418'+VIChwscale'
10419     Enable/Disable hardware scaling ('VICHwScale=1', 'VICHwScale=0')
10420     (xvic only).
10421
10422'-VICfulldevice <device>'
10423     Select fullscreen device ('VICFullscreenDevice') (xvic only).
10424
10425'-VICIIhwscale'
10426'+VICIIhwscale'
10427     Enable/Disable hardware scaling ('VICIIHwScale=1',
10428     'VICIIHwScale=0') (all emulators except xcbm2, xpet, xplus4, xvic
10429     and vsid).
10430
10431'-VICIIfulldevice <device>'
10432     Select fullscreen device ('VICIIFullscreenDevice') (all emulators
10433     except xcbm2, xpet, xplus4, xvic and vsid).
10434
10435'-joydev1 <0-3> / <0-9> / <0-11> / <0-13>'
10436     Set the device for joystick emulation of port 1 ('JoyDevice1') (all
10437     emulators except xcbm2, xpet and vsid).  (0: None, 1: Numpad, 2:
10438     Keyset 1, 3: Keyset 2, 4: Analog joystick 1, 5: Analog joystick 2,
10439     6: Analog joystick 3, 7: Analog joystick 4, 8: Analog joystick 5,
10440     9: Analog joystick 6, 10: Digital joystick 1, 11: Digital joystick
10441     2, 12: USB joystick 1, 13: USB joystick 2)
10442
10443'-joydev2 <0-3> / <0-9> / <0-11> / <0-13>'
10444     Set the device for joystick emulation of port 2 ('JoyDevice2') (all
10445     emulators except xcbm2, xpet, xvic and vsid).  (0: None, 1: Numpad,
10446     2: Keyset 1, 3: Keyset 2, 4: Analog joystick 1, 5: Analog joystick
10447     2, 6: Analog joystick 3, 7: Analog joystick 4, 8: Analog joystick
10448     5, 9: Analog joystick 6, 10: Digital joystick 1, 11: Digital
10449     joystick 2, 12: USB joystick 1, 13: USB joystick 2)
10450
10451'-extrajoydev1 <0-3> / <0-9> / <0-11> / <0-13>'
10452     Set device for extra joystick port 1 ('JoyDevice3') (all emulators
10453     except xcbm5x0 and vsid).  (0: None, 1: Numpad, 2: Keyset 1, 3:
10454     Keyset 2, 4: Analog joystick 1, 5: Analog joystick 2, 6: Analog
10455     joystick 3, 7: Analog joystick 4, 8: Analog joystick 5, 9: Analog
10456     joystick 6, 10: Digital joystick 1, 11: Digital joystick 2, 12: USB
10457     joystick 1, 13: USB joystick 2)
10458
10459'-extrajoydev2 <0-3> / <0-9> / <0-11> / <0-13>'
10460     Set device for extra joystick port 2 ('JoyDevice4') (all emulators
10461     except xcbm5x0, xplus4 and vsid).  (0: None, 1: Numpad, 2: Keyset
10462     1, 3: Keyset 2, 4: Analog joystick 1, 5: Analog joystick 2, 6:
10463     Analog joystick 3, 7: Analog joystick 4, 8: Analog joystick 5, 9:
10464     Analog joystick 6, 10: Digital joystick 1, 11: Digital joystick 2,
10465     12: USB joystick 1, 13: USB joystick 2)
10466
10467The available joysticks might differ depending on operating system and
10468joystick support in the OS.
10469
10470'Devices 4..9'
10471     Only available if joystick support is available at compile time.
10472
10473'Devices 10 and 11'
10474     Only available if digital joystick support is available at compile
10475     time.
10476
10477'Devices 12 and 13'
10478     Only available if USB joystick support is available at compile
10479     time.
10480
10481The following command-line options are only available if MIDI support is
10482available at compile time.
10483
10484'-midiin <name>'
10485     Specify MIDI-In device ('MIDIInDev') (x64, x64sc, xscpu64, x128 and
10486     xvic only).
10487
10488'-midiout <name>'
10489     Specify MIDI-Out device ('MIDIOutDev') (x64, x64sc, xscpu64, x128
10490     and xvic only).
10491
10492The following command-line option is only available if MIDI support and
10493ALSA support is available at compile time.
10494
10495'-mididrv <driver>'
10496     Specify MIDI driver ('MIDIDriver') (x64, x64sc, xscpu64, x128 and
10497     xvic only).  (0: OSS, 1: ALSA)
10498
10499The following command-line options are only available if RS232 device
10500support or RS232 network support is available at compile time.
10501
10502'-rsdev1baud <baudrate>'
10503'-rsdev2baud <baudrate>'
10504'-rsdev3baud <baudrate>'
10505'-rsdev4baud <baudrate>'
10506     Specify <baudrate> as baudrate for the RS232 devices if the device
10507     name specifies a special device (like '/dev/ttyS0' for example,
10508     *note RS232 settings::; 'RsDevice1Baud', 'RsDevice2Baud'
10509     'RsDevice3Baud' and 'RsDevice4Baud') (all emulators except vsid).
10510
10511
10512File: vice.info,  Node: Snapshots,  Next: Monitor,  Prev: Platform-specific features,  Up: Top
10513
105149 Snapshots
10515***********
10516
10517Every VICE emulator has a built-in snapshot feature, that saves the
10518complete emulator state into one file for later use.  You can therefore
10519save the emulator state - including the state of the game you are
10520playing for example - in a single file.
10521
10522* Menu:
10523
10524* Snapshot usage::
10525* Snapshot format::
10526
10527
10528File: vice.info,  Node: Snapshot usage,  Next: Snapshot format,  Prev: Snapshots,  Up: Snapshots
10529
105309.1 Snapshot usage
10531==================
10532
10533A snapshot is one file containining the complete emulator state.  A
10534snapshot file can be generated by selecting the "Save snapshot" command
10535at any time.  This will pop up a requester from which you can specify
10536whether the snapshot should also contain the disk and ROM status.
10537
10538A snapshot file can be used to restore the emulator state by selecting
10539the 'load snapshot' menu entry at any time.  Unfortunately attached ROM
10540images/cartridges are only supported in the VIC20, the PET and the
10541CBM-II emulators at this time.
10542
10543The memory configuration of the emulator is saved in the snapshot file
10544as well.  This configuration is restored when the snapshot is loaded.
10545
10546A quick snapshot can now be made by pressing the 'M-F11' key and
10547reloaded by pressing the 'M-F10' key.
10548
10549
10550File: vice.info,  Node: Snapshot format,  Prev: Snapshot usage,  Up: Snapshots
10551
105529.2 Snapshot format
10553===================
10554
10555A snapshot file consists of several modules of mostly different types.
10556Each module has a name and saves the state of an entity like a CIA, the
10557CPU, or the memory.
10558
10559* Menu:
10560
10561* Emulator modules::
10562* Module formats::
10563
10564
10565File: vice.info,  Node: Emulator modules,  Next: Module formats,  Prev: Snapshot format,  Up: Snapshot format
10566
105679.2.1 Emulator modules
10568----------------------
10569
10570This section lists the modules that are contained in each of the
10571emulators snapshot files.
10572
10573* Menu:
10574
10575* x64 modules::
10576* x128 modules::
10577* xvic modules::
10578* xpet modules::
10579* xcbm2 and xcbm5x0 modules::
10580* Drive modules::
10581
10582
10583File: vice.info,  Node: x64 modules,  Next: x128 modules,  Prev: Emulator modules,  Up: Emulator modules
10584
105859.2.1.1 x64 modules
10586...................
10587
10588The modules in the x64 emulator are:
10589
10590Name    Type                          Description
10591MAINCPU 6502                          The Main CPU - although it is a
10592                                      6510, only the 6502 core is saved
10593                                      here
10594C64MEM  Memory                        Holds the RAM contents of the C64.
10595                                      Also the CPU I/O register contents
10596                                      are saved here.
10597C64ROM  ROM images                    Dump of the system ROMs
10598VIC-II  656*                          The VIC-II of the C64/128
10599CIA1    6526                          The CIA for the interrupts and the
10600                                      keyboard
10601CIA2    6526                          The CIA for the userport, IEC-bus
10602                                      and RS232.
10603SID     6581                          The SID sound chip of the C64/C128
10604REU*                                  The RAM Extension Unit state
10605                                      (optional)
10606ACIA1   6551                          An ACIA (RS232 interface) at $DE00
10607                                      (optional)
10608TPI     6525                          A TPI at $DF00 for a parallel
10609                                      IEEE488 interface (optional)
10610*       Drive modules                 The emulated drive(s) have their
10611                                      own modules *note Drive modules::
10612
10613Some of the modules are optional and are only saved if the specific
10614feature is enabled at save-time.  If the module is found when restoring
10615the state the optional features are enabled, and disabled otherwise.
10616
10617
10618File: vice.info,  Node: x128 modules,  Next: xvic modules,  Prev: x64 modules,  Up: Emulator modules
10619
106209.2.1.2 x128 modules
10621....................
10622
10623The modules in the x128 emulator are:
10624
10625Name    Type                          Description
10626MAINCPU 6502                          The Main CPU - although it is a
10627                                      6510, only the 6502 core is saved
10628                                      here
10629C128MEM Memory                        Holds the RAM contents of the C64.
10630                                      Also the CPU I/O register contents
10631                                      are saved here.
10632C128ROM ROM images                    Dump of the system ROMs
10633VIC-II  656*                          The VIC-II of the C64/128
10634CIA1    6526                          The CIA for the interrupts and the
10635                                      keyboard
10636CIA2    6526                          The CIA for the userport, IEC-bus
10637                                      and RS232.
10638SID     6581                          The SID sound chip of the C64/C128
10639ACIA1   6551                          An ACIA at $DE00 (optional)
10640TPI     6525                          A TPI at $DF00 for a parallel
10641                                      IEEE488 interface (optional)
10642*       Drive modules                 The emulated drive(s) have their
10643                                      own modules *note Drive modules::
10644
10645Some of the modules are optional and are only saved if the specific
10646feature is enabled at save-time.  If the module is found when restoring
10647the state the optional features are enabled, and disabled otherwise.
10648
10649Not yet supported are the 80 column video chip, cartridges and RAM
10650expansion unit.
10651
10652
10653File: vice.info,  Node: xvic modules,  Next: xpet modules,  Prev: x128 modules,  Up: Emulator modules
10654
106559.2.1.3 xvic modules
10656....................
10657
10658The modules in the xvic emulator are:
10659
10660Name    Type                          Description
10661MAINCPU 6502                          The Main CPU
10662VIC20MEMMemory                        Holds the RAM contents of the
10663                                      VIC20.
10664VIC20ROMROM images                    Holds the ROM images of the VIC20,
10665                                      including possibly attached
10666                                      cartridges
10667VIC-I   656*                          The VIC-I of the VIC20
10668VIA1    6522                          The VIA for the interrupts and the
10669                                      keyboard
10670VIA2    6522                          The VIA for the userport, IEC-bus
10671                                      and RS232.
10672*       Drive modules                 The emulated drive(s) have their
10673                                      own modules *note Drive modules::
10674
10675
10676File: vice.info,  Node: xpet modules,  Next: xcbm2 and xcbm5x0 modules,  Prev: xvic modules,  Up: Emulator modules
10677
106789.2.1.4 xpet modules
10679....................
10680
10681The modules in the xpet emulator are:
10682
10683Name    Type                          Description
10684MAINCPU 6502                          The Main CPU
10685PETMEM  Memory                        Holds the RAM contents of the PET.
10686PETROM  ROM images                    Holds the ROM images of the PET,
10687                                      including possibly attached
10688                                      cartridges
10689CRTC    6545                          The CRTC of the PET. This is also
10690                                      included if it is a dump of a PET
10691                                      without CRTC, because the video
10692                                      state is saved here anyway.
10693PIA1    6520                          The PIA for the interrupts, tape
10694                                      and the keyboard
10695PIA2    6520                          The PIA for the IEEE488-bus
10696VIA     6522                          The VIA for IEEE488, userport,
10697                                      sound
10698ACIA1   6551                          The ACIA for the SuperPET. This
10699                                      module is optional.
10700DWWPIA  6520                          The PIA for the DWW hires board.
10701CPU6809 6809                          The extra CPU in the SuperPET.
10702                                      This module is optional.
10703*       Drive modules                 The emulated drive(s) have their
10704                                      own modules *note Drive modules::
10705
10706
10707File: vice.info,  Node: xcbm2 and xcbm5x0 modules,  Next: Drive modules,  Prev: xpet modules,  Up: Emulator modules
10708
107099.2.1.5 xcbm2 and xcbm5x0 modules
10710.................................
10711
10712The modules in the xcbm2 and xcbm5x0 emulators are:
10713
10714Name    Type                          Description
10715MAINCPU 6502                          The Main CPU - although it is a
10716                                      6509, only the 6502 core is saved
10717                                      here
10718CBM2MEM Memory                        Holds the RAM contents of the
10719                                      CBM-II models.  Also holds the
10720                                      exec-bank and indirection bank
10721                                      registers
10722C500DATA                              Holds additional state information
10723                                      necessary for the C500 (e.g.
10724                                      cycles till the next IRQ)
10725CBM2ROM Memory                        optional.  Holds the ROM images.
10726CRTC    6545                          The video chip for the C6*0 and
10727                                      C7*0 models (only those models).
10728VIC-II  656?                          The video chip for the C5*0 models
10729                                      (only the C5*0 models).
10730CIA1    6526                          The CIA for IEEE 488 and userport.
10731TPI1    6525                          TPI 1 for IEEE488
10732TPI2    6525                          TPI 2 for interrupts and keyboard.
10733ACIA1   6551                          The RS232 interface
10734SID     6581                          The CBM2s SID sound chip
10735*       Drive modules                 The emulated drive(s) have their
10736                                      own modules *note Drive modules::
10737
10738
10739File: vice.info,  Node: Drive modules,  Prev: xcbm2 and xcbm5x0 modules,  Up: Emulator modules
10740
107419.2.1.6 Drive modules
10742.....................
10743
10744The modules for the real disk drive emulation are included in the
10745emulator when the emulation is enabled during the writing of the
10746snapshot.
10747
10748Name    Type                          Description
10749*CPU    6502                          The Drive 0 CPU
10750*       *                             *
10751
10752
10753File: vice.info,  Node: Module formats,  Prev: Emulator modules,  Up: Snapshot format
10754
107559.2.2 Module formats
10756--------------------
10757
10758This section shows the basic module framework and the contents of the
10759different types of modules.
10760
10761The single chip modules contain the chip state, not the state of the
10762emulator.  We tried to make the format as implementation-independent as
10763possible, to allow reuse of snapshots in later versions of this
10764emulator, or even in other emulators.
10765
10766* Menu:
10767
10768* Module Terminology::
10769* Module framework::
10770* CPU 6502 module::
10771* CPU 6809 module::
10772* CIA 6526 module::
10773* VIA 6522 module::
10774* PIA 6520 module::
10775* TPI 6525 module::
10776* RIOT 6532 module::
10777* SID 6581 module::
10778* ACIA 6551 module::
10779* VIC-I module::
10780* VIC-II module::
10781* CRTC module::
10782* C64 memory module::
10783* C128 memory module::
10784* VIC20 memory module::
10785* PET memory module::
10786* CBM-II memory module::
10787* C500 data module::
10788
10789
10790File: vice.info,  Node: Module Terminology,  Next: Module framework,  Prev: Module formats,  Up: Module formats
10791
107929.2.2.1 Terminology
10793...................
10794
10795In this section we use certain abbreviations to define the types of the
10796data saved in the snapshot.
10797
10798'BYTE'
10799     8 bit integer.
10800'WORD'
10801     16 bit integer.  Saved with low-byte first, high-byte last.
10802'DWORD'
10803     32 bit integer.  Saved with low-word first, then high-word.  Each
10804     word saved with its low-byte first.
10805'ARRAY'
10806     Array of BYTE values.  Length depends on the description.
10807
10808The tables for the single modules state the type, name and description
10809of the data saved in the modules.  The data is saved in the order it is
10810in the tables, so no offset is given.
10811
10812
10813File: vice.info,  Node: Module framework,  Next: CPU 6502 module,  Prev: Module Terminology,  Up: Module formats
10814
108159.2.2.2 Module framework
10816........................
10817
10818The VICE snapshot file starts with the magic string and includes the
10819fileformat version number.
10820
10821Type    Name                          Description
1082219      MAGIC                         "VICE Snapshot File\032", padded
10823BYTE                                  with 0
10824BYTE    VMAJOR                        fileformat major version number
10825BYTE    VMINOR                        fileformat minor version number
1082616      MACHINENAME                   Name of emulated machine, like
10827BYTE                                  "PET", "CBM-II", "VIC20", "C64" or
10828                                      "C128".  zerobyte-padded.
10829
10830The file header is followed by a number of different snapshot modules.
10831
10832Each module has a header with the information given in the table below.
10833The header includes two version numbers, VMAJOR and VMINOR. Modules with
10834the same VMAJOR should be able to be exchanged.  I.e.  higher VMINOR
10835numbers only append to the data for lower VMINOR. This additional data
10836is ignored by older restore routines.  The other way around newer
10837restore routines must accept the fewer info from lower VMINOR dumps.
10838Changes in VMAJOR might introduce any incompatibility you like, but
10839that's what VMAJOR is for after all :-)
10840
10841Type    Name                          Description
1084216      MODULENAME                    The name of the module in ASCII,
10843BYTE                                  padded with 0 to 16 byte.
10844BYTE    VMAJOR                        major version number
10845BYTE    VMINOR                        minor version number
10846DWORD   SIZE                          size of the module, including this
10847                                      header
10848
10849
10850File: vice.info,  Node: CPU 6502 module,  Next: CPU 6809 module,  Prev: Module framework,  Up: Module formats
10851
108529.2.2.3 CPU 6502 module
10853.......................
10854
10855This module saves the core 6502 state.  You will find a clock value
10856there.  All other modules save their own clock values relative to this
10857value.  However, the drive modules save their clocks relative to their
10858appropriate CPUs of course.
10859
10860Warning: This module is still under construction and saves some
10861information that is not sure to be VICE-independent.  If in doubt, read
10862the source.
10863
10864Type    Name                          Description
10865DWORD   CLK                           the current CPU clock value.  All
10866                                      other clock values are relative to
10867                                      this.
10868BYTE    AC                            Accumulator
10869BYTE    XR                            X index register
10870BYTE    YR                            Y index register
10871BYTE    SP                            Stack Pointer
10872WORD    PC                            Programm Counter
10873BYTE    ST                            Status Registers
10874DWORD   LASTOPCODE                    ?
10875DWORD   IRQCLK                        absolute CLK when the IRQ line
10876                                      came active
10877DOWRD   NMICLK                        absolute CLK when the NMI line
10878                                      came active
10879DWORD   ?                             ?
10880DWORD   ?                             ?
10881
10882
10883File: vice.info,  Node: CPU 6809 module,  Next: CIA 6526 module,  Prev: CPU 6502 module,  Up: Module formats
10884
108859.2.2.4 CPU 6809 module
10886.......................
10887
10888This module saves the core 6809 state.  You will find a clock value
10889there.  All other modules save their own clock values relative to this
10890value.  However, the drive modules save their clocks relative to their
10891appropriate CPUs of course.
10892
10893Warning: This module is still under construction and saves some
10894information that is not sure to be VICE-independent.  If in doubt, read
10895the source.
10896
10897Type    Name                          Description
10898DWORD   CLK                           the current CPU clock value.  All
10899                                      other clock values are relative to
10900                                      this.
10901WORD    X                             The X register
10902WORD    Y                             The Y register
10903WORD    U                             The U register
10904WORD    PC                            The Program Counter register
10905BYTE    DP                            The Direct Page register
10906BYTE    CC                            The Condition Code register
10907BYTE    A                             The A register
10908BYTE    B                             The B register
10909                                      The following are for 6309
10910                                      compatibility:
10911WORD    V                             The V register
10912BYTE    E                             The E register
10913BYTE    F                             The F register
10914
10915
10916File: vice.info,  Node: CIA 6526 module,  Next: VIA 6522 module,  Prev: CPU 6809 module,  Up: Module formats
10917
109189.2.2.5 CIA module
10919..................
10920
10921The CIA 6526 is an I/O port chip with 2 8-bit I/O ports, a shift
10922register, two timers, a Time of Day clock and interrupts.
10923
10924Version numbers: Major 1, Minor 1.
10925
10926Type    Name                          Description
10927BYTE    ORA                           Output register A
10928BYTE    ORB                           Output register B
10929BYTE    DDRA                          Data direction register A
10930BYTE    DDRB                          Data direction register B
10931WORD    TAC                           Timer A counter value
10932WORD    TBC                           Timer B counter value
10933BYTE    TOD_TEN                       Time of Day - current tenth of
10934                                      second
10935BYTE    TOD_SEC                       Time of Day - current seconds
10936BYTE    TOD_MIN                       Time of Day - current minutes
10937BYTE    TOD_HR                        Time of Day - current hours
10938BYTE    SDR                           contents of shift register
10939BYTE    IER                           mask of enabled interrupt masks
10940BYTE    CRA                           Control register A
10941BYTE    CRB                           Control register B
10942WORD    TAL                           Timer A latch value
10943WORD    TBL                           Timer B latch value
10944BYTE    IFR                           mask of currently active
10945                                      interrupts
10946BYTE    PBSTATE                       Bit 6/7 reflect the PB6/7 toggle
10947                                      bit state.  Bit 2/3 reflect the
10948                                      corresponding port bit state.
10949BYTE    SRHBITS                       number of half-bits to still shift
10950                                      in/out SDR
10951BYTE    ALARM_TEN                     Time of Day - alarm tenth of
10952                                      second
10953BYTE    ALARM_SEC                     Time of Day - alarm seconds
10954BYTE    ALARM_MIN                     Time of Day - alarm minutes
10955BYTE    ALARM_HR                      Time of Day - alarm hours
10956BYTE    READICR                       current clock minus the clock when
10957                                      ICR was read last plus 128.
10958BYTE    TODLATCHED                    Bit 0: 1= latched for reading, Bit
10959                                      1: 2=stopped for writing
10960BYTE    TODL_TEN                      Time of Day - latched tenth of
10961                                      second
10962BYTE    TODL_SEC                      Time of Day - latched seconds
10963BYTE    TODL_MIN                      Time of Day - latched minutes
10964BYTE    TODL_HR                       Time of Day - latched hours
10965DWORD   TOD_TICKS                     clk ticks till next tenth of
10966                                      second
10967-       -                             The next items have been added in
10968                                      V1.1
10969WORD    TASTATE                       The state bits of the CIA timer A,
10970                                      according to ciatimer.h
10971WORD    TBSTATE                       The state bits of the CIA timer B,
10972                                      according to ciatimer.h
10973
10974The last two items have been added in CIA snapshot version 1.1 due to
10975the improved CIA emulation in the newer VICE versions.  Some state bits
10976correspond to the CIA state as described in the "A Software Model of the
10977CIA 6526" document by Wolfgang Lorenz, some are delayed versions.  For
10978more read the source file 'ciatimer.h'.
10979
10980
10981File: vice.info,  Node: VIA 6522 module,  Next: PIA 6520 module,  Prev: CIA 6526 module,  Up: Module formats
10982
109839.2.2.6 VIA module
10984..................
10985
10986The VIA 6522 is the predecessor of the CIA and also an I/O port chip
10987with 2 8-bit I/O ports, a shift register, two timers and interrupts.
10988
10989Version numbers: Major 1, Minor 0.
10990
10991Type    Name                          Description
10992BYTE    ORA                           Output register A
10993BYTE    DDRA                          Data direction register A
10994BYTE    ORB                           Output register B
10995BYTE    DDRB                          Data direction register B
10996WORD    T1L                           Timer 1 Latch value
10997WORD    T1C                           Timer 1 counter value
10998BYTE    T2L                           Timer 2 latch (8 bit as only lower
10999                                      byte is used)
11000WORD    T2C                           Timer 2 counter value
11001BYTE    RUNFL                         bit 7: timer 1 will generate IRQ
11002                                      on underflow; bit 6: timer 2 will
11003                                      generate IRQ on underflow
11004BYTE    SR                            Shift register value
11005BYTE    ACR                           Auxiliary control register
11006BYTE    PCR                           Peripheral control register
11007BYTE    IFR                           active interrupts
11008BYTE    IER                           interrupt mask
11009BYTE    PB7                           bit 7 = pb7 state
11010BYTE    SRHBITS                       number of half-bits to shift out
11011                                      on SR
11012BYTE    CABSTATE                      bit 7: state of CA2 pin, bit 6:
11013                                      state of CB2 pin
11014BYTE    ILA                           Port A Input Latch (see ACR bit 0)
11015BYTE    ILB                           Port B Input Latch (see ACR bit 1)
11016
11017
11018File: vice.info,  Node: PIA 6520 module,  Next: TPI 6525 module,  Prev: VIA 6522 module,  Up: Module formats
11019
110209.2.2.7 PIA module
11021..................
11022
11023The PIA 6520 is a chip with two I/O ports (Parallel Interface Adapter)
11024and four additional handshake lines.  The chip is pretty the same for
11025Port A and B, only that Port A implements handshake on read operation
11026and port B on write operation.
11027
11028Version numbers: Major 1, Minor 0.
11029
11030Type    Name                          Description
11031UBYTE   ORA                           Output register A
11032UBYTE   DDRA                          Data Direction Register A
11033UBYTE   CTRLA                         Control Register A
11034UBYTE   ORB                           Output register B
11035UBYTE   DDRB                          Data Direction Register B
11036UBYTE   CTRLB                         Control Register B
11037UBYTE   CABSTATE                      Bit 7 = state of CA2, Bit 6 =
11038                                      state of CB2
11039
11040
11041File: vice.info,  Node: TPI 6525 module,  Next: RIOT 6532 module,  Prev: PIA 6520 module,  Up: Module formats
11042
110439.2.2.8 TPI module
11044..................
11045
11046The TPI 6525 is a chip with three I/O ports (Tri-Port-Interface).  One
11047of the ports can double as an interrupt prioritizer.  Therefore we also
11048have to save the states of the interrupt stack etc.
11049
11050Version numbers: Major 1, Minor 0.
11051
11052Type    Name                          Description
11053BYTE    PRA                           Port A output register
11054BYTE    PRB                           Port B output register
11055BYTE    PRC                           Port C output register (doubles as
11056                                      IRQ latch register)
11057BYTE    DDRA                          Port A data direction register
11058BYTE    DDRB                          Port B data direction register
11059BYTE    DDRC                          Port C data direction register
11060                                      (doubles as IRQ mask register)
11061BYTE    CR                            Control Register
11062BYTE    AIR                           Active interrupt register
11063BYTE    STACK                         Interrupt stack - the interrupt
11064                                      bits that are not (yet) served.
11065BYTE    CABSTATE                      State of CA/CB pins.  Bit 7 =
11066                                      state of CA, Bit 6 = state of CB
11067
11068
11069File: vice.info,  Node: RIOT 6532 module,  Next: SID 6581 module,  Prev: TPI 6525 module,  Up: Module formats
11070
110719.2.2.9 RIOT module
11072...................
11073
11074The RIOT 6532 is a chip with two I/O ports, some RAM and a Timer.  The
11075chip contains 128 byte RAM, but the RAM is not saved in the RIOT
11076snapshot, but in the memory section.
11077
11078Warning: This module is still under construction
11079
11080Version numbers: Major 0, Minor 0.
11081
11082Type    Name                          Description
11083BYTE    ORA                           Port A output register
11084BYTE    DDRA                          Port A data direction register
11085BYTE    ORB                           Port B output register
11086BYTE    DDRB                          Port B data direction register
11087BYTE    EDGECTRL                      Bit 0/1: A0/A1 address bits
11088                                      written to edgecontrol registers
11089BYTE    IRQFL                         Bit 6/7: A6/A7 IRQ flag register.
11090                                      Bit 0: state of the IRQ line
11091                                      (0=inactive, 1=active)
11092BYTE    N                             timer value
11093WORD    DIVIDER                       Pre-scale divider value (1, 8, 64,
11094                                      or 1024)
11095WORD    REST                          cycles since the last counter
11096                                      change
11097BYTE    IRQEN                         Bit 0: 0= timer IRQ disabled, 1=
11098                                      timer IRQ enabled
11099
11100
11101File: vice.info,  Node: SID 6581 module,  Next: ACIA 6551 module,  Prev: RIOT 6532 module,  Up: Module formats
11102
111039.2.2.10 SID module
11104...................
11105
11106Warning: This module is still under construction.
11107
11108
11109File: vice.info,  Node: ACIA 6551 module,  Next: VIC-I module,  Prev: SID 6581 module,  Up: Module formats
11110
111119.2.2.11 ACIA module
11112....................
11113
11114The ACIA 6551 is an RS232 interface chip.  VICE emulates RS232
11115connections via '/dev/ttyS*' (Unix) or 'COM:' (DOS/WIN - not yet?).
11116When saving a snapshot, those connections are of course lost.  The state
11117of the ACIA however is restored if possible.  I.e.  if a connection is
11118already open when restoring the snapshot, this connection is used
11119instead.  If no connection is open, a carrier/DTR drop is emulated.
11120
11121Version numbers: Major 1, Minor 0.
11122
11123Type    Name                          Description
11124BYTE    TDR                           Transmit Data Register
11125BYTE    RDR                           Receiver Data Register
11126BYTE    SR                            Status Register
11127BYTE    CMD                           Command Register
11128BYTE    CTRL                          Ctrl Register
11129BYTE    INTX                          0 = no data to tx; 1 = Data is
11130                                      being transmitted; 2 = Data is
11131                                      being transmitted while data in
11132                                      TDR waiting to be put to internal
11133                                      transmit register
11134DWORD   TICKS                         Clock ticks till the next TDR
11135                                      empty interrupt
11136
11137
11138File: vice.info,  Node: VIC-I module,  Next: VIC-II module,  Prev: ACIA 6551 module,  Up: Module formats
11139
111409.2.2.12 VIC-I module
11141.....................
11142
11143Warning: This module is still under construction.
11144
11145
11146File: vice.info,  Node: VIC-II module,  Next: CRTC module,  Prev: VIC-I module,  Up: Module formats
11147
111489.2.2.13 VIC-II module
11149......................
11150
11151Warning: This module is still under construction.
11152
11153
11154File: vice.info,  Node: CRTC module,  Next: C64 memory module,  Prev: VIC-II module,  Up: Module formats
11155
111569.2.2.14 CRTC module
11157....................
11158
11159Warning: After VICE version 1.0 the CRTC emulation has improved
11160considerably.  Especially it is now cycle exact.  Therefore a lot more
11161variables must be saved.  The snapshot module version jumped from 0.0 to
111621.0.  Newer versions of VICE can read the old snapshots, but older
11163versions (1.0 and below) cannot read the new snapshots.
11164
11165Warning: This module is still under construction.  Especially the
11166RASTERY and RASTERLINE values might be bogus.
11167
11168Version numbers: Major 1, Minor 1.
11169
11170Type    Name                          Description
11171                                      Hardware options
11172WORD    VADDR_MASK                    Mask of the address bits valid
11173                                      when accessing the video memory
11174WORD    VADDR_CHARSWITCH              If one bit in the video address is
11175                                      used to switch the character
11176                                      generator, it is masked here.
11177WORD    VADDR_CHAROFFSET              The offset in characters in the
11178                                      character generator that
11179                                      CHARSWITCH switches.
11180WORD    VADDR_REVSWITCH               If one bit in the video address
11181                                      inverts the screen, it is masked
11182                                      here.
11183WORD    CHARGEN_MASK                  size of character generator in
11184                                      byte - 1
11185WORD    CHARGEN_OFFSET                offset given by external circuitry
11186BYTE    HW_CURSOR                     external hardware cursor circuitry
11187                                      enabled
11188BYTE    HW_COLS                       number of displayed columns during
11189                                      one character clock cycle
11190BYTE    HW_BLANK                      set if the hardware blank feature
11191                                      is available
11192                                      CRTC register
1119320      REGISTERS                     register DUMP of the CRTC
11194BYTE                                  registers 0-19.
11195                                      CRTC internal registers
11196BYTE    REGNO                         The current index in the CRTC
11197                                      register file
11198BYTE    CHAR                          The current cycle within the
11199                                      current rasterline
11200BYTE    CHARLINE                      The current character line
11201BYTE    YCOUNTER                      The current rasterline in the
11202                                      character
11203BYTE    CRSRCNT                       Framecounter for the blinking
11204                                      cursor
11205BYTE    CRSRSTATE                     if set the hardware cursor is
11206                                      visible
11207BYTE    CRSRLINES                     set if ycounter is within the
11208                                      active cursor rasterlines for a
11209                                      char
11210WORD    CHARGEN_REL                   relative base of currently used
11211                                      character generator in ROM (in
11212                                      byte)
11213WORD    SCREEN_REL                    screen address to load the counter
11214                                      at the beginning of the next
11215                                      rasterline
11216WORD    VSYNC                         number of rasterlines left within
11217                                      vsync; 0 = not in vsync
11218BYTE    VENABLE                       vertical enable flipflop; 1=
11219                                      display, 0= blank.
11220                                      (VICE-dependent?)  variables
11221WORD    SCREEN_WIDTH                  width of the current display
11222                                      window
11223WORD    SCREEN_HEIGHT                 height of the current display
11224                                      window
11225WORD    SCREEN_XOFFSET                x position where the first
11226                                      character in a line starts in the
11227                                      window...
11228WORD    HJITTER                       ...but only after adding this
11229                                      jitter
11230WORD    SCREEN_YOFFSET                x position where the first
11231                                      character in a line starts in the
11232                                      window...
11233WORD    FRAMELINES                    expected number of rasterlines for
11234                                      the current frame
11235WORD    CURRENT_LINE                  current rasterline as seen from
11236                                      the CRTC
11237                                      This value has been added in
11238                                      module version V1.1
11239BYTE    FLAG                          Bit 0: If 1 then bit in
11240                                      VADDR_REVSWITCH must be set for
11241                                      reverse; if 0 then bit must be
11242                                      cleared for reverse.
11243
11244Here is the reference for the previous CRTC snapshot module.  It is
11245outdated and will not be read by this and later versions of VICE.
11246
11247Version numbers: Major 0, Minor 0.
11248
11249Type    Name                          Description
11250BYTE    RASTERY                       The number of clock cycles from
11251                                      rasterlines start
11252WORD    RASTERLINE                    The current rasterline
11253WORD    ADDRMASK                      The address mask valid for the
11254                                      CRTC. All memory accesses are
11255                                      masked with this value
11256BYTE    HWFLAG                        Bit 0: 1= hardware cursor
11257                                      available.  Bit 1: 1= number of
11258                                      columns is doubled by external
11259                                      hardware
1126020      REGISTERS                     register DUMP of the CRTC
11261BYTE                                  registers 0-19.
11262BYTE    CRSRSTATE                     Hardware cursor: Bits 0-3: frame
11263                                      counter till next crsr line
11264                                      toggle.  Bit 7: 1= cursor line
11265                                      active
11266
11267
11268File: vice.info,  Node: C64 memory module,  Next: C128 memory module,  Prev: CRTC module,  Up: Module formats
11269
112709.2.2.15 C64 memory module
11271..........................
11272
11273The C64 memory module actually consists of two modules.  The "C64MEM"
11274module is mandatory and contains the RAM dump.  The "C64ROM" module is
11275optional and contains a dump of the ROM images.
11276
11277The size of the C64 memory modules differs with each different memory
11278configuration.  The RAM configuration is saved in the snapshot, and
11279restored when the snapshot is loaded.  The attached cartridges are not
11280yet(!)  saved and not yet restored upon load.
11281
11282Version numbers: Major 0, Minor 0
11283
11284The C64MEM module
11285
11286Type    Name                          Description
11287BYTE    CPUDATA                       CPU port data byte
11288BYTE    CPUDIR                        CPU port direction byte
11289BYTE    EXROM                         state of the EXROM line (?)
11290BYTE    GAME                          state of the GAME line (?)
11291ARRAY   RAM                           64k RAM dump
11292
11293The C64ROM module
11294
11295Type    Name                          Description
11296ARRAY   KERNAL                        8k dump of the kernal ROM
11297ARRAY   BASIC                         8k dump of the basic ROM
11298ARRAY   CHARGEN                       4k dump of the chargen ROM
11299
11300
11301File: vice.info,  Node: C128 memory module,  Next: VIC20 memory module,  Prev: C64 memory module,  Up: Module formats
11302
113039.2.2.16 C128 memory module
11304...........................
11305
11306The C128 memory module actually consists of two modules.  The "C128MEM"
11307module is mandatory and contains the RAM dump.  The "C128ROM" module is
11308optional and contains a dump of the ROM images.
11309
11310The size of the C128 memory modules differs with each different memory
11311configuration.  The RAM configuration is saved in the snapshot, and
11312restored when the snapshot is loaded.  The attached cartridges are also
11313restored upon load if they have been saved in the snapshot.
11314
11315Version numbers: Major 0, Minor 0
11316
11317The C128MEM module
11318
11319Type    Name                          Description
1132012      MMU                           dump of the 12 MMU registers
11321BYTE
11322ARRAY   RAM                           128k RAM dump banks 0 and 1
11323
11324The C128ROM module
11325
11326Type    Name                          Description
11327ARRAY   KERNAL                        8k dump of the kernal ROM
11328ARRAY   BASIC                         32k dump of the basic ROM
11329ARRAY   EDITOR                        4k dump of the editor ROM
11330ARRAY   4k CHARGEN                    dump of the chargen ROM
11331
11332
11333File: vice.info,  Node: VIC20 memory module,  Next: PET memory module,  Prev: C128 memory module,  Up: Module formats
11334
113359.2.2.17 VIC20 memory module
11336............................
11337
11338The VIC20 memory module actually consists of two modules.  The
11339"VIC20MEM" module is mandatory and contains the RAM dump.  The
11340"VIC20ROM" module is optional and contains a dump of the ROM images.
11341
11342The size of the VIC20 memory modules differs with each different memory
11343configuration.  The RAM configuration is saved in the snapshot, and
11344restored when the snapshot is loaded.  The attached cartridges are also
11345restored upon load if they have been saved in the snapshot.
11346
11347The VIC20MEM module
11348
11349Version numbers: Major 1, Minor 0
11350
11351Type    Name                          Description
11352BYTE    CONFIG                        Configuration register.  Bits
11353                                      0,1,2,3,5 reflect if the
11354                                      corresponding memory block is RAM
11355                                      (bit=1) or not (bit=0).
11356ARRAY   RAM0                          1k RAM dump $0000-$03ff
11357ARRAY   RAM1                          4k RAM dump $1000-$1fff
11358ARRAY   COLORRAM                      2k Color RAM, $9400-$9bff
11359ARRAY   BLK0                          if CONFIG & 1 then: 3k RAM dump
11360                                      $0400-$0fff
11361ARRAY   BLK1                          if CONFIG & 2 then: 8k RAM dump
11362                                      $2000-$3fff
11363ARRAY   BLK2                          if CONFIG & 4 then: 8k RAM dump
11364                                      $4000-$5fff
11365ARRAY   BLK3                          if CONFIG & 8 then: 8k RAM dump
11366                                      $6000-$7fff
11367ARRAY   BLK5                          if CONFIG & 32 then: 8k RAM dump
11368                                      $a000-$bfff
11369
11370The VIC20ROM module
11371
11372Version numbers: Major 1, Minor 1
11373
11374Type    Name                          Description
11375BYTE    CONFIG                        Bit 0: 1= ROM block $2*** enabled.
11376                                      Bit 1: 1= ROM block $3*** enabled.
11377                                      Bit 2: 1= ROM block $4*** enabled.
11378                                      Bit 3: 1= ROM block $5*** enabled.
11379                                      Bit 4: 1= ROM block $6*** enabled.
11380                                      Bit 5: 1= ROM block $7*** enabled.
11381                                      Bit 6: 1= ROM block $A*** enabled.
11382                                      Bit 7: 1= ROM block $B*** enabled.
11383ARRAY   KERNAL                        8k KERNAL ROM image $e000-$ffff
11384ARRAY   BASIC                         16k BASIC ROM image $c000-$dfff
11385ARRAY   CHARGEN                       4k CHARGEN ROM image
11386ARRAY   BLK1A                         4k ROM image $2*** (if CONFIG & 1)
11387ARRAY   BLK1B                         4k ROM image $3*** (if CONFIG & 2)
11388ARRAY   BLK3A                         4k ROM image $6*** (if CONFIG &
11389                                      16)
11390ARRAY   BLK3B                         4k ROM image $7*** (if CONFIG &
11391                                      32)
11392ARRAY   BLK5A                         4k ROM image $A*** (if CONFIG &
11393                                      64)
11394ARRAY   BLK5B                         4k ROM image $B*** (if CONFIG &
11395                                      128)
11396ARRAY   BLK2A                         4k ROM image $4*** (if CONFIG & 4;
11397                                      added in V1.1)
11398ARRAY   BLK2B                         4k ROM image $5*** (if CONFIG & 8;
11399                                      added in V1.1)
11400
11401
11402File: vice.info,  Node: PET memory module,  Next: CBM-II memory module,  Prev: VIC20 memory module,  Up: Module formats
11403
114049.2.2.18 PET memory module
11405..........................
11406
11407The PET memory module actually consists of three modules.  The "PETMEM"
11408module is mandatory and contains the RAM dump.  The "PETROM" module is
11409optional and contains a dump of the ROM images.  The "PETDWW" module is
11410also optional and contains the image of the hires expansion board (if
11411enabled).
11412
11413The size of the PET memory modules differs with each different memory
11414configuration.  The RAM configuration is saved in the snapshot, and
11415restored when the snapshot is loaded.
11416
11417The PETMEM module
11418
11419Version numbers: Major 1, Minor 3
11420
11421Type    Name                          Description
11422BYTE    CONFIG                        Configuration value.  Bits 0-3: 0=
11423                                      40 col PET without CRTC; 1= 40 col
11424                                      PET with CRTC; 2 = 80 col PET
11425                                      (with CRTC); 3= SuperPET; 4= 8096;
11426                                      5= 8296.  Bit 6: 1= RAM at $9***.
11427                                      Bit 7: 1= RAM at $A***.
11428BYTE    KEYBOARD                      Keyboard type.  0= UK business; 1=
11429                                      Graphics; 2= German business
11430BYTE    MEMSIZE                       memory size of low 32k in k
11431                                      (possible values 4, 8, 16, 32)
11432BYTE    CONF8X96                      Value of the 8x96 configuration
11433                                      register
11434BYTE    SUPERPET                      SuperPET config.  Bit 0: 1= $9***
11435                                      RAM enabled.  Bit 1: 1= RAM write
11436                                      protected.  Bit 2: 1= CTRL
11437                                      register write protected.  Bit 3:
11438                                      0= DIAG pin active.  Bits 4-7: RAM
11439                                      block in use.
11440ARRAY   RAM                           4-32k RAM (not 8296, size depends
11441                                      on MEMSIZE)
11442ARRAY   VRAM                          2/4k RAM (not 8296, size depends
11443                                      on CONFIG)
11444ARRAY   EXTRAM                        64k expansion RAM (SuperPET and
11445                                      8096 only)
11446ARRAY   RAM                           128k RAM (8296 only)
11447-       -                             The following item has been added
11448                                      in V1.1
11449BYTE    POSITIONAL                    bit 0=0 = symbolic keyboard
11450                                      mapping, bit 0=1 = positional
11451                                      mapping.
11452-       -                             The following item has been added
11453                                      in V1.2
11454BYTE    EOIBLANK                      bit 0=0 = EOI does not blank
11455                                      screen, bit 0=1 = EOI blanks
11456                                      screen.
11457-       -                             The following items have been
11458                                      added in V1.3
11459WORD    CPU_SWITCH                    6502 / 6809 / PROG
11460BYTE    VAL, PREVODD, WANTODD         6702 dongle state information
11461WORD[8] SHIFT
11462BYTE    SuperPET config 2             Extra bits due to the Super-OS-9
11463                                      MMU. Bit 5: FIRQ disabled.  Bit 6:
11464                                      expansion memory in OS-9 flat
11465                                      mode.
11466
11467
11468The POSITIONAL item has been added in PETMEM snapshot version 1.1.  It
11469is ignored by earlier restore routines (V1.0) and the V1.1 restore
11470routines do not change the current setting when reading a V1.0 snapshot.
11471
11472In V1.2 the new EOIBLANK variable has been added.  This implements the
11473"blank screen on EOI" feature that was previously linked to a wrong
11474resource.
11475
11476In V1.3 the state for SuperPET has been added.
11477
11478The PETROM module
11479
11480Version numbers: Major 1, Minor 1
11481
11482Type    Name                          Description
11483BYTE    CONFIG                        Bit 0: 1= $9*** ROM included.  Bit
11484                                      1: 1= $A*** ROM included.  Bit 2:
11485                                      1= $B*** ROM included.  Bit 3: 1=
11486                                      $e900-$efff ROM included.  Bit 4:
11487                                      1= SuperPET ROMs included.
11488ARRAY   KERNAL                        4k KERNAL ROM image $f000-$ffff
11489ARRAY   EDITOR                        2k EDITOR ROM image $e000-$e7ff
11490ARRAY   CHARGEN                       2k CHARGEN ROM image
11491ARRAY   ROM9                          4k $9*** ROM image (if CONFIG & 1)
11492ARRAY   ROMA                          4k $A*** ROM image (if CONFIG & 2)
11493ARRAY   ROMB                          4k $B*** ROM image (if CONFIG & 4)
11494ARRAY   ROMC                          4k $C*** ROM image
11495ARRAY   ROMD                          4k $D*** ROM image
11496ARRAY   ROME9                         7 blocks $e900-$efff ROM image (if
11497                                      CONFIG & 8)
11498-       -                             The following items have been
11499                                      added in V1.1
11500ROM6809 ROM6809                       24k $A000-$FFFF ROM (if CONFIG &
11501                                      16)
11502ARRAY   CHARGEN(2)                    upper half of CHARGEN (if CONFIG &
11503                                      16)
11504
11505The PETDWW module
11506
11507For storing the state of the DWW hires expansion board, there is a
11508PETDWWPIA module, and a DWWMEM module.
11509
11510The former has the same format as the PIA1.
11511
11512Type    Name                          Description
11513WORD    SIZE                          The size of the memory dump that
11514                                      follows, or 0 if DWW disabled.
11515ARRAY   MEM                           The memory in the DWW card, SIZE
11516                                      bytes.
11517
11518
11519File: vice.info,  Node: CBM-II memory module,  Next: C500 data module,  Prev: PET memory module,  Up: Module formats
11520
115219.2.2.19 CBM-II memory module
11522.............................
11523
11524The CBM-II memory module actually consists of two modules.  The
11525"CBM2MEM" module is mandatory and contains the RAM dump.  The "CBM2ROM"
11526module is optional and contains a dump of the ROM images.
11527
11528The size of the CBM-II memory modules differs with each different memory
11529configuration.  The RAM configuration is saved in the snapshot, and
11530restored when the snapshot is loaded.
11531
11532Version numbers: Major 1, Minor 0
11533
11534The CBM2MEM module
11535
11536Type    Name                          Description
11537UBYTE   MEMSIZE                       Memory size in 128k blocks
11538                                      (1=128k, 2=256k, 4=512k, 8=1024k)
11539UBYTE   CONFIG                        Bit 0 = $f0800-$f0fff RAM, Bit 1 =
11540                                      $f1000-$f1fff RAM, Bit 2 =
11541                                      $f2000-$f3fff RAM, Bit 3 =
11542                                      $f4000-$f5fff RAM, Bit 4 =
11543                                      $f6000-$f7fff RAM, Bit 5 =
11544                                      $fc000-$fcfff RAM, Bit 6 = is a
11545                                      C500
11546UBYTE   HWCONFIG                      Bit 0/1: model line configuration
11547UBYTE   EXECBANK                      CPUs execution bank register
11548UBYTE   INDBANK                       CPUs indirection bank register
11549ARRAY   SYSRAM                        2k system RAM $f0000-$f07ff
11550ARRAY   VIDEO                         2k video RAM $fd000-$fd7ff
11551ARRAY   RAM                           RAM dump, size according to
11552                                      MEMSIZE
11553ARRAY   RAM08                         if memsize < 1M and CONFIG & 1 :
11554                                      2k RAM $f0800-$f0fff
11555ARRAY   RAM1                          if memsize < 1M and CONFIG & 2 :
11556                                      4k RAM $f1000-$f1fff
11557ARRAY   RAM2                          if memsize < 1M and CONFIG & 4 :
11558                                      8k RAM $f2000-$f3fff
11559ARRAY   RAM4                          if memsize < 1M and CONFIG & 8 :
11560                                      8k RAM $f4000-$f5fff
11561ARRAY   RAM6                          if memsize < 1M and CONFIG & 16 :
11562                                      8k RAM $f6000-$f7fff
11563ARRAY   RAMC                          if memsize < 1M and CONFIG & 32 :
11564                                      4k RAM $fc000-$fcfff
11565
11566The RAM* arrays are only saved if the RAM itself is less than 1M. If the
11567memory size is 1M then those areas are taken from the bank 15 area of
11568the normal RAM.
11569
11570The memory array starts at $10000 if the memory size is less than 512k,
11571or at $00000 if 512k or more.  In case of a C510, then the memory array
11572also always starts at $00000.
11573
11574The CBM2ROM module
11575
11576Type    Name                          Description
11577UBYTE   CONFIG                        Bit 1: 1= $1*** ROM image
11578                                      included.  Bit 2: 1= $2000-$3fff
11579                                      ROM image included.  Bit 3: 1=
11580                                      $4000-$5fff ROM image included.
11581                                      Bit 4: 1= $6000-$7fff ROM image
11582                                      included.  Bit 5: 1= chargen ROM
11583                                      is VIC-II chargen, 0= CRTC
11584                                      chargen.
11585ARRAY   KERNAL                        8 KERNAL ROM image ($e000-$efff)
11586ARRAY   BASIC                         BASIC ROM image ($8000-$bfff)
11587ARRAY   CHARGEN                       4k CHARGEN ROM image
11588ARRAY   ROM1                          4k cartridge ROM image for $1***
11589                                      (if CONFIG & 2)
11590ARRAY   ROM2                          8k cartridge ROM image for
11591                                      $2000-$3fff (if CONFIG & 4)
11592ARRAY   ROM4                          8k cartridge ROM image for
11593                                      $4000-$5fff (if CONFIG & 8)
11594ARRAY   ROM6                          8k cartridge ROM image for
11595                                      $6000-$7fff (if CONFIG & 16)
11596
11597
11598File: vice.info,  Node: C500 data module,  Prev: CBM-II memory module,  Up: Module formats
11599
116009.2.2.20 C500 data module
11601.........................
11602
11603The C500 data module contains simple state information not already saved
11604in the other modules.
11605
11606Version numbers: Major 0, Minor 0
11607
11608The C500DATA module
11609
11610Type    Name                          Description
11611DWORD   IRQCLK                        CPU clock ticks till next 50Hz IRQ
11612
1161310 Media images
11614***************
11615
1161610.1 Media images resources
11617===========================
11618
11619'DoodleOversizeHandling'
11620     Integer specifying the way the oversized input should be handled
11621     (all emulators except vsid).  (0: scale down, 1: crop left top, 2:
11622     crop center top, 3: crop right top, 4: crop left center, 5: crop
11623     center, 6: crop right center, 7: crop left bottom, 8: crop center
11624     bottom, 9: crop right bottom)
11625
11626'DoodleUndersizeHandling'
11627     Integer specifying the way the undersized input should be handled
11628     (all emulators except vsid).  (0: scale, 1: borderize)
11629
11630'DoodleMultiColorHandling'
11631     Integer specifying the way the multicolor to hires should be
11632     handled (all emulators except vsid).  (0: b&w, 1: 2 colors, 2: 4
11633     colors, 3: gray scale, 4: best cell colors)
11634
11635'DoodleTEDLumHandling'
11636     Integer specifying the way the TED luminosity should be handled
11637     (all emulators except vsid).  (0: ignore, 1: dither)
11638
11639'DoodleCRTCTextColor'
11640     Integer specifying the text color used when making screenshots from
11641     a CRTC window in doodle format (all emulators except vsid).  (0:
11642     white, 1: amber, 2: green)
11643
11644'KoalaOversizeHandling'
11645     Integer specifying the way the oversized input should be handled
11646     (all emulators except vsid).  (0: scale down, 1: crop left top, 2:
11647     crop center top, 3: crop right top, 4: crop left center, 5: crop
11648     center, 6: crop right center, 7: crop left bottom, 8: crop center
11649     bottom, 9: crop right bottom)
11650
11651'KoalaUndersizeHandling'
11652     Integer specifying the way the undersized input should be handled
11653     (all emulators except vsid).  (0: scale, 1: borderize)
11654
11655'KoalaTEDLumHandling'
11656     Integer specifying the way the TED luminosity should be handled
11657     (all emulators except vsid).  (0: ignore, 1: dither)
11658
11659'KoalaCRTCTextColor'
11660     Integer specifying the text color used when making screenshots from
11661     a CRTC window in doodle format (all emulators except vsid).  (0:
11662     white, 1: amber, 2: green)
11663
11664'FFMPEGFormat'
11665     String specifying the current FFMPEG output driver.
11666'FFMPEGAudioBitrate'
11667     Integer specifying the current FFMPEG audio bitrate.
11668'FFMPEGVideoBitrate'
11669     Integer specifying the current FFMPEG video bitrate.
11670'FFMPEGAudioCodec'
11671     Integer specifying the current FFMPEG audio codec.
11672'FFMPEGVideoCodec'
11673     Integer specifying the current FFMPEG video codec.
11674'FFMPEGVideoHalveFramerate'
11675     Boolean, if true record only every other frame.
11676
1167710.2 Media images command-line options
11678======================================
11679
11680'-doodleoversize <method>'
11681     Select the way the oversized input should be handled
11682     ('DoodleOversizeHandling') (all emulators except vsid).  (0: scale
11683     down, 1: crop left top, 2: crop center top, 3: crop right top, 4:
11684     crop left center, 5: crop center, 6: crop right center, 7: crop
11685     left bottom, 8: crop center bottom, 9: crop right bottom)
11686
11687'-doodleundersize <method>'
11688     Select the way the undersized input should be handled
11689     ('DoodleUndersizeHandling') (all emulators except vsid).  (0:
11690     scale, 1: borderize)
11691
11692'-doodlemc <method>'
11693     Select the way the multicolor to hires should be handled
11694     ('DoodleMultiColorHandling') (all emulators except vsid).  (0: b&w,
11695     1: 2 colors, 2: 4 colors, 3: gray scale, 4: best cell colors)
11696
11697'-doodletedlum <method>'
11698     Select the way the TED luminosity should be handled
11699     ('DoodleTEDLumHandling') (all emulators except vsid).  (0: ignore,
11700     1: dither)
11701
11702'-doodlecrtctextcolor <color>'
11703     Select the CRTC text color ('DoodleCRTCTextColor') (all emulators
11704     except vsid).  (0: white, 1: amber, 2: green)
11705
11706'-koalaoversize <method>'
11707     Select the way the oversized input should be handled
11708     ('KoalaOversizeHandling') (all emulators except vsid).  (0: scale
11709     down, 1: crop left top, 2: crop center top, 3: crop right top, 4:
11710     crop left center, 5: crop center, 6: crop right center, 7: crop
11711     left bottom, 8: crop center bottom, 9: crop right bottom)
11712
11713'-koalaundersize <method>'
11714     Select the way the undersized input should be handled
11715     ('KoalaUndersizeHandling') (all emulators except vsid).  (0: scale,
11716     1: borderize)
11717
11718'-koalatedlum <method>'
11719     Select the way the TED luminosity should be handled
11720     ('KoalaTEDLumHandling') (all emulators except vsid).  (0: ignore,
11721     1: dither)
11722
11723'-koalacrtctextcolor <color>'
11724     Select the CRTC text color ('KoalaCRTCTextColor') (all emulators
11725     except vsid).  (0: white, 1: amber, 2: green)
11726
11727'-ffmpegaudiobitrate <value>'
11728     Set bitrate for audio stream in media file
11729'-ffmpegvideobitrate <value>'
11730     Set bitrate for video stream in media file
11731
1173211 Event history
11733****************
11734
11735VICE supports recording an arbitrary session on the emulated machine and
11736playing back this session later.  This is done by saving a snapshot at
11737the beginning of the recording session and then remembering all the user
11738interaction such as keyboard and joystick input.  We call this an 'event
11739history'.  The main purpose for having an event history is to create
11740game sessions, e.g.  recording how to solve a game.  An example
11741walkthrough for the well known game "Fort Apocalypse" is available.
11742
11743This brief chapter will advise you how to record and playback such a
11744session.  Although it is based on the WinVICE x64 release and its user
11745interface, histories may be transferred to other machines and other
11746ports that support event history, e.g.  the Unix port.
11747
1174811.1 Recommended Settings
11749=========================
11750
11751When using the event history feature it is possible that the playback
11752session differs from what was done at recording time.  This might arise
11753due to a problem in the initial snapshot or settings.  Here are some
11754suggestions to minimize the chance of failures in the session: a.  Reset
11755to default settings.  b.  Choose refresh rate 1/1.  c.  Choose joystick
11756and Video/Doublesize settings as desired or needed.  d.  SID engine must
11757be reSID (which is the default).  e.  Choose Drive settings/Idle method:
11758None Do not change any settings during recording or playback!
11759
1176011.2 Recorded Events
11761====================
11762
11763The following is a list of the user interaction that will be recorded: -
11764Joystick movement and button - Keyboard - Resetting the machine (hard
11765and soft) - Attaching or detaching disk/tape images (see 8.
11766Limitations) - Datasette controls
11767
1176811.3 Recording an Event History
11769===============================
11770
11771Recording an event history will create one or two files for a snapshot
11772and the list of the user events.  First, create an empty directory in
11773which these files are to be saved and then select this directory and the
11774name of the snapshot files via 'Snapshot//Select History
11775files/directory'.  Next, attach the disk or tape image with the game you
11776want to record and load and run the game.
11777
11778Start recording via 'Snapshot//Start/Stop Recording History'.  Play the
11779game.  All actions will be recorded.  After the game is finished, stop
11780recording via 'Snapshot//Start/Stop Recording History'.  The selected
11781directory should now contain the two snapshot files (default ist
11782start.vsf and end.vsf).
11783
1178411.4 Setting and Returning to Milestones
11785========================================
11786
11787It is difficult to finish a game in one sitting and noone wants to
11788record all their mistakes and lost lives.  Use the milestone feature in
11789a recording session in the following way:
11790
11791Set a milestone when you have finished a level or completed a task
11792('Snapshot//Set recording milestone' or ALT-E). This will save the event
11793history and a snapshot of the machine to the file end.vsf but recording
11794will continue.
11795
11796Return to the last milestone when you have made a mistake or lost a life
11797('Snapshot//Return to milestone' or ALT-U). This will reset the game and
11798the event history to the last milestone snapshot so that you can try
11799again.
11800
1180111.5 Continuing an Event History
11802================================
11803
11804If you have stopped a recording session and want to continue it later,
11805you should create a backup of your start.vsf and end.vsf files first to
11806avoid overwriting them by accident.
11807
11808Then change the event history start mode: 'Snapshot//Recording start
11809mode//Load existing snapshot'.  When you start recording now, you will
11810continue where the session was stopped last time.
11811
11812Another way of continuing an existing history is to start somewhere
11813inside the history (e.g.  you have recorded 10 minutes of a game and
11814later recognize that you made a mistake after 6 minutes that makes it
11815impossible to finish the game).  For this you have to select the start
11816mode 'Overwrite playback'.  Now you can start the playback with
11817'Snapshot//Start/Stop Playback History' and when you reach the point
11818where you want to change the history you can directly switch to
11819recording via 'Snapshot//Start/Stop Recording History'.
11820
1182111.6 Playing Back an Event History
11822==================================
11823
11824To play back an event history, select the directory with the history
11825files start.vsf and end.vsf via 'Snapshot//Select History directory' and
11826start the playback with 'Snapshot//Start/Stop Playback History'.  Enjoy!
11827During playback any user interaction is disabled.  The playback stops
11828when the end of the session is reached or if 'Snapshot//Select History
11829directory' is selected again.
11830
1183111.7 Limitations and Suggestions
11832================================
11833
11834a.  Snapshot files will be quite big (>1MB) if a disk image has been
11835attached.  If possible, use PRG or T64 images to reduce the size of
11836snapshot files.  b.  Snapshots may not be 100% accurate even with all
11837the recommended settings.
11838
1183911.8 Event history resources
11840============================
11841
11842'EventSnapshotDir'
11843     String specifying the directory used for loading and saving
11844     snapshots (all emulators except vsid).
11845
11846'EventStartSnapshot'
11847     String specifying the filename for the start snapshot (all
11848     emulators except vsid).
11849
11850'EventEndSnapshot'
11851     String specifying the filename for the end snapshot (all emulators
11852     except vsid).
11853
11854'EventStartMode'
11855     Integer specifying how to start event recording (all emulators
11856     except vsid).  (0: save new snapshot, 1: load existing snapshot, 2:
11857     reset, 3: playback)
11858
11859'EventImageInclude'
11860     Boolean specifying whether to include ROM and Disk images in the
11861     snapshots (all emulators except vsid).
11862
1186311.9 Event history command-line options
11864=======================================
11865
11866'-playback'
11867     Playback recorded events (all emulators except vsid).
11868
11869'-eventsnapshotdir <Name>'
11870     Set event snapshot directory ('EventSnapshotDir') (all emulators
11871     except vsid).
11872
11873'-eventstartsnapshot <Name>'
11874     Set event start snapshot filename ('EventStartSnapshot') (all
11875     emulators except vsid).
11876
11877'-eventendsnapshot <Name>'
11878     Set event end snapshot filename ('EventEndSnapshot') (all emulators
11879     except vsid).
11880
11881'-eventstartmode <Mode>'
11882     Set event start mode ('EventStartMode') (all emulators except
11883     vsid).  (0: save new snapshot, 1: load existing snapshot, 2: reset,
11884     3: playback)
11885
11886'-eventimageinc'
11887'+eventimageinc'
11888     Enable/disable the inclusion of disk images in the event
11889     ('EventImageInclude=1', 'EventImageInclude=0') (all emulators
11890     except vsid).
11891
11892
11893File: vice.info,  Node: Monitor,  Next: c1541,  Prev: Snapshots,  Up: Top
11894
1189512 Monitor
11896**********
11897
11898Every VICE emulator has a complete built-in monitor, which can be used
11899to examine, disassemble and assemble machine language programs, as well
11900as debug them through breakpoints.  It can be activated by using the
11901"Activate monitor" command (left button menu).  Notice that in some
11902ports you have to run the emulator from a terminal emulation program
11903(such as 'rxvt' or 'xterm') in order to use the monitor.
11904
11905* Menu:
11906
11907* Terminology::
11908* Machine state commands::
11909* Memory commands::
11910* Assembly commands::
11911* Checkpoint commands::
11912* General commands::
11913* Disk commands::
11914* Command file commands::
11915* Label commands::
11916* Miscellaneous commands::
11917
11918
11919File: vice.info,  Node: Terminology,  Next: Machine state commands,  Prev: Monitor,  Up: Monitor
11920
1192112.1 Terminology
11922================
11923
11924'address_space'
11925     This refers to the range of memory locations and a set of
11926     registers.  This can be the addresses available to the computer's
11927     processor, the disk drive's processor or a specific memory
11928     configuration of one of the mentioned processors.
11929
11930'bankname'
11931     The CPU can only see 64k of memory at any one time, due to its 16
11932     bit address bus.  The C64 and other computers have more than this
11933     amount, and this is handled by banking: a memory address can have
11934     different contents, depending on the active memory bank.  A
11935     bankname names a specific bank in the current address_space.
11936
11937'register'
11938     One of the following: program counter (PC), stack pointer (SP),
11939     accumulator (A), X register (X), or Y register (Y).
11940
11941'address'
11942     A specific memory location in the range $0000 to $FFFF.
11943
11944'address_range'
11945     Two addresses.  If the second address is less than the first, the
11946     range is assumed to wraparound from $FFFF to $0000.  Both addresses
11947     must be in the same address space.
11948
11949'address_opt_range'
11950     An address or an address range.
11951
11952'label'
11953     'label' is the name of a label.  It must start with a dot (".")  in
11954     order for the monitor to recognize it as a label.  Register names
11955     preceeded by a dot (for example '.PC') are special labels that
11956     evaluate to value of the respective register at the time it is
11957     used, and thus can not be used as a regular label.
11958
11959'prompt'
11960     The prompt has the format [x:y].  If x is -, memory reads from the
11961     monitor do not have side effects.  Otherwise, x is S. The second
11962     part of the prompt, y, shows the default address space.
11963
11964'checkpoint'
11965     The monitor has the ability to setup triggers that perform an
11966     action when a specified situation occurs.  There are three types of
11967     checkpoints; breakpoints, tracepoints and watchpoints.
11968
11969'breakpoint'
11970     A breakpoint is triggered based on the program counter.  When it is
11971     triggered, the monitor is entered.
11972
11973'tracepoint'
11974     Like breakpoints, a tracepoint is triggered based on the program
11975     counter.  Instead of entering the monitor, the program counter is
11976     printed and execution continues.
11977
11978'watchpoint'
11979     Watchpoints are triggered by a read and/or write to an address.
11980     When a watchpoint is triggered, the monitor is entered.
11981
11982'memmap'
11983     The memmap keeps track of RAM/ROM/IO read/write/execute accesses.
11984     The feature must be enabled with "-enable-cpuhistory" configure
11985     option, as it might decrease performance notably on slower
11986     hardware.  The option also enables CPU history.
11987
11988'<...>'
11989     A data type.
11990
11991'*'
11992     Zero or more occurrences.
11993
11994'[...]'
11995     An optional argument.
11996
11997
11998File: vice.info,  Node: Machine state commands,  Next: Memory commands,  Prev: Terminology,  Up: Monitor
11999
1200012.2 Machine state commands
12001===========================
12002
12003'backtrace'
12004'bt'
12005     Print JSR call chain (most recent call first).  Stack offset
12006     relative to SP+1 is printed in parentheses.  This is a best guess
12007     only.
12008
12009'cpuhistory [<count>]'
12010'chis [<count>]'
12011     Show <count> last executed commands.  (disabled by default;
12012     configure with -enable-cpuhistory to enable)
12013
12014'dump "<filename>"'
12015     Write a snapshot of the machine into the file specified.  This
12016     snapshot is compatible with a snapshot written out by the UI. Note:
12017     No ROM images are included into the dump.
12018
12019'goto <address>'
12020'g <address>'
12021     Change the PC to address and continue execution.
12022
12023'io [<address>]'
12024     Display i/o registers.  Invoking without an address shows a dump of
12025     the entire io range, if an address is given then details for the
12026     chip at the respective (base-)address are displayed (if available).
12027
12028'next [<count>]'
12029'n [<count>]'
12030     Advance to the next instruction.  Subroutines are treated as a
12031     single instruction.
12032
12033'registers [<reg_name> = <number> [, <reg_name> = <number>]*]'
12034'r [<reg_name> = <number> [, <reg_name> = <number>]*]'
12035     Assign respective registers.  With no parameters, display register
12036     values.
12037
12038'reset [<type>]'
12039     Reset the machine or drive.  'type': 0 = soft, 1 = hard, 8-11 =
12040     drive.
12041
12042'return'
12043'ret'
12044     Continues execution and returns to the monitor just after the next
12045     RTS or RTI is executed.
12046
12047'step [<count>]'
12048'z [<count>]'
12049     Single step through instructions.  An optional count allows
12050     stepping more than a single instruction at a time.
12051
12052'stopwatch [reset]'
12053     Print the CPU cycle counter of the current device.  'reset' sets
12054     the counter to 0.
12055
12056'undump "<filename>"'
12057     Read a snapshot of the machine from the file specified.
12058
12059
12060File: vice.info,  Node: Memory commands,  Next: Assembly commands,  Prev: Machine state commands,  Up: Monitor
12061
1206212.3 Memory commands
12063====================
12064
12065'bank [<bankname>]'
12066     Without a bankname, display all available banks for the current
12067     address_space.  With a bankname given, switch to the specified
12068     bank.  If a bank is not completely filled (ROM banks for example)
12069     normally the 'ram' bank is used where the bank has holes.  The
12070     'cpu' bank uses the bank currently used by the CPU.
12071
12072'compare <address_range> <address>'
12073'c <address_range> <address>'
12074     Compare memory from the source specified by the address range to
12075     the destination specified by the address.  The regions may overlap.
12076     Any values that miscompare are displayed using the default
12077     displaytype.
12078
12079'device [c:|8:|9:]'
12080     Set the default address space to either the computer 'c:' or the
12081     specified drive '8:' or '9:'
12082
12083'fill <address_range> <data_list>'
12084'f <address_range> <data_list>'
12085     Fill memory in the specified address range with the data in
12086     <data_list>.  If the size of the address range is greater than the
12087     size of the data_list, the data_list is repeated.
12088
12089'hunt <address_range> <data_list>'
12090'h <address_range> <data_list>'
12091     Hunt memory in the specified address range for the data in
12092     <data_list>.  If the data is found, the starting address of the
12093     match is displayed.  The entire range is searched for all possible
12094     matches.  The data list may have 'xx' as a wildcard.
12095
12096'i <address_opt_range>'
12097     Display memory contents as PETSCII text.
12098
12099'ii <address_opt_range>'
12100     Display memory contents as screen code text
12101
12102'mem [<data_type>] [<address_opt_range>]'
12103'm [<data_type>] [<address_opt_range>]'
12104     Display the contents of memory.  If no datatype is given, the
12105     default is used.  If only one address is specified, the length of
12106     data displayed is based on the datatype.  If no addresses are
12107     given, the 'dot' address is used.
12108
12109'memmapshow [<mask>] [<address_opt_range>]'
12110'mmsh [<mask>] [<address_opt_range>]'
12111     Show the memmap.  The mask can be specified to show only those
12112     locations with accesses of certain type(s).  The mask is a number
12113     with the bits "ioRWXrwx", where RWX are for ROM and rwx for RAM.
12114     Optionally, an address range can be specified.  (disabled by
12115     default; configure with -enable-cpuhistory to enable)
12116
12117'memmapzap'
12118'mmzap'
12119     Clear the memmap.  (disabled by default; configure with
12120     -enable-cpuhistory to enable)
12121
12122'memmapsave "<filename>" <format>'
12123'mmsave "<filename>" <format>'
12124     Save the memmap as a picture.  'format': 0 = BMP, 1 = PCX, 2 = PNG,
12125     3 = GIF, 4 = IFF. (disabled by default; configure with
12126     -enable-cpuhistory to enable)
12127
12128'memchar [<data_type>] [<address_opt_range>]'
12129'mc [<data_type>] [<address_opt_range>]'
12130     Display the contents of memory as character data.  If only one
12131     address is specified, only one character is displayed.  If no
12132     addresses are given, the "dot" address is used.
12133
12134'memsprite [<data_type>] [<address_opt_range>]'
12135'ms [<data_type>] [<address_opt_range>]'
12136     Display the contents of memory as sprite data.  If only one address
12137     is specified, only one sprite is displayed.  If no addresses are
12138     given, the "dot" address is used.
12139
12140'move <address_range> <address>'
12141't <address_range> <address>'
12142     Move memory from the source specified by the address range to the
12143     destination specified by the address.  The regions may overlap.
12144
12145'screen'
12146'sc'
12147     Displays the contents of the screen.
12148
12149'sidefx [on|off|toggle]'
12150'sfx [on|off|toggle]'
12151     Control how monitor generated reads affect memory locations that
12152     have read side-effects, like CIA interrupt registers for example.
12153     If the argument is 'on' then reads may cause side-effects.  If the
12154     argument is 'off' then reads don't cause side-effects.  If the
12155     argument is 'toggle' then the current mode is switched.  No
12156     argument displays the current state.
12157
12158'> [<address>] <data_list>'
12159     Write the specified data at 'address'.
12160
12161
12162File: vice.info,  Node: Assembly commands,  Next: Checkpoint commands,  Prev: Memory commands,  Up: Monitor
12163
1216412.4 Assembly commands
12165======================
12166
12167'a <address> [ <instruction> [: <instruction>]* ]'
12168     Assemble instructions to the specified address.  If only one
12169     instruction is specified, enter assembly mode (enter an empty line
12170     to exit assembly mode).
12171
12172'disass [<address> [<address>]]'
12173'd [<address> [<address>]]'
12174     Disassemble instructions.  If two addresses are specified, they are
12175     used as a start and end address.  If only one is specified, it is
12176     treated as the start address and a default number of instructions
12177     are disassembled.  If no addresses are specified, a default number
12178     of instructions are disassembled from the dot address.
12179
12180
12181File: vice.info,  Node: Checkpoint commands,  Next: General commands,  Prev: Assembly commands,  Up: Monitor
12182
1218312.5 Checkpoint commands
12184========================
12185
12186'break [load|store|exec] [address [address] [if <cond_expr>]]'
12187     This command allows setting a breakpoint or listing the current
12188     breakpoints.  If no address is given, the currently valid
12189     checkpoints are printed.  If an address is given, a breakpoint is
12190     set for that address and the breakpoint number is printed.  The
12191     "load|store|exec" parameter can be either "load", "store" or "exec"
12192     (or any combination of these) to determine on which operation the
12193     monitor breaks.  If not specified, the monitor breaks on "exec".  A
12194     conditional expression can also be specified for the breakpoint.
12195     For more information on conditions, see the CONDITION command.
12196
12197'enable <checknum>'
12198'disable <checknum>'
12199     Each checkpoint can be enabled or disabled.  This command allows
12200     changing between these states.
12201
12202'command <checknum> "<command>"'
12203     When checkpoint 'checknum' is hit, the specified command is
12204     executed by the monitor.  Note that the 'x' command is not yet
12205     supported as a command argument.
12206
12207'condition <checknum> if <cond_expr>'
12208'cond <checknum> if <cond_expr>'
12209     Each time the specified checkpoint is examined, the condition is
12210     evaluated.  If it evalutes to true, the checkpoint is activated.
12211     Otherwise, it is ignored.  If registers are specified in the
12212     expression, the values used are those at the time the checkpoint is
12213     examined, not when the condition is set.
12214
12215     Currently, the cond_expr is very limited.  You can use registers
12216     (.A, .X, .Y, .PC, and .SP) and compare against other registers or
12217     absolute values.  For example, the following are all valid
12218     conditions: .A == 0, .X == .Y, 8:.X == .X, .A != 5, .A < .X.
12219
12220     However, you cannot specify memory contents and compare that.
12221
12222'delete <checknum>'
12223'del <checknum>'
12224     Delete the specified checkpoint.
12225
12226'ignore <checknum> [<count>]'
12227     Ignore a checkpoint after a given number of crossings.  If no count
12228     is given, the default value is 1.
12229
12230'trace [load|store|exec] [address [address] [if <cond_expr>]]'
12231'tr [load|store|exec] [address [address] [if <cond_expr>]]'
12232     This command is similar to the 'break' command except that it
12233     operates on tracepoints.  A tracepoint differs from a breakpoint by
12234     not stopping execution but simply printing the PC, giving the user
12235     an execution trace.  The second optional address can be used to
12236     specify the end of an range of addresses to be traced.  If no
12237     addresses are given, a list of all the checkpoints is printed.  The
12238     "load|store|exec" parameter can be either "load", "store" or "exec"
12239     (or any combination of these) to determine which operation the
12240     monitor traces.  If not specified, the monitor traces all
12241     operations.  A conditional expression can also be specified for the
12242     tracepoint.  For more information on conditions, see the CONDITION
12243     command.
12244
12245'until [<address>]'
12246'un [<address>]'
12247     If no address is given, the currently valid breakpoints are
12248     printed.  If an address is given, a temporary breakpoint is set for
12249     that address and the breakpoint number is printed.  Control is
12250     returned to the emulator by this command.  The breakpoint is
12251     deleted once it is hit.
12252
12253'watch [load|store|exec] [address [address] [if <cond_expr>]]'
12254'w [load|store|exec] [address [address] [if <cond_expr>]]'
12255     This command is similar to the 'break' command except that it
12256     operates on watchpoints.  A watchpoint differs from a breakpoint by
12257     stopping on a read and/or write to an address or range of
12258     addresses.  If no addresses are given, a list of all the
12259     checkpoints is printed.  The "load|store|exec" parameter can be
12260     either "load", "store" or "exec" (or any combination of these) to
12261     determine on which operation the monitor breaks.  If not specified,
12262     the monitor breaks on "load" and "store" operations.  A conditional
12263     expression can also be specified for the watchpoint.  For more
12264     information on conditions, see the CONDITION command.
12265
12266
12267File: vice.info,  Node: General commands,  Next: Disk commands,  Prev: Checkpoint commands,  Up: Monitor
12268
1226912.6 General commands
12270=====================
12271
12272'cd <directory>'
12273     Change the working directory.
12274
12275'device [c:|8:|9:]'
12276'dev [c:|8:|9:]'
12277     Set the default address space to either the computer ('c:') or the
12278     disk ('8:|9:').
12279
12280'dir [<directory>]'
12281'ls [<directory>]'
12282     Display the directory contents.
12283
12284'pwd'
12285     Show current working directory.
12286
12287'radix [H|D|O|B]'
12288'rad [H|D|O|B]'
12289     Set the default radix to hex, decimal, octal, or binary.  With no
12290     argument, the current radix is printed.
12291
12292
12293File: vice.info,  Node: Disk commands,  Next: Command file commands,  Prev: General commands,  Up: Monitor
12294
1229512.7 Disk commands
12296==================
12297
12298'attach <filename> <device>'
12299     Attach file to device.  (device 32 = cart)
12300
12301'block_read <track> <sector> [<address>]'
12302'br <track> <sector> [<address>]'
12303     Read the block at the specified track and sector.  If an address is
12304     specified, the data is loaded into memory.  If no address is given,
12305     the data is displayed using the default datatype.
12306
12307'block_write <track> <sector> <address>'
12308'bw <track> <sector> <address>'
12309     Write a block of data at 'address' to the specified track and
12310     sector of disk in drive 8.
12311
12312'detach <device>'
12313     Detach file from device.  (device 32 = cart)
12314
12315'@<disk command>'
12316     Perform a disk command on the currently attached disk image on
12317     drive 8.  The specified disk command is sent to the drive's channel
12318     #15.
12319
12320'load "<filename>" <device> [<address>]'
12321'l "<filename>" <device> [<address>]'
12322     Load the specified file into memory.  If no address is given, the
12323     file is loaded to the address specified by the first two bytes read
12324     from the file.  If address is given, the file is loaded to the
12325     specified address and the first two bytes read from the file are
12326     skipped.  If device is 0, the file is read from the file system.
12327
12328'list [<directory>]'
12329     List disk contents.
12330
12331'bload "<filename>" <device> <address>'
12332'bl "<filename>" <device> <address>'
12333     Load the specified file into memory at the specified address.  If
12334     device is 0, the file is read from the file system.
12335
12336'save "<filename>" <device> <address1> <address2>'
12337's "<filename>" <device> <address1> <address2>'
12338     Save the memory from address1 to address2 to the specified file.
12339     Write two-byte load address.  If device is 0, the file is written
12340     to the file system.
12341
12342'bsave "<filename>" <device> <address1> <address2>'
12343'bs "<filename>" <device> <address1> <address2>'
12344     Save the memory from address1 to address2 to the specified file.
12345     If device is 0, the file is written to the file system.
12346
12347
12348File: vice.info,  Node: Command file commands,  Next: Label commands,  Prev: Disk commands,  Up: Monitor
12349
1235012.8 Command file commands
12351==========================
12352
12353'playback "<filename>"'
12354'pb "<filename>"'
12355     Monitor commands from the specified file are read and executed.
12356     This command stops at the end of file or when a STOP command is
12357     read.
12358
12359'record "<filename>"'
12360'rec "<filename>"'
12361     After this command, all commands entered are written to the
12362     specified file until the STOP command is entered.
12363
12364'stop'
12365     Stop recording commands.  See 'record'.
12366
12367
12368File: vice.info,  Node: Label commands,  Next: Miscellaneous commands,  Prev: Command file commands,  Up: Monitor
12369
1237012.9 Label commands
12371===================
12372
12373'add_label <address> <label>'
12374'al <address> <label>'
12375     Map a given address to a label.  This label can be used when
12376     entering assembly code and is shown during disassembly.
12377     Additionally, it can be used whenever an address must be specified.
12378
12379     <label> is the name of the label; it must start with a dot (".")
12380     in order for the monitor to recognize it as a label.
12381
12382'delete_label [<address_space>] <label>'
12383'dl [<address_space>] <label>'
12384     Remove the specified label from the label tables.  If no address
12385     space is checked, all tables are checked.
12386
12387'load_labels [<address_space>] "<filename>"'
12388'll [<address_space>] "<filename>"'
12389     Load a file containing a mapping of labels to addresses.  If no
12390     address space is specified, the default readspace is used.
12391
12392     The file must contain commands the monitor understands, e.g.
12393     add_label.  The compiler cc65 can create such label files.
12394
12395     Vice can also load label files created by the Acme assembler.
12396     Their syntax is e.g.  "labelname = $1234 ; Maybe a comment".  A dot
12397     will be added automatically to label names assigned in this way to
12398     fit to the Vice label syntax.  Normally the semicolon seperates
12399     commands but after an assignment of this kind it may be used to
12400     start a comment to end of line, so unchanged Acme label files can
12401     be fed into Vice.
12402
12403'save_labels [<address_space>] "<filename>"'
12404'sl [<address_space>] "<filename>"'
12405     Save labels to a file.  If no address space is specified, all of
12406     the labels are saved.
12407
12408'show_labels [<address_space>]'
12409'shl [<address_space>]'
12410     Display current label mappings.  If no address space is specified,
12411     show all labels from default address space.
12412
12413'clear_labels [<address_space>]'
12414'cl [<address_space>]'
12415     Clear current label mappings.  If no address space is specified,
12416     clear all labels from default address space.
12417
12418
12419File: vice.info,  Node: Miscellaneous commands,  Prev: Label commands,  Up: Monitor
12420
1242112.10 Miscellaneous commands
12422============================
12423
12424'cartfreeze'
12425     Use cartridge freeze.
12426
12427'cpu <type>'
12428     Specify the type of CPU currently used (6502/z80).
12429
12430'exit'
12431'x'
12432     Leave the monitor and return to execution.
12433
12434'export'
12435'exp'
12436     Print out list of attached expansion port devices.
12437
12438'help [<command>]'
12439     If no argument is given, prints out a list of all available
12440     commands.  If an argument is given, prints out specific help for
12441     that command.
12442
12443'keybuf "<string>"'
12444     Put the specified string into the keyboard buffer.  Note that you
12445     can specify specific keycodes by using C-style escaped hexcodes
12446     ("\x0a").
12447
12448'print <expression>'
12449'p <expression>'
12450     Evaluate the specified expression and output the result.
12451
12452'resourceget "<resource>"'
12453'resget "<resource>"'
12454     Displays the value of the 'resource'.
12455
12456'resourceset "<resource>" "<value>"'
12457'resset "<resource>" "<value>"'
12458     Sets the value of the 'resource'.
12459
12460'load_resources "<file>"'
12461'resload "<file>"'
12462     Load resources from 'file'.
12463
12464'save_resources "<file>"'
12465'ressave "<file>"'
12466     Save resources to 'file'.
12467
12468'screenshot "<filename>" [<format>]'
12469'scrsh "<filename>" [<format>]'
12470     Take a screenshot.  'format': default = BMP, 1 = PCX, 2 = PNG, 3 =
12471     GIF, 4 = IFF.
12472
12473'tapectrl <command>'
12474     Control the datasette.  'command': 0 = stop, 1 = start, 2 =
12475     forward, 3 = rewind, 4 = record, 5 = reset, 6 = reset counter.
12476
12477'quit'
12478     Exit the emulator immediately.
12479
12480'~ <number>'
12481     Display the specified number in decimal, hex, octal and binary.
12482
12483
12484File: vice.info,  Node: c1541,  Next: File formats,  Prev: Monitor,  Up: Top
12485
1248613 c1541
12487********
12488
12489VICE is provided with a complete stand-alone disk image maintenance
12490utility, called 'c1541'.
12491
12492You can either invoke it from the command line or from within one of the
12493VICE emulators, using the "Run c1541" menu item which will open a new
12494terminal window with a running 'c1541' in it.
12495
12496The syntax is:
12497
12498     c1541 [IMAGE1 [IMAGE2]] [COMMAND1 COMMAND2 ... COMMANDN]
12499
12500'IMAGE1' and 'IMAGE2' are disk image names that can be attached before
12501'c1541' starts.  'c1541' can handle up to two disk images at the same
12502time by using two virtual built-in drives, numbered '8' and '9';
12503'IMAGE1' (if present) is always attached to drive '8', while 'IMAGE2' is
12504attached to drive '9'.
12505
12506'COMMAND's specified on the command-line all begin with the minus sign
12507('-'); if present, 'c1541' executes them in the same order as they are
12508on the command line and returns a zero error code if they were
12509successful.  If any of the 'COMMAND's fails, 'c1541' stops and returns a
12510nonzero error code.
12511
12512If no 'COMMAND's are specified at all, 'c1541' enters interactive mode,
12513where you can type commands manually.  Commands in interactive mode are
12514the same as commands in batch mode, but do not require a leading '-'.
12515As with the monitor, file name completion and command line editing with
12516history are provided via GNU 'readline'.  Use the command 'quit' or
12517press 'C-d' to exit.
12518
12519* Menu:
12520
12521* c1541 file specification::
12522* c1541 quoting::
12523* c1541 commands and options::
12524* c1541 executing shell commands::
12525
12526
12527File: vice.info,  Node: c1541 file specification,  Next: c1541 quoting,  Prev: c1541,  Up: c1541
12528
1252913.1 Specifying files in c1541
12530==============================
12531
12532When accessing CBM DOS files (i.e.  files that reside on disk images),
12533c1541 uses a special syntax that lets you access files on both drive 8
12534and 9.  If you prepend the file name with '@8:' or '@9:', you will
12535specified that file is to be found or created on drive 8 and 9,
12536respectively.
12537
12538For instance,
12539
12540     @8:somefile
12541
12542will name file named 'somefile' on unit 8, while
12543
12544     @9:somefile
12545
12546will name file named 'somefile' on unit 9.
12547
12548
12549File: vice.info,  Node: c1541 quoting,  Next: c1541 commands and options,  Prev: c1541 file specification,  Up: c1541
12550
1255113.2 Using quotes and backslashes
12552=================================
12553
12554You can use quotes ('"') in a command to embed spaces into file names.
12555For instance,
12556
12557     read some file
12558
12559will read file 'some' from the disk image and write it into the file
12560system as 'file', while
12561
12562     read "some file"
12563
12564will copy 'some file' into the file system, with the name 'some file'.
12565
12566The backslash character ('\') has a special meaning too: it lets you
12567literally insert the following character no matter what it is.  For
12568example,
12569
12570     read some\ file
12571
12572will copy file 'some file' into the file system, while
12573
12574     read some\ file this\"file
12575
12576will copy 'some file' into the file system with name 'this"file' (with
12577an embedded quote).
12578
12579
12580File: vice.info,  Node: c1541 commands and options,  Next: c1541 executing shell commands,  Prev: c1541 quoting,  Up: c1541
12581
1258213.3 c1541 commands and options
12583===============================
12584
12585This is a list of the 'c1541' commands.  They are shown in their
12586interactive form, without the leading '-'.  Square brackets [] indicate
12587an optional part, and "<COMMAND>" translates to a disk command according
12588to CBM DOS, like "i0" for example.
12589
12590'@ [<command>]'
12591     Execute specified CBM DOS command and print the current status of
12592     the drive.  If no 'command' is specified, just print the status.
12593
12594'? [<command>]'
12595     Explain specified command.  If no command is specified, list
12596     available ones.
12597
12598'attach <diskimage> [<unit>]'
12599     Attach 'diskimage' to 'unit' (default unit is 8).
12600
12601'bam [<unit>] | <track-min> <track-max> [<unit>]'
12602     Show the BAM of 'unit', optionally displaying only the entries for
12603     'track-min' to 'track-max'
12604
12605'bcopy <src-trk> <src-sec> <dst-trk> <dst-sec> [<src-unit> [<dst-unit>]]'
12606     Copy a block to another block, optionally specifying different
12607     source and destination units.  The block is copied using all 256
12608     bytes.
12609
12610'bfill <track> <sector> <value> [<unit>]'
12611     Fill a block with a single value.
12612
12613'block <track> <sector> [<offset> [<unit>]]'
12614     Show specified disk block in hex form.
12615
12616'bpoke [@unit:<unit>] <track> <sector> <offset> <data ...>'
12617     Store one or more bytes of 'data' into a block.  The 'data' can be
12618     specified using prefixes:
12619     '0b or %'
12620          binary value ('%11111111')
12621     '&'
12622          octal value ('&377')
12623     '0x or $'
12624          hexadecimal value ('$ff')
12625     The <unit> is optional, and when used must use the CBM DOS notation
12626     for the unit number, for example '@9:'.
12627
12628'bread <filename> <track> <sector> [<unit>]'
12629     Read a block from a disk image and write it to the host filesystem
12630     as 'filename'.
12631
12632'bwrite <filename> <track> <sector> [<unit>]'
12633     Write data from the host filesystem using 'filename' as input.  At
12634     most 256 bytes are written to the disk image.
12635
12636'chain <track> <sector> [<unit>]'
12637     Show block chain starting at ('track', 'sector').  The last number
12638     shown is the number of bytes used in the final block.
12639
12640'copy <source1> [<source2> ... <sourceN>] <destination>'
12641     Copy 'source1' ... 'sourceN' into destination.  If N > 1,
12642     'destination' must be a simple drive specifier ('@n:').
12643
12644'delete <file1> [<file2> ... <fileN>]'
12645     Delete the specified files.
12646
12647'exit'
12648     Exit (same as 'quit').
12649
12650'extract'
12651     Extract all the files to the file system.
12652
12653'format <diskname,id> [<type> <imagename>] [<unit>]'
12654     If 'unit' is specified, format the disk in unit 'unit'.  If 'type'
12655     and 'imagename' are specified, create a new image named
12656     'imagename', attach it to unit 8 and format it.  'type' is a disk
12657     image type, and must be either 'x64', 'd64' (both VC1541/2031),
12658     'g64' (VC1541/2031 but in GCR coding), 'd71' (VC1571), 'g71'
12659     (VC1571 but in GCR coding), 'd81' (VC1581), 'd80' (CBM8050) or
12660     'd82' (CBM8250/1001).  Otherwise, format the disk in the current
12661     unit, if any.
12662
12663'geosread <source> [<destination>]'
12664     Read GEOS <source> from the disk image and copy it as a Convert
12665     file into <destination> in the file system.  If <destination> is
12666     not specified, copy it into a file with the same name as <source>.
12667
12668'geoswrite <source>'
12669     Write GOES Convert file <source> from the file system on a disk
12670     image.
12671
12672'geosextract <source>'
12673     Extract all the files to the file system and GEOS Convert them.
12674
12675'help [<command>]'
12676     Explain specified command.  If no command is specified, list
12677     available ones.
12678
12679'info [<unit>]'
12680     Display information about unit 'unit' (if unspecified, use the
12681     current one).
12682
12683'list [<pattern>]'
12684'dir [<pattern>]'
12685     List files matching 'pattern' (default is all files).
12686
12687'name <diskname>[,<id>] <unit>'
12688     Change image name.
12689
12690'p00save <enable> [<unit>]'
12691     Save P00 files to the file system.
12692
12693'quit'
12694     Exit (same as 'exit').
12695
12696'read <source> [<destination>]'
12697     Read 'source' from the disk image and copy it into 'destination' in
12698     the file system.  If 'destination' is not specified, copy it into a
12699     file with the same name as 'source'.",
12700
12701'rename <oldname> <newname>'
12702     Rename 'oldname' into 'newname'.  The files must be on the same
12703     drive.
12704
12705'show [copying | warranty]'
12706     Show conditions for redistributing copies of C1541 ('copying') or
12707     the various kinds of warranty you do not have with C1541
12708     ('warranty').
12709
12710'tape <t64name> [<file1> ... <fileN>]'
12711     Extract files from a T64 image.
12712
12713'unit <number>'
12714     Make unit 'number' the current unit.
12715
12716'unlynx <lynxname> [<unit>]'
12717     Extract the specified Lynx image file into the specified unit
12718     (default is the current unit).
12719
12720'validate [<unit>]'
12721     Validate the disk in unit 'unit'.  If 'unit' is not specified,
12722     validate the disk in the current unit.
12723
12724'verbose ["off"]'
12725     Enable or disable verbose output.
12726
12727'version'
12728     Show C1541 version string
12729
12730'write <source> [<destination>]'
12731     Write 'source' from the file system into 'destination' on a disk
12732     image.
12733
12734'zcreate <x64name> <zipname> [<label,id>]'
12735     Create an X64 disk image out of a set of four Zipcoded files named
12736     '1!zipname', '2!zipname', '3!zipname' and '4!zipname'.
12737
12738
12739File: vice.info,  Node: c1541 executing shell commands,  Prev: c1541 commands and options,  Up: c1541
12740
1274113.4 Executing shell commands
12742=============================
12743
12744If you want to execute a shell command from within 'c1541', just prepend
12745it with an exclamation mark ('!').  For example,
12746
12747     !ls -la
12748
12749will execute the command 'ls -la', which will show you all the files in
12750the current directory.
12751
1275213.5 c1541 examples
12753===================
12754
12755'c1541 -attach test.d64 -list'
12756     Attach 'test.d64' and show directory.
12757
12758'c1541 -attach test.d64 -write test.prg testfile'
12759     Write 'test.prg' to 'test.d64' as 'testfile'.
12760
12761'c1541 -format "name,id" d64 disk.d64'
12762     Create a disk image in 'd64' format, format it with the 'name' and
12763     'id' and save it to 'disk.d64'.
12764
1276514 cartconv
12766***********
12767
12768The cartconv program is a cartridge conversion utility, it can convert
12769between binary and .crt images and it can 'insert' binary and/or .crt
12770images into the EPROM type of cartridges.
12771
1277214.1 cartconv command line options
12773==================================
12774
12775The cartconv program has the following parameters:
12776
12777'-i "input name"'
12778     This parameter is mandatory, it should contain the name of the
12779     binary/.crt file you want to convert.  For the EPROM type of
12780     cartridges this parameter can be used multiple times to insert
12781     images into the resulting file.
12782'-o "output name"'
12783     This parameter is mandatory, it should contain the name of the
12784     binary/.crt file you want to convert the input file to.
12785'-t carttype'
12786     This parameter is optional.  It is only needed when converting to a
12787     .crt file.  See below for the supported cartridge types.
12788'-n "cart name"'
12789     This parameter is optional and is used as the cartridge name when
12790     creating a .crt file.
12791'-l loadaddress'
12792     This parameter is optional and is used as the load-address when
12793     converting a .crt file to a .prg file, or when converting to a
12794     generic type .crt file.
12795'-f "input name"'
12796     This parameter is optional, and is meant to output information
12797     about the named file.  It can't be used in conjuction with any of
12798     the other parameters.
12799'-r'
12800     This parameter is optional, it enables repair mode (accept broken
12801     input files)
12802'-p'
12803     This parameter is optional, when it is given cartconv will accept
12804     input files that do not match the cartridge sizes (useful for
12805     development).
12806'-b'
12807     This parameter is optional, when it is given cartconv will not omit
12808     banks that are empty (filled with $ff).
12809'-q'
12810     This parameter is optional, it disables all non-error messages
12811'--types'
12812     This parameter is optional.  It shows all supported cartridge types
12813     (see below).
12814'--version'
12815     Show cartconv version string and exit
12816
12817The following cartridge types are supported:
12818
12819'bin'
12820     Binary .bin file (Default crt->bin)
12821'normal'
12822     Generic 8kB/12kB/16kB .crt file (Default bin->crt)
12823'prg'
12824     Binary C64 .prg file with load-address
12825'ulti'
12826     Ultimax mode 4kB/8kB/16kB .crt file
12827'ap'
12828     Atomic Power .crt file
12829'ar2'
12830     Action Replay MK2 .crt file
12831'ar3'
12832     Action Replay MK3 .crt file
12833'ar4'
12834     Action Replay MK4 .crt file
12835'ar5'
12836     Action Replay V5 .crt file
12837'cap'
12838     Capture .crt file
12839'comal'
12840     Comal 80 .crt file
12841'dep256'
12842     Dela EP256 .crt file, extra files can be inserted (1)(2)
12843'dep64'
12844     Dela EP64 .crt file, extra files can be inserted (1)
12845'dep7x8'
12846     Dela EP7x8 .crt file, extra files can be inserted (1)(2)(3)
12847'din'
12848     Dinamic .crt file
12849'dsm'
12850     Diashow-Maker .crt file
12851'easy'
12852     EasyFlash .crt file
12853'ecr'
12854     Easy Calc Result .crt file
12855'epyx'
12856     Epyx FastLoad .crt file
12857'exos'
12858     EXOS .crt file
12859'expert'
12860     Expert Cartridge .crt file
12861'f64'
12862     Formel 64 .crt file
12863'fc1'
12864     The Final Cartridge .crt file
12865'fc3'
12866     The Final Cartridge III .crt file
12867'fcp'
12868     Final Cartridge Plus .crt file
12869'ff'
12870     Freeze Frame .crt file
12871'fm'
12872     Freeze Machine .crt file
12873'fp'
12874     Fun Play .crt file
12875'gk'
12876     Game Killer .crt file
12877'gmod2'
12878     GMod2 .crt file
12879'gs'
12880     C64 Games System .crt file
12881'ide64'
12882     IDE64 .crt file
12883'ieee'
12884     IEEE-488 Interface .crt file
12885'kcs'
12886     KCS Power Cartridge .crt file
12887'ks'
12888     Kingsoft .crt file
12889'mach5'
12890     MACH 5 .crt file
12891'md'
12892     Magic Desk .crt file
12893'mf'
12894     Magic Formel .crt file
12895'mikro'
12896     Mikro Assembler .crt file
12897'mmc64'
12898     MMC64 .crt file
12899'mmcr'
12900     MMC Replay .crt file
12901'mv'
12902     Magic Voice .crt file
12903'ocean'
12904     Ocean .crt file
12905'p64'
12906     Prophet64 .crt file
12907'pf'
12908     Pagefox .crt file
12909'rep256'
12910     REX 256k EPROM Cart .crt file, extra files can be inserted
12911     (1)(2)(3)
12912'rgcd'
12913     RGCD .crt file
12914'ross'
12915     ROSS .crt file
12916'rr'
12917     Retro Replay .crt file
12918'rrnet'
12919     RR-Net MK3 .crt file
12920'ru'
12921     REX Utility .crt file
12922's64'
12923     Snapshot 64 .crt file
12924'sb'
12925     Structured BASIC .crt file
12926'se5'
12927     Super Explode V5.0 .crt file
12928'sg'
12929     Super Games .crt file
12930'silver'
12931     Silverrock 128K Cartridge .crt file
12932'simon'
12933     Simons' BASIC .crt file
12934'ss4'
12935     Super Snapshot V4 .crt file
12936'ss5'
12937     Super Snapshot V5 .crt file
12938'star'
12939     Stardos .crt file
12940'wl'
12941     Westermann Learning .crt file
12942'ws'
12943     Warp Speed .crt file
12944'zaxxon'
12945     Zaxxon .crt file
12946
12947   * (1) insertion of 32kB EPROM files supported.
12948   * (2) insertion of 8kB .crt/binary files supported.
12949   * (3) insertion of 16kB .crt/binary files supported.
12950
1295114.2 cartconv examples
12952======================
12953
12954'cartconv -i foo.crt -o foo.bin'
12955     Convert a .crt file to a binary file with no load-address.
12956'cartconv -t prg -i foo.crt -o foo.prg'
12957     Convert a .crt file to a .prg file with default load-address.
12958'cartconv -t prg -l 49152 -i foo.crt -o foo.prg'
12959     Convert a .crt file to a .prg file with 49152 as the load-address.
12960'cartconv -t ocean -i foo.bin -o foo.crt'
12961     Convert a binary file to an ocean type cartridge.
12962'cartconv -t dep64 -i dep64.bin -i eprom.prg -o foo.crt'
12963     Inserting a 32kB EPROM file into an dep64 type cartridge.
12964        * step 1 : use the dep64 binary file in VICE as a generic 8kB
12965          cartridge.
12966        * step 2 : generate an EPROM file.
12967        * step 3 : get the EPROM file to the host computer.
12968        * step 4 : insert the EPROM file into the final dep64 .crt file:
12969'cartconv -t dep256 -i dep256.bin -i somegame.crt -o foo.crt'
12970     Insert an 8kB .crt file into a dep256 type cartridge.
12971'cartconv -t rep256 -i rep256.bin -i foo1.crt -i foo2.crt -i foo3.crt -o foo.crt'
12972     Insert multiple 8kB .crt files into a rep256 type cartridge.
12973'cartconv -f foo.crt'
12974     Get information about a .crt file.
12975
1297615 petcat
12977*********
12978
12979The petcat program is a text conversion utility, it can convert between
12980ASCII, PETSCII and tokenized BASIC.
12981
1298215.1 petcat command line options
12983================================
12984
12985'-help'
12986     Output help text
12987'-?'
12988     Same as above
12989'-version'
12990     show petcat version string and exit
12991'-v'
12992     verbose output
12993'-c'
12994     controls (interpret also control codes) (default if textmode)
12995'-nc'
12996     no controls (suppress control codes in printout) (default if
12997     non-textmode)
12998'-qc'
12999     convert all non alphanumeric characters inside quotes into
13000     controlcodes
13001'-ic'
13002     interpret control codes case-insensitive
13003'-d'
13004     output raw codes in decimal
13005'-h'
13006     write header (default if output is stdout)
13007'-nh'
13008     no header (default if output is a file)
13009'-skip <n>'
13010     Skip <n> bytes in the beginning of input file.  Ignored on P00.
13011'-text'
13012     Force text mode
13013'-<version>'
13014     use keywords for <version> instead of the v7.0 ones
13015'-w<version>'
13016     tokenize using keywords on specified Basic version.
13017'-k<version>'
13018     list all keywords for the specified Basic version
13019'-k'
13020     list all Basic versions available.
13021'-l'
13022     Specify load address for program (in hex, no loading chars!).
13023'-o <name>'
13024     Specify the output file name
13025'-f'
13026     Force overwritten the output file.  The default depends on the
13027     BASIC version.
13028
13029BASIC Versions:
13030'10'
13031     Basic v10.0 (C65/C64DX)
13032'1p'
13033     Basic v1.0 (PET)
13034'2'
13035     Basic v2.0 (C64/VIC20/PET)
13036'3'
13037     Basic v3.5 (C16)
13038'40'
13039     Basic v4.0 (PET/CBM2)
13040'4e'
13041     Basic v2.0 with Basic v4.0 extension (C64)
13042'4v'
13043     Basic v2.0 with Basic v4.0 extension (VIC20)
13044'5'
13045     Basic v2.0 with Basic v5.0 extension (VIC20)
13046'70'
13047     Basic v7.0 (C128)
13048'71'
13049     Basic v7.0 with Basic v7.1 extension (C128)
13050'a'
13051     Basic v2.0 with AtBasic (C64)
13052'bk'
13053     Basic v2.0 with Kipper Basic (C64)
13054'blarg'
13055     Basic v2.0 with Blarg (C64)
13056'bob'
13057     Basic v2.0 with Basic on Bails (C64)
13058'bsx'
13059     Basic v2.0 with Basex (C64)
13060'bwarsaw'
13061     Basic v2.0 with Warsaw Basic (C64)
13062'bws'
13063     Basic v2.0 with WS Basic (C64)
13064'bwsf'
13065     Basic v2.0 with WS Basic final (C64)
13066'drago'
13067     Basic v2.0 with Drago basic v2.2 (C64)
13068'easy'
13069     Basic v2.0 with Easy Basic (VIC20)
13070'eve'
13071     Basic v2.0 with Eve Basic (C64)
13072'exp20'
13073     Basic v2.0 with Expanded Basic (VIC20)
13074'exp64'
13075     Basic v2.0 with Expanded Basic (C64)
13076'f'
13077     Basic v2.0 with Final Cartridge III (C64)
13078'game'
13079     Basic v2.0 with Game Basic (C64)
13080'graph'
13081     Basic v2.0 with Graphics basic (C64)
13082'lightning'
13083     Basic v2.0 with Basic Lightning (C64)
13084'magic'
13085     Basic v2.0 with Magic Basic (C64)
13086'mighty'
13087     Basic v2.0 with Mighty Basic by Craig Bruce (VIC20)
13088'pegasus'
13089     Basic v2.0 with Pegasus Basic v4.0 (C64)
13090'reu'
13091     Basic v2.0 with REU-Basic (C64)
13092'simon'
13093     Basic v2.0 with Simons' Basic extension (C64)
13094'speech'
13095     Basic v2.0 with Speech Basic v2.7 (C64)
13096'superbas'
13097     Basic v2.0 with Super Basic (C64)
13098'superexp'
13099     Basic v2.0 with Super Expander (VIC20)
13100'supergra'
13101     Basic v2.0 with Supergrafik 64 (C64)
13102'sxc'
13103     Basic v2.0 with Super Expander Chip (C64)
13104'tt64'
13105     Basic v2.0 with The Tool 64 (C64)
13106'turtle'
13107     Basic v2.0 with Turtle Basic by Craig Bruce (VIC20)
13108'ultra'
13109     Basic v2.0 with Ultrabasic-64 (C64)
13110'xbasic'
13111     Basic v2.0 with Xbasic (C64)
13112
1311315.2 petcat examples
13114====================
13115
13116'petcat -2 -o outputfile.txt -- inputfile.prg'
13117     De-tokenize, Convert inputfile.prg to a text file in
13118     outputfile.txt, using BASIC V2 only
13119'petcat -wsimon -o outputfile.prg -- inputfile.txt'
13120     Tokenize, Convert inputfile.txt to a PRG file in outputfile.prg,
13121     using Simons' BASIC
13122'petcat -text -o outputfile.txt -- inputfile.seq'
13123     Convert inputfile.seq to a Ascii text file in outputfile.txt.
13124'petcat -text -w2 -o outputfile.seq -- inputfile.txt'
13125     Convert inputfile.txt to a Petscii text SEQ file in outputfile.seq.
13126
13127
13128File: vice.info,  Node: File formats,  Next: Acknowledgments,  Prev: c1541,  Up: Top
13129
1313016 The emulator file formats
13131****************************
13132
13133This chapter gives a technical description of the various files
13134supported by the emulators.
13135
13136* Menu:
13137
13138* T64::                         The tape image format
13139* G64::                         The GCR-encoded disk image format
13140* D64::                         The D64 disk image format
13141* D71::                         The D71 disk image format
13142* D80::                         The D80 disk image format
13143* D81::                         The D81 disk image format
13144* D82::                         The D82 disk image format
13145* X64::                         The X64 disk image format
13146* P00::                         The P00 image format
13147
13148
13149File: vice.info,  Node: T64,  Next: G64,  Prev: File formats,  Up: File formats
13150
1315116.1 The T64 tape image format
13152==============================
13153
13154(This section was taken from the C64S distribution.)
13155
13156The 'T64' File Structure was developed by Miha Peternel for use in the
13157C64S emulator.  It is easy to use and allows future extensions.
13158
13159* Menu:
13160
13161* T64 file structure::
13162* T64 tape record::
13163* T64 file record::
13164
13165
13166File: vice.info,  Node: T64 file structure,  Next: T64 tape record,  Prev: T64,  Up: T64
13167
1316816.1.1 T64 File structure
13169-------------------------
13170
13171Offset                 Size                   Description
131720                      64                     tape record
1317364                     32*n                   file records for n
13174                                              directory entries
1317564+32*n                varies                 binary contents of the
13176                                              files
13177
13178
13179File: vice.info,  Node: T64 tape record,  Next: T64 file record,  Prev: T64 file structure,  Up: T64
13180
1318116.1.2 Tape Record
13182------------------
13183
13184Offset                 Size                   Description
131850                      32                     DOS tape description + EOF
13186                                              (for type)
1318732                     2                      tape version ($0200)
1318834                     2                      number of directory entries
1318936                     2                      number of used entries (can
13190                                              be 0 in my loader)
1319138                     2                      free
1319240                     24                     user description as
13193                                              displayed in tape menu
13194
13195
13196File: vice.info,  Node: T64 file record,  Prev: T64 tape record,  Up: T64
13197
1319816.1.3 File record
13199------------------
13200
13201Offset                 Size                   Description
132020                      1                      entry type (see below)
132031                      1                      C64 file type
132042                      2                      start address
132054                      2                      end address
132066                      2                      free
132078                      4                      offset of file contents
13208                                              start within T64 file
1320912                     4                      free
1321016                     16                     C64 file name
13211
13212Valid entry types are:
13213
13214Code                   Explanation
13215'0'                    free entry
13216'1'                    normal tape file
13217'2'                    tape file with header: header is saved just
13218                       before file data
13219'3'                    memory snapshot v0.9, uncompressed
13220'4'                    tape block
13221'5'                    digitized stream
13222'6' ... '255'          reserved
13223
13224Notes:
13225
13226   * VICE only supports file type '1'.
13227   * Types '3', '4' and '5' are subject to change (and are rarely used).
13228
13229
13230File: vice.info,  Node: G64,  Next: D64,  Prev: T64,  Up: File formats
13231
1323216.2 The G64 GCR-encoded disk image format
13233==========================================
13234
1323516.2.1 The original format
13236--------------------------
13237
13238(This section was contributed by Peter Schepers and slightly edited by
13239Ettore Perazzoli.)
13240
13241This format was defined in 1998 as a cooperative effort between several
13242emulator people, mainly Per H�kan Sundell, author of the CCS64 C64
13243emulator, Andreas Boose of the VICE CBM emulator team and Joe
13244Forster/STA, the author of Star Commander.  It was the first real public
13245attempt to create a format for the emulator community which removed
13246almost all of the drawbacks of the other existing image formats, namely
13247'D64'.
13248
13249The intention behind 'G64' is not to replace the widely used 'D64'
13250format, as 'D64' works fine with the vast majority of disks in
13251existence.  It is intended for those small percentage of programs which
13252demand to work with the 1541 drive in a non-standard way, such as
13253reading or writing data in a custom format.  The best example is with
13254speeder software such as Action Cartridge in Warp Save mode or Vorpal
13255which write track/sector data in another format other than standard GCR.
13256The other obvious example is copy-protected software which looks for
13257some specific data on a track, like the disk ID, which is not stored in
13258a standard 'D64' image.
13259
13260'G64' has a deceptively simply layout for what it is capable of doing.
13261We have a signature, version byte, some predefined size values, and a
13262series of offsets to the track data and speed zones.  It is what's
13263contained in the track data areas and speed zones which is really at the
13264heart of this format.
13265
13266Each track entry in simply the raw stream of GCR data, just what a read
13267head would see when a diskette is rotating past it.  How the data gets
13268interpreted is up to the program trying to access the disk.  Because the
13269data is stored in such a low-level manner, just about anything can be
13270done.  Most of the time I would suspect the data in the track would be
13271standard sectors, with SYNC, GAP, header, data and checksums.  The
13272arrangement of the data when it is in a standard GCR sector layout is
13273beyond the scope of this document.
13274
13275Since it is a flexible format in both track count and track byte size,
13276there is no "standard" file size.  However, given a few constants like
1327742 tracks and halftracks, a track size of 7928 bytes and no speed offset
13278entries, the typical file size will a minimum of 333744 bytes.
13279
13280Below is a dump of the header, broken down into its various parts.
13281After that will be an explanation of the track offset and speed zone
13282offset areas, as they demand much more explanation.
13283
13284     Addr  00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F
13285     ----  -----------------------------------------------
13286     0000: 47 43 52 2D 31 35 34 31 00 54 F8 1E .. .. .. ..
13287
13288Offset         Description
13289$0000-0007     File signature ('GCR-1541')
13290$0008          'G64' version (presently only $00 defined)
13291$0009          Number of tracks in image (usually $54, decimal 84)
13292$000A-000B     Size of each stored track in bytes (usually 7928, or
13293               $1EF8) in LO/HI format.
13294
13295An obvious question here is "why are there 84 tracks defined when a
13296normal 'D64' disk only has 35 tracks?"  Well, by definition, this image
13297includes all half-tracks, so there are actually 42 tracks and 42 half
13298tracks.  The 1541 stepper motor can access up to 42 tracks and the
13299in-between half-tracks.  Even though using more than 35 tracks is not
13300typical, it was important to define this format from the start with what
13301the 1541 is capable of doing, and not just what it typically does.
13302
13303At first, the defined track size value of 7928 bytes may seem to be
13304arbitrary, but it is not.  It is determined by the fastest write speed
13305possible (speed zone 0), coupled with the average rotation speed of the
13306disk (300 rpm).  After some math, the answer that actually comes up is
133077692 bytes.  Why the discrepency between the actual size of 7692 and the
13308defined size of 7928?  Simply put, not all drives rotate at 300 rpm.
13309Some can be faster or slower, so a upper safety margin of +3% was built
13310added, in case some disks rotate slower and can write more data.  After
13311applying this safety factor, and some rounding-up, 7928 bytes per track
13312was arrived at.
13313
13314Also note that this upper limit of 7928 bytes per track really only
13315applies to 1541 and compatible disks.  If this format were applied to
13316another disk type like the SFD1001, this value would be higher.
13317
13318Below is a dump of the first section of a 'G64' file, showing the
13319offsets to the data portion for each track and half-track entry.
13320Following that is a dump of the speed zone offsets.
13321
13322     Addr  00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F
13323     ----  -----------------------------------------------
13324     0000: .. .. .. .. .. .. .. .. .. .. .. .. AC 02 00 00
13325     0010: 00 00 00 00 A6 21 00 00 00 00 00 00 A0 40 00 00
13326     0020: 00 00 00 00 9A 5F 00 00 00 00 00 00 94 7E 00 00
13327     0030: 00 00 00 00 8E 9D 00 00 00 00 00 00 88 BC 00 00
13328     0040: 00 00 00 00 82 DB 00 00 00 00 00 00 7C FA 00 00
13329     0050: 00 00 00 00 76 19 01 00 00 00 00 00 70 38 01 00
13330     0060: 00 00 00 00 6A 57 01 00 00 00 00 00 64 76 01 00
13331     0070: 00 00 00 00 5E 95 01 00 00 00 00 00 58 B4 01 00
13332     0080: 00 00 00 00 52 D3 01 00 00 00 00 00 4C F2 01 00
13333     0090: 00 00 00 00 46 11 02 00 00 00 00 00 40 30 02 00
13334     00A0: 00 00 00 00 3A 4F 02 00 00 00 00 00 34 6E 02 00
13335     00B0: 00 00 00 00 2E 8D 02 00 00 00 00 00 28 AC 02 00
13336     00C0: 00 00 00 00 22 CB 02 00 00 00 00 00 1C EA 02 00
13337     00D0: 00 00 00 00 16 09 03 00 00 00 00 00 10 28 03 00
13338     00E0: 00 00 00 00 0A 47 03 00 00 00 00 00 04 66 03 00
13339     00F0: 00 00 00 00 FE 84 03 00 00 00 00 00 F8 A3 03 00
13340     0100: 00 00 00 00 F2 C2 03 00 00 00 00 00 EC E1 03 00
13341     0110: 00 00 00 00 E6 00 04 00 00 00 00 00 E0 1F 04 00
13342     0120: 00 00 00 00 DA 3E 04 00 00 00 00 00 D4 5D 04 00
13343     0130: 00 00 00 00 CE 7C 04 00 00 00 00 00 C8 9B 04 00
13344     0140: 00 00 00 00 C2 BA 04 00 00 00 00 00 BC D9 04 00
13345     0150: 00 00 00 00 B6 F8 04 00 00 00 00 00 .. .. .. ..
13346
13347Offset         Description
13348$000C-000F     Offset to stored track 1.0 ($000002AC, in LO/HI format,
13349               see below for more)
13350$0010-0013     Offset to stored track 1.5 ($00000000)
13351$0014-0017     Offset to stored track 2.0 ($000021A6)
13352...
13353$0154-0157     Offset to stored track 42.0 ($0004F8B6)
13354$0158-015B     Offset to stored track 42.5 ($00000000)
13355
13356           00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F
13357           -----------------------------------------------
13358     0150: .. .. .. .. .. .. .. .. .. .. .. .. 03 00 00 00
13359     0160: 00 00 00 00 03 00 00 00 00 00 00 00 03 00 00 00
13360     0170: 00 00 00 00 03 00 00 00 00 00 00 00 03 00 00 00
13361     0180: 00 00 00 00 03 00 00 00 00 00 00 00 03 00 00 00
13362     0190: 00 00 00 00 03 00 00 00 00 00 00 00 03 00 00 00
13363     01A0: 00 00 00 00 03 00 00 00 00 00 00 00 03 00 00 00
13364     01B0: 00 00 00 00 03 00 00 00 00 00 00 00 03 00 00 00
13365     01C0: 00 00 00 00 03 00 00 00 00 00 00 00 03 00 00 00
13366     01D0: 00 00 00 00 03 00 00 00 00 00 00 00 03 00 00 00
13367     01E0: 00 00 00 00 02 00 00 00 00 00 00 00 02 00 00 00
13368     01F0: 00 00 00 00 02 00 00 00 00 00 00 00 02 00 00 00
13369     0200: 00 00 00 00 02 00 00 00 00 00 00 00 02 00 00 00
13370     0210: 00 00 00 00 02 00 00 00 00 00 00 00 01 00 00 00
13371     0220: 00 00 00 00 01 00 00 00 00 00 00 00 01 00 00 00
13372     0230: 00 00 00 00 01 00 00 00 00 00 00 00 01 00 00 00
13373     0240: 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00
13374     0250: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
13375     0260: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
13376     0270: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
13377     0280: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
13378     0290: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
13379     02A0: 00 00 00 00 00 00 00 00 00 00 00 00 .. .. .. ..
13380
13381Offset         Description
13382$015C-015F     Speed zone entry for track 1 ($03, in LO/HI format, see
13383               below for more)
13384$0160-0163     Speed zone entry for track 1.5 ($03)
13385...
13386$02A4-02A7     Speed zone entry for track 42 ($00)
13387$02A8-02AB     Speed zone entry for track 42.5 ($00)
13388
13389Starting here at $02AC is the first track entry (from above, it is the
13390first entry for track 1.0)
13391
13392The track offsets (from above) require some explanation.  When one is
13393set to all 0's, no track data exists for this entry.  If there is a
13394value, it is an absolute reference into the file (starting from the
13395beginning of the file).  From the track 1.0 entry we see it is set for
13396$000002AC. Going to that file offset, here is what we see...
13397
13398           00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F
13399           -----------------------------------------------
13400     02A0: .. .. .. .. .. .. .. .. .. .. .. .. 0C 1E FF FF
13401     02B0: FF FF FF 52 54 B5 29 4B 7A 5E 95 55 55 55 55 55
13402     02C0: 55 55 55 55 55 55 FF FF FF FF FF 55 D4 A5 29 4A
13403     02D0: 52 94 A5 29 4A 52 94 A5 29 4A 52 94 A5 29 4A 52
13404
13405Offset         Description
13406$02AC-02AD     Actual size of stored track (7692 or $1E0C, in LO/HI
13407               format)
13408$02AE-02AE+$1E0CTrack data
13409
13410Following the track data is filler bytes.  In this case, there are 368
13411bytes of unused space.  This space can contain anything, but for the
13412sake of those wishing to compress these images for storage, they should
13413all be set to the same value.  In the sample I used, these are all set
13414to $FF.
13415
13416Below is a dump of the end of the track 1.0 data area.  Note the actual
13417track data ends at address $20B9, with the rest of the block being
13418unused, and set to $FF.
13419
13420           00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F
13421           -----------------------------------------------
13422     1FE0: 52 94 A5 29 4A 52 94 A5 29 4A 52 94 A5 29 4A 52
13423     1FF0: 94 A5 29 4A 52 94 A5 29 4A 52 94 A5 29 4A 52 94
13424     2000: A5 29 4A 52 94 A5 29 4A 52 94 A5 29 4A 52 94 A5
13425     2010: 29 4A 52 94 A5 29 4A 52 94 A5 29 4A 52 94 A5 29
13426     2020: 4A 52 94 A5 29 4A 52 94 A5 29 4A 52 94 A5 29 4A
13427     2030: 55 55 55 55 55 55 FF FF FF FF FF FF FF FF FF FF
13428     2040: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
13429     2050: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
13430     2060: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
13431     2070: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
13432     2080: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
13433     2090: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
13434     20A0: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
13435     20B0: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
13436     20C0: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
13437     20D0: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
13438     20E0: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
13439     20F0: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
13440     2100: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
13441     2110: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
13442     2120: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
13443     2130: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
13444     2140: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
13445     2150: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
13446     2160: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
13447     2170: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
13448     2180: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
13449     2190: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
13450     21A0: FF FF FF FF FF FF .. .. .. .. .. .. .. .. .. ..
13451
13452The speed offset entries can be a little more complex.  The 1541 has
13453four speed zones defined, which means the drive can write data at four
13454distinct speeds.  On a normal 1541 disk, these zones are as follows:
13455
13456Track Range                          Speed Zone
134571-17                                 3 (highest writing speed)
1345818-24                                2
1345925-30                                1
1346031 and up                            0 (lowest writing speed)
13461
13462Note that you can, through custom programming of the 1541, change the
13463speed zone of any track to something different (change the 3 to a 0) and
13464write data differently.  From the dump of the speed offset entries
13465above, we see that all the entries are in the range of 0-3.  If any
13466entry is less than 4, this is not considered a speed offset but defines
13467the whole track to be recorded at that one speed.
13468
13469In the example I had, there were no offsets defined, so no speed zone
13470dump can be shown.  However, I can define what should be there.  You
13471will have a block of data, 1982 bytes long.  Each byte is encoded to
13472represent the speed of 4 bytes in the track offset area, and is broken
13473down as follows:
13474
13475     Speed entry $FF:  in binary %11111111
13476                                  |'|'|'|'
13477                                  | | | |
13478                                  | | | +- 4'th byte speed (binary 11, 3 dec)
13479                                  | | +--- 3'rd byte speed (binary 11, 3 dec)
13480                                  | +----- 2'nd byte speed (binary 11, 3 dec)
13481                                  +------- 1'st byte speed (binary 11, 3 dec)
13482
13483It was very smart thinking to allow for two speed zone settings, one in
13484the offset block and another defining the speed on a per-byte basis.  If
13485you are working with a normal disk, where each track is one constant
13486speed, then you don't need the extra blocks of information hanging
13487around the image, wasting space.
13488
13489What may not be obvious is the flexibility of this format to add tracks
13490and speed offset zones at will.  If a program decides to write a track
13491out with varying speeds, and no speed offset exist, a new block will be
13492created by appending it to the end of the image, and the offset pointer
13493for that track set to point to the new block.  If a track has no offset
13494yet, meaning it doesn't exist (like a half-track), and one needs to be
13495added, the same procedure applies.  The location of the actual track or
13496speed zone data is not important, meaning they do not have to be in any
13497particular order since they are all referenced by the offsets at the
13498beginning of the image.
13499
1350016.2.2 An extension for double sided disks (Commodore VIC 1571)
13501---------------------------------------------------------------
13502
13503Given that a Commodore VIC 1541/1570/1571 can read/write at most 42
13504tracks per side, it is quite natural to use the half-tracks from 1 to 84
13505for the first side and the following 84 half-tracks (i.  e.  halg.track
1350685 to 168) for the second size.
13507
13508In order for this to work, byte 9 of the image (i.  e.  the maximum
13509number of tracks) usually contains 168 for double sided disks.
13510
13511To make identifying such images easy, the fiel signature in the first 8
13512bytes of such files will be 'GCR-1571').
13513
1351416.3 The P64 NRZI flux pulse disk image format
13515==============================================
13516
13517This section is taken from "P64 file format specification" by Benjamin
13518'BeRo' Rosseaux.
13519
13520All values are in little endian order !
13521
1352216.3.1 P64 Header Layout
13523------------------------
13524
13525             0   1   2   3   4   5   6   7   8   9   A   B   C   D   E   F
13526           +---------------------------------------------------------------+
13527     0000: |'P'|'6'|'4'|'-'|'1'|'5'|'4'|'1'|    Version    |     Flags     |
13528           +---------------+---------------+-------------------------------+
13529     0010: |     Size      | CRC32Checksum |
13530           +-------------------------------+
13531
13532Version: File format version, current is 0x00000000
13533
13534Size Size of the following whole chunk content stream
13535
13536Flags: Bit 0 = Write protect Bit 1 = Number of sides (0 for single
13537sided, 1 for double sided) Bit 2-31 = Reserved, all set to 0 when
13538creating a file, preserve existing value when updating
13539
13540CRC32CheckSum: CRC32 checksum of the following whole chunk content
13541stream
13542
1354316.3.2 P64 Chunk Header Layout
13544------------------------------
13545
13546             0   1   2   3   4   5   6   7   8   9   A   B   C   D   E   F
13547           +-----------------------------------------------+
13548     0000: |Chunk Signature|      Size     | CRC32Checksum |
13549           +-----------------------------------------------+
13550
13551Chunk signature: Signature of chunk
13552
13553Size: Size of the chunk data
13554
13555CRC32CheckSum: CRC32 checksum of the chunk data
13556
1355716.3.3 P64 Chunk 'HTPx' Layout
13558------------------------------
13559
13560| x = half track index byte | +------------------+ Bit 7 of the half
13561track index byte contains the side.
13562
13563Track 18 = Half track 36 = Half track index byte decimal value 36
13564
13565Half track NRZI transition flux pulse data chunk block
13566
13567             0   1   2   3   4   5   6   7   8   9   A   B   C   D   E   F
13568           +---------------------------------------------------------------+
13569     0000: |  Count pulses |     Size      | ..... Range-encoded data .... |
13570           +---------------------------------------------------------------+
13571
13572Count pulses: Count of the NRZI transition flux pulses in half track
13573
13574Size: Size of the range-encoded data
13575
1357616.3.4 'HTPx' Range encoded data format
13577---------------------------------------
13578
13579Hint: For a working C implememtation see p64.c and p64.h
13580
13581The range coder is a FPAQ0-style range coder combined with 12-bit
135820-order models, one model per byte with one bit per byte processing.
13583
13584      +--------------------------------------------------------------------------+
13585      |   Sub stream     | Count of models |  Size per model  | Total value bits |
13586      +------------------+-----------------+------------------+------------------+
13587      |     Position     |        4        |      65536       |        32        |
13588      +------------------+-----------------+------------------+------------------+
13589      |     Strength     |        4        |      65536       |        32        |
13590      +------------------+-----------------+------------------+------------------+
13591      |   Position flag  |        1        |        2         |        1         |
13592      +------------------+-----------------+------------------+------------------+
13593      |   Strenth flag   |        1        |        2         |        1         |
13594      +------------------+-----------------+------------------+------------------+
13595      +===Total models===|        10       |==================|==================|
13596      +--------------------------------------------------------------------------+
13597
13598All initial model state values are initialized with zero.
13599
13600All initial model probability values are initialized with 2048.
13601
13602These model probability values will be updating in a adaptive way on the
13603fly and not precalculated before the encoding and even not loaded before
13604the decoding, see pseudo code below.
13605
1360616000000 Hz / 5 rotations per second at 300 RPM = maximal 3200000 flux
13607pulses
13608
13609So NRZI transition flux pulse positions are in the 0 ..  3199999 value
13610range, which is also a exact single rotation, where each time unit is a
13611cycle at 16 MHz with 300 RPM as a mapping for the ideal case.
13612
13613The NRZI transition flux pulse stength are in the 0x00000000 ..
136140xffffffff value range, where 0xffffffff indices a strong flux pulse,
13615that always triggers, and 0x00000001 indices a weak flux pulse, that
13616almost never triggers, and 0x00000000 indices a flux pulse, that
13617absolutly never triggers.
13618
13619For 32-bit values, the model sub streams are subdivided byte wide in a
13620little-endian manner, and each byte is processed bitwise with model
13621probability shifting of 4 bits, just as:
13622
13623Pascal-Style pseudo code:
13624     procedure WriteDWord(Model, Value : longword);
13625     var ByteValue, ByteIndex, Context, Bit : longword;
13626     begin
13627       for ByteIndex := 0 to 3 do begin
13628         ByteValue := (Value shr (ByteIndex shl 3)) and $ff;
13629         Context := 1;
13630         for Bit := 7 downto 0 do begin
13631           Context := (Context shl 1) or RangeCoderEncodeBit(
13632                         RangeCoderProbabilities[
13633                          RangeCoderProbabilityOffsets[Model + ByteIndex] +
13634                          (((RangeCoderProbabilityStates[Model + ByteIndex]
13635                          shl 8) or Context) and $ffff)], 4, (ByteValue shr
13636                          Bit) and 1);
13637         end;
13638         RangeCoderProbabilityStates[Model+ByteIndex] := ByteValue;
13639       end;
13640     end;
13641
13642And for 1-bit flag values it is much simpler, but also with model
13643probability shifting of 4 bits, just as:
13644
13645Pascal-Style pseudo code:
13646     procedure WriteBit(Model, Value : longword);
13647     begin
13648        RangeCoderProbabilityStates[Model] :=
13649          RangeCoderEncodeBit(RangeCoderProbabilities[
13650            RangeCoderProbabilityOffsets[Model] +
13651              RangeCoderProbabilityStates[Model]], 4, Value and 1);
13652     end;
13653
13654The position and strength values are delta-encoded.  If a value is equal
13655to the last previous value, then the value will not encoded, instead, a
13656flag for this will encoded.  First the position value will encoded, then
13657the stength value.  If the last position delta is 0, then it is a track
13658stream end marker.
13659
13660Pascal-Style pseudo code:
13661     LastPosition := 0;
13662     PreviousDeltaPosition := 0
13663
13664     LastStrength := 0;
13665
13666     for PulseIndex := 0 to PulseCount - 1 do begin
13667
13668       DeltaPosition := Pulses[PulseIndex].Position - LastPosition;
13669       if PreviousDeltaPosition <> DeltaPosition then begin
13670         PreviousDeltaPosition := DeltaPosition;
13671         WriteBit(ModelPositionFlag, 1)
13672         WriteDWord(ModelPosition, DeltaPosition);
13673       end else begin
13674         WriteBit(ModelPositionFlag, 0);
13675       end;
13676       LastPosition := Pulses[PulseIndex].Position;
13677
13678       if LastStrength <> Pulses[PulseIndex].Strength then begin
13679         WriteBit(ModelStrengthFlag, 1)
13680         WriteDWord(ModelStrength, Pulses[PulseIndex].Strength - LastStrength);
13681       end else begin
13682         WriteBit(ModelStrengthFlag, 0);
13683       end;
13684       LastStrength := Pulses^[PulseIndex].Strength;
13685
13686     end;
13687
13688     // End code
13689     WriteBit(ModelPositionFlag, 1);
13690     WriteDWord(ModelPosition, 0);
13691
13692The decoding is simply just in the another direction way.
13693
13694Pseudo code for a FPAQ0-style carryless range coder:
13695
13696Pascal-Style pseudo code:
13697     procedure RangeCoderInit; // At encoding and decoding start
13698     begin
13699       RangeCode := 0;
13700       RangeLow := 0;
13701       RangeHigh := $ffffffff;
13702     end;
13703
13704     procedure RangeCoderStart; // At decoding start
13705     var Counter : longword;
13706     begin
13707       for Counter := 1 to 4 do begin
13708        RangeCode := (RangeCode shl 8) or ReadByteFromInput;
13709       end;
13710     end;
13711
13712     procedure RangeCoderFlush; // At encoding end
13713     var Counter : longword;
13714     begin
13715       for Counter := 1 to 4 do begin
13716         WriteByteToOutput(RangeHigh shr 24);
13717         RangeHigh := RangeHigh shl 8;
13718       end;
13719     end;
13720
13721     procedure RangeCoderEncodeNormalize;
13722     begin
13723       while ((RangeLow xor RangeHigh) and $ff000000) = 0 do begin
13724        WriteByteToOutput(RangeHigh shr 24);
13725        RangeLow := RangeLow shl 8;
13726        RangeHigh := (RangeHigh shl 8) or $ff;
13727       end;
13728     end;
13729
13730     function RangeCoderEncodeBit(var Probability : longword; Shift,
13731                                  BitValue : longword) : longword;
13732     begin
13733       RangeMiddle := RangeLow + (((RangeHigh - RangeLow) shr 12) *
13734                                   Probability);
13735       if BitValue <> 0 then begin
13736         inc(Probability, ($fff - Probability) shr Shift);
13737         RangeHigh := RangeMiddle;
13738       end else begin
13739         dec(Probability, Probability shr Shift);
13740         RangeLow := RangeMiddle + 1;
13741       end;
13742       RangeCoderEncodeNormalize;
13743       result := BitValue;
13744     end;
13745
13746     procedure RangeCoderDecodeNormalize;
13747     begin
13748       while ((RangeLow xor RangeHigh) and $ff000000) = 0 do begin
13749         RangeLow := RangeLow shl 8;
13750         RangeHigh := (RangeHigh shl 8) or $ff;
13751         RangeCode := (RangeCode shl 8) or ReadByteFromInput;
13752       end;
13753     end;
13754
13755     function RangeCoderDecodeBit(var Probability : longword;
13756                                  Shift : longword) : longword;
13757     begin
13758       RangeMiddle := RangeLow + (((RangeHigh - RangeLow) shr 12) *
13759                                  Probability);
13760       if RangeCode <= RangeMiddle then begin
13761         inc(Probability, ($fff - Probability) shr Shift);
13762         RangeHigh := RangeMiddle;
13763         result := 1;
13764       end else begin
13765         dec(Probability, Probability shr Shift);
13766         RangeLow := RangeMiddle + 1;
13767         result := 0;
13768       end;
13769       RangeCoderDecodeNormalize;
13770     end;
13771
13772The probability may be never zero!  But that can't happen here with this
13773adaptive model in this P64 file format, since the adaptive model uses a
13774shift factor of 4 bits and initial probabilities value of 2048, so the
13775probability has a value range from 15 up to 4080 here.  If you do want
13776to use the above range coder routines for other stuff with other
13777probability models, then you must to ensure that the probability output
13778value is never zero, for example with "probability |= (probability < 1);
13779" in C.
13780
1378116.3.5 P64 Chunk 'DONE' Layout
13782------------------------------
13783
13784This is the last empty chunk for to signalize that the correct file end
13785is reached.
13786
13787
13788File: vice.info,  Node: D64,  Next: X64,  Prev: G64,  Up: File formats
13789
1379016.4 The D64 disk image format
13791==============================
13792
13793(This section was contributed by Peter Schepers and slightly edited by
13794Marco van den Heuvel.  Added 42 track info by groepaz)
13795
13796First and foremost we have D64, which is basically a sector-for-sector
13797copy of a 1540/1541 disk.  There are several versions of these which I
13798will cover shortly.  The standard D64 is a 174848 byte file comprised of
13799256 byte sectors arranged in 35 tracks with a varying number of sectors
13800per track for a total of 683 sectors.  Track counting starts at 1, not
138010, and goes up to 35.  Sector counting starts at 0, not 1, for the first
13802sector, therefore a track with 21 sectors will go from 0 to 20.
13803
13804The original media (a 5.25" disk) has the tracks laid out in circles,
13805with track 1 on the very outside of the disk (closest to the sides) to
13806track 35 being on the inside of the disk (closest to the inner hub
13807ring).  Commodore, in their infinite wisdom, varied the number of
13808sectors per track and data densities across the disk to optimize
13809available storage, resulting in the chart below.  It shows the
13810sectors/track for a standard D64.  Since the outside diameter of a
13811circle is the largest (versus closer to the center), the outside tracks
13812have the largest amount of storage.
13813
13814Track                    Sectors/track            # Sectors
138151-17                     21                       357
1381618-24                    19                       133
1381725-30                    18                       108
1381831-35                    17                       85
1381936-40(*)                 17                       85
1382041-42(*)                 17                       34
13821
13822Track              #Sect              #SectorsIn         D64 Offset
138231                  21                 0                  $00000
138242                  21                 21                 $01500
138253                  21                 42                 $02A00
138264                  21                 63                 $03F00
138275                  21                 84                 $05400
138286                  21                 105                $06900
138297                  21                 126                $07E00
138308                  21                 147                $09300
138319                  21                 168                $0A800
1383210                 21                 189                $0BD00
1383311                 21                 210                $0D200
1383412                 21                 231                $0E700
1383513                 21                 252                $0FC00
1383614                 21                 273                $11100
1383715                 21                 294                $12600
1383816                 21                 315                $13B00
1383917                 21                 336                $15000
1384018                 19                 357                $16500
1384119                 19                 376                $17800
1384220                 19                 395                $18B00
1384321                 19                 414                $19E00
1384422                 19                 433                $1B100
1384523                 19                 452                $1C400
1384624                 19                 471                $1D700
1384725                 18                 490                $1EA00
1384826                 18                 508                $1FC00
1384927                 18                 526                $20E00
1385028                 18                 544                $22000
1385129                 18                 562                $23200
1385230                 18                 580                $24400
1385331                 17                 598                $25600
1385432                 17                 615                $26700
1385533                 17                 632                $27800
1385634                 17                 649                $28900
1385735                 17                 666                $29A00
1385836(*)              17                 683                $2AB00
1385937(*)              17                 700                $2BC00
1386038(*)              17                 717                $2CD00
1386139(*)              17                 734                $2DE00
1386240(*)              17                 751                $2EF00
1386341(*)              17                 768                $30000
1386442(*)              17                 785                $31100
13865
13866(*) Tracks 36-40 apply to 40- and 42-track images only.  (*) Tracks
1386741-42 apply to 42-track images only.
13868
13869The directory track should be contained totally on track 18.  Sectors
138701-18 contain the entries and sector 0 contains the BAM (Block
13871Availability Map) and disk name/ID. Since the directory is only 18
13872sectors large (19 less one for the BAM), and each sector can contain
13873only 8 entries (32 bytes per entry), the maximum number of directory
13874entries is 18 * 8 = 144.  The first directory sector is always 18/1,
13875even though the t/s pointer at 18/0 (first two bytes) might point
13876somewhere else.  It then follows the same chain structure as a normal
13877file, using a sector interleave of 3.  This makes the chain links go
1387818/1, 18/4, 18/7 etc.
13879
13880Note that you can extend the directory off of track 18, but only when
13881reading the disk or image.  Attempting to write to a directory sector
13882not on track 18 will cause directory corruption.  Each directory sector
13883has the following layout (18/1 partial dump):
13884
13885      00: 12 04 81 11 00 4E 41 4D 45 53 20 26 20 50 4F 53 <- notice the T/S link
13886      10: 49 54 A0 A0 A0 00 00 00 00 00 00 00 00 00 15 00 <- to 18/4 ($12/$04)
13887      20: 00 00 84 11 02 41 44 44 49 54 49 4F 4E 41 4C 20 <- and how its not here
13888      30: 49 4E 46 4F A0 11 0C FE 00 00 00 00 00 00 61 01 <- ($00/$00)
13889
13890The first two bytes of the sector ($12/$04) indicate the location of the
13891next track/sector of the directory (18/4).  If the track is set to $00,
13892then it is the last sector of the directory.  It is possible, however
13893unlikely, that the directory may *not* be competely on track 18 (some
13894disks do exist like this).  Just follow the chain anyhow.
13895
13896When the directory is done, the track value will be $00.  The sector
13897link should contain a value of $FF, meaning the whole sector is
13898allocated, but the actual value doesn't matter.  The drive will return
13899all the available entries anyways.
13900
13901This is a breakdown of a standard directory sector:
13902
13903Bytes          Description
13904$00-$1F        First directory entry
13905$20-$3F        Second dir entry
13906$40-$5F        Third dir entry
13907$60-$7F        Fourth dir entry
13908$80-$9F        Fifth dir entry
13909$A0-$BF        Sixth dir entry
13910$C0-$DF        Seventh dir entry
13911$E0-$FF        Eighth dir entry
13912
13913This is a breakdown of a standard directory entry:
13914
13915Bytes          Description
13916$00-$01        Track/Sector location of next directory sector ($00 $00
13917               if not the first entry in the sector)
13918$02            File type
13919$03-$04        Track/sector location of first sector of file
13920$05-$14        16 character filename (in PETASCII, padded with $A0)
13921$15-$16        Track/Sector location of first side-sector block (REL
13922               file only)
13923$17            REL file record length (REL file only, max.  value 254)
13924$18-$1D        Unused (except with GEOS disks)
13925$1E-$1F        File size in sectors, low/high byte order ($1E+$1F*256).
13926               The approx.  filesize in bytes is <= #sectors * 254
13927
13928The file type field is used as follows:
13929
13930Bits           Description
139310-3            The actual file type
139324              Unused
139335              Used only during SAVE-@ replacement
139346              Locked flag (Set produces ">" locked files)
139357              Closed flag (Not set produces "*", or "splat" files)
13936
13937The actual file type can be one of the following:
13938
13939Binary         Decimal        File type
139400000           0              DEL
139410001           1              SEQ
139420010           2              PRG
139430011           3              USR
139440100           4              REL
13945
13946Values 5-15 are illegal, but if used will produce very strange results.
13947The 1541 is inconsistent in how it treats these bits.  Some routines use
13948all 4 bits, others ignore bit 3, resulting in values from 0-7.
13949
13950Files, on a standard 1541, are stored using an interleave of 10.
13951Assuming a starting track/sector of 17/0, the chain would run 17/0,
1395217/10, 17/20, 17/8, 17/18, etc.
13953
1395416.4.1 Non-Standard & Long Directories
13955--------------------------------------
13956
13957Most Commdore floppy disk drives use a single dedicated directory track
13958where all filenames are stored.  This limits the number of files stored
13959on a disk based on the number of sectors on the directory track.  There
13960are some disk images that contain more files than would normally be
13961allowed.  This requires extending the directory off the default
13962directory track by changing the last directory sector pointer to a new
13963track, allocating the new sectors in the BAM, and manually placing (or
13964moving existing) file entries there.  The directory of an extended disk
13965can be read and the files that reside there can be loaded without
13966problems on a real drive.  However, this is still a very dangerous
13967practice as writing to the extended portion of the directory will cause
13968directory corruption in the non-extended part.  Many of the floppy
13969drives core ROM routines ignore the track value that the directory is on
13970and assume the default directory track for operations.
13971
13972To explain: assume that the directory has been extended from track 18 to
13973track 19/6 and that the directory is full except for a few slots on
1397419/6.  When saving a new file, the drive DOS will find an empty file
13975slot at 19/6 offset $40 and correctly write the filename and a few other
13976things into this slot.  When the file is done being saved the final file
13977information will be written to 18/6 offset $40 instead of 19/6 causing
13978some directory corruption to the entry at 18/6.  Also, the BAM entries
13979for the sectors occupied by the new file will not be saved and the new
13980file will be left as a SPLAT (*) file.
13981
13982Attempts to validate the disk will result in those files residing off
13983the directory track to not be allocated in the BAM, and could also send
13984the drive into an endless loop.  The default directory track is assumed
13985for all sector reads when validating so if the directory goes to 19/6,
13986then the validate code will read 18/6 instead.  If 18/6 is part of the
13987normal directory chain then the validate routine will loop endlessly.
13988
1398916.4.2 BAM layout
13990-----------------
13991
13992The layout of the BAM area (sector 18/0) is a bit more complicated...
13993
13994          00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F
13995          -----------------------------------------------
13996      00: 12 01 41 00 12 FF F9 17 15 FF FF 1F 15 FF FF 1F
13997      10: 15 FF FF 1F 12 FF F9 17 00 00 00 00 00 00 00 00
13998      20: 00 00 00 00 0E FF 74 03 15 FF FF 1F 15 FF FF 1F
13999      30: 0E 3F FC 11 07 E1 80 01 15 FF FF 1F 15 FF FF 1F
14000      40: 15 FF FF 1F 15 FF FF 1F 0D C0 FF 07 13 FF FF 07
14001      50: 13 FF FF 07 11 FF CF 07 13 FF FF 07 12 7F FF 07
14002      60: 13 FF FF 07 0A 75 55 01 00 00 00 00 00 00 00 00
14003      70: 00 00 00 00 00 00 00 00 01 08 00 00 03 02 48 00
14004      80: 11 FF FF 01 11 FF FF 01 11 FF FF 01 11 FF FF 01
14005      90: 53 48 41 52 45 57 41 52 45 20 31 20 20 A0 A0 A0
14006      A0: A0 A0 56 54 A0 32 41 A0 A0 A0 A0 00 00 00 00 00
14007      B0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
14008      C0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
14009      D0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
14010      E0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
14011      F0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
14012
14013Bytes          Description
14014$00-$01        Track/Sector location of the first directory sector
14015               (should be set to 18/1 but it doesn't matter, and don't
14016               trust what is there, always go to 18/1 for first
14017               directory entry)
14018$02            Disk DOS version type (see note below) $41 ("A")
14019$03            Unused
14020$04-$8F        BAM entries for each track, in groups of four bytes per
14021               track, starting on track 1 (see below for more details)
14022$90-$9F        Disk Name (padded with $A0)
14023$A0-$A1        Filled with $A0
14024$A2-$A3        Disk ID
14025$A4            Usually $A0
14026$A5-$A6        DOS type, usually "2A"
14027$A7-$AA        Filled with $A0
14028$AB            Unused ($00)
14029$AC-$BF        For DOLPHIN DOS track 36-40 BAM entries, otherwise
14030               unused ($00)
14031$C0-$D3        For SPEED DOS track 36-40 BAM entries, otherwise unused
14032               ($00)
14033$D4-$FF
14034Unused ($00)
14035
14036Note: The BAM entries for SPEED, DOLPHIN and ProLogic DOS use the same
14037layout as standard BAM entries.  One of the interesting things from the
14038BAM sector is the byte at offset $02, the DOS version byte.  If it is
14039set to anything other than $41 or $00, then we have what is called "soft
14040write protection".  Any attempt to write to the disk will return the
14041"DOS Version" error code 73 ,"CBM DOS V 2.6 1541".  The 1541 is simply
14042telling you that it thinks the disk format version is incorrect.  This
14043message will normally come up when you first turn on the 1541 and read
14044the error channel.  If you write a $00 or a $41 into 1541 memory
14045location $00FF (for device 0), then you can circumvent this type of
14046write-protection, and change the DOS version back to what it should be.
14047
14048The BAM entries require a bit (no pun intended) more of a breakdown.
14049Take the first entry at bytes $04-$07 ($12 $FF $F9 $17).  The first byte
14050($12) is the number of free sectors on that track.  Since we are looking
14051at the track 1 entry, this means it has 18 (decimal) free sectors.  The
14052next three bytes represent the bitmap of which sectors are used/free.
14053Since it is 3 bytes (8 bits/byte) we have 24 bits of storage.  Remember
14054that at most, each track only has 21 sectors, so there are a few unused
14055bits.
14056
14057Bytes          Data                          Description
14058$04-$07        $12 $FF $F9 $17               Track 1 BAM
14059$08-$0B        $15 $FF $FF $FF               Track 2 BAM
14060$0C-$0F        $15 $FF $FF $1F               Track 3 BAM
14061...            ...                           ...
14062$8C-$8F        $11 $FF $FF $01               Track 35 BAM
14063
14064These entries must be viewed in binary to make any sense.  We will use
14065the first entry (track 1) at bytes 04-07:
14066
14067      FF=11111111, F9=11111001, 17=00010111
14068
14069In order to make any sense from the binary notation, flip the bits
14070around.
14071
14072                 111111 11112222
14073      01234567 89012345 67890123
14074      --------------------------
14075      11111111 10011111 11101000
14076      ^                     ^
14077      sector 0           sector 20
14078
14079Since we are on the first track, we have 21 sectors, and only use up to
14080the bit 20 position.  If a bit is on (1), the sector is free.
14081Therefore, track 1 has sectors 9, 10 and 19 used, all the rest are free.
14082Any leftover bits that refer to sectors that don't exist, like bits
1408321-23 in the above example, are set to allocated.
14084
14085Each filetype has its own unique properties, but most follow one simple
14086structure.  The first file sector is pointed to by the directory and
14087follows a t/s chain, until the track value reaches $00.  When this
14088happens, the value in the sector link location indicates how much of the
14089sector is used.  For example, the following chain indicates a file 6
14090sectors long, and ends when we encounter the $00/$34 chain.  At this
14091point the last sector occupies from bytes $02-$34.
14092
140931            2            3            4            5            6
14094---          ---          ---          ---          ---          ---
1409517/0         17/10        17/20        17/1         17/11        0/52
14096(11/00)      (11/0A)      (11/14)      (11/01)      (11/0B)      (0/34)
14097
1409816.4.3 Variations on the D64 layout
14099-----------------------------------
14100
14101These are some variations of the D64 layout:
14102
141031.  Standard 35 track layout but with 683 error bytes added on to the
14104end of the file.  Each byte of the error info corresponds to a single
14105sector stored in the D64, indicating if the sector on the original disk
14106contained an error.  The first byte is for track 1/0, and the last byte
14107is for track 35/16.
14108
141092.  A 40 track layout, following the same layout as a 35 track disk, but
14110with 5 extra tracks.  These contain 17 sectors each, like tracks 31-35.
14111Some of the PC utilities do allow you to create and work with these
14112files.  This can also have error bytes attached like variant #1.
14113
141143.  A 42 track layout, with two extra tracks of 17 sectors each.  This
14115is extremely uncommon, since real drives often have problems with
14116accessing these tracks, software that uses them is very rare.
14117
141184.  The Commodore 128 allowed for "auto-boot" disks.  With this, t/s 1/0
14119holds a specific byte sequence which the computer recognizes as boot
14120code.
14121
14122Below is a small chart detailing the standard file sizes of D64 images,
1412335, 40 or 42 tracks, with or without error bytes.
14124
14125Disk type                            Size
1412635 track, no errors                  174848
1412735 track, 683 error bytes            175531
1412840 track, no errors                  196608
1412940 track, 768 error bytes            197376
1413042 track, no errors                  205312
1413142 track, 802 error bytes            206114
14132
14133The following table (provided by Wolfgang Moser) outlines the
14134differences between the standard 1541 DOS and the various "speeder"
14135DOS's that exist.  The 'header 7/8' category is the 'fill bytes' as the
14136end of the sector header of a real 1541 disk.
14137
14138Disk format                          tracks  header  Dos     Diskdos vs.
14139                                             7/8     type    type
14140Original CBM DOS v2.6                35      $0f     "2A"    $41/'A'
14141                                             $0f
14142*SpeedDOS+                           40      $0f     "2A"    $41/'A'
14143                                             $0f
14144Professional DOS Initial             35      $0f     "2A"    $41/'A'
14145                                             $0f
14146Professional DOS Version             40      $0f     "2A"    $41/'A'
141471/Prototype                                  $0f
14148ProfDOS Release                      40      $0f     "4A"    $41/'A'
14149                                             $0f
14150Dolphin-DOS 2.0/3.0                  35      $0f     "2A"    $41/'A'
14151                                             $0f
14152Dolphin-DOS 2.0/3.0                  40      $0d     "2A"    $41/'A'
14153                                             $0f
14154PrologicDOS 1541                     35      $0f     "2A"    $41/'A'
14155                                             $0f
14156PrologicDOS 1541                     40      $0f     "2P"    $50/'P'
14157                                             $0f
14158ProSpeed 1571 2.0                    35      $0f     "2A"    $41/'A'
14159                                             $0f
14160ProSpeed 1571 2.0                    40      $0f     "2P"    $50/'P'
14161                                             $0f
14162
14163*Note: There are also clones of SpeedDOS that exist, such as RoloDOS and
14164DigiDOS. Both are just a change of the DOS startup string.
14165
14166The location of the extra BAM information in sector 18/0, for 40 track
14167images, will be different depending on what standard the disks have been
14168formatted with.  SPEED DOS stores them from $C0 to $D3, DOLPHIN DOS
14169stores them from $AC to $BF and PrologicDOS stored them right after the
14170existing BAM entries from $90-A3.  PrologicDOS also moves the disk label
14171and ID forward from the standard location of $90 to $A4.  64COPY and
14172Star Commander let you select from several different types of extended
14173disk formats you want to create/work with.
14174
14175All three of the speeder DOS's mentioned above don't alter the standard
14176sector interleave of 10 for files and 3 for directories.  The reason is
14177that they use a memory cache installed in the drive which reads the
14178entire track in one pass.  This alleviates the need for custom
14179interleave values.  They do seem to alter the algorithm that finds the
14180next available free sector so that the interleave value can deviate from
1418110 under certain circumstances, but I don't know why they would bother.
14182
14183Below is a HEX dump of a Speed DOS BAM sector.  Note the location of the
14184extra BAM info from $C0-D3.
14185
14186            00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F
14187            -----------------------------------------------
14188      0070: 12 FF FF 03 12 FF FF 03 12 FF FF 03 11 FF FF 01
14189      0080: 11 FF FF 01 11 FF FF 01 11 FF FF 01 11 FF FF 01
14190      0090: A0 A0 A0 A0 A0 A0 A0 A0 A0 A0 A0 A0 A0 A0 A0 A0
14191      00A0: A0 A0 30 30 A0 32 41 A0 A0 A0 A0 00 00 00 00 00
14192      00B0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
14193      00C0: 11 FF FF 01 11 FF FF 01 11 FF FF 01 11 FF FF 01
14194      00D0: 11 FF FF 01 00 00 00 00 00 00 00 00 00 00 00 00
14195
14196Below is a HEX dump of a Dolphin DOS BAM sector.  Note the location of
14197the extra BAM info from $AC-BF.
14198
14199            00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F
14200            -----------------------------------------------
14201      0070: 12 FF FF 03 12 FF FF 03 12 FF FF 03 11 FF FF 01
14202      0080: 11 FF FF 01 11 FF FF 01 11 FF FF 01 11 FF FF 01
14203      0090: A0 A0 A0 A0 A0 A0 A0 A0 A0 A0 A0 A0 A0 A0 A0 A0
14204      00A0: A0 A0 30 30 A0 32 41 A0 A0 A0 A0 00 11 FF FF 01
14205      00B0: 11 FF FF 01 11 FF FF 01 11 FF FF 01 11 FF FF 01
14206      00C0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
14207      00D0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
14208
14209Below is a HEX dump of a PrologicDOS BAM sector.  Note that the disk
14210name and ID are now located at $A4 instead of starting at $90.
14211
14212            00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F
14213            -----------------------------------------------
14214      0070: 12 FF FF 03 12 FF FF 03 12 FF FF 03 11 FF FF 01
14215      0080: 11 FF FF 01 11 FF FF 01 11 FF FF 01 11 FF FF 01
14216      0090: 11 FF FF 01 11 FF FF 01 11 FF FF 01 11 FF FF 01
14217      00A0: 11 FF FF 01 A0 A0 A0 A0 A0 A0 A0 A0 A0 A0 A0 A0
14218      00B0: A0 A0 A0 A0 A0 A0 30 30 A0 32 50 A0 A0 A0 A0 00
14219      00C0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
14220      00D0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
14221
1422216.4.4 Error codes
14223------------------
14224
14225Here is the meaning of the error bytes added onto the end of any
14226extended D64.  The CODE is the same as that generated by the 1541 drive
14227controller... it reports these numbers, not the error code we usually
14228see when an error occurs.
14229
14230Some of what comes below is taken from Immers/Neufeld book "Inside
14231Commodore DOS". Note the descriptions are not completely accurate as to
14232what the drive DOS is actually doing to seek/read/decode/write sectors,
14233but serve as simple examples only.  The "type" field is where the error
14234usually occurs, whether it's searching for any SYNC mark, any header ID,
14235any valid header, or reading a sector.
14236
14237Code           Error          Type           D64            Description
14238$01            00             N/A            *              No error.
14239$02            20             Seek           *              Header block
14240                                                            not found /
14241                                                            Header
14242                                                            descriptor
14243                                                            byte not
14244                                                            found
14245$03            21             Seek           *              No SYNC
14246                                                            sequence
14247                                                            found
14248$04            22             Read           *              Data
14249                                                            descriptor
14250                                                            byte not
14251                                                            found
14252$05            23             Read           *              Checksum
14253                                                            error in
14254                                                            data block
14255$06            24             Write                         Write verify
14256                                                            on format
14257                                                            (never
14258                                                            occurs on
14259                                                            1541)
14260$07            25             Write                         Write verify
14261                                                            error
14262$08            26             Write                         Write
14263                                                            protect on
14264$09            27             Seek           *              Checksum
14265                                                            error in
14266                                                            header block
14267$0A            28             Write                         Write error
14268                                                            (never
14269                                                            occurs on
14270                                                            1541)
14271$0B            29             Seek           *              Disk sector
14272                                                            ID mismatch
14273$0F            74             Read                          Drive Not
14274                                                            Ready (no
14275                                                            disk in
14276                                                            drive or no
14277                                                            device 1)
14278
14279Codes $0 and $C to $E are unused and never occur.
14280
14281These first errors are "seek" errors, where the disk controller is
14282simply reading headers and looking at descriptor bytes, checksums,
14283format ID's and reporting what errors it sees.  These errors do *not*
14284necessarily apply to the exact sector being looked for.  This fact makes
14285duplication of these errors very unreliable.
14286
14287Code : $03 Error : 21 Type : Seek Message : No SYNC sequence found.
14288
14289Each sector data block and header block are preceeded by SYNC marks.  If
14290*no* sync sequence is found within 20 milliseconds (only ~1/10 of a disk
14291rotation!)  then this error is generated.  This error used to mean the
14292entire track is bad, but it does not have to be the case.  Only a small
14293area of the track needs to be without a SYNC mark and this error will be
14294generated.
14295
14296Converting this error to a D64 is very problematic because it depends on
14297where the physical head is on the disk when a read attempt is made.  If
14298it is on valid header/sectors then it won't occur.  If it happens over
14299an area without SYNC marks, it will happen.
14300
14301Code : $02 Error : 20 Type : Seek Message : Header descriptor byte not
14302found (HEX $08, GCR $52)
14303
14304Each sector is preceeded by an 8-byte GCR header block, which starts
14305with the value $52 (GCR). If this value is not found after 90 attempts,
14306this error is generated.
14307
14308Basically, what a track has is SYNC marks, and possibly valid data
14309blocks, but no valid header descriptors.
14310
14311Code : $09 Error : 27 Type : Seek Message : Checksum error in header
14312block
14313
14314The header block contains a checksum value, calculated by XOR'ing the
14315TRACK, SECTOR, ID1 and ID2 values.  If this checksum is wrong, this
14316error is generated.
14317
14318Code : $0B Error : 29 Type : Seek Message : Disk sector ID mismatch
14319
14320The ID's from the header block of the currently read sector are compared
14321against the ones from the low-level header of 18/0.  If there is a
14322mismatch, this error is generated.
14323
14324Code : $02 Error : 20 Type : Seek Message : Header block not found
14325
14326This error can be reported again when searching for the correct header
14327block.  An image of the header is built and searched for, but not found
14328after 90 read attempts.  Note the difference from the first occurance.
14329The first one only searches for a valid ID, not the whole header.
14330
14331Note that error 20 occurs twice during this phase.  The first time is
14332when a header ID is being searched for, the second is when the proper
14333header pattern for the sector being searched for is not found.
14334
14335From this point on, all the errors apply to the specific sector you are
14336looking for.  If a read passed all the previous checks, then we are at
14337the sector being searched for.
14338
14339Note that the entire sector is read before these errors are detected.
14340Therefore the data, checksum and off bytes are available.
14341
14342Code : $04 Error : 22 Type : Read Message : Data descriptor byte not
14343found (HEX $07, GCR $55)
14344
14345Each sector data block is preceeded by the value $07, the "data block"
14346descriptor.  If this value is not there, this error is generated.  Each
14347encoded sector has actually 260 bytes.  First is the descriptor byte,
14348then follows the 256 bytes of data, a checksum, and two "off" bytes.
14349
14350Code : $05 Error : 23 Type : Read Message : Checksum error in data block
14351
14352The checksum of the data read of the disk is calculated, and compared
14353against the one stored at the end of the sector.  If there's a
14354discrepancy, this error is generated.
14355
14356Code : $0F Error : 74 Type : Read Message : Drive Not Ready (no disk in
14357drive or no device 1)
14358
14359These errors only apply when writing to a disk.  I don't see the
14360usefulness of having these as they cannot be present when only *reading*
14361a disk.
14362
14363Code : $06 Error : 24 Type : Write Message : Write verify (on format)
14364
14365Code : $07 Error : 25 Type : Write Message : Write verify error
14366
14367Once the GCR-encoded sector is written out, the drive waits for the
14368sector to come around again and verifies the whole 325-byte GCR block.
14369Any errors encountered will generate this error.
14370
14371Code : $08 Error : 26 Type : Write Message : Write protect on
14372
14373Self explanatory.  Remove the write-protect tab, and try again.
14374
14375Code : $0A Error : 28 Type : Write Message : Write error
14376
14377In actual fact, this error never occurs, but it is included for
14378completeness.
14379
14380This is not an error at all, but it gets reported when the read of a
14381sector is ok.
14382
14383Code : $01 Error : 00 Type : N/A Message : No error.
14384
14385Self explanatory.  No errors were detected in the reading and decoding
14386of the sector.
14387
14388The advantage with using the 35 track D64 format, regardless of error
14389bytes, is that it can be converted directly back to a 1541 disk by
14390either using the proper cable and software on the PC, or send it down to
14391the C64 and writing it back to a 1541.  It is the best documented format
14392since it is also native to the C64, with many books explaining the disk
14393layout and the internals of the 1541.
14394
14395
14396File: vice.info,  Node: X64,  Next: D71,  Prev: D64,  Up: File formats
14397
1439816.5 The X64 disk image format
14399==============================
14400
14401(This section was contributed by Peter Schepers and slightly edited by
14402Marco van den Heuvel.)
14403
14404This file type, created by Teemu Rantanen, is used on the X64 emulator
14405(a UNIX-based emulator) which has been superceeded by VICE. Both VICE
14406and X64 support the X64 file standard, with VICE also supporting the
14407regular D64 and T64 files.
14408
14409X64 is not a specific type of file, but rather encompasses *all* known
14410C64 disk types (hard disk, floppies, etc).  An X64 is created by
14411prepending a 64-byte header to an existing image (1541, 1571, etc) and
14412setting specific bytes which describe what type of image follows.  This
14413header has undergone some revision, and this description is based on the
144141.02 version, which was the last known at the time of writing.
14415
14416The most common X64 file you will see is the D64 variety, typically
14417174912 bytes long (174848 for the D64 and 64 bytes for the header,
14418assuming no error bytes are appended).  The header layout (as used in
1441964COPY) is as follows:
14420
14421           00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F
14422           -----------------------------------------------
14423     0000: 43 15 41 64 01 02 01 23 00 00 00 00 00 00 00 00
14424     0010: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
14425     0020: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
14426     0030: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
14427     0040: XX XX XX <- standard C64 image starts here....
14428
14429Bytes          Description
14430$00-$03        This is the "Magic header" ($43 $15 $41 $64)
14431$04            Header version major ($01)
14432$05            Header version minor ($01, now its up to $02)
14433$06            Device type represented
14434$07            Maximum tracks in image (only in version 1.02 or
14435               greater) 1540/41/70: 35 1571: 35 1581: 80 (Logical
14436               single-sided disk)
14437$08            Number of disk sides in image.  This value must be $00
14438               for all 1541 and 1581 formats.  $00=No second side
14439               $01=Second side
14440$09            Error data flag.
14441$0A-$1F        Unused, set to $00
14442$20-$3E        Disk image description (in ASCII or ISO Latin/1)
14443$3F            Always set to $00
14444$40-           Standard C64 file begins here.
14445
14446The device types are:
14447
14448Value          Drive type
14449$00            1540 See note below...
14450$01            1541 (Default)
14451$02            1542
14452$03            1551
14453$04            1570
14454$05            1571
14455$06            1572
14456$08            1581
14457$10            2031 or 4031
14458$11            2040 or 3040
14459$12            2041
14460$18            4040
14461$20            8050
14462$21            8060
14463$22            8061
14464$30            SFD-1001
14465$31            8250
14466$32            8280
14467
14468The first four bytes used for the device type at position $06 ($00 to
14469$03) are functionally the same, and are compatible with older version of
14470X64 files.  Some old X64 files might have $00 for the device type
14471(instead of $01), but it makes no real difference.
14472
14473As most instances of X64 files will be strictly 1541 images, bytes
14474$08-$3F are set to zero, and some versions of the X64 emulator don't use
14475bytes $08-$3F.
14476
14477
14478File: vice.info,  Node: D71,  Next: D81,  Prev: X64,  Up: File formats
14479
1448016.6 The D71 disk image format
14481==============================
14482
14483(This section was contributed by Peter Schepers and slightly edited by
14484Marco van den Heuvel.)
14485
14486Similar to the D64 (1541), the 1571 drive can operate in either
14487single-sided (1541 compatible) mode or double-sided (1571) mode.  In
14488this section I will be dealing with the double-sided mode only.  For the
14489breakdown of the single-sided mode, see the D64 section.
14490
14491The D71 has 70 tracks, double that of the 1541, with a DOS file size of
14492349696 bytes.  If the error byte block (1366 bytes) is attached, this
14493makes the file size 351062 bytes.  The track range and offsets into the
14494D71 files are as follows:
14495
14496Track                                Sec/trk            # Sectors
144971-17 (side 0)                        21                 357
1449818-24 (side 0)                       19                 133
1449925-30 (side 0)                       18                 108
1450031-35 (side 0)                       17                 85
1450136-52 (side 1)                       21                 357
1450253-59 (side 1)                       19                 133
1450360-65 (side 1)                       18                 108
1450466-70 (side 1)                       17                 85
14505
14506Track              #Sect              #SectorsIn         D71 Offset
145071                  21                 0                  $00000
145082                  21                 21                 $01500
145093                  21                 42                 $02A00
145104                  21                 63                 $03F00
145115                  21                 84                 $05400
145126                  21                 105                $06900
145137                  21                 126                $07E00
145148                  21                 147                $09300
145159                  21                 168                $0A800
1451610                 21                 189                $0BD00
1451711                 21                 210                $0D200
1451812                 21                 231                $0E700
1451913                 21                 252                $0FC00
1452014                 21                 273                $11100
1452115                 21                 294                $12600
1452216                 21                 315                $13B00
1452317                 21                 336                $15000
1452418                 19                 357                $16500
1452519                 19                 376                $17800
1452620                 19                 395                $18B00
1452721                 19                 414                $19E00
1452822                 19                 433                $1B100
1452923                 19                 452                $1C400
1453024                 19                 471                $1D700
1453125                 18                 490                $1EA00
1453226                 18                 508                $1FC00
1453327                 18                 526                $20E00
1453428                 18                 544                $22000
1453529                 18                 562                $23200
1453630                 18                 580                $24400
1453731                 17                 598                $25600
1453832                 17                 615                $26700
1453933                 17                 632                $27800
1454034                 17                 649                $28900
1454135                 17                 666                $29A00
1454236                 21                 683                $2AB00
1454337                 21                 704                $2C000
1454438                 21                 725                $2D500
1454539                 21                 746                $2EA00
1454640                 21                 767                $2FF00
1454741                 21                 788                $31400
1454842                 21                 809                $32900
1454943                 21                 830                $33E00
1455044                 21                 851                $35300
1455145                 21                 872                $36800
1455246                 21                 893                $37D00
1455347                 21                 914                $39200
1455448                 21                 935                $3A700
1455549                 21                 956                $3BC00
1455650                 21                 977                $3D100
1455751                 21                 998                $3E600
1455852                 21                 1019               $3FB00
1455953                 19                 1040               $41000
1456054                 19                 1059               $42300
1456155                 19                 1078               $43600
1456256                 19                 1097               $44900
1456357                 19                 1116               $45C00
1456458                 19                 1135               $46F00
1456559                 19                 1154               $48200
1456660                 18                 1173               $49500
1456761                 18                 1191               $4A700
1456862                 18                 1209               $4B900
1456963                 18                 1227               $4CB00
1457064                 18                 1245               $4DD00
1457165                 18                 1263               $4EF00
1457266                 17                 1281               $50100
1457367                 17                 1298               $51200
1457468                 17                 1315               $52300
1457569                 17                 1332               $53400
1457670                 17                 1349               $54500
14577
14578The directory structure is the same as a D64/1541.  All the same
14579filetypes apply, the directory still only holds 144 files per disk and
14580should only exist on track 18.
14581
14582The first two bytes of the sector ($12/$04 or 18/4) indicate the
14583location of the next track/sector of the directory.  If the track value
14584is set to $00, then it is the last sector of the directory.  It is
14585possible, however unlikely, that the directory may *not* be competely on
14586track 18 (some disks do exist like this).  Just follow the chain anyhow.
14587
14588When the directory is done, the track value will be $00.  The sector
14589link should contain a value of $FF, meaning the whole sector is
14590allocated, but the actual value doesn't matter.  The drive will return
14591all the available entries anyways.  This is a breakdown of a standard
14592directory sector and entry:
14593
14594         00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F
14595         -----------------------------------------------
14596     00: 12 04 82 11 00 4A 45 54 20 53 45 54 20 57 49 4C
14597     10: 4C 59 A0 A0 A0 00 00 00 00 00 00 00 00 00 2B 00
14598     20: 00 00 82 0F 01 4A 53 57 20 31 A0 A0 A0 A0 A0 A0
14599     30: A0 A0 A0 A0 A0 00 00 00 00 00 00 00 00 00 BF 00
14600     40: 00 00 82 06 03 53 4F 4E 20 4F 46 20 42 4C 41 47
14601     50: 47 45 52 A0 A0 00 00 00 00 00 00 00 00 00 AE 00
14602     60: 00 00 82 15 0D 50 4F 54 54 59 20 50 49 47 45 4F
14603     70: 4E A0 A0 A0 A0 00 00 00 00 00 00 00 00 00 A2 00
14604     80: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
14605     90: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
14606     A0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
14607     B0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
14608     C0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
14609     D0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
14610     E0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
14611     F0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
14612
14613Bytes          Description
14614$00-$1F        First directory entry
14615$20-$3F        Second dir entry
14616$40-$5F        Third dir entry
14617$60-$7F        Fourth dir entry
14618$80-$9F        Fifth dir entry
14619$A0-$BF        Sixth dir entry
14620$C0-$DF        Seventh dir entry
14621$E0-$FF        Eighth dir entry
14622
14623This is a breakdown of a standard directory entry:
14624
14625Bytes          Description
14626$00-$01        Track/Sector location of next directory sector ($00/$FF
14627               if its the last sector)
14628$02            File type
14629$03-$04        Track/sector location of first sector of file
14630$05-$14        16 character filename (in PETASCII, padded with $A0)
14631$15-$16        Track/Sector location of first side-sector block (REL
14632               file only)
14633$17            REL file record length (REL file only, max.  value 254)
14634$18-$1D        Unused (except with GEOS disks)
14635$1E-$1F        File size in sectors, low/high byte order ($1E+$1F*256).
14636               The approx.  filesize in bytes is <= #sectors * 254
14637
14638The file type field is used as follows:
14639
14640Bits           Description
146410-3            The actual file type
146424              Unused
146435              Used only during SAVE-@ replacement
146446              Locked flag (Set produces ">" locked files)
146457              Closed flag (Not set produces "*", or "splat" files)
14646
14647The actual file type can be one of the following:
14648
14649Binary         Decimal        File type
146500000           0              DEL
146510001           1              SEQ
146520010           2              PRG
146530011           3              USR
146540100           4              REL
14655
14656Values 5-15 are illegal, but if used will produce very strange results.
14657The 1571 is inconsistent in how it treats these bits.  Some routines use
14658all 4 bits, others ignore bit 3, resulting in values from 0-7.
14659
14660When the 1571 is in is native ("1571") mode, files are stored with a
14661sector interleave of 6, rather than 10 which the 1541 (and the 1571 in
14662"1541" mode) uses.  The directory still uses an interleave of 3.
14663
1466416.6.1 Non-Standard & Long Directories
14665--------------------------------------
14666
14667Most Commodore floppy disk drives use a single dedicated directory track
14668where all filenames are stored.  This limits the number of files stored
14669on a disk based on the number of sectors on the directory track.  There
14670are some disk images that contain more files than would normally be
14671allowed.  This requires extending the directory off the default
14672directory track by changing the last directory sector pointer to a new
14673track, allocating the new sectors in the BAM, and manually placing (or
14674moving existing) file entries there.  The directory of an extended disk
14675can be read and the files that reside there can be loaded without
14676problems on a real drive.  However, this is still a very dangerous
14677practice as writing to the extended portion of the directory will cause
14678directory corruption in the non- extended part.  Many of the floppy
14679drives core ROM routines ignore the track value that the directory is on
14680and assume the default directory track for operations.
14681
14682To explain: assume that the directory has been extended from track 18 to
14683track 19/6 and that the directory is full except for a few slots on
1468419/6.  When saving a new file, the drive DOS will find an empty file
14685slot at 19/6 offset $40 and correctly write the filename and a few other
14686things into this slot.  When the file is done being saved the final file
14687information will be written to 18/6 offset $40 instead of 19/6 causing
14688some directory corruption to the entry at 18/6.  Also, the BAM entries
14689for the sectors occupied by the new file will not be saved and the new
14690file will be left as a SPLAT (*) file.
14691
14692Attempts to validate the disk will result in those files residing off
14693the directory track to not be allocated in the BAM, and could also send
14694the drive into an endless loop.  The default directory track is assumed
14695for all sector reads when validating so if the directory goes to 19/6,
14696then the validate code will read 18/6 instead.  If 18/6 is part of the
14697normal directory chain then the validate routine will loop endlessly.
14698
1469916.6.2 Bam layout
14700-----------------
14701
14702The BAM is somewhat different as it now has to take 35 new tracks into
14703account.  In order to do this, most of the extra BAM information is
14704stored on track 53/0, and the remaining sectors on track 53 are marked
14705in the BAM as allocated.  This does mean that except for one allocated
14706sector on track 53, the rest of the track is unused and wasted.  (Track
1470753 is the equivalent to track 18, but on the flip side of the disk).
14708Here is a dump of the first BAM sector...
14709
14710         00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F
14711         -----------------------------------------------
14712     00: 12 01 41 80 12 FF F9 17 15 FF FF 1F 15 FF FF 1F
14713     10: 15 FF FF 1F 15 FF FF 1F 15 FF FF 1F 15 FF FF 1F
14714     20: 15 FF FF 1F 15 FF FF 1F 15 FF FF 1F 15 FF FF 1F
14715     30: 15 FF FF 1F 15 FF FF 1F 15 FF FF 1F 15 FF FF 1F
14716     40: 15 FF FF 1F 15 FF FF 1F 11 FC FF 07 13 FF FF 07
14717     50: 13 FF FF 07 13 FF FF 07 13 FF FF 07 13 FF FF 07
14718     60: 13 FF FF 07 12 FF FF 03 12 FF FF 03 12 FF FF 03
14719     70: 12 FF FF 03 12 FF FF 03 12 FF FF 03 11 FF FF 01
14720     80: 11 FF FF 01 11 FF FF 01 11 FF FF 01 11 FF FF 01
14721     90: A0 A0 A0 A0 A0 A0 A0 A0 A0 A0 A0 A0 A0 A0 A0 A0
14722     A0: A0 A0 30 30 A0 32 41 A0 A0 A0 A0 00 00 00 00 00
14723     B0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
14724     C0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
14725     D0: 00 00 00 00 00 00 00 00 00 00 00 00 00 15 15 15
14726     E0: 15 15 15 15 15 15 15 15 15 15 15 15 15 15 00 13
14727     F0: 13 13 13 13 13 12 12 12 12 12 12 11 11 11 11 11
14728
14729Bytes                                Description
14730$00-$01                              Track/Sector location of the first
14731                                     directory sector (should be set to
14732                                     18/1 but it doesn't matter, and
14733                                     don't trust what is there, always
14734                                     go to 18/1 for first directory
14735                                     entry)
14736$02                                  Disk DOS version type (see note
14737                                     below) $41 ('A') = 1541
14738$03                                  Double-sided flag $00 - Single
14739                                     sided disk $80 - Double sided disk
14740$04-8F                               BAM entries for each track, in
14741                                     groups of four bytes per track,
14742                                     starting on track 1.
14743$90-$9F                              Disk Name (padded with $A0)
14744$A0-$A1                              Filled with $A0
14745$A2-$A3                              Disk ID
14746$A4                                  Usually $A0
14747$A5-$A6                              DOS type, usually "2A"
14748$A7-$AA                              Filled with $A0
14749$AB-$DC                              Not used ($00's)
14750$DD-$FF                              Free sector count for tracks 36-70
14751                                     (1 byte/track).
14752
14753The "free sector" entries for tracks 36-70 are likely included here in
14754the first BAM sector due to some memory restrictions in the 1571 drive.
14755There is only enough memory available for one BAM sector, but in order
14756to generate the "blocks free" value at the end of a directory listing,
14757the drive needs to know the extra track "free sector" values.  It does
14758make working with the BAM a little more difficult, though.
14759
14760These are the values that would normally be with the 4-byte BAM entry,
14761but the rest of the entry is contained on 53/0.
14762
14763Note: If the DOS version byte is set to anything other than $41 or $00,
14764then we have what is called "soft write protection".  Any attempt to
14765write to the disk will return the "DOS Version" error code 73.  The 1571
14766is simply telling you that it thinks the disk format version is
14767incorrect.
14768
14769The BAM entries require some explanation.  Take the first entry at bytes
14770$04-$07 ($12 $FF $F9 $17).  The first byte ($12) is the number of free
14771sectors on that track.  Since we are looking at the track 1 entry, this
14772means it has 18 (decimal) free sectors.
14773
14774The next three bytes represent the bitmap of which sectors are
14775used/free.  Since it is 3 bytes (8 bits/byte) we have 24 bits of
14776storage.  Remember that at most, each track only has 21 sectors, so
14777there are a few unused bits.  These entries must be viewed in binary to
14778make any sense.  We will use the first entry (track 1) at bytes 04-07:
14779
14780      FF=11111111, F9=11111001, 17=00010111
14781
14782In order to make any sense from the binary notation, flip the bits
14783around.
14784
14785                 111111 11112222
14786      01234567 89012345 67890123
14787      --------------------------
14788      11111111 10011111 11101000
14789      ^                     ^
14790      sector 0           sector 20
14791
14792Since we are on the first track, we have 21 sectors, and only use up to
14793the bit 20 position.  If a bit is on (1), the sector is free.
14794Therefore, track 1 has sectors 9,10 and 19 used, all the rest are free.
14795
14796In order to complete the BAM, we must check 53/0.
14797
14798         00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F
14799         -----------------------------------------------
14800     00: FF FF 1F FF FF 1F FF FF 1F FF FF 1F FF FF 1F FF
14801     10: FF 1F FF FF 1F FF FF 1F FF FF 1F FF FF 1F FF FF
14802     20: 1F FF FF 1F FF FF 1F FF FF 1F FF FF 1F FF FF 1F
14803     30: FF FF 1F 00 00 00 FF FF 07 FF FF 07 FF FF 07 FF
14804     40: FF 07 FF FF 07 FF FF 07 FF FF 03 FF FF 03 FF FF
14805     50: 03 FF FF 03 FF FF 03 FF FF 03 FF FF 01 FF FF 01
14806     60: FF FF 01 FF FF 01 FF FF 01 00 00 00 00 00 00 00
14807     70: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
14808     80: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
14809     90: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
14810     A0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
14811     B0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
14812     C0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
14813     D0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
14814     E0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
14815     F0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
14816
14817Each track from 36-70 has 3 byte entries, starting at address $00.
14818
14819     Byte: $00-$02: $FF $FF $1F - BAM map for track 36
14820           $03-$05: $FF $FF $1F - BAM map for track 37
14821           ...
14822           $33-$35: $00 $00 $00 - BAM map for track 53
14823           ...
14824           $66-$68: $FF $FF $01 - BAM map for track 70
14825           $69-$FF:             - Not used
14826
14827You can break down the entries for tracks 36-70 the same way as track 1,
14828just combine the free sector bytes from 18/0 and the BAM usage from 53
14829to get the full 4-byte entry.
14830
14831Just like a D64, you can attach error bytes to the file, for sector
14832error information.  This block is 1366 bytes long, 1 byte for each of
14833the 1366 sectors in the image.  With the error bytes, the file size is
14834351062 bytes.
14835
14836
14837File: vice.info,  Node: D81,  Next: D80,  Prev: D71,  Up: File formats
14838
1483916.7 The D81 disk image format
14840==============================
14841
14842(This section was contributed by Peter Schepers and slightly edited by
14843Marco van den Heuvel.)
14844
14845Like D64 and D71, this is a byte for byte copy of a physical 1581 disk.
14846It consists of 80 tracks, 40 sectors each (0 to 39) for a size of 819200
14847bytes, or 3200 sectors.  If the error byte block is attached, this makes
14848the file size 822400 bytes.
14849
14850There are three sectors on the directory track used for disk internals
14851(header and BAM), leaving 37 sectors for filename entries, thus allowing
14852for 296 files (37 * 8) to be stored at the root level of the disk.
14853
14854The actual physical layout on the disk is quite different from what the
14855user sees, but this is unimportant to the scope of this section.  One
14856important difference from the D64 and D71 is all the sector interleaves
14857are now 1 for both files and directory storage (rather than 3 for
14858directory and 10 for file on a D64/D71).  This is due to the built-in
14859buffering in the 1581.  When reading a sector, the whole track will be
14860buffered in memory, and any sectors being modified will be done in
14861memory.  Once it has to be written, the whole track will be written out
14862in one step.
14863
14864The track range and offsets into the D81 files are as follows:
14865
14866Track              #Sect              #SectorsIn         D81 Offset
148671                  40                 0                  $00000
148682                  40                 40                 $02800
148693                  40                 80                 $05000
148704                  40                 120                $07800
148715                  40                 160                $0A000
148726                  40                 200                $0C800
148737                  40                 240                $0F000
148748                  40                 280                $11800
148759                  40                 320                $14000
1487610                 40                 360                $16800
1487711                 40                 400                $19000
1487812                 40                 440                $1B800
1487913                 40                 480                $1E000
1488014                 40                 520                $20800
1488115                 40                 560                $23000
1488216                 40                 600                $25800
1488317                 40                 640                $28000
1488418                 40                 680                $2A800
1488519                 40                 720                $2D000
1488620                 40                 760                $2F800
1488721                 40                 800                $32000
1488822                 40                 840                $34800
1488923                 40                 880                $37000
1489024                 40                 920                $39800
1489125                 40                 960                $3C000
1489226                 40                 1000               $3E800
1489327                 40                 1040               $41000
1489428                 40                 1080               $43800
1489529                 40                 1120               $46000
1489630                 40                 1160               $48800
1489731                 40                 1200               $4B000
1489832                 40                 1240               $4D800
1489933                 40                 1280               $50000
1490034                 40                 1320               $52800
1490135                 40                 1360               $55000
1490236                 40                 1400               $57800
1490337                 40                 1440               $5A000
1490438                 40                 1480               $5C800
1490539                 40                 1520               $5F000
1490640                 40                 1560               $61800
1490741                 40                 1600               $64000
1490842                 40                 1640               $66800
1490943                 40                 1680               $69000
1491044                 40                 1720               $6B800
1491145                 40                 1760               $6E000
1491246                 40                 1800               $70800
1491347                 40                 1840               $73000
1491448                 40                 1880               $75800
1491549                 40                 1920               $78000
1491650                 40                 1960               $7A800
1491751                 40                 2000               $7D000
1491852                 40                 2040               $7F800
1491953                 40                 2080               $82000
1492054                 40                 2120               $84800
1492155                 40                 2160               $87000
1492256                 40                 2200               $89800
1492357                 40                 2240               $8C000
1492458                 40                 2280               $8E800
1492559                 40                 2320               $91000
1492660                 40                 2360               $93800
1492761                 40                 2400               $96000
1492862                 40                 2440               $98800
1492963                 40                 2480               $9B000
1493064                 40                 2520               $9D800
1493165                 40                 2560               $A0000
1493266                 40                 2600               $A2800
1493367                 40                 2640               $A5000
1493468                 40                 2680               $A7800
1493569                 40                 2720               $AA000
1493670                 40                 2760               $AC800
1493771                 40                 2800               $AF000
1493872                 40                 2840               $B1800
1493973                 40                 2880               $B4000
1494074                 40                 2920               $B6800
1494175                 40                 2960               $B9000
1494276                 40                 3000               $BB800
1494377                 40                 3040               $BE000
1494478                 40                 3080               $C0800
1494579                 40                 3120               $C3000
1494680                 40                 3160               $C5800
14947
14948The header sector is stored at 40/0, and contains the disk name, ID and
14949DOS version bytes, but the BAM is no longer contained here (like the
14950D64).
14951
14952         00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F
14953         -----------------------------------------------
14954     00: 28 03 44 00 31 35 38 31 20 55 54 49 4C 49 54 59
14955     10: 20 56 30 31 A0 A0 47 42 A0 33 44 A0 A0 00 00 00
14956     20: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
14957     30: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
14958     40: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
14959     50: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
14960     60: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
14961     70: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
14962     80: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
14963     90: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
14964     A0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
14965     B0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
14966     C0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
14967     D0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
14968     E0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
14969     F0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
14970
14971Bytes          Description
14972$00-$01        Track/Sector location of the first directory sector
14973               (should be set to 40/3 but it doesn't matter, and don't
14974               trust what is there, always go to 40/3 for first
14975               directory entry)
14976$02            Disk DOS version type (see note below) $44 ('D')=1581
14977$03            $00
14978$04-$13        16 character Disk Name (padded with $A0)
14979$14-$15        $A0
14980$16-$17        Disk ID
14981$18            $A0
14982$19            DOS Version ("3")
14983$1A            Disk version ("D")
14984$1B-$1C        $A0
14985$1D-$FF        Unused (usually $00)
14986
14987The following might be set if the disk is a GEOS format (this info is
14988based on the D64 layout, and might not prove to be true)
14989
14990Bytes          Description
14991$AB-$AC        Border sector (GEOS only, else set to $00)
14992$AD-$BC        GEOS ID string ("geos FORMAT V1.x" GEOS only, else $00)
14993$BD-$FF        Unused (usually $00)
14994
14995Note: If the DOS version byte is changed to anything other than a $44
14996(or $00), then we have what is called "soft write protection".  Any
14997attempt to write to the disk will return the "DOS Version" error code
1499873.  The drive is simply telling you that it thinks the disk format
14999version is incompatible.
15000
15001The directory track should be contained totally on track 40.  Sectors
150023-39 contain the entries and sector 1 and 2 contain the BAM (Block
15003Availability Map).  Sector 0 holds the disk name and ID. The first
15004directory sector is always 40/3, even though the t/s pointer at 40/0
15005(first two bytes) might point somewhere else.  It goes linearly up the
15006sector count, 3-4-5-6-etc.  Each sector holds up to eight entries.
15007
15008The first two bytes of the sector ($28/$04) indicate the location of the
15009next track/sector of the directory (40/4).  If the track is set to $00,
15010then it is the last sector of the directory.  It is possible, however
15011unlikely, that the directory may *not* be competely on track 40.  Just
15012follow the chain anyhow.
15013
15014When the directory is done (track=$00), the sector should contain an
15015$FF, meaning the whole sector is allocated.  Theactual value doesn't
15016matter as all the entries will be returned anyways.  Each directory
15017sector has the following layout:
15018
15019         00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F
15020         -----------------------------------------------
15021     00: 28 04 81 2B 00 53 43 52 45 45 4E 20 20 33 A0 A0
15022     10: A0 A0 A0 A0 A0 00 00 00 00 00 00 00 00 00 02 00
15023     20: 00 00 81 2B 01 53 43 52 45 45 4E 20 20 34 A0 A0
15024     30: A0 A0 A0 A0 A0 00 00 00 00 00 00 00 00 00 03 00
15025     40: 00 00 81 2B 02 53 43 52 45 45 4E 20 20 35 A0 A0
15026     50: A0 A0 A0 A0 A0 00 00 00 00 00 00 00 00 00 07 00
15027     60: 00 00 81 2B 08 53 43 52 45 45 4E 20 20 36 A0 A0
15028     70: A0 A0 A0 A0 A0 00 00 00 00 00 00 00 00 00 08 00
15029     80: 00 00 81 2B 14 53 43 52 45 45 4E 20 20 37 A0 A0
15030     90: A0 A0 A0 A0 A0 00 00 00 00 00 00 00 00 00 07 00
15031     A0: 00 00 81 24 00 53 43 52 45 45 4E 20 20 38 A0 A0
15032     B0: A0 A0 A0 A0 A0 00 00 00 00 00 00 00 00 00 0B 00
15033     C0: 00 00 82 24 04 46 49 4C 45 34 32 39 33 36 39 30
15034     D0: A0 A0 A0 A0 A0 00 00 00 00 00 00 00 00 00 07 00
15035     E0: 00 00 82 24 06 46 49 4C 45 32 35 37 38 38 31 35
15036     F0: A0 A0 A0 A0 A0 00 00 00 00 00 00 00 00 00 05 00
15037
15038Bytes          Description
15039$00-$1F        First directory entry
15040$20-$3F        Second dir entry
15041$40-$5F        Third dir entry
15042$60-$7F        Fourth dir entry
15043$80-$9F        Fifth dir entry
15044$A0-$BF        Sixth dir entry
15045$C0-$DF        Seventh dir entry
15046$E0-$FF        Eighth dir entry
15047
15048This is a breakdown of a standard directory entry:
15049
15050Bytes          Description
15051$00-$01        Track/Sector location of next directory sector
15052$02            File type
15053$03-$04        Track/sector location of first sector of file or
15054               partition
15055$05-$14        16 character filename (in PETASCII, padded with $A0)
15056$15-$16        Track/Sector location of first SUPER SIDE SECTOR block
15057               (REL file only)
15058$17            REL file record length (REL file only)
15059$18-$1B        Unused (except with GEOS disks)
15060$1C-$1D        (Used during an SAVE or OPEN, holds the new t/s link)
15061$1E-$1F        File or partition size in sectors, low/high byte order
15062               ($1E+$1F*256).  The approx.  file size in bytes is <=
15063               #sectors * 254
15064
15065The file type field is used as follows:
15066
15067Bits           Description
150680-3            The actual file type
150694              Unused
150705              Used only during SAVE-@ replacement
150716              Locked flag (Set produces ">" locked files)
150727              Closed flag (Not set produces "*", or "splat" files)
15073
15074The actual file type can be one of the following:
15075
15076Binary         Decimal        File type
150770000           0              DEL
150780001           1              SEQ
150790010           2              PRG
150800011           3              USR
150810100           4              REL
150820101           5              CBM (partition or sub-directory)
15083
15084Values 6-15 are illegal, but if used will produce very strange results.
15085
1508616.7.1 Non-Standard & Long Directories
15087--------------------------------------
15088
15089Most Commdore floppy disk drives use a single dedicated directory track
15090where all filenames are stored.  This limits the number of files stored
15091on a disk based on the number of sectors on the directory track.  There
15092are some disk images that contain more files than would normally be
15093allowed.  This requires extending the directory off the default
15094directory track by changing the last directory sector pointer to a new
15095track, allocating the new sectors in the BAM, and manually placing (or
15096moving existing) file entries there.  The directory of an extended disk
15097can be read and the files that reside there can be loaded without
15098problems on a real drive.  However, this is still a very dangerous
15099practice as writing to the extended portion of the directory will cause
15100directory corruption in the non-extended part.  Many of the floppy
15101drives core ROM routines ignore the track value that the directory is on
15102and assume the default directory track for operations.
15103
1510416.7.2 BAM layout
15105-----------------
15106
15107The BAM is located on 40/1 (for side 0, tracks 1-40) and 40/2 (for side
151081, tracks 41-80).  Each entry takes up six bytes, one for the "free
15109sector" count and five for the allocation bitmap.
15110
15111         00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F
15112         -----------------------------------------------
15113     00: 28 02 44 BB 47 42 C0 00 00 00 00 00 00 00 00 00
15114     10: 28 FF FF FF FF FF 28 FF FF FF FF FF 28 FF FF FF
15115     20: FF FF 28 FF FF FF FF FF 28 FF FF FF FF FF 28 FF
15116     30: FF FF FF FF 28 FF FF FF FF FF 28 FF FF FF FF FF
15117     40: 28 FF FF FF FF FF 28 FF FF FF FF FF 28 FF FF FF
15118     50: FF FF 28 FF FF FF FF FF 28 FF FF FF FF FF 28 FF
15119     60: FF FF FF FF 28 FF FF FF FF FF 28 FF FF FF FF FF
15120     70: 28 FF FF FF FF FF 28 FF FF FF FF FF 28 FF FF FF
15121     80: FF FF 28 FF FF FF FF FF 28 FF FF FF FF FF 28 FF
15122     90: FF FF FF FF 28 FF FF FF FF FF 28 FF FF FF FF FF
15123     A0: 28 FF FF FF FF FF 28 FF FF FF FF FF 28 FF FF FF
15124     B0: FF FF 28 FF FF FF FF FF 28 FF FF FF FF FF 28 FF
15125     C0: FF FF FF FF 28 FF FF FF FF FF 28 FF FF FF FF FF
15126     D0: 28 FF FF FF FF FF 28 FF FF FF FF FF 28 FF FF FF
15127     E0: FF FF 28 FF FF FF FF FF 28 FF FF FF FF FF 28 FF
15128     F0: FF FF FF FF 28 FF FF FF FF FF 24 F0 FF 2D FF FE
15129
15130     Bytes:
15131     $00-$01: Track/sector of next bam sector (40/2)
15132         $02: Version # ('D')
15133         $03: One's complement of version# ($BB)
15134     $04-$05: Disk ID bytes (same as 40/0 Disk ID)
15135         $06: I/O byte
15136              bit 7 set - Verify on
15137              bit 7 clear - Verify off
15138              bit 6 set - Check header CRC
15139              bit 6 clear - Don't check header CRC
15140         $07: Auto-boot-loader flag
15141     $08-$0F: Reserved for future (set to $00)
15142     $10-$15: BAM entry for track 1 (track 41, side 1)
15143     $16-$1B: BAM entry for track 2 (track 42, side 1)
15144              ...
15145     $46-$4B: BAM entry for track 10 (track 50, side 1)
15146              ...
15147     $82-$87: BAM entry for track 20 (track 60, side 1)
15148              ...
15149     $BE-$C3: BAM entry for track 30 (track 70, side 1)
15150              ...
15151     $FA-$FF: BAM entry for track 40 (track 80, side 1)
15152
15153The BAM entries require some explanation, so lets look at the track 40
15154entry at bytes $FA-FF ($24 $F0 $FF $2D $FF $FE). The first byte ($24, or
1515536 decimal) is the number of free sectors on that track.  The next five
15156bytes represent the bitmap of which sectors are used/free.  Since it is
15157five bytes (8 bits/byte) we have 40 bits of storage.  Since this format
15158has 40 sectors/track, the whole five bytes are used.
15159
15160      F0: .. .. .. .. .. .. .. .. .. .. 24 F0 FF 2D FF FE
15161
15162The last five bytes of any BAM entry must be viewed in binary to make
15163any sense.  We will once again use track 40 as our reference:
15164
15165      F0=11110000, FF=11111111, 2D=00101101, FF=11111111, FE=11111110
15166
15167In order to make any sense from the binary notation, flip the bits
15168around.
15169
15170                        111111 11112222 22222233 33333333
15171      Sector 01234567 89012345 67890123 45678901 23456789
15172             -------------------------- -------- --------
15173             00001111 11111111 10110100 11111111 01111111
15174
15175Note that if a bit is on (1), the sector is free.  Therefore, track 40
15176has sectors 0-3, 17, 20, 22, 23 and 32 used, all the rest are free.
15177
15178The second BAM (for side 1) contains the entries for tracks 41-80.
15179
15180         00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F
15181         -----------------------------------------------
15182     00: 00 FF 44 BB 47 42 C0 00 00 00 00 00 00 00 00 00
15183     10: 28 FF FF FF FF FF 28 FF FF FF FF FF 28 FF FF FF
15184     20: FF FF 28 FF FF FF FF FF 28 FF FF FF FF FF 28 FF
15185     30: FF FF FF FF 28 FF FF FF FF FF 28 FF FF FF FF FF
15186     40: 28 FF FF FF FF FF 28 FF FF FF FF FF 28 FF FF FF
15187     50: FF FF 28 FF FF FF FF FF 28 FF FF FF FF FF 28 FF
15188     60: FF FF FF FF 28 FF FF FF FF FF 28 FF FF FF FF FF
15189     70: 28 FF FF FF FF FF 28 FF FF FF FF FF 28 FF FF FF
15190     80: FF FF 28 FF FF FF FF FF 28 FF FF FF FF FF 28 FF
15191     90: FF FF FF FF 28 FF FF FF FF FF 28 FF FF FF FF FF
15192     A0: 28 FF FF FF FF FF 28 FF FF FF FF FF 28 FF FF FF
15193     B0: FF FF 28 FF FF FF FF FF 28 FF FF FF FF FF 28 FF
15194     C0: FF FF FF FF 28 FF FF FF FF FF 28 FF FF FF FF FF
15195     D0: 28 FF FF FF FF FF 28 FF FF FF FF FF 28 FF FF FF
15196     E0: FF FF 28 FF FF FF FF FF 28 FF FF FF FF FF 28 FF
15197     F0: FF FF FF FF 28 FF FF FF FF FF 28 FF FF FF FF FF
15198
15199It is laid out exactly as the side 0 BAM except for one difference.  The
15200track/sector reference for the next sector should be set to $00/$FF,
15201indicating there is no next sector.
15202
1520316.7.3 REL files
15204----------------
15205
15206The REL filetype requires some extra explaining.  It was designed to
15207make access to data *anywhere* on the disk very fast.  Take a look at
15208this directory entry...
15209
15210      00: 00 FF 84 27 00 41 44 44 49 54 49 4F 4E 41 4C 20
15211      10: 49 4E 46 4F A0 27 02 FE 00 00 00 00 00 00 D2 0B
15212
15213The third byte ($84) indicates this entry is a REL file and that the
15214three normally empty entries at offset $15, $16 and $17 are now used as
15215they are explained above.  It's the track/sector chain that this entry
15216points to, called the SUPER SIDE SECTOR, which is of interest here (in
15217this case, 39/2).  The SUPER SIDE SECTOR is very different from the D64
15218format.  If you check the D64 entry for a REL file and do the
15219calculations, you will find that the maximum file size of the REL file
15220is 720 data sectors.  With the new SUPER SIDE SECTOR, you can now have
15221126 groups of these SIDE SECTORS chains, allowing for file sizes up to
15222(theoretically) 90720 sectors, or about 22.15 Megabytes.
15223
15224Here is a dump of the beginning of the SUPER SIDE SECTOR...
15225
15226      00: 27 01 FE 27 01 15 09 03 0F 38 16 4A 1C 00 00 00
15227      10: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
15228      20: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
15229
15230     Bytes:
15231     $00-$01: Track/sector of first side sector in group 0
15232         $02: Always $FE
15233     $03-$04: Track/sector of first side sector in group 0 (again)
15234              ...
15235     $FD-$FE: Track/sector of first side sector in group 125
15236         $FF: Unused (likely $00)
15237
15238The side sector layout is the same as the D64/1571.
15239
15240         00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F
15241         -----------------------------------------------
15242     00: 12 0A 00 FE 15 09 12 0A 0F 0B 0C 0C 09 0D 06 0E
15243     10: 15 07 15 08 15 0A 15 0B 15 0C 15 0D 15 0E 15 0F
15244     20: 15 10 15 11 15 12 15 13 15 14 15 15 15 16 15 17
15245     30: 15 18 15 19 15 1A 15 1B 15 1C 15 1D 15 1E 15 1F
15246     40: 15 20 15 21 15 22 15 23 15 24 15 25 15 26 15 27
15247     50: 14 00 14 01 14 02 14 03 14 04 14 05 14 06 14 07
15248     60: 14 08 14 09 14 0A 14 0B 14 0C 14 0D 14 0E 14 0F
15249     70: 14 10 14 11 14 12 14 13 14 14 14 15 14 16 14 17
15250     80: 14 18 14 19 14 1A 14 1B 14 1C 14 1D 14 1E 14 1F
15251     90: 14 20 14 21 14 22 14 23 14 24 14 25 14 26 14 27
15252     A0: 13 00 13 01 13 02 13 03 13 04 13 05 13 06 13 07
15253     B0: 13 08 13 09 13 0A 13 0B 13 0C 13 0D 13 0E 13 0F
15254     C0: 13 10 13 11 13 12 13 13 13 14 13 15 13 16 13 17
15255     D0: 13 18 13 19 13 1A 13 1B 13 1C 13 1D 13 1E 13 1F
15256     E0: 13 20 13 21 13 22 13 23 13 24 13 25 13 26 13 27
15257     F0: 12 00 12 01 12 02 12 03 12 04 12 05 12 06 12 07
15258
15259     Bytes:
15260         $00: Track location of next side-sector ($00 if last sector)
15261         $01: Sector location of next side-sector
15262         $02: Side-sector block number (first sector is $00, the next is
15263              $01, then $02, etc)
15264         $03: REL file RECORD size (from directory entry)
15265     $04-$0F: Track/sector locations of the six other side-sectors. Note
15266              the first entry is this very sector we have listed here.
15267              The next is the next t/s listed at the beginning of the
15268              sector. All of this information must be correct. If one of
15269              these chains is $00/$00, then we have no more side sectors.
15270              Also, all of these (up to six) side sectors must have the
15271              same values in this range.
15272     $10-$FF: T/S chains of *each* sector of the data portion. When we
15273              get a $00/$00, we are at the end of the file.
15274
1527516.7.4 1581 Partitions and Sub-directories
15276------------------------------------------
15277
15278At the beginning of this section it was stated that the 1581 can hold
15279296 entries "at the root level".  The 1581 also has the ability to
15280partition areas of the disk.  Under the right conditions these can
15281become sub-directories, acting as a small diskette, complete with its
15282own directory and BAM. When you are inside of a sub-directory, no other
15283files except those in that directory are visible, or can be affected.
15284
15285To the 1581, this file will show up as a "CBM" filetype in a directory.
15286All this does is tell the disk that a file, starting at X/Y track/sector
15287and Z sectors large exists.  Doing a validate will not harm these files
15288as they have a directory entry, and are fully allocated in the BAM.
15289
15290There are two main uses for partitions.  One is to simply allocate a
15291section of the disk to be used for direct-access reads/writes, and lock
15292it away from being overwritten after a VALIDATE. The second is as a
15293sub-directory, basically a small "disk within a disk".
15294
15295In order to use a partition as a sub-directory, it must adhere to the
15296following four rules:
15297
15298      1. If must start on sector 0
15299      2. It's size must be in multiples of 40 sectors
15300      3. It must be a minimum of 120 sectors long (3 tracks)
15301      4. If must not start on or cross track 40, which limits the
15302         biggest directory to 1600 sectors (tracks 1-39).
15303
15304This is a dump of a sub-directory entry:
15305
15306      00: 00 FF 85 29 00 50 41 52 54 49 54 49 4F 4E 20 31
15307      10: A0 A0 A0 A0 A0 00 00 00 00 00 00 00 00 00 40 06
15308
15309It is a partition starting on track 41/0, extends for 1600 sectors, and
15310has been formatted as a sub-directory.  Note that when a partition is
15311created, the area being allocated is not touched in any way.  If you
15312want it set up as a sub-directory, you must issue the FORMAT command to
15313the 1581 to create the central directory and BAM. Also note that from
15314the directory entry you can't tell whether it is a sub-directory or not,
15315just that it fits the sub-directory parameters.
15316
15317The BAM track for the sub-directory exists on the first track of the
15318partition, and has the same layout as the disk BAM on track 40.  The
15319biggest difference is the "disk name" is what what given when the
15320partition was formatted rather than what the actual disk name is.  Also,
15321except for the free sectors in the partition area, all other sectors in
15322the BAM will be allocated.
15323
15324If the partition size doesn't match the above rules for a sub-directory,
15325it will simply exist as a "protected" area of the disk, and can't be
15326used as a sub-directory.  Either way, it still shows up as a "CBM" type
15327in a directory listing.  Below is a dump of a 10-sector partition
15328starting on track 5/1, which does not qualify as a sub-directory...
15329
15330      00: 00 00 85 05 01 53 4D 41 4C 4C 50 41 52 54 20 32
15331      10: A0 A0 A0 A0 A0 00 00 00 00 00 00 00 00 00 0A 00
15332
15333The master BAM shows the entry for this partition on track 5...
15334
15335      00: 28 02 44 BB 43 44 C0 00 00 00 00 00 00 00 00 00
15336      10: 23 C1 FF FF FF FF 28 FF FF FF FF FF 28 FF FF FF
15337      20: FF FF 28 FF FF FF FF FF 1E 01 F8 FF FF FF 28 FF
15338                                  ^^^^^^^^^^^^^^^^^
15339
15340The breakdown of the BAM shows the allocation for this track, with
15341sectors 1-10 allocated, as it should be.
15342
15343      10000000 00011111 11111111 11111111 11111111
15344      ^          ^          ^         ^          ^
15345      0          10         20        30         39
15346
15347Partitions and sub-directories share one very important trait.  When
15348created, the sub-directory entry simply has the starting track/sector
15349and the size of the partition in sectors.  Partitions are created
15350linearly, meaning if one starts on 30/1 and is of size 15 sectors, then
15351the sector range from 1 through 15 on track 30 will be allocated.  If a
15352partition size crosses a track boundary, the allocation will continue on
15353the next track starting on sector 0, and going up.
15354
15355The section allocated will *not* have a track/sector chain like a file
15356would, but rather is dependant on the directory entry to keep it from
15357being overwritten.  You can store whatever you want to in the allocated
15358area.
15359
1536016.7.5 AUTO-BOOT LOADER
15361-----------------------
15362
15363If byte $07 in the BAM is set, then when the drive is reset (and other
15364circumstances) it will look for a USR file called "COPYRIGHT CBM 86".
15365This file will then be loaded into the drive RAM and executed.
15366
15367The format for this auto-loader file is fairly basic.  It starts with a
15368two-byte load address, a size byte, program data, and a checksum at the
15369end.
15370
15371     Bytes:
15372            $00-$01: Load address, low/high format
15373                $02: Size of program (SZ) (smaller than 256 bytes)
15374     $03-($03+SZ-1): Program data
15375             $03+SZ: Checksum byte
15376
15377
15378File: vice.info,  Node: D80,  Next: D82,  Prev: D81,  Up: File formats
15379
1538016.8 The D80 disk image format
15381==============================
15382
15383(This section was contributed by Peter Schepers and slightly edited by
15384Marco van den Heuvel.)
15385
15386This is a sector-for-sector copy of an 8050 floppy disk.  The file size
15387for an 8050 image is 533248 bytes.  It is comprised of 256-byte sectors
15388arranged across 77 tracks, with a varying number of sectors per track
15389for a total of 2083 sectors.  Track counting starts at 1 (not 0) and
15390sector counting starts at 0 (not 1), therefore a track with 29 sectors
15391will go from 0 to 28.
15392
15393The original media (a 5.25" disk) has the tracks laid out in circles,
15394with track 1 on the very outside of the disk (closest to the sides) to
15395track 77 being on the inside of the disk (closest to the inner hub
15396ring).  Commodore, in their infinite wisdom, varied the number of
15397sectors per track and data densities across the disk to optimize
15398available storage, resulting in the chart below.  It shows the
15399sectors/track for a D80.  Since the outside diameter of a circle is the
15400largest (versus closer to the center), the outside tracks have the
15401largest amount of storage.
15402
15403Track Range              Sectors/track            # Sectors
154041-39                     29                       1131
1540540-53                    27                       378
1540654-64                    25                       275
1540765-77                    23                       299
15408
15409Track              #Sect              #SectorsIn         D8x Offset
154101                  29                 0                  $00000
154112                  29                 29                 $01D00
154123                  29                 58                 $03A00
154134                  29                 87                 $05700
154145                  29                 116                $07400
154156                  29                 145                $09100
154167                  29                 174                $0AE00
154178                  29                 203                $0CB00
154189                  29                 232                $0E800
1541910                 29                 261                $10500
1542011                 29                 290                $12200
1542112                 29                 319                $13F00
1542213                 29                 348                $15C00
1542314                 29                 377                $17900
1542415                 29                 406                $19600
1542516                 29                 435                $1B300
1542617                 29                 464                $1D000
1542718                 29                 493                $1ED00
1542819                 29                 522                $20A00
1542920                 29                 551                $22700
1543021                 29                 580                $24400
1543122                 29                 609                $26100
1543223                 29                 638                $27E00
1543324                 29                 667                $29B00
1543425                 29                 696                $2B800
1543526                 29                 725                $2D500
1543627                 29                 754                $2F200
1543728                 29                 783                $30F00
1543829                 29                 812                $32C00
1543930                 29                 841                $34900
1544031                 29                 870                $36600
1544132                 29                 899                $38300
1544233                 29                 928                $3A000
1544334                 29                 957                $3BD00
1544435                 29                 986                $3DA00
1544536                 29                 1015               $3F700
1544637                 29                 1044               $41400
1544738                 29                 1073               $43100
1544839                 29                 1102               $44E00
1544940                 27                 1131               $46B00
1545041                 27                 1158               $48600
1545142                 27                 1185               $4A100
1545243                 27                 1212               $4BC00
1545344                 27                 1239               $4D700
1545445                 27                 1266               $4F200
1545546                 27                 1293               $50D00
1545647                 27                 1320               $52800
1545748                 27                 1347               $54300
1545849                 27                 1374               $55E00
1545950                 27                 1401               $57900
1546051                 27                 1428               $59400
1546152                 27                 1455               $5AF00
1546253                 27                 1482               $5CA00
1546354                 25                 1509               $5E500
1546455                 25                 1534               $5FE00
1546556                 25                 1559               $61700
1546657                 25                 1584               $63000
1546758                 25                 1609               $64900
1546859                 25                 1634               $66200
1546960                 25                 1659               $67B00
1547061                 25                 1684               $69400
1547162                 25                 1709               $6AD00
1547263                 25                 1734               $6C600
1547364                 25                 1759               $6DF00
1547465                 23                 1784               $6F800
1547566                 23                 1807               $70F00
1547667                 23                 1830               $72600
1547768                 23                 1853               $73D00
1547869                 23                 1876               $75400
1547970                 23                 1899               $76B00
1548071                 23                 1922               $78200
1548172                 23                 1945               $79900
1548273                 23                 1968               $7B000
1548374                 23                 1991               $7C700
1548475                 23                 2014               $7DE00
1548576                 23                 2037               $7F500
1548677                 23                 2060               $80C00
15487
15488The BAM (Block Availability Map) is on track 38.  The D80 is only 77
15489tracks and so the BAM is contained on 38/0 and 38/3.  The BAM interleave
15490is 3.
15491
15492The directory is on track 39, with 39/0 contains the header (DOS type,
15493disk name, disk ID's) and sectors 1-28 contain the directory entries.
15494Both files and the directory use an interleave of 1.  Since the
15495directory is only 28 sectors large (29 less one for the header), and
15496each sector can contain only 8 entries (32 bytes per entry), the maximum
15497number of directory entries is 28 * 8 = 224.  The first directory sector
15498is always 39/1.  It then follows a chain structure using a sector
15499interleave of 1 making the links go 39/1, 39/2, 39/3 etc.
15500
15501When reading a disk, you start with 39/0 (disk label/ID) which points to
1550238/0 (BAM0), 38/3 (BAM1), and finally to 39/1 (first dir entry sector).
15503When writing a file to a blank disk, it will start at 38/1 because 38/0
15504is already allocated.
15505
15506Below is a dump of the header sector 39/0:
15507
15508         00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F
15509         -----------------------------------------------
15510     00: 26 00 43 00 00 00 73 61 6D 70 6C 65 20 64 38 30
15511     10: A0 A0 A0 A0 A0 A0 A0 A0 65 72 A0 32 43 A0 A0 A0
15512     20: A0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
15513     ...
15514     F0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
15515
15516Bytes                  Description
15517$00-$01                T/S pointer to first BAM sector (38/0)
15518$02                    $43 'C' is for DOS format version
15519$03                    Reserved
15520$04-$05                Unused
15521$06-$16                Disk name, padded with 0xA0 ("sample d80")
15522$17                    0xA0
15523$18-$19                Disk ID bytes "er"
15524$1A                    0xA0
15525$1B-$1C                DOS version bytes "2C"
15526$1D-$20                0xA0
15527$21-$FF                Unused
15528
15529Below is a dump of the first directory sector, 39/1
15530
15531         00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F
15532         -----------------------------------------------
15533     00: 27 02 82 26 01 54 45 53 54 A0 A0 A0 A0 A0 A0 A0
15534     10: A0 A0 A0 A0 A0 00 00 00 00 00 00 00 00 00 01 00
15535     20: 00 00 82 26 02 54 45 53 54 32 A0 A0 A0 A0 A0 A0
15536     30: A0 A0 A0 A0 A0 00 00 00 00 00 00 00 00 00 01 00
15537     40: 00 00 82 26 04 54 45 53 54 33 A0 A0 A0 A0 A0 A0
15538     50: A0 A0 A0 A0 A0 00 00 00 00 00 00 00 00 00 05 00
15539     60: 00 00 82 26 0B 54 45 53 54 34 A0 A0 A0 A0 A0 A0
15540     70: A0 A0 A0 A0 A0 00 00 00 00 00 00 00 00 00 09 00
15541     80: 00 00 82 26 14 54 45 53 54 35 A0 A0 A0 A0 A0 A0
15542     90: A0 A0 A0 A0 A0 00 00 00 00 00 00 00 00 00 0C 00
15543     A0: 00 00 82 28 00 54 45 53 54 36 A0 A0 A0 A0 A0 A0
15544     B0: A0 A0 A0 A0 A0 00 00 00 00 00 00 00 00 00 01 00
15545     C0: 00 00 82 28 01 54 45 53 54 37 A0 A0 A0 A0 A0 A0
15546     D0: A0 A0 A0 A0 A0 00 00 00 00 00 00 00 00 00 01 00
15547     E0: 00 00 82 28 02 54 45 53 54 38 A0 A0 A0 A0 A0 A0
15548     F0: A0 A0 A0 A0 A0 00 00 00 00 00 00 00 00 00 01 00
15549
15550The first two bytes of the directory sector ($27/$02) indicate the
15551location of the next track/sector of the directory (39/2).  If the track
15552is set to $00, then it is the last sector of the directory.
15553
15554When the directory is done, the track value will be $00.  The sector
15555link should contain a value of $FF, meaning the whole sector is
15556allocated, but the actual value doesn't matter.  The drive will return
15557all the available entries anyways.  This is a breakdown of a standard
15558directory sector:
15559
15560Bytes          Description
15561$00-$1F        First directory entry
15562$20-$3F        Second dir entry
15563$40-$5F        Third dir entry
15564$60-$7F        Fourth dir entry
15565$80-$9F        Fifth dir entry
15566$A0-$BF        Sixth dir entry
15567$C0-$DF        Seventh dir entry
15568$E0-$FF        Eighth dir entry
15569
15570This is a breakdown of a standard directory entry:
15571
15572Bytes          Description
15573$00-$01        Track/Sector location of next directory sector ($00 $00
15574               if not the first entry in the sector)
15575$02            File type
15576$03-$04        Track/sector location of first sector of file
15577$05-$14        16 character filename (in PETASCII, padded with $A0)
15578$15-$16        Track/Sector location of first side-sector block (REL
15579               file only)
15580$17            REL file record length (REL file only, max.  value 254)
15581$18-$1D        Unused
15582$1E-$1F        File size in sectors, low/high byte order ($1E+$1F*256).
15583               The approx.  filesize in bytes is <= #sectors * 254
15584
15585The file type field is used as follows:
15586
15587Bits           Description
155880-3            The actual file type
155894              Unused
155905              Used only during SAVE-@ replacement
155916              Locked flag (Set produces ">" locked files)
155927              Closed flag (Not set produces "*", or "splat" files)
15593
15594The actual file type can be one of the following:
15595
15596Binary         Decimal        File type
155970000           0              DEL
155980001           1              SEQ
155990010           2              PRG
156000011           3              USR
156010100           4              REL
15602
15603Values 5-15 are illegal, but if used will produce very strange results.
15604
1560516.8.1 Non-Standard & Long Directories
15606--------------------------------------
15607
15608Most Commdore floppy disk drives use a single dedicated directory track
15609where all filenames are stored.  This limits the number of files stored
15610on a disk based on the number of sectors on the directory track.  There
15611are some disk images that contain more files than would normally be
15612allowed.  This requires extending the directory off the default
15613directory track by changing the last directory sector pointer to a new
15614track, allocating the new sectors in the BAM, and manually placing (or
15615moving existing) file entries there.  The directory of an extended disk
15616can be read and the files that reside there can be loaded without
15617problems on a real drive.  However, this is still a very dangerous
15618practice as writing to the extended portion of the directory will cause
15619directory corruption in the non-extended part.  Many of the floppy
15620drives core ROM routines ignore the track value that the directory is on
15621and assume the default directory track for operations.
15622
1562316.8.2 BAM layout
15624-----------------
15625
15626The BAM only occupies up to four sectors on track 38, so the rest of the
15627track is empty and is available for file storage.  Below is a dump of
15628the first BAM block, 38/0.  A D80 will only contain two BAM sectors,
1562938/0 and 38/3.  Each entry takes 5 bytes, 1 for the free count on that
15630track, and 4 for the BAM bits.
15631
15632         00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F
15633         -----------------------------------------------
15634     00: 26 03 43 00 01 33 1D FF FF FF 1F 1D FF FF FF 1F
15635     10: 1D FF FF FF 1F 1D FF FF FF 1F 1D FF FF FF 1F 1D
15636     20: FF FF FF 1F 1D FF FF FF 1F 1D FF FF FF 1F 1D FF
15637     30: FF FF 1F 1D FF FF FF 1F 1D FF FF FF 1F 1D FF FF
15638     40: FF 1F 1D FF FF FF 1F 1D FF FF FF 1F 1D FF FF FF
15639     50: 1F 1D FF FF FF 1F 1D FF FF FF 1F 1D FF FF FF 1F
15640     60: 1D FF FF FF 1F 1D FF FF FF 1F 1D FF FF FF 1F 1D
15641     70: FF FF FF 1F 1D FF FF FF 1F 1D FF FF FF 1F 1D FF
15642     80: FF FF 1F 1D FF FF FF 1F 1D FF FF FF 1F 1D FF FF
15643     90: FF 1F 1D FF FF FF 1F 1D FF FF FF 1F 1D FF FF FF
15644     A0: 1F 1D FF FF FF 1F 1D FF FF FF 1F 1D FF FF FF 1F
15645     B0: 1D FF FF FF 1F 1D FF FF FF 1F 1D FF FF FF 1F 1B
15646     C0: F6 FF FF 1F 1B FC FF FF 1F 1B FF FF FF 07 1B FF
15647     D0: FF FF 07 1B FF FF FF 07 1B FF FF FF 07 1B FF FF
15648     E0: FF 07 1B FF FF FF 07 1B FF FF FF 07 1B FF FF FF
15649     F0: 07 1B FF FF FF 07 1B FF FF FF 07 1B FF FF FF 07
15650
15651Bytes                  Description
15652$00-$01                T/S pointer to second BAM sector (38/3)
15653$02                    DOS version byte (0x43='C')
15654$03                    Reserved
15655$04                    Lowest track covered by this BAM (0x01=1)
15656$05                    Highest+1 track covered by this BAM (0x33=51)
15657$06-$0A                BAM for track 1.  The first byte shows the
15658                       "blocks free" for this track, the remaining 4
15659                       show the BAM for the track.
15660$0B-$0F                BAM for track 2
15661...                    ...
15662$FB-$FF                BAM for track 50
15663
15664Being bit-based, the BAM entries need some explanation.  The first track
15665entry in the above BAM sector is at offset 06, "1D FF FF FF 1F". The
15666first number is how many blocks are free on this track ($1D=29) and the
15667remainder is the bit representation of the usage map for the track.
15668These entries must be viewed in binary to make any sense.  First convert
15669the values to binary:
15670
15671      FF=11111111, FF=11111111, FF=11111111, 1F=00011111
15672
15673In order to make any sense from the binary notation, flip the bits
15674around.
15675
15676                 111111 11112222 222222
15677      01234567 89012345 67890123 456789...
15678      -------------------------- ---------
15679      11111111 11111111 11111111 11111000
15680      ^                              ^
15681      sector 0                   sector 28
15682
15683Since we are on the first track, we have 29 sectors, and only use up to
15684the bit 28 position.  If a bit is on (1), the sector is free.
15685Therefore, track 1 is clean, all sectors are free.  Any leftover bits
15686that refer to sectors that don't exist, like bits 29-31 in the above
15687example, are set to allocated.
15688
15689Second BAM block 38/3.
15690
15691         00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F
15692         -----------------------------------------------
15693     00: 27 01 43 00 33 4E 1B FF FF FF 07 1B FF FF FF 07
15694     10: 1B FF FF FF 07 19 FF FF FF 01 19 FF FF FF 01 19
15695     20: FF FF FF 01 19 FF FF FF 01 19 FF FF FF 01 19 FF
15696     30: FF FF 01 19 FF FF FF 01 19 FF FF FF 01 19 FF FF
15697     40: FF 01 19 FF FF FF 01 19 FF FF FF 01 17 FF FF 7F
15698     50: 00 17 FF FF 7F 00 17 FF FF 7F 00 17 FF FF 7F 00
15699     60: 17 FF FF 7F 00 17 FF FF 7F 00 17 FF FF 7F 00 17
15700     70: FF FF 7F 00 17 FF FF 7F 00 17 FF FF 7F 00 17 FF
15701     80: FF 7F 00 17 FF FF 7F 00 17 FF FF 7F 00 00 00 00
15702     90: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
15703     A0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
15704     B0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
15705     C0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
15706     D0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
15707     E0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
15708     F0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
15709
15710Bytes                  Description
15711$00-$01                T/S pointer to second BAM sector (39/1)
15712$02                    DOS version byte (0x43='C')
15713$03                    Reserved
15714$04                    Lowest track covered by this BAM (0x33=51)
15715$05                    Highest+1 track covered by this BAM (0x43=78)
15716$06-$0A                BAM for track 51.  The first byte shows the
15717                       "blocks free" for this track, the remaining 4
15718                       show the BAM for the track.
15719$0B-$0F                BAM for track 52
15720...                    ...
15721$88-$8C                BAM for track 77
15722$8D-$FF                Not used
15723
15724
15725File: vice.info,  Node: D82,  Next: P00,  Prev: D80,  Up: File formats
15726
1572716.9 The D82 disk image format
15728==============================
15729
15730(This section was contributed by Peter Schepers and slightly edited by
15731Marco van den Heuvel.)
15732
15733This is a sector-for-sector copy of an 8250 floppy disk.  The file size
15734for an 8250 image is 1066496 bytes.  It is comprised of 256-byte sectors
15735arranged across 154 tracks, with a varying number of sectors per track
15736for a total of 4166 sectors.  Track counting starts at 1 (not 0) and
15737sector counting starts at 0 (not 1), therefore a track with 29 sectors
15738will go from 0 to 28.
15739
15740The original media (a 5.25" disk) has the tracks laid out in circles,
15741with track 1 on the very outside of the disk (closest to the sides) to
15742track 77 being on the inside of the disk (closest to the inner hub
15743ring).  Commodore, in their infinite wisdom, varied the number of
15744sectors per track and data densities across the disk to optimize
15745available storage, resulting in the chart below.  It shows the
15746sectors/track for a D82.  Since the outside diameter of a circle is the
15747largest (versus closer to the center), the outside tracks have the
15748largest amount of storage.
15749
15750Track Range              Sectors/track            # Sectors
157511-39                     29                       1131
1575240-53                    27                       378
1575355-64                    25                       275
1575465-77                    23                       299
1575578-116                   29                       1131
15756117-130                  27                       378
15757131-141                  25                       275
15758142-154                  23                       299
15759
15760Track              #Sect              #SectorsIn         D82 Offset
157611                  29                 0                  $000000
157622                  29                 29                 $001D00
157633                  29                 58                 $003A00
157644                  29                 87                 $005700
157655                  29                 116                $007400
157666                  29                 145                $009100
157677                  29                 174                $00AE00
157688                  29                 203                $00CB00
157699                  29                 232                $00E800
1577010                 29                 261                $010500
1577111                 29                 290                $012200
1577212                 29                 319                $013F00
1577313                 29                 348                $015C00
1577414                 29                 377                $017900
1577515                 29                 406                $019600
1577616                 29                 435                $01B300
1577717                 29                 464                $01D000
1577818                 29                 493                $01ED00
1577919                 29                 522                $020A00
1578020                 29                 551                $022700
1578121                 29                 580                $024400
1578222                 29                 609                $026100
1578323                 29                 638                $027E00
1578424                 29                 667                $029B00
1578525                 29                 696                $02B800
1578626                 29                 725                $02D500
1578727                 29                 754                $02F200
1578828                 29                 783                $030F00
1578929                 29                 812                $032C00
1579030                 29                 841                $034900
1579131                 29                 870                $036600
1579232                 29                 899                $038300
1579333                 29                 928                $03A000
1579434                 29                 957                $03BD00
1579535                 29                 986                $03DA00
1579636                 29                 1015               $03F700
1579737                 29                 1044               $041400
1579838                 29                 1073               $043100
1579939                 29                 1102               $044E00
1580040                 27                 1131               $046B00
1580141                 27                 1158               $048600
1580242                 27                 1185               $04A100
1580343                 27                 1212               $04BC00
1580444                 27                 1239               $04D700
1580545                 27                 1266               $04F200
1580646                 27                 1293               $050D00
1580747                 27                 1320               $052800
1580848                 27                 1347               $054300
1580949                 27                 1374               $055E00
1581050                 27                 1401               $057900
1581151                 27                 1428               $059400
1581252                 27                 1455               $05AF00
1581353                 27                 1482               $05CA00
1581454                 25                 1509               $05E500
1581555                 25                 1534               $05FE00
1581656                 25                 1559               $061700
1581757                 25                 1584               $063000
1581858                 25                 1609               $064900
1581959                 25                 1634               $066200
1582060                 25                 1659               $067B00
1582161                 25                 1684               $069400
1582262                 25                 1709               $06AD00
1582363                 25                 1734               $06C600
1582464                 25                 1759               $06DF00
1582565                 23                 1784               $06F800
1582666                 23                 1807               $070F00
1582767                 23                 1830               $072600
1582868                 23                 1853               $073D00
1582969                 23                 1876               $075400
1583070                 23                 1899               $076B00
1583171                 23                 1922               $078200
1583272                 23                 1945               $079900
1583373                 23                 1968               $07B000
1583474                 23                 1991               $07C700
1583575                 23                 2014               $07DE00
1583676                 23                 2037               $07F500
1583777                 23                 2060               $080C00
1583878                 29                 2083               $082300
1583979                 29                 2112               $084000
1584080                 29                 2141               $085D00
1584181                 29                 2170               $087A00
1584282                 29                 2199               $089700
1584383                 29                 2228               $08B400
1584484                 29                 2257               $08D100
1584585                 29                 2286               $08EE00
1584686                 29                 2315               $090600
1584787                 29                 2344               $092800
1584888                 29                 2373               $094500
1584989                 29                 2402               $096200
1585090                 29                 2431               $097F00
1585191                 29                 2460               $099C00
1585292                 29                 2489               $09B900
1585393                 29                 2518               $09D600
1585494                 29                 2547               $09F300
1585595                 29                 2576               $0A1000
1585696                 29                 2605               $0A2D00
1585797                 29                 2634               $0A4A00
1585898                 29                 2663               $0A6700
1585999                 29                 2692               $0A8400
15860100                29                 2721               $0AA100
15861101                29                 2750               $0ABE00
15862102                29                 2779               $0ADB00
15863103                29                 2808               $0AF800
15864104                29                 2837               $0B1500
15865105                29                 2866               $0B3200
15866106                29                 2895               $0B4F00
15867107                29                 2924               $0B6C00
15868108                29                 2953               $0B8900
15869109                29                 2982               $0BA600
15870110                29                 3011               $0BC300
15871111                29                 3040               $0BE000
15872112                29                 3069               $0BFD00
15873113                29                 3098               $0C1A00
15874114                29                 3137               $0C3700
15875115                29                 3156               $0C5400
15876116                29                 3185               $0C7100
15877117                27                 3214               $0C8E00
15878118                27                 3241               $0CA900
15879119                27                 3268               $0CC400
15880120                27                 3295               $0CDF00
15881121                27                 3322               $0CFA00
15882122                27                 3349               $0D1500
15883123                27                 3376               $0D3000
15884124                27                 3403               $0D4B00
15885125                27                 3430               $0D6600
15886126                27                 3457               $0D8100
15887127                27                 3484               $0D9C00
15888128                27                 3511               $0DB700
15889129                27                 3538               $0DD200
15890130                27                 3565               $0DED00
15891131                25                 3592               $0E0800
15892132                25                 3617               $0E2100
15893133                25                 3642               $0E3A00
15894134                25                 3667               $0E5300
15895135                25                 3692               $0E6C00
15896136                25                 3717               $0E8500
15897137                25                 3742               $0E9E00
15898138                25                 3767               $0EB700
15899139                25                 3792               $0ED000
15900140                25                 3817               $0EE900
15901141                25                 3842               $0F0200
15902142                23                 3867               $0F1B00
15903143                23                 3890               $0F3200
15904144                23                 3913               $0F4900
15905145                23                 3936               $0F6000
15906146                23                 3959               $0F7700
15907147                23                 3982               $0F8E00
15908148                23                 4005               $0FA500
15909149                23                 4028               $0FBC00
15910150                23                 4051               $0FD300
15911151                23                 4074               $0FEA00
15912152                23                 4097               $100100
15913153                23                 4120               $101800
15914154                23                 4143               $102F00
15915
15916The BAM (Block Availability Map) is on track 38.  The D82 is 154 tracks
15917and so the BAM is contained on 38/0, 38/3, 38/6 and 38/9.  The BAM
15918interleave is 3.
15919
15920The directory is on track 39, with 39/0 contains the header (DOS type,
15921disk name, disk ID's) and sectors 1-28 contain the directory entries.
15922Both files and the directory use an interleave of 1.  Since the
15923directory is only 28 sectors large (29 less one for the header), and
15924each sector can contain only 8 entries (32 bytes per entry), the maximum
15925number of directory entries is 28 * 8 = 224.  The first directory sector
15926is always 39/1.  It then follows a chain structure using a sector
15927interleave of 1 making the links go 39/1, 39/2, 39/3 etc.
15928
15929When reading a disk, you start with 39/0 (disk label/ID) which points to
1593038/0 (BAM0), 38/3 (BAM1), 38/6 (BAM2), 38/9 (BAM3, and finally to 39/1
15931(first dir entry sector).  When writing a file to a blank disk, it will
15932start at 38/1 because 38/0 is already allocated.
15933
15934Below is a dump of the header sector 39/0:
15935
15936         00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F
15937         -----------------------------------------------
15938     00: 26 00 43 00 00 00 73 61 6D 70 6C 65 20 64 38 30
15939     10: A0 A0 A0 A0 A0 A0 A0 A0 65 72 A0 32 43 A0 A0 A0
15940     20: A0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
15941     ...
15942     F0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
15943
15944Bytes                  Description
15945$00-$01                T/S pointer to first BAM sector (38/0)
15946$02                    $43 'C' is for DOS format version
15947$03                    Reserved
15948$04-$05                Unused
15949$06-$16                Disk name, padded with 0xA0 ("sample d82")
15950$17                    0xA0
15951$18-$19                Disk ID bytes "er"
15952$1A                    0xA0
15953$1B-$1C                DOS version bytes "2C"
15954$1D-$20                0xA0
15955$21-$FF                Unused
15956
15957Below is a dump of the first directory sector, 39/1
15958
15959         00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F
15960         -----------------------------------------------
15961     00: 27 02 82 26 01 54 45 53 54 A0 A0 A0 A0 A0 A0 A0
15962     10: A0 A0 A0 A0 A0 00 00 00 00 00 00 00 00 00 01 00
15963     20: 00 00 82 26 02 54 45 53 54 32 A0 A0 A0 A0 A0 A0
15964     30: A0 A0 A0 A0 A0 00 00 00 00 00 00 00 00 00 01 00
15965     40: 00 00 82 26 04 54 45 53 54 33 A0 A0 A0 A0 A0 A0
15966     50: A0 A0 A0 A0 A0 00 00 00 00 00 00 00 00 00 05 00
15967     60: 00 00 82 26 0B 54 45 53 54 34 A0 A0 A0 A0 A0 A0
15968     70: A0 A0 A0 A0 A0 00 00 00 00 00 00 00 00 00 09 00
15969     80: 00 00 82 26 14 54 45 53 54 35 A0 A0 A0 A0 A0 A0
15970     90: A0 A0 A0 A0 A0 00 00 00 00 00 00 00 00 00 0C 00
15971     A0: 00 00 82 28 00 54 45 53 54 36 A0 A0 A0 A0 A0 A0
15972     B0: A0 A0 A0 A0 A0 00 00 00 00 00 00 00 00 00 01 00
15973     C0: 00 00 82 28 01 54 45 53 54 37 A0 A0 A0 A0 A0 A0
15974     D0: A0 A0 A0 A0 A0 00 00 00 00 00 00 00 00 00 01 00
15975     E0: 00 00 82 28 02 54 45 53 54 38 A0 A0 A0 A0 A0 A0
15976     F0: A0 A0 A0 A0 A0 00 00 00 00 00 00 00 00 00 01 00
15977
15978The first two bytes of the directory sector ($27/$02) indicate the
15979location of the next track/sector of the directory (39/2).  If the track
15980is set to $00, then it is the last sector of the directory.
15981
15982When the directory is done, the track value will be $00.  The sector
15983link should contain a value of $FF, meaning the whole sector is
15984allocated, but the actual value doesn't matter.  The drive will return
15985all the available entries anyways.  This is a breakdown of a standard
15986directory sector:
15987
15988Bytes          Description
15989$00-$1F        First directory entry
15990$20-$3F        Second dir entry
15991$40-$5F        Third dir entry
15992$60-$7F        Fourth dir entry
15993$80-$9F        Fifth dir entry
15994$A0-$BF        Sixth dir entry
15995$C0-$DF        Seventh dir entry
15996$E0-$FF        Eighth dir entry
15997
15998This is a breakdown of a standard directory entry:
15999
16000Bytes          Description
16001$00-$01        Track/Sector location of next directory sector ($00 $00
16002               if not the first entry in the sector)
16003$02            File type
16004$03-$04        Track/sector location of first sector of file
16005$05-$14        16 character filename (in PETASCII, padded with $A0)
16006$15-$16        Track/Sector location of first side-sector block (REL
16007               file only)
16008$17            REL file record length (REL file only, max.  value 254)
16009$18-$1D        Unused
16010$1E-$1F        File size in sectors, low/high byte order ($1E+$1F*256).
16011               The approx.  filesize in bytes is <= #sectors * 254
16012
16013The file type field is used as follows:
16014
16015Bits           Description
160160-3            The actual file type
160174              Unused
160185              Used only during SAVE-@ replacement
160196              Locked flag (Set produces ">" locked files)
160207              Closed flag (Not set produces "*", or "splat" files)
16021
16022The actual file type can be one of the following:
16023
16024Binary         Decimal        File type
160250000           0              DEL
160260001           1              SEQ
160270010           2              PRG
160280011           3              USR
160290100           4              REL
16030
16031Values 5-15 are illegal, but if used will produce very strange results.
16032
1603316.9.1 Non-Standard & Long Directories
16034--------------------------------------
16035
16036Most Commdore floppy disk drives use a single dedicated directory track
16037where all filenames are stored.  This limits the number of files stored
16038on a disk based on the number of sectors on the directory track.  There
16039are some disk images that contain more files than would normally be
16040allowed.  This requires extending the directory off the default
16041directory track by changing the last directory sector pointer to a new
16042track, allocating the new sectors in the BAM, and manually placing (or
16043moving existing) file entries there.  The directory of an extended disk
16044can be read and the files that reside there can be loaded without
16045problems on a real drive.  However, this is still a very dangerous
16046practice as writing to the extended portion of the directory will cause
16047directory corruption in the non-extended part.  Many of the floppy
16048drives core ROM routines ignore the track value that the directory is on
16049and assume the default directory track for operations.
16050
1605116.9.2 BAM layout
16052-----------------
16053
16054The BAM only occupies up to four sectors on track 38, so the rest of the
16055track is empty and is available for file storage.  Below is a dump of
16056the first BAM block, 38/0.  A D82 will contain four BAM sectors, 38/0,
1605738/3, 38/6 and 38/9.  Each entry takes 5 bytes, 1 for the free count on
16058that track, and 4 for the BAM bits.
16059
16060         00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F
16061         -----------------------------------------------
16062     00: 26 03 43 00 01 33 1D FF FF FF 1F 1D FF FF FF 1F
16063     10: 1D FF FF FF 1F 1D FF FF FF 1F 1D FF FF FF 1F 1D
16064     20: FF FF FF 1F 1D FF FF FF 1F 1D FF FF FF 1F 1D FF
16065     30: FF FF 1F 1D FF FF FF 1F 1D FF FF FF 1F 1D FF FF
16066     40: FF 1F 1D FF FF FF 1F 1D FF FF FF 1F 1D FF FF FF
16067     50: 1F 1D FF FF FF 1F 1D FF FF FF 1F 1D FF FF FF 1F
16068     60: 1D FF FF FF 1F 1D FF FF FF 1F 1D FF FF FF 1F 1D
16069     70: FF FF FF 1F 1D FF FF FF 1F 1D FF FF FF 1F 1D FF
16070     80: FF FF 1F 1D FF FF FF 1F 1D FF FF FF 1F 1D FF FF
16071     90: FF 1F 1D FF FF FF 1F 1D FF FF FF 1F 1D FF FF FF
16072     A0: 1F 1D FF FF FF 1F 1D FF FF FF 1F 1D FF FF FF 1F
16073     B0: 1D FF FF FF 1F 1D FF FF FF 1F 1D FF FF FF 1F 1B
16074     C0: F6 FF FF 1F 1B FC FF FF 1F 1B FF FF FF 07 1B FF
16075     D0: FF FF 07 1B FF FF FF 07 1B FF FF FF 07 1B FF FF
16076     E0: FF 07 1B FF FF FF 07 1B FF FF FF 07 1B FF FF FF
16077     F0: 07 1B FF FF FF 07 1B FF FF FF 07 1B FF FF FF 07
16078
16079Bytes                  Description
16080$00-$01                T/S pointer to second BAM sector (38/3)
16081$02                    DOS version byte (0x43='C')
16082$03                    Reserved
16083$04                    Lowest track covered by this BAM (0x01=1)
16084$05                    Highest+1 track covered by this BAM (0x33=51)
16085$06-$0A                BAM for track 1.  The first byte shows the
16086                       "blocks free" for this track, the remaining 4
16087                       show the BAM for the track.
16088$0B-$0F                BAM for track 2
16089...                    ...
16090$FB-$FF                BAM for track 50
16091
16092Being bit-based, the BAM entries need some explanation.  The first track
16093entry in the above BAM sector is at offset 06, "1D FF FF FF 1F". The
16094first number is how many blocks are free on this track ($1D=29) and the
16095remainder is the bit representation of the usage map for the track.
16096These entries must be viewed in binary to make any sense.  First convert
16097the values to binary:
16098
16099      FF=11111111, FF=11111111, FF=11111111, 1F=00011111
16100
16101In order to make any sense from the binary notation, flip the bits
16102around.
16103
16104                 111111 11112222 222222
16105      01234567 89012345 67890123 456789...
16106      -------------------------- ---------
16107      11111111 11111111 11111111 11111000
16108      ^                              ^
16109      sector 0                  sector 28
16110
16111Since we are on the first track, we have 29 sectors, and only use up to
16112the bit 28 position.  If a bit is on (1), the sector is free.
16113Therefore, track 1 is clean, all sectors are free.  Any leftover bits
16114that refer to sectors that don't exist, like bits 29-31 in the above
16115example, are set to allocated.
16116
16117Second BAM block 38/3
16118
16119         00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F
16120         -----------------------------------------------
16121     00: 26 06 43 00 33 65 1B FF FF FF 07 1B FF FF FF 07
16122     10: 1B FF FF FF 07 19 FF FF FF 01 19 FF FF FF 01 19
16123     20: FF FF FF 01 19 FF FF FF 01 19 FF FF FF 01 19 FF
16124     30: FF FF 01 19 FF FF FF 01 19 FF FF FF 01 19 FF FF
16125     40: FF 01 19 FF FF FF 01 19 FF FF FF 01 17 FF FF 7F
16126     50: 00 17 FF FF 7F 00 17 FF FF 7F 00 17 FF FF 7F 00
16127     60: 17 FF FF 7F 00 17 FF FF 7F 00 17 FF FF 7F 00 17
16128     70: FF FF 7F 00 17 FF FF 7F 00 17 FF FF 7F 00 17 FF
16129     80: FF 7F 00 17 FF FF 7F 00 17 FF FF 7F 00 1D FF FF
16130     90: FF 1F 1D FF FF FF 1F 1D FF FF FF 1F 1D FF FF FF
16131     A0: 1F 1D FF FF FF 1F 1D FF FF FF 1F 1D FF FF FF 1F
16132     B0: 1D FF FF FF 1F 1D FF FF FF 1F 1D FF FF FF 1F 1D
16133     C0: FF FF FF 1F 1D FF FF FF 1F 1D FF FF FF 1F 1D FF
16134     D0: FF FF 1F 1D FF FF FF 1F 1D FF FF FF 1F 1D FF FF
16135     E0: FF 1F 1D FF FF FF 1F 1D FF FF FF 1F 1D FF FF FF
16136     F0: 1F 1D FF FF FF 1F 1D FF FF FF 1F 1D FF FF FF 1F
16137
16138Bytes                  Description
16139$00-$01                T/S pointer to third BAM sector (38/6)
16140$02                    DOS version byte (0x43='C')
16141$03                    Reserved
16142$04                    Lowest track covered by this BAM (0x33=51)
16143$05                    Highest+1 track covered by this BAM (0x65=101)
16144$06-$0A                BAM for track 51.  The first byte shows the
16145                       "blocks free" for this track, the remaining 4
16146                       show the BAM for the track.
16147$0B-$0F                BAM for track 52
16148...                    ...
16149$FB-$FF                BAM for track 100
16150
16151Third BAM block 38/6
16152
16153         00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F
16154         -----------------------------------------------
16155     00: 26 09 43 00 65 97 1D FF FF FF 1F 1D FF FF FF 1F
16156     10: 1D FF FF FF 1F 1D FF FF FF 1F 1D FF FF FF 1F 1D
16157     20: FF FF FF 1F 1D FF FF FF 1F 1D FF FF FF 1F 1D FF
16158     30: FF FF 1F 1D FF FF FF 1F 1D FF FF FF 1F 1D FF FF
16159     40: FF 1F 1D FF FF FF 1F 1D FF FF FF 1F 1D FF FF FF
16160     50: 1F 1D FF FF FF 1F 1B FF FF FF 07 1B FF FF FF 07
16161     60: 1B FF FF FF 07 1B FF FF FF 07 1B FF FF FF 07 1B
16162     70: FF FF FF 07 1B FF FF FF 07 1B FF FF FF 07 1B FF
16163     80: FF FF 07 1B FF FF FF 07 1B FF FF FF 07 1B FF FF
16164     90: FF 07 1B FF FF FF 07 1B FF FF FF 07 19 FF FF FF
16165     A0: 01 19 FF FF FF 01 19 FF FF FF 01 19 FF FF FF 01
16166     B0: 19 FF FF FF 01 19 FF FF FF 01 19 FF FF FF 01 19
16167     C0: FF FF FF 01 19 FF FF FF 01 19 FF FF FF 01 19 FF
16168     D0: FF FF 01 17 FF FF 7F 00 17 FF FF 7F 00 17 FF FF
16169     E0: 7F 00 17 FF FF 7F 00 17 FF FF 7F 00 17 FF FF 7F
16170     F0: 00 17 FF FF 7F 00 17 FF FF 7F 00 17 FF FF 7F 00
16171
16172Bytes                  Description
16173$00-$01                T/S pointer to fourth BAM sector (38/9)
16174$02                    DOS version byte (0x43='C')
16175$03                    Reserved
16176$04                    Lowest track covered by this BAM (0x65=101)
16177$05                    Highest+1 track covered by this BAM (0x97=151)
16178$06-$0A                BAM for track 101.  The first byte shows the
16179                       "blocks free" for this track, the remaining 4
16180                       show the BAM for the track.
16181$0B-$0F                BAM for track 102
16182...                    ...
16183$FB-$FF                BAM for track 150
16184
16185Fourth BAM block 38/9
16186
16187         00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F
16188         -----------------------------------------------
16189     00: 27 01 43 00 97 9B 17 FF FF 7F 00 17 FF FF 7F 00
16190     10: 17 FF FF 7F 00 17 FF FF 7F 00 00 00 00 00 00 00
16191     20: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
16192     30: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
16193     40: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
16194
16195Bytes                  Description
16196$00-$01                T/S pointer to first directory sector (39/1)
16197$02                    DOS version byte (0x43='C')
16198$03                    Reserved
16199$04                    Lowest track covered by this BAM (0x97=151)
16200$05                    Highest+1 track covered by this BAM (0x9B=155)
16201$06-$0A                BAM for track 151.  The first byte shows the
16202                       "blocks free" for this track, the remaining 4
16203                       show the BAM for the track.
16204$0B-$0F                BAM for track 152
16205...                    ...
16206$15-$19                BAM for track 154
16207$1A-$FF                Not used
16208
16209
16210File: vice.info,  Node: P00,  Prev: D82,  Up: File formats
16211
1621216.10 The P00 image format
16213==========================
16214
16215(This section was contributed by Peter Schepers and slightly edited by
16216Marco van den Heuvel.)
16217
16218These files were created for use in the PC64 emulator, written by
16219Wolfgang Lorenz.  Each one has the same layout with the filetype being
16220stored in the DOS extension (i.e.  Pxx is a PRG, Sxx is a SEQ, Uxx is a
16221USR and Rxx is a RELative file), and the header is only 26 bytes long.
16222
16223This is a dump of a Pxx file (PRG)...
16224
16225           00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F
16226           -----------------------------------------------
16227     0000: 43 36 34 46 69 6C 65 00 43 52 49 53 49 53 20 4D
16228     0010: 4F 55 4E 54 41 49 4E 00 00 00
16229
16230Bytes                  Description
16231$00-$06                ASCII string "C64File"
16232$07                    Always $00
16233$08-$17                Filename in PETASCII, padded with $00 (not $A0,
16234                       like a D64)
16235$18                    Always $00
16236$19                    REL file record size ($00 if not a REL file)
16237$1A-??                 Program data
16238
16239The 'xx' in the extension of the file is usually 00, except when we have
16240two DOS filenames which would be the same, but the C64 filenames are
16241different!  If we have two C64 filenames which are the same, they
16242*cannot* co-exist in the same directory.  If we have two files which do
16243convert down to be the same DOS filename, the extension is incremented
16244until an unused one is found (x01, x02, x03, up to x99).  We can have up
16245to 99 different C64 files with the same corresponding DOS names as
16246that's all the extension will hold (from P00 to P99).
16247
16248Each PC64 file only has one entry, there are no multi-file containers
16249allowed.  This could result in a large number of these files in a
16250directory, even for only a few programs, as each C64 file will result in
16251a PC64 file entry.  The best use for a PC64 file is a single-file
16252program, one which does not load anything else.
16253
1625416.11 The CRT cartridge image format
16255====================================
16256
16257This chapter is based on CRT.txt (rev1.14) compiled by Peter Schepers,
16258with additional contributions from Per Hakan Sundell, Markus Brenner,
16259Marco Van Den Heuvel, Groepaz.
16260
16261Cartridge files were introduced in the CCS64 emulator, written by Per
16262Hakan Sundell, and use the ".CRT" file extension.  This format was
16263created to handle the various ROM cartridges that exist, such as Action
16264Replay, the Power cartridge, and the Final Cartridge.
16265
16266Normal game cartridges can load into several different memory ranges
16267($8000-9FFF, $A000-BFFF or $E000-FFFF). Newer utility and freezer
16268cartridges were less intrusive, hiding themselves until called upon, and
16269still others used bank-switching techniques to allow much larger ROM's
16270than normal.  Because of these "stealthing" and bank-switching methods,
16271a special cartridge format was necessary, to let the emulator know where
16272the cartridge should reside, the control line states to enable it and
16273any special hardware features it uses.
16274
1627516.11.1 Header contents
16276-----------------------
16277
16278Here is a dump of a sample 8K normal cartridge, "Attack Of The Mutant
16279Camels"...
16280
16281           00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F        ASCII
16282           -----------------------------------------------   ----------------
16283     0000: 43 36 34 20 43 41 52 54 52 49 44 47 45 20 20 20   C64?CARTRIDGE???
16284     0010: 00 00 00 40 01 00 00 00 00 01 00 00 00 00 00 00   ???@????????????
16285     0020: 41 54 54 41 43 4B 20 4F 46 20 54 48 45 20 4D 55   ATTACK?OF?THE?MU
16286     0030: 54 41 4E 54 20 43 41 4D 45 4C 53 00 00 00 00 00   TANT?CAMELS?????
16287     0040: 43 48 49 50 00 00 20 10 00 00 00 00 80 00 20 00   CHIP????????.???
16288     0050: D3 9B BC FE C3 C2 CD 38 30 EA EA EA A9 01 85 13   .�?....80....?�?
16289     0060: 4C B3 9B A9 08 85 5A 88 D0 FD C6 5A D0 F9 60 D0   L��.?�Z�...Z.?`.
16290
16291       Bytes:$0000-000F - 16-byte cartridge signature  "C64  CARTRIDGE"  (padded
16292                          with space characters)
16293              0010-0013 - File header length  ($00000040,  in  high/low  format,
16294                          calculated from offset $0000). The default  (also  the
16295                          minimum) value is $40.  Some  cartridges  exist  which
16296                          show a value of $00000020 which is wrong.
16297              0014-0015 - Cartridge version (high/low, presently 01.00)
16298              0016-0017 - Cartridge hardware type ($0000, high/low)
16299                            0 - Normal cartridge
16300                            1 - Action Replay
16301                            2 - KCS Power Cartridge
16302                            3 - Final Cartridge III
16303                            4 - Simons' BASIC
16304                            5 - Ocean type 1*
16305                            6 - Expert Cartridge
16306                            7 - Fun Play, Power Play
16307                            8 - Super Games
16308                            9 - Atomic Power
16309                           10 - Epyx Fastload
16310                           11 - Westermann Learning
16311                           12 - Rex Utility
16312                           13 - Final Cartridge I
16313                           14 - Magic Formel
16314                           15 - C64 Game System, System 3
16315                           16 - Warp Speed
16316                           17 - Dinamic**
16317                           18 - Zaxxon, Super Zaxxon (SEGA)
16318                           19 - Magic Desk, Domark, HES Australia
16319                           20 - Super Snapshot V5
16320                           21 - Comal-80
16321                           22 - Structured BASIC
16322                           23 - Ross
16323                           24 - Dela EP64
16324                           25 - Dela EP7x8
16325                           26 - Dela EP256
16326                           27 - Rex EP256
16327                           28 - Mikro Assembler
16328                           29 - Final Cartridge Plus
16329                           30 - Action Replay 4
16330                           31 - Stardos
16331                           32 - EasyFlash
16332                           33 - EasyFlash Xbank
16333                           34 - Capture
16334                           35 - Action Replay 3
16335                           36 - Retro Replay
16336                           37 - MMC64
16337                           38 - MMC Replay
16338                           39 - IDE64
16339                           40 - Super Snapshot V4
16340                           41 - IEEE-488
16341                           42 - Game Killer
16342                           43 - Prophet64
16343                           44 - EXOS
16344                           45 - Freeze Frame
16345                           46 - Freeze Machine
16346                           47 - Snapshot64
16347                           48 - Super Explode V5.0
16348                           49 - Magic Voice
16349                           50 - Action Replay 2
16350                           51 - MACH 5
16351                           52 - Diashow-Maker
16352                           53 - Pagefox
16353                           54 - Kingsoft
16354                           55 - Silverrock 128K Cartridge
16355                           56 - Formel 64
16356                           57 - RGCD
16357                           58 - RR-Net MK3
16358                           59 - EasyCalc
16359                           60 - GMod2
16360                   0018 - Cartridge port EXROM line status
16361                           0 - active (lo)
16362                           1 - inactive (hi)
16363                   0019 - Cartridge port GAME line status
16364                           0 - active (lo)
16365                           1 - inactive (hi)
16366              001A-001F - Reserved for future use
16367              0020-003F - 32-byte cartridge  name  "CCSMON"  (uppercase,  padded
16368                          with null characters)
16369              0040-xxxx - Cartridge contents (called CHIP PACKETS, as there  can
16370                          be more than one  per  CRT  file).  See  below  for  a
16371                          breakdown of the CHIP format.
16372
16373(*Note: Ocean type 1 includes Navy Seals, Robocop 2 & 3, Shadow of the
16374Beast, Toki, Terminator 2 and more)
16375
16376(**Note: Dinamic includes Narco Police and more)
16377
1637816.11.2 CHIP Contents
16379---------------------
16380
16381The following is the contents of the CHIP packet, from position $0040 on
16382in the CRT file.  Note I have re-adjusted the starting address to be
16383$0000, since we are now looking at a file contained in the .CRT file,
16384and all size references are from where it starts.
16385
16386           00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F        ASCII
16387           -----------------------------------------------   ----------------
16388     0000: 43 48 49 50 00 00 20 10 00 00 00 00 80 00 20 00   CHIP????????.???
16389     0010: D3 9B BC FE C3 C2 CD 38 30 EA EA EA A9 01 85 13   .�?....80....?�?
16390     0020: 4C B3 9B A9 08 85 5A 88 D0 FD C6 5A D0 F9 60 D0   L��.?�Z�...Z.?`.
16391     0030: F2 60 A9 04 85 49 A9 00 85 48 A2 00 A5 48 9D 40   ?`.?�I.?�H.?�H�@
16392     0040: 03 A5 49 9D 60 03 A5 48 18 69 28 85 48 A5 49 69   ?�I�`?�H?i(�H�Ii
16393     0050: 00 85 49 E8 E0 18 D0 E4 60 A6 03 A4 02 BD 40 03   ?�I???.?`?????@?
16394
16395       Bytes:$0000-0003 - Contained ROM signature "CHIP" (note there can be more
16396                          than one image in a .CRT file)
16397              0004-0007 - Total packet length ($00002010,  ROM  image  size  and
16398                          header combined) (high/low format)
16399              0008-0009 - Chip type
16400                           0 - ROM
16401                           1 - RAM, no ROM data
16402                           2 - Flash ROM
16403              000A-000B - Bank number ($0000 - normal cartridge)
16404              000C-000D - Starting load address (high/low format)
16405              000E-000F - ROM image size in bytes  (high/low  format,  typically
16406                          $2000 or $4000)
16407              0010-xxxx - ROM data
16408
16409The following is a chart taken from the "Commodore Programmers Reference
16410Guide".  It details the state of various areas of memory depending on
16411the state of the control lines.
16412
16413Legend: L - ROML (low) H - ROMH (high) G - GAME E - EXROM
16414
16415     Addr       LHGE   LHGE   LHGE   LHGE   LHGE   LHGE   LHGE   LHGE   LHGE
16416     Range
16417                1111   101X   1000   011X   001X   1110   0100   1100   XX01
16418              default                00X0                             Ultimax
16419     -------------------------------------------------------------------------
16420     E000-FFFF Kernal  RAM    RAM   Kernal  RAM   Kernal Kernal Kernal ROMH(*)
16421     D000-DFFF IO/CHR IO/CHR IO/RAM IO/CHR  RAM   IO/CHR IO/CHR IO/CHR   I/O
16422     C000-CFFF  RAM    RAM    RAM    RAM    RAM    RAM    RAM    RAM     -
16423     A000-BFFF BASIC   RAM    RAM    RAM    RAM   BASIC   ROMH   ROMH    -
16424     8000-9FFF  RAM    RAM    RAM    RAM    RAM    ROML   RAM    ROML  ROML(*)
16425     4000-7FFF  RAM    RAM    RAM    RAM    RAM    RAM    RAM    RAM     -
16426     1000-3FFF  RAM    RAM    RAM    RAM    RAM    RAM    RAM    RAM     -
16427     0000-0FFF  RAM    RAM    RAM    RAM    RAM    RAM    RAM    RAM    RAM
16428
16429(*) Internal memory does not respond to write accesses in these areas
16430
16431From the above chart, the following table can be built.  It shows
16432standard cartridges, either 8K or 16K in size, and the memory ranges
16433they load into.
16434
16435     Type     Size   Game   EXRom  Low Bank  High Bank
16436              in K   Line   Line    (ROML)    (ROMH)
16437     -------------------------------------------------
16438     Normal    8k     hi     lo     $8000      ----
16439     Normal    16k    lo     lo     $8000     $A000
16440     Ultimax   8k     lo     hi     $E000      ----
16441
16442The ROMH and ROML lines are CPU-controlled status lines, used to bank
16443in/out RAM, ROM or I/O, depending on what is needed at the time.
16444
16445Ultimax cartridges typically are situated in the $E000-FFFF (8K) ROM
16446address range.  There are some cartridges which only use 4K of the 8K
16447allocation.  If the cartridge is 16K in size, then it will reside in
16448both $8000-9FFF and $E000-FFFF.
16449
1645016.11.3 Cartridge Specifics
16451---------------------------
16452
1645316.11.3.1 0 - Normal cartridge
16454..............................
16455
16456Size                   8Kb
16457EXROM                  active (lo) (0)
16458GAME                   inactive (hi) (1)
16459Load address           $8000-9FFF
16460
16461           00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F        ASCII
16462           -----------------------------------------------   ----------------
16463     0000: 43 36 34 20 43 41 52 54 52 49 44 47 45 20 20 20   C64?CARTRIDGE???
16464     0010: 00 00 00 40 01 00 00 00 00 01 00 00 00 00 00 00   ???@????????????
16465     0020: 41 54 54 41 43 4B 20 4F 46 20 54 48 45 20 4D 55   ATTACK?OF?THE?MU
16466     0030: 54 41 4E 54 20 43 41 4D 45 4C 53 00 00 00 00 00   TANT?CAMELS?????
16467     0040: 43 48 49 50 00 00 20 10 00 00 00 00 80 00 20 00   CHIP????????.???
16468     0050: D3 9B BC FE C3 C2 CD 38 30 EA EA EA A9 01 85 13   .�?....80....?�?
16469
16470The second sample below is a dump of "Music Machine", a 4Kb ULTIMAX mode
16471cartridge.  It is still identified as a "standard cartridge" according
16472to the ID.
16473
16474Normal cartridge
16475
16476Size                   4Kb (ULTIMAX mode)
16477EXROM                  inactive (hi) (1)
16478GAME                   active (lo) (0)
16479Load address           $F000-F7FF
16480
16481           00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F        ASCII
16482           -----------------------------------------------   ----------------
16483     0000: 43 36 34 20 43 41 52 54 52 49 44 47 45 20 20 20   C64?CARTRIDGE???
16484     0010: 00 00 00 40 01 00 00 00 01 00 00 00 00 00 00 00   ???@????????????
16485     0020: 4D 55 53 49 43 20 4D 41 43 48 49 4E 45 00 00 00   MUSIC?MACHINE???
16486     0030: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ????????????????
16487     0040: 43 48 49 50 00 00 10 10 00 00 00 00 F0 00 10 00   CHIP????????????
16488     0050: 3C 66 C3 C3 66 3C FF FF 18 3C 66 7E 66 66 66 00   <f..f<???<f~fff?
16489
16490The third sample is a dump of "Adventure Creator", a 16Kb standard
16491cartridge.
16492
16493Normal cartridge
16494
16495Size                   16Kb
16496EXROM                  active (lo) (0)
16497GAME                   active (lo) (0)
16498Load address           $8000-BFFF
16499
16500           00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F        ASCII
16501           -----------------------------------------------   ----------------
16502     0000: 43 36 34 20 43 41 52 54 52 49 44 47 45 20 20 20   C64?CARTRIDGE???
16503     0010: 00 00 00 40 01 00 00 00 00 00 00 00 00 00 00 00   ???@????????????
16504     0020: 41 64 76 65 6E 74 75 72 65 20 43 72 65 61 74 6F   Adventure?Creato
16505     0030: 72 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   r???????????????
16506     0040: 43 48 49 50 00 00 40 10 00 00 00 00 80 00 40 00   CHIP???????.?@?
16507     0050: 09 80 81 EA C3 C2 CD 38 30 A2 00 78 D8 8E 11 D0   ?.�....80.?x.�?.
16508
1650916.11.3.2 1 - Action Replay
16510...........................
16511
16512Size                   32Kb (4 banks of 8Kb each)
16513EXROM                  active (lo) (0)
16514GAME                   inactive (hi) (1)
16515Load address           $8000-9FFF (all modules)
16516
16517           00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F        ASCII
16518           -----------------------------------------------   ----------------
16519     0000: 43 36 34 20 43 41 52 54 52 49 44 47 45 20 20 20   C64?CARTRIDGE???
16520     0010: 00 00 00 40 01 00 00 01 00 01 00 00 00 00 00 00   ???@????????????
16521     0020: 41 63 74 69 6F 6E 20 52 65 70 6C 61 79 20 56 00   Action?Replay?V?
16522     0030: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ????????????????
16523     0040: 43 48 49 50 00 00 20 10 00 00 00 00 80 00 20 00   CHIP????????.???
16524     0050: 09 80 0C 80 C3 C2 CD 38 30 4C 60 80 4C 63 80 4C   ?.?....80L`.Lc.L
16525
16526This cart has 32Kb of ROM, and 8Kb of RAM. The bank switching is done by
16527writing to the I/O-1 range as follows:
16528
16529         bit  meaning
16530         ---  -------
16531         7    extra ROM bank selector (A15) (unused)
16532         6    1 = resets FREEZE-mode (turns back to normal mode)
16533         5    1 = enable RAM at ROML ($8000-$9FFF) &
16534                  I/O-2 ($DF00-$DFFF = $9F00-$9FFF)
16535         4    ROM bank selector high (A14)
16536         3    ROM bank selector low  (A13)
16537         2    1 = disable cartridge (turn off $DE00)
16538         1    1 = /EXROM high
16539         0    1 = /GAME low
16540
16541Additionally the RAM or ROM can be available through a window in the
16542I/O-2 range.
16543
1654416.11.3.3 2 - KCS Power Cartridge
16545.................................
16546
16547Size                   16Kb (2 banks of 8K each)
16548EXROM                  active (lo) (0)
16549GAME                   active (lo) (0)
16550Load address           module #1 - $8000-9FFF module #2 - $A000-BFFF
16551
16552           00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F        ASCII
16553           -----------------------------------------------   ----------------
16554     0000: 43 36 34 20 43 41 52 54 52 49 44 47 45 20 20 20   C64?CARTRIDGE???
16555     0010: 00 00 00 20 01 00 00 02 00 00 00 00 00 00 00 00   ????????????????
16556     0020: 4B 43 53 20 50 6F 77 65 72 20 43 61 72 74 72 69   KCS?Power?Cartri
16557     0030: 64 67 65 00 00 00 00 00 00 00 00 00 00 00 00 00   dge?????????????
16558     0040: 43 48 49 50 00 00 20 10 00 00 00 00 80 00 20 00   CHIP????????.???
16559     0050: 09 80 5E FE C3 C2 CD 38 30 78 D8 A2 FF 9A A9 27   ?.^....80x..?..'
16560     ...
16561     2050: 43 48 49 50 00 00 20 10 00 00 00 00 A0 00 20 00   CHIP????????�???
16562     2060: 97 E3 16 A1 FF FF FF 20 13 A0 A5 01 09 01 85 01   �.?.?????��???�?
16563
1656416.11.3.4 3 - Final Cartridge III
16565.................................
16566
16567Size                   64Kb (4 banks of 16Kb each)
16568EXROM                  inactive (hi) (1)
16569GAME                   inactive (hi) (1)
16570Load address           $8000-BFFF (all modules)
16571
16572           00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F        ASCII
16573           -----------------------------------------------   ----------------
16574     0000: 43 36 34 20 43 41 52 54 52 49 44 47 45 20 20 20   C64?CARTRIDGE???
16575     0010: 00 00 00 40 01 00 00 03 00 00 00 00 00 00 00 00   ???@????????????
16576     0020: 46 69 6E 61 6C 20 43 61 72 74 72 69 64 67 65 20   Final?Cartridge?
16577     0030: 49 49 49 20 31 39 38 37 00 00 00 00 00 00 00 00   III?1987????????
16578     0040: 43 48 49 50 00 00 40 10 00 00 00 00 80 00 40 00   CHIP??@?????.?@?
16579     0050: 09 80 5E FE C3 C2 CD 38 30 4C 4C 80 4C 55 95 4C   ?.^....80LL.LU�L
16580     ...
16581     4050: 43 48 49 50 00 00 40 10 00 00 00 01 80 00 40 00   CHIP??@?????.?@?
16582     4060: 01 02 00 81 5D 81 61 81 99 81 D8 81 0B 82 33 82   ???�]�a���.�?�3�
16583     ...
16584     8060: 43 48 49 50 00 00 40 10 00 00 00 02 80 00 40 00   CHIP??@?????.?@?
16585     8070: 20 43 80 20 52 80 A9 4E 20 05 DE 20 FD BF AD 39   ?C.?R..N??.?..�9
16586     ...
16587     C070: 43 48 49 50 00 00 40 10 00 00 00 03 80 00 40 00   CHIP??@?????.?@?
16588     C080: A2 06 BD DD 85 95 05 CA 10 F8 AE A0 02 E8 EC A2   .??.��?.??��???.
16589
16590A total of 64 kB of ROM memory is organized into four $4000 banks
16591located at $8000-$BFFF.
16592
16593The banks are arranged in the following way:
16594
16595         Bank 0:  BASIC, Monitor, Disk-Turbo
16596         Bank 1:  Notepad, BASIC (Menu Bar)
16597         Bank 2:  Desktop, Freezer/Print
16598         Bank 3:  Freezer, Compression
16599
16600The cartridges uses the entire I/O-1 and I/O-2 range.  Bank switching is
16601done by writing the bank number plus $40 into memory location $DFFF. For
16602instance, to select bank 2, $DFFF is set to $42.
16603
16604The CRT file contains four CHIP blocks, each block with a start address
16605of $8000, length $4000 and the bank number in the bank field.  In the
16606cartridge header, both EXROM ($18) and GAME ($19) are set to 1 to enable
16607the 16 kB ROM configuration.
16608
16609The registers are arranged in the following way:
16610
16611One register at $DFFF:
16612
16613         bit  meaning
16614         ---  -------
16615         7      Hide this register (1 = hidden)
16616         6      NMI line  (0 = low = active) *1)
16617         5      GAME line  (0 = low = active) *2)
16618         4      EXROM line (0 = low = active)
16619         2-3    unassigned (usually set to 0)
16620         0-1    number of bank to show at $8000
16621
166221) if either the freezer button is pressed, or bit 6 is 0, then an NMI
16623is generated
16624
166252) if the freezer button is pressed, GAME is also forced low
16626
16627The rest of I/O-1/I/O-2 contain a mirror of the last 2 pages of the
16628currently selected ROM bank (also at $dfff, contrary to what some other
16629documents say)
16630
1663116.11.3.5 4 - Simons' Basic
16632...........................
16633
16634Size                   16Kb (2 banks of 8kb each)
16635EXROM                  active (lo) (0)
16636GAME                   inactive (hi) (1)
16637Load address           module #1 - $8000-9FFF module #2 - $A000-BFFF
16638
16639           00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F        ASCII
16640           -----------------------------------------------   ----------------
16641     0000: 43 36 34 20 43 41 52 54 52 49 44 47 45 20 20 20   C64?CARTRIDGE???
16642     0010: 00 00 00 40 01 00 00 04 00 00 00 00 00 00 00 00   ???@????????????
16643     0020: 53 69 6D 6F 6E 27 73 20 42 61 73 69 63 00 00 00   Simon's?Basic???
16644     0030: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ????????????????
16645     0040: 43 48 49 50 00 00 20 10 00 00 00 00 80 00 20 00   CHIP????????.???
16646     0050: 52 81 52 81 C3 C2 CD 38 30 41 4C 52 81 20 2C 81   R�R�...80ALR�?,�
16647     ...
16648     2050: 43 48 49 50 00 00 20 10 00 00 00 00 A0 00 20 00   CHIP????????�???
16649     2060: 20 A4 A6 99 9E CB A0 05 A5 A8 91 20 A4 A6 99 A2   ???��.�?�?.???�.
16650
16651Simons' BASIC permanently uses 16 kB ($4000) bytes of cartridge memory
16652from $8000-$BFFF. However, through some custom bank-switching logic the
16653upper area ($A000-$BFFF) may be disabled so Simons' BASIC may use it as
16654additional RAM. Writing a value of $01 to address location $DE00 banks
16655in ROM, $00 disables ROM and enables RAM.
16656
16657The CRT file contains two CHIP blocks of length $2000 each, the first
16658block having a start address of $8000, the second block $A000.  In the
16659cartridge header, EXROM ($18) is set to 0, GAME ($19) is set to 1 to
16660indicate the RESET/power-up configuration of 8 kB ROM.
16661
1666216.11.3.6 5 - Ocean type 1
16663..........................
16664
16665Size                   32Kb, 128Kb, 256Kb or 512Kb sizes (4, 16, 32 or
16666                       64 banks of 8Kb)
16667EXROM                  active (lo) (0)
16668GAME                   active (lo) (0)
16669Load address           Banks 00-15 - $8000-9FFF Banks 16-31 -
16670                       $A000-BFFF (except Terminator 2)
16671
16672            00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F        ASCII
16673            -----------------------------------------------   ----------------
16674     00000: 43 36 34 20 43 41 52 54 52 49 44 47 45 20 20 20   C64?CARTRIDGE???
16675     00010: 00 00 00 40 01 00 00 05 00 00 00 00 00 00 00 00   ???@????????????
16676     00020: 53 48 41 44 4F 57 20 4F 46 20 54 48 45 20 42 45   SHADOW?OF?THE?BE
16677     00030: 41 53 54 00 00 00 00 00 00 00 00 00 00 00 00 00   AST?????????????
16678     00040: 43 48 49 50 00 00 20 10 00 00 00 00 80 00 20 00   CHIP????????.???
16679     00050: 09 80 83 81 C3 C2 CD 38 30 4C 83 81 4C 76 82 80   ?.��...80L��Lv�.
16680      ...
16681     02050: 43 48 49 50 00 00 20 10 00 00 00 01 80 00 20 00   CHIP????????.???
16682     02060: 59 6D 00 56 AD 00 55 AE F0 00 01 A0 FE 00 01 F8   Ym?V�?U�???�.???
16683      ...
16684     20140: 43 48 49 50 00 00 20 10 00 00 00 10 A0 00 20 00   CHIP????????�???
16685     20150: 0A 9A 55 FF 9B 69 57 FE AA 65 96 FE 65 0F D6 D9   ?.U?�iW.�e�.e?..
16686
16687Here is a list of the known OCEAN cartridges:
16688
16689         Batman The Movie    (128 kB)
16690         Battle Command      (128 kB)
16691         Double Dragon       (128 kB)
16692         Navy Seals          (128 kB)
16693         Pang                (128 kB)
16694         Robocop 3           (128 kB)
16695         Space Gun           (128 kB)
16696         Toki                (128 kB)
16697         Chase H.Q. II       (256 kB)
16698         Robocop 2           (256 kB)
16699         Shadow of the Beast (256 kB)
16700         Terminator 2        (512 kB)
16701
16702The 32Kb type of cart has 4 banks of 8Kb ($2000), banked in at
16703$8000-$9FFF.
16704
16705The 128Kb type of cart has 16 banks of 8Kb ($2000), banked in at
16706$8000-$9FFF.
16707
16708The 256Kb type of cart has 32 banks of 8Kb ($2000), 16 banked in at
16709$8000-$9FFF, and 16 banked in at $A000-$BFFF.
16710
16711The 512Kb type of cart has 64 banks of 8Kb ($2000), banked in at
16712$8000-$9FFF.
16713
16714Bank switching is done by writing to $DE00.  The lower six bits give the
16715bank number (ranging from 0-63).  Bit 7 in this selection word is always
16716set.
16717
1671816.11.3.7 6 - Expert Cartridge
16719..............................
16720
16721Size                   8Kb
16722EXROM                  inactive (hi) (1)
16723GAME                   active (lo) (0)
16724Load address           $8000-9FFF
16725
16726           00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F        ASCII
16727           -----------------------------------------------   ----------------
16728     0000: 43 36 34 20 43 41 52 54 52 49 44 47 45 20 20 20   C64?CARTRIDGE???
16729     0010: 00 00 00 40 01 00 00 06 01 00 00 00 00 00 00 00   ???@????????????
16730     0020: 45 78 70 65 72 74 20 43 61 72 74 72 69 64 67 65   Expert?Cartridge
16731     0030: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ????????????????
16732     0040: 43 48 49 50 00 00 40 10 00 02 00 00 80 00 20 00   CHIP??@?????.???
16733     0050: 00 00 00 0A F3 00 00 00 00 00 00 00 00 00 00 00   ????????????????
16734
1673516.11.3.8 7 - Fun Play, Power Play
16736..................................
16737
16738Size                   128Kb (16 banks of 8Kb modules)
16739EXROM                  active (lo) (0)
16740GAME                   inactive (hi) (1)
16741Load address           $8000-9FFF (all modules)
16742
16743            00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F        ASCII
16744            -----------------------------------------------   ----------------
16745     00000: 43 36 34 20 43 41 52 54 52 49 44 47 45 20 20 20   C64?CARTRIDGE???
16746     00010: 00 00 00 40 01 00 00 07 00 01 00 00 00 00 00 00   ???@????????????
16747     00020: 46 55 4E 20 50 4C 41 59 00 00 00 00 00 00 00 00   FUN?PLAY????????
16748     00030: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ????????????????
16749     00040: 43 48 49 50 00 00 20 10 00 00 00 00 80 00 20 00   CHIP????????.???
16750     00050: 1E 80 86 EA C3 C2 CD 38 30 1B 00 81 0D 08 80 00   ?.�....80??�??.?
16751      ...
16752     02050: 43 48 49 50 00 00 20 10 00 00 00 08 80 00 20 00   CHIP????????.???
16753     02060: 78 A2 F0 86 01 BD 1D 08 9D F8 00 CA D0 F7 4C 00   x.?�????�??..?L?
16754      ...
16755     04060: 43 48 49 50 00 00 20 10 00 00 00 10 80 00 20 00   CHIP????????.???
16756     04070: 38 E5 68 85 03 B0 11 27 03 12 C0 18 69 27 42 90   8?h�?�?'??.?i'B�
16757      ...
16758     06070: 43 48 49 50 00 00 20 10 00 00 00 18 80 00 20 00   CHIP????????.???
16759     06080: 44 D0 5E 06 02 C0 44 11 40 04 11 44 01 5F 1C 73   D.^??.D?@??D?_?s
16760      ...
16761     1E130: 43 48 49 50 00 00 20 10 00 00 00 39 80 00 20 00   CHIP???????9.???
16762     1E140: 85 EB 41 EA 9E 08 03 00 C0 06 18 01 00 C0 08 03   �?A.�???.????.??
16763
16764The FUN PLAY Cartridge uses $DE00 for bank selection, and uses 8Kb banks
16765($2000) at $8000-$9FFF. There are 16 banks of ROM memory and are
16766referenced by the following values:
16767
16768         $00 -> Bank 0
16769         $08 -> Bank 1
16770         $10 -> Bank 2
16771         $18 -> Bank 3
16772         $20 -> Bank 4
16773         $28 -> Bank 5
16774         $30 -> Bank 6
16775         $38 -> Bank 7
16776         $01 -> Bank 8
16777         $09 -> Bank 9
16778         $11 -> Bank 10
16779         $19 -> Bank 11
16780         $21 -> Bank 12
16781         $29 -> Bank 13
16782         $31 -> Bank 14
16783         $39 -> Bank 15
16784
16785The bank field in the chip headers is set according to the value written
16786to $DE00.  The following bits are used for bank decoding in $DE00 (0
16787being the LSB, 3 being the MSB).
16788
16789             Bit# 76543210
16790                  xx210xx3
16791
16792After copying memory from the ROM banks, the selection program writes a
16793value of $86 to $DE00.  This seems either to reset or disable the
16794cartridge ROM.
16795
1679616.11.3.9 8 - Super Games
16797.........................
16798
16799Size                   64Kb (4 banks of 16Kb each)
16800EXROM                  active (lo) (0)
16801GAME                   active (lo) (0)
16802Startup mode           16k game
16803Load address           $8000-BFFF (all modules)
16804
16805           00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F        ASCII
16806           -----------------------------------------------   ----------------
16807     0000: 43 36 34 20 43 41 52 54 52 49 44 47 45 20 20 20   C64?CARTRIDGE???
16808     0010: 00 00 00 40 01 00 00 08 00 00 00 00 00 00 00 00   ???@????????????
16809     0020: 53 55 50 45 52 20 47 41 4D 45 53 00 00 00 00 00   SUPER?GAMES?????
16810     0030: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ????????????????
16811     0040: 43 48 49 50 00 00 40 10 00 00 00 00 80 00 40 00   CHIP??@?????.?@?
16812     0050: 0A 80 0A 80 C3 C2 CD 38 30 00 A9 80 A0 00 85 FB   ?.?....80?..�?�.
16813     ...
16814     4050: 43 48 49 50 00 00 40 10 00 00 00 01 80 00 40 00   CHIP??@?????.?@?
16815     4060: 27 80 A8 80 C3 C2 CD 38 30 00 40 C0 40 C0 40 C0   '.?....80?@.@.@.
16816     ...
16817     8060: 43 48 49 50 00 00 40 10 00 00 00 02 80 00 40 00   CHIP??@?????.?@?
16818     8070: 00 00 00 49 4D C7 64 47 46 45 F3 48 DC 08 7E 0B   ???IM.dGFE?H.?~?
16819     ...
16820     C070: 43 48 49 50 00 00 40 10 00 00 00 03 80 00 40 00   CHIP??@?????.?@?
16821     C080: D5 F9 F0 C1 D5 F7 F0 BD E8 B5 02 F0 FB C9 05 30   .??..????�??..?0
16822
16823The Super Games cartridge uses 4 16Kb banks ($8000-$BFFF) of ROM memory.
16824Bank selecting is done by writing to $DF00.
16825
16826$DF00 register is as follows:
16827
16828         bit   meaning
16829         ---   -------
16830          0    bank bit 0
16831          1    bank bit 1
16832          2    mode (0 = EXROM/GAME (bridged on the same wire - 16k config)
16833                     1 = cartridge disabled)
16834          3    write-protect-latch  (1 = no more changes are possible until
16835                                         the next hardware-reset )
16836         4-7   unused
16837
1683816.11.3.10 9 - Atomic Power
16839...........................
16840
16841Size                   32Kb (4 banks of 8Kb modules)
16842EXROM                  active (lo) (0)
16843GAME                   inactive (hi) (1)
16844Load address           $8000-9FFF (all modules)
16845
16846           00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F        ASCII
16847           -----------------------------------------------   ----------------
16848     0000: 43 36 34 20 43 41 52 54 52 49 44 47 45 20 20 20   C64?CARTRIDGE???
16849     0010: 00 00 00 40 01 00 00 09 00 01 00 00 00 00 00 00   ???@????????????
16850     0020: 41 74 6F 6D 69 63 20 50 6F 77 65 72 00 00 00 00   Atomic?Power????
16851     0030: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ????????????????
16852     0040: 43 48 49 50 00 00 20 10 00 00 00 00 80 00 20 00   CHIP????????.???
16853     0050: 09 80 0C 80 C3 C2 CD 38 30 4C 41 80 4C 1E 80 4C   ?.?....80LA.L?.L
16854     ...
16855     2050: 43 48 49 50 00 00 20 10 00 00 00 01 80 00 20 00   CHIP????????.???
16856     2060: 09 80 0C 80 C3 C2 CD 38 30 4C 3F 80 4C 91 80 4C   ?.?....80L?.L..L
16857     ...
16858     4060: 43 48 49 50 00 00 20 10 00 00 00 02 80 00 20 00   CHIP????????.???
16859     4070: EF FC 09 80 C3 C2 CD 38 30 4C 27 80 4C DB 81 4C   ?.?....80L'.L.�L
16860     ...
16861     6070: 43 48 49 50 00 00 20 10 00 00 00 03 80 00 20 00   CHIP????????.???
16862     6080: 09 80 0C 80 C3 C2 CD 38 30 4C 73 86 4C 30 80 4C   ?.?....80Ls�L0.L
16863
16864This cart has 32Kb of ROM and 8Kb of RAM
16865
16866Writing to I/O-1 will do the following:
16867
16868         bit  meaning
16869         ---  -------
16870         7    extra ROM bank selector (A15) (unused)
16871         6    1 = resets FREEZE-mode (turns back to normal mode)
16872         5    1 = enable RAM at ROML ($8000-$9FFF) &
16873                  I/O-2 ($DF00-$DFFF = $9F00-$9FFF)
16874         4    ROM bank selector high (A14)
16875         3    ROM bank selector low  (A13)
16876         2    1 = disable cartridge (turn off $DE00)
16877         1    1 = /EXROM high
16878         0    1 = /GAME low
16879
16880If bit 5 (RAM enable) is 1, bit 0,1 (exrom/game) is == 2 (cart off), bit
168812,6,7 (cart disable, freeze clear) are 0, then cart ROM (Bank 0..3) is
16882mapped at 8000-9FFF, and cart RAM (Bank 0) is mapped at A000-BFFF and
16883cart RAM (Bank 0) is is enabled in the I/O-2 area using 16Kb game
16884config.
16885
16886The cart RAM or ROM is available through a window in the I/O-2 range.
16887
1688816.11.3.11 10 - Epyx Fastload
16889.............................
16890
16891Size                   8Kb
16892EXROM                  active (lo) (0)
16893GAME                   inactive (hi) (1)
16894Load address           $8000-9FFF
16895
16896           00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F        ASCII
16897           -----------------------------------------------   ----------------
16898     0000: 43 36 34 20 43 41 52 54 52 49 44 47 45 20 20 20   C64?CARTRIDGE???
16899     0010: 00 00 00 40 01 00 00 0A 00 01 00 00 00 00 00 00   ???@????????????
16900     0020: 45 50 59 58 20 46 41 53 54 4C 4F 41 44 00 00 00   EPYX?FASTLOAD???
16901     0030: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ????????????????
16902     0040: 43 48 49 50 00 00 20 10 00 00 00 00 80 00 20 00   CHIP????????.???
16903     0050: 30 80 5E FE C3 C2 CD 38 30 20 04 90 4C 38 DF AB   0.^....80??�L8?�
16904
16905The Epyx FastLoad cart uses a simple capacitor to toggle the ROM on and
16906off:
16907
16908the capacitor is discharged, and 8k game config enabled, by either
16909reading ROML or reading I/O-1.  If none of those accesses happen the
16910capacitor will charge, and if it is charged (after 512 cycles) then the
16911ROM will get disabled.
16912
1691316.11.3.12 11 - Westermann Learning
16914...................................
16915
16916Size                   16Kb
16917EXROM                  active (lo) (0)
16918GAME                   active (lo) (0)
16919Load address           $8000-BFFF
16920
16921           00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F        ASCII
16922           -----------------------------------------------   ----------------
16923     0000: 43 36 34 20 43 41 52 54 52 49 44 47 45 20 20 20   C64?CARTRIDGE???
16924     0010: 00 00 00 40 01 00 00 0B 00 00 00 00 00 00 00 00   ???@????????????
16925     0020: 57 45 53 54 45 52 4D 41 4E 4E 00 00 00 00 00 00   WESTERMANN??????
16926     0030: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ????????????????
16927     0040: 43 48 49 50 00 00 20 10 00 00 00 00 80 00 40 00   CHIP????????.?@?
16928     0050: 09 80 9C 80 C3 C2 CD 38 30 A2 00 8E 16 D0 20 84   ?.�....80.?�?.?�
16929
16930Any read from the I/O-2 range will switch the cart off.
16931
1693216.11.3.13 12 - Rex Utility
16933...........................
16934
16935Size                   8K
16936EXROM                  active (lo) (0)
16937GAME                   inactive (hi) (1)
16938Load address           $8000-9FFF
16939
16940           00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F        ASCII
16941           -----------------------------------------------   ----------------
16942     0000: 43 36 34 20 43 41 52 54 52 49 44 47 45 20 20 20   C64?CARTRIDGE???
16943     0010: 00 00 00 40 01 00 00 0C 00 01 00 00 00 00 00 00   ???@????????????
16944     0020: 52 45 58 00 00 00 00 00 00 00 00 00 00 00 00 00   REX?????????????
16945     0030: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ????????????????
16946     0040: 43 48 49 50 00 00 20 10 00 00 00 00 80 00 20 00   CHIP????????.???
16947     0050: 08 80 C1 FE C3 C2 CD 38 30 6C 95 E3 20 A3 FD 20   ?......80l�.?�.?
16948
16949Reading from $DF00-DFBF disables ROM, reading from $DFC0-DFFF enables
16950ROM (8k game config).
16951
1695216.11.3.14 13 - Final Cartridge I
16953.................................
16954
16955Size                   16Kb
16956EXROM                  active (lo) (0)
16957GAME                   active (lo) (0)
16958Load address           $8000-BFFF
16959
16960           00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F        ASCII
16961           -----------------------------------------------   ----------------
16962     0000: 43 36 34 20 43 41 52 54 52 49 44 47 45 20 20 20   C64?CARTRIDGE???
16963     0010: 00 00 00 40 01 00 00 0D 00 00 00 00 00 00 00 00   ???@????????????
16964     0020: 54 68 65 20 46 69 6E 61 6C 20 43 61 72 74 72 69   The?Final?Cartri
16965     0030: 64 67 65 20 49 00 00 00 00 00 00 00 00 00 00 00   dge?I???????????
16966     0040: 43 48 49 50 00 00 40 10 00 00 00 00 80 00 40 00   CHIP??@?????.?@?
16967     0050: 80 BA 5E FE C3 C2 CD 38 30 00 A0 A0 20 2D FE 58   .�^....80?��?-.X
16968
16969Any access to I/O-1 turns cartridge ROM off.  Any access to I/O-2 turns
16970cartridge ROM on.
16971
16972The cart ROM is visible in I/O-1 and I/O-2.
16973
1697416.11.3.15 14 - Magic Formel
16975............................
16976
16977Size                   64Kb (8 banks of 8Kb)
16978EXROM                  inactive (hi) (1)
16979GAME                   active (lo) (0)
16980Load Address           $E000-FFFF
16981
16982           00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F       ASCII
16983           -----------------------------------------------  ----------------
16984     0000: 43 36 34 20 43 41 52 54 52 49 44 47 45 20 20 20  C64?CARTRIDGE???
16985     0010: 00 00 00 40 01 00 00 0E 01 00 00 00 00 00 00 00  ???@????????????
16986     0020: 4D 61 67 69 63 20 46 6F 72 6D 65 6C 00 00 00 00  Magic?Formel????
16987     0030: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ????????????????
16988     0040: 43 48 49 50 00 00 20 10 00 00 00 00 E0 00 20 00  CHIP????????????
16989     0050: 4D 46 30 8D 00 DF 60 8D 01 DF 60 8D 02 DF 60 8D  MF0�??`�??`�??`�
16990     ...
16991     2050: 43 48 49 50 00 00 20 10 00 00 00 01 E0 00 20 00  CHIP????????????
16992     2060: 4C 5F E4 8D 00 DF 60 8D 01 DF 60 8D 02 DF 60 8D  L_?�??`�??`�??`�
16993     ...
16994     4060: 43 48 49 50 00 00 20 10 00 00 00 02 E0 00 20 00  CHIP????????????
16995     4070: 4D 46 32 8D 00 DF 60 8D 01 DF 60 8D 02 DF 60 8D  MF2�??`�??`�??`�
16996     ...
16997     6070: 43 48 49 50 00 00 20 10 00 00 00 03 E0 00 20 00  CHIP????????????
16998     6080: 4D 46 33 8D 00 DF 60 8D 01 DF 60 8D 02 DF 60 8D  MF3�??`�??`�??`�
16999     ...
17000     8080: 43 48 49 50 00 00 20 10 00 00 00 04 E0 00 20 00  CHIP????????????
17001     8090: 4D 46 34 8D 00 DF 60 8D 01 DF 60 8D 02 DF 60 8D  MF4�??`�??`�??`�
17002     ...
17003     A090: 43 48 49 50 00 00 20 10 00 00 00 05 E0 00 20 00  CHIP????????????
17004     A0A0: 4D 46 35 8D 00 DF 60 8D 01 DF 60 8D 02 DF 60 8D  MF5�??`�??`�??`�
17005     ...
17006     C0A0: 43 48 49 50 00 00 20 10 00 00 00 06 E0 00 20 00  CHIP????????????
17007     C0B0: 4D 46 36 8D 00 DF 60 8D 01 DF 60 8D 02 DF 60 8D  MF6�??`�??`�??`�
17008     ..
17009     E0B0: 43 48 49 50 00 00 20 10 00 00 00 07 E0 00 20 00  CHIP????????????
17010     E0C0: 4D 46 37 8D 00 DF 60 8D 01 DF 60 8D 02 DF 60 8D  MF7�??`�??`�??`�
17011
1701216.11.3.16 15 - C64 Game System, System 3
17013.........................................
17014
17015Size                   512Kb (64 banks of 8Kb each)
17016EXROM                  active (lo) (0)
17017GAME                   inactive (hi) (1)
17018Load address           $8000-9FFF (all modules)
17019
17020             00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F       ASCII
17021             -----------------------------------------------  ----------------
17022     000000: 43 36 34 20 43 41 52 54 52 49 44 47 45 20 20 20  C64?CARTRIDGE???
17023     000010: 00 00 00 40 01 00 00 0F 00 01 00 00 00 00 00 00  ???@????????????
17024     000020: 43 36 34 47 53 20 43 61 72 74 72 69 64 67 65 00  C64GS?Cartridge?
17025     000030: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ????????????????
17026     000040: 43 48 49 50 00 00 20 10 00 00 00 00 80 00 20 00  CHIP????????.???
17027     000050: 6D 80 C5 80 C3 C2 CD 38 30 4C CB 80 4C 36 84 4C  m......80L..L6�L
17028     ...
17029     002050: 43 48 49 50 00 00 20 10 00 00 00 01 80 00 20 00  CHIP????????.???
17030     002060: 18 D0 A9 FF 8D 15 D0 8D 1D D0 8D 17 D0 A2 07 A9  ?..?�?.�?.�?..?.
17031     ...
17032     004060: 43 48 49 50 00 00 20 10 00 00 00 02 80 00 20 00  CHIP????????.???
17033     004070: E0 08 19 21 77 84 52 98 9F 80 A5 21 31 01 31 89  ???!w�R��.�!1?1�
17034     ...
17035     006070: 43 48 49 50 00 00 20 10 00 00 00 03 80 00 20 00  CHIP????????.???
17036     006080: C0 08 1C 1D A0 92 03 03 D8 AA 04 C0 B8 01 40 EA  .???�.??.�?.??@.
17037     ...
17038     07E430: 43 48 49 50 00 00 20 10 00 00 00 3F 80 00 20 00  CHIP????????.???
17039     07E440: 45 20 41 20 42 49 47 20 58 FE 4F 4E 20 54 48 49  E?A?BIG?X.ON?THI
17040
17041Here is a list of the known cartridges:
17042
17043         C64GS 4-in-1      (Commodore)  (512 kB)
17044         Last Ninja Remix  (System 3)   (512 kB)
17045         Myth              (System 3)   (512 kB)
17046
17047ROM memory is organized in 8Kb ($2000) banks located at $8000-$9FFF.
17048Bank switching is done by writing to address $DE00+X, where X is the
17049bank number (STA $DE00,X). For instance, to read from bank 3, address
17050$DE03 is written to.  Reading from anywhere in the I/O-1 range will
17051disable the cart.
17052
17053The CRT file contains a string of CHIP blocks, each block with a start
17054address of $8000, length $2000 and the bank number in the bank field.
17055In the cartridge header, EXROM ($18) is set to 0, GAME ($19) is set to 1
17056to enable the 8 kB ROM configuration.
17057
1705816.11.3.17 16 - Warp Speed
17059..........................
17060
17061Size                   16Kb
17062EXROM                  active (lo) (0)
17063GAME                   active (lo) (0)
17064Load address           $8000-BFFF
17065
17066           00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F       ASCII
17067           -----------------------------------------------  ----------------
17068     0000: 43 36 34 20 43 41 52 54 52 49 44 47 45 20 20 20  C64?CARTRIDGE???
17069     0010: 00 00 00 40 01 00 00 10 00 00 00 00 00 00 00 00  ???@????????????
17070     0020: 57 61 72 70 73 70 65 65 64 00 00 00 00 00 00 00  Warpspeed???????
17071     0030: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ????????????????
17072     0040: 43 48 49 50 00 00 40 10 00 00 00 00 80 00 40 00  CHIP??@?????.?@?
17073     0050: 4C 22 80 4C 22 80 FF 43 42 4D 20 53 E4 20 18 E5  L".L".?CBM?S????
17074
17075After RESET or POWER ON, 16kB of cartridge ROM is visible at
17076$8000-$BFFF. Additionally, ROM normally located at $9E00-$9FFF is
17077mirrored into I/O-1 and I/O-2 at $DE00-$DFFF. ROM at $8000-$BFFF is
17078disabled by writing into the I/O-2 area (typically $DF00) and may be
17079re-enabled by writing into I/O-1 ($DE00).  However, the $DE00-$DFFF
17080(I/O-1/I/O-2) area itself always remains mapped to cartridge ROM.
17081
1708216.11.3.18 17 - Dinamic
17083.......................
17084
17085Size                   128Kb (16 banks of 8Kb each)
17086EXROM                  active (lo) (0)
17087GAME                   inactive (hi) (1)
17088Load address           $8000-9FFF (all modules)
17089
17090             00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F       ASCII
17091             -----------------------------------------------  ----------------
17092     000000: 43 36 34 20 43 41 52 54 52 49 44 47 45 20 20 20  C64?CARTRIDGE???
17093     000010: 00 00 00 40 01 00 00 11 00 01 00 00 00 00 00 00  ???@????????????
17094     000020: 4E 61 72 63 6F 20 50 6F 6C 69 63 65 00 00 00 00  Narco?Police????
17095     000030: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ????????????????
17096     000040: 43 48 49 50 00 00 20 10 00 00 00 00 80 00 20 00  CHIP????????.???
17097     000050: 0B 80 0B 80 C3 C2 CD 38 30 00 00 78 A2 FF 9A D8  ?.?....80??x.?..
17098     ..
17099     002050: 43 48 49 50 00 00 20 10 00 00 00 01 80 00 20 00  CHIP????????.???
17100     002060: 1C 8C 1B 8C 16 16 8F 16 16 88 1C 1C 86 1C 1C 89  ?�?�??�??�??�??�
17101     ..
17102     004060: 43 48 49 50 00 00 20 10 00 00 00 02 80 00 20 00  CHIP????????.???
17103     004070: B6 02 07 08 07 07 00 0A 0A B6 00 05 0A 00 07 07  �????????�??????
17104     ..
17105     01E130: 43 48 49 50 00 00 20 10 00 00 00 0F 80 00 20 00  CHIP????????.???
17106     01E140: 00 D5 70 03 F5 70 0F 5F 70 0F F7 70 35 FD F0 37  ?.p??p?_p??p5.?7
17107
17108Here is a list of the known DINAMIC cartridges:
17109
17110         Narco Police  (128 kB)
17111         Satan         (128 kB)
17112
17113ROM memory is organized in 8Kb ($2000) banks located at $8000-$9FFF.
17114Bank switching is done by reading from address $DE00+X, where X is the
17115bank number (LDA $DE00,X). For instance, to read from bank 3, address
17116$DE03 is accessed.
17117
17118The CRT file contains a string of CHIP blocks, each block with a start
17119address of $8000, length $2000 and the bank number in the bank field.
17120In the cartridge header, EXROM ($18) is set to 0, GAME ($19) is set to 1
17121to enable the 8 kB ROM configuration.
17122
1712316.11.3.19 18 - Zaxxon, Super Zaxxon (SEGA)
17124...........................................
17125
17126Size                   20Kb (3 banks of different sizes)
17127EXROM                  active (lo) (0)
17128GAME                   active (lo) (0)
17129Load address           $8000-8FFF (mirrored in $9000-9FFF, module 0,
17130                       chip U1) $A000-BFFF (banked modules 1 and 2,
17131                       chip U2)
17132
17133             00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F       ASCII
17134             -----------------------------------------------  ----------------
17135     000000: 43 36 34 20 43 41 52 54 52 49 44 47 45 20 20 20  C64?CARTRIDGE???
17136     000010: 00 00 00 40 01 00 00 12 00 00 00 00 00 00 00 00  ???@????????????
17137     000020: 5A 61 78 78 6F 6E 00 00 00 00 00 00 00 00 00 00  Zaxxon??????????
17138     000030: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ????????????????
17139     000040: 43 48 49 50 00 00 10 10 00 00 00 00 80 00 10 00  CHIP????????.???
17140     000050: 0D 80 29 80 C3 C2 CD 38 30 78 4C 09 80 78 A9 00  ?.)....80xL?.x.?
17141     ..
17142     001050: 43 48 49 50 00 00 20 10 00 00 00 00 A0 00 20 00  CHIP????????�???
17143     001060: A2 0F BD 00 20 D0 04 CA 10 F8 60 BD 70 20 F0 0D  .????.?.??`?p???
17144     ..
17145     003060: 43 48 49 50 00 00 20 10 00 00 00 01 A0 00 20 00  CHIP????????�???
17146     003070: 65 A2 36 A3 E7 A3 CB A4 94 A5 86 A6 5E A7 35 A8  e.6�?�.?���?^�5?
17147
17148The (Super) Zaxxon carts use a 4Kb ($1000) ROM at $8000-$8FFF (mirrored
17149in $9000-$9FFF) along with two 8Kb ($2000) cartridge banks located at
17150$A000-$BFFF. One of the two banks is selected by doing a read access to
17151either the $8000-$8FFF area (bank 0 is selected) or to $9000-$9FFF area
17152(bank 1 is selected).  EXROM ($18 = $00) and GAME ($19 = $00) lines are
17153always pulled to GND to select the 16 kB ROM configuration.
17154
17155The CRT file includes three CHIP blocks:
17156         a) bank = 0, load address = $8000, size = $1000
17157         b) bank = 0, load address = $A000, size = $2000
17158         c) bank = 1, load address = $A000, size = $2000
17159
1716016.11.3.20 19 - Magic Desk, Domark, HES Australia
17161.................................................
17162
17163Size                   32Kb, 64Kb or 128Kb sizes (4 to 16 banks of 8Kb
17164                       each)
17165EXROM                  active (lo) (0)
17166GAME                   inactive (hi) (1)
17167Startup mode           8k Game
17168Load address           (banks 00-15) - $8000-9FFF
17169
17170           00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F       ASCII
17171           -----------------------------------------------  ----------------
17172     0000: 43 36 34 20 43 41 52 54 52 49 44 47 45 20 20 20  C64?CARTRIDGE???
17173     0010: 00 00 00 40 01 00 00 13 00 01 00 00 00 00 00 00  ???@????????????
17174     0020: 4D 61 67 69 63 20 44 65 73 6B 00 00 00 00 00 00  Magic?Desk??????
17175     0030: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ????????????????
17176     0040: 43 48 49 50 00 00 20 10 00 00 00 00 80 00 20 00  CHIP????????.???
17177     0050: 09 80 C6 CA C3 C2 CD 38 30 8E 16 D0 20 A3 FD 20  ?......80�?.?�.?
17178     ..
17179     2050: 43 48 49 50 00 00 20 10 00 00 00 01 80 00 20 00  CHIP????????.???
17180     2060: 00 3F 0A 01 00 86 4E 24 28 31 30 29 3A 4A 4F 59  ?????�N$(10):JOY
17181     ..
17182     4060: 43 48 49 50 00 00 20 10 00 00 00 02 80 00 20 00  CHIP????????.???
17183     4070: 00 8B C9 28 4E 24 2C 31 29 B3 B1 22 FF 22 A7 32  ?�.(N$,1)��"?"�2
17184     ..
17185     6070: 43 48 49 50 00 00 20 10 00 00 00 03 80 00 20 00  CHIP????????.???
17186     6080: AE 01 83 33 2C 37 2C 22 32 29 20 44 45 4C 20 4B  �?�3,7,"2)?DEL?K
17187
17188This cartridge type is very similar to the OCEAN cart type: ROM memory
17189is organized in 8Kb ($2000) banks located at $8000-$9FFF. Bank switching
17190is done by writing the bank number to $DE00.  Deviant from the Ocean
17191type, bit 7 is cleared for selecting one of the ROM banks.  If bit 7 is
17192set ($DE00 = $80), the GAME/EXROM lines are disabled, turning on RAM at
17193$8000-$9FFF instead of ROM.
17194
17195In the cartridge header, EXROM ($18) is set to 0, GAME ($19) is set to 1
17196to indicate the RESET/power-up configuration of 8 kB ROM.
17197
17198Here is a list of the known cartridges:
17199
17200         Ghosbusters        (HES Australia)   (32 kB)
17201         Magic Desk         (Commodore)       (32 kB)
17202         Badlands           (Domark)          (64 kB)
17203         Vindicators        (Domark)          (64 kB)
17204         Wonderboy          (HES Australia)   (64 kB)
17205         Cyberball          (Domark)         (128 kB)
17206
1720716.11.3.21 20 - Super Snapshot V5
17208.................................
17209
17210Size                   64Kb (4 banks of 16Kb each)
17211EXROM                  active (lo) (0)
17212GAME                   active (lo) (0)
17213Load address           $8000-BFFF
17214
17215           00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F       ASCII
17216           -----------------------------------------------  ----------------
17217     0000: 43 36 34 20 43 41 52 54 52 49 44 47 45 20 20 20  C64?CARTRIDGE???
17218     0010: 00 00 00 40 01 00 00 14 00 00 00 00 00 00 00 00  ???@????????????
17219     0020: 53 75 70 65 72 20 53 6E 61 70 73 68 6F 74 20 35  Super?Snapshot?5
17220     0030: 20 4E 54 53 43 00 00 00 00 00 00 00 00 00 00 00  ?NTSC???????????
17221     0040: 43 48 49 50 00 00 40 10 00 00 00 00 80 00 40 00  CHIP??@?????.?@?
17222     0050: 09 80 59 80 C3 C2 CD 38 30 20 03 9F 00 FA F4 20  ?.Y....80??�????
17223     ...
17224     4050: 43 48 49 50 00 00 40 10 00 00 00 01 80 00 40 00  CHIP??@?????.?@?
17225     4060: 79 DE BC FE C3 C2 CD 38 30 A9 05 8D 20 D0 8D 21  y.?....80.?�?.�!
17226     ...
17227     8060: 43 48 49 50 00 00 40 10 00 00 00 02 80 00 40 00  CHIP??@?????.?@?
17228     8070: 50 DE BC FE C3 C2 CD 38 30 A9 0A 85 6A A9 0D 85  P.?....80.?�j.?�
17229     ...
17230     C070: 43 48 49 50 00 00 40 10 00 00 00 03 80 00 40 00  CHIP??@?????.?@?
17231     C080: 50 DE BC FE C3 C2 CD 38 30 85 07 20 1A AD A5 76  P.?....80�???��v
17232
17233The first page of the currently selected ROM bank is mirrored in the
17234I/O-1 range when reading.
17235
17236The control Register is the I/O-1 range when writing:
17237
17238         bit  meaning
17239         ---  -------
17240         7-5  unused
17241         4    ROM/RAM bank bit 1
17242         3    ROM enable
17243         2    ROM/RAM bank bit 0
17244         1    RAM enable, EXROM
17245         0    release freeze, !GAME
17246
1724716.11.3.22 21 - Comal-80
17248........................
17249
17250Size                   64Kb (4 banks of 16Kb each)
17251EXROM                  active (low) (0)
17252GAME                   active (low) (0)
17253Load address           $8000-BFFF
17254
17255           00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F       ASCII
17256           -----------------------------------------------  ----------------
17257     0000: 43 36 34 20 43 41 52 54 52 49 44 47 45 20 20 20  C64?CARTRIDGE???
17258     0010: 00 00 00 40 01 00 00 15 00 00 00 00 00 00 00 00  ???@????????????
17259     0020: 43 6F 6D 61 6C 20 38 30 00 00 00 00 00 00 00 00  Comal?80????????
17260     0030: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ????????????????
17261     0040: 43 48 49 50 00 00 40 10 00 00 00 00 80 00 40 00  CHIP??@?????.?@?
17262     0050: 87 87 70 CF C3 C2 CD 38 30 4C AA CF 4C 70 CF 4C  ..p....80L.Lp.L
17263     ...
17264     4050: 43 48 49 50 00 00 40 10 00 00 00 01 80 00 40 00  CHIP??@?????.?@?
17265     4060: AA CF 70 CF C3 C2 CD 38 30 01 29 01 28 01 2C 04  �.p....80?)?(?,?
17266     ...
17267     8060: 43 48 49 50 00 00 40 10 00 00 00 02 80 00 40 00  CHIP??@?????.?@?
17268     8070: AA CF 70 CF C3 C2 CD 38 30 91 92 92 92 92 92 92  �.p....80.......
17269     ...
17270     C070: 43 48 49 50 00 00 40 10 00 00 00 03 80 00 40 00  CHIP??@?????.?@?
17271     C080: 7B C8 7E C8 C3 C2 CD 38 30 43 4F 4D 41 4C 80 93  ..~....80COMAL..
17272
17273The Comal-80 Cartridge uses 16Kb banks ($4000) at $8000-$BFFF. There are
172744 banks of ROM memory and the cart has 1 (write-only) bank control
17275register which is located at $DE00 and mirrored throughout the
17276$DE00-$DEFF range.
17277
17278         bit  meaning
17279         ---  -------
17280         7    exrom?
17281         6    game?
17282         5    unknown function (used by the software to disable the cartridge)
17283         4    unused?
17284         3    unused?
17285         2    unknown function (used by the software however)
17286         0-1  selects bank
17287
1728816.11.3.23 22 - Structured Basic
17289................................
17290
17291Size                   16Kb (2 banks of 8Kb each)
17292EXROM                  inactive (hi) (1)
17293GAME                   active (0)
17294Load address           $8000-9FFF
17295
17296No sample data/file available.
17297
17298IF YOU OWN THIS TYPE OF CARTRIDGE AND/OR CAN PROVIDE A ROM IMAGE, PLEASE
17299GET IN TOUCH WITH US!
17300
17301Any read/write access to $DE00 or $DE01 will switch in bank 0.  Any
17302read/write access to $DE02 will switch in bank 1.  Any read/write access
17303to $DE03 will switch off EXROM.
17304
1730516.11.3.24 23 - Ross
17306....................
17307
17308Size                   16Kb or 32Kb sizes (1 or 2 banks of 16Kb each)
17309EXROM                  active (lo) (0)
17310GAME                   active (lo) (0)
17311Load address           $8000-BFFF
17312
17313           00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F       ASCII
17314           -----------------------------------------------  ----------------
17315     0000: 43 36 34 20 43 41 52 54 52 49 44 47 45 20 20 20  C64?CARTRIDGE???
17316     0010: 00 00 00 40 01 00 00 17 00 00 00 00 00 00 00 00  ???@????????????
17317     0020: 52 6F 73 73 20 31 34 00 00 00 00 00 00 00 00 00  Ross?14?????????
17318     0030: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ????????????????
17319     0040: 43 48 49 50 00 00 40 10 00 00 00 00 80 00 40 00  CHIP??@?????.?@?
17320     0050: 09 80 09 80 C3 C2 CD 38 30 A2 00 BD 20 80 4D 0E  ?.?....80.???.M?
17321     ...
17322     4050: 43 48 49 50 00 00 40 10 00 00 00 01 80 00 40 00  CHIP??@?????.?@?
17323     4060: 3F 5A 4D 4D 50 4D 8D 25 3F 1A 1F 77 3F CD E0 3F  ?ZMMPM�%???w?.??
17324
17325Any read access to $DE00 will switch in bank 1 (if cart is 32Kb).  Any
17326read access to $DF00 will switch off EXROM and GAME.
17327
1732816.11.3.25 24 - Dela EP64
17329.........................
17330
17331Size                   8Kb to 72kb sizes (1 to 9 banks of 8Kb each, or
17332                       1 bank of 8Kb and 1 or 2 banks of 32Kb each)
17333EXROM                  active (lo) (0)
17334GAME                   inactive (hi) (1)
17335Load address           $8000-9FFF
17336
17337           00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F       ASCII
17338           -----------------------------------------------  ----------------
17339     0000: 43 36 34 20 43 41 52 54 52 49 44 47 45 20 20 20  C64?CARTRIDGE???
17340     0010: 00 00 00 40 01 00 00 18 00 01 00 00 00 00 00 00  ???@????????????
17341     0020: 44 45 4C 41 20 45 50 36 34 00 00 00 00 00 00 00  DELA?EP64???????
17342     0030: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ????????????????
17343     0040: 43 48 49 50 00 00 20 10 00 00 00 00 80 00 20 00  CHIP????????.???
17344     0050: 00 85 5E FE C3 C2 CD 38 30 FF FF FF FF FF FF FF  ?�^....80???????
17345     ...
17346     2050: 43 48 49 50 00 00 80 10 00 00 00 01 80 00 80 00  CHIP??.?????.?.?
17347     2060: 54 45 53 54 0D 2A 0D 54 45 20 36 34 0D 00 00 00  TEST?*?TE?64????
17348
17349This is an eprom cartridge.  It has 1 2764 (8Kb) which holds the base
17350eprom with the base menu, and 2 27256 eproms of which 8Kb parts are
17351banked into the $8000-9FFF area.
17352
17353The bank selecting is done by writing to $DE00.  The following bits are
17354used for bank decoding in $DE00 (0 being the LSB, 3 being the MSB).
17355
17356              Bit# 76543210
17357                   xx10xx32
17358
17359Any bank value below 4 or above 11 switches in the base bank (bank 0).
17360
17361The bit values for each eprom bank are :
17362
17363         eprom bank 1 : xx00xx01
17364         eprom bank 2 : xx01xx01
17365         eprom bank 3 : xx10xx01
17366         eprom bank 4 : xx11xx01
17367         eprom bank 5 : xx00xx10
17368         eprom bank 6 : xx01xx10
17369         eprom bank 7 : xx10xx10
17370         eprom bank 8 : xx11xx10
17371
17372Setting bit 7 high will switch off EXROM.
17373
1737416.11.3.26 25 - Dela EP7x8
17375..........................
17376
17377Size                   8Kb to 64kb sizes (1 to 8 banks of 8Kb each)
17378EXROM                  active (lo) (0)
17379GAME                   inactive (hi) (1)
17380Load address           $8000-9FFF
17381
17382           00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F       ASCII
17383           -----------------------------------------------  ----------------
17384     0000: 43 36 34 20 43 41 52 54 52 49 44 47 45 20 20 20  C64?CARTRIDGE???
17385     0010: 00 00 00 40 01 00 00 19 00 01 00 00 00 00 00 00  ???@????????????
17386     0020: 44 45 4C 41 20 45 50 37 78 38 00 00 00 00 00 00  DELA?EP7x8??????
17387     0030: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ????????????????
17388     0040: 43 48 49 50 00 00 20 10 00 00 00 00 80 00 20 00  CHIP????????.???
17389     0050: 09 80 5E FE C3 C2 CD 38 30 78 A2 FF 9A D8 8E 16  ?.^....80x.?..�?
17390     ...
17391     2050: 43 48 49 50 00 00 20 10 00 00 00 01 80 00 20 00  CHIP????????.???
17392     2060: 94 83 A0 83 C3 C2 CD 38 30 02 BB 5A 30 5F EE 3D  ����...80?�Z0_?=
17393
17394This is an eprom cartridge.  It has 8 8Kb banks of which the first holds
17395the base menu, the other eproms can be banked into the $8000-9FFF area.
17396
17397The bank selecting is done by writing to $DE00.  Each low bit is used to
17398bank in the respective eprom.  If all bits are high then the EXROM is
17399switched off.
17400
17401The bit values for each eprom bank is:
17402
17403         eprom bank 1 : 11111110 ($FE) (base eprom)
17404         eprom bank 2 : 11111101 ($FD)
17405         eprom bank 3 : 11111011 ($FB)
17406         eprom bank 4 : 11110111 ($F7)
17407         eprom bank 5 : 11101111 ($EF)
17408         eprom bank 6 : 11011111 ($DF)
17409         eprom bank 7 : 10111111 ($BF)
17410         eprom bank 8 : 01111111 ($7F)
17411
17412         EXROM off    : 11111111 ($FF)
17413
1741416.11.3.27 26 - Dela EP256
17415..........................
17416
17417Size                   8Kb to 262kb sizes (1 to 33 banks of 8Kb each)
17418EXROM                  active (lo) (0)
17419GAME                   inactive (hi) (1)
17420Load address           $8000-9FFF
17421
17422           00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F       ASCII
17423           -----------------------------------------------  ----------------
17424     0000: 43 36 34 20 43 41 52 54 52 49 44 47 45 20 20 20  C64?CARTRIDGE???
17425     0010: 00 00 00 40 01 00 00 1A 00 01 00 00 00 00 00 00  ???@????????????
17426     0020: 44 45 4C 41 20 45 50 32 35 36 00 00 00 00 00 00  DELA?EP256??????
17427     0030: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ????????????????
17428     0040: 43 48 49 50 00 00 20 10 00 00 00 00 80 00 20 00  CHIP????????.???
17429     0050: 00 85 5E FE C3 C2 CD 38 30 93 0D 2B 2B 2B 20 45  ?�^....80.?+++?E
17430     ...
17431     2050: 43 48 49 50 00 00 20 10 00 00 00 01 80 00 20 00  CHIP????????.???
17432     2060: 09 80 28 80 C3 C2 CD 38 30 78 A2 05 8E 16 D0 20  ?.(....80x.?�?.?
17433     ...
17434     4060: 43 48 49 50 00 00 20 10 00 00 00 02 80 00 20 00  CHIP????????.???
17435     4070: 0B 80 BC FE C3 C2 CD 38 30 DC 10 8E 16 D0 20 87  ?.?....80.?�?.?.
17436     ...
17437     6070: 43 48 49 50 00 00 20 10 00 00 00 03 80 00 20 00  CHIP????????.???
17438     6080: 09 80 F6 8E C3 C2 CD 38 30 A2 C8 8E 16 D0 20 ..  ?.?�...80..�?.?.
17439     ...
17440     8080: 43 48 49 50 00 00 20 10 00 00 00 04 80 00 20 00  CHIP????????.???
17441     8090: 94 83 A0 83 C3 C2 CD 38 30 02 BB 5A 30 5F EE 3D  ����...80?�Z0_?=
17442
17443This is an eprom cartridge.  It has 33 8Kb banks of which the first
17444holds the base menu, the other eproms can be banked into the $8000-9FFF
17445area.
17446
17447The bank selecting is done by writing to $DE00.
17448
17449The values for the (extra) eprom banks are:
17450
17451         eprom banks  1- 8 : $38-3F
17452         eprom banks  9-16 : $28-2F
17453         eprom banks 17-24 : $18-1F
17454         eprom banks 25-32 : $08-0F
17455
17456Setting bit 7 high will switch off EXROM.
17457
1745816.11.3.28 27 - Rex EP256
17459.........................
17460
17461Size                   8Kb to 262kb sizes (1 bank of 8Kb and 1 to 8
17462                       banks of either 8Kb, 16Kb or 32Kb)
17463EXROM                  active (lo) (0)
17464GAME                   inactive (hi) (1)
17465Load address           $8000-9FFF
17466
17467           00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F       ASCII
17468           -----------------------------------------------  ----------------
17469     0000: 43 36 34 20 43 41 52 54 52 49 44 47 45 20 20 20  C64?CARTRIDGE???
17470     0010: 00 00 00 40 01 00 00 1B 00 01 00 00 00 00 00 00  ???@????????????
17471     0020: 52 45 58 20 45 50 32 35 36 00 00 00 00 00 00 00  REX?EP256???????
17472     0030: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ????????????????
17473     0040: 43 48 49 50 00 00 20 10 00 00 00 00 80 00 20 00  CHIP????????.???
17474     0050: 09 80 C1 FE C3 C2 CD 38 30 20 A3 FD 20 50 FD 20  ?......80?�.?P.?
17475     ...
17476     2050: 43 48 49 50 00 00 20 10 00 00 00 01 80 00 20 00  CHIP????????.???
17477     2060: 09 80 F2 8F C3 C2 CD 38 30 A2 C8 8E 16 D0 20 A3  ?.?�...80..�?.?�
17478     ...
17479     4060: 43 48 49 50 00 00 40 10 00 00 00 02 80 00 40 00  CHIP??@?????.?@?
17480     4070: 09 80 09 80 C3 C2 CD 38 30 58 D8 20 84 FF 20 8A  ?.?....80X.?�??�
17481
17482This is an eprom cartridge.  It has 9 eprom sockets, of which the first
17483holds the base eprom with the base menu which is an 8Kb eprom, the other
17484eprom sockets can handle 8Kb, 16Kb or 32Kb eproms, of which 8kb can be
17485banked into the $8000-9FFF area.
17486
17487The bank selecting is done by writing to $DFA0.  Bits 2, 1 and 0
17488determine which socket is used and bits 5 and 4 are used to select an
174898Kb piece of the eprom.
17490
17491The possible values for bits 5 and 4 for the (extra) eprom banks are:
17492
17493          8Kb        : 3, 2, 1, 0
17494
17495         16Kb bank 0 : 2, 0
17496         16Kb bank 1 : 3, 1
17497
17498         32Kb bank 0 : 0
17499         32Kb bank 1 : 1
17500         32Kb bank 2 : 2
17501         32Kb bank 3 : 3
17502
17503Reading from $DFC0 switches off the EXROM. Reading from $DFE0 switches
17504on the EXROM.
17505
1750616.11.3.29 28 - Mikro Assembler
17507...............................
17508
17509Size                   8Kb (1 bank of 8Kb)
17510EXROM                  active (lo) (0)
17511GAME                   inactive (hi) (1)
17512Load address           $8000-9FFF
17513
17514           00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F       ASCII
17515           -----------------------------------------------  ----------------
17516     0000: 43 36 34 20 43 41 52 54 52 49 44 47 45 20 20 20  C64?CARTRIDGE???
17517     0010: 00 00 00 40 01 00 00 1C 00 01 00 00 00 00 00 00  ???@????????????
17518     0020: 56 49 43 45 20 43 41 52 54 00 00 00 00 00 00 00  VICE CART???????
17519     0030: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ????????????????
17520     0040: 43 48 49 50 00 00 20 10 00 00 00 00 80 00 20 00  CHIP????????.???
17521     0050: 60 80 FE 80 C3 C2 CD 38 30 4C 07 87 4C CA 82 41  `......80L?.L.�A
17522
17523The $9E00-$9EFF range is mirrored at $DE00-$DEFF. The $9F00-$9FFF range
17524is mirrored at $DF00-$DFFF.
17525
1752616.11.3.30 29 - Final Cartridge Plus
17527....................................
17528
17529Size                   32Kb (1 bank of 32Kb)
17530EXROM                  inactive (hi) (1)
17531GAME                   active (lo) (0)
17532Load address           $0000-$7FFF
17533
17534           00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F       ASCII
17535           -----------------------------------------------  ----------------
17536     0000: 43 36 34 20 43 41 52 54 52 49 44 47 45 20 20 20  C64?CARTRIDGE???
17537     0010: 00 00 00 40 01 00 00 1D 01 00 00 00 00 00 00 00  ???@????????????
17538     0020: 56 49 43 45 20 43 41 52 54 00 00 00 00 00 00 00  VICE?CART???????
17539     0030: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ????????????????
17540     0040: 43 48 49 50 00 00 80 10 00 00 00 00 00 00 80 00  CHIP??.???????.?
17541     0050: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF  ????????????????
17542
17543This cart has 32Kb of ROM, bank 0 is in the cart image but is unused.
17544The first 8Kb of the cart image is unused, the second 8Kb of the cart
17545image is mapped to $E000-$FFFF, the third 8Kb of the cart image is
17546mapped to $8000-$9FFF and the fourth 8Kb of the cart image is mapped to
17547$A000-$BFFF. An NMI can be triggered by the cart, if address $0001 is
17548written to and the cartridge is enabled.  The cart can be disabled by
17549software, by clearing bit 4 when writing to $DF00-$DFFF. Cart ROM at
17550$E000-$FFFF can be disabled by setting bit 5 to 0 when writing to
17551$DF00-$DFFF. Cart ROM at $8000-$BFFF can be disabled by setting bit 6 to
175521 when writing to $DF00-$DFFF. Bit 7 of a byte written to $DF00-$DFFF
17553can be read back from the cartridge if enabled (like a memory cell).
17554
1755516.11.3.31 30 - Action Replay 4
17556...............................
17557
17558Size                   32Kb (4 banks of 8Kb)
17559EXROM                  active (lo) (0)
17560GAME                   inactive (hi) (1)
17561Load address           $8000-$9FFF
17562
17563           00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F       ASCII
17564           -----------------------------------------------  ----------------
17565     0000: 43 36 34 20 43 41 52 54 52 49 44 47 45 20 20 20  C64?CARTRIDGE???
17566     0010: 00 00 00 40 01 00 00 1E 00 01 00 00 00 00 00 00  ???@????????????
17567     0020: 56 49 43 45 20 43 41 52 54 00 00 00 00 00 00 00  VICE?CART???????
17568     0030: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ????????????????
17569     0040: 43 48 49 50 00 00 20 10 00 00 00 00 80 00 20 00  CHIP????????.???
17570     0050: EA 78 48 A9 7F 8D 0D DD D0 0E 48 AD 0D DD 10 04  .xP.?�?..?P?.??
17571     ...
17572     2050: 43 48 49 50 00 00 20 10 00 00 00 01 80 00 20 00  CHIP????????.???
17573     2060: 09 80 0C 80 C3 C2 CD 38 30 4C E9 80 4C 81 81 4C  ?.?....80L?.L��L
17574     ...
17575     4060: 43 48 49 50 00 00 20 10 00 00 00 02 80 00 20 00  CHIP????????.???
17576     4070: 09 80 0E 80 C3 C2 CD 38 30 A2 00 4C EF FC 20 BC  ?.?....80.?L?.??
17577     ...
17578     6070: 43 48 49 50 00 00 20 10 00 00 00 03 80 00 20 00  CHIP????????.???
17579     6080: 09 80 0C 80 C3 C2 CD 38 30 4C 70 88 4C 3F 80 4C  ?.?....80Lp�L?.L
17580
17581The control register is the I/O-1 range:
17582
17583         bit  meaning
17584         ---  -------
17585         0    Eprom banking bit 0 (bank address 13)
17586         1    Controls the GAME line (0 sets GAME low, 1 sets GAME high)
17587         2    Freeze-end bit (disables the register and hides any rom bank)
17588         3    Controls the Exrom line (1 sets EXROM low, 0 sets EXROM high)
17589         4    Eprom banking bit 1 (bank address 14)
17590         5-7  Unused
17591
17592The first page of the currently banked ROM block can be read in the
17593I/O-2 range.
17594
1759516.11.3.32 31 - Stardos
17596.......................
17597
17598Size                   16Kb (2 banks of 8Kb)
17599EXROM                  inactive (hi) (1)
17600GAME                   active (lo) (0)
17601Load address           $8000-$9FFF (bank 0), $E000-$FFFF (bank 1)
17602
17603           00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F       ASCII
17604           -----------------------------------------------  ----------------
17605     0000: 43 36 34 20 43 41 52 54 52 49 44 47 45 20 20 20  C64?CARTRIDGE???
17606     0010: 00 00 00 40 01 00 00 1F 01 00 00 00 00 00 00 00  ???@????????????
17607     0020: 56 49 43 45 20 43 41 52 54 00 00 00 00 00 00 00  VICE?CART???????
17608     0030: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ????????????????
17609     0040: 43 48 49 50 00 00 20 10 00 00 00 00 80 00 20 00  CHIP????????.???
17610     0050: F9 80 B6 80 C3 C2 CD 38 30 FD 80 89 80 4C 0C 88  ?.�....80..�.L?�
17611     ...
17612     2050: 43 48 49 50 00 00 20 10 00 00 00 00 E0 00 20 00  CHIP????????????
17613     2060: 85 56 20 0F BC A5 61 C9 88 90 03 20 D4 BA 20 CC  �V???�a.��??.�?.
17614
17615This cart has 16Kb of ROM, of which the first 8Kb is mapped in at
17616$8000-$9FFF and the second 8Kb is used as a kernel replacement.  The
17617kernel replacement is achieved by a clip that needs to be installed
17618inside the C64.
17619
17620Reading from I/O-1 causes a capacitor to get charged with every read,
17621once the capacitor is charged enough it switches the cart on.
17622
17623Reading from I/O-2 causes a different capacitor to get charged with
17624every read, once the capacitor is charged enough it switched the cart
17625off.
17626
1762716.11.3.33 32 - EasyFlash
17628.........................
17629
17630Size                   1024Kb (64 banks of 2 * 8Kb)
17631EXROM                  inactive (hi) (1)
17632GAME                   active (lo) (0)
17633Load address           $8000-$9FFF (ROML), $A000-$BFFF or $E000-$FFFF
17634                       (ROMH)
17635
17636           00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F       ASCII
17637           -----------------------------------------------  ----------------
17638     0000: 43 36 34 20 43 41 52 54 52 49 44 47 45 20 20 20  C64?CARTRIDGE???
17639     0010: 00 00 00 40 01 00 00 20 01 00 00 00 00 00 00 00  ???@????????????
17640     0020: 45 61 73 79 46 6C 61 73 68 20 43 61 72 74 72 69  EasyFlash?Cartri
17641     0030: 64 67 65 00 00 00 00 00 00 00 00 00 00 00 00 00  dge?????????????
17642     0040: 43 48 49 50 00 00 20 10 00 00 00 01 80 00 20 00  CHIP????????.???
17643     0050: 00 85 5E FE C3 C2 CD 38 30 93 0D 2B 2B 2B 20 45  ?�^....80.?+++?E
17644
17645EasyFlash is a 1 MByte Flash EPROM card with multiple configurations and
17646banks possible, it also has 256 bytes of RAM which is mapped into the
17647I/O-2 range.
17648
17649There are two control registers, one at $DE00 and one at $DE02.
17650
17651The register at $DE00 does the following:
17652
17653         bit  meaning
17654         ---  -------
17655         7    LED control
17656         6-3  Unused
17657         2    Mode (0/1)
17658         1    Exrom line control
17659         0    Game line control
17660
17661The register at $DE02 controls which bank is mapped into ROMH and ROML.
17662
1766316.11.3.34 33 - EasyFlash Xbank
17664...............................
17665
17666Size                   -
17667EXROM                  -
17668GAME                   -
17669Load address           -
17670
17671This CRT type is not actually related to a seperate hardware, it is used
17672by some EasyFlash related tools as a container format.  Consequently
17673VICE does (can) not load files of this type.
17674
1767516.11.3.35 34 - Capture
17676.......................
17677
17678Size                   8Kb (1 bank of 8Kb)
17679EXROM                  inactive (hi) (1)
17680GAME                   inactive (hi) (1)
17681Load address           $E000-$FFFF
17682
17683           00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F       ASCII
17684           -----------------------------------------------  ----------------
17685     0000: 43 36 34 20 43 41 52 54 52 49 44 47 45 20 20 20  C64?CARTRIDGE???
17686     0010: 00 00 00 40 01 00 00 22 00 00 00 00 00 00 00 00  ???@???"????????
17687     0020: 4D 61 67 69 63 20 46 6F 72 6D 65 6C 00 00 00 00  Magic?Formel????
17688     0030: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ????????????????
17689     0040: 43 48 49 50 00 00 20 10 00 00 00 01 E0 00 20 00  CHIP????????????
17690     0050: 00 0A 0D 8A B4 A1 20 80 00 0A 82 8A 8D 20 9E 20  ???�?.?.??���?�?
17691
17692This cart has 8Kb of ROM which is mapped to $E000, and 8Kb of RAM which
17693is mapped to $6000.  The cartridge is disabled after a reset.
17694
17695When the freeze button is pressed the following happens:
17696
17697   * an NMI is generated
17698   * as soon as the current adress is in bank 0xfe the cart switches to
17699     ultimax mode.  The cart ROM then contains one page full of "jmp
17700     $eaea", which ultimately calls the freezer code.
17701   * the $FFF7/$FFF8 "register" logic is enabled and any access (read or
17702     write) to $FFF7 will turn the cart_enabled off (leave ultimax
17703     mode), and an access to $FFF8 will turn the cart back on (enter
17704     ultimax mode).  the "register logic" that causes this can only be
17705     disabled again by a hardware reset.
17706
1770716.11.3.36 35 - Action Replay 3
17708...............................
17709
17710Size                   16Kb (2 banks of 8Kb)
17711EXROM                  active (lo) (0)
17712GAME                   inactive (hi) (1)
17713Load address           $8000-$9FFF
17714
17715           00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F       ASCII
17716           -----------------------------------------------  ----------------
17717     0000: 43 36 34 20 43 41 52 54 52 49 44 47 45 20 20 20  C64?CARTRIDGE???
17718     0010: 00 00 00 40 01 00 00 23 00 01 00 00 00 00 00 00  ???@???#????????
17719     0020: 56 49 43 45 20 43 41 52 54 00 00 00 00 00 00 00  VICE?CART???????
17720     0030: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ????????????????
17721     0040: 43 48 49 50 00 00 20 10 00 00 00 00 80 00 20 00  CHIP????????.???
17722     0050: EA A9 E3 48 A9 7B 48 08 4C 1A 80 EA EA EA 48 AD  ...H..H?L?....H
17723     ...
17724     2050: 43 48 49 50 00 00 20 10 00 00 00 01 80 00 20 00  CHIP????????.???
17725     2060: 09 80 5E FE C3 C2 CD 38 30 78 A2 FB D8 9A A9 27  ?.^....80x.....'
17726
17727This cart has 16Kb of ROM of which 8Kb is mapped in at both ROML and
17728ROMH. Bank switching and control register is done through the I/O-1
17729range:
17730
17731         bit  meaning
17732         ---  -------
17733         7-4  unused
17734         3    Exrom line control
17735         2    Disable cart
17736         1    Unused
17737         0    Bank
17738
1773916.11.3.37 36 - Retro Replay
17740............................
17741
17742Size                   32Kb, 64Kb or 128Kb (4, 8 or 16 banks of 8Kb)
17743EXROM                  active (lo) (0)
17744GAME                   inactive (hi) (1)
17745Load address           $8000-$9FFF
17746
17747           00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F       ASCII
17748           -----------------------------------------------  ----------------
17749     0000: 43 36 34 20 43 41 52 54 52 49 44 47 45 20 20 20  C64?CARTRIDGE???
17750     0010: 00 00 00 40 01 00 00 24 00 01 00 00 00 00 00 00  ???@???$????????
17751     0020: 56 49 43 45 20 43 41 52 54 00 00 00 00 00 00 00  VICE?CART???????
17752     0030: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ????????????????
17753     0040: 43 48 49 50 00 00 20 10 00 00 00 00 80 00 20 00  CHIP????????.???
17754     0050: 09 80 0C 80 C3 C2 CD 38 30 4C 7F 81 4C 87 81 4C  ?.?....80L?�L.�L
17755
17756The Retro Replay has three registers: Two write-only ($DE00 & $DE01) and
17757one read-only register ($DE00 & $DE01 giving the same results).
17758
17759The register at $DE00 is reset to $00 on a hard reset if not in flash
17760mode.  If in flash mode, it is set to $02 in order to prevent the
17761computer from starting the normal cartridge.  Flash mode is selected
17762with a jumper.
17763
17764Register at $DE00:
17765
17766         bit  meaning
17767         ---  -------
17768         0    Controls the GAME line: A 1 asserts the line, a 0  will  deassert
17769              it.
17770         1    Controls the EXROM line: A 0 will assert it, a  1  will  deassert
17771              it.
17772         2    Writing a 1 will disable further write accesses to all  registers
17773              of the Retro Replay, and  set  the  memory  map  of  the  C64  to
17774              standard, as if there is no cartridge installed at all.
17775         3    Controls bank-address 13 for ROM and RAM banking.
17776         4    Controls bank-address 14 for ROM and RAM banking.
17777         5    Switches between ROM and RAM: 0=ROM, 1=RAM
17778         6    Must be written once to "1" after a successful freeze in order to
17779              set the correct memory map and  enable  bits  0  and  1  of  this
17780              register. Otherwise no effect.
17781         7    Controls bank-address 15 for ROM banking.
17782
17783The register at $DE01 is the extended control register.  If not in Flash
17784mode, bits 1, 2 and 6 can only be written once.  If in Flash mode, the
17785REUcomp bit cannot be set, but the register will not be disabled by the
17786first write.  Bit 5 is always set to 0 if not in Flash mode.
17787
17788Register at $DE01:
17789
17790         bit  meaning
17791         ---  -------
17792         0    Enable clockport connector.
17793         1    AllowBank (1 allows banking of RAM in $DF00/$DE02 area)
17794         2    NoFreeze (1 disables Freeze function)
17795         3    Bank-address 13 for RAM and ROM (mirror of $DE00)
17796         4    Bank-address 14 for RAM and ROM (mirror of $DE00)
17797         5    Bank-address 16 for ROM (only in flash mode)
17798         6    REU compatibility bit. 0=standard memory map, 1 = REU  compatible
17799              memory map
17800         7    Bank-address 15 for ROM (mirror of $DE00)
17801
17802Reading from the registers at either $DE00 or $DE01 will return the
17803content of the status register.
17804
17805Status register:
17806
17807         bit  meaning
17808         ---  -------
17809         0    1=Flashmode active (jumper set)
17810         1    feedback of AllowBank bit
17811         2    1=Freeze button pressed
17812         3    feedback of banking bit 13
17813         4    feedback of banking bit 14
17814         5    feedback of banking bit 16
17815         6    1=REU compatible memory map active
17816         7    feedback of banking bit 15
17817
17818The following memory maps are available:
17819
17820   * standard - $DE00 and $DE01 registers are active, $DF00-$DFFF
17821     contain the last page of the selected 8Kb bank of either ROM or
17822     RAM, whatever is selected.  RAM can only be accessed in
17823     $8000-$9FFF. ROM can be mapped to $8000, $A000 or $E000 with the
17824     corresponding status on GAME and EXROM.
17825
17826     Note: If the AllowBank bit is not set, the $DF00-$DFFF area will
17827     always access bank 0 of the RAM, so the older cartridge images will
17828     work.  The AllowBank bit does not have any effect on the ROM mirror
17829     in that area.
17830
17831   * Freeze - ROM is mapped to $E000-$FFFF, bank 0 is active directly
17832     after Freeze.  Writing to bits 0 and 1 of the $DE00 register will
17833     have no effect on GAME and EXROM. RAM can be selected and used in
17834     $DF00 or $DE02, respectively, but not in $8000.  Banking bits work,
17835     so you have full read access to the ROM, and access to up to four
17836     RAM pages with the AllowBank bit set (minus 2 bytes if REU
17837     compatible bit is set).  You should leave this memory map ASAP by
17838     setting bit 6 of $DE00, because C64 RAM in the $E000 area is not
17839     available, and you don't have control of the GAME and EXROM lines.
17840
17841   * REU compatible - $DE00 and $DE01 registers are active, $DE02-$DEFF
17842     contain a mirror of $9E02-$9EFF of the selected 8K-bank of either
17843     ROM or RAM, whatever is selected.  RAM can only be accessed in
17844     $8000-$9FFF. ROM can be mapped to $8000, $A000 or $E000 with the
17845     corresponding status on GAME and EXROM. The $DF00 stays free for
17846     use with the 1764 Ram Expansion Unit (REU).
17847
17848     Note: If the AllowBank bit is not set, the $DE02-$DEFF area will
17849     always access bank 0 of the RAM, so the older cartridge images will
17850     work.  The AllowBank bit does not have any effect on the ROM mirror
17851     in that area.
17852
1785316.11.3.38 37 - MMC64
17854.....................
17855
17856Size                   8Kb (1 bank of 8Kb)
17857EXROM                  active (lo) (0)
17858GAME                   inactive (hi) (1)
17859Load address           $8000-$9FFF
17860
17861           00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F       ASCII
17862           -----------------------------------------------  ----------------
17863     0000: 43 36 34 20 43 41 52 54 52 49 44 47 45 20 20 20  C64?CARTRIDGE???
17864     0010: 00 00 00 40 01 00 00 25 00 01 00 00 00 00 00 00  ???@???%????????
17865     0020: 56 49 43 45 20 43 41 52 54 00 00 00 00 00 00 00  VICE?CART???????
17866     0030: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ????????????????
17867     0040: 43 48 49 50 00 00 20 10 00 00 00 00 80 00 20 00  CHIP????????.???
17868     0050: 09 80 64 97 C3 C2 CD 38 30 78 D8 A2 FF 9A 20 D4  ?.d�...80x..?.?.
17869
17870The clockport registers of this cart can be switched to either
17871$DE01-$DE0F or $DF21-$DF2F. The control registers are available at
17872$DF10-$DF13.
17873
17874The register at $DE01 / $DF21 is write only:
17875
17876         bit  meaning
17877         ---  -------
17878         7-1  Unused
17879         0    0 = disable clock port, 1 = enable clockport
17880
17881The registers at $DE02-$DE0F / $DF22-$DF2F are for the clock port and
17882are read/write.
17883
17884The register at $DF10 is the MMC64 SPI transfer register, a byte written
17885to this registers is sent to the card & response from the card is read
17886here.
17887
17888The register at $DF11 is the MMC64 control register:
17889
17890         bit  meaning
17891         ---  -------
17892         0    0 = MMC64 BIOS active, 1 = external ROM active
17893         1    0 = card selected, 1 = card not selected
17894         2    0 = 250khz transfer, 1 = 8mhz transfer
17895         3    0 = clock port @ $DE00, 1 = clock port @ $DF20
17896         4    0 = normal Operation, 1 = flash mode (*)
17897         5    0 = allow external rom when BIOS is disabled,
17898              1 = disable external ROM
17899         6    0 = SPI write trigger mode, 1 = SPI read trigger mode
17900         7    0 = MMC64 is active, 1 = MMC64 is completely disabled (**)
17901
17902(*) bit can only be programmed when flash jumper is set (**) bit can
17903only be modified after unlocking
17904
17905The register at $DF12 is the MMC64 status register, which is read-only:
17906
17907         bit  meaning
17908         ---  -------
17909         0    0 = SPI ready, 1 = SPI busy
17910         1    external GAME line
17911         2    external EXROM line
17912         3    0 = card inserted, 1 = no card inserted
17913         4    0 = card write enabled, 1 = card write disabled
17914         5    0 = flash jumper not set, 1 = flash jumper set
17915         6-7  unused
17916
17917The register at $DF13 is the MMC64 identification register, which when
17918reading from it can have the following values:
17919
17920$64 when bit 1 of $DF11 is 0.  $01 when bit 1 of $DF11 is 1 and REV A
17921hardware is used.  $02 when bit 1 of $DF11 is 1 and REV B hardware is
17922used.
17923
17924when writing to it it can be used to unlock bit 7 of $DF11 or to
17925re-enable the cart:
17926
17927Write $55 & $AA into this register to unlock bit 7 of $DF11.  Write $0A
17928& $1C into this register to re-enable MMC64 hardware.
17929
1793016.11.3.39 38 - MMC Replay
17931..........................
17932
17933Size                   64Kb or 512Kb (8 or 64 banks of 8Kb)
17934EXROM                  active (lo) (0)
17935GAME                   active (lo) (0)
17936Load address           $8000-$9FFF
17937
17938           00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F       ASCII
17939           -----------------------------------------------  ----------------
17940     0000: 43 36 34 20 43 41 52 54 52 49 44 47 45 20 20 20  C64?CARTRIDGE???
17941     0010: 00 00 00 40 01 00 00 26 00 00 00 00 00 00 00 00  ???@???&????????
17942     0020: 56 49 43 45 20 43 41 52 54 00 00 00 00 00 00 00  VICE?CART???????
17943     0030: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ????????????????
17944     0040: 43 48 49 50 00 00 20 10 00 00 00 00 80 00 20 00  CHIP????????.???
17945     0050: 1A 80 6E 9E C3 C2 CD 38 30 4D 4D 43 52 45 50 4C  ?.n�...80MMCREPL
17946
17947The cart uses the following registers:
17948
17949$DE00 - RR control register write
17950
17951         bit  meaning
17952         ---  -------
17953         0    GAME line
17954         1    EXROM line
17955         2    1 = disable RR, bit can be reset by setting bit 6 of $DF12
17956         3    bank address 13
17957         4    bank address 14
17958         5    0 = rom enable, 1 = ram enable
17959         6    1 = exit freeze mode
17960         7    bank address 15
17961
17962$DE01 - extended RR control register write
17963
17964         bit  meaning
17965         ---  -------
17966         0    0 = disable clockport, 1 = enable clockport
17967         1    0 = disable I/O RAM banking, 1 = enable I/O RAM banking
17968         2    0 = enable freeze, 1 = disable freeze
17969         3    bank address 13 (mirror of $DE00)
17970         4    bank address 14 (mirror of $DE00)
17971         5    0 = enable MMC registers, 1 = disable MMC registers. Can only  be
17972              written when bit 6 of $DF12 is 1. Register becomes effective when
17973              bit 0 of $DF11 is 1.
17974         6    0 = RAM/ROM at $DFxx, 1 = RAM/ROM at $DExx
17975         7    bank address 15 (mirror of $DE00)
17976
17977$DE02-$DE0F - Clockport memory area (when enabled)
17978
17979$DF10 - MMC SPI transfer register, a byte written is sent to the card &
17980response from the card is read here.
17981
17982$DF11 - MMC control register
17983
17984         bit  meaning
17985         ---  -------
17986         0    0 = MMC BIOS enabled, 1 = MMC BIOS disabled.  Enabling  MMC  BIOS
17987              sets ROM banking to the last 64Kb bank.
17988         1    0 = card selected, 1 = card not selected. This bit also  controls
17989              the green activity LED.
17990         2    0 = 250khz transfer, 1 = 8mhz transfer
17991         3    ALWAYS 0
17992         4    ALWAYS 0
17993         5    (in RR-Mode:)
17994               0 = allow RR rom when MMC BIOS disabled , 1 = disable RR ROM
17995               (in mmcreplay bios mode:)
17996               RAM banking (0 = $E000 - $FFFF, 1 = $8000 - $9FFF)
17997               (in 16K mode:)
17998               enable RAM at $A000 - $BFFF
17999         6    0 = SPI write trigger mode, 1 = SPI read trigger mode
18000         7    ALWAYS 0
18001
18002$DF12 - MMC status register
18003
18004         bit  meaning
18005         ---  -------
18006         0    0 = SPI ready, 1 = SPI busy (read)
18007                             1 = forbid ROM  write  accesses  (write).  Setting
18008                             this bit will disable writes  to  ROM  until  next
18009                             reset
18010         1  feedback of $DE00 bit 0 (GAME)
18011         2  feedback of $DE00 bit 1 (EXROM)
18012         3  0 = card inserted, 1 = no card inserted
18013         4  0 = card write enabled, 1 = card write disabled
18014         5  EEPROM DATA line /  DDR  register.  Setting  DATA  to  "1"  enables
18015            reading data bit from EEPROM at this position.
18016         6  0 = RR compatibility mode, 1 = Extended mode
18017            Selecting RR compatibility mode limits RAM  to  32Kb  and  disables
18018            writes  to  extended  banking  register.  Selecting  Extended  mode
18019            enables full RAM banking and enables Nordic Power mode in RR mode.
18020         7  EEPROM CLK line
18021
18022$DF13 - Extended banking register Can only be read/written to when bit 6
18023of $DF12 is 1
18024
18025         bit  meaning
18026         ---  -------
18027         0    bank address 16
18028         1    bank address 17
18029         2    bank address 18
18030         3    ALWAYS 0
18031         4    ALWAYS 0
18032         5    16K rom mapping
18033         6    1 = enable  RR  register.  Disabling  RR  register  disables  ALL
18034              ROM/RAM banking too.
18035         7    ALWAYS 0
18036
18037NOTE THAT THE MMC REPLAY EMULATION IS CURRENTLY INCOMPLETE AND
18038CONSIDERED BROKEN.
18039
1804016.11.3.40 39 - IDE64
18041.....................
18042
18043Size                   64Kb or 128Kb (4 or 8 banks of 16Kb)
18044EXROM                  active (lo) (0)
18045GAME                   inactive (hi) (1)
18046Load address           $8000-$BFFF
18047
18048           00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F       ASCII
18049           -----------------------------------------------  ----------------
18050     0000: 43 36 34 20 43 41 52 54 52 49 44 47 45 20 20 20  C64?CARTRIDGE???
18051     0010: 00 00 00 40 01 00 00 27 00 01 00 00 00 00 00 00  ???@???'????????
18052     0020: 49 44 45 36 34 20 43 41 52 54 52 49 44 47 45 20  IDE64 CARTRIDGE?
18053     0030: 49 44 45 44 4f 53 20 32 30 31 33 31 32 31 32 00  IDEDOS 20131212?
18054     0040: 43 48 49 50 00 00 40 10 00 02 00 00 80 00 40 00  CHIP????????.???
18055     0050: 63 80 5E FE C3 C2 CD 38 30 20 49 44 45 36 34 20  c.^....80?IDE64?
18056
18057The IDE64 cart uses the following registers:
18058
18059         $DE20 - $DE2F IDE BUS Registers
18060         $DE30 - Low Data HDD register
18061         $DE31 - High Data HDD register
18062
18063$DE32 register:
18064
18065         bit  meaning
18066         ---  -------
18067         7    unused (0)
18068         6    unused (0)
18069         5    unused (0)
18070         4    version number (1)
18071         3    romaddr15
18072         2    romaddr14
18073         1    game
18074         0    exrom
18075
18076         $DE32 - $DE35 = IDE64 ROM bank select registers
18077         $DE5F         = RTC access (bit 0 only to serial accessed RTC)
18078         $DE60 - $DEFF = ROM used by software
18079         $DEFB         = IDE64 clock reset, kill the cartridge
18080         $DEFC - $DEFF = IDE64 memory configuration registers
18081
1808216.11.3.41 40 - Super Snapshot V4
18083.................................
18084
18085Size                   32Kb (4 banks of 8Kb)
18086EXROM                  active (lo) (0)
18087GAME                   active (lo) (0)
18088Load address           $8000-$9FFF
18089
18090           00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F       ASCII
18091           -----------------------------------------------  ----------------
18092     0000: 43 36 34 20 43 41 52 54 52 49 44 47 45 20 20 20  C64?CARTRIDGE???
18093     0010: 00 00 00 40 01 00 00 28 00 00 00 00 00 00 00 00  ???@???(????????
18094     0020: 56 49 43 45 20 43 41 52 54 00 00 00 00 00 00 00  VICE?CART???????
18095     0030: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ????????????????
18096     0040: 43 48 49 50 00 00 20 10 00 00 00 00 80 00 20 00  CHIP????????.???
18097     0050: 80 AD B5 80 C3 C2 CD 38 30 08 48 A9 06 8D 00 DF  .�....80?P.?�??
18098     ...
18099     2050: 43 48 49 50 00 00 20 10 00 00 00 00 A0 00 20 00  CHIP????????�???
18100     2060: 4C FA A0 A9 07 8D 00 DD 2C 00 DD 50 FB 2C 00 DD  L?�.?�?.,?.P.,?.
18101     ...
18102     4060: 43 48 49 50 00 00 20 10 00 00 00 01 80 00 20 00  CHIP????????.???
18103     4070: 13 80 BC FE C3 C2 CD 38 30 08 48 A9 02 8D 00 DF  ?.?....80?H.?�??
18104     ...
18105     6070: 43 48 49 50 00 00 20 10 00 00 00 01 A0 00 20 00  CHIP????????�???
18106     6080: F0 8A 48 A9 00 85 22 85 23 8D 53 0F 20 0C A1 B0  ?�H.?�"�#�S???.�
18107
18108This cart has 32Kb of ROM and 8Kb of RAM, it uses I/O-1 as a mirror of
18109the last page of cart RAM. It has the following registers in the I/O-2
18110range:
18111
18112ROM config register at $DF00 (can only be written to):
18113
18114         bit  meaning
18115         ---  -------
18116         0    ?
18117         1    ? (write 1 to release freeze mode)
18118         2    ROM bank select
18119         3    write 1 to disable cartridge
18120         4-6  unused
18121         7    ?
18122
18123Note: if bit0, bit1, bit7 are all 0, then ultimax mapping is selected
18124and RAM is enabled at ROML, otherwise if bit 0 is 0, then 16Kb mapping
18125is enabled, or if bit 0 is 1, then 8Kb mapping is enabled.
18126
18127RAM config register at $DF01 (read/write):
18128
18129If written value == last value - 1, then ultimax mapping is selected and
18130RAM is enabled at ROML, if written value == last value + 1, then ROM is
18131enabled at ROML and exrom is deasserted (switch to either 8k or 16k
18132mapping)
18133
18134$DF02-$DFFF holds the last page of the first 8kb of the current bank.
18135
1813616.11.3.42 41 - IEEE-488
18137........................
18138
18139Size                   4Kb (1 bank of 4Kb)
18140EXROM                  active (lo) (0)
18141GAME                   inactive (hi) (1)
18142Load address           $8000-$8FFF
18143
18144           00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F       ASCII
18145           -----------------------------------------------  ----------------
18146     0000: 43 36 34 20 43 41 52 54 52 49 44 47 45 20 20 20  C64?CARTRIDGE???
18147     0010: 00 00 00 40 01 00 00 29 00 01 00 00 00 00 00 00  ???@???)????????
18148     0020: 56 49 43 45 20 43 41 52 54 00 00 00 00 00 00 00  VICE?CART???????
18149     0030: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ????????????????
18150     0040: 43 48 49 50 00 00 10 10 00 00 00 00 80 00 10 00  CHIP????????.???
18151     0050: 09 80 7A 80 C3 C2 CD 38 30 8E 16 D0 20 84 FF 20  ?.z....80�?.?�??
18152
18153The cart uses a TPI for the IEEE488 interface/communication in the I/O-2
18154range:
18155
18156         $DF00 - Port A Data
18157         $DF01 - Port B Data
18158         $DF02 - Port C Data
18159         $DF03 - Port A Direction
18160         $DF04 - Port B Direction
18161         $DF05 - Port C Direction
18162         $DF06 - Control register
18163         $DF07 - Active Interrupt register
18164
1816516.11.3.43 42 - Game Killer
18166...........................
18167
18168Size                   8Kb (1 bank of 8Kb)
18169EXROM                  inactive (hi) (1)
18170GAME                   active (lo) (0)
18171Load address           $E000-$FFFF
18172
18173           00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F       ASCII
18174           -----------------------------------------------  ----------------
18175     0000: 43 36 34 20 43 41 52 54 52 49 44 47 45 20 20 20  C64?CARTRIDGE???
18176     0010: 00 00 00 40 01 00 00 2A 01 00 00 00 00 00 00 00  ???@???*????????
18177     0020: 56 49 43 45 20 43 41 52 54 00 00 00 00 00 00 00  VICE?CART???????
18178     0030: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ????????????????
18179     0040: 43 48 49 50 00 00 20 10 00 00 00 00 E0 00 20 00  CHIP????????????
18180     0050: 00 25 08 CF 07 9E 32 30 38 38 20 4D 43 2E 43 52  ?%?.?�2088?MC.CR
18181
18182When the cartridge is active, ultimax is enabled when the address being
18183accessed is is the $E000-$FFFF range, so the ROM is visible at $E000,
18184below is normal C64 RAM. The cart can be disabled by writing to either
18185I/O-1 or I/O-2 range.  When the freezer button is pressed, the cartridge
18186will be enabled and an NMI will be triggered.
18187
1818816.11.3.44 43 - Prophet64
18189.........................
18190
18191Size                   256Kb (32 banks of 8Kb)
18192EXROM                  active (lo) (0)
18193GAME                   inactive (hi) (1)
18194Load address           $8000-$9FFF
18195
18196           00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F       ASCII
18197           -----------------------------------------------  ----------------
18198     0000: 43 36 34 20 43 41 52 54 52 49 44 47 45 20 20 20  C64?CARTRIDGE???
18199     0010: 00 00 00 40 01 00 00 2B 00 01 00 00 00 00 00 00  ???@???+????????
18200     0020: 56 49 43 45 20 43 41 52 54 00 00 00 00 00 00 00  VICE?CART???????
18201     0030: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ????????????????
18202     0040: 43 48 49 50 00 00 20 10 00 00 00 00 80 00 20 00  CHIP????????.???
18203     0050: 09 80 09 80 C3 C2 CD 38 30 78 A0 00 84 F8 84 FA  ?.?....80x�?�?�?
18204
18205The control register is the I/O-2 range:
18206
18207         bit  meaning
18208         ---  -------
18209         7-6  unused
18210         5    disable cart
18211         4-0  bank select
18212
1821316.11.3.45 44 - EXOS
18214....................
18215
18216Size                   8Kb (1 bank of 8Kb)
18217EXROM                  inactive (hi) (1)
18218GAME                   active (lo) (0)
18219Load address           $E000-$FFFF
18220
18221           00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F       ASCII
18222           -----------------------------------------------  ----------------
18223     0000: 43 36 34 20 43 41 52 54 52 49 44 47 45 20 20 20  C64?CARTRIDGE???
18224     0010: 00 00 00 40 01 00 00 2C 01 00 00 00 00 00 00 00  ???@???,????????
18225     0020: 56 49 43 45 20 43 41 52 54 00 00 00 00 00 00 00  VICE?CART???????
18226     0030: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ????????????????
18227     0040: 43 48 49 50 00 00 20 10 00 00 00 00 E0 00 20 00  CHIP????????????
18228     0050: 85 56 20 0F BC A5 61 C9 88 90 03 20 D4 BA 20 CC  �V???�a.��??.�?.
18229
18230This cart has 8Kb of ROM, mapped in at $E000-$FFFF only when hirom is
18231selected.  The cart uses a clip that needs to be installed inside the
18232C64.
18233
1823416.11.3.46 45 - Freeze Frame
18235............................
18236
18237Size                   8Kb (1 bank of 8Kb)
18238EXROM                  active (lo) (0)
18239GAME                   inactive (hi) (1)
18240Load address           $8000-$9FFF
18241
18242           00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F       ASCII
18243           -----------------------------------------------  ----------------
18244     0000: 43 36 34 20 43 41 52 54 52 49 44 47 45 20 20 20  C64?CARTRIDGE???
18245     0010: 00 00 00 40 01 00 00 2D 00 01 00 00 00 00 00 00  ???@???-????????
18246     0020: 56 49 43 45 20 43 41 52 54 00 00 00 00 00 00 00  VICE?CART???????
18247     0030: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ????????????????
18248     0040: 43 48 49 50 00 00 20 10 00 00 00 00 80 00 20 00  CHIP????????.???
18249     0050: 10 80 10 80 C3 C2 CD 38 30 20 00 00 00 00 00 00  ?.?....80???????
18250
18251When reading from the I/O-1 range the cart is enabled, when reading from
18252the I/O-2 range the cart is disabled.  When the freeze button is pressed
18253the ROM is mapped to both $8000-$9FFF and $E000-$FFFF.
18254
1825516.11.3.47 46 - Freeze Machine
18256..............................
18257
18258Size                   16Kb or 32Kb (2 or 4 banks of 8Kb)
18259EXROM                  active (lo) (0)
18260GAME                   inactive (hi) (1)
18261Load address           $8000-$9FFF
18262
18263           00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F       ASCII
18264           -----------------------------------------------  ----------------
18265     0000: 43 36 34 20 43 41 52 54 52 49 44 47 45 20 20 20  C64?CARTRIDGE???
18266     0010: 00 00 00 40 01 00 00 2E 00 01 00 00 00 00 00 00  ???@???.????????
18267     0020: 56 49 43 45 20 43 41 52 54 00 00 00 00 00 00 00  VICE?CART???????
18268     0030: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ????????????????
18269     0040: 43 48 49 50 00 00 20 10 00 00 00 00 80 00 20 00  CHIP????????.???
18270     0050: 3A 83 60 80 C3 C2 CD 38 30 20 00 00 40 00 00 00  :�`....80???@???
18271     ...
18272     2050: 43 48 49 50 00 00 20 10 00 00 00 00 A0 00 20 00  CHIP???????? ???
18273     2060: 78 A9 34 85 01 A0 00 B1 F8 91 F6 E6 F8 D0 02 E6  x.4�?�?�?.?�?.?�
18274     ...
18275     4060: 43 48 49 50 00 00 20 10 00 00 00 01 80 00 20 00  CHIP????????.???
18276     4070: 3A 83 60 80 C3 C2 CD 38 30 20 00 00 40 00 00 00  :�`....80???@???
18277     ...
18278     6070: 43 48 49 50 00 00 20 10 00 00 00 01 A0 00 20 00  CHIP???????? ???
18279     6080: 78 A9 34 85 01 A0 00 B1 F8 91 F6 E6 F8 D0 02 E6  x.4�?�?�?.?�?.?�
18280
18281Warning, the following information is based on guess-work and might be
18282incorrect, any further information and/or corrections are appreciated.
18283
18284When reading from the I/O-1 range ROM bank 0(/2) is mapped to
18285$8000-$9FFF and ROM bank 1(/3) is mapped to $A000-$BFFF. When reading
18286from the I/O-2 range the cart is disabled.  When a reset happens the ROM
18287banks get switched and ROM bank 0(/2) is mapped to $8000-$9FFF. When a
18288freeze happens ROM bank 0(/2) is mapped to both $8000-$9FFF and
18289$E000-$FFFF.
18290
1829116.11.3.48 47 - Snapshot 64
18292...........................
18293
18294Size                   4Kb (1 bank of 4Kb)
18295EXROM                  inactive (hi) (1)
18296GAME                   inactive (hi) (1)
18297Load address           $E000-$EFFF
18298
18299           00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F       ASCII
18300           -----------------------------------------------  ----------------
18301     0000: 43 36 34 20 43 41 52 54 52 49 44 47 45 20 20 20  C64?CARTRIDGE???
18302     0010: 00 00 00 40 01 00 00 2F 00 00 00 00 00 00 00 00  ???@???/????????
18303     0020: 56 49 43 45 20 43 41 52 54 00 00 00 00 00 00 00  VICE?CART???????
18304     0030: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ????????????????
18305     0040: 43 48 49 50 00 00 10 10 00 00 00 00 E0 00 10 00  CHIP????????????
18306     0050: 78 D8 48 8A 48 98 48 AC 0D DD 10 03 4C EE F2 AD  x.H�H�H??.??L??
18307
18308Warning, the following information is based on guess-work and might be
18309incorrect, any further information and/or corrections are appreciated.
18310
18311The cart has a control bit (bit 0) in the I/O-2 range which is used to
18312disable or enable the cart.
18313
1831416.11.3.49 48 - Super Explode V5.0
18315..................................
18316
18317Size                   16Kb (2 banks of 8Kb)
18318EXROM                  active (lo) (0)
18319GAME                   inactive (hi) (1)
18320Load address           $8000-$9FFF
18321
18322           00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F       ASCII
18323           -----------------------------------------------  ----------------
18324     0000: 43 36 34 20 43 41 52 54 52 49 44 47 45 20 20 20  C64?CARTRIDGE???
18325     0010: 00 00 00 40 01 00 00 30 00 01 00 00 00 00 00 00  ???@???0????????
18326     0020: 56 49 43 45 20 43 41 52 54 00 00 00 00 00 00 00  VICE?CART???????
18327     0030: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ????????????????
18328     0040: 43 48 49 50 00 00 20 10 00 00 00 00 80 00 20 00  CHIP????????.???
18329     0050: D7 86 5E FE C3 C2 CD 38 30 A9 00 2C A9 FF 85 FE  .�^....80.?,.?�.
18330     ...
18331     2050: 43 48 49 50 00 00 20 10 00 00 00 01 80 00 20 00  CHIP????????.???
18332     2060: E8 96 5E FE C3 C2 CD 38 30 20 6C 81 A9 09 8D 99  ?�^....80?l�.?��
18333
18334Warning, the following information is based on guess-work and might be
18335incorrect, any further information and/or corrections are appreciated.
18336
18337The cart has 16Kb of ROM which are used as two banks of 8Kb, they are
18338mapped into $8000-$9FFF and the last page of the current ROM bank is
18339mirrored in $DF00-$DFFF. The cart has a control bit (bit 7) at $DF00,
18340which is used to select what ROM bank is used.
18341
1834216.11.3.50 49 - Magic Voice
18343...........................
18344
18345Size                   16Kb (2 banks of 8Kb)
18346EXROM                  inactive (hi) (1)
18347GAME                   active (lo) (0)
18348Load address           $8000-$9FFF (bank 1), $A000-$BFFF (bank 2)
18349
18350           00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F       ASCII
18351           -----------------------------------------------  ----------------
18352     0000: 43 36 34 20 43 41 52 54 52 49 44 47 45 20 20 20  C64?CARTRIDGE???
18353     0010: 00 00 00 40 01 00 00 31 01 00 00 00 00 00 00 00  ???@???1????????
18354     0020: 56 49 43 45 20 43 41 52 54 00 00 00 00 00 00 00  VICE?CART???????
18355     0030: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ????????????????
18356     0040: 43 48 49 50 00 00 20 10 00 00 00 00 80 00 20 00  CHIP????????.???
18357     0050: EA 2C 80 DF 50 FB A0 00 8C 80 DF B9 E3 A3 29 0F  .,.?P. ?�.?�.�)?
18358     ...
18359     2050: 43 48 49 50 00 00 20 10 00 00 00 00 A0 00 20 00  CHIP???????? ???
18360     2060: 4A EB C0 49 6A EA BB FB 4E CA 43 1E 75 63 15 97  J?.Ij.�.N.C?uc?�
18361
18362This cart has 16Kb of ROM, mapped in at reset at $8000-$BFFF. The cart
18363is controled through a TPI at $DF80-$DF87:
18364
18365         $DF80 - Port A Data
18366         $DF81 - Port B Data
18367         $DF82 - Port C Data
18368         $DF83 - Port A Direction
18369         $DF84 - Port B Direction
18370         $DF85 - Port C Direction
18371         $DF86 - Control register
18372         $DF87 - Active Interrupt register
18373
18374The cart has a pass-through port and does the following at start-up:
18375
18376   * Program starts after reset at $FFD3, and copies code from
18377     $FF36-$FFD2 to $0200-$029C (157 bytes)
18378
18379   * Program continues at $021A, copies $A000-$BFFF from EPROM to RAM at
18380     $A000-$BFFF (8Kb), copies $E000-$FFFF from EPROM to RAM at
18381     $E000-$FFFF (8Kb), copies $AE62-$B461 from RAM to RAM at
18382     $C000-$C5FF (Magic Voice Code)
18383
18384   * Jump to beginning of Magic Voice code at $C000
18385
1838616.11.3.51 50 - Action Replay 2
18387...............................
18388
18389Size                   16Kb (2 banks of 8Kb)
18390EXROM                  active (lo) (0)
18391GAME                   inactive (hi) (1)
18392Startup mode           8k Game
18393Load address           $8000-$9FFF
18394
18395           00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F       ASCII
18396           -----------------------------------------------  ----------------
18397     0000: 43 36 34 20 43 41 52 54 52 49 44 47 45 20 20 20  C64?CARTRIDGE???
18398     0010: 00 00 00 40 01 00 00 32 00 01 00 00 00 00 00 00  ???@???2????????
18399     0020: 56 49 43 45 20 43 41 52 54 00 00 00 00 00 00 00  VICE?CART???????
18400     0030: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ????????????????
18401     0040: 43 48 49 50 00 00 20 10 00 00 00 00 80 00 20 00  CHIP????????.???
18402     0050: EA EA 68 AA 68 85 94 68 85 95 68 85 96 68 85 97  ..h�h��h��h��h��
18403     ...
18404     2050: 43 48 49 50 00 00 20 10 00 00 00 01 80 00 20 00  CHIP????????.???
18405     2060: 30 80 5E FE C3 C2 CD 38 30 20 04 90 4C 38 DF 1A  0.^....80??�L8??
18406
18407Warning, the following information is based on guess-work and might be
18408incorrect, any further information and/or corrections are appreciated.
18409
18410I/O-1 is somehow used to enable the cart, the exact way in which this is
18411done is unknown.  Reading from the I/O-2 range will give you the last
18412page of the current ROM bank, and writing to it will disable the cart.
18413
1841416.11.3.52 51 - MACH 5
18415......................
18416
18417Size                   4Kb or 8Kb (1 bank of 4Kb or 8Kb)
18418EXROM                  active (lo) (0)
18419GAME                   inactive (hi) (1)
18420Startup mode           8k Game
18421Load address           $8000-$8FFF (4Kb), $8000-$9FFF (8Kb)
18422
18423           00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F       ASCII
18424           -----------------------------------------------  ----------------
18425     0000: 43 36 34 20 43 41 52 54 52 49 44 47 45 20 20 20  C64?CARTRIDGE???
18426     0010: 00 00 00 40 01 00 00 33 00 01 00 00 00 00 00 00  ???@???3????????
18427     0020: 56 49 43 45 20 43 41 52 54 00 00 00 00 00 00 00  VICE?CART???????
18428     0030: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ????????????????
18429     0040: 43 48 49 50 00 00 20 10 00 00 00 00 80 00 20 00  CHIP????????.???
18430     0050: AF 83 5E FE C3 C2 CD 38 30 4D 41 43 48 35 A5 93  ��^....80MACH5�.
18431
18432This cart has 8Kb ROM mapped at $8000-$9FFF, the $9E00-$9EFF range is
18433mirrored at $DE00-$DEFF and the $9F00-$9FFF range is mirrored at
18434$DF00-$DFFF.
18435
1843616.11.3.53 52 - Diashow maker
18437.............................
18438
18439Size                   8Kb (1 bank of 8Kb)
18440EXROM                  active (lo) (0)
18441GAME                   inactive (hi) (1)
18442Startup mode           8k Game
18443Load address           $8000-$9FFF
18444
18445           00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F       ASCII
18446           -----------------------------------------------  ----------------
18447     0000: 43 36 34 20 43 41 52 54 52 49 44 47 45 20 20 20  C64?CARTRIDGE???
18448     0010: 00 00 00 40 01 00 00 34 00 01 00 00 00 00 00 00  ???@???4????????
18449     0020: 56 49 43 45 20 43 41 52 54 00 00 00 00 00 00 00  VICE?CART???????
18450     0030: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ????????????????
18451     0040: 43 48 49 50 00 00 20 10 00 00 00 00 80 00 20 00  CHIP????????.???
18452     0050: 09 80 09 80 C3 C2 CD 38 30 AD 11 D0 29 10 D0 62  ?.?....80?.)?.b
18453
18454Accessing I/O-1 (the software uses $DE00 only it seems) disables
18455cartridge ROM. A reset enables 8K game mode and the ROM bank is mapped
18456to $8000.  A freeze causes ROM to be mapped to $8000.
18457
1845816.11.3.54 53 - Pagefox
18459.......................
18460
18461Size                   64Kb (4 banks of 16Kb)
18462EXROM                  active (lo) (0)
18463GAME                   active (lo) (0)
18464Startup mode           16k Game
18465Load address           $8000-$BFFF
18466
18467           00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F       ASCII
18468           -----------------------------------------------  ----------------
18469     0000: 43 36 34 20 43 41 52 54 52 49 44 47 45 20 20 20  C64?CARTRIDGE???
18470     0010: 00 00 00 40 01 00 00 35 00 00 00 00 00 00 00 00  ???@???5????????
18471     0020: 56 49 43 45 20 43 41 52 54 00 00 00 00 00 00 00  VICE?CART???????
18472     0030: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ????????????????
18473     0040: 43 48 49 50 00 00 40 10 00 00 00 00 80 00 40 00  CHIP??@?????.?@?
18474     0050: 31 80 BB 0E C3 C2 CD 38 30 50 46 20 56 31 2E 30  1.�?...80PF?V1.0
18475     ...
18476     4050: 43 48 49 50 00 00 40 10 00 00 00 01 80 00 40 00  CHIP??@?????.?@?
18477     4060: A2 FE 9A 20 EC AE 20 82 80 20 74 86 20 A5 8B 4C  ...??�?�.?t�?��L
18478     ...
18479     8060: 43 48 49 50 00 00 40 10 00 00 00 02 80 00 40 00  CHIP??@?????.?@?
18480     8070: 5A 01 02 03 04 06 0A 0B 10 14 1E 28 3C 00 00 00  Z??????????(<???
18481     ...
18482     C070: 43 48 49 50 00 00 40 10 00 00 00 03 80 00 40 00  CHIP??@?????.?@?
18483     C080: 1E 03 14 82 09 05 09 0F 0C 0D 0F 05 09 09 0B 0A  ???�????????????
18484
18485This cart has 64Kb ROM (2 32Kb Eproms, mapped to $8000 and $A000 in 16Kb
18486Game Mode), and 32Kb RAM (mapped to $8000 and $A000 in 16K Game Mode).
18487The cart has 1 (write-only) bank control register which is located at
18488$DE80 and mirrored throughout the $DE80-$DEFF range:
18489
18490         Bit 0: unused/don't care
18491         Bit 1: Bank select: 0=upper, 1=lower (not correct ?!)
18492         Bit 2: chip select 0
18493         Bit 3: chip select 1
18494         Bit 4: cartridge enable/disable: 0=enable, 1=disable
18495         Bits 5-7: unused/don't care
18496
18497Chip select combinations of 0/1 are:
18498         00: Eprom "79"
18499         01: Eprom "ZS3"
18500         10: Ram
18501         11: empty space (reading returns VIC-II data)
18502
18503note: on the original hardware "disabling" the cartridge by setting bit
185044 of the control register does NOT prevent write accesses to the
18505cartridge RAM!. So to actually disable the RAM, it is suggested to write
18506$FF to the register.
18507
1850816.11.3.55 54 - Kingsoft
18509........................
18510
18511Size                   24Kb (3 banks of 8Kb)
18512EXROM                  active (lo) (0)
18513GAME                   active (lo) (0)
18514Startup mode           16k Game
18515Load address           $8000-$9FFF
18516
18517           00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F       ASCII
18518           -----------------------------------------------  ----------------
18519     0000: 43 36 34 20 43 41 52 54 52 49 44 47 45 20 20 20  C64?CARTRIDGE???
18520     0010: 00 00 00 40 01 00 00 36 00 00 00 00 00 00 00 00  ???@???6????????
18521     0020: 56 49 43 45 20 43 41 52 54 00 00 00 00 00 00 00  VICE?CART???????
18522     0030: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ????????????????
18523     0040: 43 48 49 50 00 00 20 10 00 00 00 00 80 00 20 00  CHIP????????.???
18524     0050: 09 80 A2 89 C3 C2 CD 38 30 20 D3 83 78 8D 00 DE  ?..�...80?.�x�?.
18525     ...
18526     2050: 43 48 49 50 00 00 20 10 00 00 00 01 80 00 20 00  CHIP????????.???
18527     2060: 72 A2 05 A5 45 10 01 CA A5 46 10 02 CA CA 86 28  r.?�E??.�F??..�(
18528     ...
18529     4060: 43 48 49 50 00 00 20 10 00 00 00 02 80 00 20 00  CHIP????????.???
18530     4070: 78 A2 FF 9A D8 A9 08 8D 16 D0 A0 00 98 99 02 00  x.?...? ?. ?��??
18531
18532This cart has 24Kb ROM (3 8Kb Eproms)
18533
18534         reading io1:
18535         - switches to 16k game mode
18536         - first eprom mapped to 8000 (ROML)
18537         - second eprom mapped to A000 (ROMH)
18538
18539         writing io1:
18540         - switches to ultimax mode _only_:
18541           - if 0xc000 > address >= 0x8000
18542           - if address >= 0xe000
18543           (meaning 0x0000-0x7fff and 0xc000-0xdfff gives normal c64 ram/io)
18544         - first eprom mapped to 8000 (ROML)
18545         - third eprom mapped to e000 (ROMH)
18546
1854716.11.3.56 55 - Silverrock 128
18548..............................
18549
18550Size                   128Kb (16 banks of 8Kb)
18551EXROM                  active (lo) (0)
18552GAME                   inactive (hi) (1)
18553Startup mode           8k Game
18554Load address           $8000-$9FFF
18555
18556            00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F       ASCII
18557            -----------------------------------------------  ----------------
18558     00000: 43 36 34 20 43 41 52 54 52 49 44 47 45 20 20 20  C64?CARTRIDGE???
18559     00010: 00 00 00 40 01 00 00 37 00 01 00 00 00 00 00 00  ???@???7????????
18560     00020: 56 49 43 45 20 43 41 52 54 00 00 00 00 00 00 00  VICE?CART???????
18561     00030: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ????????????????
18562     00040: 43 48 49 50 00 00 20 10 00 00 00 00 80 00 20 00  CHIP????????.???
18563     00050: 09 80 09 80 C3 C2 CD 38 30 78 A2 FF 9A D8 A9 00  ?.?....80?.?...?
18564     ...
18565     02050: 43 48 49 50 00 00 20 10 00 00 00 01 80 00 20 00  CHIP????????.???
18566     02060: 00 21 1D A9 90 1B 67 70 FD B0 04 C3 19 B9 11 2D  ???. ?gp?�?.?�??
18567     ...
18568     04060: 43 48 49 50 00 00 20 10 00 00 00 02 80 00 20 00  CHIP????????.???
18569     04070: 00 41 62 92 AD 71 32 87 08 20 BE 90 4C 36 8F 20  ?Ab.q2.??. L6 ?
18570     ...
18571     06070: 43 48 49 50 00 00 20 10 00 00 00 03 80 00 20 00  CHIP????????.???
18572     06080: 00 61 00 02 02 03 0D 40 82 15 D0 A1 08 40 84 00  ?a?????@�?..?@�?
18573     ...
18574     08080: 43 48 49 50 00 00 20 10 00 00 00 04 80 00 20 00  CHIP????????.???
18575     08090: 00 81 8A 85 0D F0 8A 28 83 F8 8A 00 8B 58 83 60  ? ��??�?�?�?�X�`
18576     ...
18577     0A090: 43 48 49 50 00 00 20 10 00 00 00 05 80 00 20 00  CHIP????????.???
18578     0A0A0: 00 A1 C2 E3 C4 86 32 14 00 C5 40 EA 13 CA CB CC  ?....�2??.@.?...
18579     ...
18580     0C0A0: 43 48 49 50 00 00 20 10 00 00 00 06 80 00 20 00  CHIP????????.???
18581     0C0B0: 00 C1 81 59 60 00 81 5D D9 58 5E EE 58 6E 3C 28  ?. Y`? ].X^?Xn<?
18582     ...
18583     0E0B0: 43 48 49 50 00 00 20 10 00 00 00 07 80 00 20 00  CHIP????????.???
18584     0E0C0: 00 E1 0F BF 3D 56 00 7E 52 FD 50 03 AA 00 0D 40  ???.=V?~R?P?�??@
18585     ...
18586     100C0: 43 48 49 50 00 00 20 10 00 00 00 08 80 00 20 00  CHIP????????.???
18587     100D0: 01 01 B9 D1 0D 15 89 55 65 45 41 C5 01 45 45 A8  ??�.??�UeEA.?EE?
18588     ...
18589     120D0: 43 48 49 50 00 00 20 10 00 00 00 09 80 00 20 00  CHIP????????.???
18590     120E0: 01 21 0C C7 29 54 41 29 4D C5 06 24 C7 24 8F 81  ???.?TA?M.??.?
18591     ...
18592     140E0: 43 48 49 50 00 00 20 10 00 00 00 0A 80 00 20 00  CHIP????????.???
18593     140F0: 01 41 EA 87 7A AF 95 67 BD F7 00 7D 6E C4 5D A6  ?A..z��g???.n.]?
18594     ...
18595     160F0: 43 48 49 50 00 00 20 10 00 00 00 0B 80 00 20 00  CHIP????????.???
18596     16100: 01 61 6A 92 6B 93 6B 94 6C 95 6D 96 6E 97 6E 98  ?aj.k.k�l�m�n�n�
18597     ...
18598     18100: 43 48 49 50 00 00 20 10 00 00 00 0C 80 00 20 00  CHIP????????.???
18599     18110: 01 81 0E 83 0D 0B 0F 81 FF 28 28 1E E3 0A 14 62  ? ?�??? ????.??b
18600     ...
18601     1A110: 43 48 49 50 00 00 20 10 00 00 00 0D 80 00 20 00  CHIP????????.???
18602     1A120: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ????????????????
18603     ...
18604     1C120: 43 48 49 50 00 00 20 10 00 00 00 0E 80 00 20 00  CHIP????????.???
18605     1C130: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ????????????????
18606     ...
18607     1E130: 43 48 49 50 00 00 20 10 00 00 00 0F 80 00 20 00  CHIP????????.???
18608     1E140: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ????????????????
18609
18610Cartridge hardware is designed around a 128Kb ROM (PROM or Mask ROM)
18611which is divided into 16 banks each of 8Kb.  When adressing the onboard
18612bank-switching logic the requested ROM bank is mapped at address range
18613$8000-$9fff (8Kb)
18614
18615The cartridge PCB layout was cost-optimized for mass-production
18616purposes.
18617
18618The address-/data-lines and bank-switching logic uses the closest
18619address-/data-lines with shortest and most direct path/distance in order
18620to avoid too much PCB re-routing and keep production costs as low as
18621possible.
18622
18623This means that the respective address-/data-lines from the cartridge
18624port may not necessarily connect with the corresponding
18625address-/data-line of the ROM according to the official specs of the
18626ROM.
18627
18628This has over the years given some headaches and invalid dumps when
18629cartridge dumpers that wanted to dump the cartridge contents by
18630de-soldering the ROM and dumping it using an EPROM programmer/reader.
18631
18632The image extracted from such an operation would need transformation
18633according to the actual cartridge PCB re-routing of address-/data-lines.
18634Alternatively one can make an adapter that implements this applied
18635re-routing of the address-/data-lines.
18636
18637This mass-production cost optimization also results in an obscured
18638bank-switching address pattern/values more info on that later.
18639
18640[HWrev1]: The original "Hugo" PCB [HWrev1] is labeled "HUGO Copyright
186411990" on both sides of the PCB. PCB production date is stamped on the
18642back og PCB in the format: "YYMM" 1Mbit 27C010 EPROM or PROM (typical
18643Atmel) "Hugo" PCB [HWrev1] contains the following discrete logic IC
18644components: 74LS00N (DIP) and 74LS237N (DIP) DIP pitch (pin spacing)
186452.54mm (0.1 inch) Assembly/production facilities: Philips, Strandlodsvej
18646(Amager), Copenhagen, Denmark
18647
18648[HWrev1] Bank-switching pattern: In order for the rom contents to appear
18649as a continuous memory layout the following ROM bank-switching pattern
18650must be applied by writing to adress 0xDE00: Cartridge bank-switching
18651values: 00 80 10 90 20 a0 30 b0 40 c0 50 d0 60 e0 70 f0 Writing the
18652bank-switch value to any address in address-range 0xDE00-0xDEFF will
18653work.
18654
18655[HWrev2]: Revised PCB [HWrev2] for SMD mount is labeled "SO-A4-1" on
18656both sides of PCB. 1Mbit Mask ROM (SOIC-32) PCB contains the following
18657discrete logic SMD IC components: 74HCT02T (SOIC-14) and 74HCT174T
18658(SOIC-16) SOIC (pitch) pin spacing 1.27mm (SMD mounted)
18659Assembly/production facilities: Sono Press, Germany.
18660
18661[HWrev2] Uses alternative bank-switching pattern: Writing *ANY* value to
18662address 0xDE0y (offset y) will select ROM bank y Cartridge still has 16
18663banks and the lower four bits in the address selects the right bank.
18664Hence the valid address range is 0xDE00-0xDE0F
18665
1866616.11.3.57 56 - Formel 64
18667.........................
18668
18669Size                   32Kb (4 banks of 8Kb)
18670EXROM                  inactive (hi) (1)
18671GAME                   active (lo) (0)
18672Startup mode           Ultimax
18673Load address           $E000-$FFFF
18674
18675           00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F       ASCII
18676           -----------------------------------------------  ----------------
18677     0000: 43 36 34 20 43 41 52 54 52 49 44 47 45 20 20 20  C64?CARTRIDGE???
18678     0010: 00 00 00 40 01 00 00 38 00 00 00 00 00 00 00 00  ???@???8????????
18679     0020: 56 49 43 45 20 43 41 52 54 00 00 00 00 00 00 00  VICE?CART???????
18680     0030: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ????????????????
18681     0040: 43 48 49 50 00 00 20 10 00 00 00 00 E0 00 20 00  CHIP????????????
18682     0050: 48 A9 FC 0C A9 FE 8D C2 DF 68 48 C9 8C F0 1C C9  H.??.? .?hH.�??.
18683     ...
18684     2050: 43 48 49 50 00 00 20 10 00 00 00 01 E0 00 20 00  CHIP????????????
18685     2060: EA EA 58 48 A9 FC 8D C2 DF 4C 6E E2 EA EA A9 FA  ..XH.? .?Ln....?
18686     ...
18687     4060: 43 48 49 50 00 00 20 10 00 00 00 02 E0 00 20 00  CHIP????????????
18688     4070: 4C 86 E4 A9 FE 78 8D C2 DF 60 78 8C C3 DF A9 FA  L�?.?x .?`x�.?.?
18689     ...
18690     6070: 43 48 49 50 00 00 20 10 00 00 00 03 E0 00 20 00  CHIP????????????
18691     6080: EA EA 48 58 A9 FC 8D C2 DF 68 48 C9 46 D0 7E 68  ..HX.? .?hH.F.~h
18692
18693the following is a quick overview of how the cartridge works, as its a
18694bit unusual and different from most other cartridges:
18695
18696     - 27256 EPROM (32k)
18697     - 7430 TTL
18698     - MC6821
18699     - 1 button (reset)
18700
18701     rom bank 0x00 - 0x03 (0x04) 8192* 4 32k mapped to e000
18702     MC6821 registers mapped to io2 at dfc0..dfc4
18703
18704     - press reset and hold delete to get the main menu
18705     - press reset and hold control to skip cbm80 check
18706       (dont start additional cartridge)
18707
18708     - press RESTORE, then...
18709       - left arrow, return  show disk directory
18710       - delete, 1           load"*" from disk, run
18711       - f1/f2               ? (disk stuff?)
18712       - f3/f4               ? (disk stuff?)
18713       - f5/f6, q            enter monitor
18714       - f7/f8, 2            show drive error channel
18715       - control, cursor     back to basic
18716
18717       - type "help" in basic to get a list of available commands
18718
18719     *** MC6821 Port usage
18720
18721     Port A (parallel cable to floppy drive):
18722     dfc0 port a ddr
18723     dfc1 port a (in/out)
18724
18725     Port B (controls banking)
18726     dfc2 port b ddr ($7f)
18727     dfc3 port b (out)
18728
18729     bit3    1 = rom at $e000 enabled, 0 = cartridge disabled
18730     bit1-2  rom bank number
18731     bit0    ?
18732
1873316.11.3.58 57 - RGCD
18734....................
18735
18736Size                   64Kb (8 banks of 8Kb)
18737EXROM                  active (lo) (0)
18738GAME                   inactive (hi) (1)
18739Startup mode           8k Game
18740Load address           $8000-$9FFF
18741
18742           00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F       ASCII
18743           -----------------------------------------------  ----------------
18744     0000: 43 36 34 20 43 41 52 54 52 49 44 47 45 20 20 20  C64?CARTRIDGE???
18745     0010: 00 00 00 40 01 00 00 39 00 01 00 00 00 00 00 00  ???@???9????????
18746     0020: 56 49 43 45 20 43 41 52 54 00 00 00 00 00 00 00  VICE?CART???????
18747     0030: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ????????????????
18748     0040: 43 48 49 50 00 00 20 10 00 00 00 00 80 00 20 00  CHIP????????.???
18749     0050: 0C 80 0C 80 C3 C2 CD 38 30 31 30 34 8E 16 D0 20  ?.?....80104�?.?
18750     ...
18751     2050: 43 48 49 50 00 00 20 10 00 00 00 01 80 00 20 00  CHIP????????.???
18752     2060: B9 0A 72 AB 0B F0 08 C9 2F 0C 10 27 E8 EF 5A C5  �?r�???.??????Z.
18753     ...
18754     4060: 43 48 49 50 00 00 20 10 00 00 00 02 80 00 20 00  CHIP????????.???
18755     4070: C0 B4 6C A6 6A 0A 14 5E 65 AD 94 02 86 C8 30 1F  .?l?j??^e�?�.0?
18756     ...
18757     6070: 43 48 49 50 00 00 20 10 00 00 00 03 80 00 20 00  CHIP????????.???
18758     6080: A4 89 C6 3A C4 60 F0 10 4D F5 89 F0 13 6C E0 78  ?�.:.`??M?�??l?x
18759     ...
18760     8080: 43 48 49 50 00 00 20 10 00 00 00 04 80 00 20 00  CHIP????????.???
18761     8090: 00 0B 08 14 00 9E 32 30 36 31 00 00 00 A0 35 BA  ?????�2061??? 5�
18762     ...
18763     A090: 43 48 49 50 00 00 20 10 00 00 00 05 80 00 20 00  CHIP????????.???
18764     A0A0: 1B 4A 00 53 90 77 8E 1A 1D 94 00 A6 E2 50 29 11  ?J?S w�??�???P??
18765     ...
18766     C0A0: 43 48 49 50 00 00 20 10 00 00 00 06 80 00 20 00  CHIP????????.???
18767     C0B0: 14 F7 2E 1A 34 B4 60 53 07 88 C4 F0 21 F6 88 20  ????4?`S?�.???�?
18768     ...
18769     E0B0: 43 48 49 50 00 00 20 10 00 00 00 07 80 00 20 00  CHIP????????.???
18770     E0C0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ????????????????
18771
18772This cartridge type is very similar to the Magic Desk cart type: ROM
18773memory is organized in 8Kb ($2000) banks located at $8000-$9FFF. Bank
18774switching is done by writing the bank number to $DE00.
18775
18776         bit 0-2   bank number
18777         bit 3     exrom latch (1 = cart disabled until reset or powercycle)
18778
1877916.11.3.59 58 - RR-Net MK3
18780..........................
18781
18782Size                   8Kb
18783EXROM                  active (lo) (0)
18784GAME                   inactive (hi) (1)
18785Startup mode           8k Game
18786Load address           $8000-$9FFF
18787
18788           00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F       ASCII
18789           -----------------------------------------------  ----------------
18790     0000: 43 36 34 20 43 41 52 54 52 49 44 47 45 20 20 20  C64?CARTRIDGE???
18791     0010: 00 00 00 40 01 00 00 3A 00 01 00 00 00 00 00 00  ???@???:????????
18792     0020: 56 49 43 45 20 43 41 52 54 00 00 00 00 00 00 00  VICE?CART???????
18793     0030: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ????????????????
18794     0040: 43 48 49 50 00 00 20 10 00 00 00 00 80 00 20 00  CHIP????????.???
18795     0050: 09 80 09 80 C3 C2 CD 38 30 78 A2 FF 9A D8 8E 16  ?.?....80x.?..�?
18796
18797This cartridge has a CS8900a based RR-Net compatible network interface,
18798and on 8Kb ($2000) bank ROM located at $8000-$9FFF. The ROM can be
18799switched on/off by writing to the IO1 space:
18800
18801         a write to $de80 enables the ROM
18802         a write to $de88 disables the ROM
18803
1880416.11.3.60 59 - EasyCalc
18805........................
18806
18807Size                   24Kb (3 banks of 8Kb)
18808EXROM                  active (lo) (0)
18809GAME                   active (lo) (0)
18810Startup mode           16k Game
18811Load address           $8000-$9FFF (bank 1), $A000-$BFFF (banks 2/3)
18812
18813           00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F       ASCII
18814           -----------------------------------------------  ----------------
18815     0000: 43 36 34 20 43 41 52 54 52 49 44 47 45 20 20 20  C64?CARTRIDGE???
18816     0010: 00 00 00 40 01 00 00 3B 00 00 00 00 00 00 00 00  ???@???;????????
18817     0020: 56 49 43 45 20 43 41 52 54 00 00 00 00 00 00 00  VICE?CART???????
18818     0030: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ????????????????
18819     0040: 43 48 49 50 00 00 20 10 00 00 00 00 80 00 20 00  CHIP????????.???
18820     0050: 59 89 BC FE C3 C2 CD 38 30 0B 80 B1 84 48 E6 84  Y�??...80?.��H��
18821     ...
18822     2050: 43 48 49 50 00 00 20 10 00 00 00 00 A0 00 20 00  CHIP???????? ???
18823     2060: 04 0B 20 52 45 50 4C 49 43 41 54 45 20 FB 89 0F  ???REPLICATE??�?
18824     ...
18825     4060: 43 48 49 50 00 00 20 10 00 00 00 01 A0 00 20 00  CHIP???????? ???
18826     4070: 02 10 B5 00 C9 E3 D0 01 C8 C9 E2 D0 01 C8 C9 E0  ??�?...?....?..?
18827
18828This cart uses 8Kb mapped in at $8000-$9FFF and 2 banks of 8Kb mapped in
18829at $A000-$BFFF.
18830
18831The bank at $A000-$BFFF is selected by bit 0 of the address of a write
18832access to I/O-1.
18833
18834         A0 | bank
18835         ---------
18836          0 |  0
18837          1 |  1
18838
1883916.11.3.61 60 - GMod2
18840.....................
18841
18842Size                   512Kb (64 banks of 8Kb)
18843EXROM                  active (lo) (0)
18844GAME                   inactive (hi) (1)
18845Startup mode           8k Game
18846Load address           $8000-$9FFF
18847
18848            00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F       ASCII
18849            -----------------------------------------------  ----------------
18850     00000: 43 36 34 20 43 41 52 54 52 49 44 47 45 20 20 20  C64?CARTRIDGE???
18851     00010: 00 00 00 40 01 00 00 3C 00 01 00 00 00 00 00 00  ???@???<????????
18852     00020: 56 49 43 45 20 43 41 52 54 00 00 00 00 00 00 00  VICE?CART???????
18853     00030: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ????????????????
18854     00040: 43 48 49 50 00 00 20 10 00 00 00 00 80 00 20 00  CHIP????????.???
18855     00050: 09 80 09 80 C3 C2 CD 38 30 78 8E 16 D0 20 A3 FD  ?.?....80x�?.?�?
18856     ...
18857     02050: 43 48 49 50 00 00 20 10 00 00 00 01 80 00 20 00  CHIP????????.???
18858     02060: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ????????????????
18859     ...
18860     7E430: 43 48 49 50 00 00 20 10 00 00 00 3F 80 00 20 00  CHIP????????.???
18861     7E440: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ????????????????
18862
18863GMod2 (Individual Computers)
18864
18865This cart uses 512K Flash ROM (29F040) in 64 banks, mapped in at
18866$8000-$9fff and has a 2K serial EEPROM (m93C86).
18867
18868         io1
18869             - register at de00
18870
18871             bit7   (rw)  write enable (write 1), EEPROM data output (read)
18872             bit6   (ro)  EXROM (0=active) and EEPROM chip select (1=selected)
18873             bit5-0 (ro)  rom bank  bit5 EEPROM clock bit4 EEPROM data input
18874
18875         see http://wiki.icomp.de/wiki/GMod2
18876
1887716.12 The PSID image format for ripped SID tunes
18878================================================
18879
18880This section describes the SID file format used for SID tunes in the
18881HVSC (High Voltage SID Collection - http://hvsc.de).  It is based mostly
18882on Michael Schwendt's document that describes the file format and the
18883PSID v2NG extensions described by Simon White and Dag Lem and was
18884further extended by Wilfred Bos (PSID v3/v4, RSID v3/v4) and LaLa
18885(assembled most of the following text) and last not least tweaked a bit
18886by Groepaz to fit into the VICE documentation.
18887
18888The original documentation maintained by the HVSC team can be found
18889here:
18890<http://www.hvsc.de/download/C64Music/DOCUMENTS/SID_file_format.txt>
18891
18892SID files use the .sid file extension.
18893
18894Since PSID v2 is simply an extension of PSID v1, PSID v2NG is an
18895extension of PSID v2, RSID is a restricted version of PSID v2NG, PSID
18896v3/v4 and RSID v3/v4 are extentions of PSID v2NG and RSID v2, all of the
18897formats are discussed together below.  RSID in specific is discussed in
18898detail under the 'magicID' field description.
18899
18900The information presented here targets programmers or other people with
18901reasonable background.  It is not suitable for newbies who have never
18902before used a machine code monitor, a disassembler, or a hexadecimal
18903editor.
18904
1890516.12.1 The SID file header v1
18906------------------------------
18907
18908The detailed structure of the SID header looks like the following.
18909Header offsets are in hexadecimal notation.  Other integer values are
18910decimal unless explicitly marked otherwise.  Any stored integer values
18911are in big-endian format:
18912
18913     +00    magicID: ``PSID'' or ``RSID''
18914
18915This is a four byte long ASCII character string containing the value
189160x50534944 or 0x52534944.  'RSID' (Real SID) denotes that the file
18917strictly requires a true Commodore-64 environment to run properly.
18918'PSID' files will generally run trouble-free on older PlaySID and
18919libsidplay1 based emulators, too.
18920
18921Some words about the Real C64 SID file format (RSID):
18922
18923The RSID format was designed to contain tunes that are not PlaySID
18924compatible, but strictly require a real C64 environment to run.  Tunes
18925that are multi-speed and/or contain samples and/or use additional
18926interrupt sources or do busy looping will cause older SID emulators to
18927lock up or play very wrongly (if at all).
18928
18929By using the name RSID for such rips all existing SID emulators will
18930reject these tunes safely until they can be upgraded to cope with the
18931additional requirements.
18932
18933Due to the nature of these tunes, every effort must be made to make sure
18934they are directly runnable on an actual C64 computer.  As such the tunes
18935will only be presented with the default C64 power-on environment and
18936expected to configure and use all hardware appropriately.
18937
18938RSID is based on PSIDv2NG with the following modifications:
18939
18940   * magicID = RSID
18941   * version = 2, 3 and 4 only
18942   * loadAddress = 0 (reserved)
18943   * playAddress = 0 (reserved)
18944   * speed = 0 (reserved)
18945   * psidSpecific flag is called C64BASIC flag
18946
18947The above fields MUST be checked and if any differ from the above then
18948the tune MUST be rejected.  The definitions above will force tunes to
18949contain proper hardware configuration code and install valid interrupt
18950handlers.
18951
18952See section "The SID file environment" below for the default C64
18953power-on environment for each SID file format.
18954
18955     +04    WORD version
18956
18957Available version number can be 0001, 0002, 0003 or 0004.  Headers of
18958version 2, 3 and 4 provide additional fields.  RSID and PSID v2NG files
18959must have 0002, 0003 or 0004 here.
18960
18961     +06    WORD dataOffset
18962
18963This is the offset from the start of the file to the C64 binary data
18964area.  Because of the fixed size of the header, this is either 0x0076
18965for version 1 and 0x007C for version 2, 3 and 4.
18966
18967     +08    WORD loadAddress
18968
18969The C64 memory location where to put the C64 data.  0 means the data are
18970in original C64 binary file format, i.e.  the first two bytes of the
18971data contain the little-endian load address (low byte, high byte).  This
18972must always be true for RSID files.  Furthermore, the actual load
18973address must NOT be less than $07E8 in RSID files.
18974
18975You must be absolutely sure what to enter here.  There is no way to
18976detect automatically whether the first two bytes in a C64 data file are
18977meant to be a load address or some arbitrary bytes of code or data.
18978Unless your C64 file is not a normal binary file and thus has no load
18979address in front, you need not enter anything else than 0 here.  The SID
18980tune will not play if you specify a load address which is present in the
18981C64 file already.
18982
18983Normal C64 binary data files have a load address in their first two
18984bytes, so they can be loaded to a pre-defined destination address by
18985executing LOAD"FILE",8,1, for instance.  If a load address is explicitly
18986specified in the sidtune info file, some sidtune converters and
18987utilities conjecture that the C64 data don't have a load address in
18988their first two bytes.  Hence, the explicit load address from the info
18989file is moved in front of the C64 data to create a valid C64 binary file
18990which can be easily loaded on a C64, too.  If that C64 file were to be
18991saved, it would contain two superfluous data bytes at offset 2 if an
18992original load address had been in the first two bytes of the old file.
18993This process of adding a duplicate load address can be repeated.  The
18994file loader strips off the first two bytes (the used load address) and
18995puts the rest of the file contents (including the now obsolete load
18996address at file offset 2) into memory.  If the new load address is the
18997same than the old one the two added bytes cause the whole data to be
18998displaced by two bytes, which most likely results in malfunctioning
18999code.  Also, superfluous bytes in memory then can confuse disassemblers
19000which start at the beginning of the file or memory buffer.
19001
19002     +0A    WORD initAddress
19003
19004The start address of the machine code subroutine that initializes a
19005song, accepting the contents of the 8-bit 6510 Accumulator as the song
19006number parameter.  0 means the address is equal to the effective load
19007address.
19008
19009In RSID files initAddress must never point to a ROM area ($A000-$BFFF or
19010$D000-$FFFF) or be lower than $07E8.  Also, if the C64 BASIC flag is
19011set, initAddress must be 0.
19012
19013     +0C    WORD playAddress
19014
19015The start address of the machine code subroutine that can be called
19016frequently to produce a continuous sound.  0 means the initialization
19017subroutine is expected to install an interrupt handler, which then calls
19018the music player at some place.  This must always be true for RSID
19019files.
19020
19021     +0E    WORD songs
19022
19023The number of songs (or sound effects) that can be initialized by
19024calling the init address.  The minimum is 1.  The maximum is 256.
19025
19026     +10    WORD startSong
19027
19028The song number to be played by default.  This value is optional.  It
19029often specifies the first song you would hear upon starting the program
19030is has been taken from.  It has a default of 1.
19031
19032     +12    LONGWORD speed
19033
19034This is a 32 bit big endian number.
19035
19036For version 1 and 2 and for version 2NG, 3 and 4 with PlaySID specific
19037flag (+76) set, the 'speed' should be handled as follows:
19038
19039Each bit in 'speed' specifies the speed for the corresponding tune
19040number, i.e.  bit 0 specifies the speed for tune 1.  If there are more
19041than 32 tunes, the speed specified for tune 32 is the same as tune 1,
19042for tune 33 it is the same as tune 2, etc.
19043
19044For version 2NG, 3 and 4 with PlaySID specific flag (+76) cleared, the
19045'speed' should be handled as follows:
19046
19047Each bit in 'speed' specifies the speed for the corresponding tune
19048number, i.e.  bit 0 specifies the speed for tune 1.  If there are more
19049than 32 tunes, the speed specified for tune 32 is also used for all
19050higher numbered tunes.
19051
19052For all version counts:
19053
19054   * A 0 bit specifies vertical blank interrupt (50Hz PAL, 60Hz NTSC),
19055     and a 1 bit specifies CIA 1 timer interrupt (default 60Hz).
19056   * Surplus bits in 'speed' should be set to 0.
19057   * For RSID files 'speed' must always be set to 0.
19058
19059Note that if 'play' = 0, the bits in 'speed' should still be set for
19060backwards compatibility with older SID players.  New SID players running
19061in a C64 environment will ignore the speed bits in this case.
19062
19063WARNING: This field does not work in PlaySID for Amiga like it was
19064intended, therefore the above is a redefinition of the original 'speed'
19065field in SID v2NG! See also the 'clock' (video standard) field described
19066below for 'flags'.
19067
19068     +16    ``<name>''
19069     +36    ``<author>''
19070     +56    ``<released>'' (once known as ``<copyright>'')
19071
19072These are 32 byte long ASCII character strings.  Upon evaluating the
19073header, these fields may hold a character string of 32 bytes which is
19074not zero terminated.  For less than 32 characters the string should be
19075zero terminated.  The maximum number of available free characters is 32.
19076
19077     +76    <data>
19078
19079Version 1 of the SID header is complete at this point.  The binary C64
19080data starts here.
19081
1908216.12.2 The SID file header v2, v3 and v4
19083-----------------------------------------
19084
19085Version 2, 3 and 4 of the header incorporates the v1 header fields and
19086provides additional fields.  Some of these are actually v2NG, v3 or v4
19087specific - those are noted below.
19088
19089     +76    WORD flags
19090
19091This is a 16 bit big endian number containing the following bitfields:
19092
19093   * Bit 0 specifies format of the binary data (musPlayer): 0 = built-in
19094     music player, 1 = Compute!'s Sidplayer MUS data, music player must
19095     be merged.
19096
19097If this bit is set, the appended binary data are in Compute!'s Sidplayer
19098MUS format, and does not contain a built-in music player.  An external
19099player machine code must be merged to replay such a sidtune.
19100
19101   * Bit 1 specifies whether the tune is PlaySID specific, e.g.  uses
19102     PlaySID samples (psidSpecific): 0 = C64 compatible, 1 = PlaySID
19103     specific (PSID v2NG, v3, v4) 1 = C64 BASIC flag (RSID)
19104
19105This is a v2NG and RSID specific field.
19106
19107PlaySID samples were invented to facilitate playback of C64 volume
19108register samples with the original Amiga PlaySID software.  PlaySID
19109samples made samples a reality on slow Amiga hardware with a player that
19110was updated only once a frame.
19111
19112Unfortunately, converting C64 volume samples to PlaySID samples means
19113that they can no longer be played on a C64, and furthermore the
19114conversion might potentially break the non-sample part of a tune if the
19115timing between writes to the SID registers is at all altered.  This
19116follows from the ADSR bugs in the SID chip.
19117
19118Today, the speed of common hardware and the sophistication of the SID
19119players is such that there is little need for PlaySID samples.  However,
19120with all the PlaySID sample PSIDs in existence there's a need to
19121differentiate between SID files containing only original C64 code and
19122PSID files containing PlaySID samples or having other PlaySID specific
19123issues.  As stated above, bit 1 in 'flags' is reserved for this purpose.
19124
19125Since RSID files do not have the need for PlaySID samples, this flag is
19126used for a different purpose: tunes that include a BASIC executable
19127portion will be played (with the BASIC portion executed) if the C64
19128BASIC flag is set.  At the same time, initAddress must be 0.
19129
19130   * Bits 2-3 specify the video standard (clock): 00 = Unknown, 01 =
19131     PAL, 10 = NTSC, 11 = PAL and NTSC.
19132
19133This is a v2NG specific field.
19134
19135As can be seen from the 'speed' field, it is not possible to specify
19136NTSC C64 playback.  This is unfortunate, since the different clock
19137speeds means that a tune written for the NTSC C64 will be slightly
19138detuned if played back on a PAL C64.  Furthermore, NTSC C64 tunes driven
19139by a vertical blank interrupt have to be converted to use the CIA 1
19140timer to fit into this scheme.  This can cause severe problems, as the
19141NTSC refresh rate is once every 17045 cycles, while the CIA 1 timer A is
19142latched with 17095 cycles.  Apart from the difference in timing itself,
19143the SID ADSR bugs can actually break the tune.
19144
19145The 'clock' (video standard) field was introduced to circumvent this
19146problem.
19147
19148   * Bits 4-5 specify the SID version (sidModel): 00 = Unknown, 01 =
19149     MOS6581, 10 = MOS8580, 11 = MOS6581 and MOS8580.
19150
19151This is a v2NG specific field.
19152
19153   * Bits 6-7 specify the SID version (sidModel) of the second SID: 00 =
19154     Unknown, 01 = MOS6581, 10 = MOS8580, 11 = MOS6581 and MOS8580.
19155
19156If bits 6-7 are set to Unknown then the second SID will be set to the
19157same SID model as the first SID.
19158
19159This is a v3 specific field.
19160
19161   * Bits 8-9 specify the SID version (sidModel) of the third SID: 00 =
19162     Unknown, 01 = MOS6581, 10 = MOS8580, 11 = MOS6581 and MOS8580.
19163
19164If bits 8-9 are set to Unknown then the third SID will be set to the
19165same SID model as the first SID.
19166
19167This is a v4 specific field.
19168
19169The MOS6581 and the MOS8580 have three notable differences.  First,
19170combined waveforms are generally louder on a MOS8580, to the extent that
19171some combinations that are clearly audible on a MOS8580 are completely
19172silent on a MOS6581.  Second, the internal DC levels in the MOS8580 are
19173so small that software or hardware tricks must be used to play volume
19174samples.  Third, the MOS8580 analog filter has totally different
19175characteristics from the MOS6581 analog filter.
19176
19177To ensure that music specifically written for one of the two SID
19178versions can be played back correctly, bits 4-9 in 'flags' are used as
19179stated above.
19180
19181   * Bits 10-15 are reserved and should be set to 0.
19182
19183     +78    BYTE startPage (relocStartPage)
19184
19185This is a v2NG specific field.
19186
19187This is an 8 bit number.  If 'startPage' is 0, the SID file is clean,
19188i.e.  it does not write outside its data range within the driver ranges.
19189In this case the largest free memory range can be determined from the
19190start address and the data length of the SID binary data.  If
19191'startPage' is 0xFF, there is not even a single free page, and driver
19192relocation is impossible.  Otherwise, 'startPage' specifies the start
19193page of the single largest free memory range within the driver ranges.
19194For example, if 'startPage' is 0x1E, this free memory range starts at
19195$1E00.
19196
19197     +79    BYTE pageLength (relocPages)
19198
19199This is a v2NG specific field.
19200
19201This is an 8 bit number indicating the number of free pages after
19202'startPage'.  If 'startPage' is not 0 or 0xFF, 'pageLength' is set to
19203the number of free pages starting at 'startPage'.  If 'startPage' is 0
19204or 0xFF, 'pageLength' must be set to 0.
19205
19206The relocation range indicated by 'startPage' and 'pageLength' should
19207never overlap or encompass the load range of the C64 data.  For RSID
19208files, the relocation range should also not overlap or encompass any of
19209the ROM areas ($A000-$BFFF and $D000-$FFFF) or the reserved memory area
19210($0000-$03FF).
19211
19212     +7A    BYTE secondSIDAddress
19213
19214This is a v3 specific field.  For v2NG, it should be set to 0.
19215
19216This is an 8 bit number indicating the address of the second SID. It
19217specifies the middle part of the address, $Dxx0, starting from value $42
19218for $D420 to $FE for $DFE0).  Only even values are valid.  Ranges
19219$00-$41 ($D000-$D410) and $80-$DF ($D800-$DDF0) are invalid.  Any
19220invalid value means that no second SID is used, like $00.
19221
19222     +7B    BYTE thirdSIDAddress
19223
19224This is a v4 specific field.  For v2NG and v3, it should be set to 0.
19225
19226This is an 8 bit number indicating the address of the third SID. It
19227specifies the middle part of the address, $Dxx0, starting from value $42
19228for $D420 to $FE for $DFE0).  Only even values are valid.  Ranges
19229$00-$41 ($D000-$D410) and $80-$DF ($D800-$DDF0) are invalid.  Any
19230invalid value means that no third SID is used, like $00.  The address of
19231the third SID cannot be the same as the second SID.
19232
19233     +7C    <data>
19234
19235Version 2, 3 and 4 of the SID header ends here.  This offset is the
19236start of the binary C64 data.  See also 'loadAddress' for what the first
192372 bytes of 'data' might indicate.
19238
1923916.12.3 The SID file environment
19240--------------------------------
19241
19242Before the data of a SID file is loaded in memory of a C64, certain
19243addresses and chips must be initialized in order to play the SID tune
19244correctly.
19245
19246For RSID and PSID files the following address must be set:
19247
19248$02A6                  depending on the PAL/NTSC flag in the SID file
19249                       header, it is set to 0x01 for PAL and set to
19250                       0x00 for NTSC.
19251
19252The default C64 environment for PSID files is as follows:
19253
19254VIC                    IRQ set to any raster value less than 0x100.
19255                       Enabled when speed flag is 0, otherwise
19256                       disabled.
19257CIA 1 timer A          set to 60Hz (0x4025 for PAL and 0x4295 for NTSC)
19258                       with the counter running.  IRQs active when
19259                       speed flag is 1, otherwise IRQs are disabled.
19260Other timers           disabled and loaded with 0xFFFF.
19261
19262When the init and play addresses are called the bank register value must
19263be written for every call and the value is calculated as follows:
19264
19265     if   address < $A000  -> 0x37 // I/O, Kernal-ROM, Basic-ROM
19266     else address < $D000  -> 0x36 // I/O, Kernal-ROM
19267     else address >= $E000 -> 0x35 // I/O only
19268     else                  -> 0x34 // RAM only
19269
19270The default C64 environment for RSID files is as follows:
19271
19272VIC                    IRQ set to raster 0x137, but not enabled.
19273CIA 1 timer A          set to 60Hz (0x4025 for PAL and 0x4295 for NTSC)
19274                       with the counter running and IRQs active.
19275Other timers           disabled and loaded with 0xFFFF.
19276Bank register          0x37
19277
19278   * A side effect of the bank register is that init MUST NOT be located
19279     under a ROM/IO memory area (addresses $A000-$BFFF and $D000-$FFFF)
19280     or outside the load image.
19281
19282   * Since every effort needs to be made to run the tune on a real C64
19283     the load address of the image MUST NOT be set lower than $07E8.
19284
19285   * If the C64 BASIC flag is set, the value at $030C must be set with
19286     the song number to be played (0x00 for song 1).
19287
19288
19289File: vice.info,  Node: Acknowledgments,  Next: Copyright,  Prev: File formats,  Up: Top
19290
1929117 Acknowledgments
19292******************
19293
19294VICE derives from X64, the first Commodore 64 emulator for the X Window
19295System.  Here is an informal list of the people who were mostly involved
19296in the development of X64 and VICE:
19297
19298The VICE core team:
19299
19300   * Martin Pottendorfer Implemented the Gnome Port based on Oliver
19301     Schaertels GTK+ port.  Added support code for internationalization
19302     based on gettext.  Improved the *nix fullscreen support.  Added
19303     multi- threaded GUI display for *nix.  Translated the UI to German.
19304     Implemented the fliplists + UI (*nix).
19305
19306   * Marco van den Heuvel Translated the UI to Dutch.  Made the
19307     internationalization support for the Win32 and Amiga ports.  Wrote
19308     the GEO-RAM and RamCart cartridge code.  Wrote the c64 +60K, +256K
19309     and 256K memory expansions code.  Wrote the pet REU code.  Wrote
19310     the plus4 memory expansions code.  Made the ethernet support for
19311     the DOS port.  Maintains the QNX 4.x, QNX 6.x, Solaris, Openserver,
19312     Unixware, Minix 3.x, Amiga, Syllable and OS/2 binary ports.
19313     Maintains the Win64 and Open Watcom project files.  Maintains the
19314     SDL port(s).  Added new .crt support.  Added new screenshot
19315     formats.  Added new sound recording support.  Added SIDcart support
19316     for xpet, xplus4 and xvic.  Improved the MMC64 emulation.  Added 2
19317     MHz mode and banks 2/3 support for x128.  Added the various
19318     userport joystick emulations.  Added text copy and paste support to
19319     the Amiga and BeOS ports.  Added DQBB and ISEPIC cartridge support.
19320     Added SFX Sound Sampler and SFX Sound Expander support.  Added PCI
19321     support to the Amiga and DOS ports.  Rewrote the sound system into
19322     a modular one, added always mono and always stereo support for the
19323     sound output.  Added the RTC system.  Added digiblaster support.
19324     Added 3rd SID support.  Added the 6309 CPU emulation.  Added the
19325     65(S)C02 emulation.  Added the 65816 emulation.  Added native
19326     screenshot (koala/doodle) support.  Added 6502/6510/8500/8502 cpu
19327     port unused bit fading.  Added vice.chm (windows), vice.guide
19328     (amiga), vice.hlp (windows), vice.inf (os/2), vice.pdf (generic)
19329     and vice.txt documentation generation.  Added Android port based on
19330     'AnVICE 1.0.5'.  Improved/fixed the 'in-source' FFMPEG support and
19331     fixed it for msvc7.0 and up.  Generalized the 'RS232 net' support
19332     to be able to be used on any network supporting arch.  Started the
19333     SDL2 port.  Added generic sampler input support.  Added new joyport
19334     system and converted the joystick, mouse and lightpen code to use
19335     the new system.  Added joyport attached rtc (bbrtc).  Added joyport
19336     attached cardkey keypad.  Added joyport attached coplin keypad.
19337     Added joyport attached atari cx21 keypad.  Added joyport attached
19338     atari cx85 keypad.  Added joyport attached paperclip 64 dongle.
19339     Added joyport attached rushware keypad.  Added joyport attached 2/4
19340     bit samplers.  Added vic20 I/O-2 and I/O-3 RAM support.  Added the
19341     c64 cp/m (z80) cartridge.  Added IDE64 digimax short bus device
19342     emulation.  Added tapeport system and the tapelog, cp-clockf83,
19343     tape-sense dongle, and (not yet working) dtl basic dongle devices.
19344     Added easy calc result cartridge emulation.  Added hardware SID I/O
19345     access system which allows CW3, HardSID, ParSID and SSI2001 to work
19346     on AmigaOS, BeOS, DOS, SDL, *nix and windows with and without
19347     device drivers.  Added clockport system for mmc64, mmcreplay,
19348     retroreplay and ide64.  Added rrnet clockport device.  Added mp3@64
19349     clockport device.  And lots of other fixes and improvements.
19350
19351   * Fabrizio Gennari Added some improvements to the DOS and GTK+ ports.
19352     Changed the Windows video to use GDI as fallback, making it compile
19353     without DX if needed.  Fixed the t64 support.  Added monitor window
19354     support using VTE to the GTK+ GUI. Made some monitor fixes.  Fixed
19355     some tape code issues.
19356
19357   * Groepaz Added new more precise CRT emulation.  Added support for
19358     the new cartridge system and many new cartridges.  Fixed up parts
19359     of cartconv, c1541 and petcat.  Added video to audio leak sound
19360     support.  Improved the GTK3 GUI. Added x64(sc), x128, x64dtv,
19361     xplus4, xvic model selection system.  Added KoalaPad emulation.
19362     Added keyrah keymaps.  Added joystick keys mapping to the keymap
19363     system.  CIA emulation improvements.  Added basic support for
19364     compute gazette sidplayer files (mus/str) to vsid.  Added new
19365     palette files.  Added 'available features' code.  Fixed/added some
19366     items in the OSX GUI. Added random tape wobble emulation.  Added
19367     64k RGCD cartridge emulation.  Added psid v4 3sid support to vsid.
19368     Added single frame advance.  Added drive RPM and wobble support.
19369     Added rrnet mk3 emulation.  Added GMod2 cartridge emulation.  Added
19370     xvic BehrBonz cartridge emulation.  Added VICII VSP-bug emulation.
19371     Wrote alot of test programs.  Updated this document after a long
19372     period of outdated mess.  And various fixes and improvements.
19373
19374   * Olaf Seibert Contributed some PET, including PET DWW hires, Xaw,
19375     lightpen, hardware scaling, and disk drive patches.  Added proper
19376     SuperPET support, including 6809/6309 CPU emulation.  Maintains the
19377     Xaw UI. Added PET HRE (High Res Emulator) board emulation.  Added
19378     the 2-chip colour board for the Universal PET mainboard.  Added
19379     support for 'printer/plotter' Commodore 1520.
19380
19381   * Marcus Sutton Made some console, dialog and joystick fixes for the
19382     BeOS port.  Maintains the BeOS port.  Added some GTK2 fixes.  Fixed
19383     some PET model selection issues.  Revived the Windows NT Unicode
19384     port.
19385
19386   * Kajtar Zsolt Wrote the IDE64 interface emulation, FD2000/4000 drive
19387     emulation, SCPU64 emulation and alot of fixes.  Improved the mouse
19388     support.  Added drive burst modification support.  Added 1541 drive
19389     sounds emulation.  Improved c64 cart emulation.  Added DAC high
19390     pass filtering.  Added the xscpu64 emulator.  Added scroll wheel
19391     support for the Micromys mouse emulation.  Added Swiss ROM support
19392     to x128.  Added IDE64 USB server emulation.  Added 1540 drive
19393     emulation.  Improved monitor support.  Improved vdrive
19394     compatibility.  Added godot screenshot support.  And fixed various
19395     issues.
19396
19397   * AreaScout Fixed the SDL2 port.  Revived the Android port.
19398     Maintains the SDL1, SDL2 and Android ports.
19399
19400   * Bas Wassink Fixed some gtk2/3 issues.  Fixed t64 file handling.
19401     Fixed memory leaks.  Added more doxygen documentation.  Fixed c1541
19402     issues.  Updated the Linux-Native-Howto.txt file.  Added autoconf,
19403     automake and yasm version checking.  Fixed runtime linker path
19404     issues with *BSD. Fixed out-of-tree building.  One of the driving
19405     forces behind the 'native' GTK3 port.
19406
19407   * Michael C. Martin One of the driving forces behind the 'native'
19408     GTK3 port.
19409
19410Former/inactive team members:
19411
19412   * BSzili Provided many amigaos4 fixes.  Maintained the amigaos based
19413     and derived ports.
19414
19415   * Errol Smith Improved VDC emulation.  Improved MPS803 printer
19416     emulation.
19417
19418   * Daniel Kahlin Worked on DTV VIC emulation, palette, DTV SID support
19419     in resid, better DMA/Blitter support and did lots of refactoring.
19420     Added new monitor commands and features.  Improved the VIC
19421     emulation for xvic.  Made MIDI driver code for Win32.  Rewrote the
19422     xvic cartridge system.  Added Mega-Cart and Final Expansion V3.2
19423     support to xvic.  Wrote large parts of the new VIC-II emulation
19424     used in x64sc, especially the dot clock domain emulation.  Wrote
19425     many test programs for hardware analysis.
19426
19427   * Andreas Matthies Improved the datasette support, the VIC20 video
19428     emulation and some UI stuff in the Win32 and DOS ports.  He also
19429     wrote the BeOS port and implemented video/audio capture support.
19430     Improved history recording/playback and implemented support for
19431     video recording and the netlink feature.  Made the Win32 user
19432     changable keyboard shortcut system.  Improved CIA and VIA
19433     emulation.  Worked on x64sc, especially interrupt timing.  Improved
19434     the FFMPEG support and started the 'in-source' FFMPEG
19435     support/merge.  Wrote test programs.  Various bug(fixe)s.  ;-)
19436
19437   * Ulrich Schulz Maintains the Dingoo port(s).
19438
19439   * Stefan Haubenthal Added some Amiga fixes.
19440
19441   * Thomas Giesel Added new monitor commands, features and
19442     improvements.
19443
19444   * Ingo Korb Corrected block allocation and interleave for
19445     c1541/vdrive, added rudimentary xplus4 tape recording support,
19446     fixed some GTK2 issues, corrected a case of missing Pi symbols in
19447     petcat, changed the trap opcode byte, stopped the high-level serial
19448     drive code from responding to addresses 16-30 and was forced to
19449     update this entry himself.
19450
19451   * Antti S. Lankila Made the ReSID-fp engine, rewrote the PAL
19452     emulation code and fixed the sound core for lower latency.  Rewrote
19453     DTV SID support (ReSID-dtv).  Improved 1541 drive rotation
19454     emulation.  Worked on x64sc.  Added RSID BASIC tunes support to
19455     vsid.  Several ReSID fixes and improvements.
19456
19457   * Christian Vogelgsang Maintained the Mac OS X port.  Added Intel Mac
19458     support and universal binary creation.  Wrote the build scripts for
19459     all external Mac libraries and the bindist bundle tool.  Improved
19460     the TFE chip emulation.  Added some GTK+ fixes.
19461
19462   * Dag Lem Implemented the reSID SID emulation engine and video
19463     hardware scaling.
19464
19465   * Spiro Trikaliotis Copyright (C) 2000-2011 Wrote the Win32 console
19466     implementation for the built-in monitor, corrected some REU related
19467     bugs, improved the CIA emulation, added com-port CIA support to the
19468     Win32 port, added text copy and paste support to the Win32 port,
19469     added support for the TFE and RR-Net (cs8900a), and wrote some
19470     further patches.
19471
19472   * Hannu Nuotio Copyright (C) 2007-2011 Implemented DTV flash
19473     emulation, DTV support in the monitor, large parts of the DTV VIC,
19474     burst mode and skip cycle emulation as well as many other things.
19475     Added NEOS and Amiga mouse, paddle and light pen support.  Added
19476     new monitor commands and features, including memmap.  Made MIDI
19477     support and OSS MIDI driver.  Implemented most of the SDL UI.
19478     Rewrote xvic CPU/VIC-I core for cycle based emulation.  Implemented
19479     C64 cartridge snapshot support.  Initiated and worked on all parts
19480     of implementing x64sc.  Wrote test programs.
19481
19482   * Andreas Boose Copyright (C) 1998-2010 Gave lots of information and
19483     bug reports about the VIC-II, the 6510 and the CIAs; moreover, he
19484     wrote several test-routines that were used to improve the
19485     emulation.  He also added cartridge support and has been the main
19486     head behind the drive and datasette emulation since version 0.15.
19487     Also added several UI elements to the DOS, Win32 and *nix ports.
19488     He rewrote the C128 emulation adding Z80 mode, C64 mode and
19489     function ROM support, wrote the screenshot and the event system and
19490     started the plus4 emulator.  Restructured the serial bus emulation
19491     and added realdrive and rawdrive support.
19492
19493   * Tibor Biczo Copyright (C) 1998-2010 Improved the Win32 port and
19494     plus4 emulation.
19495
19496   * M. Kiesel Copyright (C) 2007-2010 Started implementing x64dtv.  The
19497     C64DTV memory model and early versions of the DMA and Blitter
19498     engine have been implemented by him.  Added new monitor commands
19499     and features.
19500
19501   * Andreas Dehmel Copyright (C) 1999-2007 Wrote the Acorn RISC OS
19502     port.
19503
19504   * David Hansel Copyright (C) 2003-2005 Wrote the Star NL10 printer
19505     driver, implemented IEC devices and improved the tape emulation.
19506
19507   * Markus Brenner Copyright (C) 2000-2004 Added VDC emulation to x128
19508     and added support for some more cartridges.
19509
19510   * Thomas Bretz Copyright (C) 1999-2004 Started the OS/2 port.
19511
19512   * Daniel Sladic Copyright (C) 1997-2001 Started the work on
19513     hardware-level 1541 emulation and wrote the new monitor introduced
19514     with VICE 0.15.
19515
19516   * Andr� Fachat Copyright (C) 1996-2001 Wrote the PET and CBM-II
19517     emulators, the CIA and VIA emulation, the IEEE488 interface,
19518     implemented the IEC serial bus in 'xvic' and made tons of bug
19519     fixes.
19520
19521   * Ettore Perazzoli Copyright (C) 1996-1999 Made the 6510, VIC-II,
19522     VIC-I and CRTC emulations, part of the hardware-level 1541
19523     emulation, speed optimizations, bug fixes, the event-driven
19524     cycle-exact engine, the Xt/Xaw/Xfwf-based GUI for X11, a general
19525     code reorganization, the new resource handling, most of the
19526     documentation.  He also wrote the DOS port and the initial Win32
19527     port (well, somebody had to do it).
19528
19529   * Teemu Rantanen Copyright (C) 1993-1994, 1997-1999 Implemented the
19530     SID emulation and the trap-based disk drive and serial bus
19531     implementation; added support for multiple display depths under
19532     X11.  Also wrote 'c1541'
19533
19534   * Jouko Valta Copyright (C) 1993-1996 Wrote 'petcat' and 'c1541',
19535     'T64' handling, user service and maintenance (most of the work in
19536     x64 0.3.x was made by him); retired from the project in July 96,
19537     after VICE 0.10.0.
19538
19539   * Jarkko Sonninen Copyright (C) 1993-1994 He was the founder of the
19540     project, wrote the old version of the 6502 emulation and the
19541     XDebugger, and retired from the project after x64 0.2.1.
19542
19543Internationalization Team:
19544
19545   * Mikkel Holm Olsen Copyright (C) 2009-2017 Provided the Danish user
19546     interface translations and fixed a few monitor bugs.
19547
19548     Martin Pottendorfer Copyright (C) 2000-2017 Provided the German
19549     user interface translations.
19550
19551     Manuel Antonio Rodriguez Bas Copyright (C) 2011-2017 Provided the
19552     Spanish user interface translations.
19553
19554     Paul Dub� Copyright (C) 2004-2017 Provided the French user
19555     interface translations.
19556
19557     Czirkos Zoltan Copyright (C) 2006-2017 Provided the Hungarian user
19558     interface translations.
19559
19560     Karai Csaba Copyright (C) 2006-2017 Provided the Hungarian user
19561     interface translations.
19562
19563     Andrea Musuruane Copyright (C) 2001-2017 Provided the Italian user
19564     interface translations.
19565
19566     Jesse Lee Copyright (C) 2011-2016 Provided the Korean user
19567     interface translations.
19568
19569     Marco van den Heuvel Copyright (C) 2005-2017 Provided the Dutch
19570     user interface translations.
19571
19572     Jarek Sobolewski Copyright (C) 2011-2017 Provided the Polish user
19573     interface translations.
19574
19575     Michael Litvinov Copyright (C) 2010-2017 Provided the Russian user
19576     interface translations.
19577
19578     Peter Krefting Copyright (C) 2000-2017 Provided the Swedish user
19579     interface translations.
19580
19581     Emir Akaydin Copyright (C) 2008-2017 Provided the Turkish user
19582     interface translations.
19583
19584Documentation Team:
19585
19586   * Daniel Kahlin
19587
19588     Groepaz
19589
19590     Kajtar Zsolt
19591
19592     Marco van den Heuvel
19593
19594     Olaf Seibert
19595
19596External contributors:
19597
19598   * Alexis Ballier Provided some ffmpeg fixes.
19599
19600   * Christian Bauer Wrote the very interesting "VIC article" from which
19601     we got invaluable information about the VIC-II chip: without this,
19602     the VIC-II implementation would not have been possible.
19603
19604   * Anthony J. Bentley Provided some man page fixes.
19605
19606   * Eliseo Bianchi Provided the italian Amiga translations.
19607
19608   * Enrico Bruttomesso Improved some italian translations.
19609
19610   * Frank Buss Provide some midi fixes.
19611
19612   * ck!  Provided a win32 cbm character font.
19613
19614   * iAN CooG Added win32 vsid GUI and contributed various patches.
19615
19616   * Mike Dawson Provided the GP2X port.
19617
19618   * Hans Deragon Added support for dead keys in X11.
19619
19620   * Paul David Doherty Wrote 'zip2disk', on which the Zipcode support
19621     in 'c1541' is based.
19622
19623   * Sven A. Droll Added Supergrafik support to petcat.
19624
19625   * Peter Edwards Implemented the SDL UI slider control and fixed some
19626     GP2X/Dingoo SDL UI issues.
19627
19628   * Istv�n F�bi�n Contributed a initial patch with the more correct
19629     1541 bus timing code and which gave us hints for to improving the
19630     1541 emulation.
19631
19632   * Daniel Fandrich Contributed some disk drive patches.
19633
19634   * Dirk Farin Rewrote the MITSHM code.
19635
19636   * Georg Feil Added support for toggling CB2 sound output line in the
19637     PET emulator.
19638
19639   * Peter Andrew Felvegi aka Petschy Fixed a couple of bugs in the fast
19640     serial emulation.
19641
19642   * Ricardo Ferreira Contributed the 'unlynx' and 'system' commands in
19643     'c1541' and added aRts sound support.
19644
19645   * Flooder Provided parts of the Polish user interface translations.
19646
19647   * Robert H. Forsman Jr.  Provided parts of the widget set for
19648     implementing the Xaw GUI.
19649
19650   * Ian Gledhill Added support for the catweasel.device driver.
19651
19652   * Peter Gordon Provided support for native AmigaOS4 compiling.
19653
19654   * Richard Hable Contributed the initial version of the REU emulation.
19655
19656   * Shawn Hargreaves Wrote Allegro, the graphics and audio library used
19657     in the DOS version.
19658
19659   * Ville-Matias Heikkila Rewrote the vic20 sound code.
19660
19661   * David Holz Provided a label file which gives the built-in monitor
19662     the labels for the C64.
19663
19664   * Nathan Huizinga Added support for Expert and Super Snapshot carts.
19665
19666   * Derrick Inksley Fixed loading of zip files with brackets ([]) in
19667     the filename for the windows port.  Added drive selection
19668     functionality to the window sdl port.  Some drive sound fixes.
19669     Fixed some windows drag'n'drop issues.  Fixed some monitor code
19670     issues.
19671
19672   * Craig Jackson Contributed miscellaneous patches in the old X64
19673     times.
19674
19675   * Dirk Jagdmann Wrote the Catweasel sound driver.
19676
19677   * Uffe Jakobsen Wrote the Silverrock cartridge emulation and fixed
19678     the ocean cartridge bank wrap.  Fixed some network code issues.
19679     Fixed some monitor issues.  Provided some SDL port fixes.
19680
19681   * Lasse Jyrkinen Contributed miscellaneous patches in the old X64
19682     times.
19683
19684   * Peter Karlsson Provided the swedish UI translations in the past.
19685
19686   * Greg King Added a working RTC to the emulation of the IDE64
19687     cartridge.  Provided some vdrive fixes.  Added Inkwell Systems
19688     lightpen support.  Fixed some monitor code issues.  Provided some
19689     windows port fixes.  Provided some SDL port fixes.
19690
19691   * Michael Klein Fixed some MacOSX code issues.  Contributed the ESD
19692     sound driver, basic support for the OPENCBM library and some other
19693     patches.
19694
19695   * Frank K�nig Contributed the Win32 joystick autofire feature.
19696
19697   * Bernd Kortz Provided some fixes for ZETA and the ZETA binary
19698     package.
19699
19700   * Bernhard Kuhn Made some joystick improvements for Linux.
19701
19702   * Alexander Lehmann Added complete support for all the VIC20 memory
19703     configurations for the old VICE 0.12.
19704
19705   * Ilkka "itix" Lehtoranta Provided the routines for the cybergraphics
19706     support for the Amiga ports.
19707
19708   * Magnus Lind Atari ST mouse and Atari CX-22 trackball emulation and
19709     pixel aspect fixes.  Improved the Amiga mouse emulation.  Improved
19710     the vic20 sound output.  Added windows POV hat support.  Improved
19711     sound fragment size handling.  Provided some windows fixes.
19712     Provided some gtk port fixes.  Provided some SDL port fixes.
19713
19714   * Lioncash Provided some c1541 fixes.  Fixed some 'geninfocontrib'
19715     helper tool issues.  Fixed some 'embedded' build issues.  Fixed
19716     some memory leaks.
19717
19718   * Locnet Made the initial android port of x64.
19719
19720   * Wolfgang Lorenz Wrote an excellent 6510 test suite that helped us
19721     to debug the CPU emulation.
19722
19723   * lvd Provided some monitor fixes.
19724
19725   * Marko M�kel� Wrote lots of CPU documentation.  Wrote the VIC Flash
19726     Plugin cartridge emulation in xvic.  Wrote the Ultimem cartridge
19727     emulation in xvic.
19728
19729   * mar77i Fixed some resource handling issues.
19730
19731   * Robert McIntyre Bugged people enough to get the improved g64
19732     support rolling, updated g64 support to allow variable-length
19733     tracks, and performed initial development of half-track support.
19734
19735   * Robert W. McMullen Provided parts of the widget set for
19736     implementing the Xaw GUI.
19737
19738   * Jennifer Medkief Was in charge of checking up on the GUIs for
19739     elements that are wrong, unaccessable, and missing.
19740
19741   * Dan Miner Contributed some patches to the fast disk drive
19742     emulation.
19743
19744   * mjhn Provided some *nix 'readme' fixes.
19745
19746   * Moiree Provided some command line fixes.  Improved the build
19747     system.  Fixed some vsid bugs.  Fixed some SDL GUI issues.  Fixed
19748     some documentation items.
19749
19750   * Luca Montecchiani Contributed a new Unix joystick driver.
19751
19752   * Wolfgang Moser Provided small optimization fixes to the GCR code,
19753     provided an excellent REU test suite and added REU fixes, and is
19754     always the good guy reviewing and commenting changes in the
19755     background.
19756
19757   * Roberto Muscedere Improved support for REL files.
19758
19759   * Leandro Nini Improved ReSID emulation.  And fixed some c64dtv cpu
19760     opcode issues.
19761
19762   * Tomi Ollila Donated 'findpath.c'.
19763
19764   * Per Olofsson Digitalized the C64 colors used in the (old) default
19765     palette.
19766
19767   * Lasse ��rni Contributed the Windows Multimedia sound driver
19768
19769   * Stein Pedersen Fixed windows midi driver for 64bit windows.
19770
19771   * Helfried Peyrl Supplied a patch that fixes REL file records larger
19772     256 bytes when using vdrive.
19773
19774     Christopher Phillips Fixed and improved some Mac OS X gui items.
19775
19776   * Frank Prindle Contributed some patches.
19777
19778   * Giuliano Procida Used to maintain the VICE 'deb' package for the
19779     Debian distribution, and also helped proofreading the
19780     documentation.
19781
19782   * Vesa-Matti Puro Wrote the very first 6502 CPU emulator in x64
19783     0.1.0.  That was the beginning of the story...
19784
19785   * Rami Rasanen Rewrote the VIC20 sound code.
19786
19787   * Peter Rittwage Made 1541 GCR hardware tests.
19788
19789   * David Roden Fixed various issues related to ffmpeg settings.
19790
19791   * Pablo Rold�n Contributed initial patch for VIC-II PAL-N model
19792     selection.
19793
19794   * Mathias Roslund Provided the AmigaOS4 port.
19795
19796   * Gunnar Ruthenberg Provided some VIC-II enhancements and improved
19797     the Win32 port.
19798
19799   * Johan Samuelsson Provided the Swedish Amiga translations.
19800
19801   * Oliver Schaertel Wrote the X11 full screen, parts of custom ROM set
19802     support and 1351 mouse emulation for unix.
19803
19804   * Peter Schepers Contributed a document describing the G64 image
19805     format.
19806
19807   * Michael Schwendt Helped with the SID (audio) chip emulation,
19808     bringing important suggestions and bug reports, as well as the wave
19809     tables and filter emulation from his SIDplay emulator.
19810
19811   * Heiko Selber Contributed some VIC20 I/O patches.
19812
19813   * John Selck Improved the video rendering and added the fast PAL
19814     emulation.  Implemented new color generation based on P.
19815     Timmermanns knowledge.
19816
19817   * Chris Sharp Wrote the AIX sound driver.
19818
19819   * Andr351 "JoBBo" Siegel Provided the native MorphOS icons.
19820
19821   * Harry "Piru" Sintonen Provided lots of fixes and improvements for
19822     the Amiga ports.
19823
19824   * Manfred Spraul Wrote the Win32 text lister.
19825
19826   * Markus Stehr Provided the MMC64 emulation.
19827
19828   * Michael Steil Provided some c1541 fixes.
19829
19830   * Dominique Strigl Contributed miscellaneous patches in the old X64
19831     times.
19832
19833   * Samuli Suominen Fixed XShm includes for newer xextproto versions
19834     and updated libpng check for newer versions.
19835
19836   * Steven Tieu Added initial support for 16/24 bpp X11 displays.
19837
19838   * Philip Timmermann Did a lot of research about the VIC-II colors.
19839
19840   * TMLPiper Provided fixes for the osx port.
19841
19842   * Brian Totty Provided parts of the widget set for implementing the
19843     Xaw GUI.
19844
19845   * Mustafa "GnoStiC" Tufan Made improvements to the GP2x port.
19846
19847   * Lionel Ulmer Implemented joystick support for Linux and a first try
19848     of a SID emulation for SGI machines.
19849
19850   * vonred Added multiple monitor support to the windows port.
19851
19852   * Krister Walfridsson Implemented joystick and sound support for
19853     NetBSD.
19854
19855   * webulator Provided Win32 drag & drop support
19856
19857   * Robert Willie Added some additional commands to the fsdevice
19858     emulation.
19859
19860   * Peter Weighill Gave many ideas and contributed the ROM patcher.
19861
19862   * Gerhard Wesp Contributed the 'extract' command in 'c1541'.
19863
19864   * Maciej Witkowiak Did some IDE64 and C1541 fixes.
19865
19866   * David Wood Provided some monitor fixes.
19867
19868   * Count Zero Fixed some monitor issues.
19869
19870   * Bjoern Odendahl Created the new VICE logo and volunteered to create
19871     new icons.
19872
19873(We hope we have not forgotten anybody; if you think we have, please
19874tell us.)
19875
19876The people around the world providing results from running our test
19877programs on various machines deserve a special mention:
19878
19879   * hedning (Drean C64 PAL-N, various C64 PAL boxes)
19880   * Jason Compton (Various C64 and C128 NTSC boxes)
19881   * The Woz (Drean C64 PAL-N)
19882   * Thierry (Drean C64 PAL-N)
19883   * MOS6569 (C64C PAL)
19884   * Mike (VIC-20 PAL)
19885   * Wilson (VIC-20 NTSC)
19886   * Vicassembly (VIC-20 NTSC)
19887   * David "jbevren" Wood (C64 NTSC-OLD)
19888
19889Thanks also to everyone else for sending suggestions, ideas, bug
19890reports, questions and requests.  In particular, a warm thanks goes to
19891the following people:
19892
19893   * Lutz Sammer
19894   * Ralph Mason
19895   * George Caswell
19896   * Jasper Phillips
19897   * Luca Forcucci
19898   * Asger Alstrup
19899   * Bernhard Schwall
19900   * Salvatore Valente
19901   * Arthur Hagen
19902   * Douglas Carmichael
19903   * Ferenc Veres
19904   * Frank Reichel
19905   * Ullrich von Bassewitz
19906   * Holger Busse
19907   * David "jbevren" Wood
19908   * Gary Glenn
19909
19910Last but not least, a very special thank to Andreas Arens, Lutz Sammer,
19911Edgar Tornig, Christian Bauer, Wolfgang Lorenz, Miha Peternel, Per H�kan
19912Sundell, David Horrocks, Benjamin Rosseaux and William McCabe for
19913writing cool emulators to compete with.  :-)
19914
19915
19916File: vice.info,  Node: Copyright,  Next: Contacts,  Prev: Acknowledgments,  Up: Top
19917
1991818 Copyright
19919************
19920
19921   * Copyright (C) 1999-2016 Andreas Matthies
19922   * Copyright (C) 1999-2018 Martin Pottendorfer
19923   * Copyright (C) 2005-2018 Marco van den Heuvel
19924   * Copyright (C) 2007-2018 Fabrizio Gennari
19925   * Copyright (C) 2009-2018 Groepaz
19926   * Copyright (C) 2010-2018 Olaf Seibert
19927   * Copyright (C) 2011-2018 Marcus Sutton
19928   * Copyright (C) 2011-2018 Kajtar Zsolt
19929   * Copyright (C) 2016-2018 AreaScout
19930   * Copyright (C) 2016-2018 Bas Wassink
19931
19932   * Copyright (C) 2011-2016 Stefan Haubenthal
19933   * Copyright (C) 2015-2016 BSzili
19934   * Copyright (C) 2007-2015 Daniel Kahlin
19935   * Copyright (C) 2009-2015 Errol Smith
19936   * Copyright (C) 2012-2014 Benjamin 'BeRo' Rosseaux
19937   * Copyright (C) 2011-2014 Ulrich Schulz
19938   * Copyright (C) 2011-2014 Thomas Giesel
19939   * Copyright (C) 2009-2014 Ingo Korb
19940   * Copyright (C) 2006-2014 Christian Vogelgsang
19941   * Copyright (C) 1998-2014 Dag Lem
19942   * Copyright (C) 2000-2011 Spiro Trikaliotis
19943   * Copyright (C) 1998-2010 Tibor Biczo
19944   * Copyright (C) 1998-2010 Andreas Boose
19945   * Copyright (C) 2007-2010 M. Kiesel
19946   * Copyright (C) 2007-2011 Hannu Nuotio
19947   * Copyright (C) 1999-2007 Andreas Dehmel
19948   * Copyright (C) 2003-2005 David Hansel
19949   * Copyright (C) 2000-2004 Markus Brenner
19950
19951   * Copyright (C) 1999-2004 Thomas Bretz
19952   * Copyright (C) 1997-2001 Daniel Sladic
19953   * Copyright (C) 1996-1999 Ettore Perazzoli
19954   * Copyright (C) 1996-1999 Andr� Fachat
19955   * Copyright (C) 1993-1994, 1997-1999 Teemu Rantanen
19956   * Copyright (C) 1993-1996 Jouko Valta
19957
19958This program is free software; you can redistribute it and/or modify it
19959under the terms of the GNU General Public License as published by the
19960Free Software Foundation; either version 2 of the License, or (at your
19961option) any later version.
19962
19963This program is distributed in the hope that it will be useful, but
19964WITHOUT ANY WARRANTY; without even the implied warranty of
19965MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
19966Public License for more details.
19967
19968You should have received a copy of the GNU General Public License along
19969with this program; if not, write to the Free Software Foundation, Inc.,
1997059 Temple Place, Suite 330, Boston, MA 02111-1307 USA
19971
19972
19973File: vice.info,  Node: Contacts,  Next: Concept Index,  Prev: Copyright,  Up: Top
19974
1997519 Contact information
19976**********************
19977
19978* Menu:
19979
19980* Home page::                   The official VICE WWW page.
19981* Sending feedback::            How to report impressions and
19982                                bugs to the authors.
19983* Contributing::                How to help developing VICE.
19984* Newsgroups::                  VICE-related Usenet groups.
19985* FAQs you should read::        VICE-related Frequently Asked Questions.
19986
19987
19988File: vice.info,  Node: Home page,  Next: Sending feedback,  Prev: Contacts,  Up: Contacts
19989
1999019.1 VICE home page
19991===================
19992
19993You can find the latest news about VICE at the official VICE home page:
19994
19995     <http://vice-emu.sourceforge.net>
19996
19997VICE has moved its source repository to public services provided by
19998SourceForge.  You can find it at
19999     <http://sf.net/projects/vice-emu>.
20000
20001We would like to thank the SourceForge staff for that help.
20002
20003If you are going to report a bug, please check those pages _first_; it
20004is possible that the problem you encountered has already been fixed with
20005a newer version.
20006
20007
20008File: vice.info,  Node: Sending feedback,  Next: Contributing,  Prev: Home page,  Up: Contacts
20009
2001019.2 How to send feedback
20011=========================
20012
20013Before contacting us, have a look at this manual and see if your
20014question is answered there.  Keep in mind that we work on VICE in our
20015spare-time, so the more time we don't need to answer the same questions
20016over and over again, the more time we have to improve the emulation
20017itself.  On the other hand, that does not mean that you should not
20018contact us, especially if you find bugs or have suggestions which might
20019improve the emulation.
20020
20021Bug reports, suggestions, support requests should be directed to the
20022SourceForge trackers at
20023
20024   * <http://sourceforge.net/tracker/?group_id=223021>.
20025
20026This way, you, the users, and we, the developers, can track what has
20027been reported and what has been already fixed.  Ideally, also sent the
20028report to the mailing address of the Vice team at
20029
20030   * VICE Mailing List (<vice-emu-mail@lists.sourceforge.net>) for all
20031     general questions, bug reports, suggestions.
20032
20033You can also contact (some of) us on IRC, at #vice-dev on freenode.
20034
20035It's always nice to receive feedback and/or bugreports about VICE, but
20036please read these few notes before sending mail to anybody in the team.
20037
20038   * Please put the word 'VICE' _in all capitals_ in your subject line
20039     (e.g., 'VICE fails to run game XXX').  This helps mail splitting
20040     and reduces chances that your message is unintentionally deleted,
20041     forgotten or lost.
20042
20043   * Please don't send any HTML mail (we really hate that!).  If you use
20044     M$ Outlook or Netscape Communicator, make sure you turn off the
20045     "rich text" (HTML) feature.
20046
20047   * Please don't send _any_ binaries without asking first.
20048
20049   * Please read the following documents carefully before reporting a
20050     bug or a problem you cannot solve:
20051
20052        * the VICE documentation (you are reading it!);
20053        * the VICE FAQ (it is available on the Internet, and reachable
20054          from the VICE home page: <http://vice-emu.sourceforge.net>);
20055        * the 'comp.emulators.cbm' and 'comp.sys.cbm' FAQs (*note FAQs
20056          you should read::).
20057
20058   * When you report a bug, please try to be as accurate as possible and
20059     describe how it can be reproduced to the very detail.  You should
20060     also tell us what machine you are running on, what operating system
20061     you are using as well as the version of it.
20062
20063   * Please don't ask us how to transfer original C64 disk or tapes to
20064     your PC; this has been asked a gazillion times through email.  To
20065     transfer disks, you can use the Star Commander
20066     (<http://sta.c64.org/sc.html>) on DOS, and OpenCBM
20067     (<http://www.trikaliotis.net/opencbm>) on Windows and Linux.  And
20068     no, you cannot read C64 disks with your old 5"1/4 PC drive.
20069
20070   * Please don't ask us where to find games for the emulator on the
20071     Internet.
20072
20073   * Please don't ask us when the next version will be out, because we
20074     really don't know.
20075
20076   * Please write in English.
20077
20078In any case, we would be _really_ glad to receive your comments about
20079VICE. We cannot always answer all the email, but we surely read all of
20080it.
20081
20082Thanks!
20083
20084
20085File: vice.info,  Node: Contributing,  Next: Newsgroups,  Prev: Sending feedback,  Up: Contacts
20086
2008719.3 How to contribute
20088======================
20089
20090If you want to make a major contribution, please _ask_ first.  It has
20091already happened a couple of times that somebody started working at
20092something that had already been done but not released to the public yet,
20093and we really do _not_ want anybody to waste time.
20094
20095If you are going to make a patch, please make sure the patch is relative
20096to the very latest version, and provide us with the following:
20097
20098   * Make sure you are giving us a diff against the latest Subversion
20099     trunk version of VICE. For instructions on accessing the Subversion
20100     repository, first read
20101     <http://sourceforge.net/svn/?group_id=223021> and get it with the
20102     command:
20103          'svn co https://vice-emu.svn.sourceforge.net/svnroot/vice-emu/trunk vice-src'
20104   * send a unified diff file against the trunk version of VICE (see
20105     above bullet point) by using the command: 'svn diff' inside of the
20106     SVN workspace you checked out before.
20107
20108   * If you cannot use SVN for one or the other reason, send a unified
20109     diff file containing all the changes you have made 'diff -u';
20110     please don't use plain 'diff'), as it adds much work for us to get
20111     it working;
20112   * GNU-style 'ChangeLog' entries with a description of the changes you
20113     have made (look at the 'ChangeLog's provided with the original VICE
20114     sources for an example).
20115
20116This is very important, and makes adding patches much smoother and
20117safer.
20118
20119People willing to port VICE to other platforms are always welcome.  But
20120notice from experience it will take at least a full year of continuous
20121work to write a well working and stable port.
20122
20123
20124File: vice.info,  Node: Newsgroups,  Next: FAQs you should read,  Prev: Contributing,  Up: Contacts
20125
2012619.4 Interesting newsgroups
20127===========================
20128
20129There are some Usenet newsgroups you might be interested in:
20130
20131   * 'comp.emulators.cbm', discussing about emulators of Commodore 8-bit
20132     machines (definitely not Amiga emulators).
20133
20134   * 'comp.sys.cbm', discussing various topics regarding real Commodore
20135     8-bit machines.  This newsgroup is mainly for people who actually
20136     use original Commodore equipment (so please don't talk about
20137     emulation here).
20138
20139   * 'comp.emulators.misc', discussing emulators in general.
20140
20141
20142File: vice.info,  Node: FAQs you should read,  Prev: Newsgroups,  Up: Contacts
20143
2014419.5 FAQs you should read
20145=========================
20146
20147We recommend reading the 'comp.emulators.cbm' and 'comp.sys.cbm' FAQs,
20148which are posted regularly on the corresponding newsgroups and are also
20149available via FTP from <ftp://rtfm.mit.edu>.
20150
20151
20152File: vice.info,  Node: Concept Index,  Next: Resource Index,  Prev: Contacts,  Up: Top
20153
20154Concept Index
20155*************
20156
20157�[index�]
20158* Menu:
20159
20160* ACIA (Swiftlink, Turbo232):            C64 I/O extension settings.
20161                                                               (line 15)
20162* Audio buffer size:                     Sound settings.       (line 29)
20163* Converting X64 files into D64:         Supported file formats.
20164                                                               (line 44)
20165* DigiMAX:                               C64 I/O extension settings.
20166                                                               (line 17)
20167* Double-scan mode.:                     Video settings.       (line 24)
20168* Double-size mode:                      Video settings.       (line 19)
20169* DS12C887 RTC:                          C64 I/O extension settings.
20170                                                               (line 19)
20171* DWW:                                   PET DWW high resolution graphics.
20172                                                               (line  6)
20173* Ethernet (The Final Ethernet, RR-Net): C64 I/O extension settings.
20174                                                               (line 21)
20175* GEO-RAM:                               C64 I/O extension settings.
20176                                                               (line 23)
20177* HP-UX and Solaris audio problems:      Sound problems.       (line 33)
20178* HRE:                                   PET HRE (HiRes Emulator) high resolution graphics.
20179                                                               (line  9)
20180* HRG:                                   PET HRE (HiRes Emulator) high resolution graphics.
20181                                                               (line 21)
20182* Limiting emulation speed:              Performance settings. (line  6)
20183* MIDI (Passport, Datel, Maplin, Namesoft, Sequential): C64 I/O extension settings.
20184                                                               (line 25)
20185* OSS/Linux problems:                    Sound problems.       (line 38)
20186* Refresh rate:                          Performance settings. (line 13)
20187* reSID resampling passband:             SID settings.         (line 51)
20188* reSID samping method:                  SID settings.         (line 32)
20189* REU:                                   C64 I/O extension settings.
20190                                                               (line 27)
20191* Sample rate:                           Sound settings.       (line 24)
20192* Sampler Device:                        Sound settings.       (line 40)
20193* Sampler File:                          Sound settings.       (line 48)
20194* Sampler Gain:                          Sound settings.       (line 44)
20195* Second SID:                            SID settings.         (line  9)
20196* Second SID base address:               SID settings.         (line 15)
20197* SFX Sound Expander:                    C64 I/O extension settings.
20198                                                               (line 32)
20199* SFX Sound Sampler:                     C64 I/O extension settings.
20200                                                               (line 34)
20201* SID filters:                           SID settings.         (line 20)
20202* SID models:                            SID settings.         (line 25)
20203* Sound buffer size:                     Sound settings.       (line 29)
20204* Sound speed adjustment:                Sound settings.       (line 10)
20205* Sound suspend time:                    Sound settings.       (line 34)
20206* Sound syncronization:                  Sound settings.       (line 10)
20207* Sprite collision detection:            VIC-II settings.      (line  9)
20208* Toggling reSID emulation:              SID settings.         (line 29)
20209* Turning sound playback on/off:         Sound settings.       (line  8)
20210* VIC-II color sets:                     VIC-II settings.      (line 16)
20211* Video cache:                           Video settings.       (line 10)
20212* Warp speed mode:                       Performance settings. (line 26)
20213
20214
20215File: vice.info,  Node: Resource Index,  Next: Command-line Index,  Prev: Concept Index,  Up: Top
20216
20217Index of Resources
20218******************
20219
20220�[index�]
20221* Menu:
20222
20223* Acia1Base:                             RS232 resources.    (line   23)
20224* Acia1Dev:                              RS232 resources.    (line   18)
20225* Acia1Enable:                           RS232 resources.    (line   12)
20226* Acia1Enable <1>:                       PLUS4-specific.     (line  292)
20227* Acia1Irq:                              RS232 resources.    (line   35)
20228* Acia1Mode:                             RS232 resources.    (line   29)
20229* AspectRatio:                           SDL-specific features.
20230                                                             (line  220)
20231* AspectRatio <1>:                       GTK3 specific features.
20232                                                             (line   12)
20233* AttachDevice10Readonly:                Misc resources.     (line   36)
20234* AttachDevice11Readonly:                Misc resources.     (line   36)
20235* AttachDevice8Readonly:                 Misc resources.     (line   36)
20236* AttachDevice9Readonly:                 Misc resources.     (line   36)
20237* AutoPlaybackFrames:                    Monitor options.    (line  112)
20238* AutostartBasicLoad:                    Resources and command-line.
20239                                                             (line   39)
20240* AutostartDelay:                        Resources and command-line.
20241                                                             (line   64)
20242* AutostartDelayRandom:                  Resources and command-line.
20243                                                             (line   60)
20244* AutostartHandleTrueDriveEmulation:     Resources and command-line.
20245                                                             (line   47)
20246* AutostartPrgDiskImage:                 Resources and command-line.
20247                                                             (line   34)
20248* AutostartPrgMode:                      Resources and command-line.
20249                                                             (line   55)
20250* AutostartRunWithColon:                 Resources and command-line.
20251                                                             (line   43)
20252* AutostartWarp:                         Resources and command-line.
20253                                                             (line   51)
20254* Basic1:                                PET model.          (line   38)
20255* Basic1Chars:                           PET model.          (line   42)
20256* Basic64Name:                           C128-specific.      (line  220)
20257* BasicHiName:                           C128-specific.      (line  213)
20258* BasicLoName:                           C128-specific.      (line  213)
20259* BasicName:                             C64 system ROM resources.
20260                                                             (line    6)
20261* BasicName <1>:                         Monitor DTV features.
20262                                                             (line   30)
20263* BasicName <2>:                         VIC20 system ROM resources.
20264                                                             (line    9)
20265* BasicName <3>:                         PLUS4-specific.     (line  227)
20266* BasicName <4>:                         PET model.          (line   62)
20267* BasicName <5>:                         CBM-II model.       (line   78)
20268* BasicName <6>:                         VSID-specific.      (line   29)
20269* BBRTCSave:                             Control port resources.
20270                                                             (line   45)
20271* BoardType:                             C64 system ROM options.
20272                                                             (line   33)
20273* BurstMod:                              C64 system ROM options.
20274                                                             (line   29)
20275* BurstMod <1>:                          SCPU64-specific.    (line   24)
20276* C128ColumnKey:                         C128-specific.      (line  344)
20277* C128FullBanks:                         C128-specific.      (line  351)
20278* c1hiName:                              PLUS4-specific.     (line  239)
20279* c1loName:                              PLUS4-specific.     (line  236)
20280* c2hiName:                              PLUS4-specific.     (line  245)
20281* c2loName:                              PLUS4-specific.     (line  242)
20282* c64dtvromfilename:                     Monitor DTV features.
20283                                                             (line   33)
20284* c64dtvromrw:                           Monitor DTV features.
20285                                                             (line   36)
20286* C64_256Kbase:                          C64 system ROM options.
20287                                                             (line   58)
20288* C64_256Kfilename:                      C64 system ROM options.
20289                                                             (line   55)
20290* Cart1Name:                             CBM-II model.       (line   46)
20291* Cart2Name:                             CBM-II model.       (line   50)
20292* Cart4Name:                             CBM-II model.       (line   54)
20293* Cart6Name:                             CBM-II model.       (line   58)
20294* CartridgeFile:                         C64 cartridges.     (line  338)
20295* CartridgeFile <1>:                     VIC20 cartridges.   (line   74)
20296* CartridgeReset:                        C64 cartridges.     (line  262)
20297* CartridgeReset <1>:                    VIC20 cartridges.   (line   44)
20298* CartridgeReset <2>:                    PLUS4-specific.     (line  148)
20299* CartridgeReset <3>:                    CBM-II model.       (line   42)
20300* CartridgeType:                         C64 cartridges.     (line  266)
20301* CartridgeType <1>:                     VIC20 cartridges.   (line   48)
20302* ChargenCHName:                         C128-specific.      (line  180)
20303* ChargenDEName:                         C128-specific.      (line  168)
20304* ChargenFRName:                         C128-specific.      (line  172)
20305* ChargenIntName:                        C128-specific.      (line  164)
20306* ChargenName:                           C64 system ROM resources.
20307                                                             (line    9)
20308* ChargenName <1>:                       Monitor DTV features.
20309                                                             (line   23)
20310* ChargenName <2>:                       SCPU64-specific.    (line    9)
20311* ChargenName <3>:                       VIC20 system ROM resources.
20312                                                             (line   12)
20313* ChargenName <4>:                       PET model.          (line   55)
20314* ChargenName <5>:                       CBM-II model.       (line   70)
20315* ChargenName <6>:                       VSID-specific.      (line   22)
20316* ChargenNOName:                         C128-specific.      (line  184)
20317* ChargenSEName:                         C128-specific.      (line  176)
20318* CIA1Model:                             C64 cartridges.     (line 1140)
20319* CIA2Model:                             C64 cartridges.     (line 1144)
20320* ConfirmOnExit:                         SDL-specific features.
20321                                                             (line   60)
20322* ConfirmOnExit <1>:                     GTK3 specific features.
20323                                                             (line   32)
20324* CPClockF83:                            RS232 usage.        (line   45)
20325* CPClockF83Save:                        RS232 usage.        (line   49)
20326* CPMCart:                               C64 system ROM options.
20327                                                             (line   66)
20328* CPUswitch:                             PET settings.       (line   13)
20329* Crtc:                                  CRTC Settings.      (line    9)
20330* CrtcAudioLeak:                         CRTC Settings.      (line   65)
20331* CrtcColorBrightness:                   CRTC Settings.      (line   40)
20332* CrtcColorContrast:                     CRTC Settings.      (line   36)
20333* CrtcColorGamma:                        CRTC Settings.      (line   44)
20334* CrtcColorSaturation:                   CRTC Settings.      (line   32)
20335* CrtcColorTint:                         CRTC Settings.      (line   47)
20336* CrtcDoubleScan:                        CRTC Settings.      (line   19)
20337* CrtcDoubleSize:                        CRTC Settings.      (line   16)
20338* CrtcExternalPalette:                   CRTC Settings.      (line   29)
20339* CrtcFilter:                            CRTC Settings.      (line   69)
20340* CrtcFullscreen:                        SDL-specific features.
20341                                                             (line  134)
20342* CrtcFullscreen <1>:                    GTK3 specific features.
20343                                                             (line   68)
20344* CrtcFullscreenDevice:                  SDL-specific features.
20345                                                             (line  131)
20346* CrtcFullscreenDevice <1>:              GTK3 specific features.
20347                                                             (line   65)
20348* CrtcFullscreenStatusbar:               SDL-specific features.
20349                                                             (line  138)
20350* CrtcFullscreenStatusbar <1>:           GTK3 specific features.
20351                                                             (line   72)
20352* CrtcHwScale:                           SDL-specific features.
20353                                                             (line  127)
20354* CrtcHwScale <1>:                       GTK3 specific features.
20355                                                             (line   61)
20356* CrtcPALBlur:                           CRTC Settings.      (line   54)
20357* CrtcPaletteFile:                       CRTC Settings.      (line   25)
20358* CrtcPALOddLineOffset:                  CRTC Settings.      (line   61)
20359* CrtcPALOddLinePhase:                   CRTC Settings.      (line   58)
20360* CrtcPALScanLineShade:                  CRTC Settings.      (line   50)
20361* CrtcSDLFullscreenMode:                 SDL-specific features.
20362                                                             (line  124)
20363* CrtcStretchVertical:                   CRTC Settings.      (line   22)
20364* CrtcVideoCache:                        CRTC Settings.      (line   13)
20365* Datasette:                             Sound options.      (line   75)
20366* DatasetteResetWithCPU:                 Sound options.      (line   78)
20367* DatasetteSpeedTuning:                  Sound options.      (line   85)
20368* DatasetteTapeWobble:                   Sound options.      (line   89)
20369* DatasetteZeroGapDelay:                 Sound options.      (line   82)
20370* DebugCartEnable:                       Monitor options.    (line  102)
20371* DiagPin:                               PET model.          (line   51)
20372* DIGIBLASTER:                           PLUS4-specific.     (line  152)
20373* DIGIMAX:                               C64 I/O extension resources.
20374                                                             (line    6)
20375* DIGIMAX <1>:                           VIC20 cartridges.   (line  176)
20376* DIGIMAXbase:                           C64 I/O extension resources.
20377                                                             (line   10)
20378* DIGIMAXbase <1>:                       VIC20 cartridges.   (line  180)
20379* Directory:                             Misc resources.     (line   11)
20380* DisplayDepth:                          GTK3 specific features.
20381                                                             (line   35)
20382* DoCoreDump:                            Misc resources.     (line   17)
20383* DoodleCRTCTextColor:                   C500 data module.   (line   42)
20384* DoodleMultiColorHandling:              C500 data module.   (line   33)
20385* DoodleOversizeHandling:                C500 data module.   (line   22)
20386* DoodleTEDLumHandling:                  C500 data module.   (line   38)
20387* DoodleUndersizeHandling:               C500 data module.   (line   29)
20388* DosName1001:                           Drive resources.    (line  154)
20389* DosName1540:                           Drive resources.    (line  135)
20390* DosName1541:                           Drive resources.    (line  135)
20391* DosName1541ii:                         Drive resources.    (line  135)
20392* DosName1551:                           Drive resources.    (line  146)
20393* DosName1570:                           Drive resources.    (line  135)
20394* DosName1571:                           Drive resources.    (line  135)
20395* DosName1571cr:                         Drive resources.    (line  150)
20396* DosName1581:                           Drive resources.    (line  135)
20397* DosName2000:                           Drive resources.    (line  135)
20398* DosName2031:                           Drive resources.    (line  154)
20399* DosName2040:                           Drive resources.    (line  154)
20400* DosName3040:                           Drive resources.    (line  154)
20401* DosName4000:                           Drive resources.    (line  135)
20402* DosName4040:                           Drive resources.    (line  154)
20403* DQBB:                                  C64 cartridges.     (line  342)
20404* DQBBfilename:                          C64 cartridges.     (line  346)
20405* DQBBImageWrite:                        C64 cartridges.     (line  349)
20406* Drive0CPU_TRACE:                       Monitor options.    (line  116)
20407* Drive10ExtendImagePolicy:              Drive resources.    (line  107)
20408* Drive10IdleMethod:                     Drive resources.    (line  114)
20409* Drive10ParallelCable:                  Drive resources.    (line   54)
20410* Drive10ProfDOS:                        Drive resources.    (line   63)
20411* Drive10RAM2000:                        Drive resources.    (line   84)
20412* Drive10RAM4000:                        Drive resources.    (line   84)
20413* Drive10RAM6000:                        Drive resources.    (line   84)
20414* Drive10RAM8000:                        Drive resources.    (line   84)
20415* Drive10RAMA000:                        Drive resources.    (line   84)
20416* Drive10RPM:                            Drive resources.    (line  121)
20417* Drive10RTCSave:                        Drive resources.    (line   46)
20418* Drive10StarDos:                        Drive resources.    (line   77)
20419* Drive10SuperCard:                      Drive resources.    (line   70)
20420* Drive10Type:                           Drive resources.    (line   18)
20421* Drive10Wobble:                         Drive resources.    (line  128)
20422* Drive11ExtendImagePolicy:              Drive resources.    (line  107)
20423* Drive11IdleMethod:                     Drive resources.    (line  114)
20424* Drive11ParallelCable:                  Drive resources.    (line   54)
20425* Drive11ProfDOS:                        Drive resources.    (line   63)
20426* Drive11RAM2000:                        Drive resources.    (line   84)
20427* Drive11RAM4000:                        Drive resources.    (line   84)
20428* Drive11RAM6000:                        Drive resources.    (line   84)
20429* Drive11RAM8000:                        Drive resources.    (line   84)
20430* Drive11RAMA000:                        Drive resources.    (line   84)
20431* Drive11RPM:                            Drive resources.    (line  121)
20432* Drive11RTCSave:                        Drive resources.    (line   50)
20433* Drive11StarDos:                        Drive resources.    (line   77)
20434* Drive11SuperCard:                      Drive resources.    (line   70)
20435* Drive11Type:                           Drive resources.    (line   18)
20436* Drive11Wobble:                         Drive resources.    (line  128)
20437* Drive1CPU_TRACE:                       Monitor options.    (line  118)
20438* Drive2CPU_TRACE:                       Monitor options.    (line  120)
20439* Drive3CPU_TRACE:                       Monitor options.    (line  122)
20440* Drive8ExtendImagePolicy:               Drive resources.    (line  107)
20441* Drive8IdleMethod:                      Drive resources.    (line  114)
20442* Drive8ParallelCable:                   Drive resources.    (line   54)
20443* Drive8ProfDOS:                         Drive resources.    (line   63)
20444* Drive8RAM2000:                         Drive resources.    (line   84)
20445* Drive8RAM4000:                         Drive resources.    (line   84)
20446* Drive8RAM6000:                         Drive resources.    (line   84)
20447* Drive8RAM8000:                         Drive resources.    (line   84)
20448* Drive8RAMA000:                         Drive resources.    (line   84)
20449* Drive8RPM:                             Drive resources.    (line  121)
20450* Drive8RTCSave:                         Drive resources.    (line   38)
20451* Drive8StarDos:                         Drive resources.    (line   77)
20452* Drive8SuperCard:                       Drive resources.    (line   70)
20453* Drive8Type:                            Drive resources.    (line   18)
20454* Drive8Wobble:                          Drive resources.    (line  128)
20455* Drive9ExtendImagePolicy:               Drive resources.    (line  107)
20456* Drive9IdleMethod:                      Drive resources.    (line  114)
20457* Drive9ParallelCable:                   Drive resources.    (line   54)
20458* Drive9ProfDOS:                         Drive resources.    (line   63)
20459* Drive9RAM2000:                         Drive resources.    (line   84)
20460* Drive9RAM4000:                         Drive resources.    (line   84)
20461* Drive9RAM6000:                         Drive resources.    (line   84)
20462* Drive9RAM8000:                         Drive resources.    (line   84)
20463* Drive9RAMA000:                         Drive resources.    (line   84)
20464* Drive9RPM:                             Drive resources.    (line  121)
20465* Drive9RTCSave:                         Drive resources.    (line   42)
20466* Drive9StarDos:                         Drive resources.    (line   77)
20467* Drive9SuperCard:                       Drive resources.    (line   70)
20468* Drive9Type:                            Drive resources.    (line   18)
20469* Drive9Wobble:                          Drive resources.    (line  128)
20470* DriveProfDOS1571Name:                  Drive resources.    (line  162)
20471* DriveSoundEmulation:                   Drive resources.    (line   10)
20472* DriveSoundEmulationVolume:             Drive resources.    (line   14)
20473* DriveStarDosName:                      Drive resources.    (line  170)
20474* DriveSuperCardName:                    Drive resources.    (line  166)
20475* DriveTrueEmulation:                    Drive resources.    (line    6)
20476* DS12C887RTC:                           C64 I/O extension resources.
20477                                                             (line   15)
20478* DS12C887RTC <1>:                       VIC20 cartridges.   (line  185)
20479* DS12C887RTCbase:                       C64 I/O extension resources.
20480                                                             (line   19)
20481* DS12C887RTCbase <1>:                   VIC20 cartridges.   (line  189)
20482* DS12C887RTCRunMode:                    C64 I/O extension resources.
20483                                                             (line   24)
20484* DS12C887RTCRunMode <1>:                VIC20 cartridges.   (line  192)
20485* DS12C887RTCSave:                       C64 I/O extension resources.
20486                                                             (line   28)
20487* DS12C887RTCSave <1>:                   VIC20 cartridges.   (line  196)
20488* DTLBasicDongle:                        RS232 usage.        (line   56)
20489* DtvBlitterLog:                         Monitor DTV features.
20490                                                             (line   51)
20491* DtvDMALog:                             Monitor DTV features.
20492                                                             (line   52)
20493* DtvFlashLog:                           Monitor DTV features.
20494                                                             (line   54)
20495* DtvRevision:                           Monitor DTV features.
20496                                                             (line   20)
20497* EasyFlashJumper:                       C64 cartridges.     (line  354)
20498* EasyFlashOptimizeCRT:                  C64 cartridges.     (line  362)
20499* EasyFlashWriteCRT:                     C64 cartridges.     (line  357)
20500* EditorName:                            PET model.          (line   65)
20501* EoiBlank:                              PET model.          (line   47)
20502* ETHERNETCARTBase:                      C64 I/O extension resources.
20503                                                             (line   43)
20504* ETHERNETCARTMode:                      C64 I/O extension resources.
20505                                                             (line   40)
20506* ETHERNETCART_ACTIVE:                   C64 I/O extension resources.
20507                                                             (line   32)
20508* ETHERNET_DISABLED:                     C64 I/O extension resources.
20509                                                             (line   37)
20510* ETHERNET_INTERFACE:                    C64 I/O extension resources.
20511                                                             (line   34)
20512* EventEndSnapshot:                      C500 data module.   (line  253)
20513* EventImageInclude:                     C500 data module.   (line  262)
20514* EventSnapshotDir:                      C500 data module.   (line  245)
20515* EventStartMode:                        C500 data module.   (line  257)
20516* EventStartSnapshot:                    C500 data module.   (line  249)
20517* ExitScreenshotName:                    Misc resources.     (line   24)
20518* ExitScreenshotName1:                   Misc resources.     (line   28)
20519* ExpertCartridgeEnabled:                C64 cartridges.     (line  366)
20520* ExpertCartridgeMode:                   C64 cartridges.     (line  378)
20521* Expertfilename:                        C64 cartridges.     (line  370)
20522* ExpertImageWrite:                      C64 cartridges.     (line  373)
20523* ExternalFunctionName:                  C128-specific.      (line  239)
20524* ExternalFunctionROM:                   C128-specific.      (line  235)
20525* ExternalFunctionROMRTCSave:            C128-specific.      (line  243)
20526* FFMPEGAudioBitrate:                    C500 data module.   (line   68)
20527* FFMPEGAudioCodec:                      C500 data module.   (line   72)
20528* FFMPEGFormat:                          C500 data module.   (line   67)
20529* FFMPEGVideoBitrate:                    C500 data module.   (line   70)
20530* FFMPEGVideoCodec:                      C500 data module.   (line   74)
20531* FFMPEGVideoHalveFramerate:             C500 data module.   (line   76)
20532* FileSystemDevice10:                    File system device resources.
20533                                                             (line   13)
20534* FileSystemDevice11:                    File system device resources.
20535                                                             (line   13)
20536* FileSystemDevice8:                     File system device resources.
20537                                                             (line   13)
20538* FileSystemDevice9:                     File system device resources.
20539                                                             (line   13)
20540* FinalExpansionWriteBack:               VIC20 cartridges.   (line   91)
20541* FlashTrueFS:                           Monitor DTV features.
20542                                                             (line   42)
20543* FliplistName:                          Misc resources.     (line   32)
20544* FOURCC:                                GTK3 specific features.
20545                                                             (line   54)
20546* FSDevice10ConvertP00:                  File system device resources.
20547                                                             (line   21)
20548* FSDevice10Dir:                         File system device resources.
20549                                                             (line   44)
20550* FSDevice10HideCBMFiles:                File system device resources.
20551                                                             (line   37)
20552* FSDevice10SaveP00:                     File system device resources.
20553                                                             (line   29)
20554* FSDevice11ConvertP00:                  File system device resources.
20555                                                             (line   21)
20556* FSDevice11Dir:                         File system device resources.
20557                                                             (line   44)
20558* FSDevice11HideCBMFiles:                File system device resources.
20559                                                             (line   37)
20560* FSDevice11SaveP00:                     File system device resources.
20561                                                             (line   29)
20562* FSDevice8ConvertP00:                   File system device resources.
20563                                                             (line   21)
20564* FSDevice8Dir:                          File system device resources.
20565                                                             (line   44)
20566* FSDevice8HideCBMFiles:                 File system device resources.
20567                                                             (line   37)
20568* FSDevice8SaveP00:                      File system device resources.
20569                                                             (line   29)
20570* FSDevice9ConvertP00:                   File system device resources.
20571                                                             (line   21)
20572* FSDevice9Dir:                          File system device resources.
20573                                                             (line   44)
20574* FSDevice9HideCBMFiles:                 File system device resources.
20575                                                             (line   37)
20576* FSDevice9SaveP00:                      File system device resources.
20577                                                             (line   29)
20578* FSFlashDir:                            Monitor DTV features.
20579                                                             (line   39)
20580* FunctionHighName:                      PLUS4-specific.     (line  233)
20581* FunctionLowName:                       PLUS4-specific.     (line  230)
20582* GenericCartridgeFile2000:              VIC20 cartridges.   (line   84)
20583* GenericCartridgeFile4000:              VIC20 cartridges.   (line   84)
20584* GenericCartridgeFile6000:              VIC20 cartridges.   (line   84)
20585* GenericCartridgeFileA000:              VIC20 cartridges.   (line   84)
20586* GenericCartridgeFileB000:              VIC20 cartridges.   (line   84)
20587* GEORAM:                                C64 I/O extension resources.
20588                                                             (line   48)
20589* GEORAM <1>:                            VIC20 cartridges.   (line  147)
20590* GEORAMfilename:                        C64 I/O extension resources.
20591                                                             (line   52)
20592* GEORAMfilename <1>:                    VIC20 cartridges.   (line  144)
20593* GEORAMImageWrite:                      C64 I/O extension resources.
20594                                                             (line   56)
20595* GEORAMImageWrite <1>:                  VIC20 cartridges.   (line  155)
20596* GEORAMIOSwap:                          VIC20 cartridges.   (line  160)
20597* GEORAMsize:                            C64 I/O extension resources.
20598                                                             (line   61)
20599* GEORAMsize <1>:                        VIC20 cartridges.   (line  151)
20600* GlueLogic:                             C64 system ROM options.
20601                                                             (line   25)
20602* GlueLogic <1>:                         SCPU64-specific.    (line   37)
20603* GMod2EEPROMImage:                      C64 cartridges.     (line  382)
20604* GMod2EEPROMRW:                         C64 cartridges.     (line  389)
20605* GMod2FlashWrite:                       C64 cartridges.     (line  385)
20606* Go64Mode:                              C128-specific.      (line  348)
20607* H6809RomAName:                         PET system ROM.     (line    9)
20608* H6809RomBName:                         PET system ROM.     (line    9)
20609* H6809RomCName:                         PET system ROM.     (line    9)
20610* H6809RomDName:                         PET system ROM.     (line    9)
20611* H6809RomEName:                         PET system ROM.     (line    9)
20612* H6809RomFName:                         PET system ROM.     (line    9)
20613* HotkeyFile:                            SDL-specific features.
20614                                                             (line   12)
20615* HummerADC:                             Monitor DTV features.
20616                                                             (line   45)
20617* HVSCRoot:                              VSID-specific.      (line   19)
20618* HwScalePossible:                       Video resources.    (line    8)
20619* IDE64AutodetectSize1:                  C64 cartridges.     (line  426)
20620* IDE64AutodetectSize2:                  C64 cartridges.     (line  426)
20621* IDE64AutodetectSize3:                  C64 cartridges.     (line  426)
20622* IDE64AutodetectSize4:                  C64 cartridges.     (line  426)
20623* IDE64ClockPort:                        C64 cartridges.     (line  444)
20624* IDE64Cylinders1:                       C64 cartridges.     (line  405)
20625* IDE64Cylinders2:                       C64 cartridges.     (line  405)
20626* IDE64Cylinders3:                       C64 cartridges.     (line  405)
20627* IDE64Cylinders4:                       C64 cartridges.     (line  405)
20628* IDE64Heads1:                           C64 cartridges.     (line  412)
20629* IDE64Heads2:                           C64 cartridges.     (line  412)
20630* IDE64Heads3:                           C64 cartridges.     (line  412)
20631* IDE64Heads4:                           C64 cartridges.     (line  412)
20632* IDE64Image1:                           C64 cartridges.     (line  397)
20633* IDE64Image2:                           C64 cartridges.     (line  397)
20634* IDE64Image3:                           C64 cartridges.     (line  397)
20635* IDE64Image4:                           C64 cartridges.     (line  397)
20636* IDE64RTCSave:                          C64 cartridges.     (line  440)
20637* IDE64Sectors1:                         C64 cartridges.     (line  419)
20638* IDE64Sectors2:                         C64 cartridges.     (line  419)
20639* IDE64Sectors3:                         C64 cartridges.     (line  419)
20640* IDE64Sectors4:                         C64 cartridges.     (line  419)
20641* IDE64USBServer:                        C64 cartridges.     (line  436)
20642* IDE64USBServerAddress:                 C64 cartridges.     (line  434)
20643* IDE64version:                          C64 cartridges.     (line  392)
20644* IECDevice10:                           File system device resources.
20645                                                             (line    6)
20646* IECDevice11:                           File system device resources.
20647                                                             (line    6)
20648* IECDevice4:                            Printer resources.  (line    6)
20649* IECDevice5:                            Printer resources.  (line    6)
20650* IECDevice6:                            Printer resources.  (line    6)
20651* IECDevice7:                            Printer resources.  (line    6)
20652* IECDevice8:                            File system device resources.
20653                                                             (line    6)
20654* IECDevice9:                            File system device resources.
20655                                                             (line    6)
20656* IECReset:                              C64 system ROM options.
20657                                                             (line   37)
20658* IECReset <1>:                          SCPU64-specific.    (line   20)
20659* IEEE488:                               C64 cartridges.     (line  463)
20660* IEEE488 <1>:                           VIC20 cartridges.   (line  200)
20661* IEEE488Image:                          C64 cartridges.     (line  467)
20662* InternalFunctionName:                  C128-specific.      (line  227)
20663* InternalFunctionROM:                   C128-specific.      (line  223)
20664* InternalFunctionROMRTCSave:            C128-specific.      (line  231)
20665* IO2RAM:                                VIC20 cartridges.   (line  114)
20666* IO3RAM:                                VIC20 cartridges.   (line  118)
20667* IOCollisionHandling:                   C64 cartridges.     (line  256)
20668* IOCollisionHandling <1>:               VIC20 cartridges.   (line   78)
20669* IOSize:                                PET model.          (line   18)
20670* IsepicCartridgeEnabled:                C64 cartridges.     (line  470)
20671* Isepicfilename:                        C64 cartridges.     (line  473)
20672* IsepicImageWrite:                      C64 cartridges.     (line  480)
20673* IsepicSwitch:                          C64 cartridges.     (line  476)
20674* JAMAction:                             Misc resources.     (line    6)
20675* JiffySwitch:                           SCPU64-specific.    (line   31)
20676* JoyDevice1:                            Control port options.
20677                                                             (line   65)
20678* JoyDevice1 <1>:                        SDL-specific features.
20679                                                             (line   96)
20680* JoyDevice1 <2>:                        GTK3 specific features.
20681                                                             (line  138)
20682* JoyDevice2:                            Control port options.
20683                                                             (line   65)
20684* JoyDevice2 <1>:                        SDL-specific features.
20685                                                             (line  103)
20686* JoyDevice2 <2>:                        GTK3 specific features.
20687                                                             (line  147)
20688* JoyDevice3:                            Control port options.
20689                                                             (line   65)
20690* JoyDevice3 <1>:                        SDL-specific features.
20691                                                             (line  110)
20692* JoyDevice3 <2>:                        GTK3 specific features.
20693                                                             (line  156)
20694* JoyDevice4:                            Control port options.
20695                                                             (line   65)
20696* JoyDevice4 <1>:                        SDL-specific features.
20697                                                             (line  117)
20698* JoyDevice4 <2>:                        GTK3 specific features.
20699                                                             (line  165)
20700* JoyDevice5:                            Control port options.
20701                                                             (line   65)
20702* JoyFuzz:                               SDL-specific features.
20703                                                             (line  242)
20704* JoyMapFile:                            SDL-specific features.
20705                                                             (line  236)
20706* JoyOpposite:                           Control port options.
20707                                                             (line   78)
20708* JoyPort1Device:                        Control port resources.
20709                                                             (line    6)
20710* JoyPort2Device:                        Control port resources.
20711                                                             (line   17)
20712* JoyPort3Device:                        Control port resources.
20713                                                             (line   26)
20714* JoyPort4Device:                        Control port resources.
20715                                                             (line   36)
20716* JoyPort5Device:                        Control port resources.
20717                                                             (line   42)
20718* JoyThreshold:                          SDL-specific features.
20719                                                             (line  239)
20720* KbdbufDelay:                           Control port options.
20721                                                             (line  128)
20722* KeepAspectRatio:                       GTK3 specific features.
20723                                                             (line   15)
20724* KeepMonitorOpen:                       Monitor options.    (line    6)
20725* Kernal64Name:                          C128-specific.      (line  217)
20726* KernalCHName:                          C128-specific.      (line  210)
20727* KernalDEName:                          C128-specific.      (line  192)
20728* KernalFIName:                          C128-specific.      (line  195)
20729* KernalFRName:                          C128-specific.      (line  198)
20730* KernalIntName:                         C128-specific.      (line  188)
20731* KernalITName:                          C128-specific.      (line  201)
20732* KernalName:                            C64 system ROM resources.
20733                                                             (line   13)
20734* KernalName <1>:                        Monitor DTV features.
20735                                                             (line   27)
20736* KernalName <2>:                        VIC20 system ROM resources.
20737                                                             (line    6)
20738* KernalName <3>:                        PLUS4-specific.     (line  224)
20739* KernalName <4>:                        PET model.          (line   59)
20740* KernalName <5>:                        CBM-II model.       (line   74)
20741* KernalName <6>:                        VSID-specific.      (line   26)
20742* KernalNOName:                          C128-specific.      (line  204)
20743* KernalRev:                             C64 system ROM resources.
20744                                                             (line   16)
20745* KernalRev <1>:                         VSID-specific.      (line   32)
20746* KernalSEName:                          C128-specific.      (line  207)
20747* KeyboardMapping:                       Keyboard resources. (line   28)
20748* KeyboardType:                          Keyboard resources. (line   32)
20749* KeymapIndex:                           Keyboard resources. (line    6)
20750* KeymapPosFile:                         Keyboard resources. (line   15)
20751* KeymapSymFile:                         Keyboard resources. (line   10)
20752* KeymapUserPosFile:                     Keyboard resources. (line   24)
20753* KeymapUserSymFile:                     Keyboard resources. (line   20)
20754* KeySet1East:                           Control port options.
20755                                                             (line  100)
20756* KeySet1Fire:                           Control port options.
20757                                                             (line  100)
20758* KeySet1North:                          Control port options.
20759                                                             (line  100)
20760* KeySet1NorthEast:                      Control port options.
20761                                                             (line  100)
20762* KeySet1NorthWest:                      Control port options.
20763                                                             (line  100)
20764* KeySet1South:                          Control port options.
20765                                                             (line  100)
20766* KeySet1SouthEast:                      Control port options.
20767                                                             (line  100)
20768* KeySet1SouthWest:                      Control port options.
20769                                                             (line  100)
20770* KeySet1West:                           Control port options.
20771                                                             (line  100)
20772* KeySet2East:                           Control port options.
20773                                                             (line  112)
20774* KeySet2Fire:                           Control port options.
20775                                                             (line  112)
20776* KeySet2North:                          Control port options.
20777                                                             (line  112)
20778* KeySet2NorthEast:                      Control port options.
20779                                                             (line  112)
20780* KeySet2NorthWest:                      Control port options.
20781                                                             (line  112)
20782* KeySet2South:                          Control port options.
20783                                                             (line  112)
20784* KeySet2SouthEast:                      Control port options.
20785                                                             (line  112)
20786* KeySet2SouthWest:                      Control port options.
20787                                                             (line  112)
20788* KeySet2West:                           Control port options.
20789                                                             (line  112)
20790* KeySetEnable:                          Control port options.
20791                                                             (line  124)
20792* KoalaCRTCTextColor:                    C500 data module.   (line   62)
20793* KoalaOversizeHandling:                 C500 data module.   (line   47)
20794* KoalaTEDLumHandling:                   C500 data module.   (line   58)
20795* KoalaUndersizeHandling:                C500 data module.   (line   54)
20796* LogFileName:                           Misc resources.     (line   21)
20797* MachineType:                           C128-specific.      (line  354)
20798* MachineVideoStandard:                  C64 system ROM options.
20799                                                             (line   62)
20800* MachineVideoStandard <1>:              C128-specific.      (line  359)
20801* MachineVideoStandard <2>:              Monitor DTV features.
20802                                                             (line   58)
20803* MachineVideoStandard <3>:              SCPU64-specific.    (line   16)
20804* MachineVideoStandard <4>:              VIC20 cartridges.   (line  204)
20805* MachineVideoStandard <5>:              PLUS4-specific.     (line  281)
20806* MachineVideoStandard <6>:              PET settings.       (line    9)
20807* MachineVideoStandard <7>:              CBM-II model.       (line   82)
20808* MachineVideoStandard <8>:              VSID-specific.      (line   51)
20809* MagicVoiceCartridgeEnabled:            C64 cartridges.     (line  485)
20810* MagicVoiceImage:                       C64 cartridges.     (line  489)
20811* MainCPU_TRACE:                         Monitor options.    (line  115)
20812* MegaCartNvRAMfilename:                 VIC20 cartridges.   (line  101)
20813* MegaCartNvRAMWriteBack:                VIC20 cartridges.   (line  104)
20814* MemoryHack:                            C64 system ROM options.
20815                                                             (line   41)
20816* MemoryHack <1>:                        PLUS4-specific.     (line  288)
20817* MenuKey:                               SDL-specific features.
20818                                                             (line   16)
20819* MenuKeyCancel:                         SDL-specific features.
20820                                                             (line   46)
20821* MenuKeyDown:                           SDL-specific features.
20822                                                             (line   22)
20823* MenuKeyEnd:                            SDL-specific features.
20824                                                             (line   40)
20825* MenuKeyExit:                           SDL-specific features.
20826                                                             (line   49)
20827* MenuKeyHome:                           SDL-specific features.
20828                                                             (line   37)
20829* MenuKeyLeft:                           SDL-specific features.
20830                                                             (line   25)
20831* MenuKeyMap:                            SDL-specific features.
20832                                                             (line   52)
20833* MenuKeyPageDown:                       SDL-specific features.
20834                                                             (line   34)
20835* MenuKeyPageUp:                         SDL-specific features.
20836                                                             (line   31)
20837* MenuKeyRight:                          SDL-specific features.
20838                                                             (line   28)
20839* MenuKeySelect:                         SDL-specific features.
20840                                                             (line   43)
20841* MenuKeyUp:                             SDL-specific features.
20842                                                             (line   19)
20843* MIDIDriver:                            GTK3 specific features.
20844                                                             (line  202)
20845* MIDIEnable:                            C64 I/O extension resources.
20846                                                             (line   65)
20847* MIDIInDev:                             GTK3 specific features.
20848                                                             (line  191)
20849* MIDIMode:                              C64 I/O extension resources.
20850                                                             (line   70)
20851* MIDIOutDev:                            GTK3 specific features.
20852                                                             (line  195)
20853* MMC64:                                 C64 cartridges.     (line  492)
20854* MMC64BIOSfilename:                     C64 cartridges.     (line  495)
20855* MMC64ClockPort:                        C64 cartridges.     (line  521)
20856* MMC64imagefilename:                    C64 cartridges.     (line  510)
20857* MMC64_bios_write:                      C64 cartridges.     (line  498)
20858* MMC64_flashjumper:                     C64 cartridges.     (line  503)
20859* MMC64_revision:                        C64 cartridges.     (line  506)
20860* MMC64_RO:                              C64 cartridges.     (line  514)
20861* MMC64_sd_type:                         C64 cartridges.     (line  517)
20862* MMCRCardImage:                         C64 cartridges.     (line  526)
20863* MMCRCardRW:                            C64 cartridges.     (line  542)
20864* MMCRClockPort:                         C64 cartridges.     (line  553)
20865* MMCREEPROMImage:                       C64 cartridges.     (line  530)
20866* MMCREEPROMRW:                          C64 cartridges.     (line  550)
20867* MMCRImageWrite:                        C64 cartridges.     (line  537)
20868* MMCRRescueMode:                        C64 cartridges.     (line  533)
20869* MMCRSDType:                            C64 cartridges.     (line  546)
20870* ModelLine:                             CBM-II model.       (line   62)
20871* MonitorServer:                         Monitor options.    (line   11)
20872* MonitorServerAddress:                  Monitor options.    (line   14)
20873* Mouse:                                 Control port options.
20874                                                             (line   93)
20875* NativeMonitor:                         Monitor options.    (line   18)
20876* NetworkControl:                        Monitor options.    (line  205)
20877* NetworkServerBindAddress:              Monitor options.    (line  199)
20878* NetworkServerName:                     Monitor options.    (line  196)
20879* NetworkServerPort:                     Monitor options.    (line  202)
20880* openGL_no_sync:                        Video resources.    (line   14)
20881* openGL_sync:                           Video resources.    (line   11)
20882* OverClock:                             SDL-specific features.
20883                                                             (line  247)
20884* PETColour:                             PET I/O extensions. (line   28)
20885* PETColourBG:                           PET I/O extensions. (line   32)
20886* PETDWW:                                PET I/O extensions. (line   19)
20887* PETDWWfilename:                        PET I/O extensions. (line   22)
20888* PETHRE:                                PET I/O extensions. (line   25)
20889* PETREU:                                PET I/O extensions. (line    9)
20890* PETREUfilename:                        PET I/O extensions. (line   12)
20891* PETREUsize:                            PET I/O extensions. (line   15)
20892* PLUS256Kfilename:                      C64 system ROM options.
20893                                                             (line   52)
20894* PLUS60Kbase:                           C64 system ROM options.
20895                                                             (line   48)
20896* PLUS60Kfilename:                       C64 system ROM options.
20897                                                             (line   45)
20898* Printer4:                              Printer resources.  (line   24)
20899* Printer4Driver:                        Printer resources.  (line   34)
20900* Printer4Output:                        Printer resources.  (line   45)
20901* Printer4TextDevice:                    Printer resources.  (line   18)
20902* Printer5:                              Printer resources.  (line   24)
20903* Printer5Driver:                        Printer resources.  (line   38)
20904* Printer5Output:                        Printer resources.  (line   45)
20905* Printer5TextDevice:                    Printer resources.  (line   18)
20906* Printer6:                              Printer resources.  (line   24)
20907* Printer6Driver:                        Printer resources.  (line   42)
20908* Printer6Output:                        Printer resources.  (line   45)
20909* Printer6TextDevice:                    Printer resources.  (line   18)
20910* Printer7:                              Printer resources.  (line   30)
20911* PrinterTextDevice1:                    Printer resources.  (line   13)
20912* PrinterTextDevice2:                    Printer resources.  (line   13)
20913* PrinterTextDevice3:                    Printer resources.  (line   13)
20914* PrinterUserport:                       Printer resources.  (line   50)
20915* PrinterUserportDriver:                 Printer resources.  (line   57)
20916* PrinterUserportOutput:                 Printer resources.  (line   61)
20917* PrinterUserportTextDevice:             Printer resources.  (line   53)
20918* ps2mouse:                              Monitor DTV features.
20919                                                             (line   48)
20920* PSIDKeepEnv:                           VSID-specific.      (line   12)
20921* PSIDTune:                              VSID-specific.      (line   16)
20922* Ram08:                                 CBM-II model.       (line   18)
20923* Ram1:                                  CBM-II model.       (line   22)
20924* Ram2:                                  CBM-II model.       (line   26)
20925* Ram4:                                  CBM-II model.       (line   30)
20926* Ram6:                                  CBM-II model.       (line   34)
20927* Ram9:                                  PET model.          (line   26)
20928* RamA:                                  PET model.          (line   30)
20929* RAMBlock0:                             VIC20 memconf resources.
20930                                                             (line    6)
20931* RAMBlock1:                             VIC20 memconf resources.
20932                                                             (line    6)
20933* RAMBlock2:                             VIC20 memconf resources.
20934                                                             (line    6)
20935* RAMBlock3:                             VIC20 memconf resources.
20936                                                             (line    6)
20937* RAMBlock5:                             VIC20 memconf resources.
20938                                                             (line    6)
20939* RamC:                                  CBM-II model.       (line   38)
20940* RAMCART:                               C64 cartridges.     (line  558)
20941* RAMCARTfilename:                       C64 cartridges.     (line  561)
20942* RAMCARTImageWrite:                     C64 cartridges.     (line  564)
20943* RAMCARTsize:                           C64 cartridges.     (line  572)
20944* RAMCART_RO:                            C64 cartridges.     (line  569)
20945* RAMInitPatternInvert:                  Monitor options.    (line   67)
20946* RAMInitStartValue:                     Monitor options.    (line   59)
20947* RAMInitValueInvert:                    Monitor options.    (line   63)
20948* RamSize:                               PLUS4-specific.     (line  285)
20949* RamSize <1>:                           PET model.          (line   14)
20950* RamSize <2>:                           CBM-II model.       (line   14)
20951* RawDriveDriver:                        Drive resources.    (line  174)
20952* RefreshRate:                           Performance resources.
20953                                                             (line   10)
20954* RefreshRate <1>:                       Video resources.    (line   21)
20955* REU:                                   C64 I/O extension resources.
20956                                                             (line   76)
20957* REUfilename:                           C64 I/O extension resources.
20958                                                             (line   80)
20959* REUImageWrite:                         C64 I/O extension resources.
20960                                                             (line   83)
20961* REUsize:                               C64 I/O extension resources.
20962                                                             (line   88)
20963* RomModule9Name:                        PET model.          (line   69)
20964* RomModuleAName:                        PET model.          (line   73)
20965* RomModuleBName:                        PET model.          (line   77)
20966* RRBankJumper:                          C64 cartridges.     (line  582)
20967* RRBiosWrite:                           C64 cartridges.     (line  585)
20968* RRClockPort:                           C64 cartridges.     (line  590)
20969* RRFlashJumper:                         C64 cartridges.     (line  579)
20970* RRNETMK3_bios_write:                   C64 cartridges.     (line  598)
20971* RRNETMK3_flashjumper:                  C64 cartridges.     (line  595)
20972* RRrevision:                            C64 cartridges.     (line  575)
20973* RsDevice1:                             RS232 resources.    (line    6)
20974* RsDevice1Baud:                         GTK3 specific features.
20975                                                             (line  209)
20976* RsDevice2:                             RS232 resources.    (line    6)
20977* RsDevice2Baud:                         GTK3 specific features.
20978                                                             (line  209)
20979* RsDevice3:                             RS232 resources.    (line    6)
20980* RsDevice3Baud:                         GTK3 specific features.
20981                                                             (line  209)
20982* RsDevice4:                             RS232 resources.    (line    6)
20983* RsDevice4Baud:                         GTK3 specific features.
20984                                                             (line  209)
20985* RsUserBaud:                            RS232 resources.    (line   44)
20986* RsUserDev:                             RS232 resources.    (line   48)
20987* RsUserEnable:                          RS232 resources.    (line   40)
20988* SampleName:                            Sound resources.    (line  119)
20989* SamplerDevice:                         Sound resources.    (line  111)
20990* SamplerGain:                           Sound resources.    (line  115)
20991* SaveResourcesOnExit:                   SDL-specific features.
20992                                                             (line   55)
20993* SaveResourcesOnExit <1>:               GTK3 specific features.
20994                                                             (line   27)
20995* SBDIGIMAX:                             C64 cartridges.     (line  448)
20996* SBDIGIMAXbase:                         C64 cartridges.     (line  452)
20997* SBETFE:                                C64 cartridges.     (line  456)
20998* SBETFEbase:                            C64 cartridges.     (line  459)
20999* SCPU64Name:                            SCPU64-specific.    (line   13)
21000* SDL2Renderer:                          SDL-specific features.
21001                                                             (line   84)
21002* SDLBitdepth:                           SDL-specific features.
21003                                                             (line   67)
21004* SDLCustomHeight:                       SDL-specific features.
21005                                                             (line   78)
21006* SDLCustomWidth:                        SDL-specific features.
21007                                                             (line   75)
21008* SDLGLAspectMode:                       SDL-specific features.
21009                                                             (line  223)
21010* SDLGLFilter:                           SDL-specific features.
21011                                                             (line   93)
21012* SDLGLFlipX:                            SDL-specific features.
21013                                                             (line  227)
21014* SDLGLFlipY:                            SDL-specific features.
21015                                                             (line  230)
21016* SDLKbdStatusbar:                       SDL-specific features.
21017                                                             (line   81)
21018* SDLLimitMode:                          SDL-specific features.
21019                                                             (line   71)
21020* SDLStatusbar:                          SDL-specific features.
21021                                                             (line   63)
21022* SDLWindowHeight:                       SDL-specific features.
21023                                                             (line   90)
21024* SDLWindowWidth:                        SDL-specific features.
21025                                                             (line   87)
21026* SFXSoundExpander:                      C64 I/O extension resources.
21027                                                             (line   92)
21028* SFXSoundExpander <1>:                  VIC20 cartridges.   (line  125)
21029* SFXSoundExpanderChip:                  C64 I/O extension resources.
21030                                                             (line   96)
21031* SFXSoundExpanderChip <1>:              VIC20 cartridges.   (line  129)
21032* SFXSoundExpanderIOSwap:                VIC20 cartridges.   (line  132)
21033* SFXSoundSampler:                       C64 I/O extension resources.
21034                                                             (line   99)
21035* SFXSoundSampler <1>:                   VIC20 cartridges.   (line  136)
21036* SFXSoundSamplerIOSwap:                 VIC20 cartridges.   (line  140)
21037* SidAddress:                            VIC20 cartridges.   (line  168)
21038* SidAddress <1>:                        PLUS4-specific.     (line  164)
21039* SidAddress <2>:                        PET I/O extensions. (line   42)
21040* SidCart:                               VIC20 cartridges.   (line  165)
21041* SidCart <1>:                           PLUS4-specific.     (line  161)
21042* SidCart <2>:                           PET I/O extensions. (line   39)
21043* SIDCartJoy:                            PLUS4-specific.     (line  172)
21044* SidClock:                              VIC20 cartridges.   (line  172)
21045* SidClock <1>:                          PLUS4-specific.     (line  168)
21046* SidClock <2>:                          PET I/O extensions. (line   46)
21047* SidEngine:                             SID resources.      (line   60)
21048* SidFilters:                            SID resources.      (line   52)
21049* SidModel:                              SID resources.      (line   56)
21050* SidQuadAddressStart:                   SID resources.      (line   38)
21051* SidResidFilterBias:                    SID resources.      (line   74)
21052* SidResidGain:                          SID resources.      (line   73)
21053* SidResidPassband:                      SID resources.      (line   69)
21054* SidResidSampling:                      SID resources.      (line   65)
21055* SidStereo:                             SID resources.      (line    6)
21056* SidStereoAddressStart:                 SID resources.      (line   10)
21057* SidTripleAddressStart:                 SID resources.      (line   24)
21058* SIMMSize:                              SCPU64-specific.    (line   28)
21059* SmartMouseRTCSave:                     Control port options.
21060                                                             (line   96)
21061* Sound:                                 Sound resources.    (line    6)
21062* SoundBufferSize:                       Sound resources.    (line   18)
21063* SoundDeviceArg:                        Sound resources.    (line   65)
21064* SoundDeviceName:                       Sound resources.    (line   25)
21065* SoundFragmentSize:                     Sound resources.    (line   96)
21066* SoundOutput:                           Sound resources.    (line  103)
21067* SoundRecordDeviceArg:                  Sound resources.    (line   93)
21068* SoundRecordDeviceName:                 Sound resources.    (line   69)
21069* SoundSampleRate:                       Sound resources.    (line   13)
21070* SoundSpeedAdjustment:                  Sound resources.    (line    9)
21071* SoundSuspendTime:                      Sound resources.    (line   21)
21072* SoundVolume:                           Sound resources.    (line  100)
21073* SpeechEnabled:                         PLUS4-specific.     (line  155)
21074* SpeechImage:                           PLUS4-specific.     (line  158)
21075* Speed:                                 Performance resources.
21076                                                             (line    6)
21077* Speed <1>:                             Video resources.    (line   17)
21078* SpeedSwitch:                           SCPU64-specific.    (line   34)
21079* SSRamExpansion:                        C64 cartridges.     (line  601)
21080* StartMinimized:                        GTK3 specific features.
21081                                                             (line   24)
21082* SuperPET:                              PET model.          (line   34)
21083* TapecartEnabled:                       C64 system ROM options.
21084                                                             (line   69)
21085* TapecartLogLevel:                      C64 system ROM options.
21086                                                             (line   80)
21087* TapecartOptimizeTCRT:                  C64 system ROM options.
21088                                                             (line   76)
21089* TapecartTCRTFilename:                  C64 system ROM options.
21090                                                             (line   86)
21091* TapecartUpdateTCRT:                    C64 system ROM options.
21092                                                             (line   72)
21093* TapeLog:                               Monitor options.    (line   92)
21094* TapeLogDestination:                    Monitor options.    (line   95)
21095* TapeLogfilename:                       Monitor options.    (line   99)
21096* TapeSenseDongle:                       RS232 usage.        (line   53)
21097* TEDAudioLeak:                          PLUS4-specific.     (line   61)
21098* TEDBorderMode:                         PLUS4-specific.     (line   69)
21099* TEDColorBrightness:                    PLUS4-specific.     (line   36)
21100* TEDColorContrast:                      PLUS4-specific.     (line   32)
21101* TEDColorGamma:                         PLUS4-specific.     (line   40)
21102* TEDColorSaturation:                    PLUS4-specific.     (line   28)
21103* TEDColorTint:                          PLUS4-specific.     (line   43)
21104* TEDDoubleScan:                         PLUS4-specific.     (line   18)
21105* TEDDoubleSize:                         PLUS4-specific.     (line   15)
21106* TEDExternalPalette:                    PLUS4-specific.     (line   25)
21107* TEDFilter:                             PLUS4-specific.     (line   65)
21108* TEDFullscreen:                         SDL-specific features.
21109                                                             (line  152)
21110* TEDFullscreen <1>:                     GTK3 specific features.
21111                                                             (line   83)
21112* TEDFullscreenDevice:                   SDL-specific features.
21113                                                             (line  149)
21114* TEDFullscreenDevice <1>:               GTK3 specific features.
21115                                                             (line   80)
21116* TEDFullscreenStatusbar:                SDL-specific features.
21117                                                             (line  156)
21118* TEDFullscreenStatusbar <1>:            GTK3 specific features.
21119                                                             (line   87)
21120* TEDHwScale:                            SDL-specific features.
21121                                                             (line  145)
21122* TEDHwScale <1>:                        GTK3 specific features.
21123                                                             (line   76)
21124* TEDPALBlur:                            PLUS4-specific.     (line   50)
21125* TEDPaletteFile:                        PLUS4-specific.     (line   21)
21126* TEDPALOddLineOffset:                   PLUS4-specific.     (line   57)
21127* TEDPALOddLinePhase:                    PLUS4-specific.     (line   54)
21128* TEDPALScanLineShade:                   PLUS4-specific.     (line   46)
21129* TEDSDLFullscreenMode:                  SDL-specific features.
21130                                                             (line  142)
21131* TEDVideoCache:                         PLUS4-specific.     (line   12)
21132* TraceMode:                             Monitor options.    (line  109)
21133* TrueAspectRatio:                       GTK3 specific features.
21134                                                             (line   20)
21135* UltiMemWriteBack:                      VIC20 cartridges.   (line  109)
21136* UseFullscreen:                         GTK3 specific features.
21137                                                             (line   57)
21138* Userport4bitSampler:                   RS232 usage.        (line   97)
21139* Userport8BSS:                          RS232 usage.        (line  100)
21140* UserportCollisionHandling:             RS232 usage.        (line   88)
21141* UserportDAC:                           PET I/O extensions. (line   36)
21142* UserportDIGIMAX:                       RS232 usage.        (line   94)
21143* UserportJoy:                           Control port options.
21144                                                             (line   82)
21145* UserportJoyType:                       Control port options.
21146                                                             (line   86)
21147* UserportRTC58321a:                     RS232 usage.        (line  104)
21148* UserportRTC58321aSave:                 RS232 usage.        (line  108)
21149* UserportRTCDS1307:                     RS232 usage.        (line  112)
21150* UserportRTCDS1307Save:                 RS232 usage.        (line  116)
21151* VDC64KB:                               C128-specific.      (line   12)
21152* VDCAudioLeak:                          C128-specific.      (line   71)
21153* VDCColorBrightness:                    C128-specific.      (line   46)
21154* VDCColorContrast:                      C128-specific.      (line   42)
21155* VDCColorGamma:                         C128-specific.      (line   50)
21156* VDCColorSaturation:                    C128-specific.      (line   38)
21157* VDCColorTint:                          C128-specific.      (line   53)
21158* VDCDoubleScan:                         C128-specific.      (line   25)
21159* VDCDoubleSize:                         C128-specific.      (line   22)
21160* VDCExternalPalette:                    C128-specific.      (line   35)
21161* VDCFilter:                             C128-specific.      (line   75)
21162* VDCFullscreen:                         SDL-specific features.
21163                                                             (line  170)
21164* VDCFullscreen <1>:                     GTK3 specific features.
21165                                                             (line   98)
21166* VDCFullscreenDevice:                   SDL-specific features.
21167                                                             (line  167)
21168* VDCFullscreenDevice <1>:               GTK3 specific features.
21169                                                             (line   95)
21170* VDCFullscreenStatusbar:                SDL-specific features.
21171                                                             (line  174)
21172* VDCFullscreenStatusbar <1>:            GTK3 specific features.
21173                                                             (line  102)
21174* VDCHwScale:                            SDL-specific features.
21175                                                             (line  163)
21176* VDCHwScale <1>:                        GTK3 specific features.
21177                                                             (line   91)
21178* VDCPALBlur:                            C128-specific.      (line   60)
21179* VDCPaletteFile:                        C128-specific.      (line   31)
21180* VDCPALOddLineOffset:                   C128-specific.      (line   67)
21181* VDCPALOddLinePhase:                    C128-specific.      (line   64)
21182* VDCPALScanLineShade:                   C128-specific.      (line   56)
21183* VDCRevision:                           C128-specific.      (line   15)
21184* VDCSDLFullscreenMode:                  SDL-specific features.
21185                                                             (line  160)
21186* VDCStretchVertical:                    C128-specific.      (line   28)
21187* VDCVideoCache:                         C128-specific.      (line   19)
21188* VFLImod:                               VIC20 cartridges.   (line  122)
21189* VICAudioLeak:                          VIC20 cartridges.   (line  478)
21190* VICBorderMode:                         VIC20 cartridges.   (line  486)
21191* VICColorBrightness:                    VIC20 cartridges.   (line  453)
21192* VICColorContrast:                      VIC20 cartridges.   (line  449)
21193* VICColorGamma:                         VIC20 cartridges.   (line  457)
21194* VICColorSaturation:                    VIC20 cartridges.   (line  445)
21195* VICColorTint:                          VIC20 cartridges.   (line  460)
21196* VICDoubleScan:                         VIC20 cartridges.   (line  435)
21197* VICDoubleSize:                         VIC20 cartridges.   (line  432)
21198* VICExternalPalette:                    VIC20 cartridges.   (line  442)
21199* VICFilter:                             VIC20 cartridges.   (line  482)
21200* VicFlashPluginWriteBack:               VIC20 cartridges.   (line   96)
21201* VICFullscreen:                         SDL-specific features.
21202                                                             (line  188)
21203* VICFullscreen <1>:                     GTK3 specific features.
21204                                                             (line  113)
21205* VICFullscreenDevice:                   SDL-specific features.
21206                                                             (line  185)
21207* VICFullscreenDevice <1>:               GTK3 specific features.
21208                                                             (line  110)
21209* VICFullscreenStatusbar:                SDL-specific features.
21210                                                             (line  192)
21211* VICFullscreenStatusbar <1>:            GTK3 specific features.
21212                                                             (line  117)
21213* VICHwScale:                            SDL-specific features.
21214                                                             (line  181)
21215* VICHwScale <1>:                        GTK3 specific features.
21216                                                             (line  106)
21217* VICIIAudioLeak:                        VIC-II resources.   (line   74)
21218* VICIIBorderMode:                       VIC-II resources.   (line   82)
21219* VICIICheckSbColl:                      VIC-II resources.   (line   14)
21220* VICIICheckSsColl:                      VIC-II resources.   (line   10)
21221* VICIIColorBrightness:                  VIC-II resources.   (line   49)
21222* VICIIColorContrast:                    VIC-II resources.   (line   45)
21223* VICIIColorGamma:                       VIC-II resources.   (line   53)
21224* VICIIColorSaturation:                  VIC-II resources.   (line   41)
21225* VICIIColorTint:                        VIC-II resources.   (line   56)
21226* VICIIDoubleScan:                       VIC-II resources.   (line   28)
21227* VICIIDoubleSize:                       VIC-II resources.   (line   25)
21228* VICIIExternalPalette:                  VIC-II resources.   (line   38)
21229* VICIIFilter:                           VIC-II resources.   (line   78)
21230* VICIIFullscreen:                       SDL-specific features.
21231                                                             (line  208)
21232* VICIIFullscreen <1>:                   GTK3 specific features.
21233                                                             (line  129)
21234* VICIIFullscreenDevice:                 SDL-specific features.
21235                                                             (line  204)
21236* VICIIFullscreenDevice <1>:             GTK3 specific features.
21237                                                             (line  125)
21238* VICIIFullscreenStatusbar:              SDL-specific features.
21239                                                             (line  212)
21240* VICIIFullscreenStatusbar <1>:          GTK3 specific features.
21241                                                             (line  133)
21242* VICIIHwScale:                          SDL-specific features.
21243                                                             (line  200)
21244* VICIIHwScale <1>:                      GTK3 specific features.
21245                                                             (line  121)
21246* VICIIModel:                            VIC-II resources.   (line    6)
21247* VICIINewLuminances:                    VIC-II resources.   (line   31)
21248* VICIIPALBlur:                          VIC-II resources.   (line   63)
21249* VICIIPaletteFile:                      VIC-II resources.   (line   34)
21250* VICIIPALOddLineOffset:                 VIC-II resources.   (line   70)
21251* VICIIPALOddLinePhase:                  VIC-II resources.   (line   67)
21252* VICIIPALScanLineShade:                 VIC-II resources.   (line   59)
21253* VICIISDLFullscreenMode:                SDL-specific features.
21254                                                             (line  196)
21255* VICIIVideoCache:                       VIC-II resources.   (line   22)
21256* VICIIVSPBug:                           VIC-II resources.   (line   18)
21257* VICPALBlur:                            VIC20 cartridges.   (line  467)
21258* VICPaletteFile:                        VIC20 cartridges.   (line  438)
21259* VICPALOddLineOffset:                   VIC20 cartridges.   (line  474)
21260* VICPALOddLinePhase:                    VIC20 cartridges.   (line  471)
21261* VICPALScanLineShade:                   VIC20 cartridges.   (line  463)
21262* VICSDLFullscreenMode:                  SDL-specific features.
21263                                                             (line  178)
21264* VICVideoCache:                         VIC20 cartridges.   (line  429)
21265* VideoSize:                             PET model.          (line   22)
21266* VirtualDevices:                        No traps resources. (line    6)
21267* WarpMode:                              Performance resources.
21268                                                             (line   15)
21269* WarpMode <1>:                          Video resources.    (line   26)
21270* Window0Height:                         GTK3 specific features.
21271                                                             (line   40)
21272* Window0Width:                          GTK3 specific features.
21273                                                             (line   40)
21274* Window0Xpos:                           GTK3 specific features.
21275                                                             (line   40)
21276* Window0Ypos:                           GTK3 specific features.
21277                                                             (line   40)
21278* Window1Height:                         GTK3 specific features.
21279                                                             (line   47)
21280* Window1Width:                          GTK3 specific features.
21281                                                             (line   47)
21282* Window1Xpos:                           GTK3 specific features.
21283                                                             (line   47)
21284* Window1Ypos:                           GTK3 specific features.
21285                                                             (line   47)
21286
21287
21288File: vice.info,  Node: Command-line Index,  Prev: Resource Index,  Up: Top
21289
21290Index of Command-line options
21291*****************************
21292
21293�[index�]
21294* Menu:
21295
21296* +cart:                                 C64 cartridges.     (line  613)
21297* +cart <1>:                             CBM-II model.       (line  127)
21298* --types:                               c1541 executing shell commands.
21299                                                             (line   72)
21300* --version:                             c1541 executing shell commands.
21301                                                             (line   75)
21302* -1:                                    Command-line initialization.
21303                                                             (line   64)
21304* -10:                                   Command-line initialization.
21305                                                             (line   68)
21306* -11:                                   Command-line initialization.
21307                                                             (line   69)
21308* -256kbase:                             C64 system ROM options.
21309                                                             (line  116)
21310* -256kimage:                            C64 system ROM options.
21311                                                             (line  113)
21312* -40col:                                C128-specific.      (line  366)
21313* -6809romA:                             PET system ROM.     (line   46)
21314* -6809romB:                             PET system ROM.     (line   50)
21315* -6809romC:                             PET system ROM.     (line   54)
21316* -6809romD:                             PET system ROM.     (line   58)
21317* -6809romE:                             PET system ROM.     (line   62)
21318* -6809romF:                             PET system ROM.     (line   65)
21319* -8:                                    Command-line initialization.
21320                                                             (line   65)
21321* -80col:                                C128-specific.      (line  369)
21322* -9:                                    Command-line initialization.
21323                                                             (line   67)
21324* -?:                                    Command-line initialization.
21325                                                             (line   13)
21326* -? <1>:                                c1541 executing shell commands.
21327                                                             (line  248)
21328* -acia, +acia:                          PLUS4-specific.     (line  318)
21329* -acia1, +acia1:                        RS232 options.      (line   13)
21330* -acia1base:                            RS232 options.      (line   25)
21331* -acia1irq:                             RS232 options.      (line   36)
21332* -acia1mode:                            RS232 options.      (line   31)
21333* -aspect:                               SDL-specific features.
21334                                                             (line  455)
21335* -aspect <1>:                           GTK3 specific features.
21336                                                             (line  230)
21337* -attach10ro:                           Command-line initialization.
21338                                                             (line   72)
21339* -attach10rw:                           Command-line initialization.
21340                                                             (line   81)
21341* -attach11ro:                           Command-line initialization.
21342                                                             (line   72)
21343* -attach11rw:                           Command-line initialization.
21344                                                             (line   81)
21345* -attach8ro:                            Command-line initialization.
21346                                                             (line   72)
21347* -attach8rw:                            Command-line initialization.
21348                                                             (line   81)
21349* -attach9ro:                            Command-line initialization.
21350                                                             (line   72)
21351* -attach9rw:                            Command-line initialization.
21352                                                             (line   81)
21353* -autoload:                             Command-line initialization.
21354                                                             (line   61)
21355* -autoplaybackframes:                   Monitor options.    (line  187)
21356* -autostart:                            Command-line initialization.
21357                                                             (line   58)
21358* -autostart <1>:                        Command-line autostart.
21359                                                             (line   22)
21360* -autostart-delay:                      Resources and command-line.
21361                                                             (line  116)
21362* -autostart-delay-random, +autostart-delay-random: Resources and command-line.
21363                                                             (line  111)
21364* -autostart-handle-tde, +autostart-handle-tde: Resources and command-line.
21365                                                             (line   95)
21366* -autostart-warp, +autostart-warp:      Resources and command-line.
21367                                                             (line  101)
21368* -autostartprgdiskimage:                Resources and command-line.
21369                                                             (line   77)
21370* -autostartprgmode:                     Resources and command-line.
21371                                                             (line  106)
21372* -autostartwithcolon, +autostartwithcolon: Resources and command-line.
21373                                                             (line   88)
21374* -b:                                    c1541 executing shell commands.
21375                                                             (line   67)
21376* -basic:                                C64 system ROM options.
21377                                                             (line    6)
21378* -basic <1>:                            Monitor DTV features.
21379                                                             (line   82)
21380* -basic <2>:                            VIC20 system ROM options.
21381                                                             (line    9)
21382* -basic <3>:                            PET system ROM.     (line   24)
21383* -basic <4>:                            CBM-II model.       (line  120)
21384* -basic <5>:                            VSID-specific.      (line   71)
21385* -basic <Name>:                         PLUS4-specific.     (line  254)
21386* -basic1, +basic1:                      PET settings.       (line   69)
21387* -basic1char, +basic1char:              PET settings.       (line   74)
21388* -basic64:                              C128-specific.      (line  250)
21389* -basichi:                              C128-specific.      (line  259)
21390* -basiclo:                              C128-specific.      (line  256)
21391* -basicload, +basicload:                Resources and command-line.
21392                                                             (line   81)
21393* -bbrtcsave, +bbrtcsave:                Control port options.
21394                                                             (line   54)
21395* -burstmod:                             C64 I/O extension options.
21396                                                             (line  128)
21397* -burstmod <1>:                         SCPU64-specific.    (line   73)
21398* -c:                                    c1541 executing shell commands.
21399                                                             (line  254)
21400* -c128fullbanks, +c128fullbanks:        C128-specific.      (line  388)
21401* -c1hi:                                 PLUS4-specific.     (line  266)
21402* -c1lo:                                 PLUS4-specific.     (line  263)
21403* -c2hi:                                 PLUS4-specific.     (line  272)
21404* -c2lo:                                 PLUS4-specific.     (line  269)
21405* -c64dtvromimage:                       C64DTV ROM image.   (line   28)
21406* -c64dtvromrw, +c64dtvromrw:            C64DTV ROM image.   (line   31)
21407* -cart, +cart:                          PLUS4-specific.     (line  184)
21408* -cart1:                                CBM-II model.       (line  136)
21409* -cart16:                               C64 cartridges.     (line  625)
21410* -cart2:                                VIC20 cartridges.   (line  222)
21411* -cart2 <1>:                            VIC20 system ROM options.
21412                                                             (line   16)
21413* -cart2 <2>:                            CBM-II model.       (line  140)
21414* -cart4:                                VIC20 cartridges.   (line  223)
21415* -cart4 <1>:                            VIC20 system ROM options.
21416                                                             (line   16)
21417* -cart4 <2>:                            CBM-II model.       (line  144)
21418* -cart6:                                VIC20 cartridges.   (line  225)
21419* -cart6 <1>:                            VIC20 system ROM options.
21420                                                             (line   16)
21421* -cart6 <2>:                            CBM-II model.       (line  148)
21422* -cart8:                                C64 cartridges.     (line  622)
21423* -cartA:                                VIC20 cartridges.   (line  227)
21424* -cartA <1>:                            VIC20 system ROM options.
21425                                                             (line   16)
21426* -cartap:                               C64 cartridges.     (line  634)
21427* -cartar2:                              C64 cartridges.     (line  637)
21428* -cartar3:                              C64 cartridges.     (line  640)
21429* -cartar4:                              C64 cartridges.     (line  643)
21430* -cartar5:                              C64 cartridges.     (line  646)
21431* -cartB:                                VIC20 cartridges.   (line  229)
21432* -cartB <1>:                            VIC20 system ROM options.
21433                                                             (line   16)
21434* -cartbb:                               VIC20 cartridges.   (line  235)
21435* -cartcap:                              C64 cartridges.     (line  649)
21436* -cartcomal:                            C64 cartridges.     (line  652)
21437* -cartcrt:                              C64 cartridges.     (line  631)
21438* -cartdep256:                           C64 cartridges.     (line  655)
21439* -cartdep64:                            C64 cartridges.     (line  658)
21440* -cartdep7x8:                           C64 cartridges.     (line  661)
21441* -cartdin:                              C64 cartridges.     (line  664)
21442* -cartdqbb:                             C64 cartridges.     (line  670)
21443* -cartdsm:                              C64 cartridges.     (line  667)
21444* -carteasy:                             C64 cartridges.     (line  685)
21445* -carteasycalc:                         C64 cartridges.     (line  688)
21446* -cartepyx:                             C64 cartridges.     (line  707)
21447* -cartexos:                             C64 cartridges.     (line  710)
21448* -cartexpert:                           C64 cartridges.     (line  713)
21449* -cartf64:                              C64 cartridges.     (line  733)
21450* -cartfc1:                              C64 cartridges.     (line  736)
21451* -cartfc3:                              C64 cartridges.     (line  739)
21452* -cartfcplus:                           C64 cartridges.     (line  742)
21453* -cartfe:                               VIC20 cartridges.   (line  249)
21454* -cartff:                               C64 cartridges.     (line  745)
21455* -cartfm:                               C64 cartridges.     (line  748)
21456* -cartfp:                               C64 cartridges.     (line  751)
21457* -cartfp <1>:                           VIC20 cartridges.   (line  257)
21458* -cartgeneric:                          VIC20 cartridges.   (line  231)
21459* -cartgeoram:                           C64 I/O extension options.
21460                                                             (line   55)
21461* -cartgk:                               C64 cartridges.     (line  770)
21462* -cartgmod2:                            C64 cartridges.     (line  754)
21463* -cartgs:                               C64 cartridges.     (line  773)
21464* -cartide64:                            C64 cartridges.     (line  776)
21465* -cartieee:                             C64 cartridges.     (line  869)
21466* -cartisepic:                           C64 cartridges.     (line  889)
21467* -cartkcs:                              C64 cartridges.     (line  900)
21468* -cartks:                               C64 cartridges.     (line  903)
21469* -cartmach5:                            C64 cartridges.     (line  906)
21470* -cartmd:                               C64 cartridges.     (line  909)
21471* -cartmega:                             VIC20 cartridges.   (line  238)
21472* -cartmf:                               C64 cartridges.     (line  912)
21473* -cartmikro:                            C64 cartridges.     (line  915)
21474* -cartmmc64:                            C64 cartridges.     (line  922)
21475* -cartmmcr:                             C64 cartridges.     (line  961)
21476* -cartmv:                               C64 cartridges.     (line  999)
21477* -cartocean:                            C64 cartridges.     (line 1011)
21478* -cartp64:                              C64 cartridges.     (line 1014)
21479* -cartpf:                               C64 cartridges.     (line 1017)
21480* -cartramcart:                          C64 cartridges.     (line 1020)
21481* -cartrep256:                           C64 cartridges.     (line 1044)
21482* -cartreset, +cartreset:                C64 cartridges.     (line  617)
21483* -cartreset, +cartreset <1>:            VIC20 cartridges.   (line  217)
21484* -cartreset, +cartreset <2>:            PLUS4-specific.     (line  179)
21485* -cartreset, +cartreset <3>:            CBM-II model.       (line  131)
21486* -cartreu:                              C64 I/O extension options.
21487                                                             (line   75)
21488* -cartrgcd:                             C64 cartridges.     (line 1047)
21489* -cartross:                             C64 cartridges.     (line 1050)
21490* -cartrr:                               C64 cartridges.     (line 1056)
21491* -cartrrnet:                            C64 cartridges.     (line 1053)
21492* -cartru:                               C64 cartridges.     (line 1090)
21493* -carts64:                              C64 cartridges.     (line 1093)
21494* -cartsb:                               C64 cartridges.     (line 1096)
21495* -cartse5:                              C64 cartridges.     (line 1099)
21496* -cartsg:                               C64 cartridges.     (line 1102)
21497* -cartsilver:                           C64 cartridges.     (line 1105)
21498* -cartsimon:                            C64 cartridges.     (line 1108)
21499* -cartss4:                              C64 cartridges.     (line 1111)
21500* -cartss5:                              C64 cartridges.     (line 1114)
21501* -cartstar:                             C64 cartridges.     (line 1122)
21502* -cartultimax:                          C64 cartridges.     (line  628)
21503* -cartwl:                               C64 cartridges.     (line 1125)
21504* -cartws:                               C64 cartridges.     (line 1128)
21505* -cartzaxxon:                           C64 cartridges.     (line 1131)
21506* -chargch:                              C128-specific.      (line  302)
21507* -chargde:                              C128-specific.      (line  290)
21508* -chargen:                              C64 system ROM options.
21509                                                             (line    9)
21510* -chargen <1>:                          C128-specific.      (line  286)
21511* -chargen <2>:                          Monitor DTV features.
21512                                                             (line   75)
21513* -chargen <3>:                          SCPU64-specific.    (line   44)
21514* -chargen <4>:                          VIC20 system ROM options.
21515                                                             (line   12)
21516* -chargen <5>:                          PET system ROM.     (line   30)
21517* -chargen <6>:                          CBM-II model.       (line  123)
21518* -chargen <7>:                          VSID-specific.      (line   65)
21519* -chargfr:                              C128-specific.      (line  294)
21520* -chargno:                              C128-specific.      (line  306)
21521* -chargse:                              C128-specific.      (line  298)
21522* -chdir:                                Command-line initialization.
21523                                                             (line   55)
21524* -cia1model:                            C64 cartridges.     (line 1156)
21525* -cia2model:                            C64 cartridges.     (line 1160)
21526* -ciamodel:                             C64 cartridges.     (line 1151)
21527* -colour-analog:                        PET I/O extensions. (line   86)
21528* -colour-analog-bg:                     PET I/O extensions. (line   89)
21529* -colour-rgbi:                          PET I/O extensions. (line   83)
21530* -config:                               Command-line initialization.
21531                                                             (line   24)
21532* -confirmonexit, +confirmonexit:        SDL-specific features.
21533                                                             (line  306)
21534* -confirmonexit, +confirmonexit <1>:    GTK3 specific features.
21535                                                             (line  245)
21536* -console:                              Command-line initialization.
21537                                                             (line   48)
21538* -controlport1device:                   Control port options.
21539                                                             (line    6)
21540* -controlport2device:                   Control port options.
21541                                                             (line   18)
21542* -controlport3device:                   Control port options.
21543                                                             (line   27)
21544* -controlport4device:                   Control port options.
21545                                                             (line   38)
21546* -controlport5device:                   Control port options.
21547                                                             (line   44)
21548* -core, +core:                          Monitor options.    (line  129)
21549* -cpclockf83, +cpclockf83:              RS232 usage.        (line   62)
21550* -cpclockf83save, +cpclockf83save:      RS232 usage.        (line   67)
21551* -cpmcart, +cpmcart:                    C64 system ROM options.
21552                                                             (line  138)
21553* -cpu6502:                              PET settings.       (line   60)
21554* -cpu6809:                              PET settings.       (line   63)
21555* -cpuprog:                              PET settings.       (line   66)
21556* -crtc, +crtc:                          CRTC Settings.      (line   76)
21557* -Crtcaudioleak, +Crtcaudioleak:        CRTC Settings.      (line  144)
21558* -Crtcbrightness:                       CRTC Settings.      (line  120)
21559* -Crtccontrast:                         CRTC Settings.      (line  117)
21560* -Crtccrtblur:                          CRTC Settings.      (line  137)
21561* -Crtccrtscanlineshade:                 CRTC Settings.      (line  140)
21562* -Crtcdscan, +Crtcdscan:                CRTC Settings.      (line   95)
21563* -Crtcdsize, +Crtcdsize:                CRTC Settings.      (line   85)
21564* -Crtcextpal:                           CRTC Settings.      (line  107)
21565* -Crtcfilter:                           CRTC Settings.      (line  100)
21566* -CRTCfull, +CRTCfull:                  SDL-specific features.
21567                                                             (line  379)
21568* -CRTCfulldevice:                       SDL-specific features.
21569                                                             (line  375)
21570* -CRTCfulldevice <1>:                   GTK3 specific features.
21571                                                             (line  267)
21572* -Crtcgamma:                            CRTC Settings.      (line  124)
21573* -CRTChwscale, +CRTChwscale:            SDL-specific features.
21574                                                             (line  370)
21575* -CRTChwscale, +CRTChwscale <1>:        GTK3 specific features.
21576                                                             (line  262)
21577* -Crtcintpal:                           CRTC Settings.      (line  104)
21578* -Crtcoddlinesoffset:                   CRTC Settings.      (line  133)
21579* -Crtcoddlinesphase:                    CRTC Settings.      (line  130)
21580* -Crtcpalette:                          CRTC Settings.      (line  110)
21581* -Crtcsaturation:                       CRTC Settings.      (line  113)
21582* -CRTCSDLfullmode:                      SDL-specific features.
21583                                                             (line  366)
21584* -CRTCstretchvertical, +CRTCstretchvertical: CRTC Settings. (line   90)
21585* -Crtctint:                             CRTC Settings.      (line  127)
21586* -Crtcvcache, +Crtcvcache:              CRTC Settings.      (line   80)
21587* -cs8900ioif:                           C64 I/O extension options.
21588                                                             (line  103)
21589* -cs8900ioif <1>:                       VIC20 cartridges.   (line  304)
21590* -d:                                    c1541 executing shell commands.
21591                                                             (line  264)
21592* -datasette, +datasette:                Sound options.      (line   96)
21593* -debug, +debug:                        Monitor options.    (line  134)
21594* -debugcart, +debugcart:                Monitor options.    (line  139)
21595* -default:                              Command-line initialization.
21596                                                             (line   19)
21597* -device10:                             File system device options.
21598                                                             (line   26)
21599* -device11:                             File system device options.
21600                                                             (line   26)
21601* -device4:                              Printer options.    (line   26)
21602* -device5:                              Printer options.    (line   30)
21603* -device6:                              Printer options.    (line   34)
21604* -device7:                              Printer options.    (line   38)
21605* -device8:                              File system device options.
21606                                                             (line   26)
21607* -device9:                              File system device options.
21608                                                             (line   26)
21609* -diagpin, +diagpin:                    PET settings.       (line   84)
21610* -digiblaster, +digiblaster:            PLUS4-specific.     (line  188)
21611* -digimax, +digimax:                    C64 I/O extension options.
21612                                                             (line    6)
21613* -digimax, +digimax <1>:                VIC20 cartridges.   (line  329)
21614* -digimaxbase:                          C64 I/O extension options.
21615                                                             (line   10)
21616* -digimaxbase <1>:                      VIC20 cartridges.   (line  334)
21617* -directory:                            Misc options.       (line   11)
21618* -displaydepth:                         GTK3 specific features.
21619                                                             (line  250)
21620* -doodlecrtctextcolor:                  C500 data module.   (line  105)
21621* -doodlemc:                             C500 data module.   (line   95)
21622* -doodleoversize:                       C500 data module.   (line   83)
21623* -doodletedlum:                         C500 data module.   (line  100)
21624* -doodleundersize:                      C500 data module.   (line   90)
21625* -dos1001:                              Drive options.      (line  162)
21626* -dos1540:                              Drive options.      (line  106)
21627* -dos1541:                              Drive options.      (line  110)
21628* -dos1541II:                            Drive options.      (line  114)
21629* -dos1551:                              Drive options.      (line  118)
21630* -dos1570:                              Drive options.      (line  122)
21631* -dos1571:                              Drive options.      (line  126)
21632* -dos1571cr:                            Drive options.      (line  130)
21633* -dos1581:                              Drive options.      (line  134)
21634* -dos2000:                              Drive options.      (line  138)
21635* -dos2031:                              Drive options.      (line  146)
21636* -dos2040:                              Drive options.      (line  150)
21637* -dos3040:                              Drive options.      (line  154)
21638* -dos4000:                              Drive options.      (line  142)
21639* -dos4040:                              Drive options.      (line  158)
21640* -dqbb, +dqbb:                          C64 cartridges.     (line  673)
21641* -dqbbimage:                            C64 cartridges.     (line  677)
21642* -dqbbimagerw, +dqbbimagerw:            C64 cartridges.     (line  680)
21643* -drive10extend:                        Drive options.      (line   84)
21644* -drive10idle:                          Drive options.      (line   75)
21645* -drive10profdos, +drive10profdos:      Drive options.      (line  256)
21646* -drive10ram2000, +drive10ram2000:      Drive options.      (line  174)
21647* -drive10ram4000, +drive10ram4000:      Drive options.      (line  190)
21648* -drive10ram6000, +drive10ram6000:      Drive options.      (line  206)
21649* -drive10ram8000, +drive10ram8000:      Drive options.      (line  222)
21650* -drive10rama000, +drive10rama000:      Drive options.      (line  238)
21651* -drive10rpm:                           Drive options.      (line   93)
21652* -drive10rtcsave, +drive10rtcsave:      Drive options.      (line   52)
21653* -drive10stardos, +drive10stardos:      Drive options.      (line  304)
21654* -drive10supercard, +drive10supercard:  Drive options.      (line  280)
21655* -drive10type:                          Drive options.      (line   21)
21656* -drive10wobble:                        Drive options.      (line  100)
21657* -drive11extend:                        Drive options.      (line   84)
21658* -drive11idle:                          Drive options.      (line   75)
21659* -drive11profdos, +drive11profdos:      Drive options.      (line  261)
21660* -drive11ram2000, +drive11ram2000:      Drive options.      (line  178)
21661* -drive11ram4000, +drive11ram4000:      Drive options.      (line  194)
21662* -drive11ram6000, +drive11ram6000:      Drive options.      (line  210)
21663* -drive11ram8000, +drive11ram8000:      Drive options.      (line  226)
21664* -drive11rama000, +drive11rama000:      Drive options.      (line  242)
21665* -drive11rpm:                           Drive options.      (line   93)
21666* -drive11rtcsave, +drive11rtcsave:      Drive options.      (line   58)
21667* -drive11stardos, +drive11stardos:      Drive options.      (line  309)
21668* -drive11supercard, +drive11supercard:  Drive options.      (line  285)
21669* -drive11type:                          Drive options.      (line   21)
21670* -drive11wobble:                        Drive options.      (line  100)
21671* -drive8extend:                         Drive options.      (line   84)
21672* -drive8idle:                           Drive options.      (line   75)
21673* -drive8profdos, +drive8profdos:        Drive options.      (line  246)
21674* -drive8ram2000, +drive8ram2000:        Drive options.      (line  166)
21675* -drive8ram4000, +drive8ram4000:        Drive options.      (line  182)
21676* -drive8ram6000, +drive8ram6000:        Drive options.      (line  198)
21677* -drive8ram8000, +drive8ram8000:        Drive options.      (line  214)
21678* -drive8rama000, +drive8rama000:        Drive options.      (line  230)
21679* -drive8rpm:                            Drive options.      (line   93)
21680* -drive8rtcsave, +drive8rtcsave:        Drive options.      (line   42)
21681* -drive8stardos, +drive8stardos:        Drive options.      (line  294)
21682* -drive8supercard, +drive8supercard:    Drive options.      (line  270)
21683* -drive8type:                           Drive options.      (line   21)
21684* -drive8wobble:                         Drive options.      (line  100)
21685* -drive9extend:                         Drive options.      (line   84)
21686* -drive9idle:                           Drive options.      (line   75)
21687* -drive9profdos, +drive9profdos:        Drive options.      (line  251)
21688* -drive9ram2000, +drive9ram2000:        Drive options.      (line  170)
21689* -drive9ram4000, +drive9ram4000:        Drive options.      (line  186)
21690* -drive9ram6000, +drive9ram6000:        Drive options.      (line  202)
21691* -drive9ram8000, +drive9ram8000:        Drive options.      (line  218)
21692* -drive9rama000, +drive9rama000:        Drive options.      (line  234)
21693* -drive9rpm:                            Drive options.      (line   93)
21694* -drive9rtcsave, +drive9rtcsave:        Drive options.      (line   47)
21695* -drive9stardos, +drive9stardos:        Drive options.      (line  299)
21696* -drive9supercard, +drive9supercard:    Drive options.      (line  275)
21697* -drive9type:                           Drive options.      (line   21)
21698* -drive9wobble:                         Drive options.      (line  100)
21699* -drivesound, +drivesound:              Drive options.      (line   11)
21700* -drivesoundvolume:                     Drive options.      (line   16)
21701* -ds12c887rtc, +ds12c887rtc:            C64 I/O extension options.
21702                                                             (line   16)
21703* -ds12c887rtc, +ds12c887rtc <1>:        VIC20 cartridges.   (line  339)
21704* -ds12c887rtcbase:                      C64 I/O extension options.
21705                                                             (line   21)
21706* -ds12c887rtcbase <1>:                  VIC20 cartridges.   (line  344)
21707* -ds12c887rtchalted, -ds12c887rtcrunning: C64 I/O extension options.
21708                                                             (line   26)
21709* -ds12c887rtchalted, -ds12c887rtcrunning <1>: VIC20 cartridges.
21710                                                             (line  348)
21711* -ds12c887rtcsave, +ds12c887rtcsave:    C64 I/O extension options.
21712                                                             (line   33)
21713* -ds12c887rtcsave, +ds12c887rtcsave <1>: VIC20 cartridges.  (line  355)
21714* -dsresetwithcpu, +dsresetwithcpu:      Sound options.      (line  100)
21715* -dsspeedtuning:                        Sound options.      (line  109)
21716* -dstapewobble:                         Sound options.      (line  113)
21717* -dszerogapdelay:                       Sound options.      (line  105)
21718* -dtlbasicdongle, +dtlbasicdongle:      RS232 usage.        (line   77)
21719* -dtvblitterlog, +dtvblitterlog:        Debug.              (line   10)
21720* -dtvdmalog, +dtvdmalog:                Debug.              (line   14)
21721* -dtvflashlog, +dtvflashlog:            Debug.              (line   18)
21722* -dtvrev:                               DTV revision.       (line   10)
21723* -dumpconfig:                           Command-line initialization.
21724                                                             (line   27)
21725* -easyflashcrtoptimize, +easyflashcrtoptimize: C64 cartridges.
21726                                                             (line  701)
21727* -easyflashcrtwrite, +easyflashcrtwrite: C64 cartridges.    (line  696)
21728* -easyflashjumper, +easyflashjumper:    C64 cartridges.     (line  691)
21729* -editor:                               PET system ROM.     (line   27)
21730* -eoiblank, +eoiblank:                  PET settings.       (line   79)
21731* -ethernetcart, +ethernetcart:          C64 I/O extension options.
21732                                                             (line  106)
21733* -ethernetcart, +ethernetcart <1>:      VIC20 cartridges.   (line  307)
21734* -ethernetcartbase:                     C64 I/O extension options.
21735                                                             (line  113)
21736* -ethernetcartbase <1>:                 VIC20 cartridges.   (line  314)
21737* -ethernetcartmode:                     C64 I/O extension options.
21738                                                             (line  110)
21739* -ethernetcartmode <1>:                 VIC20 cartridges.   (line  311)
21740* -eventendsnapshot:                     C500 data module.   (line  280)
21741* -eventimageinc, +eventimageinc:        C500 data module.   (line  289)
21742* -eventsnapshotdir:                     C500 data module.   (line  272)
21743* -eventstartmode:                       C500 data module.   (line  284)
21744* -eventstartsnapshot:                   C500 data module.   (line  276)
21745* -exitscreenshot:                       Command-line initialization.
21746                                                             (line   90)
21747* -exitscreenshotvicii:                  Command-line initialization.
21748                                                             (line   94)
21749* -expert, +expert:                      C64 cartridges.     (line  716)
21750* -expertimagename:                      C64 cartridges.     (line  721)
21751* -expertimagerw, +expertimagerw:        C64 cartridges.     (line  724)
21752* -expertmode:                           C64 cartridges.     (line  729)
21753* -extfrom:                              C128-specific.      (line  328)
21754* -extfunc:                              C128-specific.      (line  324)
21755* -extfuncrtcsave, +extfuncrtcsave:      C128-specific.      (line  332)
21756* -extrajoydev1:                         Control port options.
21757                                                             (line  138)
21758* -extrajoydev1 <1>:                     SDL-specific features.
21759                                                             (line  354)
21760* -extrajoydev1 <2>:                     GTK3 specific features.
21761                                                             (line  318)
21762* -extrajoydev2:                         Control port options.
21763                                                             (line  138)
21764* -extrajoydev2 <1>:                     SDL-specific features.
21765                                                             (line  360)
21766* -extrajoydev2 <2>:                     GTK3 specific features.
21767                                                             (line  326)
21768* -extrajoydev3:                         Control port options.
21769                                                             (line  138)
21770* -f:                                    c1541 executing shell commands.
21771                                                             (line   56)
21772* -f <1>:                                c1541 executing shell commands.
21773                                                             (line  286)
21774* -features:                             Command-line initialization.
21775                                                             (line   16)
21776* -fewriteback, +fewriteback:            VIC20 cartridges.   (line  252)
21777* -ffmpegaudiobitrate:                   C500 data module.   (line  130)
21778* -ffmpegvideobitrate:                   C500 data module.   (line  131)
21779* -flipname:                             File system device options.
21780                                                             (line  111)
21781* -fourcc:                               GTK3 specific features.
21782                                                             (line  254)
21783* -fpwriteback, +fpwriteback:            VIC20 cartridges.   (line  260)
21784* -fs10:                                 File system device options.
21785                                                             (line   35)
21786* -fs10convertp00, +fs10convertp00:      File system device options.
21787                                                             (line   55)
21788* -fs10hidecbm, +fs10hidecbm:            File system device options.
21789                                                             (line   99)
21790* -fs10savep00, +fs10savep00:            File system device options.
21791                                                             (line   77)
21792* -fs11:                                 File system device options.
21793                                                             (line   35)
21794* -fs11convertp00, +fs11convertp00:      File system device options.
21795                                                             (line   61)
21796* -fs11hidecbm, +fs11hidecbm:            File system device options.
21797                                                             (line  105)
21798* -fs11savep00, +fs11savep00:            File system device options.
21799                                                             (line   82)
21800* -fs8:                                  File system device options.
21801                                                             (line   35)
21802* -fs8convertp00,+fs8convertp00:         File system device options.
21803                                                             (line   43)
21804* -fs8hidecbm, +fs8hidecbm:              File system device options.
21805                                                             (line   87)
21806* -fs8savep00, +fs8savep00:              File system device options.
21807                                                             (line   67)
21808* -fs9:                                  File system device options.
21809                                                             (line   35)
21810* -fs9convertp00, +fs9convertp00:        File system device options.
21811                                                             (line   49)
21812* -fs9hidecbm, +fs9hidecbm:              File system device options.
21813                                                             (line   93)
21814* -fs9savep00, +fs9savep00:              File system device options.
21815                                                             (line   72)
21816* -fsflash:                              C64DTV ROM image.   (line   45)
21817* -fullscreen, +fullscreen:              GTK3 specific features.
21818                                                             (line  257)
21819* -functionhi:                           PLUS4-specific.     (line  260)
21820* -functionlo:                           PLUS4-specific.     (line  257)
21821* -georam, +georam:                      C64 I/O extension options.
21822                                                             (line   51)
21823* -georam, +georam <1>:                  VIC20 cartridges.   (line  395)
21824* -georamimage:                          C64 I/O extension options.
21825                                                             (line   58)
21826* -georamimage <1>:                      VIC20 cartridges.   (line  400)
21827* -georamimagerw, +georamimagerw:        C64 I/O extension options.
21828                                                             (line   61)
21829* -georamimagerw, +georamimagerw <1>:    VIC20 cartridges.   (line  403)
21830* -georamioswap, +georamioswap:          VIC20 cartridges.   (line  388)
21831* -georamsize:                           C64 I/O extension options.
21832                                                             (line   66)
21833* -georamsize <1>:                       VIC20 cartridges.   (line  408)
21834* -gluelogictype:                        C64 system ROM options.
21835                                                             (line   92)
21836* -gluelogictype <1>:                    SCPU64-specific.    (line   90)
21837* -gmod2eepromimage:                     C64 cartridges.     (line  757)
21838* -gmod2eepromrw, +gmod2eepromrw:        C64 cartridges.     (line  760)
21839* -gmod2flashwrite, +gmod2flashwrite:    C64 cartridges.     (line  765)
21840* -go64, +go64:                          C128-specific.      (line  372)
21841* -h:                                    c1541 executing shell commands.
21842                                                             (line  266)
21843* -help:                                 Command-line initialization.
21844                                                             (line   12)
21845* -help <1>:                             c1541 executing shell commands.
21846                                                             (line  247)
21847* -hotkeyfile:                           SDL-specific features.
21848                                                             (line  253)
21849* -hummeradc, +hummeradc:                Userport.           (line   20)
21850* -hwscalepossible, +hwscalepossible:    Video resources.    (line   32)
21851* -i:                                    c1541 executing shell commands.
21852                                                             (line   39)
21853* -ic:                                   c1541 executing shell commands.
21854                                                             (line  262)
21855* -IDE64autosize1, +IDE64autosize1:      C64 cartridges.     (line  810)
21856* -IDE64autosize2, +IDE64autosize2:      C64 cartridges.     (line  816)
21857* -IDE64autosize3, +IDE64autosize3:      C64 cartridges.     (line  822)
21858* -IDE64autosize4, +IDE64autosize4:      C64 cartridges.     (line  828)
21859* -ide64clockportdevice:                 C64 cartridges.     (line  849)
21860* -IDE64cyl1:                            C64 cartridges.     (line  786)
21861* -IDE64cyl2:                            C64 cartridges.     (line  787)
21862* -IDE64cyl3:                            C64 cartridges.     (line  788)
21863* -IDE64cyl4:                            C64 cartridges.     (line  789)
21864* -IDE64hds1:                            C64 cartridges.     (line  794)
21865* -IDE64hds2:                            C64 cartridges.     (line  795)
21866* -IDE64hds3:                            C64 cartridges.     (line  796)
21867* -IDE64hds4:                            C64 cartridges.     (line  797)
21868* -IDE64image1:                          C64 cartridges.     (line  779)
21869* -IDE64image2:                          C64 cartridges.     (line  780)
21870* -IDE64image3:                          C64 cartridges.     (line  781)
21871* -IDE64image4:                          C64 cartridges.     (line  782)
21872* -IDE64rtcsave, +IDE64rtcsave:          C64 cartridges.     (line  844)
21873* -IDE64sec1:                            C64 cartridges.     (line  802)
21874* -IDE64sec2:                            C64 cartridges.     (line  803)
21875* -IDE64sec3:                            C64 cartridges.     (line  804)
21876* -IDE64sec4:                            C64 cartridges.     (line  805)
21877* -IDE64USB, +IDE64USB:                  C64 cartridges.     (line  838)
21878* -IDE64USBAddress:                      C64 cartridges.     (line  840)
21879* -IDE64version:                         C64 cartridges.     (line  834)
21880* -iecdevice10, +iecdevice10:            File system device options.
21881                                                             (line   16)
21882* -iecdevice11, +iecdevice11:            File system device options.
21883                                                             (line   21)
21884* -iecdevice4, +iecdevice4:              Printer options.    (line    6)
21885* -iecdevice5, +iecdevice5:              Printer options.    (line   11)
21886* -iecdevice6, +iecdevice6:              Printer options.    (line   16)
21887* -iecdevice7, +iecdevice7:              Printer options.    (line   21)
21888* -iecdevice8, +iecdevice8:              File system device options.
21889                                                             (line    6)
21890* -iecdevice9, +iecdevice9:              File system device options.
21891                                                             (line   11)
21892* -iecreset:                             C64 system ROM options.
21893                                                             (line   95)
21894* -iecreset <1>:                         SCPU64-specific.    (line   69)
21895* -ieee488, +ieee488:                    C64 cartridges.     (line  872)
21896* -ieee488, +ieee488 <1>:                VIC20 cartridges.   (line  283)
21897* -ieee488image:                         C64 cartridges.     (line  875)
21898* -initbreak:                            Monitor options.    (line   32)
21899* -intfrom:                              C128-specific.      (line  314)
21900* -intfunc:                              C128-specific.      (line  310)
21901* -intfuncrtcsave, +intfuncrtcsave:      C128-specific.      (line  318)
21902* -io2ram, +io2ram:                      VIC20 cartridges.   (line  273)
21903* -io3ram, +io3ram:                      VIC20 cartridges.   (line  278)
21904* -iocollision:                          C64 cartridges.     (line  607)
21905* -iocollision <1>:                      VIC20 cartridges.   (line  211)
21906* -iosize:                               PET settings.       (line   36)
21907* -isepic, +isepic:                      C64 cartridges.     (line  879)
21908* -isepicimagename:                      C64 cartridges.     (line  892)
21909* -isepicimagerw, +isepicimagerw:        C64 cartridges.     (line  895)
21910* -isepicswitch, +isepicswitch:          C64 cartridges.     (line  884)
21911* -jamaction:                            Misc options.       (line    6)
21912* -jiffyswitch, +jiffyswitch:            SCPU64-specific.    (line   82)
21913* -joydev1:                              Control port options.
21914                                                             (line  134)
21915* -joydev1 <1>:                          SDL-specific features.
21916                                                             (line  342)
21917* -joydev1 <2>:                          GTK3 specific features.
21918                                                             (line  302)
21919* -joydev2:                              Control port options.
21920                                                             (line  134)
21921* -joydev2 <1>:                          SDL-specific features.
21922                                                             (line  348)
21923* -joydev2 <2>:                          GTK3 specific features.
21924                                                             (line  310)
21925* -joyfuzz:                              SDL-specific features.
21926                                                             (line  482)
21927* -joymap:                               SDL-specific features.
21928                                                             (line  476)
21929* -joyopposite, +joyopposite:            Control port options.
21930                                                             (line  144)
21931* -joythreshold:                         SDL-specific features.
21932                                                             (line  479)
21933* -k:                                    c1541 executing shell commands.
21934                                                             (line  280)
21935* -k<version>:                           c1541 executing shell commands.
21936                                                             (line  278)
21937* -kbdstatusbar, +kbdstatusbar:          SDL-specific features.
21938                                                             (line  330)
21939* -keepaspect, +keepaspect:              GTK3 specific features.
21940                                                             (line  233)
21941* -keepenv:                              VSID-specific.      (line   58)
21942* -keepmonopen, +keepmonopen:            Monitor options.    (line   36)
21943* -kernal:                               C64 system ROM options.
21944                                                             (line   13)
21945* -kernal <1>:                           C128-specific.      (line  262)
21946* -kernal <2>:                           Monitor DTV features.
21947                                                             (line   79)
21948* -kernal <3>:                           VIC20 system ROM options.
21949                                                             (line    6)
21950* -kernal <4>:                           PET system ROM.     (line   21)
21951* -kernal <5>:                           CBM-II model.       (line  117)
21952* -kernal <6>:                           VSID-specific.      (line   68)
21953* -kernal <Name>:                        PLUS4-specific.     (line  251)
21954* -kernal64:                             C128-specific.      (line  253)
21955* -kernalch:                             C128-specific.      (line  283)
21956* -kernalde:                             C128-specific.      (line  265)
21957* -kernalfi:                             C128-specific.      (line  268)
21958* -kernalfr:                             C128-specific.      (line  271)
21959* -kernalit:                             C128-specific.      (line  274)
21960* -kernalno:                             C128-specific.      (line  277)
21961* -kernalrev:                            C64 system ROM options.
21962                                                             (line   16)
21963* -kernalse:                             C128-specific.      (line  280)
21964* -keyboardmapping:                      Keyboard options.   (line   18)
21965* -keyboardtype:                         Keyboard options.   (line   23)
21966* -keybuf:                               Command-line initialization.
21967                                                             (line   45)
21968* -keybuf-delay:                         Control port options.
21969                                                             (line  174)
21970* -keymap:                               Keyboard options.   (line    6)
21971* -keyset, +keyset:                      Control port options.
21972                                                             (line  169)
21973* -koalacrtctextcolor:                   C500 data module.   (line  126)
21974* -koalaoversize:                        C500 data module.   (line  109)
21975* -koalatedlum:                          C500 data module.   (line  121)
21976* -koalaundersize:                       C500 data module.   (line  116)
21977* -l:                                    c1541 executing shell commands.
21978                                                             (line   52)
21979* -l <1>:                                c1541 executing shell commands.
21980                                                             (line  282)
21981* -limitcycles:                          Command-line initialization.
21982                                                             (line   52)
21983* -logfile:                              Command-line initialization.
21984                                                             (line   33)
21985* -machinetype:                          C128-specific.      (line  393)
21986* -magicvoice, +magicvoice:              C64 cartridges.     (line 1006)
21987* -magicvoiceimage:                      C64 cartridges.     (line 1002)
21988* -mcnvramfile:                          VIC20 cartridges.   (line  241)
21989* -mcnvramwriteback, +mcnvramwriteback:  VIC20 cartridges.   (line  244)
21990* -memory:                               VIC20 memconf options.
21991                                                             (line    6)
21992* -memoryexphack:                        C64 system ROM options.
21993                                                             (line   99)
21994* -memoryexphack <1>:                    PLUS4-specific.     (line  314)
21995* -menukey:                              SDL-specific features.
21996                                                             (line  257)
21997* -menukeycancel:                        SDL-specific features.
21998                                                             (line  291)
21999* -menukeydown:                          SDL-specific features.
22000                                                             (line  263)
22001* -menukeyend:                           SDL-specific features.
22002                                                             (line  284)
22003* -menukeyexit:                          SDL-specific features.
22004                                                             (line  295)
22005* -menukeyhome:                          SDL-specific features.
22006                                                             (line  281)
22007* -menukeyleft:                          SDL-specific features.
22008                                                             (line  266)
22009* -menukeymap:                           SDL-specific features.
22010                                                             (line  298)
22011* -menukeypagedown:                      SDL-specific features.
22012                                                             (line  277)
22013* -menukeypageup:                        SDL-specific features.
22014                                                             (line  273)
22015* -menukeyright:                         SDL-specific features.
22016                                                             (line  269)
22017* -menukeyselect:                        SDL-specific features.
22018                                                             (line  287)
22019* -menukeyup:                            SDL-specific features.
22020                                                             (line  260)
22021* -midi, +midi:                          C64 I/O extension options.
22022                                                             (line   44)
22023* -mididrv:                              GTK3 specific features.
22024                                                             (line  362)
22025* -midiin:                               GTK3 specific features.
22026                                                             (line  351)
22027* -midiout:                              GTK3 specific features.
22028                                                             (line  355)
22029* -miditype:                             C64 I/O extension options.
22030                                                             (line   38)
22031* -minimized, +minimized:                GTK3 specific features.
22032                                                             (line  225)
22033* -mmc64, +mmc64:                        C64 cartridges.     (line  918)
22034* -mmc64bios:                            C64 cartridges.     (line  925)
22035* -mmc64biosreadonly:                    C64 cartridges.     (line  945)
22036* -mmc64bioswrite:                       C64 cartridges.     (line  942)
22037* -mmc64clockportdevice:                 C64 cartridges.     (line  956)
22038* -mmc64flash, +mmc64flash:              C64 cartridges.     (line  937)
22039* -mmc64image:                           C64 cartridges.     (line  928)
22040* -mmc64readonly:                        C64 cartridges.     (line  931)
22041* -mmc64readwrite:                       C64 cartridges.     (line  934)
22042* -mmc64rev:                             C64 cartridges.     (line  948)
22043* -mmc64sdtype:                          C64 cartridges.     (line  952)
22044* -mmcrcardimage:                        C64 cartridges.     (line  978)
22045* -mmcrcardrw, +mmcrcardrw:              C64 cartridges.     (line  981)
22046* -mmcrclockportdevice:                  C64 cartridges.     (line  994)
22047* -mmcreepromimage:                      C64 cartridges.     (line  986)
22048* -mmcreepromrw, +mmcreepromrw:          C64 cartridges.     (line  989)
22049* -mmcrimagerw, +mmcrimagerw:            C64 cartridges.     (line  969)
22050* -mmcrrescue, +mmcrrescue:              C64 cartridges.     (line  964)
22051* -mmcrsdtype:                           C64 cartridges.     (line  974)
22052* -model:                                C64 system ROM options.
22053                                                             (line  132)
22054* -model <1>:                            C128-specific.      (line  383)
22055* -model <2>:                            Monitor DTV features.
22056                                                             (line   65)
22057* -model <3>:                            SCPU64-specific.    (line   51)
22058* -model <4>:                            VIC20 cartridges.   (line  412)
22059* -model <5>:                            PLUS4-specific.     (line  298)
22060* -model <6>:                            PET settings.       (line   28)
22061* -model <7>:                            CBM-II commandline options.
22062                                                             (line   48)
22063* -moncommands:                          Monitor options.    (line   26)
22064* -monlog:                               Command-line initialization.
22065                                                             (line   36)
22066* -mouse, +mouse:                        Control port options.
22067                                                             (line  160)
22068* -myaciadev:                            RS232 options.      (line   20)
22069* -n:                                    c1541 executing shell commands.
22070                                                             (line   49)
22071* -nativemonitor, +nativemonitor:        Monitor options.    (line   48)
22072* -nc:                                   c1541 executing shell commands.
22073                                                             (line  256)
22074* -netplaybind:                          Monitor options.    (line  215)
22075* -netplayctrl:                          Monitor options.    (line  221)
22076* -netplayport:                          Monitor options.    (line  218)
22077* -netplayserver:                        Monitor options.    (line  212)
22078* -nh:                                   c1541 executing shell commands.
22079                                                             (line  268)
22080* -ntsc:                                 C64 system ROM options.
22081                                                             (line  123)
22082* -ntsc <1>:                             C128-specific.      (line  380)
22083* -ntsc <2>:                             Monitor DTV features.
22084                                                             (line   72)
22085* -ntsc <3>:                             SCPU64-specific.    (line   60)
22086* -ntsc <4>:                             VIC20 cartridges.   (line  420)
22087* -ntsc <5>:                             PLUS4-specific.     (line  308)
22088* -ntsc <6>:                             PET settings.       (line   25)
22089* -ntsc <7>:                             CBM-II commandline options.
22090                                                             (line   11)
22091* -ntsc <8>:                             VSID-specific.      (line   77)
22092* -ntscold:                              C64 system ROM options.
22093                                                             (line  126)
22094* -ntscold <1>:                          SCPU64-specific.    (line   63)
22095* -ntscold <2>:                          VSID-specific.      (line   80)
22096* -o:                                    c1541 executing shell commands.
22097                                                             (line   43)
22098* -o <name>:                             c1541 executing shell commands.
22099                                                             (line  284)
22100* -p:                                    c1541 executing shell commands.
22101                                                             (line   63)
22102* -pal:                                  C64 system ROM options.
22103                                                             (line  120)
22104* -pal <1>:                              C128-specific.      (line  377)
22105* -pal <2>:                              Monitor DTV features.
22106                                                             (line   69)
22107* -pal <3>:                              SCPU64-specific.    (line   57)
22108* -pal <4>:                              VIC20 cartridges.   (line  417)
22109* -pal <5>:                              PLUS4-specific.     (line  305)
22110* -pal <6>:                              PET settings.       (line   22)
22111* -pal <7>:                              CBM-II commandline options.
22112                                                             (line    8)
22113* -pal <8>:                              VSID-specific.      (line   74)
22114* -paln:                                 C64 system ROM options.
22115                                                             (line  129)
22116* -paln <1>:                             SCPU64-specific.    (line   66)
22117* -paln <2>:                             VSID-specific.      (line   83)
22118* -parallel10:                           Drive options.      (line   64)
22119* -parallel11:                           Drive options.      (line   64)
22120* -parallel8:                            Drive options.      (line   64)
22121* -parallel9:                            Drive options.      (line   64)
22122* -petdww, +petdww:                      PET I/O extensions. (line   70)
22123* -petdwwimage:                          PET I/O extensions. (line   75)
22124* -pethre, +pethre:                      PET I/O extensions. (line   78)
22125* -petram9, +petram9:                    PET settings.       (line   46)
22126* -petramA, +petramA:                    PET settings.       (line   51)
22127* -petreu, +petreu:                      PET I/O extensions. (line   53)
22128* -petreuimage:                          PET I/O extensions. (line   58)
22129* -petreuramsize:                        PET I/O extensions. (line   62)
22130* -playback:                             C500 data module.   (line  269)
22131* -plus256kimage:                        C64 system ROM options.
22132                                                             (line  110)
22133* -plus60kbase:                          C64 system ROM options.
22134                                                             (line  106)
22135* -plus60kimage:                         C64 system ROM options.
22136                                                             (line  103)
22137* -poskeymap:                            Keyboard options.   (line   14)
22138* -pr4drv:                               Printer options.    (line   65)
22139* -pr4output:                            Printer options.    (line   53)
22140* -pr4txtdev:                            Printer options.    (line   47)
22141* -pr5drv:                               Printer options.    (line   69)
22142* -pr5output:                            Printer options.    (line   57)
22143* -pr5txtdev:                            Printer options.    (line   47)
22144* -pr6drv:                               Printer options.    (line   73)
22145* -pr6output:                            Printer options.    (line   61)
22146* -pr6txtdev:                            Printer options.    (line   47)
22147* -profdos1571:                          Drive options.      (line  266)
22148* -prtxtdev1:                            Printer options.    (line   41)
22149* -prtxtdev2:                            Printer options.    (line   41)
22150* -prtxtdev3:                            Printer options.    (line   41)
22151* -pruser, +pruser:                      Printer options.    (line   77)
22152* -pruserdrv:                            Printer options.    (line   90)
22153* -pruseroutput:                         Printer options.    (line   86)
22154* -prusertxtdev:                         Printer options.    (line   82)
22155* -ps2mouse, +ps2mouse:                  Userport.           (line   24)
22156* -q:                                    c1541 executing shell commands.
22157                                                             (line   70)
22158* -qc:                                   c1541 executing shell commands.
22159                                                             (line  259)
22160* -r:                                    c1541 executing shell commands.
22161                                                             (line   60)
22162* -ram08, +ram08:                        CBM-II commandline options.
22163                                                             (line   18)
22164* -ram1, +ram1:                          CBM-II commandline options.
22165                                                             (line   23)
22166* -ram2, +ram2:                          CBM-II commandline options.
22167                                                             (line   28)
22168* -ram4, +ram4:                          CBM-II commandline options.
22169                                                             (line   33)
22170* -ram6, +ram6:                          CBM-II commandline options.
22171                                                             (line   38)
22172* -ramC, +ramC:                          CBM-II commandline options.
22173                                                             (line   43)
22174* -ramcart, +ramcart:                    C64 cartridges.     (line 1023)
22175* -ramcartimage:                         C64 cartridges.     (line 1030)
22176* -ramcartimagerw, +ramcartimagerw:      C64 cartridges.     (line 1033)
22177* -ramcartro:                            C64 cartridges.     (line 1038)
22178* -ramcartrw:                            C64 cartridges.     (line 1041)
22179* -ramcartsize:                          C64 cartridges.     (line 1027)
22180* -raminitpatterninvert:                 Monitor options.    (line   82)
22181* -raminitstartvalue:                    Monitor options.    (line   74)
22182* -raminitvalueinvert:                   Monitor options.    (line   78)
22183* -ramsize:                              PLUS4-specific.     (line  311)
22184* -ramsize <1>:                          PET settings.       (line   39)
22185* -ramsize <2>:                          CBM-II commandline options.
22186                                                             (line   14)
22187* -rawdrive:                             Drive options.      (line  319)
22188* -refresh:                              Performance options.
22189                                                             (line   10)
22190* -remotemonitor, +remotemonitor:        Monitor options.    (line   41)
22191* -remotemonitoraddress:                 Monitor options.    (line   45)
22192* -residfilterbias:                      SID options.        (line   84)
22193* -residgain:                            SID options.        (line   81)
22194* -residpass:                            SID options.        (line   77)
22195* -residsamp:                            SID options.        (line   72)
22196* -reu, +reu:                            C64 I/O extension options.
22197                                                             (line   70)
22198* -reuimage:                             C64 I/O extension options.
22199                                                             (line   78)
22200* -reuimagerw, +reuimagerw:              C64 I/O extension options.
22201                                                             (line   81)
22202* -reusize:                              C64 I/O extension options.
22203                                                             (line   86)
22204* -rom9:                                 PET system ROM.     (line   34)
22205* -romA:                                 PET system ROM.     (line   38)
22206* -romB:                                 PET system ROM.     (line   42)
22207* -romsetarchive:                        Romset files.       (line   36)
22208* -romsetarchiveselect:                  Romset files.       (line   39)
22209* -romsetfile:                           Romset files.       (line   33)
22210* -rrbankjumper, +rrbankjumper:          C64 cartridges.     (line 1064)
22211* -rrbioswrite, +rrbioswrite:            C64 cartridges.     (line 1059)
22212* -rrclockportdevice:                    C64 cartridges.     (line 1076)
22213* -rrflashjumper, +rrflashjumper:        C64 cartridges.     (line 1068)
22214* -rrnet:                                C64 I/O extension options.
22215                                                             (line  124)
22216* -rrnet <1>:                            VIC20 cartridges.   (line  325)
22217* -rrnetmk3bioswrite, +rrnetmk3bioswrite: C64 cartridges.    (line 1085)
22218* -rrnetmk3flash,+rrnetmk3flash:         C64 cartridges.     (line 1080)
22219* -rrrev:                                C64 cartridges.     (line 1072)
22220* -rsdev1:                               RS232 options.      (line    6)
22221* -rsdev1baud:                           GTK3 specific features.
22222                                                             (line  369)
22223* -rsdev2:                               RS232 options.      (line    7)
22224* -rsdev2baud:                           GTK3 specific features.
22225                                                             (line  370)
22226* -rsdev3:                               RS232 options.      (line    8)
22227* -rsdev3baud:                           GTK3 specific features.
22228                                                             (line  371)
22229* -rsdev4:                               RS232 options.      (line    9)
22230* -rsdev4baud:                           GTK3 specific features.
22231                                                             (line  372)
22232* -rsuser, +rsuser:                      RS232 options.      (line   41)
22233* -rsuserbaud:                           RS232 options.      (line   46)
22234* -rsuserdev:                            RS232 options.      (line   49)
22235* -samplename:                           Sound options.      (line   62)
22236* -samplerdev:                           Sound options.      (line   54)
22237* -samplergain:                          Sound options.      (line   58)
22238* -saveres, +saveres:                    SDL-specific features.
22239                                                             (line  301)
22240* -saveres, +saveres <1>:                GTK3 specific features.
22241                                                             (line  220)
22242* -sbdigimax, +sbdigimax:                C64 cartridges.     (line  853)
22243* -sbdigimaxbase:                        C64 cartridges.     (line  857)
22244* -sbetfe, +sbetfe:                      C64 cartridges.     (line  861)
22245* -sbetfebase:                           C64 cartridges.     (line  865)
22246* -scpu64:                               SCPU64-specific.    (line   48)
22247* -sdl2renderer:                         SDL-specific features.
22248                                                             (line  339)
22249* -sdlaspectmode:                        SDL-specific features.
22250                                                             (line  458)
22251* -sdlbitdepth:                          SDL-specific features.
22252                                                             (line  316)
22253* -sdlcustomh:                           SDL-specific features.
22254                                                             (line  327)
22255* -sdlcustomw:                           SDL-specific features.
22256                                                             (line  324)
22257* -sdlflipx, +sdlflipx:                  SDL-specific features.
22258                                                             (line  462)
22259* -sdlflipy, +sdlflipy:                  SDL-specific features.
22260                                                             (line  467)
22261* -sdlglfilter:                          SDL-specific features.
22262                                                             (line  335)
22263* -sdllimitmode:                         SDL-specific features.
22264                                                             (line  320)
22265* -sfxse, +sfxse:                        C64 I/O extension options.
22266                                                             (line   90)
22267* -sfxse, +sfxse <1>:                    VIC20 cartridges.   (line  360)
22268* -sfxseioswap, +sfxseioswap:            VIC20 cartridges.   (line  369)
22269* -sfxsetype:                            C64 I/O extension options.
22270                                                             (line   95)
22271* -sfxsetype <1>:                        VIC20 cartridges.   (line  366)
22272* -sfxss, +sfxss:                        C64 I/O extension options.
22273                                                             (line   98)
22274* -sfxss, +sfxss <1>:                    VIC20 cartridges.   (line  383)
22275* -sfxssioswap, +sfxssioswap:            VIC20 cartridges.   (line  376)
22276* -sidcart, +sidcart:                    VIC20 cartridges.   (line  292)
22277* -sidcart, +sidcart <1>:                PLUS4-specific.     (line  193)
22278* -sidcart, +sidcart <2>:                PET I/O extensions. (line   92)
22279* -sidcartaddress:                       VIC20 cartridges.   (line  296)
22280* -sidcartaddress <1>:                   PLUS4-specific.     (line  202)
22281* -sidcartaddress <2>:                   PET I/O extensions. (line   96)
22282* -sidcartclock:                         VIC20 cartridges.   (line  300)
22283* -sidcartclock <1>:                     PLUS4-specific.     (line  206)
22284* -sidcartclock <2>:                     PET I/O extensions. (line  100)
22285* -sidcartjoy, +sidcartjoy:              PLUS4-specific.     (line  197)
22286* -sidenginemodel:                       SID options.        (line   55)
22287* -sidfilters, +sidfilters:              SID options.        (line   67)
22288* -sidquadaddress:                       SID options.        (line   40)
22289* -sidstereo:                            SID options.        (line    6)
22290* -sidstereoaddress:                     SID options.        (line   10)
22291* -sidtripleaddress:                     SID options.        (line   25)
22292* -silent:                               Command-line initialization.
22293                                                             (line   42)
22294* -simmsize:                             SCPU64-specific.    (line   79)
22295* -skip <n>:                             c1541 executing shell commands.
22296                                                             (line  270)
22297* -smartmousertcsave, +smartmousertcsave: Control port options.
22298                                                             (line  164)
22299* -sound, +sound:                        Sound options.      (line    6)
22300* -soundarg:                             Sound options.      (line   35)
22301* -soundbufsize:                         Sound options.      (line   22)
22302* -sounddev:                             Sound options.      (line   30)
22303* -soundfragsize:                        Sound options.      (line   26)
22304* -soundoutput:                          Sound options.      (line   18)
22305* -soundrate:                            Sound options.      (line   14)
22306* -soundrecarg:                          Sound options.      (line   43)
22307* -soundrecdev:                          Sound options.      (line   39)
22308* -soundsuspend:                         Sound options.      (line   47)
22309* -soundsync:                            Sound options.      (line   10)
22310* -soundvolume:                          Sound options.      (line   51)
22311* -speech, +speech:                      PLUS4-specific.     (line  210)
22312* -speechrom:                            PLUS4-specific.     (line  215)
22313* -speed:                                Performance options.
22314                                                             (line    6)
22315* -speedswitch, +speedswitch:            SCPU64-specific.    (line   86)
22316* -ssramexpansion, +ssramexpansion:      C64 cartridges.     (line 1117)
22317* -stardos:                              Drive options.      (line  314)
22318* -statusbar, +statusbar:                SDL-specific features.
22319                                                             (line  311)
22320* -supercard:                            Drive options.      (line  290)
22321* -superpet, +superpet:                  PET settings.       (line   56)
22322* -symkeymap:                            Keyboard options.   (line   10)
22323* -t:                                    c1541 executing shell commands.
22324                                                             (line   46)
22325* -tapecart, +tapecart:                  C64 system ROM options.
22326                                                             (line  142)
22327* -tapecartloglevel:                     C64 system ROM options.
22328                                                             (line  162)
22329* -tapecartoptimizetcrt, +tapecartoptimizetcrt: C64 system ROM options.
22330                                                             (line  156)
22331* -tapecartupdatetcrt, +tapecartupdatetcrt: C64 system ROM options.
22332                                                             (line  150)
22333* -tapelog, +tapelog:                    Monitor options.    (line  143)
22334* -tapelogimage:                         Monitor options.    (line  153)
22335* -tapelogtofile:                        Monitor options.    (line  147)
22336* -tapelogtolog:                         Monitor options.    (line  150)
22337* -tapesensedongle, +tapesensedongle:    RS232 usage.        (line   72)
22338* -tcrt:                                 C64 system ROM options.
22339                                                             (line  147)
22340* -TEDaudioleak, +TEDaudioleak:          PLUS4-specific.     (line  137)
22341* -TEDborders:                           PLUS4-specific.     (line  102)
22342* -TEDbrightness:                        PLUS4-specific.     (line  113)
22343* -TEDcontrast:                          PLUS4-specific.     (line  110)
22344* -TEDcrtblur:                           PLUS4-specific.     (line  130)
22345* -TEDcrtscanlineshade:                  PLUS4-specific.     (line  133)
22346* -TEDdscan, +TEDdscan:                  PLUS4-specific.     (line   85)
22347* -TEDdsize, +TEDdsize:                  PLUS4-specific.     (line   81)
22348* -TEDextpal:                            PLUS4-specific.     (line   96)
22349* -TEDfilter:                            PLUS4-specific.     (line   89)
22350* -TEDfull, +TEDfull:                    SDL-specific features.
22351                                                             (line  395)
22352* -TEDfulldevice:                        SDL-specific features.
22353                                                             (line  392)
22354* -TEDfulldevice <1>:                    GTK3 specific features.
22355                                                             (line  276)
22356* -TEDgamma:                             PLUS4-specific.     (line  117)
22357* -TEDhwscale, +TEDhwscale:              SDL-specific features.
22358                                                             (line  387)
22359* -TEDhwscale, +TEDhwscale <1>:          GTK3 specific features.
22360                                                             (line  271)
22361* -TEDintpal:                            PLUS4-specific.     (line   93)
22362* -TEDoddlinesoffset:                    PLUS4-specific.     (line  126)
22363* -TEDoddlinesphase:                     PLUS4-specific.     (line  123)
22364* -TEDpalette:                           PLUS4-specific.     (line   99)
22365* -TEDsaturation:                        PLUS4-specific.     (line  106)
22366* -TEDSDLfullmode:                       SDL-specific features.
22367                                                             (line  384)
22368* -TEDtint:                              PLUS4-specific.     (line  120)
22369* -TEDvcache, +TEDvcache:                PLUS4-specific.     (line   76)
22370* -text:                                 c1541 executing shell commands.
22371                                                             (line  272)
22372* -tfe:                                  C64 I/O extension options.
22373                                                             (line  120)
22374* -tfe <1>:                              VIC20 cartridges.   (line  321)
22375* -trace_drive0, +trace_drive0:          Monitor options.    (line  164)
22376* -trace_drive1, +trace_drive1:          Monitor options.    (line  169)
22377* -trace_drive2, +trace_drive2:          Monitor options.    (line  174)
22378* -trace_drive3, +trace_drive3:          Monitor options.    (line  179)
22379* -trace_maincpu, +trace_maincpu:        Monitor options.    (line  159)
22380* -trace_mode:                           Monitor options.    (line  184)
22381* -trueaspect, +trueaspect:              GTK3 specific features.
22382                                                             (line  240)
22383* -truedrive, +truedrive:                Drive options.      (line    6)
22384* -trueflashfs, +trueflashfs:            C64DTV ROM image.   (line   40)
22385* -tune:                                 VSID-specific.      (line   62)
22386* -ultimem:                              VIC20 cartridges.   (line  265)
22387* -umwriteback, +umwriteback:            VIC20 cartridges.   (line  268)
22388* -userport4bitsampler, +userport4bitsampler: RS232 usage.   (line  134)
22389* -userport8bss, +userport8bss:          RS232 usage.        (line  139)
22390* -userportcollision:                    RS232 usage.        (line  123)
22391* -userportdac, +userportdac:            PLUS4-specific.     (line  322)
22392* -userportdac, +userportdac <1>:        PET I/O extensions. (line   66)
22393* -userportdigimax, +userportdigimax:    RS232 usage.        (line  129)
22394* -userportjoy, +userportjoy:            Control port options.
22395                                                             (line  149)
22396* -userportjoytype:                      Control port options.
22397                                                             (line  154)
22398* -userportrtc58321a, +userportrtc58321a: RS232 usage.       (line  144)
22399* -userportrtc58321asave, +userportrtc58321asave: RS232 usage.
22400                                                             (line  150)
22401* -userportrtcds1307, +userportrtcds1307: RS232 usage.       (line  156)
22402* -userportrtcds1307save, +userportrtcds1307save: RS232 usage.
22403                                                             (line  162)
22404* -v:                                    c1541 executing shell commands.
22405                                                             (line  252)
22406* -VDC16KB:                              C128-specific.      (line  109)
22407* -VDC64KB:                              C128-specific.      (line  112)
22408* -VDCaudioleak, +VDCaudioleak:          C128-specific.      (line  149)
22409* -VDCbrightness:                        C128-specific.      (line  125)
22410* -VDCcontrast:                          C128-specific.      (line  122)
22411* -VDCcrtblur:                           C128-specific.      (line  142)
22412* -VDCcrtscanlineshade:                  C128-specific.      (line  145)
22413* -VDCdscan, +VDCdscan:                  C128-specific.      (line   96)
22414* -VDCdsize, +VDCdsize:                  C128-specific.      (line   87)
22415* -VDCextpal:                            C128-specific.      (line  103)
22416* -VDCfilter:                            C128-specific.      (line  154)
22417* -VDCfull, +VDCfull:                    SDL-specific features.
22418                                                             (line  411)
22419* -VDCfulldevice:                        SDL-specific features.
22420                                                             (line  408)
22421* -VDCgamma:                             C128-specific.      (line  129)
22422* -VDChwscale, +VDChwscale:              SDL-specific features.
22423                                                             (line  403)
22424* -VDChwscale, +VDChwscale <1>:          GTK3 specific features.
22425                                                             (line  279)
22426* -VDCintpal:                            C128-specific.      (line  100)
22427* -VDCoddlinesoffset:                    C128-specific.      (line  138)
22428* -VDCoddlinesphase:                     C128-specific.      (line  135)
22429* -VDCpalette:                           C128-specific.      (line  106)
22430* -VDCRevision:                          C128-specific.      (line  115)
22431* -VDCsaturation:                        C128-specific.      (line  118)
22432* -VDCSDLfullmode:                       SDL-specific features.
22433                                                             (line  400)
22434* -VDCstretchvertical, +VDCstretchvertical: C128-specific.   (line   91)
22435* -VDCtint:                              C128-specific.      (line  132)
22436* -VDCvcache, +VDCvcache:                C128-specific.      (line   82)
22437* -verbose:                              Command-line initialization.
22438                                                             (line   39)
22439* -version:                              c1541 executing shell commands.
22440                                                             (line  250)
22441* -vflimod, +vflimod:                    VIC20 cartridges.   (line  288)
22442* -VICaudioleak, +VICaudioleak:          VIC20 cartridges.   (line  556)
22443* -VICborders:                           VIC20 cartridges.   (line  521)
22444* -VICbrightness:                        VIC20 cartridges.   (line  532)
22445* -VICcontrast:                          VIC20 cartridges.   (line  529)
22446* -VICcrtblur:                           VIC20 cartridges.   (line  549)
22447* -VICcrtscanlineshade:                  VIC20 cartridges.   (line  552)
22448* -VICdscan, +VICdscan:                  VIC20 cartridges.   (line  503)
22449* -VICdsize, +VICdsize:                  VIC20 cartridges.   (line  498)
22450* -VICextpal:                            VIC20 cartridges.   (line  518)
22451* -VICfilter:                            VIC20 cartridges.   (line  508)
22452* -VICfull, +VICfull:                    SDL-specific features.
22453                                                             (line  427)
22454* -VICfulldevice:                        SDL-specific features.
22455                                                             (line  424)
22456* -VICfulldevice <1>:                    GTK3 specific features.
22457                                                             (line  289)
22458* -VICgamma:                             VIC20 cartridges.   (line  536)
22459* -VIChwscale, +VIChwscale:              SDL-specific features.
22460                                                             (line  419)
22461* -VIChwscale, +VIChwscale <1>:          GTK3 specific features.
22462                                                             (line  284)
22463* -VICIIaudioleak, +VICIIaudioleak:      VIC-II options.     (line   93)
22464* -VICIIborders:                         VIC-II options.     (line   49)
22465* -VICIIbrightness:                      VIC-II options.     (line   69)
22466* -VICIIchecksb, +VICIIchecksb:          VIC-II options.     (line   11)
22467* -VICIIcheckss, +VICIIcheckss:          VIC-II options.     (line    6)
22468* -VICIIcontrast:                        VIC-II options.     (line   66)
22469* -VICIIcrtblur:                         VIC-II options.     (line   86)
22470* -VICIIcrtscanlineshade:                VIC-II options.     (line   89)
22471* -VICIIdscan, +VICIIdscan:              VIC-II options.     (line   31)
22472* -VICIIdsize, +VICIIdsize:              VIC-II options.     (line   26)
22473* -VICIIextpal:                          VIC-II options.     (line   43)
22474* -VICIIfilter:                          VIC-II options.     (line   36)
22475* -VICIIfull, +VICIIfull:                SDL-specific features.
22476                                                             (line  446)
22477* -VICIIfulldevice:                      SDL-specific features.
22478                                                             (line  442)
22479* -VICIIfulldevice <1>:                  GTK3 specific features.
22480                                                             (line  298)
22481* -VICIIgamma:                           VIC-II options.     (line   73)
22482* -VICIIhwscale, +VICIIhwscale:          SDL-specific features.
22483                                                             (line  436)
22484* -VICIIhwscale, +VICIIhwscale <1>:      GTK3 specific features.
22485                                                             (line  292)
22486* -VICIIintpal:                          VIC-II options.     (line   40)
22487* -VICIImodel:                           VIC-II options.     (line   53)
22488* -VICIInewluminance, +VICIInewluminance: VIC-II options.    (line   57)
22489* -VICIIoddlinesoffset:                  VIC-II options.     (line   82)
22490* -VICIIoddlinesphase:                   VIC-II options.     (line   79)
22491* -VICIIpalette:                         VIC-II options.     (line   46)
22492* -VICIIsaturation:                      VIC-II options.     (line   62)
22493* -VICIISDLfullmode:                     SDL-specific features.
22494                                                             (line  432)
22495* -VICIItint:                            VIC-II options.     (line   76)
22496* -VICIIvcache, +VICIIvcache:            VIC-II options.     (line   21)
22497* -VICIIvspbug, +VICIIvspbug:            VIC-II options.     (line   16)
22498* -VICintpal:                            VIC20 cartridges.   (line  515)
22499* -VICoddlinesoffset:                    VIC20 cartridges.   (line  545)
22500* -VICoddlinesphase:                     VIC20 cartridges.   (line  542)
22501* -VICpalette:                           VIC20 cartridges.   (line  512)
22502* -VICsaturation:                        VIC20 cartridges.   (line  525)
22503* -VICSDLfullmode:                       SDL-specific features.
22504                                                             (line  416)
22505* -VICtint:                              VIC20 cartridges.   (line  539)
22506* -VICvcache, +VICvcache:                VIC20 cartridges.   (line  493)
22507* -videosize:                            PET settings.       (line   42)
22508* -virtualdev, +virtualdev:              No traps options.   (line    6)
22509* -w<version>:                           c1541 executing shell commands.
22510                                                             (line  276)
22511* -warp, +warp:                          Performance options.
22512                                                             (line   15)
22513
22514
22515
22516Tag Table:
22517Node: Top596
22518Node: License1979
22519Node: Preface21077
22520Node: C64 emulator features22762
22521Node: C64DTV emulator features23991
22522Node: C128 emulator features24618
22523Node: VIC20 emulator features25031
22524Node: PET emulator features25947
22525Node: CBM-II emulator features29380
22526Node: SCPU64 emulator features31797
22527Node: Keyboard emulation33644
22528Node: Joystick emulation35963
22529Node: Disk drive emulation36675
22530Node: Supported file formats43049
22531Node: Common problems44333
22532Node: Sound problems44658
22533Node: Video problems46467
22534Node: Printer problems46926
22535Node: PET keyboard problems47801
22536Node: Usage48556
22537Node: Command-line initialization49600
22538Node: Command-line autostart52471
22539Node: System files53759
22540Node: ROM files55937
22541Node: Keymap files63084
22542Node: Palette files65798
22543Node: Romset files67024
22544Node: Basics68359
22545Node: Emulation window68963
22546Node: Menus70201
22547Node: Help71774
22548Node: File Selector72239
22549Node: Disk and tape images73522
22550Node: Previewing contents75792
22551Node: Autostart76501
22552Node: Compressed files77559
22553Node: Zipcode and Lynx78889
22554Node: Reset80282
22555Node: Settings and resources81288
22556Node: Resource files83730
22557Node: Resources and command-line85169
22558Node: Performance settings89955
22559Node: Performance resources91580
22560Node: Performance options92125
22561Node: Video settings92673
22562Node: Video resources96882
22563Node: Keyboard settings97861
22564Node: Keyboard resources98579
22565Node: Keyboard options100000
22566Node: Control port settings100954
22567Node: Control port resources101257
22568Node: Control port options103540
22569Node: Sound settings109909
22570Node: Sound resources112199
22571Node: Sound options117291
22572Node: Drive settings120695
22573Node: Drive resources125206
22574Node: Drive options130763
22575Node: Peripheral settings142243
22576Node: File system device settings142925
22577Node: File system device resources144624
22578Node: File system device options146197
22579Node: Printer settings149730
22580Node: Printer resources151185
22581Node: Printer options152949
22582Node: No kernal traps155563
22583Node: No traps resources156106
22584Node: No traps options156582
22585Node: RS232 settings156896
22586Node: RS232 resources159809
22587Node: RS232 options161659
22588Node: RS232 usage163498
22589Node: Monitor settings169214
22590Node: Monitor options169482
22591Node: Misc settings175875
22592Node: Misc resources176152
22593Node: Misc options177624
22594Node: Machine-specific features178092
22595Node: C64/128-specific179347
22596Node: C64 cartridges180055
22597Node: VIC-II settings212998
22598Node: VIC-II resources214725
22599Node: VIC-II options217164
22600Node: SID settings219989
22601Node: SID resources223119
22602Node: SID options226836
22603Node: C64 I/O extension settings231051
22604Node: C64 I/O extension resources232097
22605Node: C64 I/O extension options235563
22606Node: C64 system ROM settings239759
22607Node: C64 system ROM resources240134
22608Node: C64 system ROM options241252
22609Node: C128-specific246257
22610Node: C64DTV-specific256959
22611Node: C64DTV ROM image257393
22612Node: DTV revision259048
22613Node: LumaFix259444
22614Node: Userport259934
22615Node: Debug260907
22616Node: Monitor DTV features261381
22617Node: SCPU64-specific263725
22618Node: VIC20-specific266357
22619Node: VIC20 cartridges266769
22620Node: VIC20 memory expansions283922
22621Node: VIC20 memconf resources285417
22622Node: VIC20 memconf options285795
22623Node: VIC20 system ROM settings286814
22624Node: VIC20 system ROM resources287196
22625Node: VIC20 system ROM options287689
22626Node: PLUS4-specific288460
22627Node: PET-specific297092
22628Node: PET model297652
22629Node: CRTC Settings300900
22630Node: PET I/O extensions304907
22631Node: PET system ROM307617
22632Node: PET diagnostic pin309421
22633Node: PET settings309893
22634Node: Colour PET312232
22635Node: PET colors313012
22636Node: PET DWW high resolution graphics313609
22637Ref: PET DWW high resolution graphics-Footnote-1316498
22638Node: PET HRE (HiRes Emulator) high resolution graphics316568
22639Node: CBM-II-specific318925
22640Node: CBM-II model319324
22641Node: CBM-II commandline options324303
22642Node: CBM-II colors325700
22643Node: VSID-specific326277
22644Node: Platform-specific features328584
22645Node: SDL-specific features328896
22646Node: GTK3 specific features343378
22647Node: Snapshots356208
22648Node: Snapshot usage356627
22649Node: Snapshot format357531
22650Node: Emulator modules357868
22651Node: x64 modules358245
22652Node: x128 modules360034
22653Node: xvic modules361734
22654Node: xpet modules362769
22655Node: xcbm2 and xcbm5x0 modules364389
22656Node: Drive modules366137
22657Node: Module formats366567
22658Node: Module Terminology367466
22659Node: Module framework368196
22660Node: CPU 6502 module369996
22661Node: CPU 6809 module371466
22662Node: CIA 6526 module372993
22663Node: VIA 6522 module376562
22664Node: PIA 6520 module378430
22665Node: TPI 6525 module379384
22666Node: RIOT 6532 module380746
22667Node: SID 6581 module382218
22668Node: ACIA 6551 module382424
22669Node: VIC-I module383815
22670Node: VIC-II module384019
22671Node: CRTC module384220
22672Node: C64 memory module390577
22673Node: C128 memory module391859
22674Node: VIC20 memory module393071
22675Node: PET memory module396618
22676Node: CBM-II memory module402514
22677Node: C500 data module406642
22678Node: Monitor418220
22679Node: Terminology418957
22680Node: Machine state commands421789
22681Node: Memory commands423701
22682Node: Assembly commands427780
22683Node: Checkpoint commands428566
22684Node: General commands432777
22685Node: Disk commands433386
22686Node: Command file commands435487
22687Node: Label commands436057
22688Node: Miscellaneous commands438113
22689Node: c1541439754
22690Node: c1541 file specification441317
22691Node: c1541 quoting441913
22692Node: c1541 commands and options442749
22693Node: c1541 executing shell commands448108
22694Node: File formats458530
22695Node: T64459301
22696Node: T64 file structure459710
22697Node: T64 tape record460222
22698Node: T64 file record461020
22699Node: G64462268
22700Node: D64487143
22701Node: X64517460
22702Node: D71520633
22703Node: D81539090
22704Node: D80565568
22705Node: D82582813
22706Node: P00608109
22707Node: Acknowledgments746809
22708Node: Copyright772543
22709Node: Contacts774814
22710Node: Home page775326
22711Node: Sending feedback775939
22712Node: Contributing779111
22713Node: Newsgroups780855
22714Node: FAQs you should read781493
22715Node: Concept Index781817
22716Node: Resource Index785839
22717Node: Command-line Index861775
22718
22719End Tag Table
22720