" /> ACE · Index

IndexBrowse >




    ACE 1.8 
    The acidulous CPC/CPC+ emulator.

    Copyright © 2011-2014 Philippe Rimauro
    All rights reserved.

     Introduction     - Why and how?
     Requirements     - What do you need?
     Installation     - Installation process

     Features         - What's possible?
     Configuration    - ACE at your command
     Usage            - How to use?
     Scripts & tools  - Going further...

     FAQ              - Useful advice
     Known bugs       - Known problems

     Future           - What to expect next?
     History          - What's news?

     Credits          - Who did it?

    The official homepage: http://ace.cpcscene.net.

    You could also:
      * Read our fanzine in form of a wiki (french): http://quasar.cpcscene.net.
      * Download CPC/CPC+ games, demos and tools   : http://www.cpc-power.com  .
      * Look at the CPC demoscene's news           : http://www.pushnpop.net   .

    Please note that the English version is a translation of the original French
    version and might not be always accurate or complete yet.
    You can then refer to the French documentation.
    Sorry for the inconvenience.


ACE · Introduction

ContentsIndex< BrowseBrowse >




    Introduction


    While PC freaks were playing around with many Amstrad CPC emulator, none was
    available for MorphOS!

    This could not be!

    Then, I started my work... and here it is: ACE CPC Emulator.

    Moreover, as MorphOS deserves what is best, ACE is not just a small little
    CPC emulator; it expects to become the best CPC emulator on any platform
    ever!

    ACE is not based on an existing emulator and was coded from scratch, using
    a real CPC a reference; it is written in C language and its GUI is based on
    MUI 4.

    Of course, ACE is not complete yet. Nevertheless, you can use almost the
    entire CPC and CPC+ softwares without any compatibility issue. And most of
    the time it works with a higher quality than the best CPC emulators
    available on PC these days!


ACE · Requirements

ContentsIndex< BrowseBrowse >




    Requirements


    Minimal configuration:
    (for ACE to be one frame in overlay)

    * MorphOS 2.5 or better.
    * 2MB of free hard disk space.
    * 8MB of free RAM.
    * G4 at 600MHz for CPC emulation (a little bit more for the CPC+).

    You will need a more powerful processor if you disable the overlay
    (not a good choice!).


ACE · Installation

ContentsIndex< BrowseBrowse >




    Installation


    No real installation is needed.
    Just copy the ACE drawer where you want.

    Note 1: ACE uses the MCC_HexEdit MUI class from Miloslaw Smyk to display
    some advanced informations in the secondary windows. If it is not installed,
    you will not be able to use then. Anyway it will not affect the basic usage
    of ACE.

    Note 2: to use the REXX scripts bundled with ACE you need to have
    the rexxsyslib.library installed in your LIBS: drawer (if not, the AREXX
    commands can be used standalone with the help of RxCmd shell command or
    using Lua).


ACE · Features

ContentsIndex< BrowseBrowse >




    Features


    The current version of ACE does not offer all the features I expect yet.
    However, most of the games and demos for both CPC and CPC+ are working
    perfectly; actually, the quality of the emulation is already often superior
    to what the existing big CPC emulators on PC/Windows can produce (enjoy!).

    Emulator:

    * System:
      · Entire CPC and CPC+ range.
      · Full Z80 emulation.
      · Up to 256 expansion ROMs.
      · Up to 512KB of extended memory.

    * Video:
      · Accurate CRTC emulation (type 1 is almost perfect, others still need
        some work).
      · Gate Array full emulation (all variants, perfect split rasters
        management).
      · CPC+ ASIC full emulation (unique quarter-cycle precision).
      · CTM644, GT65 and MM12 monitors emulation.
        (including dynamic analog behaviours)

    * Audio:
      · Full and very accurate PSG emulation (AY-3-8912).
      · Extremely accurate audio DMA emulation on CPC+.
      · Support for Digiblaster/Soundplayer.

    * Devices:
      · Accurate but incomplete FDC emulation (Format et Scan instructions are
        missing).
      · Accurate emulation of both floppy disc drives (real rotation speed
        computation, manual drive & side switches support).
      · CPC+ Cartridge port emulation.
      · Emulation of the tape interface through audio files (read only).
      · Printer port can be redirected to a file.
      · Accurate emulation of the keyboard (including ghost key when pressing
        more than three keys at once).
      · Both joysticks management (up to three fire buttons) using real devices
        plugged on the host machine (using USB or whatever).
      · Magnum Light Phaser and Trojan Light Phazer emulation through the mouse.
      · Tape to hard disc wrapper to access the host's files directly from the
        CPC operating system.

    Graphical interface:

    * Simple and modular configuration of the CPC to emulate using tool types
      (from Ambient) or arguments (from CLI).
    * Ability to change the CRTC type, the Gate Array version or the screen
      monitor model on-the-fly without having to reset the running program.
    * SNA and DSK files management (all of them !) with automatic
      on-the-fly detection and fix of the corrupted DSK.
    * CPR files management for CPC+ cartridges.
    * Overlay support with real pixel aspect ratio.
    * Full screen support with the ability to choose the graphic mode
      to use in order to get back the 50Hz smoothness if your screen monitor can
      do this.
    * Maskable interface in both windowed & full screen modes.
    * Floppy disc drives LED activity OSD when the interface is not displayed.
    * Rich breakpoints management on predefined conditions (HBL, VBL,
      interrupt...), on graphical coordinates, on execution addresses, on memory
      accesses and on I/O ports accesses (with the ability to use complex
      conditions, masks on the break address and/or the break value) with the
      option to execute scripts.
    * Video beam cursor to see the cathode's ray position while on pause or in
      step by step mode.
    * Memory editor (management of all RAM and ROM switching, automatic
      detection of the character code page depending on the installed firmware ROM).
    * Z80 disassembler with highlight on opcodes and fast jump buttons
      on branch instructions.
    * CRTC editor (full real time read/write access to the registers).
    * Z80 editor (full real time read/write access to the registers).
    * Gate Array analyzer (palette display, graphic mode, interrupt
      internal counter).
    * PSG analyzer (played notes, tuning, and a bunch of rich
      informations from the current PSG settings).
    * Video information window (frequencies, beam ray position...).
    * Option to use some keyboard mapping instead of a real joystick when none
      is available.
    * Screen monitor settings window (type, brightness, vertical hold).
    * Sound volume control.
    * Online help and MUI's bubbles help available everywhere to help
      the beginners
    * locales in French and English (including the help).

    AREXX interface:

    * Lot lot AREXX commands which allow to fully control the emulator and to
      manipulate its memory, in order to automate things and more, to use ACE as
      a real powerful cross-development station.


ACE · Configuration

