" /> 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.

    * 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.

    * 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.

    * 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.