AROS ​​Vision

Modern and free Amiga-Compatible Experience on Amiga and PC

ACE works best in Scalos because the script to compile the sourcecodes needs REXXMAST started that only runs in Scalos. If you are not in Scalos then start Shell, type in "scalos" and "enter,", then type in "reset" and "enter"

If you booted in Scalos you must open directory "System" and then start "Shell". Then put in "ace:examples" and then enter. Next "bas helloworld.b" and enter. Then source of "helloworld.b" is compiled and binary can be started by "helloworld" and enter. ".b" are ACE source files and can be changed with any text editor.

with "edit <sourcecodefile> you can open the source code in editor and change it

ACE Basic

ACE BASIC is based on Amiga Basic. It imlements the commands and adds more to it. Reference ​of Amiga Basic do you find here (german)

Compact ACE BASIC Command Reference 

This compact reference is based on the attached ACE v3.0.1 command and function reference. Commands and functions marked with an asterisk in the source are ACE-specific additions and are not part of AmigaBASIC. 

Command / Function Short description 

ABS Returns the absolute value of a number. 
ADDRESS Declares address variables, mainly for pointer or system-level values. 
ALLOC Allocates a block of memory and returns its address. 
AND Boolean 
AND operator. 
AREA Defines polygon points for later filling. 
AREAFILL Fills a polygon defined with AREA. 
ARG$ Returns a command-line argument as a string. 
ARGCOUNT Returns the number of command-line arguments. 
ASC Returns the ASCII code of the first character of a string. 
ASSEM Embeds assembly code in an ACE program. 
ASSERT Stops execution if a condition is false. 
ATN Returns the arctangent of a number. 
BEEP Produces a short alert sound. 
BEVELBOX Draws a Workbench-style 3D bevel box. 
BIN$ Returns the binary string representation of a number. 
BIND Creates a closure by binding arguments to a SUB. 
BLOCK Groups several statements where one statement is expected. 
BREAK Controls 
ON BREAK event trapping. 
CALL Calls a subprogram, external routine, library function, or machine-code routine. 
CALLBACK SUB modifier for Amiga Hook callbacks. 
CASE Selects and executes the first true expression block. 
CHDIR Changes the current directory. 
CHIPSET Returns the detected Amiga graphics chipset type. 
CHR$ Returns a one-character string from an ASCII code. 
CINT Converts a value to a short integer. 
CIRCLE Draws or fills a circle or ellipse. 
CLEAR ALLOC Frees all memory allocated with ALLOC. 
CLNG Converts a value to a long integer. 
CLOSE Closes one or more open files. 
CLS Clears the current output window or screen. 
COLOR Sets foreground/background color or direct RGB foreground color. 
COMMON Declares exported global/static variables. 
CONST Defines numeric constants. 
COS Returns the cosine of a number in radians. 
CSNG Converts a value to single precision. 
CSRLIN Returns the current print line in a user-defined screen or window. 
CSTR Converts a memory address into a string. 
DATA Stores constants for later READ statements. 
DATE$ Returns the current date as a string. 
DAY Returns the day of the week after 
DATE$ has been used. 
DECLARE Declares library functions, external functions, SUBs, or structures. 
DEF FN Defines a simple function. 
DEFxxx Sets default variable types by initial letter. 
DIM Declares and dimensions arrays. 
END Ends the program and performs cleanup. 
ENDSWITH Tests whether a string ends with a suffix. 
EOF Tests whether an open file has reached end of file. 
EQV Boolean equivalence operator. 
ERR Returns and clears the last error code.
ERROR Controls ON ERROR event trapping. 
EXIT FOR Exits a FOR loop early. 
EXIT REPEAT Exits a REPEAT..UNTIL loop early. 
EXIT SUB Leaves the current subprogram. 
EXIT WHILE Exits a WHILE..WEND loop early. 
EXP Returns e raised to a power.
EXTERNAL Declares an external function or variable. 
FILEBOX$ Opens a file requester and returns the selected path. 
FILES Displays or stores a directory listing. 
FIX Truncates a number or controls numeric rounding output. 
FMT$ Returns a formatted string using printf-style formatting. 
FONT Changes the font in the current output window. 
FOR..NEXT Repeats statements using a loop counter. 
FRE Returns available system memory information. 
FREE Frees one memory block allocated with ALLOC. 
GADGET Creates, changes, or reads GUI gadget information. 
GADGET (GadTools) Creates GadTools-based GUI gadgets. 
GADGET CLOSE Removes a gadget from the current window. 
GADGET FONT Sets the font for later GadTools gadgets. 
GADGET GETATTR Reads a GadTools gadget attribute. 
GADGET MOD Modifies a proportional gadget. 
GADGET ON Controls ON GADGET event trapping. 
GADGET OUTPUT Selects a gadget for reading current gadget information. 
GADGET SETATTR Changes attributes of an existing GadTools gadget. 
GADGET WAIT Waits until a gadget is selected. 
GET Reads a record from a random-access file into a structure. 
GLOBAL Declares module-wide static variables. 
GOSUB..RETURN Jumps to a subroutine and returns afterward. 
GOTO Transfers execution to a label or line. HANDLE Returns the DOS file handle for an open file. 
HEX$ Returns the hexadecimal string representation of a number. 
IF Executes code conditionally. 
IMP Boolean implication operator. 
INKEY$ Returns a pending keystroke or an empty string. 
INPUT Reads values from the keyboard. 
INPUT # Reads data items from a sequential file. 
INPUT$ Reads a specified number of characters from a file. 
INPUTBOX Shows a requester and returns a numeric value. 
INPUTBOX$ Shows a requester and returns a string value. 
INSTR Finds the first occurrence of one string in another. 
INT Returns the largest integer less than or equal to a number. 
INVOKE Calls a function pointer or closure indirectly. KILL Deletes a file or directory. 
LCASE$ Returns a string converted to lowercase. 
LEFT$ Returns the left part of a string. 
LEN Returns the length of a string. 
LET Assigns a value to a variable; often optional. 
LIBRARY Opens or closes Amiga shared libraries. 
LINE Draws lines or boxes. 
LINE INPUT # Reads one line from a sequential file. 
LOC Returns the current file position. 
LOCATE Moves the print position in a screen or window.
LOF Returns the length of an open file. 
LOG Returns the natural logarithm. 
LONGINT Declares long integers or converts strings to long integers. 
LPAD$ Left-pads a string to a given width. 
LTRIM$ Removes leading whitespace from a string. 
MENU Creates, modifies, or reads menu selections. 
MENU CLEAR Clears the menu strip of the current output window. 
MENU ON Controls ON MENU event trapping. 
MENU WAIT Waits for menu activity. 
MESSAGE CLEAR Clears a message channel. 
MESSAGE CLOSE Closes a message channel. 
MESSAGE OPEN Opens a message channel for reading or writing. 
MESSAGE READ Reads a message from a channel. 
MESSAGE WAIT Waits for a message-channel event. 
MESSAGE WRITE Writes a message to a channel. 
MID$ Returns or replaces a middle part of a string. 
MOD Modulo arithmetic operator. 
MOUSE Returns mouse button and pointer information. 
MOUSE ON Controls ON MOUSE event trapping. 
MSGBOX Displays a requester with one or two buttons. 
NAME Renames a file or directory.
NOT Boolean 
NOT operator. 
OCT$ Returns the octal string representation of a number. 
OPEN Opens a file for input, output, append, or random access. 
OPTION Sets ACE compiler options inside the source file. 
OR Boolean 
OR operator. 
PAINT Flood-fills an enclosed region. 
PALETTE Changes palette colors on the current screen. 
PATTERN Sets or restores line and area fill patterns. 
PEEKx Reads 8-, 16-, or 32-bit values from memory. 
POINT Returns the color value of a screen point. 
POKEx Writes 8-, 16-, or 32-bit values to memory. 
POS Returns the current print column. 
POTX Reads horizontal potentiometer/game-port information. 
POTY Reads vertical potentiometer/game-port information. 
PRINT Prints text or values to the current output window. 
PRINT # Writes printed output to a file. 
PRINTS Prints to an Intuition screen/window at the current position. 
PSET Plots a point on the current screen or window. 
PTAB Moves print position to a pixel-based horizontal position. 
PUT Writes a structure record to a random-access file. 
RANDOMIZE Seeds the random number generator. 
READ Reads values from DATA statements. 
REM Adds a comment to the program. 
REPEAT$ Repeats a string a specified number of times. 
REPEAT..UNTIL Repeats statements until a condition becomes true. 
REPLACE$ Replaces occurrences of one string with another. 
RESTORE Resets the DATA pointer to the first DATA item. 
REVERSE$ Returns a string with characters reversed. 
RIGHT$ Returns the right part of a string. 
RINSTR Finds the last occurrence of one string in another. 
RND Returns a pseudo-random number between 0 and 1. 
RPAD$ Right-pads a string to a given width. 
RTRIM$ Removes trailing whitespace from a string. 
SADD Returns the address of a string expression. 
SAY Speaks phoneme strings or reports speech status. 
SCREEN Creates screens or returns screen-related pointers/information. 
SCREEN BACK Sends a screen behind other screens. 
SCREEN CLOSE Closes a screen. 
SCREEN FORWARD Moves a screen to the front. 
SCROLL Scrolls pixels inside a rectangle. 
SERIAL Returns information about an open serial channel. 
SERIAL CLOSE Closes a serial channel. 
SERIAL OPEN Opens a serial channel with baud rate and settings. 
SERIAL READ Reads bytes from a serial channel. 
SERIAL WRITE Writes bytes to a serial channel. 
SGN Returns the sign of a number. 
SHARED Makes variables, arrays, or structures visible inside SUBs. 
SHL Performs arithmetic bit shift left. 
SHORTINT Declares short integer variables.
SHR Performs arithmetic bit shift right. 
SIN Returns the sine of a number in radians. 
SINGLE Declares single-precision floating-point variables. 
SIZEOF Returns the size of a type, variable, array, or structure. 
SLEEP Waits for user activity or timer events. 
SLEEP FOR Pauses execution for a number of seconds. 
SOUND Plays a sound using period, duration, volume, and voice. 
SPACE$ Returns a string of spaces. 
SPC Returns spacing for PRINT output. 
SQR Returns the square root of a number. 
STARTSWITH Tests whether a string starts with a prefix. 
STICK Returns joystick direction information. 
STOP Ends the program like END. 
STR$ Converts a number to a string. 
STRIG Returns joystick button information. 
STRING Declares string variables with optional size or address. 
STRING$ Creates a repeated-character string. 
STRUCT Defines a structure data type. 
STYLE Changes text style such as bold, italic, or underline. 
SUB..END SUB Defines a subprogram, callback, invokable 
SUB, or task procedure. SWAP Swaps the values of two variables or compatible objects. 
SYSTEM Exits with a return code, runs a system command, or returns OS version. 
TAB Moves PRINT output to a specified column. 
TAN Returns the tangent of a number in radians. 
TASKPROC SUB modifier for Exec task entry points. 
TIME$ Returns the current time as a string. 
TIMER Returns seconds elapsed since midnight. 
TIMER ON Controls ON TIMER event trapping. 
TRANSLATE$ Converts words into a phoneme string. 
TRIM$ Removes leading and trailing whitespace from a string. 
TROFF Disables SUB tracing at runtime. 
TRON Enables SUB tracing at runtime. 
UCASE$ Returns a string converted to uppercase. 
VAL Converts a string to a numeric value. 
VARPTR Returns the memory address of a variable or object. 
WAVE Defines a waveform for SOUND. 
WHILE..WEND Repeats statements while a condition is true. 
WINDOW Creates windows or returns window information. 
WINDOW CLOSE Closes a window. 
WINDOW ON Controls ON WINDOW event trapping. 
WINDOW OUTPUT Selects the current output window. 
WRITE # Writes comma-separated values to a file. 
XOR Boolean exclusive OR operator.