ARexx is a port of the REXX programming language for the Amiga computer, and was developed in 1987 by William S. Hawes. ARexx is as REXX, an interpreter -based programming language. Programs that are developed in ARexx, called script or macro programs.

Most Amiga programs have the ability to execute ARexx scripts to extend the functionality or to provide individual solutions to problems on the ARexx port.

Arexx means there is the possibility that two programs to communicate through their respective arexx port with each other to use each of the other functions of the program.

For example, an ARexx script can fetch information from a database, which are then imported into a spreadsheet, to accept the final result automatically in a word processing program. ARexx is therefore primarily intended to automate repetitive tasks.


ARexx was developed in 1987 by William S. Hawes of Wishful Thinking Development and came about in 1990 with the OS2.04 by Commodore for the Amiga used. ARexx is mainly based on REXX, which was developed by Mike Cowlishaw at IBM in the 1980s for mainframe computers ( mainframes ) to CMS operating systems. ARexx rudimentary does not differ from the IBM REXX language, even though it was written specifically for the Amiga and its surroundings. Since the Amiga OS3.5 Workbench offers its own ARexx port, what system functions can be used by ARexx.

How does ARexx

ARexx is an interpreter based language, which means that ARexx scripts during their term, so while they are running, by an interpreter, the RexxMast program to be translated into machine language. Thus, the scripts are ready to use immediately, without having to compile it as in C or C before. The disadvantage of this interpreter language is that it is being processed relatively slowly and always requires the interpreter for execution. Since ARexx does not require types, each variable, a text, a number or any string may be, these variables need not be declared in advance. The RexxMast reads ARexx scripts as a text file and execute it from command by command. RexxMast controlled automatically combining the resources and intercepts errors. ARexx uses the AmigaOS own environment and utilizes both the multi-tasking, the installed libraries ( libraries) and process communication. For this purpose between the message ports, which makes a program available messages ( messages) sent, which can then be picked up and processed by the respective program. The following sequence is followed:

  • When the program starts an application program opens a message port
  • The program waits for the receipt of a message (message)
  • The operating system tells the program that a message has been sent to its message port
  • The program performs the requested action
  • The program informs the sender of the message that the message (message) has been received and processed. It is in this case supplied either a return value, or sending the data requested.

The instruction set of ARexx is kept very simple and mainly from commands to manipulate strings ( strings). Since there are a variety of additional extensions for ARexx, it is even possible to have a user interface ( GUI) to create by means of ARexx to directly contact the user in contact, thereby obtaining inputs or queries.

Building a ARexx script

Each ARexx script consists of at least one comment line, the target script must always start with a comment line (for historical reasons):

/ * This is my program * / This comment line tells the RexxMast that it is in the present script is an ARexx script. Additional comment lines are ignored by RexxMast, but of course serve the intelligibility, especially when you want to edit the script itself again after weeks or months.

After the comment line starts the actual program:

SAY " Hello World" In this case the text "Hello World" would be output to the console.

Internal or external ARexx commands

ARexx offers an extensive library of predefined functions. These functions are always available and perfectly matched to the internal data structure of the AmigaOS, which is why they are sometimes differ greatly from the REXX command set or not on there (example: ADDLIB ()).

There are a number of additional libraries ( libraries) that increase the functionality of ARexx significantly to these predefined functions. This additional libraries are reloaded from the ARexx script out and then are available. Here are some examples:

  • Rexxreqtools.library
  • Tritonrexx.library
  • Rexxtricks.library

However, this represents only a small glimpse of the existing libraries with which you can expand ARexx.

Compile ARexx scripts

Widespread was the opinion that it is possible to compile ARexx scripts. There were also two programs for RexxMasher and ExecRexx. However, these two programs were not a compiler, but only away all comment lines from the script, the script is encoded and inserted a program added to the execution of the script. When the program starts, the script has been decoded again, and it was still the RexxMast necessary to run it. By removing the comment lines could, however, occur in very extensive ARexx scripts that the " coded " script no longer worked properly.

KIM- 1 • PET CBM 2001 • 3000 • 4000 • CBM CBM 8000 • MMF 9000

CBM 500 CBM * • 600 • 700 • CBM CBM 900 *

VC 10 VC 20 • • C64 (SX, GS †) • 264 series ( C16, C116, Plus / 4) • C128 • C65 *

1000 • sidecar • 500 • 2000 • CDTV † • 600 • 1200 • 4000 • • 3000/T/UX CD ³ ² †

• PC-1 PC - 10 and PC -60 • x86LT • A1060

Datasette • CBM floppy drives • VC15xx ( VC1540/41, VC1551, VC1570/71, VC1581 ) • SFD100x ( SFD1001, SFD1002 ) • CBM 2020-8250 • A570 • A590 • A3070

MPS- MPS Series • 801 • 1000 • MPS MPS 1500C • VC1520 • CBM -8000 Series • CBM 4022

Zorro bus • Watches • Port WOM • RAM Expansion Unit • Commodore mouse • monochrome and color monitors • A10 speakers • Multi-User Systems ( MBS)

Writing and desktop calculators • LED watches 2000K/3000H • † • Chessmate

MOS Technology VIC • • VIC II • TED • VDC • SID • PIA • VIA • TPI • CIA • ACIA • Agnus ( blitter, Copper) • Paula • EHB mode • HAM mode


Commodore BASIC • Commodore Basic V2 • Kernal • CBM ASCII ( PETSCII ) • Commodore GEOS • DOS • AmigaOS • Kickstart • Workbench • ARexx • AmigaGuide • AMIX

*: Only prototype †: Console

  • Amiga programming language
  • Scripting language
  • AmigaOS operating system component