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