home *** CD-ROM | disk | FTP | other *** search
Text File | 1996-03-20 | 127.2 KB | 3,468 lines |
-
- ▓▓▓▓▓▓▒ ▓▓▓▓▓▓▓▓▒▒ ▓▓▓▓▓▓▒ ▓▓▓▓▓▓▓▓▒ ▓▓▓▓ ▓▓▓▓▒▒ ▓▓▒▒ ▓▓▒▒
- ▓▓▒▒▒▒▒▒ ▓▓▒▒▒▒▒▓▓▒▒ ▓▓▒▒▒▒▒▒ ▓▓▒▒▒▒▒▒ ▓▓▒▓▓ ▓▓▒▓▓▒▒ ▓▓▒▒ ▓▓▒▒
- ▓▓▒▒ ▓▓▒▒ ▓▓▒▒ ▓▓▒▒ ▓▓▒▒▒ ▓▓▒▒ ▓▓▒▒ ▓▓▒▒ ▓▓▒▒ ▓▓▒▒
- ▓▓▒▒ ▓▓▓▓▓▓▓▓▒▒ ▓▓▒▒ ▓▓▓▓▓▓▓▓▒ ▓▓▒▒ ▒▒▒ ▓▓▒▒ ▓▓▒▒ ▓▓▒▒
- ▓▓▒▒ ▓▓▒▒▒▒▒▒ ▓▓▒▒ ▓▓▒▒▒▒▒▒ ▓▓▒▒ ▓▓▒▒ ▓▓▒▒ ▓▓▒▒
- ▓▓▒▒ ▓▓▒▒ ▓▓▒▒ ▓▓▒▒ ▓▓▒▒ ▓▓▒▒ ▓▓▒▒ ▓▓▒▒
- ▓▓▓▓▓▓▒ ▓▓▒▒ ▓▓▓▓▓▓▒ ▓▓▓▓▓▓▓▓▒ ▓▓▒▒ ▓▓▒▒ ▓▓▓▓▓▓▓▓▓▒▒
- ▒▒▒▒▒▒▒ ▒▒▒▒ ▒▒▒▒▒▒▒ ▒▒▒▒▒▒▒▒▒ ▒▒▒▒ ▒▒▒▒ ▒▒▒▒▒▒▒▒▒▒
-
- v1.4
-
-
- D O C U M E N T A T I O N
-
-
- (c) Marco Vieth, March 1996
-
-
-
-
- -------------------------------------------------------------------------------
-
-
-
-
- Table of Contents:
-
- 1. Introduction
- 1.1 Tips on how you should read this documentation
- 1.2 Copyright, guaranty
- 1.3 What is a CPC?
- 1.4 What does CPCEMU offer you?
-
- 2. Installation of CPCEMU
- 2.1 Files which comprise the CPCEMU package
- 2.2 Requirements and installation
- 2.3 Hints about memory and soundcards
- 2.3.1 Using EMS Memory
- 2.3.2 Defining the BLASTER environment
- 2.3.2 Defining the ULTRASND environment
-
- 3. Differences between CPC and CPCEMU
- 3.1 Keyboard
- 3.2 Loading of Programs, Menus
- 3.2.1 Loading from Disk, Menus
- - The Insert Disk Menu
- - The File-Selection Menu
- 3.2.2 Loading from and saving on cassette
- 3.2.3 Loading and saving of snapshots
-
- 4. Changing the Configuration
- 4.1 The setup menu
- 4.2 The configuration file
- 4.3 Command line parameters
-
- 5. Data Transfer CPC <-> PC
- 5.1 The disk as a media
- 5.1.1 The disk transfer program CPCTRANS
- 5.1.2 The format- and copy-utility 22DISK by SYDEX
- 5.2 The parallel interface
- - The parallel adapter
- 5.3 The serial interface
- 5.4 Other possibilities
-
- 6. Sources of Supply, Support, and Acknowledgments
- 6.1 Where can I get CPC software ?
- 6.2 News, exchange experiences
- 6.3 If you have questions or suggestions
- 6.4 Other Amstrad CPC emulators
- 6.5 Plans for future releases of CPCEMU
- 6.6 Acknowledgments
- 6.7 Registered trademarks
-
- 7. Internal Information about CPCEMU
- "Black Box", with its own table of contents
-
-
- Appendix:
-
- A.1 Glossary
- A.2 Bibliography
- A.3 Index
-
-
- ---------------------------
-
-
-
-
-
- 1. Introduction
- ≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡
-
-
- Welcome to the world of emulators!
-
- What?! You want to know what CPCEMU is, and what you can do with this
- strange program that has yellow writing on a blue screen, displaying
- "Syntax Error" after every input?
-
-
- To avoid long searching, here it is:
- CPCEMU emulates an Amstrad CPC 464, 664 or 6128 with many
- extensions. In other words, the program imitates the
- behaviour of the older Amstrad computers on your new PC.
-
- For what purpose?
- Well, if you still have no idea, then you will not have any need for CPCEMU.
-
- Some reasons:
- - nostalgia (oh, how nice my good old CPC was ...)
- - better performance compared to the original
- - better environment to develop programs in
- - playing games
- - work (yes, a CPC is good enough for simple word processing)
- - [ ] <- insert other reasons
- of your own.
-
-
-
-
- 1.1 Tips on how you should read this documentation
- ===================================================
-
-
- You should play around with the online help first, but if you need
- in-depth or more precise information, read on...
-
-
- I have tried to arrange the documentation in an orderly fashion. Should
- you still have questions (after reading it several times!), you can
- contact me. You can certainly do so, even if everything is perfectly
- clear to you. See chapter 6 (Sources, Support, ...) on how you can reach
- me.
-
- In chapter 1 (Introduction) I describe how best to read this
- documentation, who owns the copyright and some things about the CPC in
- general.
-
- In chapter 2 (Installation) it finally starts. You will be told how to
- install and start CPCEMU.
-
- Chapter 3 (Differences between the CPC and CPCEMU) deals with features of
- the emulator you should know about, if you are familiar with a real CPC.
- Mainly I will describe keyboard, disks, tapes and snapshots.
-
- In chapter 4 (Changing the Configuration) I describe how to tailor CPCEMU
- to your needs. Maybe then you will be able to run your favorite program.
-
- In chapter 5 (Data Transfer CPC <-> PC) you find out how to get your old
- CPC programs onto the PC. Further, the utilities that come with CPCEMU
- are explained.
-
- In chapter 6 (Sources, Support, and Acknowledgments) you will be told how
- to optain the latest version of CPCEMU and who you can contact should you
- have any questions.
-
- Chapter 7 (Internal Information about CPCEMU) is for experts only. The
- "official" part of the user manual ends with the previous chapter. I
- describe how one goes about programming an emulator and what you need to
- know to do it. The debug menu of CPCEMU is also explained, which allows
- you to analyze the processor and memory at *any* time during the
- emulation. Casual users should skip this chapter, at least during the
- first reading.
-
- Appendix A.1 contains a glossary with descriptions of the most important
- technical terms. Appendix A.2 is the bibliography and A.3 the index.
-
-
-
- 1.2 Copyright, Guaranty
- ========================
-
- CPCEMU was developed by (see also section 6.3):
-
- Marco Vieth
- Auf dem Uekern 4
- D-33165 Lichtenau
- Germany
-
-
- CPCEMU is Freeware, which means you can give the program to friends and
- acquaintances for *free*. Archive maintainers are allowed to include
- CPCEMU in their program collections for "downloading". Shareware
- distributors are allowed to distribute CPCEMU, if they only take a small
- fee for copying. Compared to Public Domain, Freeware does not mean that
- it is "free" and you may do anything with it. I still retain the
- copyright.
-
- All software and documentation is provided "as is" without warranty of
- any kind.
-
-
- Although this program is freeware, I would certainly accept any sort of
- support, technical or financial.
- See chapter 6 for more details.
-
-
-
- 1.3 What is a CPC?
- ===================
-
- If you already know what a CPC is, simply skip this section and continue
- reading with 1.4.
-
-
-
-
- Still here?
-
- I do not want to go into technical details now, but will rather give you
- a retrospective view so that you may better understand what a CPC is.
-
- CPC is an abbreviation for Colour Personal Computer. Computers of this
- type were first built in 1984 by the british company Amstrad and sold
- under different names in other countries.
- It was the period of the home computer; Commodore C64, Sinclair Spectrum,
- Atari 800XL, ... when the CPC 464 was unveiled. It had as much RAM as the
- Commodore C64 (namely 64 KB), a built in cassette recorder and Locomotive
- BASIC 1.0. It was followed up by the CPC 664 which had a built-in 3" disk
- drive and a slightly extended Locomotive BASIC 1.1. The CPC 6128 came in
- 1985, with 128 KB RAM and nearly the same features as the CPC 664. 3"
- disks were awfully expensive, but more stable than the 5.25" disks
- (nearly as stable as today's 3.5"), and they were noticably faster versus
- tape speed, very unlike the situation with the C64 ...
- All three models were sold with either a colour or a green monitor, which
- had the power supply built in. Later, two or three other models (the CPC+
- for example) were introduced. The BASIC was with nearly 178 instructions
- powerful and fast. One could program graphics, sound and even interrupt
- handling all in BASIC without the use of PEEKs and POKEs. The software
- supply increased dramatically over the years.
-
-
-
-
- 1.4 What does CPCEMU offer you?
- ================================
-
- The following is a short overview of what CPCEMU offers you. Subsequent
- sections of the documentation will go into more detail.
-
- CPC graphics in 3 different screen modes (X x Y x COLOURS):
- Mode 0: 180x200x16
- Mode 1: 320x200x4
- Mode 2: 640x200x2
- (With VESA BIOS these graphics can be displayed in resolutions
- ranging from 640x400x16 up to 1280x1024x16, depending on your
- monitor and the VGA card used.)
-
- Sound: either through the PC-speaker, Soundblaster (3 channels, stereo)
- or Gravis UltraSound (3 channels + noise, stereo)
-
- Memory:
- ROM: OS, BASIC, AMSDOS, up to circa 13 additional ROMs (with EMS)
- RAM: 64KB, 128KB, up to 576KB Dk'tronics compatible RAM (with EMS)
-
- Disk: Special disk images, with the extension .DSK
-
- Cassette: Standard files under DOS, e.g. CPC BASIC- and binary files
- with the extensions .BAS and .BIN respectively.
-
- Snapshots: You can make memory dumps of running programs in order to
- continue them later. Snapshots have the extension .SNA .
-
- Speed: On a 386/33 with EMS-memory, CPCEMU is faster than the original.
- A realtime mode allows you to slow down the emulation to exact CPC
- speed. This realtime mode works well on a 486DX2/66.
-
-
-
-
- 2. Installation of CPCEMU
- ≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡
-
- In this chapter you will learn, how to install and start CPCEMU. Section 2.2
- lists some points on why you should be using EMS memory and how to set up
- the Soundblaster environment. Full user defined installation with the
- configuration file is described later in chapter 4 (Changing the
- Configuration).
-
-
-
- 2.1 Files which comprise the CPCEMU package
- ============================================
-
- You have received the CPCEMUxx.xxx package with the following files:
- (I have put the directories in brackets where you will find the files
- after the installation.)
-
- COPYMATE.ROM ROM with a copy program (ROM)
- CPC464.BAT CPC 464 startup file
- CPC464.ROM ROM (firmware+BASIC) of a CPC 464 (ROM)
- CPC664.BAT ditto, but for CPC 664
- CPC664.ROM (ROM)
- CPC6128.BAT ditto, but for CPC 6128
- CPC6128.ROM (ROM)
- CPCADOS.ROM AMSDOS for all CPCs (ROM)
- CPCEMU.CFG the configuration file for all CPCs (or CPCEMU0.CFG)
- CPCEMU.DAT data file for CPCEMU
- CPCEMU.DBF database with pokes
- CPCEMU.EXE the emulator
- CPCEMU.HLP the online help, try pressing F1...
- CPCEMU.MSG the message file (required)
- CPCEMU_D.TXT German documentation
- CPCEMU_E.TXT English documentation (this file)
- CPCEMU_F.TXT French documentation
- CPCPARA.BAS Locomotive-BASIC program for the parallel adapter (UTILITY)
- CPCPD1.DSK disk image with some example Public Domain programs (DISC)
- CPCREC.BAS Locomotive-BASIC program to receive programs (UTILITY)
- CPCT0.BAT batch file for CPCTRANS.EXE (example) (UTILITY)
- CPCTRANS.CFG configuration file for CPCTRANS
- CPCTRANS.EXE transfer program for disk images (UTILITY)
- CPMDISKS.DEF format definitions for 22DISK (UTILITY)
- FILE_ID.DIZ archive description for BBSes
- INSTALL.BAT batch file for installation
- PCPARA.EXE PC side of the parallel adapter (UTILITY)
- README_D.TXT German Readme
- README_E.TXT English Readme
- README_F.TXT French Readme
- README_S.TXT Spanish Readme
- ROMGET.BAS Locomotive-BASIC program for saving ROMs (UTILITY)
- SNA2GIF.EXE a snapshot to GIF converter: grap your CPC screens...
-
-
- The original Amstrad ROMs are included. The Firmware is copyright by
- Locomotive Software; the BASIC is copyright by Amstrad. Amstrad and
- Locomotive have given me permission to distribute the ROMs with CPCEMU.
-
-
-
- 2.2 Requirements and Installation
- ==================================
-
- You will need at least (there is no upper limit of course)
- - PC AT 386 with VGA graphics
- - MS-DOS, possibly with EMS, or
- Novell DOS (DRDOS) or
- OS/2 2.x DOS box.
- - If you want to start programs from within ZIP archives you will need
- the program PKUNZIP in your DOS searchpath for extraction.
-
-
- The installation itself is very simple:
- Copy the CPCEMUxx.ZIP archive onto your hard disc and decompress it with
- 'PKUNZIP CPCEMUxx.ZIP'. Run INSTALL.BAT to create the necessary
- subdirectories. Start CPC464.BAT, CPC664.BAT or CPC6128.BAT depending on
- what CPC you would like to emulate. After the configuration has been
- shown, the well-known yellow and blue CPC opening screen appears.
- You can quit the emulator with F12 and see the online help with F1.
- It is best to try that now, before reading any further ...
-
-
-
-
- If some errors occur during the configuration, you will be put into the
- so-called debug-menu, which you can exit with 'q' <RETURN>. In such
- cases, it is sometimes useful to redirect the start-up messages into a
- file, e.g. with 'CPCEMU > INIT.TXT'. Then you are able to analyze the
- problem later.
-
-
-
- 2.3 Hints about memory and soundcards
- ======================================
-
- The following will help you if you desire a particulary fast emulation
- or if your soundcard is not recognized correctly.
-
-
- 2.3.1 Using EMS Memory
- -----------------------
-
- You should have hardware or emulated EMS on your PC (EMS=Expanded Memory
- System). This speeds up the emulation in a significant way, especially
- with BASIC. Simulated EMS is too slow.
- All you need is EMM (Expanded Memory Manager) supporting the LIM 4.0
- standard (LIM EMS 4.0).
-
- If EMS usage is possible, a memory count 'EMS xxx Bytes ok.' will
- appear during initialization.
- Otherwise you will see "Sorry, using conventional memory".
-
- Example under OS/2 2.x (settings for the window):
- EMS_FRAME_LOCATION = auto
- EMS_HIGH_OS_MAP_REGION = 32 (or more)
- EMS_LOW_OS_MAP_REGION = 0 (or more)
-
- Example under DOS in the CONFIG.SYS file:
- DEVICE=C:\DOS\HIMEM.SYS
- DEVICE=C:\DOS\EMM386.EXE 1024
- ...
-
-
-
-
-
-
- 2.3.2 Defining the BLASTER environment
- ---------------------------------------
-
- In order to hear sound from your Soundblaster you must set the BLASTER
- environment variable properly. Either use the program 'SET-ENV.EXE' (or
- 'SBTEST.EXE') included with your soundcard or modify AUTOEXEC.BAT
- directly. In AUTOEXEC.BAT, you should have a line similar to the
- following:
- SET BLASTER=A220 I7 D1 T3
-
- Where:
- A specifies the base address (0x220)
- I specifies the IRQ (7)
- D specifies the DMA channel (1)
- T specifies the type of the soundcard:
- 1 : Soundblaster 1.0/1.5
- 2 : Soundblaster Pro
- 3 : Soundblaster 2.0/2.5
- 4 : Soundblaster Pro 3/Pro 4.0
- 5 : Soundblaster Pro (Microchannel)
- 6 : Soundblaster 16
-
- For version 2,4,5 & 6 stereo sound is enabled.
-
- There are also some more parameters which will be ignored:
- H specifies the 16 bit DMA channel for 16 bit cards (5)
- M specifies the base address of the sound blaster mixer (224)
- P specifies the port address for MIDI (330)
-
-
-
- If you hear no sound, use A388 (instead of A220). This works for
- Media Vision Pro Audio Spectrum 16 and possibly other sound cards
- with SB emulation. It may also work with an Adlib Card.
- (Joe Cotroneo)
-
-
-
-
- 2.3.3 Defining the ULTRASND environment
- ----------------------------------------
-
- In order to get sound with your GUS (Gravis Ultrasound Classic/ MAX/
- ACE), you must have the ULTRASND environment variable defined.
-
- Your AUTOEXEC.BAT file should contain the following line:
- SET ULTRASND=220,1,1,11,7
-
- Where the meaning of the numbers is (in the order shown):
-
- 220 is the base address (0x220)
- 1 is the GUS DMA channel
- 1 is the SoundBlaster DMA channel
- 11 is the GUS IRQ
- 7 is the SoundBlaster IRQ
-
- Important are the base address and the GUS IRQ. All other values must
- be specified in order for the emulation to work properly.
-
-
-
-
- 3. Differences between CPC and CPCEMU
- ≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡
-
- In this chapter, I describe those features that differentiate CPCEMU from a
- real CPC. The section that follows will explain those keys on the keyboard
- that have a special meaning during emulation, especially the function keys.
- Afterwards you will be told how to load from disk or cassette.
-
-
-
- 3.1 Keyboard
- =============
-
- Maybe you have already noticed that the function keys of the PC do not
- map directly to those of the CPC. They cause some strange output which I
- will describe below. Or maybe you have been looking for the COPY-key for
- hours...
- All CPC keys are really emulated somewhere, you can be sure of that. Here
- the secrets are unveiled:
-
- - ALT, ALTgr : COPY on a CPC
-
- - PAUSE Key : suspends the PC, until it is pressed again. If the function
- keys of the PC do not react anymore, you may have the PAUSE Key
- enabled.
-
- - Keypad : Depending on the "Num Lock" state, the keypad functions in a
- different way. With "Num Lock" enabled, the keypad represents the
- function keys of the CPC, otherwise it will emulate joystick 0. If you
- want to use an analog PC joystick, you have to calibrate it first. (See
- chapter 4 - Changing the Configuration).
-
- For completeness:
- - Page up/down: Moves the whole CPC screen.
- (Don't ask me for what purpose.)
-
- And, of course, the function keys.
- F1 : Online-Help Key. Could be the most important key when you start out.
- F2 : Toggles between the CPC screen (normal view) and message screen
- (that one with a red border). This screen may show some control
- messages.
- F3 : Insert a disk, see section 3.2.1
- F4 : Toggle sound on/off
- F5 : Load a snapshot (memory dump), see section 3.2.3
- F6 : Save a snapshot, see section 3.2.3
- F7 : Setup menu, see section 4.1
- F8 : Hard reset, acts like a reset button on a CPC (or switching the CPC
- off and back on again). Use this, if CTRL/SHIFT/ESC does not work
- any more.
- F9 : Reserved for future use
- F10 : Debug menu, explained in chapter 7. If you stumble inadvertently into
- this menu, press 'r' for R)un or 'q' for Q)uit.
- F11 : Reserved for future use
- F12 : Exit the emulator
-
-
-
-
- 3.2 Loading of programs, menus
- ===============================
-
- In this section you will learn how to load programs from disk, tape or
- snapshots. Certainly the same goes for saving. How to use the menu is
- described, too.
-
-
-
- 3.2.1 Loading from Disk, Menus
- -------------------------------
-
- Under normal conditions AMSDOS (Amstrad DOS) is active, and all file
- instructions use the disk.
- You do not need to insert a real CPC disk into your PC drive every time
- you acces a file (apart from the fact that you may have 3" CPC disks
- only).
- To obtain better speed a CPC disk is contained inside a so-called disk
- image. This file can be located anywhere on the hard disk (or on a high
- density disk).
-
- Here some BASIC AMSDOS instructions:
- - CAT <RETURN> : displays the catalogue
-
- - With 'RUN"<filename>"' you load and start a program.
- You may omit the ending quotation marks. This instruction is useful
- for BASIC programs having the extension .BAS, and in many cases for
- binary programs with the extension .BIN .
-
- A simple way to run a program:
- 1. Input the filename, e.g. 'disc' *without* pressing <RETURN>
- 2. Hold down the CTRL key and press cursor-left (the cursor moves
- back to the first column now)
- 3. Still hold down the CTRL key and press the ENTER key on the keypad
- (RUN"disc appears and the program will be loaded)
-
- - LOAD"<filename>" loads a program without starting it. You can inspect
- BASIC programs with LIST and start them with RUN. Usually binary
- programs will not load with LOAD, but try using the MEMORY instruction
- first, e.g. 'MEMORY &1fff'.
-
- - SAVE"<filename>" saves a BASIC program. For binary programs you have
- to specify some more parameters, e.g. 'SAVE"<filename>",b,&c000,&4000'
- will save the screen.
-
- - MERGE"<filename>" is also possible. It merges one BASIC program to
- another already contained in memory.
-
-
- Some special AMSDOS instructions are introduced by a vertical dash:
- - |A, |B to select the drive (also possible with |DRIVE,0 or 1)
- - |DIR,"<filename pattern>" to see the directory.
- Important note: Use the following on a CPC 464:
- a$="<filename pattern>" : |DIR,@a$
- - |ERA,"<filename>" erases a file.
- Important note: Use the following on a CPC 464:
- a$="<filename>" : |ERA,@a$
- - |REN,"<new name>","<old name>" to rename a file.
- Important note: Use the following on a CPC 464:
- a$="<new name>" : b$="<old name>" : |REN,@a$,@b$
- - |TAPE to switch to the cassette. Described in the next section.
- - |DISC to switch back to disk
- There are some other instructions but they are not so important.
-
-
-
- The Insert Disk Menu
- --------------------
-
- Until now you can use only one disk, the one already "inserted" in
- the drive. To insert another disk, simply press F3 and the following
- menu appears:
-
- Insert_Disk
- Drive 0
- Side_Select 0
- Write_Protected 0
-
- With the cursor keys <up/down> you can select a line. You can also do
- that by typing in letters (go back with <DEL>). Change numbers with
- the cursor keys <left/right> or with direct input of digits.
- <RETURN> in any line (e.g. the first one) takes the changes. It would
- be dismissed with <ESC>.
- "Drive" is the desired drive (0=A, 1=B); "Side Select" is a side switch
- for double sided disks, it has no effect when using a single sided
- format.
- With "Write Protected" you can mark a disk as write protected
- (0=No, 1=Yes, write protected).
-
-
- The File-Selection Menu
- -----------------------
-
- Now press <RETURN> and a directory of the disk drive appears.
- Select a new disk with the same methods as described above.
-
- If there is already a disk lying inside the drive you do not need to
- remove it first as in real life. This is automatically done.
- At the bottom of the screen this disk is displayed.
-
- You will see at most 15 files, if there are more, "[]" appears.
- - <HOME> goes home to the first filename, <END> to the last one
- - <Page up/down> scrolls in pages through the list
- - <RETURN> takes the selected name, <ESC> escapes.
- You can also select names directly by pressing a first letter.
-
- When using the mouse, click "[]" for <page up>, "[]" for <page down>,
- "[<]" for <cursor left>, "[>]" for <cursor right> and [ok] for <return>.
- Use "[■]" as <ESC>. Use the right mouse button to mark a line.
-
- ".." is the parent directory; [A], [B], ... are the available drives.
- Please select only floppy drives with a disk inserted. Otherwise
- you could get some trouble.
-
- It is also possible to insert disks from inside ZIP archives. Select
- a ZIP archive by pressing <RETURN> and its directory is displayed as a
- normal directory. If you select a file from inside a ZIP archive, it
- is automatically extracted into a temporary file. For this feature
- you will need the program PKUNZIP somewhere in the DOS searchpath,
- or in the CPCEMU directory.
- Temporary files are automatically deleted if they are not needed any
- more. Changes are *not* written to the ZIP archive. If you save
- something on a disk image inside a ZIP file, it will be lost after
- you insert another disk. If you want to change disk images inside
- ZIP archives, extract them before starting CPCEMU.
-
- How to create disk images from CPC disks that you own is described in
- chapter 5 (Data Transfer CPC <-> PC).
-
-
-
-
- 3.2.2 Loading from and saving on cassette
- ------------------------------------------
-
- What actually is a cassette for CPCEMU?
- Well, files on cassette are regular files in DOS directories.
- After the '|TAPE' instruction the BASIC instructions for file handling
- use the cassette. But only those starting not with "|".
- Now you can use the instructions described in the section above
- (CAT, RUN", LOAD", SAVE", MERGE") for cassette.
- If you omit a filename, the file selection menu will appear which was
- described in the previous section.
- With SAVE"" you can either overwrite an existing file or create a new
- one by specifying a new name in the last line "(new name)".
-
- Certainly you can load programs from inside ZIP archives, saving
- is ignored.
-
- You only get such a fine cassette drive with the emulator!
-
-
-
- 3.2.3 Loading and Saving of snapshots
- --------------------------------------
-
- Snapshots are memory dumps that not only contain the actual memory
- contents but also the internal states of the hardware chips, e.g. the
- processor.
- At any time you can interrupt the running program and save it as a
- snapshot. Later you can load it, and continue at the same position you
- were at when you interrupted it.
- You create a snapshot with F6. Specify the snapshot size, if it is
- 64K or 128K. 128K snapshots only make sense if the second memory bank
- is in use. In this case use "128K Snapshot = 1", with the meaning 1=Yes.
-
- The file selection menu is the same as already described with the disk,
- with the additional comments given for the cassette (3.2.1 and 3.2.2).
-
- You can reload a snapshot with F5.
-
-
-
-
- 4. Changing the Configuration
- ≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡
-
- In this chapter you will learn how to configure CPCEMU for your needs.
- The setup menu is described as well as the configuration file and the
- command line parameters.
-
-
-
- 4.1 The setup menu
- ===================
-
- This is the simplest way to make adjustments to CPCEMU. Nevertheless
- this menu does not let you change all settings. To give an example, if
- you want to use additional ROMs you must use the configuration file
- described in section 4.2.
-
- As already mentioned in the keyboard section, you get into the setup menu
- with F7. The following menu then appears:
-
- Setting: Value: Short explanation:
- -----------------------------------------------------------------------
- ___Emulation
- Emulation_Delay 0
- Emulation_Speed 1
- Interrupt_Frequency 300
- Interrupt_Resume 1
- Realtime 0
-
- ___Screen
- Colour_Screen 1
- Multimode_Update 0
- Palette_Change 1
- Screen_Offset 0
- Video_Mode 0
- Vsync_Position 5
-
- ___Sound
- Sound_Enabled 1
- Sound_Device 2
- Sb_Delay 35
- Sb_Delay0 6
-
- ___Control
- Joy0_Calibrate
- Joy1_Calibrate
- Kbd_Language 0
- Mouse_Enabled 1
-
- ___Ppi_Settings
- Company_Name 7
- Ppi_50Hz 1
- Ppi_Exp_Signal 1
-
- ___Misc
- Amsdos_Disabled 0
- Amsdos_Speedup 1
- Break_Mask 3
- Ems_Enabled 1
- Language 0
- Tape_Bypass 1
- CPC_Type 2
-
- Load_Configuration
- Restart_Emulation
- Save_Configuration
- Poke_Database database with cheats for games
- Dos_Shell
- Continue
-
-
- Select the settings as already described in 3.2.1.
-
-
- Emulation_Delay
- This option allows you to slow down the emulation if it is too fast.
- 0 means no delay, 100 is a small delay, 300 some more ...
-
- Emulation_Speed
- 0 = slow Z80 emulation
- 1 = fast Z80 emulation
-
- Interrupt_Frequency
- To change the frequency with which interrupts are generated.
- On a real CPC this is always 300 Hertz. If you raise this value
- many programs seem to run faster, but there is less computing power
- between two interrupts. If you own a slow computer you may have
- to lower this value to 100 or 200 sometimes. Possible values are
- 18 to circa 600.
- For further information look at chapter 7.
-
- Interrupt_Resume
- Another of these options one cannot explain without a lot of background
- information. Without EMS (Expanded Memory) this option is 0 which means
- that interrupts can be skipped. Certainly this is not desired, but
- with 1 the emulation is getting too slow. With EMS this option is 1,
- so CPCEMU tries to handle every interrupt.
- Important note:
- It seems that CP/M Plus only runs with EMS and this option = 0 !
- For further information look at chapter 7.
-
- Realtime
- Enables the realtime CPC. The emulator inserts waits to be as fast
- as a real CPC.
-
- Colour_Screen
- Emulation of a green or colour screen by changing the palette.
-
- Multimode_Update
- If programs use several modes simultaneously on the screen, switch on
- this option. Then CPCEMU tries to handle it correctly.
- Per default this option is switched off because it does not work
- properly in all cases.
-
- Palette_Change
- Set this option to 0 to disable palette changes. This makes sense
- if you cannot see anything because the screen flickers too much.
- If you press the function key F8 to cause a hardware reset, this
- option is reset to 1 automatically.
- Hint: If palette update is disabled and you see completely wrong
- colours, try pressing F2 twice.
-
- Screen_Offset
- Specify the number of lines the CPC screen should be moved.
- Usually you do not need this option. You get the same effect by
- pressing <Page Up> and <Page Down>. Possible values: 0=no offset,
- up to circa 25.
-
- Video_Mode
- Set the video mode of the VGA card.
- 0 = 640x200x16 (default)
- 1 = 640x350x16
- 2 = 640x480x16
- and if you have a VESA-BIOS, mostly:
- 3 = 800x600x16
- 4 = 1024x768x16
- 5 = 1280x1024x16
- ...
- WARNING:
- Do use modes >= 3 only, if you monitor supports them!
- If it makes some strange noise, switch it off immediately!
- But this should happen only with old monitors.
-
- Vsync_Position
- Commonly you will not need this option, but nothing will be damaged if
- you try it. One time during the screen update there is a vertical
- frame fly with a special bit set, the so-called VSYNC bit (vertical
- synchronization). You can define the position, where the VSYNC should
- occur. Possible values are 0 to 5. For further information look at
- chapter 7.
-
- Sound_Enabled
- Enables the sound output. 1=on, 0=off. You can also press the
- function key F4 instead.
-
- Sound_Device
- Set the sound output device.
- 0 = none
- 1 = PC speaker
- 2 = Soundblaster
- 3 = Soundblaster Pro
- 4 = GUS (Gravis Ultrasound), thanks to Ulrich Doewich
-
- Sb_Delay
- Set the amount of delay after every write access to the soundcard.
- With lower values (e.g. 0) the sound output is speed up. If problems
- with the soundcard occur, use 35.
-
- Sb_Delay0
- Another delay for the Soundblaster. Do not change it.
-
- Joy0_Calibrate
- You surely know it from other programs that you have to calibrate the
- analog PC joystick first. Select this setting by pressing <RETURN>,
- move the joystick to the upper left, then to the lower right.
- Then some parameters are displayed. If you always want to use your
- joystick then take note of these parameters and write them in the
- configuration file (see next section). Nevertheless you have to repeat
- the calibration if you change the clock.
-
- Joy1_Calibrate
- Same as Joy0_Calibrate, but for joystick 1.
-
- Kbd_Language
- With this option you can select the keyboard mapping for other countries.
- 0 = UK, default
- 1 = GR, "German-like" keyboard. Unfortunately it is impossible to have
- a full German keyboard because SHIFTed keys cannot be mapped
- to non-SHIFTed. But "Z" and "Y" are swapped, and some other characters
- altered.
- 2 = FR, "French-like" keyboard. After the introduction of a German
- keyboard the French will not stand in the rain. Some parts of the
- AZERTY Keyboard are realized. But is has the same problems as
- the German one.
-
- Mouse_Enabled
- Enables mouse usage in different menus.
-
- Company_Name
- Company name in the opening screen.
- 0 = Isp
- 1 = Triumph
- 2 = Saisho
- 3 = Solavox
- 4 = Awa
- 5 = Schneider
- 6 = Orion
- 7 = Amstrad
-
- Ppi_50Hz
- The CPC can operate with
- 0 - 60 Hz, or
- 1 - 50 Hz (default in Germany, France)
- During a reset bit 4 of port B PPI is checked and the CRTC is
- initialized properly.
- Let it on 50 Hz.
-
- Ppi_Exp_Signal
- Some Expansions cards set this signal.
- On CPC 464 set, if a disc drive is connected.
- On CPC 6128 always set.
-
- Amsdos_Disabled
- Forbids the initialization if the AMSDOS. This is useful if you
- want to load programs from cassette without giving the instruction
- '|TAPE' every time.
- Certainly you could simply make a comment of the ROM_BLOCK line
- for the AMSDOS (with ROM_BLOCK you specify the ROM to load), but
- with the effect that no AMSDOS is present at all.
- Using this option the AMSDOS is still present for some programs.
-
- Amsdos_Speedup
- Permits an AMSDOS ROM modification speeding up disk accesses.
- This is done by minimizing the motor waiting times, not necessary
- for the emulator.
-
- Break_Mask
- Only for debugging purposes. With the value 3 from the configuration
- file some errors are suppressed, caused by illegal instructions.
- Do not change this value!
-
- Ems_Enabled
- Permits the usage of EMS memory (Expanded Memory System).
- If no or not enough EMS memory is available, CPCEMU uses conventional
- memory automatically.
- For further information about EMS consult 2.3.1 and chapter 7.
- Language
- Language for help messages.
- 0=UK (English)
- 1=GR (German)
- 2=FR (French)
- 3=SP (Spanish)
-
- Tape_Bypass
- Permit the usage of the cassette.
- Further information about the TAPE bypass are in chapter 7.
-
- CPC_Type
- Set desired CPC type
- 0 = CPC 464
- 1 = CPC 664
- 2 = CPC 6128
- 3 = CPC 464+ (?)
- 4 = CPC 6128+ (?)
- 5 = unknown
- In order to use type 3 or 4, you have to supply ROM images in CPCEMU.CFG
- first.
-
- Load_Configuration
- Load another configuration file saved by "Save_Configuration".
- Some parameters may have no effect until you select "Restart_Emulation".
-
- Restart_Emulation
- After loading a configuration with "Load_Configuration", you can
- restart the emulation with the new values.
-
- Save_Configuration
- Save the current configuration.
- Note that you cannot overwrite the master configuration file CPCEMU.CFG.
-
- Poke_Database
- You are just playing a game you cannot solve? Then try this selection.
- If your game is in this list, you can make it easier by getting
- infinite lifes, e.g. You can also extend the list (CPCEMU.DBF) by your
- own pokes. See chapter 7 for a description of this file.
-
- Dos_Shell
- Open a DOS shell with much free memory, which you can exit with 'EXIT'.
-
- Continue
- Take the values and continue with the emulation.
- You get the same effect by pressing <RETURN> in any line with a value.
-
-
-
-
-
- 4.2 The configuration file
- ===========================
-
- Now you will learn another way to configure CPCEMU.
- At first CPCEMU reads the configuration file CPCEMU.CFG per default.
- The structure of this file is described so that you will be able to
- use your own ROMs, change the keyboard language permanently, etc...
-
-
- Have a look at the file CPCEMU.CFG:
-
- ;CPCEMU.CFG - The Configuration File for CPCEMU
- ;...
- ;
- ;configuration for CPC 464, 664 and 6128
- ;
- SHOW_CONFIG=1 ;should the configuration be displayed?
- ROM_PATH = ".\ROM" ;path to ROM images
- ...
-
-
- Already with these few lines you get the simple structure:
- Comments start with a semicolon (";"). Options are changed by writing
- a key-word followed by "=" followed by a <value>. The <value> depends
- on the key-word and is either a string or a number. Numbers can be given
- in decimal, hexadecimal ("0x") or binary ("%") notation.
-
- When knowing the meaning of the key-words, you can adjust the values
- with a text processing system for your own needs.
-
-
- You already know most of the keywords from the setup menu.
- First an alphabetical ordered list of all key-words:
-
-
- #ENDIF
- #IFCPC
- AMSDOS_DISABLED
- AMSDOS_SPEEDUP
- BREAK_MASK
- COLOUR_SCREEN
- COMPANY_NAME
- CPC_TYPE
- DRIVE_A
- DRIVE_B
- EMS_ENABLED
- EMULATION_DELAY
- EMULATION_SPEED
- HELP_FILE
- INTERRUPT_FREQUENCY
- INTERRUPT_RESUME
- JOY0_CALIBRATE
- JOY1_CALIBRATE
- KBD_LANGUAGE
- LANGUAGE
- MOUSE_ENABLED
- MULTIMODE_UPDATE
- PALETTE_CHANGE
- POKE_DATABASE
- PPI_50HZ
- PPI_EXP_SIGNAL
- PRINTER
- RAM_SIZE
- REALTIME
- ROM_BLOCK
- ROM_PATH
- SB_DELAY
- SB_DELAY0
- SCREEN_OFFSET
- SHOW_CONFIG
- SNAPSHOT
- SOUND_DEVICE
- SOUND_ENABLED
- TAPE_BYPASS
- TAPE_PATH
- TMP_PATH
- VIDEO_MODE
- VSYNC_POSITION
-
-
- Following are the meanings of the new key-words:
-
-
- - #ENDIF, #IFCPC
- Some control instructions for conditional configuration depending on
- the desired CPC:
- #IFCPC <CPC type> ... #ENDIF
- For <CPC type> all four types from "CPC_TYPE" are valid.
- Consequently you need only one configuration file for all CPCs.
- The batch files CPC464.BAT, CPC664.BAT and CPC6128.BAT set the
- desired type with command line parameters. These are explained
- in the next section.
-
- - DRIVE_A = "<path+filename>"
- Set the path to disk images. If you use a filename as path, this
- disk is automatically inserted into drive A.
- Section 3.2.1 described Loading and Saving on Diskette.
-
- - DRIVE_B = "<path+filename>"
- Same as DRIVE_A, but for drive B.
-
- - JOY0_CALIBRATE = <xcen>, <ycen>, <xdead>, <ydead>
- Define a joystick calibration for your analog joystick.
- Use the values displayed after the joystick calibration in the
- setup menu (see section 4.1).
- This is a key-word with 4 values. You must always specify all of them.
- 4 times zero means not calibrated.
-
- - JOY1_CALIBRATE = <xcen>, <ycen>, <xdead>, <ydead>
- Same as JOY0_CALIBRATE.
-
- - POKE_DATABASE = "<path+filename>"
- Set the poke database file (CPCEMU.DBF).
-
- - PRINTER = "<path+filename>"
- Set the printer file where line printer outputs are collected.
- It is cleared at every emulation start.
- After quitting the emulator, you can send it to your printer
- with 'COPY <filename> prn:'.
-
- - ROM_BLOCK = <ROM-number>, "<filename>", <ROM-position>
- Describe what ROM should be loaded and where.
- Repeat this line for every ROM you want to load.
- The maximum number of ROMs is circa 20, if you use EMS.
-
- - <ROM-number> is the number assigned to the ROM, that means
- it is selected by 'OUT &DF00,<ROM-number>' .
- Possible values are:
- 0 : Foreground ROM (e.g. BASIC)
- 1 - 251 : Background ROMs. On a CPC 664/6128, the ROMs
- 1-15 are automatically initialized during reset
- (on a CPC 464 only 1-7).
- The AMSDOS ROM has always the number 7.
- 255 : Lower ROM (e.g. OS; has only in emulator this
- number).
- - <filename> is a file in the directory ROM_PATH, which
- contains the ROM.
-
- - <ROM position> is naturally 0. If a file contains more ROMs, this
- is the desired ROM position 0, 1, 2, ...
- ROM_BLOCK = 255, "CPC6128.ROM", 0
- ROM_BLOCK = 0 , "CPC6128.ROM", 1
- The lower ROM and the foreground ROM are loaded one after another
- from the same file.
-
- - ROM_PATH = "<path>"
- Set the path to ROM images. In the configuration file this path
- is set to ".\ROM". The ROMs itselfs are defined with the key-word
- ROM_BLOCK.
-
- - SHOW_CONFIG = {1, 0}
- Permits the display of the configuration overview when starting the
- emulator.
-
- - SNAPSHOT = "<path+filename>"
- Set the path to snapshots. If you specify a snapshot file as path name,
- this snapshot is automatically started.
- Look at section 3.2.3 for more details.
-
- - TAPE_PATH = "<path>"
- Set the path to tape files. In the configuration file this path is
- set to ".\TAPE".
- Look at section 3.2.2 for more details.
-
- - TMP_PATH = "<path>"
- Set the path for temporary files. They are mainly needed if you
- select a file from inside a ZIP archive and CPCEMU needs to
- extract it with PKUNZIP.
-
-
-
-
- 4.3 Command Line Parameters
- ============================
-
- As you know from other programs, it is also possible with CPCEMU to
- use command line parameters. But currently there are only a few of them.
-
-
- Execute CPCxxx.BAT with the following options:
- /f : use the fast mode (default)
- /s : use the slow mode
- /d : use the debug mode, described in chapter 7
- /x : disable EMS usage
- /c <file>: specify another configuration file, overriding the
- default CPCEMU.CFG. See section 4.2.
- /t <type>: set the desired CPC type 464, 664 or 6128 with
- /t 0, /t 1 or /t 2 respectively.
- /h : displays a help screen
-
- The option "/d" is automatically used, if an unknown option was specified.
- Instead if "/" you can also use "-" known from UNIX.
-
-
-
-
- 5. Data Transfer CPC <-> PC
- ≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡
-
- What can you do with a good emulator when you do not have any programs for
- it or if you do not see any possibility to get programs from a CPC across
- to the PC?
- In chapter 6 (Supply, ...) some ftp sources are listed where
- CPC software can be found.
- This chapter deals with the data transfer of CPC software to the PC.
- Some utilities for the different possible methods of doing this are
- described (disk, with parallel or serial interface).
-
-
-
-
- 5.1 Disk as a media
- ====================
-
- This is the simplest way to get CPC software across to the PC. You only
- need a CPC with a second drive of the correct size. Correct size means
- that the disks must also fit in your PC drive. (If not, you could still
- try to connect a 3" drive to your PC.) The PC is persuaded to recognize
- the CPC formatted disk using a utility to read the CPC formatted disks.
- This utility is called CPCTRANS.
-
-
-
- 5.1.1 The disk transfer program CPCTRANS
- -----------------------------------------
-
- I have developed CPCTRANS to create disk images from CPC disks.
- Standard CPC formats as well as double sided Vortex formats are
- supported.
- CPCTRANS is not intended to transfer copy protected formats!
- When calling CPCTRANS without parameters you will get a short
- overview.
- CPCTRANS is similar to the DOS COPY-instruction:
- 'CPCTRANS <source> <destination> <options>'.
- Examples:
- 'CPCTRANS B: DISK1.DSK' copies the disk in drive B to the disk image
- DISK1.DSK. If it does not exist, it is created.
- 'CPCTRANS DISK1.DSK B:' writes the disk image back to the disk in
- drive B.
-
- The first command only runs for the DATA format.
- For other formats you have to use an option:
- /f 0 : DATA format (default)
- /f 1 : DATA format, double-sided
- /f 2 : SYSTEM format
- /f 3 : SYSTEM format, double-sided
- /f 4 : VORTEX format, double-sided
- /f 5 : unknown, CPCTRANS tries to detect it
- /f 6 : +3DOS
- Note the space between "/f" and the number.
- When using the double sided DATA- or SYSTEM-format, you can select
- the side A or B in the disk menu (3.2.1).
-
- When writing back a disk image, the disk in the drive must have
- the same format! For simple formats you can use 22DISK, described
- in the next section.
-
- For copying the B-side of a disk, use the option "/s 1"
- With 'CPCTRANS B: DISK1.DSK /s 1' only the B-side of the disk is
- copied, with 'CPCTRANS DISK1.DSK B: /s 1' it is written back.
-
- The option "/v" turns on "verify", so CPCTRANS checks if the copy
- is correct. That is indeed a bit slower but increases security.
-
- The option "/t <count>" sets the number of tracks to copy.
- Normally it is 40 tracks, only for the VORTEX format it is 80.
-
- The option "/q" (quick format) is a feature with which you can format
- a disk image, instead of copying data onto it. Nevertheless you have
- to specify a valid drive as first parameter, even if it is not used.
- Example:
- 'CPCTRANS a: SYSTEM.DSK /f 2 /q' formats SYSTEM.DSK as a disk image
- with SYSTEM format.
-
-
-
- 5.1.2 The format- and copy-utility 22DISK by SYDEX
- ---------------------------------------------------
-
- This program is available as shareware. With correct definitions you
- can use nearly all CP/M formats!
- Unfortunately just the CPC formats are not included with the evaluation
- copy of 22DISK. Therefore I have defined the formats in the file
- CPMDISKS.DEF. You will find them in the UTILITY subdirectory.
- What can you do with 22DISK?
- You can transfer single files back and forth between DOS and non-DOS
- formats, format disks and so on.
- Copy the CPC files into the TAPE directory. Read section 3.2.2 for
- an explanation how to load them.
-
-
-
- 5.2 The parallel interface
- ===========================
-
- If you own a CPC without second drive, you can do the data transfer
- over the parallel interface.
-
- If you own a CPC without a second drive, you can do the data transfer
- over the parallel interface. The original idea came from Gilles Molinari,
- he had also written some Turbo Pascal programs. But maybe you belong to
- the group of users, who do not have a Turbo Pascal compiler on their CPC,
- so you could not do much with the Pascal source. Therefore I have
- rewritten the utilities in Locomotive BASIC, and extended it by adding
- the direction PC->CPC.
- Thus it is possible to transfer files back and forth between CPC and PC!
- The CPC and PC are coupled together via their parallel interfaces.
-
- If you own a CPC 6128 with Centronics connectors and compare them with
- a printer you will note that CPC and PC fit together excellently when
- using a standard PC printer cable! But do not do that now, please read
- further.
- It seems that only Schneider CPCs have Centronics connectors. If you
- have an Amstrad CPC 6128 with simple edge connectors or a CPC 464,664,
- use the diagram at the end of this section.
-
- First you have to jump over two hurdles:
- 1. constructing a simple adapter
- 2. input a short program into the CPC
-
- Wait! Do not skip the rest!
-
- Both steps are really simple, because
- 1. is possible without soldering and
- 2. is indeed very short (about 30 lines BASIC)
-
- To step 2.
- The program you need calls CPCREC.BAS and is in the UTILITY directory.
- It is saved in ASCII, so you can send it to your printer without
- problems and type it into your CPC.
- It does its job like a thin rope sent through a pipe in order to
- get a thick cable through it.
- Here, the thin rope is CPCREC.BAS which receives files from the PC.
- With this little utility you get CPCPARA.BAS (the thick cable) over
- to the CPC. With CPCPARA.BAS you can receive and transmit. Then you
- will not need CPCREC.BAS any more.
- On the PC side you use PCPARA.EXE, also included in the UTILITY
- directory.
-
- But before you input CPCREC.BAS, have a look at step 1:
-
-
- The parallel adapter
- --------------------
-
- You need an adapter between the PC printer cable and the PC printer
- connector.
- This goes easiest with a RS-232 wiring box, which has a 25pin D-Sub
- male (plug) and a 25pin D-Sub female (socket) connector.
- By plugging short wires into the box you can realize any possible
- connection between both sides. Usually such a box is used - as its
- name already says - for adapting RS-232 interfaces. Serial connections
- do not function at the first, you know.
- We use the adapter the other way round, that is, the plug is for the PC
- side and the socket for the printer cable.
-
- Plug it together now:
-
- Plug for the PC printer- Socket for the printer cable
- connector (left side): (right side):
-
- Pin 2 --------------- Pin 11
- Pin 10 --------------- Pin 8
- Pin 11 --------------- Pin 1
- Pin 12 --------------- Pin 7
- Pin 13 --------------- Pin 6
- Pin 15 --------------- Pin 5
- Pin 19 --------------- Pin 19
-
-
- As you see, you do not need all the 25 wires, only 7 of them.
-
- Although the wiring box is cheap if you buy it from a electronic
- mail-order company, you can get it even cheaper by using a jumper box.
- Then you have to solder the wires. The cheapest way is to buy a 25pin
- D-Sub plug, a 25pin D-Sub socket, a box and some wires.
-
- Now I presume you have connected the computers with the adapter and
- CPCREC.BAS on your CPC.
- What now?
-
- 1. On the CPC : Run CPCREC.BAS (after you have saved it)
- 2. On the PC : Run 'PCPARA /s CPCPARA.BAS'
-
- Now it gets exciting, if no error messages appear on the PC screen, all
- is OK, the file is on the CPC.
-
- If the PC does not send anything and reports an error message the
- connection may be incorrect.
- If it is sending ("Sending block xx"), but some error messages appear
- occasionally, your PC may be to fast or to slow. The direction
- PC->CPC is very time crucial, you know.
- On my 386/33 I must not have EMS memory installed, otherwise it is too
- slow. On a very fast computer it could be necessary to use the turbo
- switch.
- Use the program under plain DOS, not OS/2 or Windows.
-
- If it does not run at all, send me a note.
- In the meantime you can type in the program CPCPARA.BAS which is
- a little longer. The direction CPC->PC runs always, also under OS/2,
- because it is nearly the same as printing. The PC behaves like a printer.
-
- I assume that you have CPCPARA.BAS on your CPC now.
- Transfer files from CPC to PC in the following way:
- 1. On the PC: Run 'PCPARA /r'.
- 2. On the CPC: Run CPCPARA, select S)end and input every file you want
- to transmit. (Run 'PCPARA /r' for every file you want to transmit,
- CPCPARA runs in an endless loop.)
-
-
- Thus, use PCPARA in the following way:
- - PCPARA /r : start PCPARA in receiving mode
- - PCPARA /s <file> : sends <file> to the CPC, if you use 'TRM:' as
- file, you will get a terminal.
-
- All programs in the UTILITY directory display an overview about its
- options if you call them without any parameters.
-
-
- WARNING:
- Even if the construction is very simple, I cannot guarantee that you
- do not damage anything. If your CPC printer-port is damaged afterwards,
- it is a pity and rather an unfortunate accident. Perhaps it would be
- also damaged if you had simply connected a printer.
- For example, I know a former CPC user whose keyboard did not work
- properly any more one day. After the repair he was told that he
- should not plug the joystick in while the computer is switched on!
- (Well, I do so always ?!?)
-
- To come back:
- I have built the adapter successfully. And have even sometimes
- "forgotten" to insert the adapter in the connection and have had no
- problems.
-
-
-
-
-
- Diagrams by David Chapeau, if your CPC has no Centronics connectors:
-
- 34 <- - - - - - - - 18 \
- ______________________ |
- | ________________ | |
- | |________________| | - | ---> Printer Connector (Female) to CPC
- |______________________| |
- |
- 17 < - - - - - - - - 1 |
- |
- |||||||||||||||||| |
- |||||||||||||||||| \
- |||||||||||||||||| > "CPC 6128 to DMP 2160" Cable
- |||||||||||||||||| /
- |||||||||||||||||| |
- |
- 1 - - - - - - - - > 18 |
- ________________________ |
- \ ______________ / |
- \ |______________| / - | ---> Centronics Connector (Male)
- \__________________/ |
- |
- 19 - - - - - - - -> 36 /
-
-
-
- 18 < - - - - - - - - 1 \
- ________________________ |
- \ ______________ / |
- \ |______________| / - | ---> Centronics Connector (Female)
- \__________________/ |
- |
- 36 <- - - - - - - - 19 |
- |
- |||||||||||||||||| |
- |||||||||||||||||| \
- |||||||||||||||||| > PC Parallel Adapter
- |||||||||||||||||| /
- |||||||||||||||||| |
- |
- 1 - - - - - - - - > 13 |
- ________________________ |
- \ .................. / |
- \ ................ / - | ---> Sub-D Connector (Male) to PC (LPT1)
- \__________________/ |
- |
- 14 - - - - - - - -> 25 /
-
-
- 13 < - - - - - - - - 1 \
- ________________________ |
- \ .................. / |
- \ ................ / - | ---> Sub-D Connector (Female)
- \__________________/ |
- |
- 25 <- - - - - - - - 14 |
- |
- |||||||||||||||||| |
- |||||||||||||||||| \
- |||||||||||||||||| > RS 232 "Wired Box"
- |||||||||||||||||| /
- |||||||||||||||||| |
- |
- 1 - - - - - - - - > 13 |
- ________________________ |
- \ .................. / |
- \ ................ / - | ---> Sub-D Connector (Male) to PC (LPT1)
- \__________________/ |
- |
- 14 - - - - - - - -> 25 /
-
-
-
- Printer Centronics Centronics Sub-D Sub-D Sub-D
- Connector (Female) (Male) Connector Connector Connector
-
- 1 --------- 1 1 --------- 1 11 --------- 2
- . . 8 --------- 10
- . . 1 --------- 11
- . . 7 --------- 12
- 17 --------- 17 14 --------- 14 6 --------- 13
- 18 --------- 19 19 --------- 19 5 --------- 15
- . 21 --------- 20 19 --------- 19
- . 23 --------- 21
- . 25 --------- 22
- 34 --------- 35 27 --------- 23
- 29 --------- 24
- 30 --------- 25
- 31 --------- 16
- 32 --------- 15
- 33 --------- 18
- 36 --------- 17
-
-
-
- CPCPARA -> PCPARA (v1.1) transfer speed:
-
- Times to transfer a block of 0x4000 Bytes from CPC to PC with the
- parallel adapter:
-
- Source on CPC: bytes/s: bit/s:
- -----------------------------------------------------------
- File from floppy disk: 1600 12800
-
- Block from memory: 2240 17920
-
- Block from memory, no ints.: 2445 19560
- (poke &b941,&c9 on CPC 6128)
-
- The block sending was controlled in BASIC (inside CPCPARA):
- defstr a:a="test.$$$":call sstr,@a
- a=string$(&80):for i=1 to &80:call sstr,@a:next:call sbyte,0:stop
-
-
- You can read further information about the parallel adapter in chapter 7.
-
-
-
- 5.3 The serial interface
- =========================
-
- If you own a serial interface for the CPC, you can certainly use it
- for data transfer to the PC.
-
-
-
- 5.4 Other possibilities
- ========================
-
- There are some more fantastic ways to get the software onto the PC.
-
- - Connect the 3" disk drive to the PC. Some (older) models should fit to
- a 5.25" connection.
-
- - With a detour over the the Spectrum+3: read the 3" disk on the
- Spectrum+3, convert it in the Spectrum format and use a utility
- to read it on the PC. This utility comes with the Spectrum emulator Z80
- by Gerton Lunter.
-
- - When is was necessary to get the ROM yourself, someone told me about
- his way:
- He took the ROM chip out of the CPC and inserted it instead of the VGA
- BIOS. With a small program he was able to read the contents.
-
- - Maybe you will find another way?
-
-
-
-
- 6. Supply, Support, and Acknowledgments
- ≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡
-
- In this chapter you will read where to get CPC software and whom to ask in
- the case of questions. Furthermore, I mention some other Amstrad emulators.
-
-
- 6.1 Where can I get CPC software?
- ==================================
-
- This is no problem if you have access to the Internet.
- As for Spectrum emulators, a number of "anonymous" archives exist
- where you can get CPC software via FTP or WWW.
-
-
- FTP
- ---
-
- - ftp.nvg.unit.no:/pub/cpc, thanks to Arnt Gulbrandsen for
- creating the site, and to Noel Llopis to maintain it,
- one of the biggest archives for CPC programs;
- send what you have in /pub/cpc/incoming
-
- - sunshine.informatik.uni-wuerzburg.de:/pub/joscho/cpcemu
- mirror of ftp.nvg.unit.no. Any questions, remarks and additions to
- joscho@informatik.uni-wuerzburg.de
- If you have problems connecting to Norway you can try this.
-
- - ftp.ibp.fr:/pub/amstrad, thanks to Remy Card, all questions about
- this site should be directed to roussin@blaise.ibp.fr
- All the files comes from 'Genesis the 8bit generation BBS' (see
- below),
-
- - ftp.demon.co.uk:/pub/cpm, thanks to Paul Martin
- specific amstrad CP/M related files
- Paul Martin (pm@nowster.demon.co.uk) will send anyone, who can give
- him proof that they own an original Amstrad CP/M Plus disk, the binary
- ROM images of his "CP/M Plus ROMs" for free.
-
- - oak.oakland.edu : /Simtel/msdos/emulator/cpcemu14.zip
-
- - other Simtel mirrors:
- ftp.ibp.fr : /pub3/pc/SimTel/msdos/emulator/
- ftp.demon.co.uk : /simtel/msdos.
- ftp.uni-paderborn.de
-
-
- WWW
- ---
-
- - Amstrad Action homepage at http://www.futurenet.co.uk/
-
- - http://www.cm.cf.ac.uk/User/K.E.W.Thacker/Amstrad/index.html
-
-
- BBS
- ---
-
- - Aspects (2:250/107) : +44 1617920260, in United Kingdom, sysop Dave
- Gorski, V32b, CPCEMU v1.2, programs (mostly in basic),
-
- - Genesis the 8bit generation (2:320/220) : +33 1 39 50 54 11, in
- France, up to VFC, sysop : Emmanuel Roussin.
- last versions of emulators, qwerty and azerty 6128 ROMs, freeware,
- shareware, PD, disk zines, pokes, solutions, demos and a few
- commercial games (with the permission of their respective authors).
- For the moment, there are about 29,5 Mo of zipped programs. For fido
- users, you can file request ALLFILES.ZIP, and then what is
- interesting you.
-
- - Razormaid (2:2471/6009) : +49 711 4204329, in Germany, up to V32b
- and Zyxel, sysop : Thorsten Mitschele also known as Kangaroo in the
- CPC scene, it has the same files as Genesis, with some delay.
-
- - ZNODE 51 : + 49 89 961 45 75, in Germany, from 15:00 to 3:00 CET
- (MEZ), up to V32b, CPC files
-
- - Beavis'n'Butthead BBS 2453/407, Germany
-
-
-
-
- 6.2 News, exchange experiences
- ===============================
-
- Do you always want to have the latest version of CPCEMU?
- Do you want to be informed if a new one is released?
-
- Meanwhile we have set up a newsgroup especially for the CPC!
- It is called
-
- comp.sys.amstrad.8bit.
-
- Here you will find discussions about CPCs (and also CPCEMU), and
- you can talk about your experiences with CPCs.
-
- There is an FAQ (frequently asked questions) available to this
- newsgroup.
-
- If you cannot read the newsgroup for any reason, write me an email
- saying that you want to be on the mailing list. Then you will be informed
- about CPCEMU news.
-
- You will find my address in the next section.
- Certainly you can also use normal mail to ask me (or David, see below),
- but please do not forget the return postage.
-
- If you send me a contribution, I feel obliged to send the latest version
- to you at least one or two times.
-
-
-
-
- 6.3 If you have questions or suggestions
- =========================================
-
-
- Then you can write directly to me:
-
- Marco Vieth
- Auf dem Uekern 4
- D-33165 Lichtenau
- Germany
-
- Phone: (...)05292/1366 (only on week-ends)
-
- Internet: ali@uni-paderborn.de
-
- As you have probably already gathered while reading the Internet
- address, I am studying Computer Science at the University of
- Paderborn. I am in my 11 semester (WS 95/96).
-
-
-
- In case you speak or write English (I presume so 'cause you're reading
- this) you also can write to David Cantrell:
-
- David Cantrell
- 116, London Road
- Bexhill-on-sea
- East Sussex
- TN39 4AA
- England
-
- Phone: +44-1424-221015
-
- Internet: david@integration.co.uk
-
-
- David offered to help a little to answer the "pile of letters".
- He has scanned firmware manual for the CPC, so everyone can get it
- in an electronical form.
-
-
-
-
- Although this program is Freeware, I would certainly accept any sort of
- support, financial or technical.
- (30-50 Deutschmarks would be appropriate.)
- (That is around 20-33 US$ or 13-21 British pounds.)
-
- Even if you send no money, I normally respond to all letters and try
- to keep in mind all suggestions (I am sure David will do the same).
- So do not hesitate to send your comments.
-
-
-
- 6.4 Other Amstrad CPC emulators
- ================================
-
- At the beginning of 1994 I thought that CPCEMU was the only emulator
- for the Amstrad CPC. Now I know of three other:
-
- - SIMCPC:
- Presumably the first CPC emulator written.
- CPC Emulator for PC/XT/AT (c) 1989, 90 by GHE, Aachen.
- It is only black and white, but with additional ROMs;
- only a "beer humour".
-
- - CPC2PCxx:
- In development since October 1993 by Paco Lopez (Spain), and
- Is available from some sites now. It is written completely in
- protected mode and uses the same disk format as CPCEMU.
-
- - CPE:
- In development by Bernd Schmidt. By using a special 50 hertz
- screen mode, some colour blocks are exactly reproduced.
- A special 256-colour CPE2 shows exact colour blocks with more
- than 50 hertz.
- Also supported: Multi modes, overscan.
- Latest version: v5.0.
-
-
-
- 6.5 Plans for future releases of CPCEMU
- ========================================
-
-
- - overscan
- - improved multi modes
- - screen centering in higher video modes
- - fast hardware scrolling
- - US keyboards have no "<>", ALTgr
- - simulate the expansions-port of the CPC
- - load CPC disks directly
- - load CPC tapes directly (over printer port or Soundblaster card)
- - transfer whole disk images with the parallel adapter
- - volume control for the Soundblaster
- - improved sound (maybe with noise)
- - digiblaster emulation
- - customizable joystick keys
- - use mouse as joystick
- - auto detection of .SNA and .DSK
- - emulate the expansion port
-
- Maybe this is never done since I have to write my dissertation first
- and do some "real" work...
-
-
-
- 6.6 Acknowledgments
- ====================
-
- - Special thanks to Juergen Weber, not only for many hints and
- suggestions, but especially for the fast Z80 emulation from
- his CP/M emulator ZSIM.
-
- Juergen G. Weber
- Wiesentalstrasse 1
- 74523 Schwaebisch Hall
- Federal Republic of Germany
-
- email: weberj@dia.informatik.uni-stuttgart.de
-
-
- - Also thanks to Bernd Schmidt. Because Bernd wrote his own emulator,
- we have had the same problems many times. Only if you try to write
- such an emulator yourself can you imagine, which details cause problems.
- There is no CPC documentation available, which gives a whole
- specification. Most parts of the CPC behaviour are detected by
- experiments with a real CPC.
-
- - Thanks to Ulrich Doewich for including Gravis UltraSound sound output
- in the emulator and reading through the documentation. Ulrich wrote
- a similar tool like CPCTRANS. Look out for CPDREAD which can read also
- copy protected disks.
-
- - Thanks to Emmanuel Roussin for his untiring engagement for the CPC.
- He did the essential steps for setting up the newsgroup and lent me
- his Multiface II for months, so that I could include in the emulator
- somehow.
-
- - Thanks to Arnt Gulbrandsen for his JPP source, where I found
- ideas for the keyboard handler and the joystick routine.
- By the way, JPP is a very good Spectrum emulator.
-
- - Thanks to Martin Zacho for supplying a joystick routine.
-
- - Thanks to Fernando J. Echevarrieta Fernandez for pointing out first
- that version v0.8 did not emulate a CPC 664.
-
- - Thanks to Gilles Molinari for his transfer program for the parallel
- adapter.
-
- - Thanks to Paul Martin for correcting the English documentation for
- version 1.0.
-
- - Thanks to Mark Haigh-Hutchinson for his engagement in making programs
- from the company Vortex public domain.
-
- - Thanks to Martin Young for his outstanding ideas about emulating a Z80.
-
- - Thanks to Linh Hsiesh for many ideas for improvements, most of which
- should have been incorperated by now.
-
- - Thanks to Fred Harris for writing a letter to AMSTRAD about the ROMs.
-
- - Thanks to Amstrad, especially to Cliff Lawson for allowing me to
- distribute the BASIC ROM. Amstrad retains the copyright.
-
- Amstrad plc, Brentwood House,
- 169 Kings Road, Brentwood,
- Essex CM14 4EF
-
- - Thanks to Richard Clayton from Locomotive for allowing me to distribute
- the Firmware ROM. Locomotive retains the copyright.
-
- - And thanks to the many users for sending me suggestions or having
- ideas. Without them CPCEMU would hardly have reached version 1.0
-
- - (Please excuse my English.)
-
-
-
-
- 6.7 Registered trademarks
- ==========================
-
- CP/M, CP/M 2.2 and DRDOS are trademarks of Digital Research.
- MS-DOS is a trademark of Microsoft.
- IBM PC, PC-XT, PC-AT and OS/2 are trademarks of International
- Business Machines.
- CPC, AMSDOS by Amstrad,
- BORLAND C, TASM (Turbo Assembler) by Borland,
- 22DISK by SYDEX
- Soundblaster by Creative Labs
- ...
-
-
-
-
-
- ------------------------------------------------------------------------------
-
-
-
- 7. Internal Information about CPCEMU
- ≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡
-
-
- This chapter gives some background information and answers the question,
- "WHY shall I do this or that now?"
- The powerful debug menu is also described. You will also find the structures
- of disk images and snapshot files.
- This information is not intended for CPCEMU users without knowledge of
- what is inside a CPC. Maybe it will be useful sometime.
- I have put this information at the end, even after the trademarks, in an
- attempt to show its "relative insignificance".
- If you have no fun reading unintelligible sentences and unarranged
- information, do not read further!
- Skip directly to the Appendix.
-
-
-
- WARNING: Go on reading at your own risk !
-
-
-
-
-
- 7.1 Table of contents for chapter 7
- ====================================
-
- 7.2 Internal overview of CPCEMU features
- 7.2.1 The Z80 CPU (The Processor)
- 7.2.2 The Gate Array (The "Co-Processor")
- 7.2.3 The PAL (Programmable Logic Array)
- 7.2.4 The CRTC 6845 (Cathode Ray Tube Controller)
- 7.2.5 The PIO 8255 (Programmable Input Output)
- 7.2.6 The PSG AY 3-8912 (Programmable Sound Generator)
- 7.2.7 The FDC 765 (Floppy Disc Controller)
- 7.2.8 The Centronics printer interface
-
- 7.3 The Debug menu
- - Overview of the debug menu
- - Preliminaries
- - Overview of the commands
- - Manipulation of registers
-
- 7.4 Memory management
- 7.4.1 Another time: EMS configuration
- 7.4.2 How the Banking is done?
-
- 7.5 ROM modifications
- 7.5.1 ROM bypass for the cassette
- 7.5.2 AMSDOS ROM modifications
-
- 7.6 Miscellaneous
- 7.6.1 Another time: The configuration file
- 7.6.2 The parallel adapter
- - Direction CPC->PC
- - Direction PC->CPC
- 7.6.3 CPCTRANS
-
- 7.7 Structure of selected CPCEMU files
- 7.7.1 Disc images
- - The Disc Information block
- - The Track Information block
- 7.7.2 Snapshot files
- 7.7.3 AMSDOS header
- 7.7.4 Poke Database
-
- 7.8 Internal history
-
-
-
-
- 7.2 Internal overview of CPCEMU features
- =========================================
-
-
- How compatible is CPCEMU really?
-
-
-
- 7.2.1 The Z80 CPU (The Processor)
- ----------------------------------
-
- + All Z80 instructions are emulated, including so-called illegal ones.
- You have the choice between a slow Z80 emulation written in C and a
- fast Z80 emulation written in assembler by Juergen Weber.
- With the COCPU technique, every Z80 instruction is
- emulated simultaneously by the slow and the fast version,
- so it gets very slow, but by comparing the registers after
- each instruction many errors are found. Obviously this was
- only used during program development.
- You can activate the slow emulation in the debug menu.
- + Additional instructions 'ED FC xx' only the emulator knows.
- Among them the user break 'ED FC FC USER &BCFC'.
-
- - No exact timing of the instructions
-
-
-
- 7.2.2 The Gate Array (The "Co-Processor")
- ------------------------------------------
-
- + All 32 colours of the CPC (27 different ones)
- + All three screen modes (X x Y x COLOURS):
- mode 0 = 160x200x16
- mode 1 = 320x200x4
- mode 2 = 640x200x2
- + ROM banking (16KB OS, 16KB BASIC, 16KB AMSDOS and additional ROMs)
-
- - Colour beams flicker
-
-
-
- 7.2.3 The PAL (Programmable Logic Array)
- -----------------------------------------
-
- The PAL is logically at the same address as the gate array but
- in hardware separated from it.
-
- + RAM banking (128 KB, up to 576 KB) with EMS or conventional memory.
- With emulated EMS, the blocks are mapped by the hardware, so the speed
- is OK. CPCEMU gives you a Dk'tronics compatible RAM expansion
- with up to 576 KB.
-
- - Without EMS, RAM banking is very slow, since memory blocks must be moved
- around in the PC memory. Besides you have only 128 KB RAM.
-
-
-
-
- 7.2.4 The CRTC 6845 (Cathode Ray Tube Controller)
- --------------------------------------------------
-
- + Screen base and offset for hardware scrolling
- + Several screen sizes from 0x0 to 80x25 with CRTC registers 1 and 6.
- + Different character sizes (1..7) with CRTC register 9
- + Multi modes (they use some other registers)
-
- - Overscan is not yet supported
-
-
-
- 7.2.5 The PIO 8255 (Programmable Input Output)
- -----------------------------------------------
-
- + Keyboard (connected to the PSG)
- + VSYNC emulation: A bit which is set between two interrupts during a
- screen refresh. You can change the position.
- + The cassette is very fast, a ROM bypass allows access to any DOS file.
-
- - VSYNC bit is set too long
- - Cassette ports are not emulated, so most of cassette copy programs
- which access the ports directly do not run.
-
-
- 7.2.6 The PSG AY 3-8912 (Programmable Sound Generator)
- -------------------------------------------------------
-
- + Either through the PC speaker (awful, since 3 channels are
- multiplexed into one and the volume cannot be changed)
- or a Soundblaster card. Only the Adlib compatible FM part of the
- soundcard is used.
-
- - No digital-sound or too slow.
- The noises form the PSG have no equivalent on the Soundblaster,
- so they are not emulated.
-
-
- 7.2.7 The FDC 765 (Floppy Disc Controller)
- -------------------------------------------
-
- + All necessary FDC commands to control two drives A and B
- (including sector read/write, seek track, read sector-ID, ... ;
- format track is ignored)
- Very flexible disk formats (up to 18 sectors per track).
- Including double sided formats, e.g. VORTEX.
-
- - Complicated copy-protected formats are not supported.
-
-
-
- 7.2.8 The Centronics printer interface
- ---------------------------------------
-
- + Printer output also with 8-bit printer patch, to a file defined
- by PRINTER.
-
-
-
-
- 7.3 The Debug menu
- ===================
-
- The complete register set of the CPU is displayed and can be modified.
- You can "dump" the memory, disassemble or modify it. You can load or
- save areas in memory. And the most interesting thing:
- You can single-step through programs!
- (Similar to a real debugger.)
-
- Overview of the debug menu
- --------------------------
-
- R)un T)race S)tep A)ssem D)ump I)nput L)oad saV)e M)ode F)ast Q)uit
- AF=0000 BC=0000 DE=0000 HL=0000 IX=0000 IY=0000 SP=0000 PC=0000 IR=0000
- AF'=0000 BC'=0000 DE'=0000 HL'=0000 IFF1=0 IFF2=0 IMD=0 NZ NC PO P
- 0000 : 01 89 7F LD BC,&7F89
- -f->
-
- The first line displays the available commands, use the capitalized
- letters.
- The next two lines show the actual values of the Z80 registers.
- The next one disassembles the actual instruction at PC position
- and the last is a prompt waiting for your input.
- ('f' indicates that you are using the fast CPU.)
-
-
- Preliminaries
- -------------
-
- Parameters in special brackets are optional [opt].
- Use only hexadecimal values, e.g. <address> = 0000-ffff
- "<ret>" indicates that you are in a special mode. You may press
- <return> to continue. <String><Return> leaves this mode
- (use e.g. b<return>).
- Commands are letters, mostly followed by an optional address.
- Between the letter and this address must be a blank or tab.
- Without an address, PC (program counter) is assumed as default.
-
-
- Overview of the commands
- ------------------------
-
- R)un:
- r [<address>] : starts emulation from PC or an optional address.
- Examples:
- -f-> r starts emulation from PC
- -f-> r 100 sets PC to 0x100 and starts emulation
-
- T)race (trace into):
- t [<address>] : executes only the actual displayed instruction.
- Use <return> to continue in this mode, and so on.
- <string><return> goes back to normal mode.
- All single-step-commands are executed by the slow CPU (even if
- "-f->" is displayed), since there is no counter in the fast CPU
- any more.
-
- S)tep (step over):
- s [<address>] : executes the next instruction.
- Rather all instructions, until PC is equal to the following
- instruction. This can take a long time e.g. after a 'Ret'.
- In this case F10 helps (as usual).
- All single-step commands are executed by the slow CPU (even if
- "-f->" is displayed), since there is no counter in the fast CPU
- any more.
-
- A)ssemble (actually disassemble):
- a [<address>] : disassembles the next 16 instructions.
- Use <return> to continue in this mode, and so on.
- <string><return> goes back to normal mode.
-
- D)ump:
- d [<address>] : shows an hex/ASCII dump of the following 256 bytes from
- address (or PC).
- Use <return> to continue in this mode, and so on.
- <string><return> goes back to normal mode.
-
- I)nput (modifying memory):
- i [<address>] : shows the actual memory address with its current
- value, which you can take by <return> or change by <hex-value>
- <return>.
- Leave this mode by using an invalid number like '-1':
- -1<return> .
-
- L)oad (loading a program):
- l [<address>] : prompts you for a filename <name> and loads it
- from the directory TAPE_PATH to <address>
- An AMSDOS-header is recognized.
- If you press <Return> after the filename prompt, the well-known
- file selection menu appears ...
- Examples:
- -f-> l<return> demo<return> :
- loads file 'demo' to the actual PC
- -f-> l a000<Return> myprog<Return> :
- loads file 'myprog' to address 0xA000
-
- saV)e (saving a program):
- v [<address>] : prompts you for a filename <name> and the
- length of the memory block. This block is saved from <address>
- (or PC), as binary file in the directory TAPE_PATH, which
- includes an AMSDOS header.
- Example:
- -f-> v<return> demo<return> 4000<return> :
- saves file "demo" from PC with length 0x4000.
-
- M)ode (changing the display mode):
- m : Changes display mode: register display, instruction
- disassembling on/off.
-
- F)ast (selecting the type of emulation):
- f : Flips between the fast Z80 emulation (developed in assembler
- by Juergen Weber, default) and the slow one (written in C).
- The prompt toggles between "-f->" for fast and "-s->" for slow.
- All r, s, t commands refer to the selected type of emulation.
-
- Q)uit (leaving the program):
- q : quits the emulator.
-
-
- Manipulation of registers
- -------------------------
-
- In addition to the one letter commands you can change register
- values with the syntax: '<register>=<hex-value>'
- Examples:
- - af=345 : set register AF to 0x0345
- - pc=a000 : set program counter to 0xA000
-
- You can also write '<register><space><hex-value>'.
- You can modify all displayed registers, i.e.
- AF, BC, DE, HL, IX, IY, SP, PC, IR, AF', BC', DE', HL',
- and also IFF1, IFF2 and IMD.
-
-
-
-
-
- 7.4 The Memory Management
- ==========================
-
-
- 7.4.1 Another time: EMS configuration
- --------------------------------------
-
- You need an expanded memory manager supporting the LIM 4.0 standard
- (LIM EMS 4.0). This memory manager must supply extended EMS-pages in any
- region, as CPCEMU will look for 6 physical pages on continuous addresses.
- If EMS usage is possible, a memory count 'EMS xxx Bytes ok.' will appear
- during initialization.
-
- You were told to use the following settings under OS/2:
-
- EMS_FRAME_LOCATION = auto
- EMS_HIGH_OS_MAP_REGION = 32 (or more)
- EMS_LOW_OS_MAP_REGION = 0 (or more)
-
- What does that mean?
- Low region is for EMS pages in conventional memory. If CPCEMU
- is to use such pages, use at least 6*64KB = 84KB.
-
- High region is for EMS pages above 640K, additional to the
- standard frame of 64KB. Use at least 2*16KB = 32 KB.
-
-
- For DOS, you were told to include the following lines in your CONFIG.SYS:
-
- DEVICE=C:\DOS\HIMEM.SYS
- DEVICE=C:\DOS\EMM386.EXE 1024
- ...
-
- Modify the 1024, depending on the available memory of your computer.
-
- Annotations:
- EMM386 supplies several additional pages in conventional memory.
- The minimum address can be changed with the option /B=<segment>
- (default is 4000).
- With /P<number>=<segment> it is possible to change the segments of
- physical pages.
-
-
-
-
- 7.4.2 How the Banking is done ?
- --------------------------------
-
- Banking is to enable some home computers to have RAM and ROM at the
- same address. So read is from ROM and write is to RAM. The Amstrad
- CPC has 64K RAM and a 16K ROM at 0-3fff and a second one at c000-ffff:
-
- 0 RAM 0000-3fff
- 1 RAM 4000-7fff
- 2 RAM 8000-bfff
- 4 RAM c000-ffff
- L ROM 0000-3fff
- U ROM c000-ffff
-
- The main idea is to have different segments and offsets for reading,
- and writing. For every read access, a read offset is added to the
- desired address, and the same is done with a write offset for writing.
-
- state 0 state 1
-
- block 5 M L c W 0 <
- block 4 M W C c W C c | swap at
- block 3 M W 8 b c W 8 a c | state
- block 2 M W 4 b c W 4 a c | change
- block 1 M W 0 b L a c <
- block 0 M U b U a
-
-
- (M = conventional memory or physical EMS-pages)
-
- a = lower ROM enabled, upper ROM enabled
- b = lower ROM disabled, upper ROM enabled
- c = lower ROM enabled, upper ROM disabled
- W = lower ROM disabled, upper ROM disabled
-
- To flip between the two states, the '0' and 'L' block must be
- swapped. For RAM banking a new '0' must be swapped with the old
- one. ROM select is done by copying the new ROM to 'U'.
-
- With EMS memory, all banking is done by the EMS hardware (or its
- emulation). This improves the emulation speed in BASIC and CP/M
- Plus. Now you understand why 6 continuous physical EMS pages are
- needed; the standard frame with 4 pages is not enough.
-
-
-
-
-
- 7.5 ROM modifications
- ======================
-
-
- 7.5.1 ROM bypass for the cassette
- ----------------------------------
-
- After the '|TAPE' command, or if the AMSDOS ROM is disabled, the
- cassette is addressed. Cassette access is transformed into file
- access in a single directory. This redirection is done by a ROM bypass.
- With 'TAPE_BYPASS=1' you enable the ROM bypass of the tape vectors.
- If CPCEMU finds a known ROM from a CPC 464/664/6128, the ROM is
- modified accordingly. The bypass is necessary if you want to use the
- cassette.
-
- Some special instructions are implemented in the Z80 emulation. They
- call special functions only supplied by the emulator. They are entered
- directly in ROM, so it is still possible to patch the RAM vectors.
-
- The following instructions are available:
- ED FC xx USER &BCxx (only valid for some RAM vectors)
- Similar to a call instruction to an internal function.
- The following values for xx are legal:
- 65 : CASSETTE INIT (BC65)
- 77 : CASSETTE IN OPEN (BC77)
- 7A : CASSETTE IN CLOSE
- 7D : CASSETTE IN ABANDON
- 80 : CASSETTE IN CHAR
- 83 : CASSETTE IN DIRECT
- 86 : CASSETTE RETURN
- 89 : CASSETTE TEST EOF
- 8C : CASSETTE OUT OPEN
- 8F : CASSETTE OUT CLOSE
- 92 : CASSETTE OUT ABANDON
- 95 : CASSETTE OUT CHAR
- 98 : CASSETTE OUT DIRECT
- 9B : CASSETTE CATALOG
-
- In addition to that, you can use the user break instruction
- ED FC FC USER &BCFC. It stops the emulation at once.
-
-
-
- 7.5.2 AMSDOS ROM modifications
- -------------------------------
-
- - With 'AMSDOS_DISABLE=1' you forbid the initialization of the AMSDOS.
- Then patching of tape vectors by the AMSDOS ROM is disabled. (So the
- tape vectors are still pointing to tape, although the AMSDOS ROM is
- initialized.) This is necessary if you want continue loading from
- tape after a disc-reset, but without giving the '|TAPE' command
- first.
- (It is done by 'poke &CCF2,&18: poke &CCF3,&05' in the AMSDOS ROM.)
- Sector instructions are not affected, they always address the disk.
-
- - 'AMSDOS_SPEEDUP=1' enables a AMSDOS ROM modification, which
- minimizes the motor waiting times to render a faster disc access.
- (The things are managed by DOS, so we do not need the delay loops.)
- The following bytes are modified in the AMSDOS ROM:
- poke &C5D4,&01 :'motor load time
- poke &C5D8,&01 :'format track time
- poke &C5D9,&01 :'short wait
- poke &C5DA,&01 :'short wait
- poke &C602,&01 :'only 1 retry on error
- poke &C784,&01 :'fast seek
- poke &C7E2,&01 :'fast seek
-
-
-
-
- 7.6 Miscellaneous
- ==================
-
-
-
- 7.6.1 Another time: The configuration file
- -------------------------------------------
-
- Maybe you remember that comments start with a semicolon ';', and
- can start anywhere on a line. The rest of the line is ignored.
- Blanks, tabs, newlines and ';' are delimiters, and it does not
- matter how many you use.
- Many of the definitions have the syntactical form
- <key-word> '=' <value> {T}
- {T} is a sequence of at least one delimiter.
- Example:
- ROM_PATH = ".\ROM"
-
- <number> can be given decimal, hexadecimal (with 0x) or binary (%).
- <pathname> may have a length of up to 80 characters and
- <filename> up to 20 characters.
-
- Some supplementary information to selected key-words:
-
-
- BREAK_MASK = <number> (3)
-
- For debugging purpose only.
- Some events interrupt the normal emulation. With this flag,
- you can disable such events. Use with caution!
- Leave all bits on except those for such events you do not want
- to occur.
- b2 = 0 -> disable display of port errors (use 3)
- The meaning of the bits can change in future!
-
-
-
-
-
- 7.6.2 The parallel adapter
- ---------------------------
-
- First, the construction of the adapter, now with functional description:
-
-
- PC D-SUB Cent. CPC Function
- -------------------------------- ---------------------------
- GND 19 ---- 19 GND GND
- BUSY 11 <--- 1 -STROBE Synchro (Data available)
- -ACK 10 <--- 8 D6 |
- PE 12 <--- 7 D5 | Data
- SELECT 13 <--- 6 D4 |
- -ERROR 15 <--- 5 D3 |
- D0 2 ---> 11 BUSY Synchro (Ready to receive)
-
-
- Direction CPC->PC
- -----------------
-
- Normally the adapter is designed for this direction only. Sending
- on a CPC is on principle the same as printing on a line printer.
- If the PC sets Not-BUSY, the CPC writes a nibble (4 bit of a byte)
- to the port, sets STROBE as sign that the data is there, and clears
- it afterwards. So the PC only needs to clear BUSY (with D0), wait
- for STROBE (his BUSY line) and take the nibble (from the input-lines
- printer->PC), and set BUSY.
- Question: Why not sending 8 bits parallel?
- Answer:
- 1. The PC printer port must be reprogrammed for input and I am not
- sure if that is possible on all PCs and
- 2. The CPC has a 7 bit printer port only.
-
-
- Direction PC->CPC
- -----------------
-
- One day I thought about the possibility of sending data in the other
- direction. Unfortunately the CPC has only one single input line at
- the printer port, namely the BUSY signal. So it would not improve the
- situation if you try to design a better adapter for this direction.
- Thus take what you have already and make the best out of it by
- developing a clever protocol.
- A serial interface also has one data line for each direction.
- But, a serial interface uses hardware synchronization, usually with
- a quartz, and both peers have to use exactly the same baud rate
- (e.g. 1200 baud).
- It is hard to do that with software only.
- What should I do?
- The idea is to utilize the speed advantage of the PC over the CPC.
- Each byte is split into 8 bit and transmitted serial, the PC has
- to set the BUSY line accordingly.
- During this 8 bit the CPC gives its maximum speed and the PC has to
- conform with it. The CPC writes a "bit request" with one assembler
- instruction. Now the PC must react promptly by setting the BUSY line
- accordingly the next bit. Since with the following-but-one (?)
- instruction the CPC will read it.
- In order to not disable the interrupts during the whole transfer,
- for every byte a "connection" is established.
- The CPC says "Hey, send something to me!", and the PC answers
- "Ok, I'm waiting until you want it." by toggling the BUSY-line.
- The whole story is protected with timer, so no peer can hang when
- waiting on a signal never sent.
- Thus you can escape the programs with <ESC> or <CRTC>+<BREAK>
- any time.
-
-
-
-
- 7.6.3 CPCTRANS
- ---------------
-
- Another option not mentioned is "/d 0" or "/d 1". With 1 a special
- double-step mode is selected, on 80 track drives every second track
- is skipped when working with 40 track disks.
- This option should be unnecessary, because CPCTRANS switches
- automatically to double-step when detecting a 5.25" 360 KB disk.
-
- Normally it is very simple to read or write sectors by using the BIOS.
- But the BIOS cannot handle B-sides of disks with head-mark=0.
- So I had to program the FDC functions myself, with the aid of
- the MINIX source as an outline. Unfortunately the MINIX source contains
- some errors, and the timing in critical sections was done by
- simple delay loops possibly outlined for a 8086 processor.
-
-
-
-
- 7.7 Structure of selected CPCEMU files
- =======================================
-
-
- 7.7.1 Disc Images
- ------------------
-
- Disc image files consist of a 0x100-byte disc info block and for
- each track a 0x100-byte track info block, followed by the data for
- every sector in that track.
- The new extended disk format is intended for some copy protected disks.
- Parts which are new in the extended format are marked with *E*
- (from our Extended DISK Format Proposal, Rev.5).
-
-
- The Disc Information block
- --------------------------
- Byte (hex): Meaning:
- 00 - 21 "MV - CPCEMU Disk-File\r\nDisk-Info\r\n"
- ("MV - CPC" is characteristic)
- *E* "EXTENDED CPC DSK File\r\n\Disk-Info\r\n"
- *E* ("EXTENDED" is characteristic)
- 22 - 2F unused (0)
- *E* DSK creator (name of the utility) (no ending \0 needed!)
- 30 number of tracks (40, 42, maybe 80)
- 31 number of heads (1 or 2)
- 32 - 33 size of one track (including 0x100-byte track info)
- With 9 sectors * 0x200 bytes + 0x100 byte track
- info = 0x1300.
- *E* unused (0)
- 34 - FF unused (0)
- *E* high bytes of track sizes for all tracks
- (computed in the same way as 32-33 for the normal format).
- For single sided formats the table contains track sizes
- of just one side, otherwise for two alternating sides.
- A size of value 0 indicates an unformatted track.
- Actual track data length = table value * 256
- Keep in mind that the image contains additional 256 bytes
- for each track info.
-
-
- The Track Information block (for every track)
- ---------------------------------------------
- Byte (hex): Meaning:
- 00 - 0C Track-Info\r\n
- 0D - 0F unused (0)
- 10 track number (0 to number of tracks-1)
- 11 head number (0 or 1)
- 12 - 13 unused (0)
- Format track parameters:
- 14 BPS (bytes per sector) (2 for 0x200 bytes)
- 15 SPT (sectors per track) (9, at the most 18)
- 16 GAP#3 format (gap for formatting; 0x4E)
- 17 Filling byte (filling byte for formatting; 0xE5)
- Sector info (for every sector at a time):
- 18+i track number \
- 19+i head number | sector ID information
- 1A+i Sector number |
- 1B+i BPS /
- 1C+i state 1 error code (0)
- 1D+i State 2 error code (0)
- 1E+i,1F+i unused (0)
- *E* sector data length in bytes (little endian notation)
- This allows different sector sizes in a track.
- It is computed as (0x0080 << real_BPS).
-
-
- Annotations:
- The sector data must follow the track information block in the
- order of the sector IDs. No track or sector may be omitted.
- With double sided formats, the tracks are alternating,
- e.g. track 0 head 0, track 0 head 1, track 1 ...
- Use CPCTRANS to copy CPC discs into this format.
-
-
-
- 7.7.2 Snapshot Files
- ---------------------
-
- Snapshot files consist of a 0x100-byte header and a memory dump.
-
- The Snapshot header:
- Byte (hex): Meaning:
- 00 - 07 'MV - SNA' (as characteristic)
- 08 - 0F unused (0)
- 10 snapshot version (2, former 1)
- 11 - 1A Z80 register AF, BC, DE, HL, R, I
- 1B - 1C Z80 flags IFF0, IFF1 (0=disabled, 1=enabled)
- 1D - 24 Z80 register IX, IY, SP, PC
- 25 Z80 interrupt mode IMD (0 - 2)
- 26 - 2D Z80 register AF', BC', DE', HL'
- 2E Gate Array: ink number register
- 2F - 3F Gate Array: ink value register (0, 1, ..., 15, 16)
- 40 Gate Array: multi configuration register
- 41 Gate Array: RAM configuration register
- 42 CRTC: address register
- 43 - 54 CRTC: data register (0, 1, ..., 17)
- 55 Upper ROM number
- 56 - 59 PIO: port A, port B, port C, control port
- 5A PSG: address register
- 5B - 6A PSG: data register (0, 1, ..., 15)
- 6B - 6C memory dump size (64K or 128K)
- (the following parameter exist only from snapshot version 2.0 onwards:)
- 6D CPC type where the snapshot was generated
- (0=CPC 464, 1=CPC 664, 2=CPC 6128, 3 = unknown)
- 6E interrupt number (0..5), the latest interrupt
- during a screen update cycle.
- 6F - 74 6 multimode bytes, thus screen modes (0..2)
- for the interrupts 0..5.
- 75 - FF unused (0), maybe later for emulator configuration
-
-
-
-
-
- 7.7.3 AMSDOS Header
- --------------------
-
- Byte (hex): Meaning:
- 00 user number (0 , possible values 0-15)
- 01 - 0F filename+extension (possibly filled with 0)
- 10 block number (0)
- 11 last block flag (0)
- 12 file type (0=basic, 1=protected basic, 2=binary,...)
- 13 - 14 length of block (0)
- 15 - 16 load address (0-FFFF)
- 17 first block flag (0)
- 18 - 19 logical length (0-FFFF)
- 1A - 1B entry address (0-FFFF)
- 1C - 3F free for the user (0)
- 40 - 42 real length of file (1-FFFFFF)
- 43 - 44 checksum of bytes 00-42
- 45 - 7F unused (random values from sector buffer)
-
- Annotation:
- A header is found at the beginning of every non-ASCII file. It is
- identified by calculating the checksum.
- Bytes 00-3F originate from the "cassette area", where files were
- divided up into blocks.
- The bytes 12, 15-16, 1A-1B, 40-42, 43-44 are necessary.
-
-
- 7.7.4 Poke Database:
- ---------------------
-
- An entry (one line) consists of 7 parts, each surrounded by '"',
- separated by commas.
- 1. part number (1 character, 0-F):
- The first entry has number 0 and can be selected.
- If a program needs more than one poke, following entries have the
- numbers 1, 2, ...
- 2. Name of program (up to 20 characters)
- 3. Description (up to 20 characters)
- 4. Type (1 character):
- ('t'=Tape, 'd'=disk, 'a'=all), currently ignored.
- 5. Address of poke (4 characters, hexadecimal):
- Specifies the memory location to be modified
- 6. Byte for the poke (2 characters, hexadecimal or '??'):
- If '??', you have to input a value, e.g. number of lifes.
- 7. Old byte (2 characters, hexadecimal or '??'):
- Allows to check, if the poke modifies the correct environment.
- If the byte at the address differs form old_byte, a warning is
- displayed. There is no check when using '??'.
-
- Example:
- "0","Devils Crown","inf oxygen","t","863b","00","??"
- "1","","","t","863c","00","??"
- "2","","","t","863d","00","??"
-
- There are three pokes for the program "Devils Crown", all working
- together. Old values ark unknown so old byte is '??'.
- You can omit name and description in following entries.
-
-
-
-
-
- 7.8 Internal History
- =====================
-
-
- Z80EMU (only a Z80 with less CPC)
- ---------------------------------
-
- - v1.0 (1991)
- first version in Pascal (only Z80 emulation)
- - v1.2 (12.8.1992 - 16.8.1992)
- first version in C (translated with TPTC)
- Z80 problems: ADD HL..., DAA, LDIR set the P-flag incorrectly. BIT...
- set the Z-flag incorrectly, rotate instructions set the Z-flag and S-flag
- incorrectly; possible to use ROMs now.
- - v1.3 (18.8.1992)
- wrong port addressing: low byte incorrect. New memory management with
- 128 KB RAM, 32 KB ROM
- - v2.0 (18.8.1992 - 22.8.1992)
- implemented COCPU technique to find errors (the COCPU uses separate
- memory and is only active in a special debugging mode). Z80 problems:
- AND... set H-flag incorrectly, CPI... set N-flag incorrectly. Formerly,
- the screen was only black and white, now it is blue and yellow as you
- know from a real CPC.
- - v2.1 (25.8.1992 - 27.8.1992)
- Emulation of all pens, colours in all modes. Writing only to the active
- screen which you can see. COCPU found an error: all instructions
- containing (IX+zz) with a negative distance were wrong ! Forgotten to
- take "signed char".
- - v2.2 (30.8.1992 - 3.9.1992)
- New keyboard routine, set palette without flickering (waiting for HSYNC).
- "Need-ROM" with COPYMATE introduced.
- - v2.3 (15.9.1992 - 19.9.1992)
- FDC emulation for sector load/save. COCPU found an error: LD XH,... was
- LD H,...
- - v2.3b (19.9.1992)
- Do screen update only if the screen is on RAM blocks 0..3 (and not 4..7);
- Made port FCxx an alias for FBxx (for CP/M Plus). At that time, I did not
- know that OUTI... predecrement the B-register.
- - v2.4 test (25.10.1992)
- Only R-register emulation if desired (per "DEFINE"); Now screen update
- every nth interrupt and not for every single byte written in memory.
- (Still very slow, because all is done in C). New memory management with
- blocks aligned to segments.
- - v2.5 test (31.10.1992)
- Changed memory management. Hardware scrolling and different screen sizes
- possible.
- - v2.6 test (5.11.1992)
- New keyboard handler from Arnt Gulbrandsen: all key combinations
- possible. Screen update in assembler.
- - v2.7 test
- Unsuccessfully tried to include the fast Z80 emulation from Juergen
- Weber.
- - v2.8
- Improved Screen update: Only changed parts are modified on the screen.
- - v2.9
- Using PC Timer to generate interrupts with 300 Hertz. Fast emulation runs
- only, if no ROM (banking) is needed.
-
- CPCEMU (now a CPC)
- ------------------
- - v0.2 (23.12.1992), following Z80EMU v2.9
- After nearly 4 hours analyzing with the Turbo Debugger I have found the
- error hanging the fast emulation: PUSH ES instead of PUSH DS.
- - v0.3 (28.12.1992 - 29.12.1992)
- Set N-flag for INI,OUTI. CPI in fast Z80 set wrong flags. RL (HL) used
- read segment (in DS) instead of write segment (in ES). LD A,R now
- produces random-numbers; All Tape routines implemented (but wrong
- CASSETTE IN CHAR).
- - v0.4 (1.1.1993)
- IN A,(n): A to b8..b15 (instead of B); RAM configuration 0xC3: corrected
- to 0,3,2,7 (for CP/M Plus). KC-Compact (a CPC compatible from former DDR)
- uses port EE00 - EE3D, but for what?
- - v0.5 (28.1.1993 - 8.2.1993)
- INIR,... R-register-incrementation depends on B, not on BC. CASSETTE IN
- CHAR corrected (wrong patch for CPC 6128).
- - v0.6 (23.3.1993 - 24.5.1993)
- Someone mentioned that the OUTI-instructions predecrement the B-register!
- Compiling the C parts in 386 code (with Borland C++ v3.1). Disk images
- have the suffix .DSK. CPCREAD.PAS corrected (head not initialized with 0)
- and translated to CPCREAD.C. Port addressing of the PIO improved (the CPU
- can read, even if the port is programmed for output, ...)
- - v0.7 (26.7.1993 - 29.8.1993) (unreleased)
- Totally new source, modularized, ... Configuration file, more ROMs
- possible. Changed company name from 'Schneider' to 'Amstrad'. (You can
- choose between several names.) RAM banking error removed. New
- documentation in German.
- - v0.8 (30.8.1993 - 9.9.1993)
- Slow emulation: parity instructions improved by using a table not only
- for parity. Z80: ED xx with illegal xx is ignored. New documentation in
- English.
- - v0.8a (10.9.1993 - 15.9.1993)
- Fatal error in fast emulation: If an DD CB xx instruction is executed and
- an interrupt occurs, the instruction is ignored!
- - v0.8b (16.9.1993 - 21.9.1993)
- Implemented a "real" VSYNC, if VSYNC_CT = 0. Corrected PIO port A
- problem: OUT &F400,xx with Port A in input mode was ignored. New joystick
- routine from Martin Zacho.
- - v0.8c (22.9.1993 - 13.12.1993)
- Checked documentation with "ispell". Emulation did not start, if
- "USE_JOYSTICK=1" and a joystick was not present (PUSH AX at wrong
- position). Slow Emulation: DAA corrected (brackets were missing since
- v0.8). Wrong patch for CPC 664 in interrupt routine. This patch replaced
- EI with NOP do avoid the problem with EI (enable interrupts one
- instruction later). Now correct for all CPCs.
- - v0.8d (14.12.1993 - 29.12.1993)
- FDC emulation rewritten for double sided formats. CPCTRANS replaces the
- old CPCREAD and allows you to read Vortex-disks after you have installed
- the patch 720KB.COM. Beside that, you can write disk images back to disk.
- New fileselect when pressing F3. Some port address aliases introduced,
- e.g. &7000 - &7f00 to address the gate array, &0c00,&1c00,&2c00,&3c00,
- &bc00 for the CRTC. Emulation of the R-register enabled.
- - v0.9 alpha (30.12.1993 - 20.1.1994)
- EMS memory possible with a special EMS/UMB-configuration. Binary digits
- in the configuration file. RAM-banking addressing corrected: emulator
- accepted &d0-&ff as &c0-&c7. Now up to 576 KB RAM with EMS.
- - v0.9b (21.1.1994 - 31.1.1994)
- Usage of EMS simplified by extended EMS (or LIM EMS 4.0) with more than
- 4 physical EMS pages. File-select added to 'l' (debug menu), RUN" .
- - v0.9c (1.2.1994 - 29.4.1994)
- Some awful PC speaker sound (disable it with F4). File select also with
- 'v'; this English documentation corrected; Soundblaster sound (can be
- improved); new CPCTRANS with command line parameters, direct FDC access;
- parallel adapter tested and the software improved. Fast Z80: INC (HL),
- DEC (HL), INC (IX+n), DEC (IX+n) for RAM below ROM corrected. PgUp,PgDn
- move oversized screens; parts of overscan screens are displayed.
- Now possible: 64K snapshots.
- - v0.9d (30.4.1994 - 12.5.1994)
- Interrupts during DI are not forgotten, and they are not enabled directly
- after an EI instruction any more. New color functions: now without snow
- under OS/2. Fast Z80: speed up code fetch.
-
- - v1.0 (13.5.1994 - 20.5.1994)
- Improved screen part: different character sizes from 1 to 8. File select
- added to SAVE" , added fast select by pressing a letter. Improved
- CPCTRANS with a verify option. A new setup menu, if you press F7. So you
- can disable colour flickering.
-
- - v1.0a (21.5.1994 - 9.6.1994)
- Improved setup menu with direct input or cursor keys, added German
- keyboard layout, added simple delay option. Correct display of smaller
- screen sizes (without parts of the bigger ones). Improved fast Z80 part:
- faster RRA,RLA, ... faster CB xx instructions. Added more illegal
- instructions (ED xx). LD D,XH and LD YL,YH were missing ! Corrected CPDR,
- CPIR with BC=0 (0 means 65536 on a Z80, but it is 0 for the 80x86 REPE
- prefix!). DAA flags corrected. New software for the parallel adapter:
- Now it is possible to send to the CPC. Thanks to Bernd Schmidt for
- pointing out that an interrupt increments the R-register by 1. With his
- help, the PIO port C register emulation has been improved.
-
- - v1.1a (10.6.1994 - )
- A new era of CPCEMU has arisen: Amstrad has allowed the use of the ROMs!
- Changing in the configuration file: ROM_BLOCKS -> ROM_BLOCK, DISC_BYPASS
- -> DISABLE_ADOS, no space separating '=' needed, Changings in sound part,
- graphics part: vertical size by VGA-CRTC. Joystick calibration is in the
- setup menu now, tape routines for saving are improved. FDC part improved:
- now you can use COPYMATE. Insert non-data format disks without read error
- (without a seek to track 0). Another delay in CPCTRANS, I hope, you will
- not need the turbo switch any more; formatting of disk images. Corrected
- PIO port C another time: it is cleared after out &7f00,n. Major changes
- in the configuration file: Now with conditional configuration (#IFCPC,
- #ENDIF). Some tokens changed (VSYNC_CT -> /, DISC_PATH -> /, SNAP_PATH ->
- SNAPSHOT, DRV_A -> DRIVE_A, DRV_B -> DRIVE_B). Load programs from inside
- ZIP archives. You will need PKUNZIP.
-
- - v1.1b (17.8.1994 - 2.9.1994)
- Multimodes introduced, that means different screen modes on the same
- screen. The screen update is partitioned in up to 6 areas, each one is
- updated when an interrupt occurs. (Can be improved.) Possible now: 128K
- Snapshots, extended for multimodes. CPCPARA improved: Now you can
- transfer binary files with header. CPC 6128 Plus detection included.
- More port aliases included.
-
- - v1.2 (3.9.1994 - )
- This version was released. Mainly there are some changes with
- the help menu.
-
- - v1.2a (27.9.1994 - ) (was available as UPD12A.ZIP)
- File Select: Only the available drives are displayed.
- And: With the driver ANSI.SYS the background of some text was black.
- TMP_PATH: You can specify a drive without path.
- DOS Shell (F7): CPCEMU is swapped to XMS, EMS or disk first, so you
- have much memory in the DOS shell. (This feature is taken from the
- Public Domain Program SWAP300.ZIP by Marty Del Vecchio.)
- Screen update could be corrupted, if the screen width was not
- divisible by 4.
- Another CPCEMU version to get even more speed: C2.EXE. It uses a
- different memory management with two EMS frames with 64KB each.
- One for reading and one for writing. But it runs only with EMS.
- The ROMs are also (c) by Locomotive Software, not only Amstrad.
-
- - v1.2b ( )
- There was no stereo sound on a Soundblaster Pro even if the
- configuration said so. If no Soundblaster was found there was no
- sound at all until you use USE_SB=0.
- Fast-Z80: Changed some word accesses to byte accesses. That's a bit
- slower but does not crash the computer every time you do a word
- access at address 0xffff.
- Fast-Z80: Problem with EI HALT DI corrected: The address to HALT was
- pushed instead that one of DI.
- corrected English documentation
- improved CPCPARA and PCPARA v1.1: adapter test, much more speed CPC->PC:
- approx. 1600 bytes per second reading from disk! (486/66), statistics.
- So you can transfer 16KB in 10 seconds! Thanks to Klaus Weber for
- pointing out, that it was much too slow.
- In PCPARA there was a DELAY(1) after every nibble to wait a millisecond.
- This is not necessary.
-
- - v1.2c (28.2.1995 - ) (was available as UPD12C.ZIP)
- Parts of CPCEMU rewritten in C++. This allows inline functions and
- improved interfaces to keep a better overview over the project.
-
- - v1.2d (16.3.1995 - ) (only for mailing list 'subscribers')
- Fast-Z80: Internal changes not visible to the user, except a little
- speed improvement. All data is kept in the data segment now instead
- of the code segment.
- Finally introduced the absolutely necessary mode for fast computers:
- 'realtime CPC' (Selectable from the setup menu or REALTIME=1).
-
- - v1.3 (16.4.1995 - )
- Poke database for easy poking, French documentation, FDC format
- command (re-format disk images of the same size),
- new menu system with mouse support (MOUSE=1),
- insert disk images with read-only DOS attribute (insert them as read
- only), debug menu: 'find' added
-
- - v1.3a (30.4.1995 - ) (was available as UPD13A.ZIP)
- With version v1.3 Boulder Dash did not run, even if it did with v1.2.
- The interrupt mode 2 of the Z80 was not simulated correctly
- (PUSH/POP forgotten). The slow Z80 emulation had a similar bug.
- CPCTRANS: Option -f 6 enabled.
-
- - v1.3b (20.5.1995 - ) (is available as UPD13B.ZIP)
- Some users mentioned that there was no Soundblaster sound output since
- version 1.3.
-
- - v1.4 (v1.3c)
- GUS sound support by Ulrich Doewich; online help in English, German,
- French and Spanish; complete French documentation;
- support for 2 joysticks; VESA videomodes for higher resolutions;
- improves setup menu and configuration file; load and save
- configurations added to the setup menu; improved FDC routines for
- non-standard formats; Extended disk format;
- user-configurable colours and keys;
- improved CPCTRANS (v2.3); new SNA2GIF (v1.1);
- fast Z80 emulation: sometimes the screen was not completely cleared
- after a reset (problem with HALT);
-
-
-
- CPCEMU is written in C++ and assembler, using Borland C 3.1 with 386
- optimization and Turbo Assembler. For Debugging the Turbo Debugger
- was used.
- The colours were composed with the program VGAMETER by J. Stephen
- Shattuck, Jr., with the CPC connected to a TV by a Scart adapter.
-
-
-
- ------------------------------------------------------------------------
-
-
-
- (From this point you can continue reading without danger.)
-
-
-
- Appendix
- ≡≡≡≡≡≡≡≡
-
-
-
- A.1 Glossary
- ≡≡≡≡≡≡≡≡≡≡≡≡≡
-
- Here some computer terms are explained. I do not claim to give complete
- or precise definitions. The terms are described with the view to the CPC.
- References are marked with "»".
-
-
- 386/33 (AT 386/33)
- Short term for »PC AT with 80386 processor, clocked with 33 MHz.
- Because of the "high" clock rate it should be a 386DX with a real 32
- bit data bus, not the cheap 386SX with a 16 bit data bus.
-
- AMSDOS (Amstrad DOS)
- »DOS developed by »Amstrad, for the »CPC computers.
-
- Amstrad
- British computer manufacturer, who has designed the »CPCs.
-
- Archive
- Storage of files.
- Or: One file, including several other.
- In »ZIP archives the files are compressed before including them.
-
- ASCII (Abbreviation for: American Standard Code of Information Interchange)
- On a computer all characters, numerals are represented internal as numbers.
- Most computers use ASCII, with the letter "A" coded as 65. »PC and »CPC
- also use ASCII. In »Locomotive-BASIC you can save an ASCII file by typing
- 'SAVE"<filename>",A'.
-
- Basis Address
- This you have to specify in many »setups if you own a soundcard.
- CPCEMU looks for an »environment variable.
-
- BASIC (Abbreviation for: beginners all purpose symbolic instruction code)
- Widely used, easy to learn programming language for home- and personal
- computers. Former every computer had had his own BASIC dialect.
- Modern BASIC allows structured programming, so you are not forced to
- program "spaghetti code" any more.
- Also the »CPC has its own BASIC, the Locomotive BASIC by a company of
- the same name.
-
- Batch File
- Contains instructions you normally type in your computer. If you call
- such a file, the instructions are executed one by one, even if you input
- them.
-
- BASIC File
- See »File.
-
- BBS
-
- Binary File
- See »File.
-
- BLASTER environment variable
- See »environment variable.
-
- C64:
- Home computer by the company Commodore with 64 KB »RAM, very popular.
- Because of the huge software supply it was "the game computer" for many
- years. Later it was pushed aside from the Commodore AMIGA, but despite
- its old technique it survived longer.
-
- Clock frequency
- Clock the processor is connected to. It determines the speed of the
- processor in a significant way. Today's 486DX2/66 processors are clocked
- internally with 66 MHz.
- The Z80A in the »CPC is clocked with 4 MHz, running actually with 3.3 MHz
- because he has to wait periodically for the screen update.
-
- Command line parameter
- Parameter you give in the command line after the file you want to call.
-
- Configuration
- Here: Configure a program for his own needs.
- You can do that with the »Setup or a configuration file.
-
- CPC (Abbreviation for: Colour Personal Computer)
- Developed by the company »Amstrad, was available in different types.
- Please read the introduction again.
-
- CPC printer port
- Centronics interface of the »CPC to connect a printer.
- Unfortunately the CPC designers were too economic: It has only 7 bits.
- With a short wire it was possible to extend it to 8. For this the
- cassette port was "misused", not needed when printing.
-
- CPC firmware manual
- A book about the »CPC, especially describing the operating system
- interface of the CPC.
-
- CPC newsgroup
- A newsgroup only for the »CPC. It is called "comp.os.amstrad.8bit"
- and was created in august 1994.
-
- CP/M Plus (Abbreviation for: control program for microcomputers)
- Operating system from the company Digital Research, mainly for 8 bit
- microcomputers. Widely used until IBM decided to use MS-DOS for its PCs.
- CP/M Plus (CP/M 3.0) was the successor of CP/M 2.2 and was included
- in the software package of the »CPC 6128.
-
- CTRL/SHIFT/ESC (control/shift/escape)
- "Three finger combination" on a »CPC to cause a reset. It is similar to
- the reset combination 'CTRL/ALT/Del' on a PC. Some programs block
- such a reset so you have to turn off the computer or use the reset
- button. The CPCs had no button, but it was easy to build one.
- In CPCEMU the function key F8 is the reset button.
-
- Cursor
- Character on the screen which shows you the current writing position.
- Somewhere on the keyboard there are cursor keys to move the cursor
- around.
-
- D-Sub
- Connectors with a special form.
-
- Dk'tronics
- British company offered hardware extensions for the »CPC, e.g.
- memory extensions.
-
- DMA (Abbreviation for: Direct Memory Access)
- Direct access to the computer memory without using the processor.
- Used with disk drives, but to be cheap not implemented in CPCs.
- The Soundblaster card can also use a DMA channel, getting digital
- sound data "through" it.
-
- DOS (Abbreviation for: disk operating system)
- Disk oriented operating system, e.g. AMSDOS, DRDOS, MS-DOS.
- Today it is a synonym for MS-DOS.
-
- DOS Search Path
- DOS uses a path along subdirectories to find a file.
- It is set with the environment variable 'PATH'.
-
- DRDOS
- MS-DOS compatible »DOS by the company Digital Research.
-
- E-Mail (Abbreviation for: Electronic Mail)
- Using a computer as mail-box.
-
- EMM (Abbreviation for: Expanded Memory Manager)
- Similar to »EMS.
-
- EMS (Abbreviation for: Expanded Memory System)
- Memory extension for the »PC, to get around the 640KB memory limit.
- With the banking technique other memory pages are mapped in an EMS
- window. EMS was developed by Lotus, Intel and Microsoft, thus it is
- called LIM-EMS.
- There is hardware-, emulated and simulated EMS.
- Special memory cards supply hardware EMS, mainly used on old PC XTs.
- On a PC AT with at least a 80386 processor it is possible to have
- emulated EMS by using the paging mechanism for banking.
- This sort is supplied by EMM386.EXE and should used to speed up CPCEMU.
- Simulated EMS is too slow, it has to copy the memory pages.
-
- Emulate
- Imitate a system (hard- or software) by another one.
- The imitating system computes the same results on the same data as
- the imitated system.
- CPCEMU emulates a »CPC on a »PC.
-
- Emulator
- The system »emulating another one.
-
- File
- Collection of data belonging together. On the »CPC there are files of
- different types, e.g BASIC files with BASIC programs usually having the
- extension '.BAS', ASCII files with any text, and binary files with any
- bytes, usually having the extension '.BIN'.
- Binary files can contain machine programs or other data.
-
- Format definitions
- Definitions of disk formats.
-
- FTP (Abbreviation for: File Transfer Protocol)
- A protocol to transfer files in computer networks.
- Also, the program running this protocol is called "FTP".
-
- Hardware
- Parts of a computer you can "touch", e.g. periphery like printer,
- monitor; internal it is the processor and other »hardware chips.
-
- Hardware chips
- Components inside the computer, e.g. processor, memory chips, floppy
- disk controller, ...
- Inside the CPC there are the Z80 processor, the Gate Array, the CRTC
- 6845 for addressing the screen memory, the PIO 8255 for input/output,
- the sound chip PSG AY 3-8912, the floppy disk controller FDC 765, ...
-
- Hardware scrolling
- Moving the screen without having the processor to copy from one part
- to another. The processor has to modify only the screen base address,
- the rest is done by a hardware chip.
-
- Initialize
- Fill the memory with special values, so variables are defined.
-
- Interface
- Connection of a computer to its periphery or from one program to another.
- Thus there are hard- and software interfaces.
- The so-called Centronics interface is a parallel interface, transmitting
- the bits of a byte parallel. With serial interfaces it is necessary to
- transfer the bits one after another.
-
- Internet
- An Internet is composed of several sub-networks of computers.
- Here: *The* Internet, a worldwide computer network for communication.
-
- Interrupt
- If the processor gets a signal with higher priority, it interrupts
- the running program and calls a special interrupt handler. When
- finished it continues with the interrupted program. On a PC there
- are different interrupt signals, e.g. when you press a key, when a
- timer runs off, when data from the serial interface has arrived
- (e.g. when you move the mouse), when the soundcard just played its
- last sample and needs more data, ...
- The Z80 in the CPC is interrupted 300 times a second.
-
- Interrupt number IRQ (IRQ=Abbreviation for: Interrupt Request)
- On a PC, different »interrupts have different numbers.
- For example, the keyboard interrupt has number 9, the timer interrupt
- has number 8. If you press a key, the keyboard sends an interrupt
- request to the processor, so it is informed.
-
- Jumper box
- An adapter box to realize any connection between two connectors by
- using short wires which must be soldered.
- See also »Wiring Box.
-
- Keyboard handler
- A program called when the keyboard generates an »interrupt. The handler
- gets the number of the key which is pressed or released.
-
- LIM standard (Abbreviation for: Lotus Intel Microsoft)
- Memory expansion (»EMS), developed by Lotus, Intel and Microsoft.
-
- Locomotive
- British company which wrote the »BASIC of the »CPCs.
-
- Mailing list
- A service from me, for which I add your email address to a list.
- So you will be informed about news concerning CPCEMU.
-
- Microchannel
- Special bus architecture.
-
- MS-DOS (Abbreviation for: Microsoft Disk Operating System)
- Operating system, developed by the company Microsoft for 16 bit
- processors (8086). The most popular operating system for the PC.
- Still in use on the 32 bit processors 80386 and 80486.
-
- Multi Modes
- Programming technique to have different screen modes simultaneously
- on the screen. The screen mode is changed during a screen refresh more
- than one time. On the CPC you get zones with high resolution, few
- colours and low resolution, many colours.
-
- Multiface II (Abbreviation for: Multipurpose Interface)
- A hardware extension for the CPC. Allows to interrupt any program at any
- time to analyze or save it.
- Developed by the British company Romantic Robot.
-
- Number representations
- Depending on the selected base, there are different representations
- for the same number.
- Well known is the decimal representation with basis 10 and digits 0 to 9.
- Computers use the binary representation (base 2) with digits 0 and 1.
- Programmers like the hexadecimal representation with base 16, because
- 16 is a power of 2 (2 powered with 4). Then the representations can
- be easily computed into each other. Besides a byte needs only 2 digits
- (0 to 9, A to F) in the hexadecimal notation.
-
- OS (Abbreviation for: Operating System)
- A program needed to use the computer. It provides basic functions to
- application software. New operating systems do complicated tasks like
- program scheduling in multitasking systems, ...
-
- OS/2 DOS box
- A window under the 32 bit operating system OS/2 by IBM, where you
- can run DOS programs. The so-called DOS compatibility box.
-
- Overscan
- The border surrounding the writable area on the screen.
- On a PC it is very small but you can change its colour, e.g. in CPCEMU
- with 'BORDER 10'. On the CPC the overscan is much wider, so
- programmers have looked for possibilities to write to it. With a
- programming trick it is possible to write to the whole screen.
- This programming technique is called overscan.
-
- Parameter
- Variable with a fixed meaning, the behaviour of the program relies on it.
-
- PC (Abbreviation for: Personal Computer)
- Computer with a microprocessor as processor (or CPU=central processing
- unit). Today a synonym for the IBM PC with 8086 or 8088 processor.
- PC AT (advanced technology) are computers with a 80286, 80386 or 80486
- processor.
-
- PEEKs and POKEs:
- »BASIC instructions to modify the memory directly.
- 'PEEK(<address>)' is used to read a byte from memory,
- 'POKE <address>,<number>' modifies the memory. Programs with many PEEKs
- and POKEs are hard to understand, but sometimes it is necessary to
- break through the limits of BASIC, especially if the BASIC only has few
- instructions.
-
- PKUNZIP
- Program by PK-Software to decompress »ZIP files.
-
- RAM (Abbreviation for: Random Access Memory).
- Memory chip. Memory of the computer.
- The CPCs have 64KB RAM (kilo bytes) or 128KB. With hardware extensions
- they could have up to 576KB RAM.
-
- ROM (Abbreviation for: read-only-memory).
- Memory chip. Memory that can only be read but not changed.
- It is available directly after switching on the computer.
- The CPCs have 16KB ROM »OS, 16KB ROM »BASIC and 16KB ROM for the AMSDOS.
-
- ROM Image
- File with the contents of a »ROM. If you read out a ROM and write the
- bytes into a file you will get a ROM image.
-
- RS-232
- Serial Interface to connect monitors or printers to the computer.
- (RS 232 C).
-
- Schneider
- German company, which sold the CPCs in Germany.
-
- Screen mode
-
- Setup
- Changing »parameters of a program, so it behaves differently.
- You can tell the setup, that you have a soundcard, that you want to use
- a joystick, ...
-
- SIMTEL
- A big software archive in the USA.
- The SimTel Software Repository is maintained by Coast to Coast
- Telecommunications, Inc. (CCT) on its host computer on the Internet
- located at "SimTel.Coast.NET". This archieve is mirrored (copied)
- to other sides. One mirror site is Oakland University located at
- "OAK.Oakland.Edu".
-
- Snapshots
- A memory dump completed by internal states of the »hardware chips.
- It contains a complete momentary state description of the computer.
- If the snapshot is reloaded, the computer is set back to the state
- described in the snapshot.
- Thus it is similar to a real snapshot, only inside the computer.
-
- Software
- Programs of a computer system.
-
- Soundblaster
- Soundcard of the company Creative Labs.
-
- Spectrum
- The Sinclair Spectrum is a home computer developed by the company Sinclair.
-
- Turbo Pascal compiler
- Pascal is a higher programming language which allows structured
- programming, today used in many schools.
- If one talks about Pascal, he means mostly Turbo Pascal, even if this
- is only an extended Pascal by the company Borland. The Turbo Pascal
- compiler is particular fast because it compiles the program in one pass.
-
- Utility
- Useful program.
-
- VGA (Abbreviation for: Video Graphics Array)
- Graphics standard on the PC. Successor of CGA (Colour Graphics
- Adapter), MCGA (Multi Colour Graphics Adapter) and EGA (Enhanced
- Graphics Adapter). Extended to SVGA (Super VGA) with higher resolution.
-
- VGA-BIOS (Abbreviation for: VGA Basic Input Output Operating System)
- The operation system for the »VGA graphics card.
-
- Windows
- Something you can put on »DOS.
-
- Wiring box
- A adapter to realize any connection between two connectors by using
- short wires. In comparison to the »jumper box, the wires need not be
- soldered.
-
- Z80
- An 8 bit processor developed by the company Zilog. It is upwards
- compatible to Intel's 8080 and was very popular.
- In the »CPC there is the Z80A which is clocked with 4 MHz.
-
- Z80 instructions
- Machine instructions which the »Z80 understands.
- They are only number columns, so to remember them more easily mnemonics
- were introduced, which are translated by an assembler into binary code.
- The instruction "LD A,B" loads register A with the contents of register B
- and is the same as the binary code 0x78.
-
-
- ZIP
- A special process to compress files.
- The »archives have the extension "ZIP".
-
-
-
-
-
- A.2 Bibliography
- ≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡
-
-
- The CPC manual is indispensable for CPC beginners:
- - Spital Ivor und Perry, Roland und Poel, William und Lawson,Cliff:
- CPC 6128 Benutzerhandbuch, Schneider Computer Division 1985,
- Originalausgabe (c) 1985 (my one contains 1895)
- by AMSOFT, AMSTRAD Consumer Electronics plc and Locomotive
- Software Ltd.
-
- An excellent commented ROM listing, with starting chapters dealing
- especially with the software side of the CPC:
- - Janneck, Joern W. und Mossakowski,Till: ROM-Listing CPC 464/664/6128,
- Markt & Technik Verlag 1986
-
- On the contrary: unfriendly composed, rarely commented, dealing more with
- the hardware side:
- - Brueckmann, Englisch, Gertis: CPC 464 Intern mit kommentiertem
- ROM-Listing, Data Becker 1985
-
- Good to learn C, with many exercises:
- - Kellay, Al and Pohl, Ira: A Book on C, Second Edition, 1990 by
- Benjamin/Cummings Publishing Company, Inc.
-
- The C++ standard book:
- - Stroustrup, Bjarne: The C++ Programming Language, Second Edition,
- Addison-Wesley, 1992
-
- Another nice C++ book:
- - Eckel, Bruce: C++ Inside & Out, 1993 by Osborne McGraw-Hill
-
- Hints, how to write an understandable and good manual, gives:
- - Boedicker, Dagmar: Handbuch-Knigge, Software Handbuecher schreiben
- und beurteilen. Wissenschaftsverlag 1990
-
-
-
-
-
- A.3 Index
- ≡≡≡≡≡≡≡≡≡≡
-
- The numbers behind the entries show you the chapter where they are described.
-
- (not complete)
-
- #ENDIF 4.2
- #IFCPC 4.2
- 22DISK 5.1.2
- Adapter, parallel 5.2
- AMSDOS_DI 4.2
- AMSDOS_SPDUP 4.2
- BLASTER Environment 2.3.2
- BREAK_MASK 4.2
- Cassette 3.2.2
- COLOUR 4.2
- Configuration file 4.2
- CPC 1.3
- CPC Newsgroup 6.2
- CPCEMU.CFG 4.2
- CPCPARA.BAS 5.2
- CPCREC.BAS 5.2
- CPCTRANS.EXE 5.1.1
- Debug Menu 7.3
- DELAY 4.2
- Disk 3.2.1
- Disk Image 3.2.1
- DRIVE_A 4.2
- DRIVE_B 4.2
- EMS_EI 4.2
- EMS Memory 2.3.1
- Function key 3.1
- INT_FREQ 4.2
- INT_RESUME 4.2
- JOY_CALIBRATE 4.2
- KBD_LANGUAGE 4.2
- Keyboard 3.1
- Menus 3.2.1
- Multi Mode 4.1
- MULTIMODE 4.2
- PCPARA.EXE 5.2
- PIO_PORT_B 4.2
- PRINTER 4.2
- RAM_SIZE 4.2
- ROM_BLOCK 4.2
- ROM_PATH 4.2
- SBLASTER 4.2
- SB_DELAY 4.2
- Setup menu 4.1
- SHOW_CONFIG 4.2
- SNAPSHOT 4.2
- Snapshot 3.2.3
- SOUND 4.2
- Soundblaster 2.3.2
- TAPE_BYPASS 4.2
- TAPE_PATH 4.2
- TMP_PATH 4.2
- VSYNC Bit 4.1
-
-
- ------------------------------------------------------------------------------
- logout
- ------
-