home *** CD-ROM | disk | FTP | other *** search
Text File | 1993-07-10 | 51.0 KB | 1,414 lines |
- ---------
- ACE v1.1a
- ---------
-
- ------------------------------
- Command and Function Reference
- ------------------------------
-
- This document consists of a description of currently implemented commands
- and functions.
-
- As with AmigaBASIC, the case of commands and functions is of no consequence.
-
- NOTES: - [] means that a parameter or command component is optional.
- - <> surround literals, names and expressions.
- - .. implies that statements are expected to follow.
-
- - Commands and functions marked with an asterix are found only in ACE,
- not AmigaBASIC.
- - Standard trigonometric functions take their arguments in radians.
-
- - EOS = end-of-string character (ASCII 0).
- - MAXSTRINGLEN currently equals 1024. The last character in a string
- is EOS, so if you want a string which holds 1024 characters, you
- need a 1025 (not 1024) byte string (see STRING command).
-
- --------------------------------------------------------------------------------
-
- ABS - syntax: ABS(n)
- - Returns the absolute value of n.
-
- ADDRESS * - syntax: ADDRESS <identifier>[,..]
- - Declares and initialises one or more variables of type
- address. In fact, this data type is synonymous with the
- long integer (see LONGINT) data type. It's main purpose
- is to make clear just what sort of data is going to be
- stored.
- - See also SUB, STRUCT.
-
- ALLOC * - syntax: ALLOC(<bytes>,<memory-type>)
- - This is ACE's hassle-free memory allocator.
- - You can call this function to get the address of a block
- of memory at least <bytes> bytes in size.
- - The <memory-type> argument can be one of the following:
-
- 0 = CHIP memory
- 1 = FAST memory
- 2 = PUBLIC memory
- 3 = CLEARED CHIP memory
- 4 = CLEARED FAST memory
- 5 = CLEARED PUBLIC memory
-
- and if a value outside this range is specified, ALLOC
- defaults to CLEARED PUBLIC memory.
- - CLEARED memory is filled with zeros.
- - The main benefit of ALLOC is that it keeps track of
- all memory allocated by an ACE program and frees it all
- at the end of a program run, saving you from ever having
- to free memory.
- - ALLOC will free allocated memory even if a program aborts
- due to a ctrl-c break or an error (except where a GURU
- results).
- - Use of ALLOC assumes that you know what you're doing with
- memory and why you want a chunk of it.
-
- AND - Boolean operator: X AND Y.
-
- X Y Out
- -----------
- T T T
- T F F
- F T F
- F F F
-
- ARG$ * - syntax: ARG$(n) where n=0..ARGCOUNT.
- - Returns the nth command line argument as a string.
- - If n=0 the name of the command is returned.
- - Note that ARG$ only works for CLI/Shell launched
- programs. See ace.doc for details about how to access
- Workbench arguments.
-
- ARGCOUNT * - Returns the number of command line arguments.
- - See also ace.doc re: Workbench arguments.
-
- AREA - syntax: AREA [STEP](x,y)
- - Functions indentically to AmigaBASIC's AREA command.
- - Defines a set of up to 20 points to be joined
- into a polygon and filled by AREAFILL.
-
- AREAFILL - syntax: AREAFILL [mode]
- - Same as AmigaBASIC's AREAFILL command.
- - The optional mode can be 0 or 1:
-
- 0 = fill polygon with current pattern and
- foreground color.
-
- 1 = fill polygon with current pattern
- but inverse of foreground color
- (max-color-id - fdgnd-color-id).
-
- - See also PATTERN command.
-
- ASC - syntax: ASC(X$)
- - Returns the ASCII code of the first character in X$.
-
- ASSEM * - syntax: ASSEM
- <line of assembly code>
- <line of assembly code>
- .
- .
- END ASSEM
- - This allows for the inline inclusion of assembly source
- code into the A68K file generated by ACE.
- - ACE does not attempt to check the correctness of the
- inline code, leaving the task of assembly up to A68K.
- - If you use this facility, it is assumed that you know
- what you are doing.
-
- ATN - syntax: ATN(n)
- - Returns the arctangent of n.
-
- BACK * - syntax: BACK n
- - Moves the turtle back n steps.
-
- BEEP - Issues a brief pulse from the speaker.
- - BEEP doesn't flash the screen as it does in AmigaBASIC.
- - This command is useful for alerting the user to an error
- or other important event.
-
- BIN$ * - syntax: BIN$(n)
- - Returns a string containing the binary equivalent of n.
- - If n is a single-precision value, ACE coerces it to integer.
-
- BREAK - syntax: BREAK [ON|OFF|STOP]
- - See the Event Trapping section in ace.doc.
-
- CALL - Passes control to a user-defined subprogram,
- shared library function, external function,
- or user-defined machine code routine.
- - Subprogram CALLs can be recursive (user SUBs).
- - See also sections on subprograms, shared library access,
- external functions and machine code calls in ace.doc.
-
- CASE * - ACE's version of the CASE statement which is different
- from the Pascal CASE and C switch statements.
- - The syntax is:
-
- CASE
- <expression> : <statement>
- .
- .
- [<expression> : <statement>]
- END CASE
-
- where <expression> can be any legal expression ranging
- from a constant to a relational or mathematical expression.
-
- - The expression is used as a boolean such that 0 is false
- and any non-zero value is true.
- - The statement can consist of a single legal ACE statement
- (including block IF and loops) or a multi-statement.
-
- CHDIR - syntax: CHDIR <dirname>
-
- where <dirname> is a string corresponding to the name of
- a directory.
-
- - If <dirname> is a legitimate directory and is accessible
- from the current directory, it will become the new current
- directory.
- - In short, this is ACE's equivalent of the AmigaDOS "cd"
- command, the only difference being that the path change
- is not reflected in the shell prompt.
-
- CHR$ - syntax: CHR$(n)
- - Returns a string consisting of a single character with the
- ASCII value n.
- - Note that PRINT CHR$(7) will NOT sound the bell since the
- Amiga Shell/CLI and RAW: windows do not respond to CHR$(7)
- in the same way as the AmigaBASIC output window.
-
- CINT - syntax: CINT(n)
- - Converts n to a signed short integer by rounding the
- fractional portion.
- - When the fractional portion is exactly .5, CINT *always*
- rounds up in ACE, whereas in AmigaBASIC if the integer
- portion is even, CINT rounds down, and up if the integer
- portion is odd.
-
- CIRCLE - syntax: CIRCLE (x,y),radius[,color-id,start,end,aspect]
- - Start and end angles are specified in DEGREES *not* radians
- because this is probably more useful when thinking about
- circles. (Note: this may be changed to radians in future).
- - If a whole ellipse is to be drawn, the graphics library
- DrawEllipse() function is used. However, if the start
- angle is not 0 or the end angle is not 359 (these are
- the defaults when not specified), a different routine
- is used. The latter is quite slow.
- - The default ASPECT is .44 as in AmigaBASIC.
-
- CLNG - syntax: CLNG(n)
- - Converts n to a signed long integer by rounding the
- fractional portion.
- - When the fractional portion is exactly .5, CLNG *always*
- rounds up in ACE, whereas in AmigaBASIC if the integer
- portion is even, CLNG rounds down, and up if the integer
- portion is odd.
-
- CLOSE - syntax: CLOSE [#]filenumber[,[#]filenumber..]
- where filenumber represents an open file.
- - Closes at least one open file.
- - Note that in ACE, CLOSE must be followed by at least one
- filenumber, unlike AmigaBASIC.
- - See section on files in ace.doc.
-
- CLS - Clears the current output window or screen and sets the
- pen position to the upper left corner.
- - CLS does not affect any other screens or windows except
- the one currently active.
-
- COLOR - syntax: color fgnd-id[,bgnd-id]
- - Changes the foreground and/or background color to
- fgnd-id and bgnd-id respectively.
- - Note that in ACE, you can change just the foreground
- color, both the foreground and background colors,
- but not the background color alone.
- - This may be changed in a future revision.
- - The PALETTE command is used to change the colors
- corresponding to given color-ids.
-
- CONST * - syntax: CONST <ident> = [+|-]<constant>[,..]
- where <constant> is a signed numeric constant.
- - Defines a named numeric constant or constants, the type
- being *unaffected* by the the DEFxxx directives or type
- (%&!#$) suffixes. All constant definitions are GLOBAL.
- - Any number of definitions can be separated by commas.
-
- COS - syntax: COS(n)
- - Returns the cosine of n.
-
- CSNG - syntax: CSNG(n)
- - Converts n to a single-precision value.
-
- CSRLIN - returns the print line in the current user-defined SCREEN
- as set by LOCATE.
- - If called when output is to a window, zero is returned.
- - In other words, CSRLIN currently only has meaning for
- screens (see also POS).
-
- CSTR * - syntax: CSTR(<address>)
- - Coerces a long integer address into a string.
- - This is intended for taking an allocated area of memory
- and using it as a string of characters. Be aware that this
- memory block must be NULL terminated.
- - A typical use for CSTR is something like this:
-
- x$=CSTR(addr&)
-
- - The maximum string length of MAXSTRINGLEN bytes in some
- functions still applies. Ignore this at your own peril!
-
- DATA - syntax: DATA [numeric-constant | string-constant][,..]
- - Stores numeric and/or string constants into a global
- data list to be accessed by the READ statement.
- - DATA statements may be located anywhere in a program and
- non-executable.
- - Strings need only be enclosed in quotes if they contain
- commas, spaces or colons or other non-identifier characters.
- - In ACE, all numbers from DATA statements are currently stored
- as single-precision values with a possible loss of accuracy
- if LARGE long integers are originally specified. This may
- be rectified in a future revision. Thus far however, I have
- not had problems because of it. In order to overcome it for
- now, do something like the following:
-
- #include <longval.h>
- READ X$
- X=longval&(X$) '..longval& returns the value.
- DATA "123456789"
-
- - In the above example, the BASIC function VAL is substituted
- with LONGVAL& because the former always returns a single
- precision value which is what we are trying to avoid.
-
- DATE$ - Returns the current system date as a ten-character string
- of the format: mm-dd-yyyy.
-
- DAY * - Returns the day of the week as an integer from 0..6,
- where 0=Sunday and 6=Saturday.
- - The value returned by DAY reflects the last call to DATE$.
-
- DECLARE - This has three uses in ACE:
-
- 1. DECLARE FUNCTION <func-name>[%&!] LIBRARY <lib-name>
- (see section on shared library access in ace.doc)
-
- 2. DECLARE SUB [<type>] subprogram-name[(parameter-list)]
-
- which is used for forward SUB declarations.
- (see also section on subprograms in ace.doc)
-
- 3. DECLARE STRUCT <type> [*] <ident1> [,[*] <identN>..]
-
- where a structure variable of type <struct-type> is
- created. If "*" precedes the variable identifier,
- a pointer to the structure is created, otherwise
- a BSS object is allocated. In both cases, "identN"
- holds the start address of the structure. In the
- latter case, the address is resolved at load time
- while in the former, the address is allocated at
- run time (eg: with ALLOC).
-
- - Only the first usage is supported by AmigaBASIC (although
- the syntax is slightly different).
-
- The following DEFxxx commands are GLOBAL data type
- directives which affect data objects in both the main
- program and subprograms.
-
- The general syntax is: DEFxxx <letter>[,|-<letter>] [..]
- eg:
- DEFLNG a-z
-
- declares all data objects to be of type LONGINT unless overridden by another
- DEFxxx directive, variable declaration or trailing character (%&!#$).
-
- DEFDBL currently defaults to single-precision since double-precision is not
- yet supported.
-
- DEFINT
- DEFLNG
- DEFSNG
- DEFDBL
- DEFSTR
-
- DIM - syntax: DIM <name>(<i>[,..]) [SIZE <n>] [ADDRESS <addr>][,..]
- - ACE requires that ALL arrays be dimensioned before use.
- - For a subscript range of 0..n, you must DIMension
- an array with an index of n.
- - Up to 10 dimensions can be specified with up to
- 32767 elements per dimension. Each dimension must be
- specified as a short numeric constant (literal or defined).
- - The SIZE option is for the specification of string element
- length other than the default MAXSTRINGLEN value.
- - The ADDRESS option allows you to specify some arbitrarily
- allocated area of memory (ALLOC'd, string etc) for
- the array space.
- - Both options (SIZE and ADDRESS) may be used together in
- DIM. This is not so for simple string variables where
- only one or the other may be used (see STRING command).
- - SHARED is not an option and ACE arrays are shared in the
- same way as variables. See "Subprograms" in ace.doc.
-
- EOF - syntax: EOF(n)
- where n is the filenumber of an open file.
- - EOF is a function which returns either -1 or 0 depending
- upon whether the file pointer has reached the end-of-file
- or not.
- - If the file doesn't exist or hasn't been opened, EOF
- returns -1.
-
- END - Closes libraries and passes control back to parent process.
- - Don't use END within an IF..THEN..END IF block. Use STOP
- instead which is functionally equivalent in ACE.
-
-
- EQV - Boolean operator: X EQV Y.
-
- X Y Out
- -----------
- T T T
- T F F
- F T F
- F F T
-
- EXIT SUB - This command can only be used inside a subprogram and
- when encountered, has the effect of passing control back
- to the caller of the subprogram in which it appears.
- - If the current instantiation of the subprogram is the
- result of a recursive call, control will be returned
- to the previous instantiation of the same subprogram.
-
- EXP - syntax: EXP(n)
- - Returns e to the power n, where e is the base of
- natural logarithms or 2.7182818284590.
-
- EXTERNAL * - syntax: EXTERNAL [FUNCTION] <identifier>[%&!$]
- - Used to declare an external function or variable.
-
- FILES - syntax: FILES [TO <storefile>] [,<target>]
- - Gives an unsorted directory listing ala AmigaBASIC
- except that ACE's version takes two optional arguments
- while AmigaBASIC's takes one (<target>).
- - If <storefile> is specified, the listing will be
- captured by that file.
- - If <storefile> is omitted, it is assumed that the
- program containing the FILES command was invoked
- from a shell or CLI (since the listing will be
- displayed).
- - The <target> argument can be a file, directory or
- AmigaDOS device name which is to be the subject
- of the directory listing.
-
- FIX - syntax: FIX(n)
- - The function returns the truncated integer portion of n.
- - FIX(n) is equivalent to SGN(n)*INT(ABS(n)).
- - Whereas INT(n) rounds off a negative number
- to the next lowest whole number, FIX does not.
-
- or
-
- - syntax: FIX n
- - The command which is found only in ACE is intended to have
- a similar effect to the FIX button found on a HP calculator,
- that is, to change the number of decimal place ACE rounds a
- single-precision number to.
- - FIX utilises the ami.lib function arnd(). When the value of
- n is anything other than 8, arnd() is invoked. This affects
- the commands: PRINT, PRINTS, WRITE#, PRINT# and STR$.
- - FIX should be considered experimental since I have not
- completely figured out what all the values of n (as used
- directly by arnd()) do yet.
- - In a future release, a given value for n may have different
- results than it does now. Currently, n may be positive or
- negative.
-
- Examples
- --------
-
- FIX -3
- PRINT 12.3456
-
- would display: 12.35
-
- FOR..NEXT - syntax: FOR <variable>=x TO y [STEP z]
- - The statements between FOR and NEXT are iterated
- the number of times it takes for <variable> to become
- equal to or greater than y (or less than y if z is negative)
- starting from x. The loop index <variable> is incremented
- by z, or 1 if STEP is not specified.
- - NEXT can only be followed by a variable, colon or
- comment and must appear on a separate line or in a
- multi-statement (not after THEN for example).
- - Any attempt to use a shared variable as a FOR loop index
- will result in a compilation error.
-
- FORWARD * - syntax: FORWARD n
- - Move the turtle forward n steps.
-
- FRE - syntax: FRE(n)
- where n is -1,0,1,2 or 3.
- - Since ACE's run-time environment is different to
- AmigaBASIC's, FRE returns different values and
- takes different arguments than in AmigaBASIC.
- - FRE returns the amount of free system memory according
- to n:
-
- n = -1 -> total CHIP + FAST memory free.
- n = 0 -> total CHIP memory free.
- n = 1 -> total FAST memory free.
- n = 2 -> largest contiguous CHIP memory available.
- n = 3 -> largest contiguous FAST memory available.
-
- GOSUB..RETURN - with labels or line numbers.
-
- GOTO - with labels or line numbers.
-
- HANDLE * - syntax: HANDLE(n)
- where n is the file number of an OPENed file (1..255).
- - This function returns a long integer which is a pointer to
- a dos file handle suitable for use with dos.library functions
- such as Read (xRead when declared in ACE/AmigaBASIC).
- - If HANDLE returns 0& the file does not exist or can't be
- opened as requested.
-
- HEADING * - Returns the turtle's current heading in degrees (0..359).
-
- HEX$ - syntax: HEX$(n)
- - Returns a string which represents the hexadecimal value
- of the decimal argument n.
-
- HOME * - Move the turtle back to its home position.
-
- IF..THEN..[ELSE..]
- IF..GOTO..[ELSE..]
- IF..THEN
- .
- [ELSE]
- .
- END IF - ELSEIF is not yet implemented.
- - IF..[ELSE]..END IF blocks can be nested.
- - Use STOP rather than END before an END IF
- otherwise the compiler will get confused.
-
- IMP - Boolean operator: X IMP Y.
-
- X Y Out
- -----------
- T T T
- T F F
- F T T
- F F T
-
- INKEY$ - Returns a single character string when a keystroke
- is pending, otherwise the NULL string is returned.
- - If input is from the shell/CLI or a user-defined window,
- dos is employed to return the pressed key's value, otherwise
- Intuition is used (this is transparent to the programmer).
- - INKEY$ works fine in user-defined windows (RAW:), but since
- a normal CON: window intercepts all keystrokes, INKEY$ is
- useless in a shell/CLI.
- - When using the dos library functions, INKEY$ is SLOW,
- so don't use it in a time-critical loop. In particular,
- the use of WaitChar() slows things down quite a bit since
- it forces a pause of at least 1 tick each time INKEY$ is
- called.
- - Things are somewhat faster when INKEY$ gets input from a
- user-defined screen's window (see section on screens in
- ace.doc).
-
- INPUT$ - syntax: INPUT$(X,[#]filenumber)
- - Returns a string of X characters from the filenumber'th file.
- - There is a 32K upper limit for X in ACE, but if you
- want to read a whole file for example, and the file length
- (determined by LOF) is greater than MAXSTRINGLEN, you
- should do the following:
-
- STRING X$ SIZE N '..N <= 32766+1 (+1 for EOS)
- OPEN "I",#1,filename$
- X$=INPUT$(LOF(1),#1)
- CLOSE #1
-
- or if you want to allocate space at run-time according to the
- exact file size:
-
- bytes& = LOF(1) + 1
- addr& = ALLOC(bytes&,5)
- STRING X$ ADDRESS addr&
- OPEN "I",#1,filename$
- X$ = INPUT$(bytes&,#1)
- CLOSE #1
-
- - This method should only be used for small text files as it
- is slow, and text is really the only useful thing to put in
- a string if you wish to manipulate it. Many string functions
- will react unexpectedly to non-text characters in strings.
- - If you wish to read a large file rapidly, it's best to use
- the dos.library function Read (declared as xRead in BASIC).
- The sound player play.b gives a good example of this.
- - In general INPUT$ is most useful for reading a few characters
- at a time from a file. If you wish to read a line at a time,
- use LINE INPUT# and INPUT# if you want to read numbers or
- strings.
- - INPUT$ in ACE is only used for sequential file input, so
- the filenumber is not optional. In AmigaBASIC, if the latter
- is omitted, input is taken from the keyboard. Not so in ACE.
- - See also section on files in ace.doc.
-
- INPUT - syntax: INPUT [prompt-string] [;|,] var1 [[;|,] varN..]
- - Strings, integers and fixed-point or exponential format
- reals can be input from the keyboard.
- - Each value must appear on a separate line even when
- a single INPUT statement contains multiple variables.
- - If ";" precedes a variable a "? " will appear, while if
- a "," is used no "? " will appear.
- - INPUT only takes input from the shell/CLI or an ACE window.
- If you need input from a screen, use the functions in
- inputs.h: INPUTS$, INPUTS%, INPUTS& and INPUTS!.
- An example follows:
-
- #include <inputs.h>
-
- SCREEN 1,640,200,2,2
-
- PALETTE 0,0,0,0
- PALETTE 1,1,1,1
- PALETTE 2,1,0,0
- PALETTE 3,0,1,0
-
- PRINTS "Enter a long integer: ";
- X& = inputs&
- PRINTS "You entered ";X&
-
- PRINTS "Press q to quit"
- WHILE UCASE$(INKEY$) <> "Q":WEND
-
- SCREEN CLOSE 1
-
- INPUT# - syntax: INPUT #filenumber,<variable-list>
- - Reads data items from a sequential file.
- - The variables in <variable-list> must each match the type
- of item being read.
- - If unambiguous data format is required, it is best to
- use WRITE# to store the values that INPUT# will read
- since WRITE# separates each item with commas and delimits
- strings with double quotes allowing for spaces. WRITE# will
- also result in more efficient use of disk space and faster
- reading by INPUT#.
- - ACE accepts white space (line feeds, spaces, tabs), commas
- and quotes as delimiters for each field in a sequential file.
- - AmigaBASIC and ACE sequential file formats are very nearly
- identical.
- - See also files section in ace.doc.
-
- INSTR - syntax: INSTR([I,]X$,Y$)
- - INSTR searches for the first occurrence of Y$ in X$ and
- returns the character position from 1..N in X$.
- - If the optional offset I is specified, the search starts
- from that position, otherwise the search starts from the
- first character in X$.
- - If I is greater than len(X$) or X$="" or Y$ is not found
- in X$ or len(Y$) > len(X$), INSTR returns 0.
- - If Y$="", INSTR returns I or 1.
- - X$ and Y$ can be string expressions, variables or literals
- or any combination thereof.
-
- INT - syntax: INT(n)
- - Returns the largest integer less than or equal to n.
-
- KILL - syntax: KILL <filespec>
- - Deletes a file or directory.
-
- LEFT$ - syntax: LEFT$(X$,I)
- - Returns a string which contains the leftmost I characters
- of X$.
- - If I > len(X$), the whole string (X$) is returned.
- - If I = 0, the NULL string is returned.
-
- LEN - syntax: LEN(X$)
- - Returns the number of characters in X$.
-
- LET - syntax: [LET] <variable> = <expression>
- - LET assigns a value to a variable.
- - Its use is optional so that LET X=1 is equivalent
- to X=1.
-
- LIBRARY - syntax: LIBRARY [CLOSE] <libname>
- - Opens or closes an Amiga shared library.
- - Note that <libname> is not enclosed in quotes
- and does not end in .library, so that to open
- graphics.library, the syntax is: LIBRARY graphics.
- - See "Shared library function calls" section in ace.doc.
-
- LINE - The syntax of this command - apart from the simple
- case of LINE (x1,y1)-(x2,y2)[,color,b[f]] - is a little
- unclear from the AmigaBASIC manual.
-
- - The syntax of the LINE command in ACE is currently as
- follows:
-
- LINE [STEP](x1,y1)[-(x2,y2)[,[color],[b[f]]]]
-
- - The second STEP directive has been omitted, but may be
- added in a future revision.
- - A statement such as LINE STEP (100,90) will cause a line
- to be drawn from the last referenced coordinate to 100,90.
- In addition, this use of LINE does *not* allow for colour
- setting as can be seen from the ACE syntax specification
- whereas LINE (100,90)-(200,150),color does. The same is
- true for the "b" and "bf" options. A future version may
- correct this problem.
- - Note: x1 must be >= x2 and y1 must be >= y2 otherwise
- weirdness will result!
-
- LINE INPUT - syntax: LINE INPUT #filenumber,<string-variable>
- - Reads a line from the filenumber'th sequential file and
- stores it in <string-variable>.
- - If <string-variable> does not exist, ACE creates it.
- - Lines are delimited by a line-feed character (ASCII 10)
- and the string which is returned consists of the characters
- up to but not including the line-feed.
- - Note that the AmigaBASIC manual (8-72) shows a semicolon
- instead of a comma in the above syntax which is incorrect
- since AmigaBASIC itself accepts only a comma.
- - The alternative form of LINE INPUT for keyboard input is
- not currently implemented in ACE.
- - LINE INPUT will not read more than MAXSTRINGLEN characters.
- - See also INPUT$ (which will read up to 32K of characters)
- INPUT# and ace.doc's section on files.
-
- LOCATE - syntax: LOCATE line[,column].
- - LOCATE changes the printing position for the current
- screen or window.
- - Note that the use of LOCATE on a screen also changes
- the next graphics drawing coordinates.
-
- LOF - syntax: LOF(n)
- where n is the file number of an open file.
- - LOF returns the length of the file in bytes.
- - If the file is not open or non-existent, LOF returns 0.
-
- LOG - syntax: LOG(n)
- - Returns the natural logarithm of n (log base e of n).
- - The argument n should be greater than zero.
-
- LONGINT * - syntax: LONGINT <identifier>[,..]
- - Declares and initialises one or more long integer variables.
-
- MID$ - syntax: MID$(X$,I[,J])
- - Only the MID$ *function* is currently supported by ACE.
- - Returns a string containing J characters from X$
- starting from the Ith character.
- - If J is omitted or there are fewer than J characters
- to the right of (and including) the Ith character, all
- characters from the Ith position to the end of the string
- are returned.
- - If I > len(X$), MID$ returns the NULL string.
-
- MOD - Modulo arithmetic operator: X MOD Y.
-
- eg: 101 MOD 10 = 1
-
- MOUSE - syntax: MOUSE(n)
- - Returns information about the current status of the mouse.
- - Values of n ranging from 0..2 are meaningful in ACE.
- - MOUSE(0) just returns -1 or 0 to indicate whether the left
- mouse button is currently being pressed or not.
- - MOUSE(1) returns the X location of the mouse pointer
- in the current output window or screen.
- - MOUSE(2) returns the Y location of the mouse pointer
- in the current output window or screen.
- or
- - syntax: MOUSE [ON|OFF|STOP]
- - See Event trapping section in ace.doc.
-
- NAME - syntax: NAME <filespec1> AS <filespec2>
- - Renames a file or directory.
-
- NOT - Boolean operator: NOT X.
-
- X Out
- -----------
- T F
- F T
-
- OCT$ - syntax: OCT$(n)
- - Returns the octal string representation of the long
- integer value n.
-
- ON..GOTO/GOSUB - syntax 1: ON <integer-expr> GOTO | GOSUB <label> | <line>
-
- eg: ON n GOTO one,two,three,four,five
-
- such that if n=1 the program will branch to the label
- "one" and if n=4 the branch will be to "four".
-
- - syntax 2: ON <event-spec> GOTO | GOSUB <label> | <line>
- - See "Event Trapping" section in ace.doc.
-
- OPEN - syntax: OPEN mode,[#]filenumber,filespec
- which is the same as syntax 1 in AmigaBASIC
- except that no file-buffer-size can be specified.
- - Mode is an upper-case character where:
-
- - "I" = open file for input
- - "O" = open file for output
- - "A" = open file for append
-
- - Filenumber is a value from 1..255
- - Filespec is a string containing the file name
- (eg: "test.doc", "df1:letters/santa").
- - Multiple files can be open at one time.
-
- OPTION * - syntax: OPTION <switch>+|-[,<switch>+|-..]
- - Compiler directives (switches) can be issued via this
- command instead of from the command line. The latter
- only allows for compiler directives to be *activated*.
- - Each switch must be followed by a "+" or "-" with
- the former activating the directive and the latter
- neutralising it.
- - Switches currently implemented are: b,c,E,i,l,O
- - See ace.doc "Compiler options" for details of each
- switch. Notice that for switches i and O, activation
- or deactivation takes effect at the end of compilation.
-
- OR - Boolean operator: X OR Y.
-
- X Y Out
- -----------
- T T T
- T F T
- F T T
- F F F
-
- PAINT - syntax: PAINT (x,y)[[,color-id][,border-id]]
- - PAINT flood fills an enclosed region with the
- color specified by color-id and if the latter
- is omitted, the current foreground pen is used.
- - If border-id is not specified, color-id is used
- to determine when to stop the filling process by
- looking for a border of that color. The use of
- border-id allows a region to be filled with one
- color and be bordered by another.
- - x and y can be anywhere within the enclosed region.
- - Note that the ACE version of PAINT has no STEP
- option so x and y constitute an absolute coordinate.
- - STEP may be added in a future revision.
-
- PALETTE - syntax: PALETTE color-id,R,G,B
- where R,G,B are the red, green and blue colour
- components of color-id.
- - Palette changes colors in the current screen
- (including Workbench!).
-
- PATTERN - syntax: PATTERN [line-pattern][,area-pattern] | RESTORE
- - Same as in AmigaBASIC with the addition of a RESTORE
- option. PATTERN RESTORE resets the line and area patterns
- to their default values.
- - The line-pattern is a short integer value.
- - The area-pattern is a DIM'd short integer array.
- - The number of elements in area-pattern must be a power of 2.
-
- PEEK - syntax: PEEKx(<address>)
- PEEKL
- PEEKW - These three commands return an 8-bit, 32-bit and 16-bit
- value from memory (<address>) respectively.
-
- PENDOWN * - Lowers the turtle's "pen".
-
- PENUP * - Raises the turtle's "pen".
-
- POINT - syntax: POINT(x,y)
- - Returns the color-id of a point in the current output
- window or screen.
-
- POKE - syntax: POKEx <address>,<numeric-value>
- POKEL
- POKEW - These three commands change the contents of <address>
- to <numeric-value>.
- - Unless you know what you are POKEing and why, don't
- or you can expect a visit from the Guru.
-
- POS - Returns the print column in the current user-defined SCREEN
- as set by LOCATE.
- - If called when output is to a window, zero is returned.
- - In other words, POS currently only has meaning for
- screens (see also CSRLIN).
- - Note that the syntax is different from AmigaBASIC where a
- dummy argument of zero is used: POS(0).
-
- POTX * - syntax: POTX(n)
- where n=0 or 1 (game port 1 or 2).
- - Returns short integer value corresponding to
- current potentiometer reading on pin 5 of game port.
-
- POTY * - syntax: POTY(n)
- where n=0 or 1 (game port 1 or 2).
- - Returns short integer value corresponding to
- current potentiometer reading on pin 9 of game port.
-
- PRINT - syntax: PRINT [<expression>][,|;| ..]
- where <expression> is a string or numeric value to
- be printed at the current print location of the current
- output window.
- - LOCATE can be used to set the location for the next PRINT
- command.
- - PRINT can be abbreviated to '?' as in AmigaBASIC.
- - If <expression> is followed by a semi-colon, a line-feed
- will not occur before the next PRINT.
- - If <expression> is followed by a comma, the effect is
- the same except that first, two horizontal tabs (CHR$(9))
- are sent to the output window.
- - Note that two ASCII 9s do not have exactly the same effect
- as an AmigaBASIC tab, but the result is very similar (about
- 17 spaces between TABs instead of 15). If spacing is critical
- you should use TAB or SPACE$.
-
- PRINT# - syntax: PRINT #filenumber,<expression>[,|;| ..]
- where <expression> is a string or numeric value to
- be printed at the current print location in the
- filenumber'th file.
- - PRINT can be abbreviated to '?' as in AmigaBASIC.
- - This version of PRINT writes values to a file in the
- same format as they would appear in a window.
- - One oddity is that since ACE strings are NULL-terminated,
- and this NULL (ASCII 0) is normally not displayed, any
- attempt to send this character to a file, eg:
-
- PRINT #filenumber,CHR$(0)
-
- should by all rights be ignored. However, since some
- programs write NULLs to files as delimiters, ACE does NOT
- ignore a lone CHR$(0). A consequence of this is that if
- you send an empty - LEN(<string>) = 0 - string to a file,
- an ASCII 0 will be written. This is also holds true for
- WRITE #filenumber,<string>. Just check the length of a
- string before sending it to a file if in doubt.
-
- PRINTS * - syntax: PRINTS [<expression>][,|;| ..]
- where <expression> is a string or numeric value to
- be printed at the current x,y location of an open
- screen. SETXY or LOCATE can be used to set the X,Y
- coordinates for the next PRINTS command.
- - PRINTS behaves in the same way as PRINT except that text
- is clipped after the last column.
- - see also CSRLIN and POS.
-
- PSET - syntax: PSET [STEP] (x,y)[,color-id]
- - Plots a point in the current output window or
- screen.
- - If color-id is not specified, the current
- foreground color is used.
- - If STEP is specified, the point is relative to
- the current x,y location as set by the last
- graphics command.
-
- RANDOMIZE - syntax: RANDOMIZE <expression>
- - Seeds the random number generator.
- - *requires* an argument. TIMER and all
- other arguments will be coerced to long integers.
- - RANDOMIZE TIMER is the most commonly used syntax.
-
- READ - syntax: READ <variable>[,<variableN>..]
- - Assigns <variable> the value of the next item in the
- global data list as created by DATA statements in
- the current program.
- - The <variable> must be of the same type as the data
- item to be read otherwise an unexpected value will be
- assigned to <variable>.
- - See also DATA (especially re: READing long values).
-
- REM - syntax: REM <comment>
- - A single-line comment.
- - All characters after REM until the end of line are
- ignored.
- - REM can be substituted by an apostrophe as in AmigaBASIC.
- - While REM is treated as a true statement, and must
- either appear on a separate line or after a ":" in a
- multi-statement, an apostrophe followed by a comment
- can appear anywhere in the text of a program.
- - Note that ACE also supports block comments: {..}.
- - The ACE compiler can handle the three types of comments
- while the pre-processor APP can only handle the ' and
- {..} forms. Some form of commenting is required in APP
- so that pre-processor commands can be commented out.
-
- REPEAT..UNTIL * - syntax: REPEAT
- .
- .
- UNTIL <condition>
-
- where <condition> is an expression which reduces
- to a boolean (true/false) value.
-
- - Statements inside the REPEAT and UNTIL are executed
- until the <condition> is true (ie: non-zero).
- - Styled after the Pascal REPEAT..UNTIL construct.
- - The loop is *always* executed at least once.
-
- RESTORE - syntax: RESTORE
- - Resets the DATA pointer to the first DATA statement
- in the program.
- - Note that there is no optional label in the ACE version
- of RESTORE. This may be added in a future revision.
-
- RIGHT$ - syntax: RIGHT$(X$,I)
- - Returns a string which contains the rightmost I characters
- of X$.
- - If I > len(X$), the whole string (X$) is returned.
- - If I = 0, the NULL string is returned.
-
- RND - syntax: RND
- - ACE's RND function takes no parameter and always returns a
- single-precision pseudo-random value between 0 and 1.
-
- SADD - syntax: SADD(<string-expression>)
- - Returns the address of <string-expression> which can be
- a string literal, variable or expression.
- - Unlike AmigaBASIC, string allocations after a call to
- SADD have no impact upon the address of <string-expression>.
- - VARPTR can also safely be used to find the address of
- a string variable.
-
- SAY In ACE, there is a SAY command and a SAY function.
-
- SAY command
- -----------
- - syntax: SAY <phoneme-string>[,mode-array]
- - Same as AmigaBASIC's SAY command: speak a phoneme string.
- - The <phoneme-string> can be a string literal, expression
- or variable, while the optional mode-array is a 9-element
- (0..8) DIM'd short integer array.
- - The mode-array is allowed, and the following parameters
- are supported:
-
- Argument Element Values Default
- -------- ------- ------ -------
- pitch 0 65..320 110
- inflection 1 0 or 1 0
- rate 2 40..400 150
- voice 3 0 or 1 0
- tuning 4 5000..28000 22200 (Hz)
- volume 5 0..64 64
- channel 6 0..11 10
- mode 7 0 or 1 0
- control 8 0,1 or 2 0
-
- - Inflection=0 allows inflections and emphasis of syllables
- while inflection=1 gives a monotone voice.
- - The voice parameter specifies gender: 0=male; 1=female.
- - Audio channel values have the same meaning as in AmigaBASIC:
-
- Value Channel(s)
- ----- ----------
- 0 0
- 1 1
- 2 2
- 3 3
- 4 0 and 1
- 5 0 and 2
- 6 3 and 1
- 7 3 and 2
- 8 either available left channel
- 9 either available right channel
- 10 either available left/right pair of channels
- 11 any available single channel
-
- - Mode is used to specify synchronous or asynchronous speech
- (0 and 1 respectively).
- - Control is used when mode=1 to determine what action is
- to be taken when asynchronous speech is active. If control
- is set to 0, the current SAY command waits until the last
- SAY is finished before executing. When control=1 the last
- SAY statement is cancelled and speech processing stops
- until the next call to SAY. When control=2 ACE interrupts
- the last SAY command and initiates the current one.
- - The defaults are the same as in AmigaBASIC.
-
- SAY function (only works properly under 2.04 or higher)
- ------------
- - syntax: SAY(n)
-
- where n equals 0, 1 or 2.
-
- SAY(0) - returns true or false (-1 or 0) to indicate
- whether there is currently active asynchronous
- speech.
-
- SAY(1) - returns the width of the "mouth" corresponding
- to the phoneme being spoken.
-
- SAY(2) - returns the height of the "mouth" corresponding
- to the phoneme being spoken.
-
- - SAY(0) allows for monitoring of the asynchronous
- speech process (see details of mode-array above).
- - Use of SAY(1) and SAY(2) allows an animated mouth
- to be drawn. See the program mouth.b for an example.
- - SAY(1)'s and SAY(2)'s values reflect the last call
- to SAY(0) and so must be used in conjunction with
- the latter.
-
- SCREEN - The SCREEN statement syntax is the same as in AmigaBASIC:
-
- SCREEN screen-id,width,height,depth,mode
-
- mode 1=lores, 2=hires, 3=lores/interlaced, 4=hires/interlaced.
-
- - The SCREEN function (ACE only) syntax is SCREEN(n), where:
-
- SCREEN(0) - returns a pointer to the Intuition window
- SCREEN(1) - returns a pointer to the Intuition screen
- SCREEN(2) - returns a pointer to the screen's rastport
- SCREEN(3) - returns a pointer to the screen's viewport
-
- SCREEN CLOSE - syntax: SCREEN CLOSE screen-id
- - Closes a single ACE screen.
-
- SCROLL - syntax: SCROLL (xmin,ymin)-(xmax,ymax),delta-x,delta-y
- - Scrolls bits inside the specified rectangle.
- - Delta-x and delta-y specify motion right and down
- respectively.
- - Negative delta values yield motion left and up.
-
- SETHEADING * - syntax: SETHEADING n
- - Changes the turtle's heading to n degrees.
-
- SETXY * - syntax: SETXY x,y
- - Sets the x,y location for the next graphics command
- in the current output window or open screen.
- - It's primary use is for turtle graphics. To
- avoid the "turtle" drawing a line when SETXY is used,
- the PENUP command should first be issued.
-
- SGN - syntax: SGN(n)
- - Returns the sign of the number n:
-
- if n>0, SGN(n) returns 1
- if n=0, SGN(n) returns 0
- if n<0, SGN(n) returns -1
-
- SHARED - syntax: SHARED <ident>[,<ident> ... ]
- - Variables, arrays and structures must explicitly
- be shared between the main program and subprograms.
- Only EXTERNAL variables are exempt from such sharing in
- ACE since they are global (see "Identifiers" in ace.doc).
- - One or more SHARED statements can appear in a subprogram
- and are usually placed before all other code in that SUB.
- - Declarations of objects to be shared must appear in the
- main program before the subprogram is *declared*.
- - See subprograms section in ace.doc and the entry for
- DIM above re: DIM SHARED.
-
- SHL * - syntax: SHL(n,m)
- where n is the value to be shifted and m is the number
- of bit positions to shift.
- - Arithmetic shift left function. Returns a long integer.
- - Shifting left by 1 bit is faster than multiplying by 2
- or powers thereof.
-
- SHR * - syntax: SHR(n,m)
- where n is the value to be shifted and m is the number
- of bit positions to shift.
- - Arithmetic shift right function. Returns long integer.
- - Shifting right by 1 bit is faster than dividing by 2
- or powers thereof.
-
- SHORTINT * - syntax: SHORTINT <identifier>[,..]
- - Declares and initialises one or more short integer
- variables.
-
- SINGLE * - syntax: SINGLE <identifier>[,..]
- - Declares and initialises one or more single precision
- variables.
-
- SIZEOF * - syntax:
- SIZEOF(byte|shortint|longint|address|single|string|<ident>)
- where <ident> is the name of a variable, array, structure
- type or structure variable (not a SUB, function or external
- variable).
- - A size in bytes is returned.
- - The intention is the same as that of C's sizeof() operator.
- - SIZEOF is useful for allocating memory for structures.
-
- SIN - syntax: SIN(n)
- - Returns the sine of n.
-
- SLEEP - syntax: SLEEP
- - This command puts a program to sleep until there is
- mouse, keyboard or timer activity.
- - The current version of SLEEP is somewhat limited in
- that it only works in screen mode.
-
- SOUND - syntax: SOUND period,duration[,volume][,voice]
- - Note that the syntax of this command is different
- from the equivalent statement in AmigaBASIC.
- - See the sound section in ace.doc for details.
- - See also the WAVE command. A combination of
- these two commands in ACE allows you to easily
- play sound samples (see example program play.b).
- - SOUND currently uses the audio hardware directly
- but a future revision may use the audio device.
-
- SPACE$ - syntax: SPACE$(n)
- - Returns a string of n spaces.
-
- SQR - syntax: SQR(n)
- - Returns the square root of n.
- - The argument n must be >= 0.
-
- STICK - syntax: STICK(n)
- - Returns information about joystick direction.
- - At the moment, STICK(0) & STICK(1) always return 0,
- while STICK(2) & STICK(3) return the state of
- the joystick in port 2 (B), where:
-
- STICK(2) is joystick B in X direction.
- STICK(3) is joystick B in Y direction.
-
- - Return values are:
-
- 0 = joystick is not engaged.
- 1 = movement is upward or to the right.
- -1 = movement is downward or to the left.
- - STICK currently goes straight to the hardware. A future
- revision may use the gameport device.
-
- STOP - This is functionally equivalent to END in ACE.
-
- STR$ - syntax: STR$(n)
- - Returns the string representation of the numeric value n.
- - The string includes a leading space or "-" depending upon
- the sign of the number.
-
- STRIG - syntax: STRIG(n)
- - Returns information about the state of a joystick button.
- - At the moment, STRIG(0), STRIG(1) & STRIG(2) always
- return 0.
- - STRIG(3) returns -1 if the port 2 joystick's
- fire button is *currently* pressed and 0 if it isn't.
- - STRIG currently goes straight to the hardware. A future
- revision may use the gameport device.
-
- STRING * - syntax: STRING <ident> [[ADDRESS <addr>] | [SIZE <size>]][,..]
- - Declares and initialises one or more string variables
- with an optional size or address. If the size is not
- specified, a length of MAXSTRINGLEN bytes is assumed.
- - If an address is specified, the SIZE option can't be used
- since the size of the area of memory pointed to by <addr>
- has already been determined.
-
- STRING$ - syntax: STRING$(I,J) or STRING(I,X$).
- - STRING$ returns a string of length I consisting of characters
- with ASCII code J or ASC(MID$(X$,1,1)).
-
- STRUCT * - Defines a new structure data type, thus:
-
- STRUCT <ident>
- <type> <ident1>
- <type> <ident2>
- .
- .
- <type> <identN>
- END STRUCT
-
- where <type> can be BYTE,SHORTINT,LONGINT,ADDRESS,SINGLE,
- STRING and <ident1>..<identN> are structure members of one
- of these data types.
- - See also: DECLARE and the section on structures in ace.doc.
- - Structures have been provided in ACE primarily to make
- communicating with the operating system a little nicer
- and to make dynamic data structures possible (see bst.b).
- - ACE structures cannot currently be array elements although
- there is nothing to stop you from storing structure start
- addresses in array elements.
- - See "Structures" section in ace.doc for more details.
-
- SUB..END SUB - syntax: SUB [<type>] <ident> [([<type>] <param> [..])]
- <statement1>
- <statement2>
- .
- .
- <statementN>
- END SUB
- where the optional <type> is one of: LONGINT,ADDRESS,
- SHORTINT,SINGLE or STRING.
- - In ACE, subprograms are non-static, allow recursion, have
- return values and have optional parameter lists.
- - Parameters are call-by-value but ACE does provide mechanisms
- for call-by-reference parameters.
- - SHARED variables are supported in ACE (see SHARED command).
- - See "Subprograms" section in ace.doc for more details.
-
- SWAP - syntax: SWAP <object>,<object>
- where <object> is a simple/external variable, parameter,
- array element, structure or structure member.
- - This command swaps the value of the specified data objects.
- - SWAP is not intended to be used for exchanging two whole
- arrays.
- - ACE currently assumes a maximum length of MAXSTRINGLEN
- when swapping strings.
-
- SYSTEM - syntax: SYSTEM n
- where n is an integer exit value or return code.
- - SYSTEM causes an ACE program to exit with the specified
- return code. The latter can be tested in a shell script
- as WARN, ERROR etc. This value is not returned if a program
- is Workbench-launched.
- - Note that in AmigaBASIC SYSTEM returns from the interpreter
- to the shell/CLI or Workbench. The same is true in ACE,
- except that END and STOP will also do this, so SYSTEM's
- purpose in ACE is different to that in AmigaBASIC.
-
- TAB - syntax: TAB(n)
- - Used in conjunction with PRINT to move the print position
- to the nth column.
- - TAB(n) - where n=1..81.
- - if n>81, wraparound will occur.
- - if n<1, the next print position will be column 1 (leftmost).
-
- TAN - syntax: TAN(n)
- - Returns the tangent of n.
-
- TIME$ - syntax: TIME$
- - Returns the current time as a string of the format:
-
- hh:mm:ss
-
- where hh is hours, mm is minutes and ss is seconds.
-
- TIMER - syntax: TIMER
- - Returns a *single-precision* value corresponding to
- seconds elapsed since midnight.
- or
- - syntax: TIMER(n) [ON|OFF|STOP], where n is seconds.
- - see Event trapping section in ace.doc.
-
- TRANSLATE$ - syntax: TRANSLATE$(<string-expression>)
- - Returns the phoneme-string equivalent of <string-expression>
- where the latter contains words.
-
- TURN * - syntax: TURN n
- - Rotates the turtle by n degrees.
- - If n is negative, the turtle will rotate counter-clockwise
- while if it is positive, the rotation will be clockwise.
-
- TURNLEFT * - syntax: TURNLEFT n
- - Rotates the turtle counter-clockwise by n degrees.
- - If n is negative, the result will be the same as
- TURNRIGHT ABS(n).
-
- TURNRIGHT * - syntax: TURNRIGHT n
- - Rotates the turtle clockwise by n degrees.
- - If n is negative, the result will be the same as
- TURNLEFT ABS(n).
-
- UCASE$ - syntax: UCASE$(<string-expression>)
- - Returns a string with all alphabetic characters in
- upper case.
-
- VAL - syntax: VAL(X$)
- - Returns the numeric value of X$ as a single-precision
- number.
- - The translation of integers and fixed-point and exponential
- format real constants is supported.
- - The hexadecimal and octal prefixes (&H and &O) are recognised
- by VAL.
- - There may be a loss of accuracy if the string contains a
- LARGE long integer value, due to the limitations of the
- single-precision numeric format. To overcome this, use
- the LONGVAL& function in the include file longval.h, thus:
-
- #include <longval.h>
- X$="123456789"
- X& = longval&(X$)
-
- VARPTR - syntax: VARPTR(<data-object>)
- - Returns the absolute address of a numeric variable,
- string, array, array element, structure or structure
- member.
- - You can safely use VARPTR to find a string variable's
- address (SADD has also been provided for string variables
- and expressions).
- - Unlike AmigaBASIC, an object's address does *not* move
- around in memory once allocated.
- - In ACE, the symbol "@" can be used instead of VARPTR,
- eg: addr& = @n(2) '..finds address of an array element
- - When used in conjunction with a structure variable x,
- @x will return the address of the variable itself, NOT
- the start address of the structure (see "Structures" in
- ace.doc for more).
- - See also section on indirection operators in ace.doc.
-
- WAVE - syntax: WAVE voice,SIN | [waveform-address,byte-count]
- - Defines a waveform of any length to be used by the SOUND
- statement for a specified audio channel (voice: 0..3).
- - If the SIN option is used, a sine waveform table is
- allocated to the specified channel. This is the default
- waveform for the SOUND statement.
- - Unlike AmigaBASIC, the number of bytes in the waveform
- table must be specified.
- - See the Sound section in ace.doc.
-
- WHILE..WEND - syntax: WHILE <condition>
- .
- .
- WEND
-
- where <condition> is an expression which reduces
- to a boolean (true/false) value.
-
- - Statements inside the WHILE and WEND are executed
- while the <condition> is true (ie: non-zero).
-
- WINDOW - The ACE syntax for the window statement is:
-
- WINDOW n,[title-string],(x1,y1)-(x2,y2)
-
- - WINDOW OUTPUT n and WINDOW CLOSE n are the same
- as in AmigaBASIC.
- - The window function syntax is still WINDOW(n) in ACE.
-
- WINDOW(0) - same as window(1)
- WINDOW(1) - window-id of current output window.
- WINDOW(2) - present width of current output window.
- WINDOW(3) - present height of current output window.
- WINDOW(4) - x-coordinate in current output window where
- next pixel will be plotted.
- WINDOW(5) - y-coordinate in current output window where
- next pixel will be plotted.
- WINDOW(6) - max legal colour-id for current output window.
- WINDOW(7) - pointer to Intuition Window for current output
- window.
- WINDOW(8) - pointer to Rastport of current output window.
- WINDOW(9) - pointer to AmigaDOS file handle for current
- output window.
- WINDOW(10) - foreground pen in current output window.
- WINDOW(11) - background pen in current output window.
-
- - See the section on ACE windows in ace.doc for more details.
-
- WRITE - syntax: WRITE #filenumber,expression-list
- where filenumber corresponds to an open file.
- - The expression-list can contain any combination of
- data items (constants, variables) of any type
- separated by commas.
- - Note that the form of WRITE allowing for screen
- output is not currently supported by ACE.
- - See PRINT# re: the treatment of CHR$(0) in file I/O by ACE.
- - See also INPUT# and the section on files in ace.doc.
-
- XCOR * - Returns the turtle's current x-coordinate.
-
- YCOR * - Returns the turtle's current y-coordinate.
-
- XOR - Boolean operator: X XOR Y.
-
- X Y Out
- -----------
- T T F
- T F T
- F T T
- F F F
-