From: R.Alphey@dce.vic.gov.au (Russell Alphey) Newsgroups: comp.emulators.cbm,comp.emulators.announce Subject: COMP.EMULATORS.CBM: Emulation FAQ for Commodore 8bit Computers (1/2) Summary: Emulation FAQ for Commodore 8bit Computers. Followup-To: comp.emulators.cbm Approved: emulators@qualcomm.com Distribution: Organization: Department of Conservation and Natural Resources, Vic., Aust. Keywords: cbm commodore 8bit emulation faq Archive-name: 8bit-emulation-faq-part1 Comp-answers-archive-name: commodore/8bit-emulation-faq-part1 News-answers-archive-name: commodore/8bit-emulation-faq-part1 Comp-emulators-cbm-archive-name: 8bit-emulation-faq-part1 Comp-sys-cbm-archive-name: 8bit-emulation-faq-part1 Version: 2.07 Author: Russell Alphey (R.Alphey@dce.vic.gov.au) CBM EMULATION FAQ - (Version 2.07 31 Oct 94) ================= This faq is usually posted twice a month on the 4th and 19th of the month to comp.emulators.cbm, comp.emulators.announce. Since comp.emulators.cbm was set up to remove the emulator discussion from comp.sys.cbm, this faq will not be posted to comp.sys.cbm. Lines preceeded by a '+' have been added or modified since the last version was posted. This faq is in two parts due to its size. The second part is essentially reviews of various emulators, plus some data. --------------------------------------------------------------------------- Table of Contents - Part 1. --------------------------- 1. Introduction. 1.1 What's new this time :-) 2. What emulators are available? 2.1 C64 Emulators. 2.1.1 C64 Emulators for the Amiga. 2.1.2 C64 Emulators for the PC. 2.1.3 C64 Emulators for the Atari. 2.1.4 C64 Emulators for the Macintosh. 2.1.5 C64 Emulators for Unix. 2.2 VIC20 Emulators. 2.3 C128 Emulators. 2.4 PET Emulators. 2.5 SID Emulators. 2.6 Non-Emulators. 2.7 Other utilities & files. 2.7.1 Utilities 2.7.2 Data files. 3. Questions & Answers. 4. A list of ftp sites where emulation programs can be obtained. 4.0 Site Maintainers. 4.1 C64 Emulators. 4.1.1 C64 Emulators for the Amiga. 4.1.2 C64 Emulators for the PC. 4.1.3 C64 Emulators for the Atari. 4.1.4 C64 Emulators for the Macintosh. 4.1.5 C64 Emulators for Unix. 4.2 VIC20 Emulators. 4.3 C128 Emulators. 4.4 PET Emulators. 4.5 SID Emulators. 4.6 Non-Emulators. 4.7 Other utilities & files. 4.7.1 Utilities 4.7.2 Data files. 5. Emulator File Formats. 5.1 C64 Emulators standard files - overview. 5.2 Table of supported file formats. 5.3 Standard data files - internal formats. 5.4 Converting between file formats. 6. How to extract the Rom images required by the emulators. 6.1 C64 roms - Basic, Kernal & Charset. 6.2 1541 rom. 7. Other information. 7.1 Newsgroups worth reading. 7.2 Emulator benchmarks. (C64 Kernal rom versions has been moved to part 2 of the faq). 7.3 Emulator detection. 7.4 Other sources of information. (Part 2). --------- + 8. Credits. 9. Data. 9.1 C64 Kernal rom versions (moved from part 1 of the faq). Appendices: A. Reviews: 1. MC64 / C64NEU 2. A64 V3 3. C64S (commercial) 4. PlaySID V3.0 5. C64S File Manager B. How-to: 1. Infocom adventures with PC64SH 2. Playing multi disk-image games with C64S 1.0C --------------------------------------------------------------------------- 1. Introduction --------------- Welcome to the "cbm emulation faq". This file covers any program that emulates any features of any of the 8-bit Commodore range of computers, such as the C-16, C-64, and C-128, on all platforms, and endeavours to answer the Frequently Asked Questions that appear in the comp.emulators.cbm newsgroup. The faq is maintained by Russell Alphey (R.Alphey@dce.vic.gov.au) and may be obtained from the following ftp sites: ftp.csv.warwick.ac.uk : /tmp/c64 ftp.funet.fi : /pub/cbm/faq watson.mbb.sfu.ca : /c64/faq ccnga.uwaterloo.ca : /pub/cbm/comp.sys.cbm Note that the author's ftp access is zero at present, so there are no guarantees that the ftp sites have up to date copies, unless someone takes it upon themselves to upload it! Also available via the C=Hacking mailserver, simply send a message to "duck@pembvax1.pembroke.edu" with a subject line of "MAILSERV" and then with "send emulation.faq" in the body of the mail message. You can now also obtain this faq via world wide web. Use the URLs: http://http.ecn.bgu.edu/users/xavf/cbm.emu.faq.toc.html or http://www.warwick.ac.uk/~stuce/faq/default.html The HTML version of the FAQ is maintained by Adrian Forte (gforte@bgu.edu) He would like any Commodore related GIFs to enhance the FAQ. A copy of the last posted faq is also available from the author's machine. Simply send a message to "c65list-request@dce.vic.gov.au" with a subject of "send latest/cec.faq1 latest/cec.faq2". Note that I haven't necessarily used or even sighted any product or program mentioned in this FAQ. I will try to add to the write-ups of each product. Any review should not be seen as an endorsement of that product, nor should the lack of a detailed review be taken as an indication of a product's suitability, or lack thereof! 1.1 What's new this time :-) Some version revisions. A new sidplayer (for the Atari ST). A new PC C64 emulator. A new file handling utility. Still more answers from the author of PC64. Credits moved to part 2. 2. What emulators are available? -------------------------------- The list of emulators is as comprehensive as possible, with some brief decriptions of what is emulated, and although something may be emulated it may not be 100% compatible with the original. More details "reviews" of some of the emulators may be found in the second part of this faq. 2.1 C64 Emulators. 2.1.1 C64 Emulators for the Amiga. PROGRAM: The A64 Package VERSION: 2.0 shareware, 3.0 commercial. FILE: TheA64Package.lha MACHINE: Commodore Amiga AUTHOR: Cliff Dugan, Christopher P. Zura & Douglas Decicco DETAILS: Sid: Yes (except filter). Vic: Yes. 6510: Yes, with Undocumented opcodes. Peripherals: 1541 & printer via hardware interface with registered version. Other: Different character sets available instead of default. COMMENTS: The emulator is pretty fast and includes: Monitor, support for Amiga drives (HD, Ram disk, floppys, etc), expansion Ram. PROGRAM: Go-64! FILE: unknown MACHINE: Commodore Amiga AUTHOR: Chris Zura & Cliff Dugan DETAILS: Unknown. COMMENTS: A precursor to A64. PROGRAM: sys FILE: sys.lha and sys.readme MACHINE: Commodore Amiga AUTHOR: bauermichael@student.uni-tuebingen.de DETAILS: Unknown. COMMENTS: A new, very small part of a C64 emulator. PROGRAM: The 64 Emulator FILE: unknown MACHINE: Commodore Amiga AUTHOR: Randy Linden DETAILS: Peripherals: Disk drives and printers supported by serial bus adaptor (up to 4 units). 1764 RAM expander emulation. COMMENTS: Reported by Jason J. Tucker, from Ahoy! Feb. 1988. Believed to have been superseded by The 64 Emulator II. 2.1.2 C64 Emulators for the PC. PROGRAM: c64.zip FILE: c64.zip MACHINE: IBM PC running DOS AUTHOR: Johannes Kiehl (hannes%complx.stgt.sub.org@ira.uka.de) REQUIRES: Hercules graphics card. DETAILS: Sid: No. Vic: Text mode only. 6510: No, Interpreted Basic commands only. Peripherals: 1541. COMMENTS: Very primitive. Documentation in German, although a partial English translation exists. PROGRAM: c64s PD / commercial + VERSION: 1.1 B + FILE: C64S11BD.ZIP & c64s11bd.exe + OLD FILES: c64s09a.lzh / c64emu.zip, c64s09b.arj, c64s09c.exe + c64s10cd.zip / c64s10ed.zip MACHINE: IBM PC running DOS AUTHOR: Miha Peternel (miha@rsc3.hermes.si (preferred) miha.peternel@abm.gn.apc.org) E-mail messages to both addresses if possible. COMMERCIAL CONTACT: For sales and support in North America, contact Seattle Lab: Seattle Lab 214 First St. Kirkland, WA 98033 U.S.A. Phone: 206.828.9001 Fax: 206.828.9011 Email: lab@seattle.wa.as.com CompuServe: 71202,560 FTP: as.seattlelab.as.com (204.29.31.1) REQUIRES: 386 and VGA. Comm. release requires > 500k low RAM free. DETAILS: Sid: Yes - To pc speaker or soundcard, but no filters Vic: Sprites, All screen modes, raster effects. 6510: Yes, with Undocumented opcodes. Peripherals: Tape, 1541 & joystick emulation. Commercial release supports analogue joysticks. Other: Supports NTSC and PAL. COMMENTS: 100% machine language. Commercial release contains a number of useful utilities. Demo release of C64S 1.0C will only allow access to TESTTAPE.T64 and TESTDISK.D64. Version 1.0 is very different to 0.9. Version 1.0e doesn't allow the same degree of flexibility with respect to testing as 1.0c did. PROGRAM: ???? (Still in development) FILE: ???? MACHINE: IBM PC running DOS AUTHOR: Peter Andersson (pand@kullmar.se) REQUIRES: DOS2.0, 386, 512k memory and VGA. DETAILS: Sid: Vic: 6510: Yes, with Undocumented opcodes. Peripherals: COMMENTS: Alpha testing. Source code included. Author recently had 2 hard drive crashes, which has slowed work considerably. PROGRAM: C64 Alive VERSION: 0.9ax FILE: c64a09as.zip OLD FILE: c6409ah.zip, c64alive.zip MACHINE: IBM PC running DOS AUTHOR: Frank Littmann (jochen@mubo.saar.de) REQUIRES: 386, 256k memory + 2560k XMS and VGA. DETAILS: Sid: Yes - To soundcard. Vic: Sprites, Basic raster & sprite collision 6510: Yes, with Undocumented opcodes. Peripherals: Joystick, Printer, Disk2Dos drive, Reu ram expansion supported. Other: Machine code monitor. COMMENTS: 100% machine language. Get from ftp.uni-kl.de /pub/pc/dos/misc Reported to be very incompatible with most machines. + PROGRAM: Personal C64 (previously c64neu.zip & MC64) VERSION: BETA 12 / 1.0 + FILE: pc64sh.zip / c64neu.zip (Also found as c64.zip on most ftp sites, except watson) MACHINE: IBM PC running DOS AUTHOR: Wolfgang Lorenz (CIS 100112,220 = 100112.220@compuserve.com) REQUIRES: Details: Sid Yes to Adlib. Vic: Sprites, screen modes & basic rasters. 6510: Yes. Peripherals: 1541 via PC filesystem. External CBM drives now supported. COMMENTS: Documentation in german, but large help file. Commercial version (MC64) to be released Aug. 94 on a CD bundled with C64 software and a 170 page German manual. Current Betas have expiry date. The author is also the distributor. REVIEW: Yes. PROGRAM: Sally c64 Emulator FILE: c64sally.zip MACHINE: IBM PC running DOS AUTHOR: Morten Welinder (terra@diku.dk) REQUIRES: 386, 280Kb memory and VGA. Details: Sid No. Vic: Sprites & screen modes. 6510: Yes, with Undocumented opcodes. Peripherals: Joystick, 1541 via PC filesystem. COMMENTS: Pascal and Assembly source included. A beta tester judged that he could spread it around the world. One thing I would like to have corrected is that although the archive found out there includes the roms, that is totally against my will -- the documentation clearly says "get it elsewhere." Also, by the way, the emulator can take rom images without the load address. The emulator was never completely finished -- I simply don't have the time for it. + PROGRAM: Unknown + VERSION: Unknown + MACHINE: IBM PC running DOS + FILE: Unknown + AUTHOR: A friend of MTTT022@URSUS.BKE.HU (Dirk Gently) + REQUIRES: Unknown + Details: Peripherals: Uses X1541 cable. Can use turbo mode (3x faster), + and read & write full disk images. Full NC + compatible. Disk format compatible with c64s. + COMMENTS: 2.1.3 C64 Emulators for the Atari. PROGRAM: c64.lzh / c64.lha FILE: c64.lzh / c64.lha MACHINE: Atari ST AUTHOR: Uwe Seimet DETAILS: Sid: No. Vic: No, just text mode with screen at $0400 6510: Yes. Peripherals: EPSON printer, disk drive (limited 1541 emulation)/ COMMENTS: Very rough emulation. No banking, no shadow I/O. The documentation is in German only. Assembly source included. 2.1.4 C64 Emulators for the Macintosh. PROGRAM: Mac 64 VERSION: 4 FILE: mac64-04.hqx OLD FILES: mac64sea.hqx, mac64col.hqx, mac64-02.hqx, mac64-03.hqx MACHINE: Apple Macintosh AUTHOR: Earle F. Philhower III (st916w9r@dunx1.ocs.drexel.edu) DETAILS: Sid: No. Vic: Hi-res gfx, sprites, scrolling. 6510: Yes. Peripherals: 1541 emulation, hard drive & printer, tape images. COMMENTS: Source code included. 2.1.5 C64 Emulators for Unix. PROGRAM: x64 VERSION: 0.2.2 FILES: x64-0.2.2.tar.gz, petcat.tar.gz, x64_patch_021_to_022.tar.gz OLD FILES: x64-0.1.tar.gz, x64-0.2.0.tar.gz, x64-0.2.1.tar.gz MACHINE: Unix with X windows AUTHORS: Jarkko Sonninen (sonninen@lut.fi) Jouko Valta (jopi@stekt.oulu.fi) Teemu Rantanen (tvr@cs.hut.fi) DETAILS: Sid: No. Vic: Mono Sprites, All screen modes except multi-colour. 6510: Yes, with Undocumented opcodes. Peripherals: 1541 emulation with disk images. Access to filesystem via drive 9. Joystick #1 to cursor keys. Reu ram expansion supported. ROM modules supported too. Other: Basic lister/cruncher program. Machine code monitor & runtime trace. Kernal rom patcher vers 0, 3, 67, 100. Option to copy T64 tape images into x64 disk images. COMMENTS: C source code included. 65xx/8502 CPU documentation included. + Offical World wide web site for x64 at: + http://stekt.oulu.fi/~jopi/x64.html 2.2 VIC20 Emulators. PROGRAM: vic-emu FILE: vic-emu.lha (programs are vic-00 and vic-20) MACHINE: Commodore Amiga AUTHOR: Pieter van Leuven (etmpile@crosby.ericsson.se) DETAILS: 6502: Yes. Ram expansions: COMMENTS: vic-00 is for 68000s and vic-20 for 68020/30/40s PROGRAM vic-emulator FILE: vic-emulatorC64.lnx MACHINE: Commodore 64 AUTHOR: Fausto Ibarra DETAILS: Ram expansions: 3k, 8k, 16k & 24k. COMMENTS: Screen size not emulated. 2.3 C128 Emulators. Two C128 emulators are (planned/in development) at the moment. Would their authors care to say a few words about them? 2.4 PET Emulators. PROGRAM: "The PET Emulator" FILE: ??? MACHINE: Commodore 64 AUTHOR: Commodore 64 Software Bonus Pack DETAILS: Emulates 2001 series, 4032 series & basic 4.0 COMMENTS: From their blurb: "The PET Emulator allows most existing PET programs written in BASIC to be RUN on the Commodore 64". 2.5 SID Emulators. SID emulators allow you only to emulate the SID chip, and therefore play tunes written for the SID. PROGRAM: Play SID VERSION: 3.0 FILE: PlaySID3.0.lha OLD FILES: PlaySID-2.0.lha, PlaySID2.1.dms, PlaySID2.2.lha MACHINE: Commodore Amiga AUTHORS: Hakan Sundell & Ron Birk (d89-rbi@nada.kth.se) DETAILS: Sid: Yes, all except filter, also works with multi-tasking. 6510: Yes, with Undocumented opcodes. COMMENTS: C64 Sid chip emulator.3.0 supports viewing of most C64 picture formats, has a realtime waveform/envelope display, supports "multiselect" in filerequester and has some other nice improvements. PlaySID has full AREXX support. See a full review in the appendix. PROGRAM: SIDPLAY + VERSION: 1.22 + FILE: sidpl122.zip MACHINE: IBM PC running DOS AUTHOR: Michael Schwendt (3schwend@rzdspc1.informatik.uni-hamburg.de) DETAILS: SID: Yes, to Soundblaster or Pro AudioSpectrum compatible card. 6510: Yes, with Yndocumented opcodes. COMMENTS: C64 SID-chip emulator. Compatible to PlaySid (Amiga) music + data files. This program is not related to Compute!'s sidplayer + on the C64. + PROGRAM: Midi Music Maker + VERSION: v2.26 + FILE: mmm226.lzh + MACHINE: Atari ST + AUTHOR: Dave Henry + DETAILS: Plays Sid Player Music (including stereo and lyrics ) & Master Composer files. + COMMENTS: Also plays music from other computer systems. 2.6 Non-Emulators. PROGRAM: C64Emulator FILE: 64Emulator.lha / C64Emul.lha MACHINE: Commodore Amiga AUTHOR: Eddy Carroll COMMENTS: Joke C64 emulator written on April 1st. Source code included. PROGRAM: 64blaz76.exe FILE: 64blaz76.exe MACHINE: IBM PC running DOS AUTHOR: Mark D. Rejhon (mdrejhon@csclub.uwaterloo.ca / ag115@freenet.carleton.ca) REQUIRES: 286 with EGA/VGA. COMMENTS: CBM modem terminal with CBM graphics in colour. 2.7 Other utilities & files. There are many different transfer programs which you can use to transfer data from a c64 to another machine. In this section I will only be listing those which transfer whole disk images. I will also be listing utilities for the emulators and 'ready to run' data files that are available. 2.7.1 Utilities disk64e.arj - Creates .d64 files using 1541 for IBM PC. x1541.zip - Copy files directly from 1541 to PC. c64uti5.zip - Disk utilities for c64s09 emulator for IBM PC. maketape.arj - A tape utility for c64s09 emulator for IBM PC. copy2d64.arj - Convert files into .d64 inmages. zip2d64.arj - Convert !*zip files into .d64 images. d64.lha - Utility for AMIGA. maketape.arj - Makes .t64 files, includes source. dir_d64.zip - List catalog of .d64 files for IBM PC. d64util.zip - .d64 utils. d64_10.zip - Transfer files between standard, .t64 & .d64 on IMB PC. d64zipcode.c - Convert d64 files back to zipcode files. unt.lzh - Tape utility for Amiga. tr64_114.zip - Trans64 v1.14 - main features are: - transfer files between 1541, virtual disks, virtual tapes, dos and MC64 (c64neu) format. Supports C64S 1.0E. - transfer whole disks between 1541 and virtual disks. Added an error detection to continue after a read error. - fastloader for 1541 and 1581 (problems from version 1.02 are fixed) - German and English user interface - Source is in tr_src11.zip Author is Bernhard Schwall (schwall@athene.informatik.uni-bonn.de) 1541-dos - Read MS-DOS disks on a modified 1541. Author is Richard Hable (Richard.Hable@jk.uni-linz.ac.at) + ???????????? - The Star Commander. + This program is able to handle the .D64 and .T64 files of C64S: copy + in/out, rename, delete, validate, reformat etc. This new release can even + copy files and disks from/to a real 1541 drive connected to your PC via the + X1541 interface - 1571/81 owners should use the 1541 compatible mode!!! + The program is FREEWARE which means you can do with it whatever you want + but PLEEZ spread it in the original package with all files unmodified!!! + All kinds of reports about ideas and bugs would be appreciated!!! + The 1541 read/write routines in this version are not yet calibrated + depending on the system clock so here's an external calibration routine for + you to try. + You MUST report if the calibrations values worked for you or not!!! + And don't forget to read all the texts and the online help before you start + working!!! + Author: Joe Forster/STA (sta@ludens.elte.hu) 2.7.2 Data files. The ftp site watson.mbb.sfu.ca has a selection of .t64 & .d64 disk images. Also available for PlaySID for the AMIGA are a number of music collections: C64MusicShow-1.lha C64MusicShow-2.lha Addition.lha C64Sounds.lha 3. Questions & Answers ---------------------- A section to answer common questions that emulator users pose. Please forward any questions or answers you think would be appropriate for this section to the faq maintainer. Q: I haven't used a C64 in years, and I've forgotten how to get a disk directory listing! A: Shame on you! :) Try: load"$",8 - when that finishes, list Q: I can't connect to Watson via anonymous ftp. A: 1. It's a busy place, try again later. 2. It runs OS/2 ftp, so things aren't exactly as you might expect - try doing a dir instead of ls 3. After logging on, you need to cd .. before you will be able to see anything. Note that watson now runs linux much of the time, so points 2 and 3 may no longer be applicable. Q: I downloaded three emulators, c64alive, c64sally and c64s09c and only c64sally seems to work in my machine, 486DX/33. C64alive stops to on XMS-error. That happens even after when I had removed my autoexec.bat and config.sys. And c64s09c stucks my PC completely. A: (part 1) c64s09c requires that you also get 'romcode.c64', which should be in watson.mbb.sfu.ca, /emulator. C64S 1.0CD comes with the ROM code, so you would probably be better off grabbing that. (part 2) You should download C64S09A.ZIP, unpack it, copy C64S09C.EXE to the _same_ directory, copy all programs (.D64 and .T64 files) _also_ to the same directory, and then run C64S09C.EXE; it's more like an update than a stand-alone program. And you are probably better off using C64S09B. I even went one step futher: I unpacked C64S09A.ZIP to a directory, and renamed the executables C64S.EXE and C64S386.EXE to C64SA286.EXE and C64SA.EXE. Then I unpacked C64S09B.ARJ to the same directory and renamed the executable C64S.EXE to C64SB.EXE. Finally, I copied C64S09C.EXE to the same directory and renamed it to C64SC.EXE. The result: I have all distinct versions of the C64S simulator in the same directory, and I may run them with a command C64S[A|B|C]. I also have the 286-version of C64A ready, although I never use it (I own a 386). (Thanks to Frodo Looijaard (frodol@sci.kun.nl) for this explanation.) Q: I have problems extracting the sidtunes from the AMIGA .lha archives on watson.mbb.sfu.ca and other sites on my PC running DOS ! A: Use lha, lzh or lharc with option -m2 to enable renaming of double files, caused by the conversion from the AmigaDOS file-system to the limited filename length (filename.ext <=> 8.3) of the DOS file-system. Q: Why would you want to emulate a CBM 8 bit computer? A: 1. Why not? 2. As an intellectual exercise, to prove it can be done. 3. Nostalgia. 4. Convenience - why pull out the old 64, disk drive, and monitor, when you can just boot up the emulator? Q: I have recently downloaded a C64 emulator. It does not however allow me to read C64 disks. Is there a way to read a C64 disk on an IBM PC drive? A: No. The PC's floppy disk system is too "dumb" to be able to be programmed to read non-MFM disks. The C64 uses GCR. This limitation is why the PC cannot read Amiga disks either. Q: How do I get my old 64 games across from the 64 to the emulator? (AKA: How do I read my 1541 formatted disks on a XXX?) A: Firstly, the PC *cannot* read 1541 formatted disks, no way, no how. The Amiga might be able to(?). But, the best way to transfer files (not whole disks) is to set up a NULL MODEM cable between the 64 and the emulator machine, and use a serial transfer. If you have a 1571 or 1581, then you can use either the Big Blue Reader (BBR) or the Little Red Reader (LRR) to read/write DOS formatted disks. There are packages available that allow you to access a 1541 drive from your emulator machine, eg X1541, DISK64E. It is possible to read/write DOS formatted disks with a 1541, which requires a small hardware modification to the 1541, and a program like 1541-dos. Finally, utilities like 64NET allow you to copy files from the 64 to the PC's disk drives. Q: How do I load .d64 files into the A64 emulator on the Amiga? A: From 00Index.txt in watson's c64/emulator directory: tape2bin.lzh Converts .t64 files to binary (runs on Amigas) und64_374.lha Extracts and lists files from .d64 images (runs on Amigas) Both of these ran on my A3000/25/50, WB2.04. Tape2bin extracts a useable binary for TheA64Package, v2. Q: How do I convert PO0 files to T64, D64 or any other Amiga unpackable format? A: There is a section of this faq dedicated to conversions, check there. Q: Which is the best emulator? A: You really know how to start a flame war, don't you? :) Opinion varies, naturally. Comp.emulators.cbm is a good place to watch, not ask! The merits and quirks of the various emulators are discussed there regularly. The main two PC emulators used are C64S, and C64NEU (MC64). The fact that C64S's author previously was impossible to contact is seen as a negative for that program, although some users insist it's a better emulator for some programs. Others maintain that the lack of English documentation, and the fact that it's commercial, make C64NEU worse, especially as the demo version has an expiry date. Recent report indicate that Seattle Labs (marketers of C64S) are very responsive and helpful. My advice is try both and see which you prefer! Q: What ever happened to Ron Hubbard? :) A: 1. Rob Hubbard, who wrote lots of great music tracks on the C64 now works on Sega (?) systems. 2. L. Ron Hubbard (author, and founder of Scientology) is dead. Note that this has nothing to do with emulators, but the topic sure is alive and well in comp.emulators.cbm! Q: Has anyone been able to get the A64 emulator for the Amiga running? Every time I start it up, the system crashes. A: What version? If it's V2, then it always crashes under Kickstart 3.1. V2 works under Kickstart 3.0, but not if you use the OCS/ECS chips (using AGA scrambles the display :-P). Can someone please fix this? To be sure of getting A64 to work you have to use Kickstart 2.0. Q: Anyone ever get C64 Alive working? I can't seem to figure out what to call the ROM files, and the docs are of no help. Thanks much in advance. A: You don't have to call ROM files, just type 'c64alive.exe' - if this doesn't work - for me it works fine - there must be some other problem like the extended video mode (on my Speedstar 24 (ET4000)) C64S does not run instead ... BTW, c64a09ah.zip is a shareware demo version that terminates after 5 min. Q: Some letters don't appear when I press the keyboard in c64s09c A: Press F8 and turn off keyboard joystick emulation! Q: Has game X been converted to filetype Y and uploaded anywhere? A: Your best option is to have a look in the index files kept on each site. Q: Would somebody please upload my favourite program X to Watson? A: There's an unofficial "Most Wanted" list moderated and updated by Dave Smith (dave@marsbar.demon.co.uk). Please read that list if you are looking for a particular program and can't find it - email Dave if you want to add a program. Feel free to reduce the list by uploading something that's been requested! :) Q: I'm writing my own emulator for machine "X". Where can I get information about the undocumented 65xx opcodes? A: The following sources are good places to start! 1. Description of the full insruction set ftp.funet.fi: /pub/cbm/documents/64doc 2. C= Hacking, Issue 1 (some inaccuracies) ccnga.uwaterloo.ca: /pub/cbm/hacking.mag/Issue1.Z 3. C64 Programmer's Reference Guide, pp. 416-417 (Standard instructions only.) Q: Is there a program out there that will allow me to capture screens from one of the C64 emulators and dump it into a PCX file or something? I tried to run C64S in a window under both Windows and OS/2 to use a capture program there, but apparently C64S uses a slightly abnormal VGA mode, because it wouldn't run either way. A: 1. A64 V2.x and 3.x support screen captures directly. Although the default format is Amiga IFF, it can be easily converted to PCX with the many graphics conversion programs. 2. For C64S, on a PC, use Screen Thief. It's capable of nicking *any* screen (almost, only prog not working with it is FC's Second Reality demo). I've used it, and it works OK with C64S. Found under name ST101.ZIP or similar on BBS's, shareware. Q: How do I run other .d64 files with the C64S emulator demo version? A: Just rename the .d64 file you are interested in to testdisk.d64. It will work just fine under c64s10cd. Multi-disk games are out though. :-( [Not necessarily! By placing each of the multi-disks on separate floppies, and running C64s10cd to read from floppy you should be able to do it! :) ] Another way of running multi part games comes from PATRICK (pcwitteman@et.tudelft.nl). He writes: Create a number of sub-directories, containing the .d64 files of the game you want to play in the c64s10ed. rename them all to testdisk.d64 (use trans64 1.14 to create the new format). Use the subst command in DOS to substitute those sub-dirs with drive letters. For example: subst e: c:\c64s\disk2 When your game asks you to change the disk, use the CD command in the alt-F9 disk menu to change the disk and press E. Then return to the game and press space or whatever to continue loading. Q: I have TheA64Package... it looks pretty good but I could not get a *.t64 file going on it. A: Get "UNT" and extract the file(s) from the .t64 archive. It will run after that. Q: Do the *.d64 files work on this emulator? What files do work with this emulator? A: Get UND64. It will extract any standard files. Anything that accesses tracks or sectors directly will not extract/work with A64. And now some answers from the author of Personal C64, Wolfgang Lorenz! I hope to get answers from each of the emulator authors to FAQs about their particular program, and I will then break the Q&A section up by "topic". Q: Has anyone got "jammin'" to work? ... PC64 gives me a File Not Found error when I try to run it (it's only one .p00 file) A: Try NEWNAME.EXE. This utility corrects the old 16-to-8 name mapping which was not CD-ROM compliant (no ' are allowed, only A-Z, 0-9 and _). Jammin' works fine, if you increase the from 2 to 3 or 4, because the flashing colors strain the screen cache. Q: I don't know how to use the fire joystick with the keyboard A: Fire is , and the directions are the white arrows. Switch off, or you are entering numbers. Q: Is there a converter from .p00 to normal c64 files that A64 understands? A: In PC64, will remove the P00 header and save it as a standard DOS file. If you don't have PC64, you'll have to strip the 26 header bytes somehow, e.g. with a debugger. They are necessary because DOS allows only 8.3 file names. Q: I was wondering if you can print inside of PC64 to a printer hooked to your pc A: You can connect the devices 4..7 either to a device like PRN or a DOS file. There are 4 code mappings CBM -> ASCII: channel 0 = big letters, channel 7 = small, rest = unchanged all big letters all small letters leave everything unchanged If you want mapping *AND* graphics, you can open 2 files with different channels (e.g. 7 and 1). Q: Does anyone know how to swap disks under PC64? A: Press , then select disk with / and press to confirm. Q: Can PC64 do PC speaker sound? A: Sorry, no. The SID voices 1 to 3 are mapped to the Adlib FM part of a Soundblaster compliant card, and the samples over $D018 go to the DSP. Q: Is there a way to get an analog IBM compatible joystick to work in pc64? There seem to be settings for it under OPTIONEN/JOYSTICK, but its greyed A: IBM analog joysticks on a game card and C64 digital joysticks on the PC64 cable are supported only in the licensed version. The other Shareware restriction is no file transfers to a real C64 over the PC64 cable. You'll have to use Trans64 or X1541 for this. + Q: To speed up the german emulator, find the emulator configuration window + (german word starting with Z..) and change the number at the top (2) to a + bigger number like 3 or 4..>> + A: That's in the + English version. + Q: I recently downloaded c64neu and 64copy20. I also got some games + in the *.t64 and *.d64 formats. My question is when I convert (using + 64copy20 I turn the .t64 and .d64 files into .P00, c64neu says they are + incompatable and don't work. Any suggestions?? + A: Forget C64NEU, its name is Personal C64 now (PC64SH.ZIP or the English + version PC64_E.ZIP). For T64 to P00 conversion use T64TOP00.EXE. It comes + with PC64. D64 disk images can be used in PC64 like normal directories. + Q: There are some differences between the beta releases of PC64 and the + release + A: You should use the original 16-to-8 name mapping function. It's + ReduceName() in T64TOP00.CPP. The Beta 10 and 11 used a slightly + different name mapping which allowed other characters than [A-Z0-9_]. + This is illegal on CD-ROMs. The program NEWNAME.EXE corrects all P00 + files on your harddisk to the new name mapping so that PC64 can load them. 4. A list of ftp sites where emulation programs can be obtained. ---------------------------------------------------------------- Some of the emulation programs are duplicated at other sites. I have not listed every site that has a certain emulator, although I may have listed more than one site that has that emulator. If you would like to more about other cbm ftp sites the read the ftp list which is posted to this comp.sys.cbm regularly by Howard Herman (72560.3467@CompuServe.COM). Any site maintainer who wishes their site listed here only needs to send me mail advising me of that fact! Format for listing: Site.Name /Directory MACHINE - program name 4.0 Site Maintainers. If you have any questions about specific emulator sites, then please contact the person named below. Site: ----- ftp.funet.fi cbm-adm@ftp.funet.fi watson.mbb.sfu.ca c64@watson.mbb.sfu.ca 4.1 C64 Emulators. Note: faui43.informatik.uni-erlangen.de: /mounts/epix/public/pub/pc/msdos/emulators/c64 appears to be mirroring watson.mbb.sfu.ca /c64/emulator directory, and are they therefore listed together. 4.1.1 C64 Emulators for the Amiga. faui43.informatik.uni-erlangen.de /mounts/epix/public/pub/pc/msdos/emulators/c64 watson.mbb.sfu.ca /c64/emulator AMIGA - thea64package.lha ftp.funet.fi /pub/cbm/c64/emulation AMIGA - TheA64Package.lha ccnga.uwaterloo.ca /pub/cbm/emulation AMIGA - thea64package.lha src.doc.ic.ac.uk /packages/aminet/misc/emu AMIGA - C64Emulator.lha ftp.wustl.edu /systems/amiga/boing/utilities/emulators/c64 AMIGA - a64v2d1.lzh & a64v2d2.lzh (TheA64Package.lha) wuarchive.wustl.edu /systems/amiga/aminet/misc/emu AMIGA - sys.lha and sys.readme 4.1.2 C64 Emulators for the PC. faui43.informatik.uni-erlangen.de /mounts/epix/public/pub/pc/msdos/emulators/c64 watson.mbb.sfu.ca /c64/emulator * Note that Watson is now an official mirror site of seattlelabs ftp site (204.29.31.1) It is legal for me (and others) to continue to distribute the old versions of C64S (v0.9a(b,c)). I will NOT be distributing the registered version of C64S (like anyone thought I would). Seattlelabs are aware of the existance of watson and it's collection of software. Hopefully they will find it useful for testing purposes. IBM PC - c64.zip - c64s09a.zip c64s09b.arj c64s09c.exe - c64alive.zip c64a09ah.zip - c64sally.zip - c64neu.zip ftp.funet.fi /pub/cbm/c64/emulation IBM PC - c64.zip - c64emu.zip c64s09b.arj ftp.uni-kl.de /pub/pc/dos/misc IBM PC - C64ALIVE.ZIP C64_09AS.ZIP - c64_emu.zip c64s09b.arj ccnga.uwaterloo.ca /pub/cbm/emulation IBM PC - c64.zip wilbur.stanford.edu /pub/emulators/c64 IBM PC - c64.zip ftp.uni-passau.de /pub/ibmpc/msdos/emulator IBM PC - C64S09B.ZIP - c64alive.zip ftp.uni-giessen.de /pub/incoming/pc IBM PC - c64s09b.arj - c64alive.zip 4.1.3 C64 Emulators for the Atari. faui43.informatik.uni-erlangen.de /mounts/epix/public/pub/pc/msdos/emulators/c64 watson.mbb.sfu.ca /c64/emulator ATARI ST - c64-st.lzh faui43.informatik.uni-erlangen.de /mounts/faui45/atari/applications/emulators/c64 ATARI ST - c64.lha ftp.funet.fi /pub/cbm/c64/emulation ATARI ST - c64.lzh 4.1.4 C64 Emulators for the Macintosh. faui43.informatik.uni-erlangen.de /mounts/epix/public/pub/pc/msdos/emulators/c64 watson.mbb.sfu.ca /c64/emulator APPLE MAC - MAC64-04.HQX ftp.funet.fi /pub/cbm/c64/emulation APPLE MAC - mac64-04.hqx 4.1.5 C64 Emulators for Unix. faui43.informatik.uni-erlangen.de /mounts/epix/public/pub/pc/msdos/emulators/c64 watson.mbb.sfu.ca /c64/emulator UNIX/X - x64-0.2.2.tar.gz ftp.funet.fi /pub/cbm/c64/emulation UNIX/X - x64-0.2.1.tar.gz x64-0.2.2.tar.gz ccnga.uwaterloo.ca /pub/cbm/emulation UNIX/X - x64-0.1.tar.Z x64-0.2.0.tar.Z x64-0.2.2.tar.gz wilbur.stanford.edu /pub/emulators/c64 UNIX/X - x64-0.2.2.tar.gz http://stekt.oulu.fi:/~jopi/x64.html x64 emulator documents, not the program itself. 4.2 VIC20 Emulators. ftp.hrz.uni-kassel.de /pub/machines/vic-20/vic-emulator AMIGA - vic-emu.lha src.doc.ic.ac.uk /packages/aminet/misc/emu AMIGA - vic-emu.lha ccnga.uwaterloo.ca /pub/cbm/util64 C64 - vic-emulatorC64.lnx 4.3 C128 Emulators. No emulators available yet. 4.4 PET Emulators. No sites known. 4.5 SID Emulators. + watson.mbb.sfu.ca /pub/c64/sidmusic IBM PC - sidpl???.zip + AMIGA - playsid3.lha + delisid.lha + ATARI ST - mmm226.lzh cnam.cnam.fr /pub/Amiga/mus/play AMIGA - PlaySID2.2.lha ftp.germany.eu.net /pub/comp/amiga/music AMIGA - PlaySID2.1.dms ftp.uni-hamburg.de /pub/dos/incoming IBM PC - sidpl???.zip ftp.funet.fi /pub/amiga/audio/apps/playback AMIGA - PlaySID-2.0.lha "We`ve finally succeeded in uploading the largest SIDtune collection ever available to some major PC/DEMO sites" - Michael Schwendt. ftp.uni-paderborn.de /pcsoft2/msdos2/pc-demos/music/songs/c64 IBM PC - sidpmus1.zip sidpmus2.zip sidpl120.zip Mirrors: ftp.engl.ufl.edu .../demos/music/.../c64 - different directories ftp.uwp.edu ftp.luth.se ftp.uni-erlangen.de 4.6 Non-Emulators. nic.funet.fi /pub/cbm/c64/emulation AMIGA - C64Emulator.lha ftp.cnam.fr /pub2/Amiga/emu AMIGA - C64Emulator.lha ftp.germany.eu.net /pub/newsarchive/comp.sources.amiga/volume89/fun AMIGA - c64.1.Z (C64Emulator.lha) watson.mbb.sfu.ca /c64/emulator IBM PC - 64blaz76.exe 4.7 Other utilities & files. 4.7.1 Utilities watson.mbb.sfu.ca /c64/emulator IBM PC - disk64e.arj c64uti5.zip maketape.arj copy2d64.arj zip2d64.arj d64util.zip d64_10.zip d64zipcode.c tr64_114.zip tr_src11.zip AMIGA - maketape.arj unt.lzh ftp.funet.fi /pub/msdos/utilities/diskutil IBM PC - copy2d64.arj zip2d64.arj ftp.funet.fi /pub/cbm/emulation AMIGA - d64.lha IBM PC - dir_d64.zip cnam.cnam.fr /pub2/Amiga/emu AMIGA - d64.lha ccnga.uwaterloo.ca IBM PC - tr64_114.zip tr_src11.zip 4.7.2 Data files. watson.mbb.sfu.ca /c64/games/ (.t64 * .d64 files) watson.mbb.sfu.ca /c64/misc/ (.t64 * .d64 files) watson.mbb.sfu.ca /c64/sidmusic/ (PlaySID * sidplay music) AMIGA - C64MusicShow-1.lha C64MusicShow-2.lha Addition.lha C64Sounds.lha nic.funet.fi /pub/amiga/audio/misc/sid-tunes AMIGA - C64MusicShow-1.lha (for use with PlaySID/sidplay) C64MusicShow-2.lha Addition.lha ftp.cnam.fr /pub2/Amiga/mods/PlaySid AMIGA - C64MusicShow-1.lha (for use with PlaySID/sidplay) C64MusicShow-2.lha Addition.lha ftp.cs.tu-berlin.de /pub/amiga/audio/mods-c64 AMIGA - C64Sounds.lha (for use with PlaySid/sidplay) 5. Emulator File Formats. ------------------------- As there are several emulators for different platforms, they all cannot be made directly usable by other emulators, unless the author has provided that facility. Utilities to convert back into CBM binary generally exist fortunately. 5.1 C64 Emulators standard files - overview. This section shows the "normal" files used by each emulator. Program File type Identification Contents (name or method) c64.zip (PC) disk image VC1541.000 683 pcs 256-byte sectors tape image - not used + c64s (PC) basic rom } contains binary data for: kernel rom }- romcode.c64 VC1541 (16384 bytes), chargen chargen rom } (4096),basic (8192) and kernel disk drive rom} (8192) = total 36864 bytes program - not used disk image 09c *.d64 683 pcs 256-byte sectors 09a,b testdisk.d64 tape image *.t64 ? Note: the kernel part is modified. c64sally.zip basic rom A000BFFF.64F 8194 bytes of binary data (1) (PC) kernel rom D000DFFF.64P 8194 bytes of binary data (1) chargen rom E000FFFF.64P 4098 bytes of binary data (1) disk drive rom - not used program *.64P C64 program with load address also SEQ files via *.64S disk image - not used tape image - not used + pc64 (PC) basic rom *.64B 8192 bytes of binary data + c64neu.zip kernel rom *.64K 8192 bytes of binary data chargen rom *.64C 4096 bytes of binary data disk drive rom - not used program *.P00 C64 program with load address preceded by 24 byte header. disk image - not used tape image - not used c64.lzh (ST) basic rom c64/_basic 8192 bytes of binary data kernel rom c64/_kernal 8192 bytes of binary data chargen rom c64/_font 4096 bytes of binary data disk drive rom - not used program - C64 program with load address disk image - not used tape image - not used x64 (UNIX) basic rom basic 8192 bytes of binary data (2) kernel rom kernel 8192 bytes of binary data (2) chargen rom - not used disk drive rom - not used program - C64 program with load address disk image magic header 64 byte magic header and 683 pcs 256-byte sectors tape image - not used rom module filename 8192 or 16384 byte cartridge, stored in binary format ram image ram RAMSIZE + 4103 (x64 will load a ram image, eg. "the contents of RAM as in warm start" at startup, if one exists) Only the RAM is loaded at startup. CPU registers and I/O are loaded only via 'undump' in the monitor. (That way it won't keep crashing all the time.) (1) Includes load address. (2) Default load address allowed. 5.2 Table of supported file formats. This section shows which emulators can access which file formats, unaltered. It is quite incomplete! Legend used in table: Y = yes, fully supported, C = convertor provided, N = no, and - = unknown. x64dsk d64 t64 p00 CBM x64 Y C N N Y c64neu - N - Y - mc64 - Y - Y - c64s - Y Y - - 5.3 Standard data files - internal formats. This section shows the internal format used by each filetype. Most of it was taken from the compatibility section of the x64 manual, and was provided by Jouko 'Jopi' Valta. That section is based on the information acquired from news articles written by: blohm@mathematik.uni-ulm.de (Guntram Blohm) kbrisley@tsegw.tse.com (Kevin Brisley) File: ram (x64) Total Size: RAMSIZE + 4013 --------------------------------------------------- Offset Bytes Description 0 RAMSIZE contents of the RAM The following data is not included yet: RAMSIZE 4096 I/O area with shadows 7 CPU Registers: PC (LO/HI), AC, XR, YR, PS, SP File: x64 Disk File Total Size: 174912 ------------------------------------------ Offset Bytes Description 0 4 Magic header: 'C',0x15, 0x41, 0x64 4 4 Header Version: C1541 Version Major C1541 Version Minor Device Type: 0 = 1541 Max Tracks: 35 (from disks v1.2 upwards) 64 256 byte sectors File: *.d64 disk image Total Size: 174878 ------------------------------------------ + D64 File Structure was developed by Miha Peternel for use in C64S. + D64 file contains all sectors as they appear on the 1541 formatted disk. + Each sector is 256 bytes long. Error information (1 byte per sector) + can be added in the end of file. + __________________________________ + File types currently supported + 174848 bytes = 35 tracks + 175531 bytes = 35 tracks + 683 bytes error information + 196608 bytes = 40 tracks + 197376 bytes = 40 tracks + 768 bytes error information + _______________ + Track sizes + Tracks, size + 1-17 21 sectors * 256 bytes + 18-24 19 sectors * 256 bytes + 25-30 18 sectors * 256 bytes + 31-35 17 sectors * 256 bytes + *36-40* 17 sectors * 256 bytes + Tracks 36-40 are non-standard. + ____________________________________ + Actual layout for 35 track image + Offset, size, description + 0*256, 256 track 1, sector 0 + 1*256, 256 track 1, sector 1 + ... + 20*256, 256 track 1, sector 20 + 21*256, 256 track 2, sector 0 + ... + 682*256, 256 track 35, sector 16 + 683*256, 683 error info (byte per sector in the same order) Sectors are 256 bytes. Sector 0 is at offset $00000 in the .d64 file. Sector 1 is at offset $00100 in the .d64 file, and so on. A normal 1541-format disk is divided into 4 'zones' - zone 1 = tracks 1-17 with 21 sectors (numbered 0-20) zone 2 = tracks 18-24 with 19 sectors (numbered 0-18) zone 3 = tracks 25-30 with 18 sectors (numbered 0-17) zone 4 = tracks 31-35 with 17 sectors (numbered 0-16) The directory lies on track 18. The following info is for track 18 - sector 0 = Block Availability Map (bytes 00-8f, bitmapped) bytes 90-9f = disk name (16 chars, space padded) The first 2 bytes are track and sector to the first directory block. Usually the first directory block is the very next block on the disk directory blocks: byte 0 = track of next directory block byte 1 = sector of next directory block bytes 2-31 = file entry #1 bytes 32-33 = unused (should be 0) bytes 34-63 = file entry #2 bytes 64-65 = unused, etc etc The first byte of a file entry is the type of file ($82 = PRG, $81 = SEQ, $83 = USR, $80 = DEL, $84 = REL). The next two bytes point to the track & sector of the first sector of the file. The next 16 bytes is the filename (padded). The last two bytes (i.e. bytes 30 & 31) gives the block count of the file (in low byte/high byte format). Each file block has 254 bytes of data, unless it is the last block. The first 2 bytes of each block are the track and sector of the next block. If the track is zero then this is the last block, and the sector # really tells the number of bytes used out of the 254 possible. The use count is the number of bytes used plus 1--so if the sector # has a $05, then really only $04 bytes were used out of the last block. The directory is at offset $16500 in the .d64 files. Tracks references start at 1. Sector references start at 0. So if the first 2 bytes of a block are $06 04, the absolute location is at 5 * $1500 + 4 * $100. (5 because that's $06 minus 1. $1500 because at track $06 there are 21 sectors per track, or $1500 bytes. 4 because that is the sector number, and $100 because that's the number of bytes in a sector.) The disk has a total of 35 tracks. There are 17 trachs with 21 sectors (357 sectors total), 7 tracks with 19 sectors (133 sectors total), 6 tracks with 18 sectors (108 sectors total), and 5 tracks with 17 sectors (85 sectors total). So total sectors per disk (or .d64 image) is 357+133+108+85 = 683 total, or 174,848 bytes total, which is the exact size of the .d64 files. File: *.t64 tape image Total Size: Varies ------------------------------------------ Offset Bytes Description 0 64 Tape Record: 0 32 Tape description + EOF (for type) 32 2 Tape version: $0100 34 2 Max number of files, in LO/HI 36 2 Number of existing files, in LO/HI 38 2 - 40 24 User description, as displayed in file menu 64 32*n File Record(s) for each of n files: +0 1 Slot allocation flag: 00 = free entry 01 = normal tape file + 03 = memory snapshot v0.9, uncompressed + 02..FF = reserved for memory snapshots +1 1 File type +2 2 Start address in C64 memory, in LO/HI +4 2 End address in C64 memory, in LO/HI +6 2 - +8 4 File start address on the image, in LO/HI +12 4 - +16 16 C64 filename 64+32*n ??? File contents. File: CBM Files Total Size: Varies --------------------------------------- Offset Bytes Description 0 2 Load address in LO/HI format. File: *.p00 file image Total Size: Varies ------------------------------------------ Offset Bytes Description 0 9 String "C64File" terminated by 00. 9 17 Original C64 Filename. 10 1 Record size for REL files. 26 Original file 5.4 Converting between file formats. Instructions on how to interconvert between all of the formats used by the various C64 emulators. Formats: 1) .d64 - Disk image used by C64s 2) .t64 - Tape image used by C64s 3) .p00 - image format used by C64neu Conversions: 1) .p00 to .t64 a) Start C64neu b) First get a "Manager" window up c) Place the cursor on the *.P00 file you want converted d) Then use "Manager/Export" (ALT-M-E). This will save it as a *.PRG. e) Then use MAKETAPE.EXE to make a *.t64 file. 2) .t64 to .p00 Use t64top00.exe, which creates p00 copies of all the files in a t64. 6. How to extract the Rom images required by the emulators. ----------------------------------------------------------- Type in the following files on your C64 and run them to get the rom image files. Then transfer those files onto the machine that you require. See the comp.sys.cbm FAQ section 7 for some details on transfers. Alternatively, You could get TheA64Package.lha and extract the file called TheA64Package/64Prgs/SaveROMs. This will extract the basic and kernal roms from a C64. 6.1 C64 roms - Basic, Kernal & Charset. C64 BASIC ROM extractor: 10 OPEN 5,8,2,"64BASIC,P,W" 20 FOR X=40960 TO 49151:PRINT#2,CHR$(PEEK(X));:NEXT 30 CLOSE 5 C64 KERNEL ROM extractor: 10 OPEN 5,8,2,"64KERNEL,P,W" 20 FOR X=57344 TO 65535:PRINT#2,CHR$(PEEK(X));:NEXT 30 CLOSE 5 C64 BASIC and Kernal ROM extractor: 10 OPEN5,8,5,"0:C64ROM,S,W" 20 FOR X=40960 TO 49151 30 A$=CHR$(PEEK(X)) 40 PRINT#5,A$;:NEXT 50 FOR X=57344 TO 65535 60 A$=CHR$(PEEK(X)) 70 PRINT#5,A$;:NEXT 90 CLOSE5 C64 Character ROM extractor: 10 POKE 56334,0:POKE 1,51 20 FOR X=16384 TO 20479:POKE X,PEEK(X+36864):NEXT 30 POKE 1,55:POKE 56334,1 40 OPEN 5,8,5,"64CHARGEN,P,W" 50 FOR X=16384 TO 20479 60 PRINT#5,CHR$(PEEK(X));:NEXT 70 CLOSE 5 6.2 VIC20 roms - Basic, Kernel & Charset. VIC20 BASIC ROM extractor: 10 OPEN 5,8,2,"V20BASIC,P,W" 20 FOR X=49152 TO 57343:PRINT#5,CHR$(PEEK(X));:NEXT 30 CLOSE 5 VIC20 KERNEL ROM extractor: 10 OPEN 5,8,2,"V20KERNEL,P,W" 20 FOR X=57344 TO 65535:PRINT#5,CHR$(PEEK(X));:NEXT 30 CLOSE 5 VIC20 Character ROM extractor: 10 OPEN 5,8,2,"V20CHARGEN,P,W" 20 FOR X=32768 TO 36863:PRINT#5,CHR$(PEEK(X));:NEXT 30 CLOSE 5 6.3 1541 rom. C1541 ROM extractor: Extract area $C000-$FFFF 100 B=16384:I=B 110 OPEN 15,8,15 120 FOR H=192 TO 255:PRINT H; 130 FOR L=0 TO 255 140 PRINT#15,"M-R";CHR$(L);CHR$(H) 150 GET#15,A$ 160 Z=FRE(0) 170 POKE I,ASC(A$+CHR$(0)) 180 I=I+1:NEXT L 190 NEXT H 200 CLOSE 15 210 OPEN 5,8,5,"0:C1541ROM,P,W" 220 FOR X=B TO I-1:PRINT#5,CHR$(PEEK(X));:NEXT 230 CLOSE 5 7. Other information. --------------------- 7.1 Newsgroups worth reading. If you are wanting as a question about an emulator or read what other people are saying, then I recommend that you read comp.emulators.cbm :) Another good group to read for general info about Commodore 8bit machines is comp.sys.cbm. 7.2 Emulator benchmarks. Some people are interested in the relative speed of the emulators with respect to the actual machine it's emulating. So far, only the following simple test program has been used in benchmarking emulators. More tests and more machines are needed! Benchmark test #1. 10 a = ti 20 print "[clr/home]" 30 for i = 1 to 1000 40 print "[up][up]"; i ; i * i 50 next 60 print "[down][down] time = "; ti -a Results: "Machine" "Config" "Software" "Score" C128 64 mode CBM BASIC 1590 C128 40 col CBM BASIC 2226 C128 40 col fast CBM BASIC 1071 (1) C128 80 col CBM BASIC 4072 C128 80 col fast CBM BASIC 2062 Sun SPARC IPC 8Mb RAM x64-0.2.2 1452 (2) Osborne 486 DX2/50 16Mb RAM c64hercules 286 Osborne 486 DX2/50 16Mb RAM c64sally 234 Osborne 486 DX2/50 16Mb RAM c64s10cd 1486 Osborne 486 DX2/50 16Mb RAM c64neu 2985 Osborne 486 DX2/50 16Mb RAM c64alive --- (3) Amiga 3000/25 6Mb RAM A64v2 788 Notes: (1) Screen automatically blanked during test. (2) "ti" clock doesn't necessarilly keep real time in x64. In x64 the ti clock is relative to the virtual speed, not the wall clock time. (3) c64alive wouldn't run on test machine. 7.3 Emulator detection. Writers of software on the C64 or emulators may wish to know whether the "machine" their code is executing on is a real C64, or not. A small BASIC program was written by Wolfgang Lorenz, and posted by Paul David Doherty, which tests this. Critical addresses for the PIA expansion The critical addresses of the device are 57216--57343 ($DF80--$DFFF). There is the PIA chip to which you POKE the values to switch memory blocks. The PIA does not have 128 registers, as one might think. There are sixteen copies of its 4 addresses in that memory area. For instance, the addresses 57216, 57284, 57288 and 57340 are equivalent to each other. here's a small CBM-BASIC program by Wolfgang Lorenz which tests whether it is running on a real C-64 or on an emulator. It also contains a suggested method for emulators to allow other programs to detect them. This detection method is already implemented + in the PC64/MC64 emulator; it would be nice if other emulators (C64S, C64ALIVE, X64) would adhere to it too. 100 rem *** where am i? *** 105 rem ------------------------------- 110 rem this is the recommended method 115 rem how to detect a c64 emulator, 120 rem e.g. for disabling fast loaders 125 rem 130 rem - the byte at $dfff changes 135 rem between $55 and $aa 140 rem - the byte at $dffe contains 145 rem the manufacturer code letter: 150 rem a = c64alive 155 rem l = mc64 beta 10-12, now free 160 rem m = mc64 beta 13-17, now free 161 rem p = personal c64 175 rem s = c64 software emulator 180 rem x = x64 185 rem - the word at $dffc contains 190 rem the emulator version number, 195 rem e.g. $0120 for version 1.2 200 rem - the bytes from $dfa0 contain 205 rem a copyright string with 210 rem emulator name and version, 215 rem $0d, copyright and $00. this 220 rem was at $df00 in early mc64 225 rem betas, but had to be moved 230 rem because $df00 is reserved for 235 rem ram expansion units 240 : 245 print:x=57343:if peek(x)<>85 then if peek(x)<>85 then 360 250 if peek(x)<>170 then 360 255 if peek(x)<>85 then 360 260 if peek(x)<>170 then 360 265 m$=chr$(peek(57342)):print "manufacturer = '";m$;"' "; 270 if m$="a" then print "(c64alive)"; 275 if m$="p" then print "(pc64)"; 285 if m$="s" then print "(c64s)"; 290 if m$="x" then print "(x64)"; 295 print:v=peek(57340)+peek(57341)*256 300 for i=0 to 3:v$=mid$("0123456789abcdef",1+(v and 15),1)+v$:v=int(v/16):next 305 print "version = $";v$ 310 print:poke 780,160 315 if (m$="m" or m$="l") and v$="0100" and peek(60686)<>2 then poke 780,0 320 poke 782,223:sys 43806:print:end 325 : 330 rem ------------------------------- 335 rem these are manufacturer-specific 340 rem workarounds, which should be 345 rem replaced with the official 350 rem emulator detection method 355 : 360 if peek(60682)<>0 then 385 365 print "c64 software emulator" 370 print "(c)1991-94 miha peternel" 375 end 380 : 385 if peek(60686)<>0 then 410:rem untested 390 print "x64 (version 1 or 2)" 395 print "(c)1993-94 j.sonninen/t.rantanen/j.valta" 400 end 405 : 410 x=57087:if peek(x)+peek(x)+peek(x)<>0 then 435 415 print "c64alive" 420 print "(c)1993-94 f.littmann developments" 425 end 430 : 435 print "this is an original c64 or c128" You can distinquish a real C128 from C64 by testing the VDC status register at $D600/$D601: If the value written to $D601 remains intact, its a C128 in either mode, otherwise a real C64. There is no way (or need) to tell C64 from C64c though. 7.4 Other sources of information. "watson" has a copy of the C64S faq. -- Anywhere else????? There are a number of WWW addresses that may be of interest... - The Commodore 64 WWW Server. (Has c64s and x64 documents) http://www.csv.warwick.ac.uk/~stuce/emul/index.html - WWW Personal Computing and Emulation Homepage (General emulator pages, non just Commodore) http://www.cs.umd.edu/users/fms/comp/ - Commodore emulation (The Commodore section from the link above) http://www.cs.umd.edu/users/fms/comp/Emulation/Commodore.html - X64 Emulator / Simulator For Unix (Offical site for x64) http://stekt.oulu.fi:/~jopi/x64.html From: R.Alphey@dce.vic.gov.au (Russell Alphey) Newsgroups: comp.emulators.cbm,comp.emulators.announce Subject: COMP.EMULATORS.CBM: Emulation FAQ for Commodore 8bit Computers (2/2) Summary: Emulation FAQ for Commodore 8bit Computers. Followup-To: comp.emulators.cbm Approved: emulators@qualcomm.com Distribution: Organization: Department of Conservation and Natural Resources, Vic., Aust. Keywords: cbm commodore 8bit emulation faq Archive-name: 8bit-emulation-faq-part2 Comp-answers-archive-name: commodore/8bit-emulation-faq-part2 News-answers-archive-name: commodore/8bit-emulation-faq-part2 Comp-emulators-cbm-archive-name: 8bit-emulation-faq-part2 Comp-sys-cbm-archive-name: 8bit-emulation-faq-part2 Version: 2.07 Author: Russell Alphey (R.Alphey@dce.vic.gov.au) CBM EMULATION FAQ - (Version 2.07 31 Oct 94) ================= This faq is usually posted twice a month on the 4th and 19th of the month to comp.emulators.cbm, comp.emulators.announce. Since comp.emulators.cbm was set up to remove the emulator discussion from comp.sys.cbm, this faq will not be posted to comp.sys.cbm. Lines preceeded by a '+' have been added or modified since the last version was posted. This faq is in two parts due to its size. The second part is essentially reviews of various emulators, plus some data. 8. Credits. ----------- If anyone has a better description for any of these emulators then send me a copy, also if you know of any other emulators or ftp sites then send me them as well so that I can update the information. Is any one out there thinking of making an emulator for a machine other than a C64. (eg C128, VIC20, Plus4, C16, PET) I will add this to the list also. Thanks to: All the emulator authors - For writing your emulator. ftp.funet.fi : ftp site - For having a large selection of emulators available. watson.mbb.sfu.ca : ftp site - For having a large selection of emulators available. Jim Sloan : jsloan@u.washington.edu - For posting the rom extraction routines on comp.sys.cbm. Jouko Valta : jopi@stekt.oulu.fi - For sending me some documentation on the ATARI-ST emulator, the rom extraction routines, and comments. - For "5. Emulator File Formats" section. - For sending me the updated Kernal ROM section. Jim Brain : brain@msen.com - For his comments & questions on version number. Jens-Uwe Rumstich : rumstich@informatik.hu-berlin.de - For pointing out some German ftp sites & c64alive emu. Eli Mackenzie : eli.mackenzie@fleming.edu - For noticing some mistyped words and additions for 2.6. Fredrik Ekman : D91FE@rby.hk-r.se - For info on Pet emulators Eric Brown : brown@sme.siemens.com - For info on Pet emulators Caronni : caronni@tik.ethz.ch - For SX-64 rom information. Per Olofsson : cl3polof@cling.gu.se - For info on A64 emulator. Marko Samuli Makela : Marko.Makela@hut.fi - For PET 64 aka 4064 aka Educator 64 kernel rom differences - For writing the C64 Kernal ROM revision section. Wolfgang Lorenz - For the program and decriptinn of emulator detection Paul David Doherty (h0142kdd@fx2800.rz.hu-berlin.de) - For posting the detection program and suggestions for standard file formats for the emulators. Guntram Blohm m (blohm@mathematik.uni-ulm.de) - For description of the P00 file format and converting it. Kevin Brisley (kbrisley@tsegw.tse.com) - For description of the T64 file format and converting it. And extra special thanks to: Peter Weighill - stuce@csv.warwick.ac.uk - For all the hard work he put into getting this FAQ going. 9. Data. 9.1 Commodore 64 KERNAL ROM versions. Below is information on differences between the Commodore 64 KERNAL revisions R1, R2, R3 and the Commodore SX-64 and the Commodore 4064 ROMs. The chronological order must be R1, R2, 4064, R3 and SX-64. The KERNAL ROM R1 was obviously used only in early NTSC systems. It lacks the PAL/NTSC detection, and always uses white color while clearing the screen. The white color feature is from the VIC-20 ROM, but the VIC had a white background by default. Thus, this feature can be listed as a bug. The CIA 1 timer A will always divide the system clock through $411C == 16668. The other ROMs use the values $4026 an $4296, depending on the system version (PAL/NTSC), so their interrupt frequency is 985248 Hz / 16422 == 59.996 Hz or 1022727 Hz / 17046 == 59.998 Hz. Note that both clock divisor values differ from the value used in the KERNAL R1. The PAL/NTSC flag ($2A6) affects the RS-232 timer settings as well. It seems that the new RS-232 tables for the PAL have been created on the upper BASIC interpreter area ($E000--$E4FF), from the address $E4EC on. Surprisingly also the original NTSC tables have been changed. Very probably the units running the KERNAL R1 had a slower clock frequency. Extrapolating from the interrupt timer values, they ran at 1.0000 MHz. Now this makes sense, since the first (NTSC) video chips had 262 lines per frame and 64 cycles per line. The frame rate was thus 1 MHz / 262 / 64 == 59.637 Hz. The newer NTSC units run at 1022727 Hz and draw 263 lines per frame and use 65 cycles per line. This produces a frame rate of 59.826 Hz. Well, now it is very obvious that there has been at least one mother board type that has only been used on NTSC units. Probably the processor clock was created from a 8 MHz chrystal frequency, which served as the dot clock. In the newer NTSC units, the video chip still produces the processor clock by dividing the dot clock by eight. An auxiliary clock signal will be generated by dividing the chrystal frequency of 14318181 Hz by 14. This signal is actively being compared with the processor clock and it guarantees the correct frequency of dot clock, 8/14 of the crystal frequency. The PAL systems have been developed later, and they always run at the same clock frequency, 17734472 Hz / 18. The frame rate has always been 17734472 Hz / 312 / 63 == 50.125 Hz on those puppies. The changes in the latter ROM revisions were mainly cosmetic. There were some bugs corrected in the R3 revision, though. Format for list: Address: 901227-01 (Commodore 64 KERNAL R1, $FF80 content $AA) 901227-02 (Commodore 64 KERNAL R2, $FF80 content $00) 901227-03 (Commodore 64 KERNAL R3, $FF80 content $03) ??????-?? (SX-64 or DX-64 KERNAL, $FF80 content $43) ??????-?? (4064 aka PET 64 aka Educator 64, $FF80 content $64) E119: C9, FF AD, E4 AD, E4 AD, E4 AD, E4 E42D: 20, 1E, AB 20, 1E, AB 20, 1E, AB 20, 1E, AB 4C, 41, E4 E477: 20, 20, 2A, 2A, 2A, 2A, 20, 43, 4F, 4D, 4D, 4F, 44, 4F, 52, 45, 20, 20, 2A, 2A, 2A, 2A, 20, 43, 4F, 4D, 4D, 4F, 44, 4F, 52, 45, 20, 20, 2A, 2A, 2A, 2A, 20, 43, 4F, 4D, 4D, 4F, 44, 4F, 52, 45, 20, 20, 20, 2A, 2A, 2A, 2A, 2A, 20, 20, 53, 58, 2D, 36, 34, 20, 2A, 2A, 2A, 2A, 20, 43, 4F, 4D, 4D, 4F, 44, 4F, 52, 45, 20, 34, -: 20, 36, 34, 20, 42, 41, 53, 49, 43, 20, 56, 32, 20, 2A, 2A, 2A, 20, 36, 34, 20, 42, 41, 53, 49, 43, 20, 56, 32, 20, 2A, 2A, 2A, 20, 36, 34, 20, 42, 41, 53, 49, 43, 20, 56, 32, 20, 2A, 2A, 2A, 42, 41, 53, 49, 43, 20, 56, 32, 2E, 30, 20, 20, 2A, 2A, 2A, 2A, 30, 36, 34, 20, 20, 42, 41, 53, 49, 43, 20, 56, 32, 2E, 30, 20, -: 2A, 0D, 0D, 20, 36, 34, 4B, 20, 52, 41, 4D, 20, 53, 59, 53, 54, 2A, 0D, 0D, 20, 36, 34, 4B, 20, 52, 41, 4D, 20, 53, 59, 53, 54, 2A, 0D, 0D, 20, 36, 34, 4B, 20, 52, 41, 4D, 20, 53, 59, 53, 54, 2A, 0D, 0D, 20, 36, 34, 4B, 20, 52, 41, 4D, 20, 53, 59, 53, 54, 2A, 2A, 2A, 2A, 0D, 0D, 00, 20, 20, 20, 20, 20, 20, 20, 20, 20, -: 45, 4D, 20, 20, 00, 2B 45, 4D, 20, 20, 00, 5C 45, 4D, 20, 20, 00, 81 45, 4D, 20, 20, 00, B3 20, 20, 20, 20, 20, 63 E4AD: AA, AA, AA, AA, AA, AA, AA, AA, AA, AA 48, 20, C9, FF, AA, 68, 90, 01, 8A, 60 48, 20, C9, FF, AA, 68, 90, 01, 8A, 60 48, 20, C9, FF, AA, 68, 90, 01, 8A, 60 48, 20, C9, FF, AA, 68, 90, 01, 8A, 60 E4C8: AA, AA, AA, AA, AA, AA, AA, AA, AA, AA, AA, AA, AA, AA, AA, AA, AA, AA, AA, AA, AA, AA, AA, AA, AA, AA, AA, AA, AA, AA, AA, AA, AA, AA, AA, AA, AA, AA, AA, AA, AA, AA, AA, 85, A9, A9, 01, 85, AA, AA, AA, AA, AA, AA, AA, AA, AA, AA, AA, 85, A9, A9, 01, 85, 2C, 86, 02, 30, 0A, A9, 00, A2, 0E, 9D, 20, D0, CA, 10, FA, 4C, -: AA, AA, AA, AA, AA, AA, AA, AA, AA, AA, AA, AA, AA, AA, AA, AA, AA, AA, AD, 21, D0, 91, F3, 60, 69, 02, A4, 91, C8, D0, 04, C5, AB, 60, AD, 86, 02, 91, F3, 60, 69, 02, A4, 91, C8, D0, 04, C5, AB, 60, AD, 86, 02, 91, F3, 60, 69, 02, A4, 91, C8, D0, 04, C5, 87, EA, AD, 21, D0, 91, F3, 60, 69, 02, A4, 91, C8, D0, 04, C5, -: AA, AA, AA, AA, AA, AA, AA, AA, AA, AA, AA, AA, AA, AA, AA, AA, A1, D0, F7, 60, 19, 26, 44, 19, 1A, 11, E8, 0D, 70, 0C, 06, 06, A1, D0, F7, 60, 19, 26, 44, 19, 1A, 11, E8, 0D, 70, 0C, 06, 06, A1, D0, F7, 60, 19, 26, 44, 19, 1A, 11, E8, 0D, 70, 0C, 06, 06, A1, D0, F7, 60, 19, 26, 44, 19, 1A, 11, E8, 0D, 70, 0C, 06, 06, -: AA, AA, AA, AA, AA, AA, AA, AA D1, 02, 37, 01, AE, 00, 69, 00 D1, 02, 37, 01, AE, 00, 69, 00 D1, 02, 37, 01, AE, 00, 69, 00 D1, 02, 37, 01, AE, 00, 69, 00 E535: 0E 0E 0E 06 01 E57C: B5, D9, 29, 03, 0D, 88, 02, 85, D2, BD, F0, EC, 85, D1, A9, 27, B5, D9, 29, 03, 0D, 88, 02, 85, D2, BD, F0, EC, 85, D1, A9, 27, 20, F0, E9, A9, 27, E8, B4, D9, 30, 06, 18, 69, 28, E8, 10, F6, 20, F0, E9, A9, 27, E8, B4, D9, 30, 06, 18, 69, 28, E8, 10, F6, 20, F0, E9, A9, 27, E8, B4, D9, 30, 06, 18, 69, 28, E8, 10, F6, -: E8, B4, D9, 30, 06, 18, 69, 28, E8, 10, F6, 85, D5, 60 E8, B4, D9, 30, 06, 18, 69, 28, E8, 10, F6, 85, D5, 60 85, D5, 4C, 24, EA, E4, C9, F0, 03, 4C, ED, E6, 60, EA 85, D5, 4C, 24, EA, E4, C9, F0, 03, 4C, ED, E6, 60, EA 85, D5, 4C, 24, EA, E4, C9, F0, 03, 4C, ED, E6, 60, EA E5EF: 09 09 09 0F 09 E5F4: E6, EC E6, EC E6, EC D7, F0 E6, EC E622: ED, E6 ED, E6 91, E5 91, E5 91, E5 EA07: A9, 20, 91, D1, A9, 01, 91, F3, 88, 10, F5, 60 A9, 20, 91, D1, 20, DA, E4, EA, 88, 10, F5, 60 20, DA, E4, A9, 20, 91, D1, 88, 10, F6, 60, EA 20, DA, E4, A9, 20, 91, D1, 88, 10, F6, 60, EA A9, 20, 91, D1, 20, DA, E4, EA, 88, 10, F5, 60 ECCA: 1B, 00 9B, 37 9B, 37 9B, 37 9B, 37 ECD2: 00 0F 0F 0F 0F ECD9: 0E, 06, 01, 02, 03, 04, 00, 01, 02, 03, 04, 05, 06, 07 0E, 06, 01, 02, 03, 04, 00, 01, 02, 03, 04, 05, 06, 07 0E, 06, 01, 02, 03, 04, 00, 01, 02, 03, 04, 05, 06, 07 03, 01, 01, 02, 03, 04, 00, 01, 02, 03, 04, 05, 06, 07 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00 EF94: 85, A9, 60 85, A9, 60 4C, D3, E4 4C, D3, E4 85, A9, 60 F0D8: 0D, 50, 52, 45, 53, 53, 20, 50, 4C, 41, 59, 20, 4F, 4E, 20 0D, 50, 52, 45, 53, 53, 20, 50, 4C ,41, 59, 20, 4F, 4E, 20 0D, 50, 52, 45, 53, 53, 20, 50, 4C ,41, 59, 20, 4F, 4E, 20 4C, 4F, 41, 44, 22, 3A, 2A, 22, 2C, 38, 0D, 52, 55, 4E, 0D 0D, 50, 52, 45, 53, 53, 20, 50, 4C ,41, 59, 20, 4F, 4E, 20 F387: 03 03 03 08 03 F428: D0, 0B, AD, 95, 02, 0A, A8, AD, 96, 02, 4C, 3F, F4, 0A, AA, BD, F0, 1C, 0A, AA, AD, A6, 02, D0, 09, BC, C1, FE, BD, C0, FE, 4C, F0, 1C, 0A, AA, AD, A6, 02, D0, 09, BC, C1, FE, BD, C0, FE, 4C, F0, 1C, 0A, AA, AD, A6, 02, D0, 09, BC, C1, FE, BD, C0, FE, 4C, F0, 1C, 0A, AA, AD, A6, 02, D0, 09, BC, C1, FE, BD, C0, FE, 4C, -: C0, FE, 0A, A8, BD, C1, FE, 2A, 48, 98, 69, C8, 8D, 99, 02, 68, 40, F4, BC, EB, E4, BD, EA, E4, 8C, 96, 02, 8D, 95, 02, AD, 95, 40, F4, BC, EB, E4, BD, EA, E4, 8C, 96, 02, 8D, 95, 02, AD, 95, 40, F4, BC, EB, E4, BD, EA, E4, 8C, 96, 02, 8D, 95, 02, AD, 95, 40, F4, BC, EB, E4, BD, EA, E4, 8C, 96, 02, 8D, 95, 02, AD, 95, -: 69, 00, 8D, 9A, 02 02, 0A, 20, 2E, FF 02, 0A, 20, 2E, FF 02, 0A, 20, 2E, FF 02, 0A, 20, 2E, FF F459: 4C 20 20 20 20 F4B7: 7B 7B 7B F7 7B F5F9: 5F 5F 5F F7 5F F762: 91, C9, FF, F0, FA A1, 20, E0, E4, EA A1, 20, E0, E4, EA A1, 20, E0, E4, EA A1, 20, E0, E4, EA F81F: 2F 2F 2F 2F 2B F82C: 2F 2F 2F 2F 2B FCFC: 18, E5 5B, FF 5B, FF 5B, FF 5B, FF FDDD: A9, 1B, 8D, 04, DC, A9, 41, 8D, 05, DC, A9, 81, 8D, 0D, DC, AD, AD, A6, 02, F0, 0A, A9, 25, 8D, 04, DC, A9, 40, 4C, F3, FD, A9, AD, A6, 02, F0, 0A, A9, 25, 8D, 04, DC, A9, 40, 4C, F3, FD, A9, AD, A6, 02, F0, 0A, A9, 25, 8D, 04, DC, A9, 40, 4C, F3, FD, A9, AD, A6, 02, F0, 0A, A9, 25, 8D, 04, DC, A9, 40, 4C, F3, FD, A9, -: 0E, DC, 29, 80, 09, 11, 8D, 0E, DC, 4C, 8E, EE 95, 8D, 04, DC, A9, 42, 8D, 05, DC, 4C, 6E, FF 95, 8D, 04, DC, A9, 42, 8D, 05, DC, 4C, 6E, FF 95, 8D, 04, DC, A9, 42, 8D, 05, DC, 4C, 6E, FF 95, 8D, 04, DC, A9, 42, 8D, 05, DC, 4C, 6E, FF FEC2: AC, 26, A7, 19, 5D, 11, 1F, 0E, A1, 0C, 1F, 06, DD, 02, 3D, 01, C1, 27, 3E, 1A, C5, 11, 74, 0E, ED, 0C, 45, 06, F0, 02, 46, 01, C1, 27, 3E, 1A, C5, 11, 74, 0E, ED, 0C, 45, 06, F0, 02, 46, 01, C1, 27, 3E, 1A, C5, 11, 74, 0E, ED, 0C, 45, 06, F0, 02, 46, 01, C1, 27, 3E, 1A, C5, 11, 74, 0E, ED, 0C, 45, 06, F0, 02, 46, 01, -: B2, 00, 6C B8, 00, 71 B8, 00, 71 B8, 00, 71 B8, 00, 71 FF08: 93, 02, 29, 0F, D0, 0C, AD, 95, 02, 8D, 06, DD, AD, 96, 02, 4C, 95, 02, 8D, 06, DD, AD, 96, 02, 8D, 07, DD, A9, 11, 8D, 0F, DD, 95, 02, 8D, 06, DD, AD, 96, 02, 8D, 07, DD, A9, 11, 8D, 0F, DD, 95, 02, 8D, 06, DD, AD, 96, 02, 8D, 07, DD, A9, 11, 8D, 0F, DD, 95, 02, 8D, 06, DD, AD, 96, 02, 8D, 07, DD, A9, 11, 8D, 0F, DD, -: 25, FF, 0A, AA, BD, C0, FE, 8D, 06, DD, BD, C1, FE, 8D, 07, DD, A9, 12, 4D, A1, 02, 8D, A1, 02, A9, FF, 8D, 06, DD, 8D, 07, DD, A9, 12, 4D, A1, 02, 8D, A1, 02, A9, FF, 8D, 06, DD, 8D, 07, DD, A9, 12, 4D, A1, 02, 8D, A1, 02, A9, FF, 8D, 06, DD, 8D, 07, DD, A9, 12, 4D, A1, 02, 8D, A1, 02, A9, FF, 8D, 06, DD, 8D, 07, DD, -: A9, 11, 8D, 0F, DD, A9, 12, 4D, A1, 02, 8D, A1, 02, A9, FF, 8D, AE, 98, 02, 86, A8, 60, AA, AD, 96, 02, 2A, A8, 8A, 69, C8, 8D, AE, 98, 02, 86, A8, 60, AA, AD, 96, 02, 2A, A8, 8A, 69, C8, 8D, AE, 98, 02, 86, A8, 60, AA, AD, 96, 02, 2A, A8, 8A, 69, C8, 8D, AE, 98, 02, 86, A8, 60, AA, AD, 96, 02, 2A, A8, 8A, 69, C8, 8D, -: 06, DD, 8D, 07, DD, AE, 98, 02, 86, A8, 60 99, 02, 98, 69, 00, 8D, 9A, 02, 60, EA, EA 99, 02, 98, 69, 00, 8D, 9A, 02, 60, EA, EA 99, 02, 98, 69, 00, 8D, 9A, 02, 60, EA, EA 99, 02, 98, 69, 00, 8D, 9A, 02, 60, EA, EA FF5B: AA, AA, AA, AA, AA, AA, AA, AA, AA, AA, AA, AA, AA, AA, AA, AA, 20, 18, E5, AD, 12, D0, D0, FB, AD, 19, D0, 29, 01, 8D, A6, 02, 20, 18, E5, AD, 12, D0, D0, FB, AD, 19, D0, 29, 01, 8D, A6, 02, 20, 18, E5, AD, 12, D0, D0, FB, AD, 19, D0, 29, 01, 8D, A6, 02, 20, 18, E5, AD, 12, D0, D0, FB, AD, 19, D0, 29, 01, 8D, A6, 02, -: AA, AA, AA, AA, AA, AA, AA, AA, AA, AA, AA, AA, AA, AA, AA, AA, 4C, DD, FD, A9, 81, 8D, 0D, DC, AD, 0E, DC, 29, 80, 09, 11, 8D, 4C, DD, FD, A9, 81, 8D, 0D, DC, AD, 0E, DC, 29, 80, 09, 11, 8D, 4C, DD, FD, A9, 81, 8D, 0D, DC, AD, 0E, DC, 29, 80, 09, 11, 8D, 4C, DD, FD, A9, 81, 8D, 0D, DC, AD, 0E, DC, 29, 80, 09, 11, 8D, -: AA, AA, AA, AA, AA 0E, DC, 4C, 8E, EE 0E, DC, 4C, 8E, EE 0E, DC, 4C, 8E, EE 0E, DC, 4C, 8E, EE FF80: AA 00 03 43 64 FF82: 18, E5 5B, FF 5B, FF 5B, FF 5B, FF FFF8: 42, 59 42, 59 42, 59 42, 59 00, 00 Appendices: The things that don't really belong in the body of the faq, such as: A. Reviews: Lengthier comments about particular emulators, as they come to hand. These may, or may not, be "biased"! You are invited to add to or correct what is here. 1. MC64 / C64NEU 2. A64 V3 3. C64S (commercial) 4. PlaySID V3.0 5. C64S File Manager B. How-to: Here's how to perform some task that might be moderately involved! 1. Infocom adventures with PC64SH 2. Playing multi-disk-image games with C64S 1.0C --------------------------------------------------------------------- 1. MC64 / C64NEU This is a repost of a repost. It is essentially a report on MC64/C64NEU by its author. There has been some discussion about the German emulator MC64 (aka C64NEU) in this group recently. This letter by the author of MC64 (Wolfgang Lorenz) tries to answer some of the questions that have been posed. I am forwarding this from CompuServe at the author's request. -- Dave <> The microMedia C64-Emulator (MC64) 1.0 will probably be released in August 94. It comes on a CD with bundled C64 software and a 170 page German manual for 100 DM ($66). A reduced floppy disk version should be available. The MC64 cable will cost about 30 DM ($20) additionally. At present, we do not plan to release an English version. (Note that this is marketing stuff, and I'm only the programmer.) > BETA 12 is the latest publically available version. The major changes in release 1.0 are: - Bundled C64 software - Printed manual - C64S compliant disk images *.D64 - L64 fastloader with 1:37 min per disk (not file copy, only whole disk) - Individual program options are saved in a global database called MC64.PDB - Device #4 is redirected to PRN - Alternate digital joystick adapter for non IBM-compliant LPT cards without open-collector control lines ...and of course most program errors will be fixed. There are three BETA 12 versions which differ in the expiration date. Two of them work until 1. May 94 or 1. July 94 and can be easily tricked by setting the DOS date back. The 3rd version is on the microMedia demo CD and works until 1. November 94. It scans all local hard disks in the background for newer files and prompts the user every minute if it found one. <> MC64 maps SID voices 1 to 3 to Adlib and digitized samples to Soundblaster DAC. Voice synchronisation, ring modulation and filters aren't supported. The Adlib sounds a little different from the original, but the tunes are cleaner than the sample approach of C64S, C64Alive and SIDPlay. Digital drums and noises sound good, but digitized speech has timing problems if the blank screen rate is higher than 1. It sounds like a croaking raven then. <> The SID-to-Adlib mapping cannot output sound to a PC speaker, it needs a real sound card. Under Windows 3.1 Enhanced Mode, the BETA 12 keeps quiet because some old SBPFM.DRV together with VSBD.386 caused two error messages when accessing the Adlib and Soundblaster IO registers ("The sound card is used by another application", or so). In the meantime, I've downloaded the updated drivers from the CompuServe Blaster forum, and now the sound also works under Windows 3.1 Enhanced Mode. The release version contains an additional checkbox in the dialog to prevent the error messages for users with old sound drivers. <> As a rule of thumb, copy protected original software (except simple read errors) and fast loaders don't work. Almost every disk image based game and some freezed programs have built-in fast loaders. There is also a problem with the synchronisation between CPU and VIC. Instead of running parallel, the emulator switches them every 64 us. For a real-time 1 us task emulation, a 486DX2-66 is too slow -- or I'm not good enough to write it. <> The recommended CPU for MC64 is a 486DX2-66 with a VLB or PCI VGA card. In the BETA 12 and above, you could try to insert additional blank screens with . The checkbox to disable the software screen cache doesn't work in the BETA 12. This bug has been fixed in the release version. <> There seems to be a problem. I've tried to contact Miha twice because of keyboard mapping and file format standards, but he didn't answer. :-( <> Well, it takes me about 2 hours to build one MC64 cable. This includes the digital joystick interface and shopping the parts. ;-) <> Bruce Lee seems to have a problem and sometimes even crashes my real C64. This happens if you enter the 3rd screen. Just restart the game. <> There are two hidden VIC registers called VideoCounter (VC) and RasterCounter (RC). Alas, nobody seems to know the right algorithm how these registers are handled, especially when changing the Y-Scroll bits in VIC[$11]. You can switch between 3 different algorithms in the MC64 release version, but none of them is perfect. There is always a game which won't run with a certain algorithm. If anyone knows how the Video- and RasterCounters really work, please contact me at 100112.220@compuserve.com. <> Not really. There is a program called T64TOP00.EXE (a predecessor was IMPORT.EXE in the BETA 12), which makes P00 copies of all T64 files in a directory tree. Hope that clears things up a little bit. -- Wolfgang Lorenz (not speaking English, just reading and writing it ) 2. A64 V3. Review by: James O. Shank Jr. HEE! v131p9t3@ubvms.cc.buffalo.edu AKA: Ninstar Cybermage I or shank@acsu.buffalo.edu Black Phoenix Rising... A or aa247@freenet.acsu.buffalo.edu as posted in comp.sys.cbm, 16 Jun 1994. I've recently had the opportunity to play around with a copy of A64 V3. I've found that alot of programs run. Not necessarily as well as on a c64, and slow, but alot more programs work than under version 2. On the other hand, some programs which worked fine under version 2 (times of lore, for example) do not work under version 3 because the graphics emulation, though faster, does not handle multiple graphics banks very well. Those of you who know alot about graphics are going "Uh-Oh" right now, but the problem doesn't seem to appear in all that many programs. One thing I've noticed is that the graphics Emulation runs a bit slower than the rest of the emulator at times, which means that if you play something very complicated, like a flight simulator, the input will be processed faster than the graphics, meaning that you can make a 90 degree angle turn between two frames. The convert software can solve alot of these problems by skipping the middle man where processing is concerned, and speeding up things by letting the Amiga do the work without the emulations help. It basically looks for the densest blocks of code and converts them into Amiga assembly language. Whenever the program tries to emulate a block that was translated, it executes the Amiga block instead. Under V2, this was a long and complicated process that most people lacked the expertise to perform, as you had to search through the assembly language yourself and tell the computer which blocks it had to convert. Under version 3, the entire process is automated, allowing you to load a memory map, tell the computer to convert it, and watch it go. I like the results I've had thus far, though I lack the memory(stock amiga 600) to do any large programs. The code files tend to be large. The sound emulation is much better. Under version 2, you needed an accelerated machine to get decent sound and often the sound was horrible anyway. Under V3, the sound is still distorted by speed at times, but the tones and sounds are mostly right on the money. If the program doesn't do a great deal of other processing, the sound is nearly perfect. Sidplayer, for example, was great, running almost up to speed with graphics and at speed without. Sidplayer can run at speed with graphics on if you boost the CIA rate, but occasionally the graphics will cause timing problems which make a note last a little too long or too short, etc. Advice: Run A64 on an accelerated machine if possible. Though it is possible to get enjoyment from games on a slower machine if you fiddle with the settings long enough and use convert, having an accelerated machine will make your life easier. If you're going to be using C64 roms and converting alot, then you may want to pick up an extra Meg of Memory. 2 Meg should be enough, though you can emulate the ram expanders if you have 3 or four 8-). (one Meg ram disk on a C64, who would have thought 8-) ). 3. C64S commercial. Reviews by: 1. Paul David Doherty (h0142kdd@fx2800.rz.hu-berlin.de) As posted in comp.emulators.cbm,4 Jul 1994. 2. Robert Rusbasan (rrusbasa@nyx10.cs.du.edu) As posted in comp.emulators.cbm, 20 Jun 1994. Review 1. by Paul David Doherty. I have spent an hour testing software which didn't work with the 0.9x versions of C64S, and none of them works with the 1.0c demo version, so I'd say that compatibility has not improved much. There are lots of cosmetic changes, but the emulator core seems to be the same as in the 0.9 versions. Some games I have tested: - Fahrenheit 451 (with copy protection AND fastloader removed) = doesn't work - Critical Mass (adventure) = the graphics are still messed up, no matter whether I chose NTSC or PAL mode - Masquerade = still doesn't show the pictures A new feature (?) seems to be a requester "CPU JAM AT ... : PRESS ANY KEY" which pops up with some games (Mask of the Sun, Amnesia) instead of crashing the emulator. However, C64S still crashes pretty often (and this means that neither will CTRL-ALT-INS reset the emulator, nor will you be able to leave it with CTRL-PAUSE, nor will you be able to reset your PC with CTRL-ALT-DEL! The only way out is the reset button.) This never happens with MC64/C64NEU, and it's a shame that Miha wasn't able to fix it. (As a rule of thumb, whenever "DISK IO" appears in the lower right corner of the screen you can press the reset button :-) Games which crashed totally in the above described way: - Infocom games (only if you use the fastloader) - Buckaroo Banzai - Fantastic Four (if you use the fastloader) - Lane Mastodon (and the other InfoComics) To put it straight, I don't expect C64S to support fastloaders (yet), but it shouldn't crash and lock up the PC. Besides, some of the games that don't work run flawlessly on MC64 (Lane Mastodon, Fahrenheit 451), so it's not just a fast loader issue. All in all, I'm not terribly impressed. If others found significant compatibility improvements, maybe they could post their experiences. Review 2. by Robert Rusbasan. Although I have generally preferred the C64NEU emulator, I got my tax return today and thought I'd call Seattle Lab and give them a chance to talk me into getting their commercial version of C64S. I was generally pleased with what I heard. The person I talked with seemed competent enough. When I told him that I had been impressed but also frustrated by the public version of C64S that Miha had released, he assured me that they have made a *lot* of changes. He said the pre-beta releases and the commercial release were "like night and day". I told him that I couldn't get my analog joystick to work, and the keyboard joystick emulation only seems to make sense to the author since I have yet to run across anyone that likes it. He replied that the analog joystick support has been radically improved, and that you can map the joystick to any keys you want in the commercial release. He said that it supports limited disk protection schemes, and they are going to continue to work on this. I whined that I and others have been unable to get any kind of response from Miha and asked if they planned to support the product. He told me they are going to have *strong* support for it, including phone, fax, email, and an ftp site! I asked if the ftp site was up now, and he said it sure was. You can access it at as.seattlelab.wa.com (204.29.31.1). Since it is very new, you might have to use the IP address. So far they only have the docs at the ftp site, but the list of enhancements indicates that there may indeed be some merit to the "night and day" claim. In particular, the sound and timing seems to have been improved. It seems you don't have to guess at the speed anymore, since you can set it to run at the original Commodore 64 speed, as fast as possible, or at a custom speed. Version 0.9 basically just gave you the custom speed and let you try to match the C64's original speed. Unfortunately, the docs still list Miha's email addresses as the source of email support. I assume that is out of date and they will have a Seattle Lab address soon. He also told me that there *will* be a new shareware version of the product out soon, and it will be put on the ftp site. That is a very smart move, in my opinion, because currently the people who found the program floating around have no way of knowing about the commercial version at all. I decided to go for it, which got me a bit of negative news. Right now they only ship COD, which adds $5 and brings the price to $60. He told me that they'll be able to take credit card payment shortly and offered to put my name on a list and call me when they could process my order that way, but I told him to go ahead and ship it COD. If anyone wants to take the plunge now, here is the order info: Seattle Lab 214 1st St. Kirkland, WA 98033 (206) 828-9001 (Voice) (206) 828-9011 (Fax) $55.00 --------------------------------------------------------------------------- 4. PlaySID. Short: Version 3.0 of the famous SID emulator Author: rbk@ios.se (Ron Birk) Uploader: kunath@informatik.uni-muenchen.de (Peter Kunath) Type: mus/play NEW FEATURES: V3.0 (1994) * Uses PLAYSID.LIBRARY (please read separate docs) * Support of XPK Data Compression * Realtime waveform and envelope display (uses low priority task) * Shows C64 pictures (Koala, Blazing Paddles, Doodle, Adv Art Studio etc.) * TV System detection and selection * Channel on/off selection * PlaySID is now a commodity * Uses a config file for settings * Multifile selection (music and pictures) * Ability to show and hide PlaySID windows * Second PlaySID instance redirect modules to the running one * PlaySID font removed * More arexx commands * Many major bugs corrected PRODUCT INFO: This is a utility which uses the playsid.library to emulate the SID and 6510 chip. The SID chip is the component in the C64 computer that handles sound. The 6510 chip is the CPU of the C64, that means the component that actually executes all programs. Because the Amiga does not have these chips and others, you can't run C64 programs directly on Amiga. Now this utility lets you play all those C64 programs that produce sound. As you probably know, the C64 has three sound channels (the amiga has four). But this utility also allows use of the fourth channel. This channel is the product of some special programming on the C64, it isn't really a channel. The purpose of this product is to make the best conversion of C64 sound on Amiga ever possible. If you think some sound isn't correctly converted please let us know. This utility is designed to work with true multitasking, under any system version and any amiga model. It can be run from both Workbench and CLI/Shell. It should work with any other program that don't use sound or timing. If this isn't the fact please let us know. Some time ago we released a similar product called "The 100 most remembered C64 game-tunes". This product is the version 3.0 of that program. The tunes on that demonstration disk are now also available to this version. And up to date there are more than 400 tunes available. We and others are also working with more. 5. C64S File Manager. Commodore 64S File Manager Version 1.0 (C) 1994 John Risby =========================================================== In this first version of the file manager, only one feature is implemented. This lets you list your C64S tapes in a scrolling window with a description of the Game, i.e:- Attack the the Mutant Camels Archon Galaga Sanxion Zolyx You can then scroll up and down and when you select the highlighted game by pressing RETURN, the file associated with it is copied onto testtape.t64 and C64S is run. This saves having to constantly manualy copy files in able to use the shareware version of C64S. If I feel it is worth it, or I get requests, I may add mouse support, disk support, automatic entry of games etc... Then again you may all just say, "Hey, I've got my own batch file, why do I wanna use a 20K program?!". Whatever, I like it. INSTALLATION ============ 1) Copy the file FM64.EXE to your C64S directory. 2) Create a file called FM64.INI using your favourite text editor and enter your games as follows :- #Attack of the Mutant Camels aoftmc.t64 #Archon archon.t64 #Bounces bounces.t64 #Burning Rubber burnrubb.t64 The lines preceded by # are the descriptions of the games. The next line must contain the filename of the game. A sample INI file is included and is called SAMPLE.INI. 3) Backup testtape.t64 by typing :- copy testtape.t64 backup.t64 Help and Support ================ This has only been tested on my system, by me, with c64s01cd.zip so in effect this is a beta release. Hopefully there won't be any problems but if there are I would very much like to hear from you. If you need any help or further information regarding the file manager, or you want to suggest any improvements, report bugs, criticize or just chat, feel free to contact me by email: john@enville.demon.co.uk DISCLAIMER ========== Ok now for the legal crap. This version of the File manager is released into the public domain on 15/9/94 by John Risby (john@enville.demon.co.uk). The File Manager is provided as-is WITHOUT ANY WARRANTY, either express or implied, including but not limited to the implied warranties of merchantability and fitness for a particular purpose. You use this program at your own risk. --------------------------------------------------------------------------- B. How-to: 1. Infocom adventures with PC64SH Author Peter Yew (p.yew@BoM.GOV.AU) I have figured out how to save and restore Infocom adventure games in PC64SH. Now I don't have to do the game in one sitting (- gee, that was hard). This is what I did: ========================================================== To save and restore adventure games on separate disk images (particular full disk Infocom story) in PC64SH First in PC64SH directory, create a clean sub-directory: Infocom In that put gamename.d64 (as the STORY disk) and a clean save.d64 (as the SAVE disk). To load game: 1) Choose Manager, select Neu 2) Find and click Infocom directory 3) Find and click gamename.d64 and double click it to load the game. (Answer N at "Loading from a C1541 disk drive?" prompt) While in PC64SH , press f5 as often as needed to refresh directory reading. To save game while adventuring: 1) Type save 2) At "Position 1-5 (Default 1)>", type 1 (or what you can remember later) 3) At "Drive 8 or 9 (Default 8) >", type 8 (don't try 9, or it will crash)^? 4) At "Are You Sure (Y/N) >", type y (why waste time if you answer no?) 5) At "Insert SAVE disk into Drive 8. Press [RETURN] to continue >", press alt + f9 to PC64SH dialog box, click save.d64, click OK and come back to C64 game screen, then press ENTER key. You should have "saving position 1 ..." message and then 6) At "Insert STORY disk into Drive 8. Press [RETURN] to continue >", press alt + f9 to PC64SH dialog box again, click gamename.d64, OK and come back to C64 game screen, then press ENTER key. Now you can continue the game. To restore game anytime: 1) Type restore 2) Give number of position: 1 (if you can remember?) 3) Give number of drive: 8 (don't try 9, or it will crash) 4) At Are You Sure (Y/N): y (why waste time if you ask no?) 5) At Insert SAVE disk .....: press alt + f9, click save.d64, click OK & come back to C64 game screen, then press ENTER key. You should have position restoring .... message. 6) At Insert STORY disk ...: press alt + f9, click gamename.d64, OK & come back to C64 game screen, then press ENTER key. Now you can continue the game. 2. Playing multi-disk-image games with C64S 1.0C + Author: J. Kevin Wells - nstn1297@fox.nstn.ca + "I am Ohm of Borg. Resistance is + voltage divided by electric current." + There is a method of playing multi-disk-image games with C64S 1.0C shareware. + The method is a bit cumbersome and works best with games that involve + infrequent disk changes. 1. Copy the first disk-image file as TESTDISK.D64. 2. Start C64S. 3. Load and play the game until you are prompted for a new disk. 4. Press F9 to bring up the utility options. Press Alt-T to enter the tape-image section and press enter on TESTTAPE.T64. 5. Press F to select the Freeze option and type in a file name. Your game will be saved to the tape drive. If the tape drive is full, delete a file you do not need. 6. Press ESC to exit to the C64 emulator. 7. Press CTRL-BREAK to quit C64S and exit to DOS. 8. If the game has altered the disk-image in any way (saved your game to the disk, for example), copy TESTDISK.D64 back to its original file name from step 1. 9. Copy the requested disk-image file (usually Disk 2) to TESTDISK.D64 10. Start C64S again. 11. Press F9. Press Alt-T to enter the tape-image section and press enter on TESTTAPE.T64. 12. Select the file you froze in step 5. Press ESC to exit to the emulator. 13. Press Shift-TAB to load and run the frozen program. The game should be at the point where it is requesting the disk change. Follow the program's instruction for signaling that you've changed the disk. 14. When prompted for another disk, repeat the process at Step 4. One thing to keep in mind is that the Frozen program is kept on the tape drive until you delete it. You might want to delete the frozen file when you're finished playing the game, or between disk swaps. Remember that you can use this frozen file to restore your game at the point it was frozen again and again. The Freeze option is a very powerful feature, similar to the Snapshot cartridge on the original C64. You can use it to save virtually any program at any point - even games that don't have a save function. I haven't tested this method of using multiple disks with every game out there, but the ones I did try seemed to work. Try the method out with a particular game, if possible, before getting into any heavy gaming sessions. ========================================================================