home *** CD-ROM | disk | FTP | other *** search
/ Aminet 10 / aminetcdnumber101996.iso / Aminet / misc / emu / acpc_dem.lha / a-cpc.txt < prev    next >
Text File  |  1980-02-06  |  50KB  |  1,686 lines

  1. A-CPC
  2. =====
  3.  
  4. A-CPC is an Amstrad Colour Personal Computer emulator for any Amiga
  5. with Kickstart 2.0 or better.
  6.  
  7. The Amstrad CPC was designed by Amstrad plc. There were 5 models. The
  8. first 3 models appeared from 1984 and were called "CPC". The last 2
  9. models appeared in 1989 and were called the "Plus" range because they
  10. had enhanced hardware to display hardware sprites and a larger colour
  11. palette.
  12.  
  13. The CPC464 had a cassette recorder on the right of the keyboard, and
  14. 64k of memory.
  15.  
  16. The CPC664 had a disk drive on the right of the keyboard and 64k of
  17. memory.
  18.  
  19. The CPC6128 had a disk drive on the right of the keyboard and 128k of
  20. memory.
  21.  
  22. The 464+ had a cassette recorder on the right of the keyboard, enhanced
  23. hardware, different design and 64k of memory.
  24.  
  25. The 6128+ had a disk drive on the right of the keyboard, enhanced hardware,
  26. different design and 128k of memory.
  27.  
  28.  
  29. The CPC models share the same hardware:
  30.  
  31.     - Z80A CPU running at 3.3Mhz
  32.  
  33.     - General Instruments Ay-3-8912 sound generator.
  34.         - 3 channels of tone
  35.         - 1 channel noise
  36.         - simple hardware envelopes with fixed waveforms
  37.  
  38.     - Intel    8255 Parallel Peripheral Interface (general interface
  39.       chip) connected to the sound generator, keyboard, cassette
  40.       hardware, and for miscelaneous information
  41.     
  42.     - uPD765-A or INTEL 8272 Floppy Disk Controller
  43.         - support for 2 drives
  44.         - double density recording
  45.         - 3" discs with two sides (the disc must be turned
  46.           over to use the other side)
  47.         - 40 or 80 disks
  48.         - support for double sided disks
  49.  
  50.     - 6845 Cathode Ray Tube Controller 
  51.         - This chip produces the information to create the
  52.           display
  53.         - hardware scrolling, page flipping
  54.     
  55.     - Gate Array
  56.         - Chip designed by Amstrad
  57.         - translates data from CRTC into graphics and adds
  58.           colours
  59.         - 27 colour pallette (3 levels of Red, Green and Blue)
  60.         - 3 modes
  61.             - 160x200x16
  62.             - 320x200x4
  63.             - 640x200x2
  64.  
  65. There are 2 versions of this emulator package. The demo/evaluation version
  66. and a registered version.
  67.  
  68. The demo/evaluation version is freeware but the program code is (c) copyright
  69. Kevin Thacker. It may be freely copied, provided that the archive contents 
  70. remain intact and you must not charge more than a small fee to cover copying
  71. and the price of the disk. It may be uploaded to a ftp site or BBS (as long
  72. as the BBS doesnt claim copyright on uploaded material) or put  into a PD 
  73. library. If you would like to put it onto a magazine coverdisk or cover CD
  74. then contact me first. (Permission is given to Aminet to distribute
  75. this archive on their CD). The code remains copyright to myself
  76. except for the ROM images which are copyright Amstrad plc and Locomotive
  77. Software Ltd.
  78.  
  79. The demo/evaluation version has been restricted. However, you can still
  80. try out software on the net. It supports loading of Snapshots and disk
  81. images and tape files only.
  82.  
  83. The full version is NOT freeware it is (c) copyright Kevin Thacker. It may 
  84. not be put on a magazine coverdisk, ftp site, cd collection, copied, hired, 
  85. distributed without my written permission. The full version can be obtained 
  86. by contacting me, and it costs 10 UK Pounds or equivalent in your money, 
  87. please add enough money to cover postage if you want the registered version 
  88. to be sent via mail, otherwise just pay the 10 UK pounds and I will send you
  89. the archive by e-mail.
  90.  
  91. Please send the money to my Postal address preferably in UK pounds, or
  92. as an international money order. (I may experience problems trying to
  93. convert the money into my own currency if you do not follow this advice,
  94. and as such you may not recieve the emulator. I do accept DEM).
  95.  
  96. On receipt of the money, I will either send a disk in the post, or
  97. if you prefer I could email the archive to you.
  98.  
  99. The full version has the following features:
  100.     - current version of the emulator archive
  101.     - read and write to disk images (.DSK)
  102.     - read and write snapshots
  103.     - read from CPC disks directly
  104.         - side switch and drive switch emulation
  105.         - support for 40 track discs on 80 track drives
  106.     - Make_DSK utility to transfer CPC disks to disk image
  107.     - format_dsk utility to create blank disk images
  108.     - z80_dissassembler utility to dissassemble files
  109.     - CPC+ emulation
  110.     - Joystick emulation
  111.     - Multiface 2 emulation (Multiface 2 ROM not included in the archive)
  112.     - a collection of utilities to help you use your CPC software
  113.       with the emulator
  114.  
  115. Updates of the emulator will be available as they are written. If you
  116. already own the emulator, and you would like the update, then send the
  117. disk with money to cover return postage to my address, or I can e-mail
  118. the new archive for free.
  119.  
  120. When a update is available, I will post a message to comp.sys.amstrad.8bit.
  121.  
  122. See the history file for details of updates in the emulation.
  123.  
  124. NOTE:
  125.     You use this emulator at your own risk. I cannot be help responsible
  126.     for any damage caused from the use or mis-use of this product. As
  127.     far as I am aware, there are no fatal bugs that will crash your
  128.     system.I have run this emulator successfully on my own system and
  129.     others have reported that it runs well. Run this emulator with 
  130.     plenty of memory free and you should not have any problems.
  131.  
  132. ----------------------------------------------------------------------------
  133.  
  134. Requirements
  135. ============
  136.  
  137. To use A-CPC you will need the following:
  138.     - asl.library in your libs/ directory 
  139.       (comes with Workbench2.0 and above)
  140.     - Kickstart 2.0/Workbench 2.0 or better
  141.  
  142. A-CPC supports the following minimum specification: 
  143. (This does not mean mean the emulation will be fast)
  144.     - 68000 CPU
  145.     - OCS chipset
  146.     - 1mb RAM
  147.     - single disk drive
  148.     
  149. To have a fast emulation, I suggest that you need the following:
  150.     - 68020 CPU or better (an accelerate machine)
  151.     - 1mb of true FastRam
  152.     - a harddrive
  153.  
  154. If you have a fast machine I would be interested to hear how fast
  155. it runs at.
  156.  
  157.  
  158. Speed comparisons
  159. =================
  160.  
  161. John Stringer who has a A1200 with a 68020-28Mhz accelerator
  162. card and fastram says that the emulation goes at about 2 thirds of the
  163. speed of a real cpc. He also reports that the 68020 specific version is
  164. 5% faster than the 68010 version.
  165.  
  166. In these speed comparisons, the following simple BASIC code was used:
  167.  
  168. 10 for i=0 to 200
  169. 20 print "hi!"
  170. 30 next i
  171.  
  172. A500 - 68000 7Mhz - 1mb Chipram (my machine): 4 mins 09 seconds
  173. A4000 Cyberstorm 060 : ~30 seconds.
  174.  
  175. NOTE:
  176.  
  177. 1.    There are 6 versions of A-CPC in the registered version
  178.  
  179.     - A-CPC standard emulation for 68000 processor, (A-CPC_68000)
  180.     - A-CPC standard emulation for 68010 or greater, (A-CPC_68010)    
  181.     - A-CPC standard emulation for 68020 or greater, (A-CPC_68020)
  182.     - A-CPC plus emulation for 68000, (A-CPC_68000_plus)
  183.     - A-CPC plus emulation for 68010 or greater, (A-CPC_68010_plus)
  184.     - A-CPC plus emulation for 68020 or greater, (A-CPC_68020_plus)
  185.  
  186.     The plus versions are slightly different to the standard version
  187.     in operation. They have been written to emulate the extra hardware
  188.     and some of the differences which are different to a standard CPC.
  189.  
  190.     The registered version also contains two special versions
  191.     for 68020 or better processors. It takes advantage of some
  192.     of the extra commands available on these chips and the code
  193.     is slightly different.
  194.     
  195.     If your Amiga has a 68020/68030/68040/68060 choose this
  196.     version in preference. I believe there is about 5% speed increase
  197.     over the standard 68010 version.
  198.  
  199.     There are 3 version of A-CPC in the demo/evaluation version
  200.     
  201.     - A-CPC standard emulation for 68000 processor, (A-CPC_68000)
  202.     - A-CPC standard emulation for 68010 or greater, (A-CPC_68010)
  203.     - A-CPC standard emulation for 68020 or greater, (A-CPC_68020)
  204.     
  205. ----------------------------------------------------------------------------
  206.  
  207. Running the Emulator
  208. ====================
  209.  
  210. The emulator can be run from CLI or from Workbench. It requires a config
  211. file.
  212.  
  213. 5 Configuration files have been supplied which define the CPC type that
  214. will be emulated:
  215.  
  216. cpc464.config    - CPC 464 
  217. cpc664.config    - CPC 664
  218. cpc6128.config    - CPC 6128
  219. 464plus.config    - 464+    (registered version only)
  220. 6128plus.config - 6128+ (registered version only)
  221.  
  222. At the CLI type:
  223.  
  224. A-CPC_68000 <config_filename>
  225.  
  226. e.g.
  227.  
  228. A-CPC_68000 cpc464.config
  229.  
  230. Or from Workbench you can double click on the config icons themselves
  231. and the emulator will automatically be loaded. The config files have
  232. been set to load the 68020 version of the emulator. If you wish to change
  233. this select the icon, choose "Information" from the menu and change the
  234. Tool to "A-CPC_68000".
  235.  
  236. Or, you can double click on the A-CPC icon and enter a config file after
  237. the A-CPC filename.
  238.  
  239. ----------------------------------------------------------------------------
  240. Some games crash... why?
  241. ========================
  242.  
  243. The emulator cannot run 100% of games. Many programmers have used
  244. special features of the z80 which are not documented officially. I have
  245. had to try and find all these features, so that I can produce an accurate
  246. emulation.
  247.  
  248. So, if a game uses some of these instructions, and I have not emulated
  249. them correctly, then they will not work properly. Also, not all instructions
  250. have been emulated correctly, and there are still some hard to find bugs.
  251.  
  252. Some games will work, but you need to change the interrupt count value.
  253. These games rely on the time between interrupts, and if the time is too
  254. short, they start to corrupt themselves. To solve this change the interrupt
  255. count to a larger value and try the game again.
  256.  
  257. One game which has this problem is Elite. On 68000 change INT_SPEED to 1000
  258. and try running it again.
  259.  
  260. -----------------------------------------------------------------------------
  261.  
  262.  
  263. Running Games
  264. =============
  265.  
  266. When you select a directory from the file requesters, the emulator
  267. will remember this. So, you can store your tape files in sub-directories,
  268. and other files anywhere you like.
  269.  
  270. Snapshots:
  271.  
  272. Snapshots are simply a dump of the memory with the information about
  273. the state of the hardware which are used to restart a program at the
  274. point the snapshot was saved.
  275.  
  276. The file format is the same as used by CPCEMU and CPE and they
  277. have the ".SNA" extension. 
  278.  
  279. Almost all snapshots should work, except for Alien Highway.
  280.  
  281. Disk images:
  282.  
  283. Disk images are a file containing a copy of the data on a disk. They
  284. can be created using CPCTRANS.EXE with CPCEMU on the PC, or with Make_DSK
  285. which is provided in the registered version of this emulator.
  286.  
  287. The file format is the same as used by CPCEMU and CPE. As in CPCEMU you
  288. can write to disk images (registered version only!). Disk images have
  289. the ".DSK" extension.
  290.  
  291. To use a disk image you need to "Insert the disk into drive X". Select
  292. the option from the Files menu and choose the disk image file.
  293.  
  294. Tape files:
  295.  
  296. These are files on an Amiga disk. Binary and Basic files must have
  297. an Amsdos header to be recognised. To use Tape files you must select
  298. tape operation (|TAPE), then you can run the files.
  299.  
  300.  
  301. Loading from Disk Images or Tape files:
  302.  
  303. With Disk or Tape files you will need to use Amsdos commands and Basic
  304. commands. 
  305.  
  306. If you have not used an Amstrad before the following commands should
  307. help you to run software.
  308.  
  309. (The "|" symbol is obtained by pressing SHIFT and @ key on the CPC keyboard)
  310.  
  311. |TAPE
  312.     Choose to load from tape
  313.  
  314. |DISC
  315.     Choose to load from disc    
  316.  
  317. |CPM    
  318.     Boot CPM from a CPM disk or this will run some games that
  319.     do not have files in the directory.
  320.  
  321.  
  322. CAT or |DIR
  323.  
  324.     This will display a list of files on the disc or tape.
  325.  
  326. RUN"<filename>.<ext>
  327.  
  328.     This will RUN a file on the disc or tape. If the file
  329.     doesnt have a ".  ", ".BAS" or ".BIN" extension then you
  330.     will have to specify it.
  331.     
  332.     e.g.    RUN"NEBULUS
  333.     
  334. LOAD"<filename>.<ext>
  335.  
  336.     Load a file into memory. It will not run it. Basic files
  337.     can be shown by typing "LIST".
  338.     
  339. |ERA,"<filename>.<ext>
  340.  
  341.     Delete a file on the disc
  342.     
  343. |REN,"<newfilename>.<newext>","<oldfilename>.<oldext>"
  344.  
  345.     Rename a file on the disc.
  346.  
  347. |A
  348.  
  349.     Choose drive A
  350.     
  351. |B
  352.     Choose drive B
  353.     
  354. ----------------------------------------------------------------------------
  355.  
  356. Keyboard
  357. ========
  358.  
  359. The following Amiga keys are used as a short cut:
  360.  
  361. F1    - Load Snapshot
  362. F2    - Save Snapshot
  363.  
  364. F8    - Multiface Stop Button (registered version only)
  365. F9    - Reset CPC
  366. F10    - Quit emulator
  367.  
  368. The Amiga keyboard has a different layout than the CPC, and the keys
  369. are not marked the same, so you may find a problem trying to find
  370. the CPC key. Here is a list of CPC keys and their Amiga equivalents:
  371.  
  372. CPC    Amiga
  373.  
  374. !1    !1
  375. "2    "2
  376. #3    #3
  377. $4    $4
  378. %5    %5
  379. &6    ^6
  380. '7    &7
  381. (8    *8
  382. )9    (9
  383. _0    )0
  384. -=    _-
  385. ^ pound    +=
  386. CLR    |\ or DEL
  387.  
  388.  
  389. f0    keypad 0
  390. f1    keypad 1
  391. f2    keypad 2
  392. f3    keypad 3
  393. f4    keypad 4
  394. f5    keypad 5
  395. f6    keypad 6
  396. f7    keypad 7
  397. f8    keypad 8
  398. f9    keypad 9
  399. f.    keypad .
  400. small    keypad enter
  401. enter
  402. Q-P    Q-P
  403. A-L    A-L
  404. Z-M    Z-M
  405. @|    {[
  406. [{    ]{
  407. :*    :;
  408. +;    "'
  409. ]}    <RET> (key cut out of RETURN on International keyboards)
  410. \'    <SHIFT> (key cut out of SHIFT on International keyboards)
  411. <,    <,
  412. >.    >.
  413. ?/    ?/
  414. SPACE    SPACE
  415. DELETE    BACKSPACE
  416. TAB    TAB
  417. RETURN    RETURN
  418. ESC    ESC
  419. CLR    DEL
  420. SHIFT    LEFT OR RIGHT SHIFT
  421. CTRL    CONTROL
  422. COPY    LEFT ALT
  423.  
  424. ----------------------------------------------------------------------------
  425.  
  426. Configuration file
  427. ==================
  428.  
  429. The emulator needs a configuration file to run. The configuration filename
  430. and path is specified in the commandline:
  431.  
  432. e.g.
  433.  
  434. a-cpc_680x0 <device:path/filename of config file>
  435.  
  436. The configuration is used to define the CPC model and characteristics
  437. that A-CPC will emulate.
  438.  
  439. The minimum configuration file MUST contain the following:
  440.  - the location of a Operating System ROM (OS_ROM=)
  441.  - the location of a BASIC ROM (ROM=0 PATH=)
  442.  - size of the CPC RAM (RAM_K=)
  443.  
  444. The lines of the configuration may be in any order, and a line of
  445. configuration can be added by loading the configuration file into
  446. a text editor. 
  447.  
  448. You can also add comments to the config, or comment out a line,
  449. or seperate the config lines with a blank line.
  450.  
  451. The configuration will initialise the emulator to your prefered setup
  452. when it starts. Some of these options can be changed from within the
  453. emulator.
  454.  
  455.  
  456. The following config command-lines are supported:
  457.  
  458. OS_ROM = <device:path/filename> [NOPATCH]
  459.  
  460.         This line defines the location of the file containing
  461.         the operating system data. The file must NOT have a
  462.         AMSDOS header.
  463.         
  464.         The keyword NOPATCH is optional. When a rom has been
  465.         found, the emulator will attempt to find a file
  466.         of the same name but with a ".patch" extension. 
  467.         
  468.         The patch file can be used to remove code to speed
  469.         up the emulation in places.
  470.         
  471.         If the keyword NOPATCH is present, the patch file
  472.         will not be loaded.
  473.     
  474.         This line must be present for the emulator to work.
  475.     
  476.         e.g.
  477.         
  478.         OS_ROM=A-CPC:roms/cpc6128-os.rom
  479.         
  480. ROM = <rom number> PATH=<device:path/filename> [NOPATCH]
  481.  
  482.         This line defines the rom number and the location
  483.         of the file containing the data. The file must NOT
  484.         have a AMSDOS header.
  485.         
  486.         This function allows the user to add extra roms in
  487.         addition to BASIC and AMSDOS in a rom position of
  488.         their choice. (rom position is in the range 0..15
  489.         for 6128 emulation, and 0..7 for 464 emulation so
  490.         that the operating system will notice it's existance)
  491.         
  492.         ROM 0 must be present for the emulator to work.
  493.  
  494.         The demo/evaluation version will only support BASIC
  495.         and AMSDOS ROMs.
  496.         
  497.         e.g.
  498.         
  499.         ROM = 1 PATH=A-CPC:roms/protext.rom NOPATCH
  500.         
  501. DRIVE_A = <device:path/filename>
  502.  
  503.         This line defines a disk image (DSK) that will be
  504.         automatically "inserted" into CPC drive A,
  505.         when the emulator is started.
  506.  
  507.         This function is not available on the demo/evaluation
  508.         version of the emulator.
  509.         
  510.         e.g.
  511.         
  512.         DRIVE_A=DSK:stormlord.dsk        
  513.  
  514. DRIVE_B = <device:path/filename>
  515.  
  516.         Same function as DRIVE_A, except the disk image will
  517.         be "inserted" into CPC drive B.
  518.         
  519. RAM_K = <size of CPC memory in decimal>
  520.  
  521.         This function defines the size of CPC memory. This value
  522.         must be divisible by 64. It's value must be in the range
  523.         64-576.
  524.         
  525.         This line must be present for the emulator to work.
  526.         
  527. PPI_PORT_B = <decimal value>
  528.     
  529.         PORT B of the 8255 PPI has the following bits:
  530.         
  531.         7     Tape read data
  532.         6    Centronics Busy
  533.         5    Expansion port device present
  534.         4    Screen refresh (50Hz/60Hz)
  535.         3..1    Machine name (Amstrad, Schneider etc)
  536.         0    Frame Flyback pulse
  537.         
  538.         You can specify this byte and change the name of the
  539.         computer. The CPC was created by Amstrad, but sold
  540.         by different companies in Europe. With this byte you
  541.         can have their name instead.
  542.         
  543. INT_SPEED = <decimal value>
  544.  
  545.         This function defines the number of opcodes that is
  546.         counted before a z80 interrupt is triggered.
  547.         
  548.         If this value is reduced, then interrupts will be faster,
  549.         if it is increased, then interrupts are slower.
  550.         
  551.         On faster Amigas, this value will need to be high (about
  552.         1500). 
  553.         
  554.         You may find that some games will not work. The reason
  555.         may be that the interrupts are too fast for the game.
  556.         Try changing this value, and you will find the game
  557.         will work.
  558.     
  559.         The default value is 800.
  560.         
  561. MULTIFACE_ROM = <device:path/filename>
  562.  
  563.         To use the Multiface II emulation you need a file containing
  564.         the ROM data. This line specifies the location of the file,
  565.         and if the file is found, the emulation is enabled. The ROM
  566.         must NOT have a AMSDOS header.
  567.         
  568.         See the section on the Multiface emulation for more information.
  569.  
  570.         This function is not present on the demo/evaluation version
  571.         of the emulator.
  572.         
  573.         e.g.
  574.         
  575.         MULTIFACE_ROM = A-CPC:roms/multiface.rom
  576.         
  577. SOUND = <decimal value>
  578.  
  579.         This function will enable (0) or disable (<>0) the sound 
  580.         before the emulator has been started. On slow Amigas music
  581.         and sound effects are not easy to recognise, so this
  582.         option is provided to turn off sound. Many times I have
  583.         found it annoying to listen to the sound.
  584.                 
  585.         You can turn the sound off or on from a menu
  586.         in the emulator.
  587.         
  588.         e.g.
  589.         
  590.         SOUND = 0
  591.  
  592. DSK_PATH = <device:path>
  593.  
  594.         This defines the first directory path that is used 
  595.         by the emulator for disk image files. You can change
  596.         the directory from the file requester, and it will
  597.         be used instead.
  598.         
  599.         e.g.
  600.         
  601.         DSK_PATH=A-CPC:Disks/
  602.         
  603.  
  604. TAPE_PATH = <device:path>
  605.  
  606.         This defines the first directory path that is used
  607.         by the emulator for tape files. You can change the
  608.         directory from the file selector, and it will be
  609.         used instead.
  610.         
  611.         e.g.
  612.         
  613.         TAPE_PATH=A-CPC:Tapes/
  614.  
  615. CART_PATH = <device:path>
  616.  
  617.         This defines the first directory path that is used
  618.         by the emulator for cartridge images (In the CPC
  619.         plus emulation). You can change the directory from
  620.         the file selector, and it will be used instead.
  621.         
  622.         e.g.
  623.         
  624.         CART_PATH=A-CPC:Cartridges/
  625.  
  626. SNAP_PATH = <device:path>
  627.  
  628.         This defines the first directory path that is used
  629.         by the emulator for snapshots. You can change the
  630.         directory from the file selector, and it will be used
  631.         instead.
  632.  
  633.         e.g.
  634.         
  635.         SNAP_PATH=A-CPC:Snapshots/
  636.  
  637. # <comment line>
  638.  
  639.         This is used to add comments to the config file.
  640.         Each line which is a comment should have a # before it.
  641.         A comment cannot be added to the end of any other
  642.         config line. A comment line must exist on it's own.
  643.         There must be a space between the # symbol and the
  644.         start of the comment.
  645.         
  646.         e.g.
  647.         
  648.             # Load extra roms
  649.  
  650. CPC_DRIVE_A = unit_number [DS] [REAL]
  651.  
  652.         This is used to define the Amiga drive unit to use
  653.         for CPC drive A when using the read from disk option.
  654.         (The units are 0,1,2 or 3). Unit 0 is the internal
  655.         drive. This cannot be changed inside the emulator.
  656.         
  657.         The DS parameter is optional. If it is present, then
  658.         double-step is enabled. This is useful for reading
  659.         40 track 5.25" discs on 80 track 5.25" drives.
  660.         This can be changed within the emulator.
  661.  
  662.         The REAL parameter is optional. If it is present, then
  663.         the emulator will start in disk read mode, otherwise
  664.         it will start in read disk image mode. This can be
  665.         changed from within the emulator.
  666.         
  667.         This function is not available on the demo/evaluation
  668.         version.
  669.         
  670.         e.g.
  671.         
  672.         CPC_DRIVE_A=2 DS
  673.         
  674. CPC_DRIVE_B = unit_number [DS] [REAL]
  675.  
  676.         This is similar to the CPC_DRIVE_A command, except this
  677.         defines which Amiga drive unit to use for CPC drive B
  678.         when using the read from disk option.
  679.         
  680.         This function is not available on the demo/evaluation
  681.         version.
  682.         
  683.         e.g.
  684.         
  685.         CPC_DRIVE_B=0 REAL
  686.  
  687. JOYSTICK = <decimal value>
  688.  
  689.         This function enables or disables the joystick task.
  690.         If 1 then joystick task is enabled, and joysticks can
  691.         be used as long as the gameport is not already used.
  692.         If 0, (or the line is not present in the config file)
  693.         then joysticks are disabled.
  694.         
  695.         This function is not available on the demo/evaluation
  696.         version.
  697.         
  698.         e.g.
  699.         
  700.         JOYSTICK=1        
  701.  
  702. NOTE:
  703.  
  704. 1.    I have used "PROGDIR:" in the config files. This is a special
  705.     assignment found in Workbench 2.0 and above. PROGDIR is only
  706.     defined inside a program, and it is different for each program.
  707.     It is equal to the directory path that the program was run from.
  708.     So, in the config file you will see:
  709.     
  710.     SNAP_PATH=PROGDIR:Snapshots/
  711.     
  712.     which means "directory the program was run from" plus the 
  713.     Snapshot directory.
  714.  
  715. ----------------------------------------------------------------------------
  716.  
  717. ROM Patch file
  718. ==============
  719.  
  720. When the ROM data is loaded during configuration, A-CPC will attempt
  721. to load a patch file (this will not happen if the NOPATCH keyword 
  722. is present). The patch file is used to modify the ROM data to improve
  723. compatibility with A-CPC or to speed up it's operation in A-CPC.
  724.  
  725. It has been provided so that the main code of the emulator does not
  726. need to be changed specifically.
  727.  
  728. The patch file contains any number of entries. The entries have the
  729. form:
  730.  
  731. 1 word        offset in ROM data in bytes
  732. 1 word        low byte contains byte to poke at offset, high byte
  733.         is ignored.
  734.         
  735. NOTE:
  736.  
  737. If you wish to use ROMDOS with A-CPC, then you can use the same patch
  738. file as used with CPC AMSDOS.
  739.  
  740. ----------------------------------------------------------------------------
  741.  
  742. Multiface 2 Emulation (registered version only)
  743. =====================
  744.  
  745. A-CPC has built in support for Multiface 2 emulation. To use this feature
  746. you will need a copy of the Multiface 2 rom data. (A program has been provided
  747. for you to run on your CPC which will do this).
  748.  
  749. The Multiface 2 ROM is (c) copyright Romantic Robot Ltd, UK, and so I cannot
  750. include it.
  751.  
  752. The emulation will work just like the real thing. Programs can be frozen
  753. at any time and you can enter pokes or look at the memory. You can even
  754. save the memory out to a disk image (similar to a snapshot), and re-load
  755. it later to start from the same position.
  756.  
  757. If you have a utility for the Multiface such as Tearaway or Insider, this
  758. will work too. You will need a disk image of the utility or on the registered
  759. version you can use the real disk.
  760.  
  761. In the emulator, you activate the multiface by pressing F8 or by selecting
  762. "Multiface Stop" from the menu, you should then see the familiar Multiface
  763. menu.
  764.  
  765. You will need to do the following to use this feature:
  766.  
  767. 1) Transfer the two files MULTSAVE.BAS and MULTSAVE.BIN to a CPC disk,
  768. 2) With the CPC turned off, connect the Multiface 2 to the expansion port,
  769. 3) Switch on the CPC, and insert the disc with the files on it and 
  770.    type:
  771.    
  772.    RUN"MULTSAVE
  773.  
  774. 4) The program will save the Multiface rom data to a file called
  775.    MULTFACE.BIN
  776.    
  777. 5) Transfer MULTFACE.BIN from the CPC disk to an Amiga disk, and 
  778.    copy it into the roms/ directory of A-CPC.
  779.  
  780. 6) Load a text editor and add the following line to any of the
  781.    config files:
  782.    
  783.    MULTFACE_ROM=A-CPC:roms/multface.rom
  784.    
  785. 7) Now run A-CPC..
  786.  
  787. NOTE:
  788.  
  789. I have successfully run this feature using the rom data from my own
  790. Multiface. This feature may or may not work with older versions of the
  791. Multiface. 
  792.  
  793. The Multiface for the CPC will not work with the Plus emulation
  794. because of differences in the disk roms. The multiface assumes the location
  795. of routines in the disk rom, and will crash if run with the wrong CPC.
  796. (If you own a Plus machine with a Plus compatible Multiface, I would
  797. be very interested to hear from you so that I can add support for Plus
  798. Multiface).
  799.  
  800. The CPC version of the Multiface will only work with the 464/664 and 6128.
  801. The Plus version of the Multiface will only work with the 464+ and 6128+.
  802.  
  803. Some protections will prevent programs from working if the Multiface is
  804. enabled. To reduce the chance of this happening, the Multiface is made
  805. invisible when the emulator is reset. (On the CPC, the Multiface is always
  806. active when the CPC has been reset).
  807.  
  808. I have found that the Multiface emulation does not work with some games.
  809. I do not know what is causing this, maybe this happens on the games anyway.
  810.  
  811. ---------------------------------------------------------------------------
  812.  
  813. A-CPC Utilities
  814. ===============
  815.  
  816. Format_DSK (registered version only)
  817. ==========
  818.  
  819. This utility will create a blank disk image in the format you specify
  820. so that you can save your own programs on it.
  821.  
  822. COMMAND FORMAT:
  823.  
  824. Make_DSK WRITE Dsk_filename FORMAT disk_format
  825.  
  826. dsk_filename
  827.     = Filename and path of DSK image to write
  828.     
  829. disk_format
  830.     = Name of the format
  831.  
  832. e.g.
  833.  
  834. Make_DSK write df1:programs.dsk format data
  835.  
  836. NOTE:
  837.  
  838. The following formats are supported:
  839.  
  840. DATA
  841. SYSTEM
  842. D1 (ROMDOS/RAMDOS)
  843. D10 (ROMDOS/RAMDOS)
  844.  
  845. ----------------------------------------------------------------------------
  846.  
  847. Make_DSK (registered version only)
  848. ========
  849.  
  850. Make_DSK will read any CPC format disk, even copy-protected discs, 
  851. and attempt to make a disk image. (The disk image is compatible with 
  852. CPCEMU). It has been designed so that you can use all your software with 
  853. A-CPC. 
  854.  
  855. If you have copy-protected software which you would like to use on
  856. A-CPC, then you must connect a 3" disc to your Amiga, or copy the disks to 
  857. 3.5".
  858.  
  859. But, make sure that the copy you make does run on your CPC, otherwise
  860. it will not run on A-CPC either. However, this does not mean that the 
  861. software will work. The emulator doesnt emulate the CPC perfectly 
  862. there are still some hard to find bugs which may prevent the disk from 
  863. loading correctly. This probably applies to disks with heavy copy-protection.
  864.  
  865. Some protected software relies on error codes returned from the fdc.
  866. A-CPC supports some of these errors, but at this date, neither CPCEMU
  867. or CPE do, but I have been talking with the authors about it. So, if
  868. you create disk images from Make_DSK they may not work with CPCEMU or
  869. CPE.
  870.  
  871. Please Note: I do not authorise or condone the use of this program for
  872. backuping copy-protected software. You will need to obtain permission from
  873. the copyright holder before converting any disk.
  874.  
  875. COMMAND FORMAT:
  876.  
  877. Make_DSK 
  878.  DS Unit_Number Destination_FileName No_of_tracks No_of_sides Start_Side
  879.  
  880. DS
  881.     = If this keyword is present, this feature is active.
  882.           If you have some software on 40 track 5.25" discs (written
  883.           with a 40 track drive on the CPC), but you have a 80 track
  884.           5.25" for Amiga, then use this option. Instead of stepping
  885.           once, it will step twice (or double-track step), so now
  886.           the disk will be converted correctly.
  887.  
  888. Unit_Number 
  889.     = Amiga drive containing the CPC disk
  890.         e.g. 0, 1, 2 or 3
  891.             
  892. Destination_Filename 
  893.     = Filename and path of DSK image to write
  894.         e.g. ram:dsk_images/north_and_south-1.dsk
  895.  
  896. No_of_Tracks 
  897.     = Number of tracks to read from CPC disk
  898.         e.g. 40, 42 or 80
  899.     
  900.       NOTE: Some demos and games use track 40 and 41 to store more
  901.             data on a 40 track disk. If you are not sure of the
  902.             number of tracks used, enter 42.
  903.  
  904. No_of_Sides 
  905.     = Number of sides to read from CPC disk
  906.         e.g. 1 or 2
  907.         
  908. Start_Side 
  909.     = Side to start reading from. (e.g. if you have a side switch
  910.       on your CPC to use both sides of a 3.5" disc using AMSDOS,
  911.       you can choose the side to read with this parameter)
  912.         e.g. 0 or 1
  913.  
  914.  
  915. e.g.
  916.  
  917. Make_Dsk 0 df1:dsk_images/north_and_south-1.dsk 40 1 0
  918.  
  919.  
  920. NOTE:
  921.  
  922. For AMSDOS disks:
  923.  
  924. - 40 tracks (possibly 41 or 42 for copy-protected disks)
  925. - 1 side
  926.  
  927. For ROMDOS disks:
  928.  
  929. - 80 tracks
  930. - 2 sides
  931.  
  932. If you want to convert a CPC disk which needs a special program (on CPC
  933. disk or CPC ROM) to read the format, such as ROMDOS or any other DOS, then
  934. you will need a copy of this program to read the disk image and run
  935. it on A-CPC.
  936.  
  937. For ROMDOS use SAVEROMS to save a copy of the rom data, and add a 
  938. line to the config file.
  939.  
  940. I have successfully converted the following to disk image from my
  941. originals (these had some copy-protection):
  942.  
  943. North & South            Road Runner (US Gold version)
  944. Nightbreed            Target Renegade
  945. Run the Gauntlet
  946. Short Curcuit
  947. Barbarian
  948. Mr.Heli
  949.  
  950. ----------------------------------------------------------------------------
  951.  
  952. z80_dissassembler (registered version only)
  953. =================
  954.  
  955. This utility will dissassemble any file. I originally wrote this file
  956. to dissassemble the roms so I could find out where to patch them and to
  957. work out where I could put breakpoints to test my emulation.
  958.  
  959. The input file must not have any header. If it did, this would be treated
  960. as Z80 opcodes and dissassembled, so you would have garbage at the start.
  961. The output file is a standard text file which you can load into any editor.
  962.  
  963. The dissassembler is not intelligent, it doesnt identify areas of text
  964. or data. The output looks like this:
  965.  
  966. <address>  <z80 opcodes>  <z80 mneumonics>
  967.  
  968. e.g.
  969.  
  970. &8000 21 34 12    LD HL,&1234
  971.  
  972. It does support ALL undocumented opcodes, including the weird LD r,RLC (IX+0)
  973. instructions and SLL!
  974.  
  975. z80_dissassembler <source file> <destination file> <start address> <length>
  976.  
  977. e.g.
  978.  
  979. z80_dissassembler roms:cpc6128-os.rom sources:cpc6128-os.src 0 16384
  980.  
  981.  
  982. <source file>
  983.     = device, path and filename of the AmigaDOS file to dissassemble.
  984.       The file is loaded into memory before disassembly so make sure
  985.       there is enough free memory to do this.
  986.       
  987. <destination file>
  988.     = device, path and filename of the AmigaDOS file to write.
  989.       This file contains the z80 dissassembly of the input file.
  990.       
  991. <start address>
  992.     = this is a decimal number and defines the address you would
  993.       like the disassembly to start from (it can be thought of as
  994.       the load address for the file in z80 memory).
  995.       
  996.       e.g. a start address of 32768 would give a dissassembly like this
  997.  
  998.       &8000    21 34 12    LD HL,&1234
  999.       &8003    06 05        LD B,&05
  1000.  
  1001. <length>
  1002.     = this is the size of the data to dissassemble in bytes. This
  1003.       value is usually equal to or less than the size of the input
  1004.       file.      
  1005.  
  1006. ---------------------------------------------------------------------------
  1007.  
  1008. SAVEROMS.BAS (registered version only)
  1009. ============
  1010.  
  1011. This is a program to run on your CPC. It will display a list of ROMs that
  1012. are connected (e.g. PROTEXT,UTOPIA, ROMDOS etc). You can choose the name
  1013. of the ROM and enter a filename, and it will save the rom data. 
  1014.  
  1015. To use this program, transfer it to an Amstrad disk and run it from AMSDOS.
  1016.  
  1017. You can use the ROM data  with A-CPC by modifying A-CPC config file.
  1018.  
  1019. When you transfer the files to the CPC, make sure there is not a AMSDOS
  1020. header, otherwise the rom will not work.
  1021.  
  1022. ----------------------------------------------------------------------------
  1023.  
  1024. SAVEMULT.BAS (registered version only)
  1025. ============
  1026.  
  1027. This is a program to run on your CPC. It is used to save a copy of the
  1028. Multiface 2 rom data. 
  1029.  
  1030. To use this program:
  1031.  
  1032. 1) Copy the files onto a CPC disk,
  1033. 2) Attach your Multiface to your CPC,
  1034. 3) Switch on the CPC and run the program from AMSDOS
  1035.  
  1036. If everything works well, a file will be saved to the disc called
  1037. MULTFACE.ROM.
  1038.  
  1039. See the section on the Multiface emulation for more information.
  1040.  
  1041. ----------------------------------------------------------------------------
  1042.  
  1043. SAVEBURN.BAS (registered version only)
  1044. ============
  1045.  
  1046. This is a program to run on your CPC+. It is used to save the game
  1047. Burning Rubber from the cartridge supplied with the Plus. Since the
  1048. game is copyrighted, I cannot include a copy with this emulator, so
  1049. I have provided this utility to save it, so you can play Burning Rubber
  1050. on A-CPC.
  1051.  
  1052. To use the program:
  1053.  
  1054. 1) Copy the files to a CPC disk,
  1055. 2) With the Burning Rubber/BASIC cartridge inserted run this program
  1056. from BASIC,
  1057.  
  1058. 4 files will be written and they will be called:
  1059.  
  1060. BURNROM.1, BURNROM.2,BURNROM.3 and BURNROM.4.
  1061.  
  1062. 3) Copy these files to an Amiga disk and run the MakeBurnCart
  1063.    program. (This will create a Burning Rubber cartridge image suitable
  1064.    to be used with the emulator).
  1065.    
  1066. 4) To play burning rubber select "Insert Cartridge" from the files menu
  1067.    on the Plus version of A-CPC.
  1068.  
  1069. ----------------------------------------------------------------------------
  1070.  
  1071. MakeBurnCart (registered version)
  1072. ============
  1073.  
  1074. This utility will create a cartridge image from the files saved using
  1075. SAVEBURN.
  1076.  
  1077. MakeBurnCart <source_path> <destination_filename>
  1078.  
  1079. <source path> 
  1080.     = location of BURNROM.1, BURNROM.2, BURNROM.3 and BURNROM.4
  1081.       files.
  1082.  
  1083. <destination_filename>
  1084.     = device, path and filename of cartridge image to create.
  1085.     
  1086. e.g.
  1087.  
  1088. MakeBurnCart df0: Work:emulators/A-CPC/burnin_rubber.cartridge
  1089.         
  1090. ----------------------------------------------------------------------------
  1091.  
  1092. Using CPC disks (registered version)
  1093. ===============
  1094.  
  1095. If you want to use 3" or 3.5" disks that have CPC software on them without
  1096. converting them into disk images then use this feature. Please note, that
  1097. the speed of loading depends on the complexity of any copyprotection (if
  1098. present) and the speed of your machine. On my vanilla A500 reading CPC
  1099. disks under AMSDOS is slighly faster than reading disk images, purely
  1100. due to the fact that I am only using 2 drives and the AmigaOS has to
  1101. search through the disk image file and back again in these circumstances.
  1102.  
  1103. It will allow you to use all your CPC software, so you can then decided
  1104. which games you want to convert to disk later to and store them on your
  1105. harddrive.
  1106.  
  1107. As with the disk images, if a special program or rom is required to read
  1108. a format on the CPC, this must be used in the emulator to read the format.
  1109.  
  1110. This feature will load some copyprotected software. Since much copyprotected
  1111. software relies on undocumented commands or features and/or specific error
  1112. codes from the Floppy Disk Controller, they may fail to load.
  1113.  
  1114. If you are using 40 track disks on a 80 track drive then enable "Double-step"
  1115. for the drive which needs it.
  1116.  
  1117. I been successful with the following disk formats:
  1118.  
  1119. - all standard AMSDOS (DATA,SYSTEM etc)
  1120. - all standard ROMDOS (D1,D10 etc - using a ROM image)
  1121. - some copyprotected disks including
  1122.     Get Dexter
  1123.     Jack Nicklaus' Golf
  1124.     Target Renegade didnt run, probably because the copyprotection
  1125.     was very complicated.
  1126.     
  1127. ----------------------------------------------------------------------------
  1128.  
  1129. Snapshot file format
  1130. ====================
  1131.  
  1132. This describes the format of the Snapshot files used by A-CPC (and also
  1133. CPCEMU and CPE).
  1134.  
  1135. offset from        Comment
  1136. start of file
  1137.  
  1138. 00-07            "MV - SNA"
  1139.  
  1140.             Identify file as a snapshot.
  1141.             
  1142. 08-0F            unused (0)
  1143.  
  1144. 10            Snapshot version (1 or 2)
  1145.  
  1146.             A-CPC reads and writes snapshot version 1.
  1147.  
  1148. 11            z80 register F
  1149. 12            z80 register A
  1150. 13            z80 register C
  1151. 14            z80 register B
  1152. 15            z80 register E
  1153. 16            z80 register D
  1154. 17            z80 register L
  1155. 18            z80 register H
  1156. 19            z80 register R
  1157. 1a            z80 register I
  1158. 1b            z80 interrupt flag iff0 (z80 maskable interrupt)
  1159.  
  1160.             iff0<>0 => Interrupts enabled,
  1161.             iff0=0 => Interrupts disabled
  1162.  
  1163. 1c            z80 interrupt flag iff1 (z80 un-maskable interrupt)
  1164.  
  1165. 1d            z80 register IX (low byte)
  1166. 1e            z80 register IX (high byte)
  1167. 1f            z80 register IY (low byte)
  1168. 20            z80 register IY (high byte)
  1169. 21            z80 register SP (low byte)
  1170. 22            z80 register SP (high byte)
  1171. 23            z80 register PC (low byte)
  1172. 24            z80 register PC (high byte)
  1173. 25            z80 interrupt mode (0,1,2)
  1174. 26            z80 register F'
  1175. 27            z80 register A'
  1176. 28            z80 register C'
  1177. 29            z80 register B'
  1178. 2a            z80 register E'
  1179. 2b            z80 register D'
  1180. 2c            z80 register L'
  1181. 2d            z80 register H'
  1182.  
  1183. 2e            Gate array: current selected pen
  1184. 2f-3f            Gate array: pens 0-15, border (hardware colour value)
  1185. 40            Gate array: current mode selected and rom configuration
  1186. 41            Gate array: current ram selection
  1187. 42            CRTC: current selected register
  1188. 43-54            CRTC: register data (0..17)
  1189. 55            Expansion ROM selected
  1190. 56            PPI: port A
  1191. 57            PPI: port B
  1192. 58            PPI: port C
  1193. 59            PPI: control port
  1194. 5a            PSG: current selected register
  1195. 5b-6a            PSG: register data (0..15)
  1196. 6b-6c            memory dump size (low byte then high byte)
  1197.             64 => 64k, 128 => 128k
  1198.  
  1199. (The following parameters only exist in version 2. In version 1, they
  1200. are unused:)
  1201.  
  1202. 6d            CPC type where snapshot was generated
  1203.             0=cpc464, 1=cpc664, 2=cpc6128, 3>unknown            
  1204.  
  1205. 6e            interrupt number (0..5), the latest interrupt
  1206.             during a screen update cycle.
  1207.             
  1208. 6f-74            6 multimode bytes (thus screen modes 0..2 for
  1209.             the interrupts 0..5
  1210.             
  1211. 75-ff            unused (0)
  1212.  
  1213. (the following is in all versions)
  1214.  
  1215. 100..            memory dump (64k or 128k of data)
  1216.  
  1217. Disk Image file format
  1218. ======================
  1219.  
  1220. Disc Information Block
  1221. ======================
  1222.  
  1223. This is at the start of all disk image files.
  1224.  
  1225. offset in        Comment
  1226. file
  1227.  
  1228. 00-21            "MV - CPCEMU Disk-File\r\n\Disk-Info\r\n"
  1229.  
  1230.             "MV - CPC" is used to identify the file as
  1231.             a disk image.
  1232.             
  1233. 22-2f            unused (0)
  1234.  
  1235. 30            number of tracks in disk image (40,80,42...)
  1236.  
  1237. 31            number of sides (1 or 2)
  1238.  
  1239. 32-33            size of track block including &100 byte track
  1240.             info block (stored low byte and then high byte)
  1241.             
  1242.             All track blocks MUST be the same size.
  1243.  
  1244. 34-ff            unused (0)
  1245.  
  1246. After this header, there are each Track Information Block for each
  1247. track on the disk. The tracks are stored in order, and in double sided
  1248. formats, side 0 then side 1, for each track. Each track consists
  1249. of a Track information Block and the data for the sectors in the track.
  1250.  
  1251. Track Information Block
  1252. =======================
  1253.  
  1254. offset from        comment
  1255. start of 
  1256. track block            
  1257.  
  1258. 00-0c            "Track-Info\r\n"
  1259.  
  1260. 0d-0f            not used (0)
  1261.  
  1262. 10            Track number (0 to number of tracks-1)
  1263.  
  1264. 11            Side number (0 or 1)
  1265.  
  1266. 12-13            not used (0)
  1267.  
  1268. 14            BPS (bytes per sector)
  1269.  
  1270.             0=128 bytes
  1271.             1=256 bytes
  1272.             2=512 bytes
  1273.             3=1024 bytes
  1274.             
  1275.             This is used to calculate the position of the
  1276.             sector data in the track block.
  1277.             
  1278. 15            SPT (sectors per track)
  1279.  
  1280.             Number of sectors in this track block.
  1281.             
  1282. 16            GAP#3 (used for formatting, &4e)
  1283.  
  1284. 17            Filler byte (used for formatting, &e5)
  1285.  
  1286. 18-&ff            sector info list
  1287.  
  1288. Sector Info
  1289. ===========
  1290.  
  1291. This is used to identify each sector on the disk)
  1292.  
  1293. offset            comment
  1294.  
  1295. 0            track number (C value)
  1296. 1            head number (H value)
  1297. 2            sector id number (R value)
  1298. 3            sector size (N)
  1299. 4            FDC Status register 1 (after read operation)
  1300. 5            FDC status register 2 (after read operation)
  1301. 6            not used (0)
  1302. 7            not used (0)
  1303.  
  1304.  
  1305.  
  1306. For more information consult the CPC Guide section of the
  1307. "Unofficial Amstrad CPC WWW Resource".
  1308.  
  1309. ----------------------------------------------------------------------------
  1310.  
  1311. Other emulators
  1312. ===============
  1313.  
  1314. During the development of this emulator I have discovered that other
  1315. CPC emulators exist:
  1316.  
  1317. PC:
  1318.  
  1319. CPCEMU v1.3b    by    Marco Vieth (ali@uni-paderborn.de)
  1320.             (It can be found on Simtel mirrors)
  1321.             
  1322.             micros.hensa.ac.uk/pub/
  1323.  
  1324. CPE v5.0    by     Bernd Schmidt (crux@Pool.Informatik.Rwth-aachen.de)
  1325.             ftp.nvg.unit.no/pub/cpc/incoming/cpe50.zip
  1326.             ftp.nvg.unit.no/pub/cpc/incoming/cpe50src.zip
  1327.  
  1328. A CPC emulator by Herman Dullink, currently in beta. It doesnt use
  1329. the same kind of emulation as in CPCEMU and CPE and it does support
  1330. direct reading of CPC disks. But it is very fast even for 386.
  1331.  
  1332. SIMCPC emulates a CPC (not very well) in black and white. It is not
  1333. really meant as a serious emulation attempt, however it is a good laugh
  1334. to look at.
  1335.  
  1336. There is also one other called CPCEMUII but I dont know anything else
  1337. about it.
  1338.  
  1339. Amiga:
  1340.  
  1341. CPE        by    Bernd Schmidt (a very early version, Bernd doesnt
  1342.             plan to update this emulator. It comes with source)
  1343.             ftp.nvg.unit.no/pub/cpc/incoming/acpe_new.lzh
  1344.  
  1345. AMI-CPC        by    a french guy known in the scene as Hypnom.
  1346.             He doesnt have internet access. It runs on 68020
  1347.             or above only.
  1348.  
  1349. Unix:
  1350.  
  1351. (Unknown)    by    Mark Conmy (mpc@scs.leeds.ac.uk)
  1352.             The emulator supports snapshots and disk images
  1353.             to a useable degree. This has not been released
  1354.             yet.
  1355. Mac:
  1356.  
  1357. (unknown)    by    (unknown)
  1358.             Aparently a CPC emulator for Mac is being developed.
  1359.             I dont know any more than this. It is being
  1360.             written by a guy on compuserve.
  1361.             
  1362. Archimedes:
  1363.  
  1364. !CPC        by    Mark Rison (rison@hep.cam.ac.uk).
  1365.  
  1366.             A good emulator, at the moment it only supports
  1367.             Snapshots. He has had some difficulty with the
  1368.             disk emulation. Runs full speed on a low-end 
  1369.             Archimedes.
  1370.  
  1371. (unknown)    by    "Face Hugger"
  1372.             Aparently, a famous CPC demo coder has written
  1373.             a CPC emulator for the Archimedes. This may
  1374.             just be a rumour. I have not seen the emulator
  1375.             so I dont know about it's status.
  1376.  
  1377. If you are writing an emulator please contact me.
  1378.                                     
  1379. --------------------------------------------------------------------------
  1380.  
  1381. Connecting a 3" drive to the Amiga
  1382. ==================================
  1383.  
  1384. WARNING! YOU COULD DO SERIOUS DAMAGE TO YOUR AMIGA OR 3" DRIVE WHEN 
  1385. ATTEMPTING THIS LEAD. I CANNOT BE HELD RESPOSIBLE FOR ANY DAMAGE TO YOURSELF,
  1386. COMPUTER OR DISC DRIVE FROM ATTEMPTING TO MAKE THIS LEAD. YOU DO THIS
  1387. AT YOUR OWN RISK!
  1388.  
  1389. Now, I will attempt to describe how to make a lead to connect a 3" drive
  1390. to your Amiga (as a 2nd or third drive). I have not personally tried this,
  1391. but it is a simple matter of making a simple lead, so it does not need
  1392. much electronical expertise, but you need to be good using a soldering
  1393. iron.
  1394.  
  1395.  
  1396. Amiga pin outs:
  1397.  
  1398. These are the pinouts on the Amiga connector.
  1399.  
  1400. 1    /RDY
  1401. 2    /DKRD
  1402. 3-7    GND
  1403. 8    /MTRXD
  1404. 9    /SEL2B
  1405. 10    /DRESB
  1406. 11    /CHNG
  1407. 12    +5v
  1408. 13    /SIDEB
  1409. 14    /WPRO
  1410. 15    /TK0
  1411. 16    /DKWE
  1412. 17    /DKWD
  1413. 18    /STEPB
  1414. 19    DIRB
  1415. 20    /SEL3B
  1416. 21    /SEL1B
  1417. 22    /INDEX
  1418. 23    +12v
  1419.  
  1420. CPC Pin outs:
  1421.  
  1422. (these are the connections on the CPC6128 2nd drive connector)
  1423.  
  1424. 1    /READY
  1425. 2    GND
  1426. 3    /SIDE SELECT
  1427. 4    GND
  1428. 5    /READ DATA
  1429. 6    GND
  1430. 7    /WRITE PROTECT
  1431. 8    GND
  1432. 9    /TRACK0
  1433. 10    GND
  1434. 11    /WRITE GATE
  1435. 12    GND
  1436. 13    /WRITE DATA
  1437. 14    GND
  1438. 15    /STEP
  1439. 16    GND
  1440. 17    /DIRECTION SELECT
  1441. 18    GND
  1442. 19    /MOTOR ON
  1443. 20    GND
  1444. 21    not connected
  1445. 22    GND
  1446. 23    /DRIVE SELECT 1
  1447. 24    GND
  1448. 25    not connected
  1449. 26    GND
  1450. 27    /INDEX
  1451. 28    GND
  1452. 29    not connected
  1453. 30    GND
  1454. 31    not connected
  1455. 32    GND
  1456. 33    not connected
  1457. 34    GND
  1458.  
  1459. Connections:
  1460.  
  1461.     CPC/3" drive end    Amiga
  1462.  
  1463. 1    /READY    ------------    /RDY
  1464. 3    /SIDE 1 SELECT -----    /SIDEB
  1465. 5    /READ DATA ---------    /DKRD
  1466. 7    /WRITE PROTECT -----    /WPRO
  1467. 9    /TRACK0    ------------    /TK0
  1468. 11    /WRITE GATE --------    /DKWE
  1469. 13    /WRITE DATA --------    /DKWD
  1470. 15    /STEP --------------    /STEPB
  1471. 17    /DIRECTION SELECT --    /DIRB
  1472. 19    /MOTOR ON ----------    /MTRXD
  1473. 23    /DRIVE SELECT 1 ----    /SEL1B
  1474. 27    /INDEX -------------    /INDEX
  1475.  
  1476. On the 3" drive end, all even pins connect together and to GND, pins 3-7
  1477. on Amiga connect together, and then to the even pins on 3" drive.
  1478.  
  1479. Some 3" drives dont have all 34 pins. I believe that most of them just have
  1480. the data lines as described above. You should attempt this as long as you
  1481. know something about the 3" drive you are using.
  1482.  
  1483. you can also connect the +5v and +12v from the Amiga to the 3" drive as
  1484. long as you dont have any other drives connected, otherwise use a seperate
  1485. power supply.
  1486.  
  1487. ----------------------------------------------------------------------------
  1488.  
  1489. Sources of CPC software and information
  1490. =======================================
  1491.  
  1492. Firmware Guide by Bob Taylor and Thomas Defoe.
  1493.     ftp.ibp.fr/pub/amstrad/misc/firmware.zip
  1494.  
  1495.     Now in electronic form.
  1496.  
  1497. WWW:
  1498.     Unofficial Amstrad CPC WWW Resource
  1499.     http://www.cs.cf.ac.uk/User/K.E.W.Thacker/Amstrad/index.html
  1500.  
  1501.     and soon a mirror at http://www.nvg.unit.no
  1502.  
  1503.     It contains Amstrad related links and especially the CPC Guide
  1504.     which contains documentation on the CPC chips and more documents
  1505.     essential for emulator authors.
  1506.     
  1507. Newsgroups:
  1508.  
  1509. There is an Amstrad 8-bit specific newsgroup for talking about emulators
  1510. and all things Amstrad related.
  1511.  
  1512. comp.sys.amstrad.8bit
  1513.  
  1514. FAQ (Frequently Asked Questions):
  1515.  
  1516. There is a official FAQ for the Amstrad newsgroup. It is posted twice
  1517. a week, and it can also be found at:
  1518.  
  1519. ftp.ibp.fr/pub/amstrad/amstrad.faq
  1520.  
  1521. It is maintained by Emmanuel Roussin
  1522.  
  1523. Anonymous FTP:
  1524.  
  1525. At the prompt enter "anonymous" or "ftp", and your e-mail address for
  1526. the password.
  1527.  
  1528. ftp.ibp.fr    /pub/amstrad
  1529.  
  1530.         The files are mirrored from "Genesis the 8bit generation BBS"
  1531.         run by Emmanuel Roussin. (roussin@blaise.ibp.fr).
  1532.         
  1533.         This site contains a huge selection of public domain and shareware
  1534.         software for the CPC and much much more.
  1535.  
  1536.         This site is very busy during the day.
  1537.  
  1538.         There is no incoming directory. You must contact
  1539.         Emmanuel to sort out how to get the files to him.
  1540.         
  1541. ftp.nvg.unit.no    /pub/cpc/
  1542.         
  1543.         This site has lots and lots of games in snapshot
  1544.         and disk image format. It also has much more.
  1545.         Check out /pub/cpc/incoming for the latest uploads.
  1546.  
  1547.         This site can be busy during the day.
  1548.         
  1549.         You can put uploads into the /pub/cpc/incoming directory.
  1550.         
  1551. sunshine.informatik.uni-wuerzburg.de /pub/joscho/cpcemu
  1552.  
  1553.         mirror of the ftp.nvg.unit.no site. Limited ftp access.
  1554.         
  1555. ftp.demon.co.uk    /pub/cpm
  1556.  
  1557.         Software for CPC C/PM. Limited set of files.
  1558.         
  1559. BBS:
  1560.     Aspects (2:250/107) +44 1617920260 (UK)
  1561.     
  1562.     Genesis the 8bit Generation (2:320/220) +33 1 39 50 54 11 (France)
  1563.     
  1564.     Razormaid (2:2471/6009) +49 711 4204329 (Germany)
  1565.     
  1566.     ZNODE 51 +49 89 961 45 75 (Germany)
  1567.  
  1568. ==========================================================================
  1569.  
  1570. Please contact me if:
  1571. - you find a bug.
  1572.  
  1573.     Please supply this information:
  1574.     Amiga model, CPU, hardware connected, how the bug was generated.
  1575.     
  1576. - you find a game that does not work
  1577.  
  1578.     Some games will not work because they rely on undocumented
  1579.     features of the chips. But I might be able to improve the emulator
  1580.     if I can find bugs and fix them.
  1581.  
  1582. - you know about the "KC Kompact" computer made by a German firm
  1583. - e-mail addressess of CPC demo coders
  1584. - e-mail addressess of game companies who made games for the CPC
  1585. - information about other emulators
  1586. - connecting a 3" drive to the Amiga
  1587. - if the program supplied to save Plus cartridges works and if you
  1588.   have successfully had a cartridge image running on the plus emulation
  1589.   (this does not include the Burning Rubber cartridge)
  1590.   
  1591. All your comments are welcome. Especially ideas about increasing the
  1592. performance of the emulator.
  1593.  
  1594. ----------------------------------------------------------------------------
  1595.  
  1596. About the Author and the Program
  1597. ================================
  1598.  
  1599. I am a 20 year old male studying Computer Science at Cardiff University
  1600. in Wales in the United Kingdom. I am now in my 3rd year.
  1601.  
  1602. The whole of the emulator package was written on a vanilla A500 with
  1603. 2 disk drives and 1mb of Chip Ram, running Workbench 2.0.
  1604.  
  1605. It has taken me about a year and a half to write so far and it is my first 
  1606. ever program using the Amiga Operating System, and it is actually my
  1607. 2nd program I have written on the Amiga. (The first being an unfinished
  1608. Zool clone).
  1609.  
  1610. I am beginning to loose count of the number of times that a disk has
  1611. decided to become corrupted or the number of times the computer has
  1612. crashed, and I have had to reboot. Believe me that trying to develop
  1613. a program of this size on a A500 is a headache. The whole program
  1614. actually uses 3 disks. 1 disk for Devpac, 1 disk for Includes, 1 disk
  1615. for the source code and rom data. About another 30 disks hold snapshots
  1616. and disk images which I use to check the emulator is working correctly.
  1617. Thankfully, I am not used to a harddrive and the luxurys like large
  1618. amounts of memory after writing many programs on a CPC. (I wrote a Windows
  1619. system on the CPC and it took over half an hour to assemble!)
  1620.  
  1621. The source code takes about 15 mins to assemble. Not bad for about 700k
  1622. of source code.
  1623.  
  1624. The emulator should be 680x0 compatible. I have read through documentation
  1625. of other emulators and worked out what is needed for bare compatibility,
  1626. and when I can afford a new Amiga I will probably add 68020 enhancements
  1627. and more. Until then I will stick with the A500 and add as much as I can.
  1628. At least with the A500, when I change the code to speed things up, it is
  1629. noticeable.
  1630.  
  1631. I have only owned a A500 for two years now, previously I owned
  1632. a CPC6128. On the CPC I hacked lots of protections so I could transfer
  1633. tapes to disc, wrote a disk copier, a windows system, a windows-style
  1634. help system, picture converters, converted 100's of tunes from the Atari
  1635. ST, wrote some demos (many not complete), wrote a program to read PC
  1636. and Archimedes disks and with all this information I wrote the CPC Guide
  1637. which is available on the Unofficial Amstrad CPC WWW Resource. I can
  1638. still remember one Speedlock protection which had over 70 continuous
  1639. de-protection loops (all involving the dreaded R register!).
  1640.  
  1641. ----------------------------------------------------------------------------
  1642.  
  1643. Credits and Contributions
  1644. =========================
  1645.  
  1646. Many thanks to everyone who has contributed to the emulator and the WWW pages.
  1647. They are (in no specific order), sorry if I have missed you out:
  1648. Bernd Schmidt, Marco Vieth, Jim Boulton, Emmanuel Roussin, Herman Dullink,
  1649. Christian Emre Lysel, John Stringer and all the others.
  1650.  
  1651. ----------------------------------------------------------------------------
  1652.  
  1653. Contact:
  1654.  
  1655.  
  1656. Postal Address:
  1657.  
  1658.     Kevin Thacker,
  1659.     Fairhaven,
  1660.     Whiteway,
  1661.     Stroud,
  1662.     Gloucestershire,
  1663.     GL6 7EP
  1664.     England
  1665.     
  1666. E-Mail:
  1667.  
  1668.     K.E.W.Thacker@cs.cf.ac.uk (until June 96)
  1669.     
  1670. ----------------------------------------------------------------------------
  1671.  
  1672. Acknowledgements
  1673. ================
  1674.  
  1675. The ROMs included in this package (cpc464-os.rom, cpc464-basic.rom,
  1676. cpc664-os.rom, cpc664-basic.rom, cpc6128-os.rom, cpc6128-basic.rom,
  1677. cpc-amsdos.rom, plus-os.rom, plus-basic.rom and plus-amsdos.rom) are
  1678. (c) copyright Amstrad Plc and Locomotive Software. Permission has
  1679. been obtained to distribute them with the demo version and release
  1680. version of this emulator. Many thanks to Cliff Lawson and Richard Clayton.
  1681.  
  1682. The Multiface 2 is (c) copyright Romantic Robot Ltd.
  1683.  
  1684. Burning Rubber cartridge is copyright (c) Ocean Software, and Amstrad plc.    
  1685.  
  1686. ----------------------------------------------------------------------------