home *** CD-ROM | disk | FTP | other *** search
-
- !CPC_Demo - An Amstrad CPC emulator for Acorn RISC OS machines (demo)
- =====================================================================
-
- [For information on the full version of this emulator, !CPC, see
- the end of this document.]
-
- Copyright
- ---------
-
- !CPC_Demo is Copyright (C) 1996 Mark RISON. This copyright extends to
- all the files provided in or with !CPC_Demo, except the ROM images
- below. The BASIC and OS ROM images are copyright Amstrad and Locomotive
- Software, and are distributed with their kind permission. The AMSDOS
- ROM image is copyright Amstrad and Digital Research (Novell), and is
- distributed with their kind permission (well, Amstrad's at least...).
-
- Conditions of use
- -----------------
-
- You may only use !CPC_Demo for your own personal and non-commercial
- purposes. You may freely distribute !CPC_Demo (including by FTP or BBS)
- provided you do not modify it in any way (you must distribute it in its
- entirety, including this file), and do not charge anything, either
- directly or indirectly. You may not, however, put !CPC_Demo on CD
- without explicit permission.
-
- No guarantee of any kind is made concerning operation of !CPC_Demo. You
- use !CPC_Demo at your own risk; you are advised to save all your work
- before launching !CPC_Demo.
-
- Introduction
- ------------
-
- The Amstrad CPC range of computers was a hugely successful range of
- 8-bit computers. There were 3 models. The CPC464 was released in 1984
- and consisted of a central unit, a cassette unit and a monitor in one
- package. The CPC664 was released in 1985, and had a 3" disc drive
- instead of the cassette unit. The CPC6128 was released soon after, the
- only significant difference being the addition of 64K of bank-switched
- RAM.
-
- All models were based around a Z80 CPU running at an effective 3.3 MHz.
- There was 64K of main RAM and 32K of ROM to contain the BASIC and OS;
- the disc drive models had an extra 16K ROM to hold the DOS, and the 6128
- had an extra 64K of RAM. The screen could be operated in one of three
- modes: 640x200 in 2 colours, 320x200 in 4 colours, and 160x200 in 16
- colours -- from a palette of 27 colours (27 greens on the green screen
- models). Sound capabilities ran to 3 channels with noise and hardware
- enveloping if desired. Two joysticks could be used with the machine.
- CP/M was an option on the disc models (CP/M 2.2 on both, and CP/M+ on
- the 6128).
-
- !CPC_Demo aims to emulate a real CPC in sufficient detail to allow
- programs written for the CPC to be used under RISC OS. This entails
- quite considerable translation from the CPC world to the RISC OS world;
- nonetheless !CPC_Demo is roughly as fast as the real thing on machines
- with an ARM3 (and faster with newer machines).
-
- A reminder of RISC OS operations
- --------------------------------
-
- To open a RISC OS directory, double-click on it. If it's an application
- (it's got a ! at the start), press Shift as well, else the application
- will be run. To copy files from one directory to another, open both and
- drag from one to the other. To load a given file into a text editor
- (e.g. !Edit) double-click on it while pressing Shift -- when you've
- finished the editing pressing F3 followed by Return should save the
- edited version. Finally, to access the command line (to type *
- commands, setting variables, for example), press F12 -- when you've
- finished press Return on its own.
-
- File formats
- ------------
-
- The most common file format (after dearchiving) is the disc image
- format. This can be recognised by filenames ending in .DSK (/DSK under
- the standard DOS mapping). Discs must be used under AMSDOS (see below)
- -- use CAT to see what's on them, and something like RUN"MEGADETH" to
- run them (file extensions need not normally be specified). Do not
- attempt to write to discs: !CPC_Demo does not support this at present.
- Discs should be placed in the subdirectory Discs in !CPC_Demo. If you
- set a disc's filetype to "CPC disc" (&065 at present), double-clicking on
- the disc with launch !CPC_Demo with it.
-
- Another file format is the snapshot format, recognisable by filenames
- ending in .SNA (/SNA). Snaps must be used under PseuDOS (see below).
- Use |SNAP,"MEGADETH" to launch snapshot MEGADETH. Snaps should be
- placed in the subdirectory Snaps in !CPC_Demo. If you set a snap's
- filetype to "CPC snap" (&064 at present), double-clicking on the snap
- will launch !CPC_Demo with it. |SNAPS will give a list of snapshots.
-
- The last file format is the native AMSDOS format, consisting of one or
- more files with filenames typically ending in .BAS or .BIN. These need
- to be converted to PseuDOS format using !AmsToArc (see below), and
- placed in the subdirectory Tapes in !CPC_Demo. These programs are
- typically launched with RUN"MEGADETH".
-
- Using !CPC_Demo
- ---------------
-
- !CPC_Demo should mostly behave just like a real CPC! !CPC_Demo has some
- extra features, however. You can reset the CPC not only using
- Shift-Ctrl-Esc, but also by pressing Alt-Esc (you may need to try a few
- times for this to work). You can quit !CPC_Demo by pressing Alt-F12, or
- by typing |QUIT (if you're using PseuDOS and not AMSDOS).
-
- One joystick is emulated, using Insert, Home, Page Up, Page Down, Num
- Lock and keypad / for left, right, up, down, main fire and secondary
- fire respectively. !CPC_Demo also supports two standard Acorn
- joysticks, as found on the A3010, which will behave just like CPC
- joysticks.
-
- If a program seems to be attempting to constantly change the screen
- colours, you can press Alt-P to lock out changes. You can try this a
- few times until you get a suitable palette. If a program seems to be
- attempting to constantly change the screen resolution, you can press
- Alt-M to lock out changes -- again, you can keep trying until the bit
- you're interested in appears right.
-
- You can squeeze extra performance out of !CPC by running in MODE 12
- rather than a higher resolution mode such as MODE 20. This is
- especially the case for games which use screen banking for smooth
- animation -- symptoms are faint horizontal interleave patterns on the
- screen. In certain cases, turning palette switching off (with Alt-P)
- will also speed things up.
-
- If the machine seems to hang and neither Alt-Esc nor Alt-F12 seem to get
- things back under control, you can attempt to kill the emulator off
- with Alt-Delete. This should be a solution of last resort! If even
- this does not seem to help, well ... you were advised to save all your
- work before launching !CPC_Demo, weren't you?
-
- PseuDOS and AMSDOS
- ------------------
-
- AMSDOS is the original DOS provided with disc models. It supports discs
- containing about 170K of data. Various | commands are provided by it to
- handle disc files (|ERA, |REN, etc.). !CPC_Demo only supports enough of
- AMSDOS to get standard disc images to load -- complex disc operations,
- as well as writing, will fail. To use AMSDOS the system variable
- CPC$DOS should be set to AMSDOS (use *SET CPC$DOS AMSDOS from the
- command line to do so). The disc to be used can be set in CPC$Disc
- (e.g. *SET CPC$Disc Megadeth); alternatively, if this variable is not
- set, a list of available discs will be given, and you will be asked to
- choose one.
-
- PseuDOS is a DOS whose purpose is to allow 'tape' files to be used.
- These files are held as RISC OS files in a special format. PseuDOS
- provides full access to these files, both in reading and in writing. In
- addition, PseuDOS redefines the CPC keyboard mappings to follow the UK
- RISC OS keyboard -- so if you're using AMSDOS some keys will be wrong
- (in particular, " will be obtained with Shift-2). To use PseuDOS the
- system variable CPC$DOS should be set to PseuDOS (*SET CPC$DOS PseuDOS).
- !AmsToArc (as found in the Support subdirectory in !CPC_Demo) should be
- used to make PseuDOS format files -- see the help file there for more
- details.
-
- CheckSnap and CheckDisc, as found in the Support subdirectory, allow you
- to check whether a snap or a disc is broken in some way. Simply
- double-click to launch, and give the name of the snap or disc to be
- checked when prompted.
-
- Treat both AMSDOS and PseuDOS with care -- don't do unexpected things.
- For example, if you are using floppy discs, try to keep the disc in the
- drive all the time. If you are saving under PseuDOS, make sure there's
- enough free space, and that the disc isn't write-protected.
-
- Configuring !CPC_Demo
- ---------------------
-
- !CPC_Demo can be configured by editing the file !Config in !CPC_Demo.
- After you've edited this file, double-click on it to execute it.
-
- By changing the value for CPC$ScreenMode you can change the screen mode
- !CPC_Demo uses. Recommended values are 12 if you have a low resolution
- monitor (or TV), 20 or 27 if you have a multisync or VGA monitor, or 46
- if you have a CGA monitor. A value of -1 will select the screen mode in
- use when !CPC_Demo is launched. In all cases the screen mode must be a
- 16-colour mode. If you have a RiscPC, you can use a string such as
- X640Y400C16 to select such a mode if it is appropriate.
-
- CPC$Slowdown selects the amount of slowdown to be used for fast machines
- (RiscPCs) to make them as slow as a real CPC. Values of the order of
- 10000 should be OK.
-
- CPC$DOS selects the DOS -- use either AMSDOS or PseuDOS. If AMSDOS, you
- can specify a disc name with CPC$Disc.
-
- CPC$MachineType selects the machine type. You can choose either 464,
- 664 or 6128. Please read the section on machine types below for
- guidance.
-
- If you would like to change the place where tapes, discs or snaps are to
- be found, you can alter DriveA, CPCDisc$Path and CPCSnap$Path. Note the
- latter two are path variables, so you can have more than one directory
- of discs or snaps -- but remember to put a trailing dot!
-
- The other variables should not normally need changing.
-
- Machine types
- -------------
-
- There is a bug in BASIC 1.0 as found on the 464 which means strings
- cannot be used in | commands. The result is that you cannot for example
- use |SNAP,"MEGADETH" to run Megadeth II - final carnage, but have to use
- A$="MEGADETH":|SNAP,@A$ instead. Don't use the 464 machine type unless
- a program won't work with any others.
-
- If you use the 6128 machine type, a program may assume you've got extra
- RAM available, and try to make use of it. Using the 664 machine type
- should prevent this. Some snapshots, however, may only work with the
- 6128 machine type. You'll have to try and see.
-
- Limitations
- -----------
-
- Disc handling is limited, as discussed above.
-
- The Z80 R register is not emulated. This means some programs which
- use R as a source of random numbers will behave rather predictably.
-
- Z80 BCD operations are not emulated properly. This means some programs
- won't count properly, which could be either very useful or very
- disastrous!
-
- Z80 parity operations are not emulated. This will only rarely cause
- trouble.
-
- Sound is not supported.
-
- You cannot save snaps or make screendumps.
-
- RAM banking (a la CPC6128) is not supported -- you'll get an error
- message ('Internal error: BANK').
-
- Extension ROMs are not supported.
-
- Thanks
- ------
-
- Thanks are due to a large number of people. I fear the list below may
- be incomplete: not having kept a list right from the start, I had to
- compile one from my records. If you feel you've been left out, please
- do not hesitate to get in touch; I'll immediately set the record straight!
-
- Nothing should be read into the ordering of this list (it is
- actually ordered by e-mail address!).
-
- Jim Nagel, for a mention in his Computer Shopper column
- Cliff Lawson, for permission to distribute Amstrad copyright material
- Dave Long, for getting me to release !CPC in the first place
- Frederic Elisei, pour les echanges techniques presque en continu
- Kevin Thacker, for his stupendous WWW site, lots of FDC info, etc.
- Nige Jones, for !CPCFront and valuable discussions
- Richard Black, for info on ARM2/3 speed optimisations
- Andrew Hodgkinson, for info on WimpSlot intricacies
- Alan Glover, for accepting to post my propaganda to c.s.a.announce
- Arnt Gulbrandsen, for ftp.nvg.unit.no
- Adam Parsons, for !CPCDisk
- Mike Borcherds, for info on emulation intricacies
- Bernd Schmidt, for info on emulation intricacies
- Mark Wooding, for info on RISC OS intricacies
- Dave Allison, for info on task killers
- Frank Cringle, for yaze and its brilliant Z80 exerciser
- Martin Wheatley, for the games list and valuable discussions
- Ian Johnson, for info on task killers
- Mark Sinclair, for his MDFs for RiscPCs
- Andreas Stroiczek, for competition (!CPCEmu)
- Noel Llopis, for ftp.nvg.unit.no
- Richard Fairhurst, for FDC info
- Richard Clayton, for permission to distribute Locomotive Software copyright material
- Emmanuel Roussin, for the CPC FAQ and ftp.ibp.fr
- Richard Wilson, for info on the Wimp
- Susanne Albrecht, for info on Z80 block I/O ops
- Sue Sound, for info on Z80 block I/O ops
- Thomas Hawtin, for excellent ideas about speeding-up the emulator
- Tony ?, for info on Z80 block I/O ops
- Thomas Down, for info on task killers
- Timothy Partridge, for info on ARM2/3 speed optimisations
- All the spodders on Egham Hills, for lots of technical chit-chat
- Everybody who tried out !CPC while it was in its beta test phase
- Everybody who showed their appreciation by contributing to the full version
- And everybody else who gave me valuable feedback and encouragment!
-
- Kaj kompreneble Marianne, kiu toleris mian duon-edzighon al la komputilo!
-
- No thanks to those who promised feedback and didn't provide any.
-
- Feedback
- --------
-
- Feedback of any nature is very welcome! Please write to the author.
-
- The full version, !CPC
- ----------------------
-
- A full version of this emulator, !CPC, is available, which fixes most of
- the limitations above. It is available only from the author.
-
- !CPC is free, but you are asked to consider making a contribution to
- its development. Something in the range GBP 10-20 is suggested,
- depending on your appreciation of the program and your level of use.
-
- To get !CPC, write to the author. If you have access to the Internet,
- try e-mail first. Failing that, send a stamped self-addressed envelope
- together with a blank, formatted 800K (double density) disc to the
- author. Please note that if any of these ingredients is missing, no
- response is likely to be forthcoming!
-
- No guarantees of any kind are made concerning operation of !CPC. It has
- been tested on an 4 MB A440/1 with ARM3/25. It will probably not work
- with only 1 MB.
-
- Also note that making a contribution does not guarantee you any future
- updates, though it is planned to make these available on the Internet,
- or by sending a disc and SAE as above.
-
- Contact details
- ---------------
-
- Mark RISON
- Caius College
- GB - Cambridge CB2 1TA
- UNITED KINGDOM
-
- rison@hep.phy.cam.ac.uk
- Mark.Rison@cern.ch
-
- 1996-02-11
-