ContentsIndex< BrowseBrowse >




    Configuration


    ACE configuration can be modified using the tool types when launched through
    Ambient, or by using simple arguments from a CLI.

    Once launched, most of the main configuration options remain accessible
    using the "Preferences" menu.

    Tool types/Arguments :

    * RS=RAMSIZE/K/N : choose the size of the CPC memory. 64KB is the minimum
      and 576KB the maximum (64KB of main memory plus 512KB of expansion
      memory).
      Default value is 128KB (just like a stock Amstrad CPC6128).

    * OS=OSVERSION/K : choose the operating system ROMs version to use. Four
      versions are existing: version 1 was integrated to CPC464, version 2 to
      CPC664, version 3 to CPC6128 and version 4 was embedded in the system
      cartridge of 464plus and 6128plus. Practically, any operating system
      version is compatible with any CPC model.
      Some of the operating system versions are available for different
      countries in order to adapt keyboard layout and charset; ACE will load
      to one corresponding to your hosting system locale setting if possible.
      Versions 1 to 3 are existing for French, Spanish, Danish and English,
      version 4 is existing for French, Spanish and English, version 2 is
      only available in English.
      The operating system is composed of three ROMs:
        - the firmware which is the boot ROM,
        - the BASIC which is the applicative default ROM,
        - the AMSDOS which is the disc ROM (only used on systems equiped with
          a floppy disc drive interface).
      All the operating system ROMs can be found in the PROGDIR:System/ of ACE.
      Moreover, you can also compose the operating system by hand using the
      tooltypes FIRMWARE/K, BASIC/K et AMSDOS/K.
      By default the version 3 of the operating will be used; it's the one which
      is compatible with most of the CPC softwares.

    * FW=FIRMWARE/K : choose the firmware ROM to use. It must point to a binary
      ROM file of 16384 bytes max (or 16512 bytes if the AMSDOS header is
      included).
      If the tooltype is not specified then the firmware ROM matching both the
      selected version of the CPC operating system (see OSVERSION/K tooltype)
      and the locale setting of your host system is used.
      By default PROGDIR:ROMs/Firmware_?x.rom will be loaded (where x is the
      version number of the operating system and ? a letter for the country).

    * BAS=BASIC/K : choose the BASIC ROM to use. It must point to a binary ROM
      file of 16384 bytes max (or 16512 bytes if the AMSDOS header is included).
      Warning: not any BASIC ROM is compatible with any firmware ROM! You must
      use BASIC 1.0 for v1 firmware, BASIC 1.1 for v2 and BASIC 1.2x for v3.
      By default PROGDIR:ROMs/Basic_v1.2x.rom is used (where x is a revision
      number which depends on the country: 3 for France, 1 for Spain and 0
      for any other country).

    * CPM=AMSDOS/K : choose the AMSDOS ROM to use. It must point to a binary ROM
      file of 16384 bytes max (or 16512 bytes if the AMSDOS header is included).
      The AMSDOS is the default ROM #7 which will be replaced by any installed
      external ROM #7 (configurable through ROM7/K tooltype).
      Warning: not any AMSDOS version is compatible with any firmware ROM! Use
      AMSDOS 0.5 for firmware versions 1 to 3 and AMSDOS 0.7 for firmware
      version 4. You could alternatively use the excellent PARADOS (of Richard
      Wilson) which is compatible with all firmware versions.
      By default PROGDIR:System/CPM05.rom will be used for firmware versions 1
      to 3 and PROGDIR:System/CPM07.rom for version 4.

    * ROM0/K : choose the extension ROM #0 to use. This ROM must be a bootable
      ROM which will replace the default BASIC at boot time. It must then be a
      background ROM (such as another BASIC, a CP/M or a Hacker).
      By default none is installed.

    * ROM1/K : choose the extension ROM #1 to use.
      By default none is installed.

    * ROM2/K : choose the extension ROM #2 to use.
      By default none is installed.

    * ROM3/K : choose the extension ROM #3 to use.
      By default none is installed.

    * ROM4/K : choose the extension ROM #4 to use.
      By default none is installed.

    * ROM5/K : choose the extension ROM #5 to use.
      By default none is installed.

    * ROM6/K : choose the extension ROM #6 to use.
      By default none is installed.

    * ROM7/K : choose the extension ROM #7 to use. This ROM is historically the
      disc ROM of the CPC (the AMSDOS). To avoid compatibility problems with
      some softwares you should always configure a disc ROM at this slot (the
      bundled CP/M ROM or the PARADOS replacement ROM).
      When provided the internal AMSDOS rom will be invalidated and this ROM #7
      will be used instead.
      By default none is installed.

    * ROM8/K : choose the extension ROM #8 to use.
      By default none is installed.

    * ROM9/K : choose the extension ROM #9 to use.
      By default none is installed.

    * ROM10/K : choose the extension ROM #10 to use.
      By default none is installed.

    * ROM11/K : choose the extension ROM #11 to use.
      By default none is installed.

    * ROM12/K : choose the extension ROM #12 to use.
      By default none is installed.

    * ROM13/K : choose the extension ROM #13 to use.
      By default none is installed.

    * ROM14/K : choose the extension ROM #14 to use.
      By default none is installed.

    * ROM15/K : choose the extension ROM #15 to use.
      By default none is installed.

    * A=DRIVEA/K : choose the disc image file to preload in drive A.

    * B=DRIVEB/K : choose the disc image file to preload in drive B.

    * TAPE/K : choose the tape audio file to preload in tape reader.

    * SNA=SNAPSHOT/K : choose the snapshot file to preload into the CPC.

    * CPR=CARTRIDGE/K : choose the cartridge file to preload into the CPC+
      Note: CPC+ emulation mode is forced at startup when a cartridge to preload
      is specified.

    * FILES/K/M : give a list of files to preload into ACE.. The list can
      contain any type of file, disc image, audio file, snapshot file or
      cartridge file ; ACE will load them together depending on their type.
      Si several disc image files are given in the list, the first one will be
      loaded in the drive A and the second one in the drive B, all other disc
      image files will be ignored. For other file types, only the first one of
      each type will be used, the other ones are ignored.

    * PLUS=CPC+=AMSTRADPLUS/S : activate the CPC+ emulation at start-up.
      CRTC type 3 and Gate Array version 40489 will be automatically selected
      and CRTC and GATEARRAY options are ignored.

    * CRTC/K/N : choose the type of CRTC to use. You can change the type of CRTC
      at anytime while the emulator is running. Please note that at the moment
      only CRTC 1 is fully supported, CRTC 0 is just some compatible mode and
      the other CRTC types are not emulated at all.
      By default CRTC 1 is used.

    * GATEARRAY/K/N : choose the version of the Gate Array to use (possible
      values are 40007, 40008 or 40010). You can change the version of the Gate
      Array at anytime while the emulator is running.
      By default the Gate Array 40010 is used (the latest one).

    * BRAND=MANUFACTURER/K : choose the brand of the CPC to emulate. All the
      manufacturers planed by Amstrad are possible (ISP, Triumph, Saisho,
      Solavox, Awa, Schneider, Orion and Amstrad).
      By default Amstrad is used, except for German speaking countries where
      Schneider is used.

    * 64K=64KEXPMEMSCHEME/S : activate the emulation of a 64Kio-based model
      (basically a CPC464, CPC664 or 464 plus). On these models the main RAM is
      switched rather than the extension RAM when using non-existing memory
      pages.

    * NDI=NODISCINTERFACE/S : totally disable the emulation of the floppy disc
      drive interface. This way you are able to emulate a stock CPC464 or
      464plus. The disc interface car be enanled/disabled at anytime while ACE
      is running.

    * EP=EMULATEPRINTER/S : by default ACE does nothing with the data sent to
      the printer port the the emulated CPC. This option activates the data
      capture to a file (by default it is stored into
      PROGDIR:Log/ACE_printer.log). You can change the file name with the
      option PRINTERFILE.

    * PF=PRINTERFILE/K : choose the printer data capture file name.

    * DB=DIGIBLASTER/S : activate the emulation of a Digiblaster/Soundplayer
      connected to the CPC. This option is disabled by default because the
      Digiblaster connects to the printer port; it can produce noise in the
      sound when it is initialized/used (which is often the case). The
      Digiblaster can be (un)plugged at anytime while ACE is running. It is a
      good choice only to plug it when required.

    * LD=LIGHTDEVICE/K : activate the emulation of a light gun device through
      the mouse pointer. Two models are handled, the Magnum Light Phaser and
      the le Trojan Light Phazer (CPC+ specific). Use the argument
      MagnumLightPhaser or TrojanLightPhazer to select the one you expect. The
      light gun can be (un)plugged at anytime while ACE is running. It is a
      good choice only to plug it when required.

    * DKB=DKTRONICSBUGS/K : activate the emulation of the DK'Tronics bugs.
      When using a DK'Tronics the upper ROM is visible in the area &4000-&7FFF
      instead of &C000-&FFFF if it is switched on while RAM pages &4000-&7FFF
      and &C000-&FFFF are swapped (&C3 mode of the Gate Array) and the shadowing
      of the RAM by I/O ASIC page of the Amstrad Plus is not handled.

    * TAP=TAPEAUTOPLAY/S : activate the autoplay feature of the tape reader. You
      will no longer have to press play after having inserted a tape. This
      option can be enabled ou disabled at anytime while ACE is running.

    * THD=TAPE2HD/S : activate the tape to hard disc wrapper which allows you to
      directly access the files of your hard disc from the CPC operating system
      through the tape interface (by default you will have access to the files
      from PROGDIR:Share/). You can change the shared directory using the option
      TAPE2HDPATH. This wrapper can be activated/deactivated at anytime while
      ACE is running.

    * TAPE2HDPATH/K : choose the shared directory through the tape to hard disc
      wrapper.
      By default "PROGDIR:Share/" is used.

    * AV=AUDIOVOLUME/K/N : choose the start-up sound volume. The volume can be
      changed at anytime while ACE is running.
      By default the volume is at 100%.

    * AU=AHIUNIT/K/N : choose the AHI unit to use.
      By default ACE uses unit 0.

    * NAF=NOAUDIOFILTER/S : by default ACE filters out the frequencies from the
      PSG (Programmable Sound Generator) which are not in the audible audio
      spectrum (the PSG, aka AY-3-8912, can indeed create sounds up to 62.5kHz
      whereas the human ear can only hear frequencies up to 20kHz). Such sounds
      cannot be sampled by the audio sound card that might produce bad artefacts
      (because of aliasing). If you really have some professional sound card or
      if you prefer to rely on the AHI driver filters, you can disable the
      embedded filter with this option (generally not a good idea).

    * NS=NOSOUND/S : by default ACE plays sounds. This option disable the sound
      at start-up. You can change the sound state at anytime while ACE is
      running.

    * FULL=FULLSCREEN/S : switch ACE to full screen mode at start-up. Full
      screen mode can also the switched on/off at anytime while ACE is running.

    * ID=SCREENMODE/K/N : by default ACE clones Ambient screen to open its
      own screen in full screen mode; it is generally what you expect. Anyway,
      you can specify a mode ID to use instead. It can be useful if your screen
      supports 50Hz (or 100Hz) frame rate that you want ACE to use in order to
      have a smoother display (most CPC games and demo are running at 50Hz).

    * NO=NOOVERLAY/S : by default ACE tries to use overlay mode. This option
      tells ACE not to do so. Generally overlay should always be preferred
      because it is faster and it looks better. Moreover, the software rendering
      (without overlay) is limited and should only be used as a last chance. The
      overlay mode can also be activated/disabled at anytime while ACE is
      running.

    * NW=NOWARN=NOWARNINGS/S : by default ACE displays warning messages when bad
      DSK or SNA files are loaded. This option disable these messages.

    * NSI=NOSNAPSHOTICONS/S : by default ACE saves the snapshots with an icon
      (an .info file) representing what is on the display. With this option
      these icons will ont be saved anymore.

    * NAG=NOANTIALIASEDGRABS/S : by default, ACE saves antialiased screen grabs
      using a filter that mimics the actual rendering on a CPC color screen
      monitor. With this options no filter will be applied to the grabs.

    * OSC=OFFSCREENCOLOR/K/N : when ACE is running windowed or in full screen
      mode with a ratio different from the real CPC screen, some margins are
      automatically added at the top/bottom or left/right of the display to
      ensure the original CPC pixel ratio. With this option you can choose the
      color of this border in the form of a 24 bit RGB value.
      By default it is a dark grey (0x181820).

    * SLC=SCANLINECOLOR/K/N : when overlay rendering is disabled, a very slow
      software rendering is used. You can specify here a 24 bits RGB value to
      use to fill the odd lines instead of duplicating the even lines into them.
      The display will be twice as fast. This option had no effect in overlay
      mode.

    * MS=MAXFRAMESKIP/K/N : specify the maximum number of frames allowed to be
      skipped in a row to maintain a full speed emulation. You should not
      usually activate this option but it might be interesting on low-end
      configurations.
      By default it is 0; which means that frame skipping is forbidden.

    * KJ=KEYJOY/S : set this option to use the keyboard instead of a real
      joystick 0 ("up", "down", "left", "right", "control" (fire 2), "left alt"
      (fire 1), and "left shift" (fire 3) are used). This option can be
      activated/disabled at anytime while ACE is running.

    * WS=WILDSPEED/S : disable the accurate speed emulation limit for a real
      CPC. In this wild mode, the emulator runs at the maximum possible speed on
      your computer. However, the relative speed of the emulated CPC chipsets
      remains accurate and the emulation quality is not altered. This mode can
      be activated/disabled at anytime while ACE is running.

    * MR=MAXFRAMERATE/K/N : specify the maximum frame per second to display in
      wild speed mode. The greater is this value the slower the wild speed
      will be because the display update is very CPU consuming. Also, note that
      values greater than the refresh frequency of your monitor (generally 60Hz)
      are useless.
      The default value is 10.
      This option has no effect if the wild speed mode is not activated.

    * FD=FASTDRIVES/S : active the fast drive emulation mode of the floppy disc
      drives. Track and sector access are done with no delay which makes the
      disc read/write operation faster. Warning: this option must be used with
      care because it is not compatible with some protected softwares and
      demos. This fast drive mode can also be activated/disabled at anytime
      while ACE is running.

    * CKR=CARTRIDGESKEEPEXTROM/S : disable the automatic deactivation of the
      extension ROMs when a CPC+ cartridge is inserted. This deactivation
      prevents problems with cartridges incompatible with extension ROMs. For
      some reason you might need to disable this behavior (i.e. when using the
      original system cartridge instead of the one emulated by ACE).

    * CKR=CARTRIDGESKEEPEXTROM/S : disable the automatic deactivation of the
      extension ROMs when a CPC+ cartridge is inserted. This deactivation
      prevents problems with cartridges incompatible with extension ROMs. For
      some reason you might need to disable this behavior (i.e. when using the
      original system cartridge instead of the one emulated by ACE).

    * LM=LAUNCHMODE/K : choose the launch mode of ACE executable. By
      default ACE will ask the user to decide what to do if an instance of ACE
      is already running. If the value SINGLE is specified only one instance is
      allowed and any new launch attempt will put to front the already running
      instance and insert optional media given in parameter. If the value
      MULTIPLE is given, a new instance of ACE is started every time.

    * UBC=USERBREAKPOINTCOMMAND/K : choose a command to execute every time a
      breakpoint is activated. The place holder "%s" can be used to get the
      AREXX port name of the ACE's instance.
      By default no command is launched.

    * DISCSPATH/K : choose the default path to the image disc files for the
      file requesters.
      By default "PROGDIR:Discs/" is used.

    * TAPESPATH/K : choose the default path to the tape audio files for the
      file requesters.
      By default "PROGDIR:Tapes/" is used.

    * CARTRIDGESPATH/K : choose the default path to the cartridges files for
      the file requesters.
      By default "PROGDIR:Cartridges/" is used.

    * SNAPSHOTSPATH/K : choose the default path to the snapshot files for the
      file requesters.
      By default "PROGDIR:Snapshots/" is used.

    * GRABSPATH/K : choose the path where to save the screen grabs.
      By default "PROGDIR:Grabs/" is used.

    * D=DEBUG/S : no effect in ACE public version.


