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 BASIC, OS and
- AMSDOS ROM images, and the FrontEnd module. 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...). The FrontEnd module is copyright Acorn,
- and is distributed with their kind permission.
-
-
- 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, released in 1984,
- consisted of a central unit, a cassette unit and a monitor in one
- package. The CPC664 had a 3" disc drive instead of the cassette unit.
- The CPC6128 had, in addition, 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 such as Risc PCs).
-
-
- 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. To set filetypes, click on the menu button
- while the pointer is above the file to be filetyped. 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
- ------------
-
- There are a number of formats for files suitable for use with CPC
- emulators such as !CPC.
-
- The most common file format is the disc image format (this is a file
- reproducing the contents of a real CPC disc). 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", or perhaps |CPM, to run them (file
- extensions need not normally be specified). 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 will launch
- !CPC_Demo with it. Note that !CPC_Demo does not support writing to
- discs.
-
- Another file format is the snapshot format (this is a file reproducing
- the state of a real CPC), 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.). 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. 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 adding to the file !Config in !CPC_Demo.
-
- 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.
-
- 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.
-
-
- Problems
- --------
-
- !CPC_Demo, being only a demonstration version of the real thing, !CPC,
- will not always get things right, and so some programs may not work
- properly under it. The symptoms can range from the mild (an inability
- to count the score) to the severe (a CPC hang, which necessitates an
- Alt-Esc to reset the CPC). When in doubt, try waiting a bit, since the
- program may be working away without visible effects, or may be playing a
- tune (which you won't hear since !CPC_Demo does not support sound).
- Also try pressing keys such as Escape, Space, Return and Fire (Num
- Lock). You can try running with palette changing disabled to see what
- might be going on behind a blank screen.
-
- You may occasionally get Internal Errors. There are not necessarily as
- bad as they sound! You can normally attempt to ignore the error by
- pressing space. IEs such as "OPPIb" and "ICRTC" are not severe, and can
- safely be skipped. The "BANK" IE is a sign that the program is trying
- to do bank switching a la CPC6128. "DIHALT" and FDC IEs are bad news.
- Any PseuDOS IEs are probably the result of bad configuration
- (write-protected discs, etc.). Note that if an IE occurs when the
- palette has been set to e.g. all black, the text will not be visible;
- you'll just hear a beep -- don't let this confuse you!
-
-
- Limitations
- -----------
-
- Disc handling is limited (only one drive, no writing to discs).
-
- 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.
-
- Extension ROMs are not supported.
-
- Printing is 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) and discussion
- Noel Llopis, for ftp.nvg.unit.no
- Richard Fairhurst, for FDC and Z80 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
- Dave Walker, for permission to distribute Acorn copyright material
- Robin Watts, for much marketing advice and assistance
- Toby Haynes, for allowing me to test !CPC on his Risc PC
- Dave Baldwin, for Z80 discussion
- Ian Collier, for Z80 discussion
- 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-edzi^gon 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.
-
-
- CPC resources on the Internet
- -----------------------------
-
- There is a very wide range of CPC material on the Internet. There are
- hundreds of games, utilities, documents, pictures, etc. There's a
- newsgroup devoted to Amstrad's 8-bit computers, comp.sys.amstrad.8bit.
- A real treasure trove!
-
- Your best starting point is probably to take a look at
- comp.sys.amstrad.8bit, and follow some WWW URL mentioned there. You can
- also try to access the author's WWW page at
-
- http://www.hep.phy.cam.ac.uk:8080/rison/cpc/cpc.html
-
- but this might not exist anymore by the time you read this (such is the
- Internet!).
-
-
- The full version, !CPC
- ----------------------
-
- A full version of this emulator, !CPC, is available, which fixes most of
- the limitations above. It will successfully run the vast majority of
- CPC programs, including many which !CPC_Demo cannot handle. It also has
- a host of features designed to make your life easier (you can change
- discs within the program, mix AMSDOS and PseuDOS, try different
- emulation strategies to get problem programs to work, there's full
- documentation, etc.).
-
- !CPC is shareware, with a registration fee of GBP 15. 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!
-
- Esperantistoj ^guas rabaton de kvin pundoj je la ^ci-supra prezo.
- Necesas tamen iom montri onian lingvan kapablon...
-
- If you're in or closer to Germany or France, then there are !CPC agents
- there whom you might prefer to deal with instead (again, try e-mail
- first and then snail-mail):
-
- ELISEI Frederic (Frederic.Elisei@imag.fr)
- Les Plaines
- F - 73600 Moutiers
- FRANCE
-
- Steffen HUBER (hubersn@minnie.informatik.uni-stuttgart.de)
- Geigeraeckerstr. 19
- D - 71336 Waiblingen
- DEUTSCHLAND
-
- 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 registering 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-05-24
-