CBM EMULATION FAQ - (Version 4.0beta, x January 1999)
  =================

* This FAQ is usually posted twice a month on the 4th and 19th to 
* comp.emulators.cbm.  Since comp.emulators.cbm was set up to remove the
* emulator discussion from comp.sys.cbm, this FAQ will not be posted there.

  Lines preceeded by a '+' have been added or modified since the last version
  was posted. Lines preceeded by a '*' are most likely outdated and due to
  change sooner or later.

  The FAQ is in four parts due to its size.
  Part 1 is general information and a list of available emulators.
  Part 2 is questions and answers.
  Part 3 is mostly data.
  Part 4 is basically reviews of various emulators. 
 
  --------------------------------------------------------------------------- 
 
 
  3.5 How-to...
 
     1. Playing multi-disk-image games with C64S 1.0C 
     2. Using VIC-EMU. 
     3. Running certain games. 
     4. Converting between different file formats. 
 
   ========================================================== 
 
     1. Playing multi-disk-image games with C64S 1.0C 
 
  [Note that v1.1b of C64S allows multi-disk games without hassle.  I  
  include this since some people may not like the time limit in the 
  shareware version of C64S 1.1b/c.  -csj] 
 
  J. Kevin Wells - nstn1297@fox.nstn.ca writes: 
 
  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. 
 
  [note, again, that none of this stuff needs to be done with C64S 1.1b,  
  since it allows multi-disk games without hassle.  The information is 
  included just in case you find the ten-minute timer on C64S 1.1b annoying.] 
 
   --------------------------------------------------------------------------- 
 
     3. Using VIC-EMU. 
 
   Question: 
   Hi, I'm currently trying to use Peiter van Leuven's VIC-EMU to run some  
   VIC-20 software on my AMIGA.  I have some VIC files on Amiga Formatted  
   floppy's as well, but the documentation doesn't say how to run it with the  
   emulator!  It does suggest that you have to use memory addresses, but how  
   do us non-programmers know what memory addresses to use for a binary file  
   or a BASIC file?  I've had no success.  The command structure is like this; 
 
   vic-00 $???? filename 
 
   What is the proper address for ???? in order to get a program to run? 
 
   ------- 
 
   Answer 1: 
   Well, you might be asking about at what position Basic starts on the VIC. 
   On an unexpanded machine, it starts at $1000 (and load file at $1001). 
   On a +3k machine (as the emulator default), it starts at $0400 ($0401) 
   On a +8k machine and more, Basic starts at $1200. (load at $1201) 
 
   Binary files normally load with LOAD "name",device,1 and you have to 
   find out where to load it yourself. (I know there's a method by looking 
   at the first bytes of the file, but I don't know how). 
 
   BTW: The version of VIC-EMU doesn't seem to load files inside the emulator 
        very well (e.g the load-command hangs, and there's no RESTORE key). 
 
   ------- 
 
   Answer 2: 
   Well, Pieter sent me a message letting me know how to load a BASIC or  
   disk image file into the VIC-EMU.  There is a way to find out what position  
   a file starts at, you look at the first four bytes of the file and then  
   switch them around, or something to that effect.  Once you have done that you 
   use that number as the memory address: 
 
   vic-20 $1000 filename 
 
   Then from the VIC emulator screen you type LOAD "filename",8 and it will  
   load it.  However, my problem is that from the CLI command, I'm not clear  
   on what filename I'm supposed to include!  The filename for the program I  
   want to load or what?  The emulator won't activate unless you include a  
   filename in the CLI command, but putting the filename for the disk-image  
   file you want doesn't seem to do anything, you still have to load it the  
   old fashioned way (LOAD "",8) to get it to show up.  I guess my question  
   is; how do I just make the emulator activate (i.e. just like a vic after  
   power up) without having it run a program, etc 
 
   --------------------------------------------------------------------------- 
 
   4. Getting certain games to work. 
 
   a. Racing Destruction Set 
 
      Oh, I bet I know what your Racing Destruction Set problem is.  It's the 
      one that the game tells you to flip to side two, but it never tells you 
      to flip to side one.  It's understood that you flip back to side one at 
      every significant pause in disk acess.  In particular, if you modify a 
      car, then flip the disk back to side one before you leave the car 
      modification menu.  After loading a track from side two, when you want to 
      return to the menu, flip back to side one BEFORE telling it to go back, 
      because it will hapilly try and load the menu from side two and crash. 
      From: Chuck Cochems (zaphod@camelot.bradley.edu) 
 
   b. Mail Order Monsters 
 
      This is a hint that works wonders on the 64 version of the game: 
      Copy your original disk (obviously not necessary for the emulators) and 
      change the disk name and ID (with a disk editor or utility program) to 
      "ownerdisk,ea"  This makes your master disk an owner disk (there's ~100 
      blocks free on the original, each owner takes ~1 block of Commie disk 
      space, so you'll probably not have to worry about running out of  
      disk space.) 
      I have about 9 owners on a copy of the disk, and we have a lot of fun with 
      this game.  Just keep hitting RETURN when it wants a disk.  Enjoy.  
      From: Michael Miller (mmiller3@gac.edu) 
 
   c. Bruce Lee 
 
      Actually, I have yet to find a version of this game which doesn't crash 
      on a real C64 (NTSC or PAL).  So, my advice is to reset and try again 
      if the game crashes on you. 
 

  4. Converting between different file formats. 
  
   Q: How can I convert the ZipCode files (1!..,2!..etc.) found on various 
      ftp-sites to a format usable by the emulators? 
   A: Grab the file zip2d64.arj on any of the emulator ftp-sites.  The 
      syntax for conversion is: 
    
      zip2d64 zip.gam zipgame.d64 
  
      to convert the files 1!zip.gam 
                           2!zip.gam 
                           3!zip.gam 
                           4!zip.gam 
  
      to the file zipgame.d64. 
 
      Alternatively, several C64 transfer utilities (64Copy and Star 
      Commander) have built-in utils for ZipCode conversion. 
 
   Q: OK, but what about Lynx files (*.lnx)? 
   A: On the emulator ftp-sites there is also a DOS executable that 
      extracts files from a Lynx archive.  Alternatively, you can down- 
      load the C64 utility "Omega-Q" from the /utils directory at frodo 
      etc.  Put the .lnx file into a .d64 file, run Omega-Q and unlynx 
      the files directly to a .d64 quickly and easily.  
 
      The C64 transfer utilities 64Copy and Star Commander also are able 
      to convert Lynx files to a usable format. 


   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 then read the ftp list 
* which is posted to comp.sys.cbm regularly by Howard Herman 
* (72560.3467@CompuServe.COM).

+ Moreover, Paul Irvine posts a regular FAQ in comp.emulators.cbm called
+ "Where to find C64 software", which is more games-oriented and my personal
+ recommendation if you are looking for games.
 
  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.1 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 
*  ftp.giga.or.at       Guenther.Bauer@giga.or.at (Guenther Bauer) 
*  arnold.hiof.no       jonko@arnold.hiof.no 


   4.0.2 Site IP addresses. 
 
   Site: 
   ----- 
 
*  frodo.hiof.no       158.36.33.4 
*  ftp.seattlelab.com  204.250.145.1 
 
 
*  4.0.3 Emulators & Games WWW Pages 
 
   With the rapid proliferation of Web sites having CBM info., it seems 
   fitting that they have their own section. 
 
   http://www.hut.fi/~msmakela/cbm 85 then if peek(x)<>85 then 1000 
530 if peek(x)<>170 then 1000 
540 if peek(x)<>85  then 1000 
550 if peek(x)<>170 then 1000 
560 m$=chr$(peek(57342)): rem $dffe 
570 print "manufacturer = '"; m$; "' "; 
580 if m$="a" then print "(c64alive)"; 
590 if m$="f" then print "(frodo)"; 
600 if m$="p" then print "(pc64)"; 
610 if m$="s" then print "(c64s)"; 
620 if m$="v" then print "(vice)"; 
630 if m$="/" then print "(power64)"; 
640 print 
650 : 
700 v=peek(57341)*256 + peek(57340): rem $dffd/$dffc 
710 h$="0123456789abcdef" 
720 for i=0 to 3 
730 v$=mid$(h$,1+(v and 15),1)+v$ 
740 v=int(v/16) 
750 next 
760 print "version = $";v$ 
770 print 
780 : 
800 i=57248: rem $dfa0 
810 x=peek(i) 
820 if x=0 then print: end 
830 print chr$(x); 
840 i=i+1 
850 goto 810 
860 : 
900 rem ------------------------------- 
910 rem these are manufacturer-specific 
920 rem workarounds, which should be 
930 rem replaced with the official 
940 rem emulator detection method 
950 : 
1000 if peek(60682)<>0 then 1100: rem $ed0a 
1010 print "c64 software emulator" 
1020 print "(c)1991-94 miha peternel" 
1030 end 
1040 : 
1100 if peek(60736)<>0 then 1200: rem $ed40 
1110 print "x64 (version 0.2.0 or 0.3.0)" 
1120 print "(c)1993-94 j.sonninen/t.rantanen/j.valta" 
1130 end 
1140 : 
1200 x=57087: rem $deff 
1210 if peek(x)+peek(x)+peek(x)<>0 then 2000 
1220 print "c64alive" 
1230 print "(c)1993-94 f.littmann developments" 
1240 end 
1250 : 
2000 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. 
 
   There are a number of WWW addresses that may be of interest... 
 
  - The Commodore 64 WWW Server. 
    (Has a few c64s and x64 documents) 
    http://www.hut.fi/~msmakela/c64.html 
 
  - WWW Personal Computing and Emulation Homepage 
    (General emulator pages, not 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 
 
* - The Versatile Commodore Emulator / Simulator
*   (Offical site for Vice/x64) 
*   http://stekt.oulu.fi/~jopi/x64.html 
 
  - Commodore 64 computing 
    (Home of the comp.sys.cbm FAQ) 
    http://www.msen.com/~brain 
 
  - Frodo and ShapeShifter Homepage 
    (Official site for the Frodo emulator) 
    http://www.uni-mainz.de/~bauec002 
 
* - The Official PC64 Homepage 
*   http://ourworld.compuserve.com/homepages/pc64/ 
 
  - The Power64 Homepage 
    http://www.auto.tuwien.ac.at/~rlieger/Power64/Power64.html 
 
  - The Free64 Homepage
    http://home.gvi.net/~martin/
  =========================================================================

    Source: geocities.com/area51/vault/8611/cbm

               ( geocities.com/area51/vault/8611)                   ( geocities.com/area51/vault)                   ( geocities.com/area51)