ACE · Usage

ContentsIndex< BrowseBrowse >




    Usage


    In addition to the main window, ACE offers some secondary windows to watch
    and alter in real time the emulation behavior. Also, ACE has a hard disc
    wrapper and an AREXX interface to make your dreams come true.

     Main window                      - The emulator
     'About the emulated CPC' window  - We know who you are!

     Memory editor                    - Let's peek and poke!
     Z80 editor                       - Beating heart
     CRTC editor                      - Control the display

     PSG analyzer                     - Sounds and musics
     Gate Array analyzer              - Colorful CPC!
     Video information                - Watch the monitor

     Z80 disassembler                 - One more step!

     Screen monitor preferences       - Brightness and darkness

     Breakpoints manager              - Pay its right-of-way

     Hard disc wrapper                - An opened door
     AREXX interface                  - The area of gurus


ACE · Usage of the main window

ContentsIndex< BrowseBrowse >




    Main window


    ACE is really simple to use; it just acts like a real CPC. Anyway, some tips
    are good to know.

    Gadgets:

    On the top and the bottom of the CPC screen display lie two groups of
    gadgets.

    The ones on the top let you handle disc, tape and cartridge images using the
    different tabs, and loading/saving snapshot files and screen grabs using the
    buttons on the right. Some of the tabs might be disabled depending on the
    CPC configuration (single floppy disc drive, old generation CPC...).
    Moreover, some LED and icons let you know about the disc drives activity and
    configuration (forced side B, fast drives mode...).

    At the bottom the gadgets let you set the state of the CPC. On the first row
    you will find:

        - The volume setting.
        - The choice of the screen model.
        - The choice of the Amstrad CPC type (it will automatically select the
          proper CRTC and Gate Array).
        - The choice of the CRTC type.
        - The choice of the Gate Array version.
        - The different buttons to control the emulator (speed, play/pause,
          reset).

    Keyboard:

    The host's keyboard mainly matches the CPC's keyboard. To improve the
    comfort, I advise you to use the firmware ROM which matches your keyboard
    (that should be the default because ACE chooses the firmware ROM according
    to your system's locale configuration):

        - Firmware_fx.ROM : French version, good to use with azerty
          keyboards, preferably Amiga, Mac or PC Belgium version (azerty PC
          French versions unfortunately differs from all others azerty
          keyboards).
        - Firmware_vx.ROM : English version, good to used with qwerty
          keyboards, preferably UK.
        - Firmware_sx.ROM : Spanish version.
        - Firmware_dx.ROM : Danish version.

    In addition to the "f0-f9", "." and "ENTER" keys (which are available from
    the numeric pad), some other keys have a specific mapping:

        - DEL is on "<-" ("backspace").
        - CLR is on "delete".
        - COPY is on "left-alt".
        - ESC is on the key just above the "tab" key ("->|").

    Moreover, some keyboards cannot handle a large number of keys pressed at
    the same time. It can be a problem in some particular cases; eg. to activate
    the cheat-codes (for example, in Batman The Movie, you must press the keys
    "E", "D", "2", "0" and "9" simultaneously to jump to the next level). That's
    when the "right-alt" key comes into play. As long as you keep it pressed,
    all the other keys you might press (and release) will be kept pressed in the
    emulated CPC. To use the previous example, if your keyboard doesn't allow
    you to press five keys simultaneously, just keep the "right-alt" pressed and
    then press the keys "E", "D", "2", "0" and "9" one by one, et voila! All the
    keys will of course be released when the "right-alt" key is released.

    In addition to this, some other keys can be used:

        - Home has same effect than "control" + "left" (start of line on CPC).
        - End has same effect than "control" + "right" (end of line on CPC).
        - Page up has same effect than "control" + "up" (start of a BASIC line,
          page up under Protext, ...).
        - Page down same effect than "control" + "down" (end of a BASIC line,
          page down under Protext, ...).
        - - from numpad pause the emulator.
        - + from numpad restart the emulator.
        - * from numpad mask/unmask the controls.
        - / from numpad activate/disable the full screen mode.
        - F1 let you insert a disc image in the drive A.
        - F2 let you insert a disc image in the drive B.
        - F3 let you insert a tape.
        - F4 insert a cartridge (Amstrad Plus only).
        - Shift + F1 eject the disc image from the drive A.
        - Shift + F2 eject the disc image from the drive A.
        - Shift + F3 eject the tape.
        - Shift + F4 eject the cartridge (Amstrad Plus only).
        - F9 let you load a snapshot file.
        - F10 let you save a snapshot file.
        - F11 save a screen grab (in the grab drawer).
        - F12 has same effect than "enter" from the numpad (just in case of this
          key would be missing; like on PowerBook G4 keyboards).

    The other keyboard shortcuts are just the ones from the Intuition menu.

    Joysticks:

    Both joysticks are emulated, including the three buttons (yes, there are
    really three wired fire buttons on CPC!).

    The CPC joystick 0 is controlled by the one plugged into the port 1 (joy
    port) on the host, while the CPC joystick 1 is controlled by the one plugged
    into the port 0 (mouse port).

    When activating the option "Joystick 0 on keyboard" (or the tool type
    KEYJOY) the keys "up", "down", "left", "right", "control" (fire 2),
    "left-alt" (fire 1), and "left-shift" (fire 3) are used to simulate the
    joystick.

    Mouse:

    The middle mouse button allows you to mask/unmask the controls and a
    double-click on the display area switches from windowed to full screen and
    vice versa.

    More over, if the light gun emulation is activated, the mouse pointer is
    replaced by a cross in order to be used as a target, and the click is the
    fire button.

    Also, note the the mouse pointer will be automatically hidden when not
    moving in full screen.


ACE · Utilisation de la fenêtre 'À propos du CPC émulé'

ContentsIndex< BrowseBrowse >




    "About the emulater CPC" window


    This window will give you various information about the CPC that ACE is
    currently emulating depending on your settings.

    A nice picture of the corresponding CPC model is also displayed.

    Computer

    Nothing complicated here, the brand, the model and the locale of the CPC
    are displayed.

    Devices

    Here is some indications about the floppy disc drive interface, the tape
    interface and the cartridge port.

    Floppy and tape interfaces might be absent, internal or external depending
    on the CPC model while the cartridge port is obviously only available on
    Amstrad Plus.

    Note: the state of the tape interface will be displayed in italic if the
    tape to hard disc wrapper is activated.

    System

    The firmware version, the internal disc ROM used and the total amount of
    avaible memory are displayed in this section.

    Note: the type of the internal disc ROM will be displayed in italic if it is
    overridden by an external ROM #7.


ACE · Usage of the memory editor

ContentsIndex< BrowseBrowse >




    Memory editor


    This window allows you to manipulate the emulated CPC memory.

    Refresh

    For usability and performance reasons, the informations from this window are
    not updated in real time (it would change at any time!).

    The window content is automatically updated every time the emulator is
    paused (manually or because of a breakpoint), or manually whenever you want
    by pressing the "Refresh view" button.

    Configuration

    In addition to this button, there is a "Refresh mappings" button which will
    resynchronize the memory configuration of the editor (ROM and RAM mappings)
    with the one from the emulated CPC. The "Match the emulator's mappings" will
    force the editor to always match the memory configuration from the emulated
    CPC.

    Then there are some memory configuration selection gadgets (warning: theses
    have actually no effect on the memory state of the emulator itself; just the
    editor's view is affected). Some of them are only active when emulating an
    Amstrad Plus.

    Content

    The main part of the window displays the content of the memory depending on
    the above memory configuration. The left side is the hexadecimal view while
    the right part is in ASCII. The ASCII is is converted to the CPC charset
    code page (depending on the firmware ROM or a manual selection on the
    "Windows" -> "Convert CPC ASCII to...").

    The address to display can be selected manually or directly from the content
    of a Z80 register.

    At the bottom, a small text displays the current address position of the
    cursor within the editor. The "Disassemble..." button will open the
    disassembler window at the cursor address.

    Note: the read-only accessible memory areas and displayed with
    their address into parenthesis.


ACE · Usage of the Z80 editor

ContentsIndex< BrowseBrowse >




    Z80 editor


    This editor allows you to visualize and modify the Z80 state of the emulated
    CPC at any time.

    Refresh

    The information are updated in real-time and are always valid.

    Content

    Anything else is something anybody knowing the Z80 will be able to manage.

    Each Z80 register can be edited and some specific informations are also
    displayed such as the pointed addresses or the related flags.

    At the bottom, a small part of the Z80 to be executed is displayed from the
    current PC address. You can also use this area to check or set execution
    breakpoints in the same way than in the disassembler or the
    breakpoints management windows (only when the breakpoints are enabled).

    Also, hand resetable counters for frames, lines and microseconds are
    available to easily measure the time used by a routine.

    At the bottom, some controls similar with the ones from the main window
    (with mode options) are available.


ACE · Usage of the CRTC editor

ContentsIndex< BrowseBrowse >




    CRTC editor


    This editor allows you to visualize and modify the CRTC state of the
    emulated CPC at any time.

    Refresh

    The information are updated in real-time and are always valid.

    Content

    Anything else is something anybody knowing the CRTC will be able to
    understand.


ACE · Usage of the PSG analyzer

ContentsIndex< BrowseBrowse >




    PSG analyzer


    This editor allows you to visualize the PSG state of the emulated CPC at any
    time.

    Refresh

    The information are updated in real-time and are always valid.

    Content

    Informations from this window are numerous and smart, the MUI's bubbles help
    will inform you about their exact signification.


ACE · Usage of the Gate Array analyzer

ContentsIndex< BrowseBrowse >




    Gate Array analyzer


    This editor allows you to visualize the Gate Array state of the emulated CPC
    at any time.

    Refresh

    The information are updated in real-time and are always valid.

    Content

    Informations from this window are easy to understand and the MUI's bubbles help
    will give you any additional description about them.


ACE · Usage of the video information

ContentsIndex< BrowseBrowse >




    Video information


    This window allows you to get informations about the video synchronization
    and beam ray.

    Refresh

    The information are updated in real-time and are always valid.

    Content

    The MUI's bubbles help will inform you about the exact signification of each
    field of this window.


ACE · Usage of the disassembler

ContentsIndex< BrowseBrowse >




    Disassembler


    With this window you can disassemble any memory zone of the emulated CPC.

    Refresh

    For usability and performance reasons, the informations from this window are
    not updated in real time (it would change at any time!).

    The window content is automatically updated every time the emulator is
    paused (manually or because of a breakpoint), or manually whenever you want
    by pressing the "Refresh disassembly" button.

    Configuration

    In addition to this button, there is a "Refresh mappings" button which will
    resynchronize the memory configuration of the editor (ROM and RAM mappings)
    with the one from the emulated CPC. The "Match the emulator's mappings" will
    force the editor to always match the memory configuration from the emulated CPC.

    Then there are some memory configuration selection gadgets (warning: theses
    have actually no effect on the memory state of the emulator itself; just the
    editor's view is affected). Some of them are only active when emulating an
    Amstrad Plus.

    Content

    The main area of this window justs display the disassembly code. The origin
    address can be set manually or by catching the current PC value. It is also
    possible to lock it to PC (of course, free navigation within the memory will
    then be disabled).

    Be aware of the fact that the Z80 opcodes are of variable size. They can be
    from one to four bytes long, the origin address is then highly important.
    Actually, if you set it to an address that would cut a instruction into
    two parts, the disassembly code will not be reliable for the next two or
    three opcodes.

    For anything else, this disassembler features advanced navigation
    capabilities. First, a bookmark of preferred addresses is available to jump
    easily into huge or expanded code. A bookmark can be set by selecting it
    (using the small toggle buttons at the bottom of the bookmark address
    buttons) and then by clicking on a address on the left column of the
    disassembler view.

    You can also set some execution breakpoints by using the checkbox gadgets
    while the small lamps tell you about the activation state in a more direct
    way than the breakpoints management window (this feature is only
    available when the breakpoint support is enabled).

    Then, the last column on the right side let you directly set the origin
    address to a branch instruction target (JP, JR, CALL, ...).

    At the bottom, a small text recalls the current address position of the
    first address of the window. The "Dump..." button will open the
    memory editor window with the cursor set at this address.


ACE · Screen monitor preferences

ContentsIndex< BrowseBrowse >




    Screen monitor preferences


    This window allow you to choose the type of monitor to use and to set it
    just like with a real monitor. Unlike the other secondary windows, it is not
    accessible from the "Windows" menu but from the "Preferences" one.


ACE · Usage of the breakpoints manager

ContentsIndex< BrowseBrowse >




    Breakpoints manager


    This is the main control window of the configurable breakpoints. Unlike the
    other secondary windows, it is not accessible from the "Windows" menu but
    from the "Monitoring" one (or by clicking on the "More..." button of the
    breakpoints toolbar from the Z80 window.

    Moreover it is only accessible when the breakpoints feature is enabled
    (using the menu or the breakpoint on/off button from the Z80 window).

    It is composed of three pages.

    Execution breakpoints

    With this page you can show, add, modify or delete execution breakpoints.
    They are addresses on which the emulator pause when the Z80 tries to execute
    an instruction from there.

    The condition allow you to describe an expression that must be true to
    consider the breakpoint (detailed information about condition are provided
    through the related bubble help).

    The mode allow you to choose between the "Stopper" and the "Watcher" modes.
    The "Stopper" mode is a standard breakpoint while the "Watcher" mode will
    just update the match count without breaking.

    The step information let you choose if it must break every time (step of 0)
    or every "step" times.

    The name allow you to give a name to a breakpoint in order to make everything
    more readable when a lot of breakpoints are used. You can also use this name
    from scripts in order not to rely on hardcoded addresses.

    This type of breakpoint can also be directly set by using the checkbox
    gadgets from the disassembler and Z80 editor windows.

    Memory breakpoints

    With this page you can show, add, modify or delete memory breakpoints. They
    are addresses on which the emulator pause when the Z80 have read and/or
    written something from/to them.

    The address mask filters the actual bit from the full address to match.
    As an example a mask of &FF00 for an address at &9D00 will match all
    addresses &9Dxx.

    The value let you select a specific value to match. Like with the address
    a mask can be set on the value. By default the mask is zero which means
    that any value matches (no relevant bit to test).

    Other parameters are the same than for the execution breakpoints.

    I/O ports breakpoints

    This page is very much like the previous one but acts on the I/O ports.


    Note 1: on any of these pages double-clicking on an already set breakpoint
    let you reset the related match count.

    Note 2: you can set 64 breakpoints of each type.


ACE · Scripts & tools

ContentsIndex< BrowseBrowse >




    Scripts & tools


    ACE comes with a set of basic tools that will hopefully evolve with the time
    to become a full featured toolkit.

    Most of these tools are based on the AREXX interface.
    If you create your own REXX or Lua scripts do not hesitate to send them
    back to me so that I could add them to the next versions of ACE.

    REXX scripts:

    JoyFury.rexx will let you win with no effort in the games that expect you to
    quickly move your joystick from left to right to progress (typically the
    sport games). It takes one input parameter to set the left-to-right speed
    (default value is 20000 microseconds).

    ACE.AmIRx is a small REXX script of no use that you can install in the
    "Rexx/" drawer of AmIRC. Once installed, it can be executed through the
    "ARexx" menu of AmIRC (or by typing "/rx ACE") in order to send informations
    about the current ACE usage into the active IRC window. It can also be used
    as a standalone script (it will then address the first found instance of
    AmIRC to send the messages).

    CrossDevExample.rexx is a more complex script design to demonstrate the
    cross-development capabilities of ACE (by generating a small classic demo
    effect from nothing installed into the CPC side).
    It performs:
      * An ACE reboot.
      * An appropriate MEMORY into the BASIC.
      * An ACE pause.
      * Some tables calculation and poking directly into ACE memory.
      * The example code source assembling using Pasmo (Z80 assembler),
      * The loading of the generated binary into ACE memory.
      * An ACE restart.
      * An appropriate CALL into the BASIC to launch the created program.

    This script is an adaptation of the program available on our Quasar Net:
    http://quasar.cpcscene.net/doku.php?id=coding:aurore_boreale.
    The table generator program in BASIC was converted to REXX (trivial) and the
    assembler code is almost the same (just a few adaptations to have it work
    with Pasmo instead of Maxam).

    It could be improved by passing some parameters from REXX to Pasmo instead
    of relying on fixed EQU for the computed tables. Anyway, it is a good base
    to guess what could be done with the ACE's AREXX port!

    Note: to work this script requires:
      * rexxmathlib.library from Thomas Richter,
      * Pasmo from Julián Albo (must be in your "Path").


ACE · Frequently asked questions

ContentsIndex< BrowseBrowse >




    Frequently asked questions


    ACE supports up to 256 ROMs... but I only see 16 ROM parameters?!

    Arguments actually only exist for the first 16 extension ROMs. If you really
    need to configure ROMs up to 256, you can perform the operation by using the
    "FLASHROM" command from the AREXX port. But keep in mind that the firmware
    only initialize the first 16 foreground ROMs.

    16 ROMs is enough in most cases.

    Why do ACE only manage 512KB of expansion memory?

    This is the standard limit envisaged by Amstrad at the moment of the CPC
    conception. The only way to manage more memory is to use some specific
    extensions (like the 2MB Memcard from RAM7).

    Considering the poor support for this kind of interface, I don't think that
    adding a related emulation would be of any real use.

    What about the quality of the various CRTC types regarding demos?

    To tell you the truth, only the CRTC 1 emulation is fully accurate. others
    support needs to be improved. Please, always prefer CRTC 1 and choose other
    CRTC only for demo specifically requiring it. Next versions of ACE will
    focus on improving CRTC 0 in order to have the same quality than the CRTC
    1. CRTC 2 is not that important and will be done later.

    Of course, the CRTC 3 is mandatory to use the Amstrad Plus emulation and
    works properly.

    I often have warning messages when opening DSK files!

    The DSK format is really awful and the tools used to generate them from the
    real physical discs are often bugged. Practically, the informations
    contained into the DSK files are not sufficient (when they are not simply
    wrong) to permit a really accurate FDC and floppy disc drive emulation.

    A complex on-the-fly fixing mechanism is built into ACE in order to try to
    rebuild the missing or altered informations; the warning messages are
    related to this behavior. You can disable them with the option "NOWARNINGS"
    or by using the "Preferences" menu (fixes are always applied but you will no
    longer be informed about them).

    In a next version of ACE, a brand new disc image format will be introduced
    to avoid all the FDC emulation problems related to the DSK format. Import
    or export to DSK will remain possible when applicable.

    Why an inserted DSK is not modified when I write into it from ACE?

    It is, but not in real time.

    ACE does not manage directly the DSK files. Instead they are loaded and
    converted into an internal structure. When you update the content of
    an image disc from ACE, only this internal structure is modified. The DSK
    file will be modified from this internal structure when it is ejected from
    ACE or if you quit ACE.

    Moreover, ACE will try to keep the original format when it updates the DSK
    file. Standard DSK remain standard and Extended DSK remain extended. If a
    Standard DSK was altered in a way in cannot be saved in this format anymore,
    ACE will ask you to confirm that you want to convert it to Extended DSK.

    What is the difference between "Reset" and "Cold reset"?

    A reset simply emulates a CPC hard reset. It means that all the chipsets and
    the microprocessor are initialized but not the memory. It is just the very
    same behavior you would have on a real CPC with a hard reset button (like
    the one on the Multiface Two or the Hacker).

    A cold reset is like if the CPC was just on-powered, everything including
    the memory is reset.

    By default ACE emulates a CPC6128, how to configure it for another CPC model?

    The main difference between the CPC models is related to the version of the
    firmware and BASIC ROMs installed. The CPC6128 uses version 3 of the
    firmware while the CPC664 uses a version 2 and CPC464 a version 1. The CPC+
    range uses a firmware version 4 with a BASIC 1.40.

    You should take care of the BASIC ROM installed:

    - BASIC 1.00 is only compatible with firmware ROM version 1,
    - BASIC 1.10 is only compatible with firmware ROM version 2,
    - BASIC 1.2x and 1.40 are only compatible with firmware ROM version 3 or 4.

    Is case you really don't want to emulate a CPC6128 but an older CPC model
    you can use the 64KEXPMEMSCHEME tooltype to fit the way 64Kio based models
    are handling expansion RAM. You can also make use of DKTRONICSBUGS tooltype
    to simlate a DK'Tronics expansion RAM (which have some flaws regarding
    internal expansion RAM of the 128Kio base models).

    If you want to emulate a stock CPC464 ou 464plus you can disable the floppy
    disc drive interface though the NODISCINTERFACE tooltype (or using the
    menu).

    If you wan to emulate a stock CPC664/6128 or 6128plus with no external disc
    drive, you can disable the B drive through the menu.

    Eventually, you can configure any amount of memory.

    How to have a smooth 50Hz display like on CPC?

    CPC games and demos are running at 50Hz. To have a perfectly smooth display
    like on a real CPC, you must then have the very same frame rate frequency
    (or a multiple of it) on your system.

    Generally, you will not have a 50Hz graphic mode available by default.
    However it is really easy to create one from MorphOS monitor preferences
    (just be sure that you create a 16, 24 or 32 bits color depth screen).

    If your screen monitor supports 50Hz frame rate (you may need to alter its
    default auto-detected capabilities), just create a new screen mode at
    exactly 50.0801Hz. Then, get the mode ID, and put it into the tool type
    SCREENMODE of ACE (eg. SCREENMODE=0x40920058).

    Till now, each time ACE uses the full screen mode, it will be at 50Hz and
    everything is smooth like on a real CPC!

    Unfortunately, a lot of games and demos do not match the default 50Hz
    frequency... and they will not be smooth again... There is no real
    solution (because the screen frequency can change at any time). Anyway, you
    can get the program's frame rate from the video information window and then
    create a new screen mode at this frequency.


ACE · Known bugs

ContentsIndex< BrowseBrowse >




    Known bugs


    * Writing on weak sectors only alter the first version of the sector. This
      is a crappy side effect of the awful SDK format. This issue will disappear
      as soon as a new file image format is implemented.

    * Full screen mode does not work like expected when the overlay is not
      activated. The "non-overlay" mode is not very interesting, then no real
      work was done on it. Please, use overlay.

    * Audio quality is altered in wild speed mode.

    * Audio can grate while manipulating windows quickly or if a time-consuming
      application is running. ACE only uses AHI in device mode at the moment, it
      does not ensure real time performing with small audio buffers. A library
      mode, more precise, will be implemented in a future version.

    * On PowerBook G4 the arrow keys sometimes hold some other ghost keys when
      pressed at a fast rate and/or at the same time. It obviously occurs while
      playing games. You can restore the keyboard state by pressing RALT (which
      releases all the pressed keys including the ghost ones) but it is not very
      usable during a game. The best solution to avoid this problem is either to
      use an external USB keyboard or a joystick.


ACE · Future

ContentsIndex< BrowseBrowse >




    Future


    Lot of things are planed!

    * Full featured CRTC 0, 2, 3 and 4 support.
    * Implementation of HFE2/IPF disk support instead of DSK.
    * Advanced grabbing capability (sound and video).
    * Support of symbols in disassembler.
    * Graphical memory mapping window.
    * New AREXX commands and new REXX and Lua scripts.
    * Better foreign keyboard support.
    * VirtualNet96 support.
    * New OpenGL rendering engine.
    * Sound in AHI library mode.
    * Time-machine emulation.
    * And more...


ACE · History

ContentsIndex< BrowseBrowse >




    History


    * Version 1.8 (19/11/2014):
      - Added a check on the screen mode to prevent ACE from being launched on
        an incompatible (8 bit) screen.
      - Added drag and drop support on main window and appicon for disc, tape,
        cartridge and snapshot files.
      - Re-introduced experimental automatic frame skip mode and MS=MAXFRAMESKIP
        tooltype (disabled by default).
      - Added screen grabbing feature and related GRABSPATH tooltype and GRAB
        AREXX command.
      - Added shortcut key F11 to save snapshot at will.
      - Added pixel modes and changed buffer management scheme of the display
        module.
      - Added NW alias for NW=NOWARN=NOWARNINGS tooltype.
      - Save an icon with a screen grab when creating a snapshot (can be
        disabled using the NSI=NOSNAPSHOTICONS tooltype or the preferences
        menu).
      - Minor improvements in the window to show information about the currently
        emulated CPC.
      - Fixed some internals regarding update triggers.
      - Fixed some potential memory trash at double start.
      - Added a NAG=NOANTIALIASEDGRABS tooltype to save raw grabs (also
        available from the preferences menu).
      - Changed catalog versioning which is now bumped to version 10.0 and will
        not change anytime soon; that way translators could provide some
        alternative catalog that will remain compatible with upcoming versions
        of ACE (only the newly introduced texts won't be translated using
        alternative catalogs).
      - Fixed an audio shift in sample computation that was introduced with tape
        integration.
      - Added automatic append ".sna" extension to snapshots saved through the
        file requester if missing.
      - Adjusted some compilation flags and removed some misleading casts in
        the code in order to ease AmigaOS 4.1 port.

    * Version 1.7 (15/06/2014):
      - Added tape emulation through audio files (readonly for now).
      - Added TAPESPATH tooltype to choose the tape audio files default path.
      - Added firmware ROM for French CPC464.
      - Replaced CP/M 0.7 ROM that was wrong in previous packages.
      - Added OS=OSVERSION tooltype to choose the operating system version
        number to use (from 1 to 4). Note that any version of the operating
        system is compatible with any CPC model; even version 4 that was used on
        Amstrad Plus is fully compatible with old generation CPC range. By
        default version 3 is used because most softwares are known to work with
        it.
      - Added NDI=NODISCINTERFACE tooltype to totally disable the floppy disc
        drive interface in order to emulate a stock CPC464 or 464plus.
      - Reworked the Preferences menu to make it easier regarding the new
        options.
      - Added a check to disable the Trojan Light Phazer if it was active when
        switching from Amstrad Plus to Amstrad CPC emulation (Trojan Light
        Phazer is only available on Amstrad Plus).
      - Fixed a bug in the Tape2HD wrapper that resulted in a corrupted
        firmware ROM when it was disabled at runtime.
      - Added TAPE tooltype to specify a tape audio file to be inserted at
        startup.
      - Added TAP=TAPEAUTOPLAY tooltype to activate automatic play when a tape
        is inserted.
      - Moved all system ROM used by default in a "System" drawer rather than
        the "ROMs" drawer which is supposed to be used for user's extension
        ROMs.
      - Fixed a small layout but in the disassembler window.
      - Added AREXX commands related to tape management.
      - Fixed a bug in event handling where the tab systems for the devices
        cought some key pressed prior to the emulator engine.
      - Changed some keyboard shortcuts.
      - Added a CPM=AMSDOS tooltype to configure the build-in disc ROM 7 (this
        is different from ROM7 which represents an external ROM 7).
      - Fixed bad help node reference in screen monitor preferences window.
      - Avoid any other brand than Amstrad when Plus emulation is activated.
      - Added a window to show information and picture about the currently
        emulated CPC.
      - Added some icons for ACE's main drawer and for discs, tapes, cartridges,
        snapshots and ROMs drawers.
      - Added some icons to devices tabs.
      - Added preconfigured project icons to emulate stock CPC464, CPC664,
        CPC6128, 464plus and 6128plus.
      - Added some preferences that were only available through tooltypes into
        the menu so that they can be changed at runtime.
      - Changed the way of obtaining the name of the screen to open in full
        screen mode to always match the application instance.
      - Added a sanity check on the breakpoint command at startup (invalid
        command templates are now ignored).
      - Reworked CLI start mode to better deal with PROGDIR:.
      - Fixed a long standing bug during startup that prevented ACE from being
        launched several times from shell or from project icons.
      - Added a request to let the user choose what to do when ACE in already
        running and a new one was launched.
      - Added AREXX command to control ACE iconification.
      - Added filetypes & icons for Ambient to recognize DSK, CPR and SNA files.
      - Added generic multi-parameter FILES tooltype that auto-recognize
        provided file types and load them in the proper way into ACE.
      - Added LM=LAUNCHMODE tooltype to change the default launch mode of ACE
        executable from "Ask user" to "Single" or "Multiple".
      - Added an access to the help guide through the menu (useful when no HELP
        key is available on the keyboard).

    * Version 1.6 (21/04/2014):
      - Fixed a bug in saved execution address in file header when using the
        Tape2HD wrapper.
      - Fixed start-up colors on Gate Array (PulkoMandy).
      - Fixed swapped grey and green color tables for screen monitor emulation
        in CPC emulation mode (Krashan & PulkoMandy).
      - Fixed light devices menu flags to avoid multi-selection.
      - Fixed a bug in the disassembler for block instructions.
      - Added a missing size field in the file headers created through the
        Tape2HD wrapper.
      - Fixed a bug in CASOutChar implementation of the Tape2HD wrapper
        (PulkoMandy).
      - Improved compability of CASInChar implementation of the Tape2HD wrapper.
      - Fixed inconsistencies in English translation.
      - Fixed vocabulary for some French translations.
      - Reworked main window layout to save space.
      - Added DKB=DKTRONICSBUGS tooltype to activate emulation of the DK'Tronic
        expansion memory bugs (DK'Tronics have trouble managing &C3 type memory
        commutation while an upper ROM is connected and does not handle the
        Amstrad Plus ASIC I/O page shadowing).
      - Added 64K=64KEXPMEMSCHEME tooltype to emulate 64Kio based CPC expansion
        memory scheme instead of common 128Kio based scheme (on 64K based CPC
        the main memory is switched when accessing non-existing memory pages
        instead of the build-in 64Kio expansion RAM of the 128Kio based CPC).
      - Slightly decreased the default size of the main window in overlay mode.
      - Added the current beam position to the video information window.
      - Reworked Z80 and CRTC windows.
      - Added user-resetable counters for microseconds, scanlines and frames.
      - Removed breakpoints from the main windows to put them into the Z80
        window.
      - Added breakpoints on bad HBL/VBL timings (Vanity-proof mode!).
      - Added a real step by step mode (no need to enable/disable it by hand
        anymore).
      - Added STEP switch to the START AREXX command to control the step by step
        mode easily.
      - Added missing notifications for some AREXX command to synchronize the
        GUI.
      - Added support of OSD LED in non-overlay mode.
      - Added a fast forward OSD which reflect the wild speed mode status.
      - Fixed again the last known issue with CRTC 1 emulation which was not
        properly fixed in version 1.5.
      - Added little endian CPUs compatibility (Pulkomandy).
      - Added AREXX command to get and reset the user-resetable counters.
      - Added AREXX command to get the type of the last activated breakpoint(s).
      - Added UBC=USERBREAKPOINTCOMMAND tooltype to provide a command that will
        be executed at each encountered breakpoint.
      - Added watcher mode to the configurable breakpoints.
      - Replaced breakpoints threshold condition by a step matching.
      - Moved video monitor preferences from main window to a separate window.
      - Added possibility to give an optional name to the configurable
        breakpoints.
      - Added possibility to provide a complex condition for breakpoint
        matching.
      - Optimized the breakpoints runtime.
      - Fixed several issues in CRTC 0/2/3/4 emulation.
      - Added on-screen break to request the emulator to pause at a pointed
        position on the screen.
      - Added AREXX command to control on-screen break feature.
      - Removed deprecated opcode breakpoint (replaced by the real step by step
        mode).
      - Moved CPC characters conversion from memory editor, Z80 editor and
        Disassembler windows to the menu (it is now global to any window
        displaying characters from the CPC memory).
      - Added access to all existing conversion tables (automatic, English,
        French, Spanish and Danish) instead of only automatic and English ones.
      - Added menu option to enable or disable the decoding of system RST in
        disassembly displays (it was always active till now).
      - Added Danish firmware ROM (CPC6128 version) to the ACE's package.
      - Added Danish language detection for automatic firmware ROM selection at
        start-up.
      - Improved built-in MUI Custom Class to handle the charset conversion in
        input mode when editing through the chars field.
      - Added possibility to retry when updating a DSK failed because of a
        shared lock.
      - Improved address input class in text mode.
      - Added alphabetic sort to Tape2HD catalog display.
      - Added OSD symbol when emulator is paused.
      - Changed default frame rate from 60 to 10 fps in wild speed mode to
        maximize speed-up.
      - Improved AREXX command KEYBOARDSTROKE to handle the charset conversion
        from local to CPC.
      - Added some safety delay in wild speed mode.
      - Added missing support for HSync cancelling while running on CRTC 0/1.

    * Version 1.5 (07/04/2013):
      - Fixed about box text.
      - Fixed minor bug in start-up error handling.
      - Internal disc image format improvements.
      - Z80 source code clean-up.
      - Added possibility to unplug the drive B (CP/M will detect a single drive
        system and will perform accordingly).
      - Fixed the last known issue with CRTC 1 emulation (CRTC 1 might be
        perfect!).
      - Slightly improved CRTC types 0, 3 and 4 emulation.
      - Activated access to all CRTC types (CRTC 0, 2, 3 and 4 are not accurate
        yet).
      - Activated access to all Gate Array variants except 40008.
      - Management of the color differences between the Gate Array variants.
      - Added controls to change brightness and vertical hold settings.
      - Added CPC+ ASIC full support (including all known bugs regarding DMA,
        interruption management and ASIC emulated PPI).
      - Changed some layouts in the memory editor and memory disassembler
        windows.
      - Added CPC+ ASIC MMU modes access to memory and disassembler windows.
      - Fixed a bug in memory editor and disassembler windows which could try to
        display no longer valid ROMs when using REXX ROM configuration commands
        and custom mappings.
      - Changed the way of allocating the emulator data structure to prevent
        potential stack overflow in the future.
      - Fixed a potential bug in emulator's memory initialization.
      - Optimized Z80 I/O port decoder.
      - Slightly increased the default size of the main window.
      - Improved color rendering of the Gate Array analyzer window (it now
        displays the color really used on the emulator side depending on the
        Gate Array version).
      - Added CPR cartridge image file support (a faked cartridge is smartly
        emulated from the CPC firmware & basic ROMs if none is inserted to ease
        switching between CPC & CPC+ at runtime without useless resets just
        because of different ROM configurations).
      - Added CARTRIDGESPATH tooltype to choose the default path of the
        cartridge image files (CPR). It defaults to "PROGDIR:Cartridges/".
      - Added CPR=CARTRIDGE tooltypes to choose the cartridge (CPR) to plug at
        startup (only possible if the emulated CPC is an Amstrad Plus).
      - Added PLUS=CPC+=AMSTRADPLUS tooltype switch to force Amstrad Plus
        emulation at start-up (CRTC and Gate Array tooltypes are then ignored).
      - Fixed a bug that prevented AHI device from being released at exit.
      - Audio management in now handled by the emulator engine class just like
        everything else and any emulator object can now have its own audio
        feedback.
      - Fixed read values on CRTC 3 and 4.
      - Added F9 and F10 key shortcuts to plug/unplug a cartridge.
      - Added light gun emulation through the mouse at request (Trojan Light
        Phazer and Magnum Light Phaser are supported).
      - Added CPC+ ASIC register internal cycle timing management (one pixel
        width split raster update depending on the Z80 update instruction).
      - Added build-in tape to hard disk wrapper to grant access to a share
        directory from the emulated CPC itself (with full speed, long filenames,
        and directory navigation according to the CPC firmware capabilities).
        You can now use directly the content of your hard disk from the CPC tape
        interface and avoid DSK when applicable (only system-friendly softwares
        can be installed). The navigation through the folders is done using the
        OPENIN command (there is no CD command on CPC) in the Amiga way ("/" for
        parent and ":" for root directory). You can of course create files from
        the CPC side, but not directories. You can interrupt a directory
        listing using [ESC] and pause it pressing [CONTROL]. The shared folder
        defaults to "PROGDIR:Share/" and can be configured using the TAPE2HDPATH
        tooltype.
      - Added TAPE2HD tooltype to activate the tape to hard disk wrapper by
        default.
      - Fixed some issues with the internal debug logging system.
      - Added error request when tooltypes are invalid.
      - Fixed an issue with flickering display in wild speed mode (this bug was
        introduced with version 1.4).
      - Fixed quit confirmation window that could lock when several instances of
        ACE were running simultaneously.
      - Added CPC+ support to snapshots (compatible with the standard CPC+ chunk
        of the snapshot format v3).
      - Added ACE signature in saved snapshots.
      - Added CARTRIDGESKEEPEXTROM tooltype to be able to disable the feature of
        ACE which automatically disable any external ROM when inserting a
        cartridge.
      - Added INSERTCARTRIDGE, EJECTCARTRIDGE, GETCARTRIDGDENAME, CRTC and
        GATEARRAY AREXX commands (RickD).
      - Added AMSDOS-like automatic extension fallback at files loading on the
        Tape2HD wrapper to ensure better compatibility with installed softwares.

    * Version 1.4 (18/07/2012):
      - Improved automatic frame skipping.
      - Improved internal events handling.
      - Optimization of the Gate Array emulation code.
      - Added specific emulation of the Gate Array 40007, 40008, 40010 and their
        reimplementations in form of ASIC 40226 and 40489 (only the 40007 &
        40010 are available in the public version at the moment).
      - Fixed a potential issue in the emulation speed regulation (PowerBook G4).
      - When applicable, the audio device is now used to regulate the emulation
        speed to prevent a synchronization issue (PowerBook G4).
      - Removed the audio task (audio management is now simply done in the
        emulation task).
      - Added a frame double buffering to avoid a rare race condition where the
        displayed frame could be damaged by the one in computation.
      - Video frame buffer memory is now directly handled by the emulation task
        instead of the GUI task.
      - Remove the FRAMESKIP option which was really never working properly and
        became useless with the new internal events handling mechanism
      - Added a MANUFACTURER option to choose the brand of the CPC to emulate
        within ISP, Triumph, Saisho, Solavox, Awa, Schneider, Orion and Amstrad
        (Amstrad is used by default, except for German speaking countries where
        Schneider is preferred).
      - Fixed the Gate Array analyzer window which could have a wrong size.
      - Added mapping of "enter" from the CPC numeric keypad on "F12" (useful
        for keyboards without this key on the keypad; for example the
        PowerBook G4).
      - HexEdit.mcc MUI class is now optional (advanced windows which require it
        will just suspend some of their displays if the class is missing).
      - Fixed a bug introduced while migrating from gcc 2 to gcc 4 which
        prevented multiple instances of ACE being in full screen mode at the
        same time.
      - New more user-friendly icon.
      - Fixed some typos in French and English catalogs (RickD).
    * Version 1.3 (14/05/2012):
      - Fixed default font when a custom full screen mode is configured.
      - Avoid opening of full screen larger than the screen resolution.
      - Added again key repeat for shortcuts.
      - Fixes in DSK extensions management.
      - Improved malformed DSK detection.
      - Removed on-the-fly GAP#3 and tracks size recalculation on complex cases.
      - Fixes in FDC read track, read data and write data commands.
      - Added a delay in case of disc swapping without a prior ejection (B.A.T.,
        Fugitif, Crime),
      - Added support of the DSK extension "Offset-info" from Simon Owen in
        read and write modes.
      - Added a confirmation request when a is disc containing modifications
        that cannot be written with the original DSK format/extensions.
      - Fixed a FileInfoBlock misusage in the import DSK routine.
      - Fixed a bug in the Gate Array line counter introduced with version 1.2.
      - Fixed a bug in CRTC vertical synchronization trigger (improves Madness
        Demo),
      - Fixed a bug in the Gate Array horizontal synchronization introduced with
        version 1.2 (The Demo).
      - Added a lock on the video display to avoid MUI push method overhead.
      - Slight improvement in automatic frame skipping mechanism.
      - Fixed a timing bug with OUTD and OUTI when addressing the Gate Array
        (Beb).
      - Added a tool type and a menu option to activate the fast disc emulation
        mode (warning: this option is not compatible with some softwares).
      - Changed the "Color" gadget by a "Lamp" gadget for the disc activity LED.
      - Improved internal MUI notifications.
      - Fixed a bug in I/O port breakpoints management.
      - Simplified CRTC emulation code.
      - Improved offset management on CRTC 1.
      - Added interlaced mode support (register 8).
      - Simplified Gate Array, PSG and video information windows.
      - Changed triggering of offset CRTC register updates within the CRTC
        emulation (Dream Demo End, Impossible).
      - Full management of partial pixels and display artefacts during
        horizontal and vertical synchronization start/end (Camembert 4, Dream
        Demo 6, Dream Demo End, Madness Demo).
      - Fixed a bug in vertical synchronization trigger when vertical total
        adjust is on-the-go (3D Scroll, Take It Easy).
    * Version 1.2 (29/01/2012):
      - Migration from gcc2 to gcc 4.
      - Double-click support in the main window to toggle full screen mode.
      - Add of a disassembler based on the work of Cristian Dinu (support all
        opcodes including undocumented and custom Amstrad firmware RST).
      - Improved Z80 editor window (view of the code from PC and abstract of the
        stack from SP)
      - Improved memory editor window.
      - New fix in CRTC 1 emulation when registers 12 & 13 are modified while
        the additional lines (R5) are displayed (phi2x).
      - Fix of border disabling on CRTC 1 when register 6 is reset at a non-zero
        value during the first line of a split-screen (phi2x).
      - Fix VBL activation trigger while the additional lines (R5) are
        displayed.
      - Improved PSG analyzer, Gate Array analyzer and CRTC editor windows.
      - Add of a new full features disassembler window (easy navigation through
        the code branches, syntax highlight, breakpoints, ...).
      - Better internals between CRTC and Gate Array modules.
      - Better internal notification system between GUI and emulator.
      - Added an fast toolbar for breakpoints configuration in main window.
      - Disabled menu item not active when breakpoints a not enabled.
      - Added a breakpoint management window.
      - Added an AREXX command to configure advanced breakpoints.
      - Better keyboard management.
      - Added on-the-fly charset conversion between local and CPC code page.
      - Added Spanish and Danish v1.0 firmware ROMs in ACE archive.
      - Fix a bug in PSG register selection (phi2x).
    * Version 1.1 (18/09/2011):
      - Added Gate Array's half cycle support (synchronization between Gate
        Array, CRTC and Z80 is now perfect).
      - Fixed sync/display alignment for CRTC 0, 1 & 2 (it was right only for
        CRTC 3 & 4).
      - Fix in CRTC 1 emulation when registers 12 & 13 were modified while
        vertical adjust was managed (R5).
      - Slight improvement in CRTC 0, 2, 3 & 4 emulations (only CRTC 0 & 1 are
        actually activated in the public version).
      - Fix an interrupt management issue when a VSync started while a HSync was
        already running.
      - Fixes in the English translation (Stefan A. Haubenthal).
      - Improvements in the French version.
      - The Graph.mcc class from MorphOS 2.x is now optional (Stefan A.
        Haubenthal).
    * Version 1.0p1 (16/08/2011):
      - Omitting arguments OFFSCREENCOLOR or SCANLINECOLOR generated a hit in $0
        (Grzegorz Kraszewski).
      - Some bad hits occurred on foreign systems when no catalog was matching
        the locale (Grzegorz Kraszewski).
    * Version 1.0 (15/08/2011) :
      - First public version.


ACE · Credits

ContentsIndex< BrowseBrowse >




    Credits


    Architecture and coding:
        * Philippe 'OffseT' Rimauro - mailto:offset@cpcscene.net

    Additional coding:
        * 'RickD'

    Icons:
        * David 'Davebraco' Braconnier

    Tests :
        * David 'Davebraco' Braconnier
        * 'RickD'
        * Antoine 'Tony' Reneaut - mailto:tony@cpcscene.net

    Documentation and translation:
        * Philippe 'OffseT' Rimauro - mailto:offset@cpcscene.net

    Thanks to:
        * Julien 'Targhan' Nevo for his support on PSG emulation.
        * Matthieu 'Grim' Gauzentes for his accurate electronic measures from
          the real CPC chips for color and audio balance.
        * Gilles 'Zik' Rimauro for his accurate electronic measures from the
          the real CPC for synchronizations signals, and his advice on ACE look
          and feel.
        * Reloaded development team; their source code helped me to see how to
          do some things, but also how not to do some others.

    Tools:
        * MorphOS SDK and its numerous examples.
        * Cubic IDE from Dietmar Eilert.
        * SimpleCat from Guido 'Geit' Mersmann.
        * DT2Raw from Christian 'tokai' Rosentreter.
        * Bin2C from Guido 'Geit' Mersmann.
        * Dt2RawImage from Ilkka 'itix' Lehtoranta.
        * lzmaLoader from Harry 'Piru' Sintonen.


ACE · AREXX interface

ContentsIndex< BrowseBrowse >




    AREXX interface 


    ACE exposes an extended AREXX interface that will allow you to do almost
    everything you want! With the help of REXX, everything is possible,
    everything can be automated! Your creativity will have no limits!

    Here is the list of the available commands on the ACE's AREXX port.

    Application commands:

    * VERSION: Return the ACE version number.

    * HIDE: Iconify ACE.

    * SHOW: Show ACE if it was iconified.

    * QUIT: Quit ACE.

    * FULLSCREEN ACTIVATE/N,TOGGLE/S: Return the full screen status. If ACTIVATE
      is set, TOGGLE is ignored. Setting ACTIVATE at 1 activates the full screen,
      0 go back to the windowed mode. TOGGLE switches the current mode.

    * ICONIFY ACTIVATE/N,TOGGLE/S: Return the full screen status. If ACTIVATE
      is set, TOGGLE is ignored. Setting ACTIVATE at 1 iconifies ACE,
      0 go back to the windowed mode. TOGGLE switches the current mode.

    * SCREENTOFRONT: Put the screen ACE is opened on to front.

    * SCREENTOBACK: Put the screen ACE is opened of to back.

    * WINDOWTOFRONT: Put ACE's main window to front.

    * WINDOWTOBACK: Put ACE's main window to back.

    * WARNINGS ACTIVATE/N,TOGGLE/S: Return or change the warnings display
      preference (warnings are about the DSK or SNA loading).

    * KEYJOY ACTIVATE/N,TOGGLE/S: Return or change the keyboard mapping of
      joystick 0 preference.

    Emulator commands:

    * RESET HARD/S: Reset or reboot the emulator.

    * PAUSE: Pause the emulator.

    * START STEP/: Restart the emulator. If TYPE is specified, only one single
      Z80 instruction will be executed (step by step mode).

    * CRTC CRTC=TYPE/N : If TYPE is specified, select the CRTC type to
      emulate (0 to 4, 3 is Amstrad Plus). If not, return the current emulated
      CRTC type.
      Warning: the Gate Array version might be changed too if it is not
      compatible with the new CRTC type.

    * GATEARRAY GATEARRAY=VERSION/N : If VERSION is specified, select
      the Gate Array version to emulate (40007, 40010, 40226 or 40489, the last
      one is the Amstrad Plus). If not, return the current emulated Gate Array
      version.
      Warning: the CRTC type might be changed too if it is not compatible with
      the new Gate Array version.

    * WILDSPEED ACTIVATE/N,TOGGLE/S: Return or change the wild speed
      preference.

    * AUDIO=SOUND ACTIVATE/N,TOGGLE/S: Return or change the audio preference.

    * INSERTDISC FILE/A,DRIVE: Insert a disc image FILE in to the drive DRIVE
      (0/1 or A/B, drive A is the default one).

    * EJECTDISC DRIVE: Eject the disc image from the drive DRIVE.

    * GETDISCNAME DRIVE: Return the file name of the disc image inserted in the
      drive DRIVE.

    * INSERTTAPE FILE/A TAP=TAPEAUTOPLAY/S : Insert the audio file FILE in the tape
      reader and go to play if TAPEAUTOPLAY is specified.

    * EJECTTAPE : Eject the audio file from the tape reader.

    * PLAYTAPE : Press play on the tape reader.

    * STOPTAPE : Press stop on the tape reader.

    * GETTAPENAME : Return the name of the audio file inserted in the tape reader.

    * INSERTCARTRIDGE FILE/A FORCE/S : Insert a cartridge CPR FILE in the
      cartridge port (Amstrad Plus only). FORCE will switch the ACE in Amstrad
      Plus mode if it was not the case.

    * EJECTCARTRIDGE : Eject the cartridge image file inserted (Amstrad Plus only).

    * GETCARTRIDGENAME : Return the file name of the cartridge image inserted in
      the cartridge port (Amstrad Plus only).

    * LOADSNA FILE/A: Load a snapshot file named FILE.

    * SAVESNA FILE/A: Save a snapshot of the current emulator state into a file
      named FILE.

    * GRAB FILE RAW/S : Save a screen grab corresponding to what is currently
      displayed by the emulated CPC. If FILE is omitted then the grab
      is automatically saved in the default directory and the used file name is
      returned. If RAW is specified, then a non anti-aliased grab is saved
      (aspect ratio will not be handled either).

    * FLASHROM FILE/A,ROM/A/N: Load a file named FILE as an upper ROM number
      ROM.

    * REMOVEROM ROM/A/N: Remove the upper ROM number ROM.

    * RAWKEYPRESS KEY=CODE/A/N: Simulate a key press of the key CODE (being the
      physical key number from the CPC keyboard layout).

    * RAWKEYRELEASE KEY=CODE/A/N: Simulate a key release of the key CODE.

    * RAWKEYSTROKE KEY=CODE/A/N,DELAY/N: Simulate a key press then release of
      the key CODE (physical key number of the CPC keyboard) by waiting a
      DELAY (in microseconds) between the actions. The default DELAY is 19968
      microseconds (one frame), the max value is 1000000 microseconds (one
      second).

    * KEYBOARDSTROKE STR=STRING/A/F: Simulate a full key press and release from
      a string STRING. It is different from RAWKEYPRESS, RAWKEYRELEASE and
      RAWKEYSTROKE because this command depend on the type of keyboard (AZERTY ou QWERTY)
      and the installed firmware ROM is used to perform the translation.

    Cross-development commands:

    * POKE ADR=ADDRESS/A/N,VAL=VALUE/A/N,LINEAR/S: Poke a byte VALUE at the
      address ADDRESS in the emulated CPC memory. If LINEAR is set, the address
      will be considered as linear to the full CPC memory (0x0000-0xFFFF = main
      RAM, 0x10000-0x1FFFF = first 64KB page of the extension RAM, ..).

    * PEEK ADR=ADDRESS/A/N,LINEAR/S: Peek a byte.

    * LOAD FILE/A,ADR=ADDRESS/N,OFT=OFFSET/N,LEN=LENGTH/N,LINEAR/S,RAW/S:
      Load the content FILE from OFFSET, with a maximal LENGTH, at ADDRESS. If
      RAW is set, then any binary header will be ignored. ADDRESS is mandatory
      if no header is present.

    * SAVE FILE/A,ADR=ADDRESS/A/N,LEN=LENGTH/A/N,EXE=EXECUTION/N,LINEAR/S,RAW/S:
      Save a part of the CPC memory into a FILE.

    * OUT PORT/A/N,VAL=VALUE/A/N: Put a byte VALUE on the CPC port address
      PORT.

    * INP PORT/A/N : Read a byte from the CPC port address PORT.

    * BREAKPOINTS ACTIVATE/N,TOGGLE/S: Return or set the breakpoints
      preference.

    * SETBREAKCONDITIONS VBL/S,HBL/S,OPCODE/S,INT=INTERRUPT/S,DISC=DISCACCESS/S,
      BADVBL/S,BADHBL/S: Set or unset a break condition.

    * ADDBREAKPOINT TYPE/A,ADR=ADDRESS/A/N,ADRMASK=ADDRESSMASK/N,ACCESS,
      VAL=VALUE/N,VALMASK=VALUEMASK/N,CONDITION,STEP/N,NAME,WATCHER/S: Set a
      breakpoint of type TYPE (EXECUTE, MEMORY ou PORTS) named NAME for an
      access ACCESS (READ-ONLY, WRITE-ONLY ou READ-WRITE), at the address
      ADDRESS, depending on a mask ADDRESSMASK, for a value VALUE with a mask
      VALUEMASK every STEP under the condition CONDITION.
      Note 1: If WATCHER is specified the breakpoint will not stop and will just
      update the match count.
      Note 2: If a breakpoint with the same options exists, then the
      CONDITION, STEP, NAME and mode (WATCHER) are updated.
      Note 3: Value and mask are ignored  for execution breakpoints.
      Note 4; Default address mask value is 0xFFFF (it means "exact match").
      Note 5: Default value mask is 0x00 (it mean "any value match").

    * REMOVEBREAKPOINT TYPE/A,ADR=ADDRESS/N,ADRMASK=ADDRESSMASK/N,ACCESS,
      VAL=VALUE/N,VALMASK=VALUEMASK/N,ALL/S: Remove a breakpoint of type
      TYPE (EXECUTE, MEMORY or PORTS) for an access ACCESS (READ-ONLY, WRITE-ONLY
      or READ-WRITE), at the address ADDRESS, with a mask ADDRESSMASK, for a
      value VALUE using a mask VALUEMASK. If ALL is specified then
      all the breakpoints of type TYPE are deleted (other parameters are then
      ignored).

    * AF VAL=VALUE/N: Get or set the AF register of the Z80.
    * BC VAL=VALUE/N: See AF.
    * DE VAL=VALUE/N: See AF.
    * HL VAL=VALUE/N: See AF.
    * SP VAL=VALUE/N: See AF.
    * PC VAL=VALUE/N: See AF.
    * AFx VAL=VALUE/N: Secondary register; see AF.
    * BCx VAL=VALUE/N: Secondary register; see AF.
    * DEx VAL=VALUE/N: Secondary register; see AF.
    * HLx VAL=VALUE/N: Secondary register; see AF.
    * IX VAL=VALUE/N: See AF.
    * IY VAL=VALUE/N: See AF.
    * I VAL=VALUE/N: 8 bit register; see AF.

    * GETUSERCOUNTER TYPE/A : return the current value of the user counter of
      type TYPE.
      Theses counters counters are associated to the ones from the Z80 window and the
      possible values are:
        . MICROSECONDS for the microseconds counter.
        . LINES for the line counter.
        . FRAMES for the frame counter.

    * RESETUSERCOUNTER TYPE/A : reset remet the user counter specified with
      TYPE.
      The possible values are the same than from GETUSERCOUNTER.

    * GETLASTBREAKTYPE : return the status for the last activated
      breakpoint(s). This option is very useful inside scripts executed at
      breakpoints activation because it allows you to know in which conditions
      the break occurred. The status is returned in the form of a string formated
      as followed:

      [Execution][I/O Port][Memory][Interrupt][HBL][VBL][Bad HBL][Bad VBL][Disc access][Step by step][On screen break]

      Each section under brackets is related to a type of breakpoint and will
      contain "-" if the associated type of breakpoint was not active during the
      last break. If it was active, then the related section will contain its
      name if it was named or a string with the name of the type of breakpoint
      if it was not.

    * ONSCREENBREAK X/A/N,Y/A/N : set a breakpoint for the display position
      X,Y. This position are related to the video frame fly
      and do not depend of graphic resolution.
      Note: this breakpoint is related to the breakpoint "Break on the
      mouse clicked position" available from the "Monitoring" menu and only one
      can be set at once.


ACE · Tape to hard disc wrapper

ContentsIndex< BrowseBrowse >




    Tape to hard disc wrapper


    ACE allows you to share a directory from your hard disc with the emulated
    CPC through the tape interface. With this feature you can read and write
    files of a directory of your choice . Loading operations are in full speed
    (from the CPC point of view the files are loaded/saved with no delay), you
    can use long file names up to 16 characters (firmware maximum limit), and
    you have access to subdirectories.

    Configuring the wrapper:

    Once the option "Tape to hard disk wrapper" activated from the ACE
    configuration menu, you then have access to the shared directory through
    the tape interface. You can also use the tooltype TAPE2HD to activate the
    wrapper by default.

    If a disk ROM is installed (which is generally the case) you have to use
    the command "|TAPE" to use the tape interface (the "|DISC" command switches
    back to the disc interface). Once done, all the file operation commands
    (CAT, LOAD, SAVE, OPENIN, OPENOUT...) will grant you access to the shared
    directory of you hard disc.

    This directory defaults to "PROGDIR:Share/" but you can change it by using
    the TAPE2HDPATH tooltype. For security reasons it is not possible to access
    to files outside this directory (except the ones from subdirectories).
    Moreover only files compatibles with the 16 characters file name limit are
    visible (the others are hidden and a message inform you about their
    existence).

    Using the wrapper:

    The CAT command which lists the files might display a lot of entries if your
    directory is full of stuff. The scrolling could then prevent you from
    reading the first files of the list. To solve this issue, you can use the
    [CONTROL] key to hold the catalog display. Also, you can press [ESC] to
    simply cancel the catalog listing at any time.

    Moreover, the catalog is displayed in a detailed way much more useful than
    the AMSDOS defaults.

    Here is an example:

    [HOME]
    Favorite Games/  [DIR]                 |
    Favorite Demos/  [DIR]                 |
    Menu.bas         11938 B$0170 0000 2E22|
    Music.bin         4055 B&6380 4000 0480|
    Music.wav            4MB*Data          |
    Readme.txt        3456 B*ASCII         |

    And how to understand it:

    * The first line displays under brackets the name of the current
    directory; HOME indicates the root of the shared directory.
    * The keyword [DIR] indicated a directory entry.
    * The size of the files is displayed in bytes (B), kilobytes (KB),
      megabytes (MB) and even gigabytes (GB) depending on their size.
    * The type of the files is displayed using the common firmware flags:
        $ For a BASIC file.
        & For a binary file.
        % For a protected file.
        * For a non-system file (ASCII or raw data).

    Finally, you have to know that the CPC operating system does not allow
    directory browsing ; no command exists for such operation. To access to the
    directories using the hard disc wrapper, you simply have to use the "OPENIN"
    command with the name of the directory to enter followed by a "/" sign
    (anyway, directories are always displayed with this trailing slash in the
    catalog). Please note that the directory names are then limited to 15
    characters instead of 16. To go back to the parent directory, you just have
    to use OPENIN"/", while OPENIN":" will put you directly into the root shared
    directory (jut like in AmigaShell through the CD command).

    During file opening in reading mode, in order to be more compliant with
    existing programs, the file extensions management defaults in the same way
    the AMSDOS does. If a file name is less than 8 characters long, reading
    attempts will be done with pending ".", ".bas" then ".bin" extensions.

    During file opening in write mode, no default extension management is done.
    (like for the original tape interface).

    Technical details:

    From a technical point of view, this wrapper is implemented with the help
    of a modified firmware ROM and an Z80 illegal instruction. When the tape to
    hard disc wrapper is disabled, the emulation is not altered at all. Once
    activated, he firmware ROM is patched on the fly to make use of the special
    illegal instruction. Then, every time the Z80 emulation encounters this
    instruction during the firmware ROM code execution, the wrapper specific
    functions are engaged.

    Warning: the wrapper will not work if you do not use of the official
    Amstrad firmware ROM version (all of them are compatibles).


Converted using GuideML 3.15