diff --git a/.Docs/Acosx Words.md b/.Docs/Acosx Words.md
index 0cd5786e..fdae61d7 100644
--- a/.Docs/Acosx Words.md
+++ b/.Docs/Acosx Words.md
@@ -7,6 +7,7 @@ This document lists all of the **ACOS Words** supported in the A2osX implementat
## Words
| Word | Syntax | Status | Short | Description | Comment |
|-|-|-|-|-|-|
+| Word | Syntax | Status | Short | Description | Comment |
| ADDINT | ADDINT (*string1* [,*string2*...]) | Not Yet Implemented | Add keys to the interrupt table. | The ADDINT command will add more keys to the existing interrupt keys table. previous keys will not be cleared. The functions of the keys is the same as with the SETINT command. | |
| APPEND | APPEND #*device* | Not Yet Implemented | Set write operations for specified device to append to the end. | The APPEND statement is generally used to add data to an existing file. If you issue an APPEND statement, the file pointer will be moved to the end of the file. You can also find out the length of a file by doing an APPEND and then using the MARK function. Mark will then return the length of the file in bytes. | |
| BYTE | byte=*number*
byte=(*number*)
byte=(*number*)=*number*256 | Not Yet Implemented | Byte-level data manipulation function. | The BYTE function is similar to the FLAG function. It is a low overhead data storage unit. Just point to where in memory you want the data to be stored using the first syntax, and you can then access the data using the second or third syntax's. | |
@@ -20,6 +21,7 @@ This document lists all of the **ACOS Words** supported in the A2osX implementat
| DATE$ | *string*=DATE$ | Not Yet Implemented | Return string with current date. | The DATE$ function returns the current date in MM/DD/YY format. The input will be taken from whatever device was configured as a clock. If 00/00/00 is returned, then there is no clock in the system and the date hasn't been set. | |
| ECHO | ECHO=*string*
ECHO="" | Not Yet Implemented | Specify or clear characters to be echoed during user input. | The ECHO statement is used to set the echo character to be used with the INPUT statement (e.g ECHO="\*"
will mask password entry with asterisks). Once the echo has been set, that character will be sent each time a user types a character when entering text. The ECHO statement in the second syntax (setting to an empty string) will reset the echo function to normal where user input will send the character that is being typed. | |
| EDIT | EDIT(*number*) | Not Yet Implemented | Text editor operations. | The EDIT statement is the command used to interface ACOS with its editor. With the different EDIT statements, you can clear the editor, see how much space is free, etc. The following list gives all legal calls:
To setup the FLAG function, you need to first point it to a location in memory (*memloc*), which is typically 'ram' or 'ram2', but you can specify an offset, e.g. FLAG=ram+20
will specify that you're using the 20th byte inside of the 'ram' location.
Once the pointer is set up, you can use the FLAG function just like any variable using the remaining syntax forms outlined for reading/writing flags. | |
@@ -29,13 +31,13 @@ This document lists all of the **ACOS Words** supported in the A2osX implementat
| GOSUB | GOSUB *label* | Impl. | Call subroutine at specified label. | Calls subroutine *label* in the program and sets the point in code so that when a RETURN function is encountered, execution will resume after the GOSUB
statement. While behaves the same way as AppleSoft basic, it is worth pointing out that ACOS uses labels as targets instead of line numbers. | |
| GOTO | GOTO *label* | Impl. | Redirect program execution to specified label. | Redirects program execution to continue from *label*. Unlike GOSUB, no record of where the GOTO call occurred. As with GOSUB, it is worth pointing out that ACOS uses labels as targets intead of line number. | |
| HOME | HOME | Not Yet Implemented | Clear screen. | Clears the screen and positions the cursor at the top left. REMY TODO: Does this clear the remote session as well? | |
-| IF | IF *condition* [THEN] *statement1* [ELSE] *statement2* | In Development | Logical condition test and execution. | Evaluate *condition* and if true (or greater than zero), execute *statement1*. If optional ELSE keyword is specified, then a false condition will execute *statement2*. If ELSE is used, it must appear on the same line as the IF statement, i.e. there is no multi-line if/then/else construct like some other languages. Logical constructs for *condition* supports parenthesis, AND, and OR.
THEN is optional (as it is in AppleSoft BASIC) but if you use THEN, it cannot be followed by a label directly.(use IF arg THEN GOTO label). | | +| IF | IF *condition* [THEN] *statement1* [ELSE] *statement2* | Impl. | Logical condition test and execution. | Evaluate *condition* and if true (or greater than zero), execute *statement1*. If optional ELSE keyword is specified, then a false condition will execute *statement2*. If ELSE is used, it must appear on the same line as the IF statement, i.e. there is no multi-line if/then/else construct like some other languages. Logical constructs for *condition* supports parenthesis, AND, and OR.
THEN is optional (as it is in AppleSoft BASIC) but if you use THEN, it cannot be followed by a label directly.(use IF arg THEN GOTO label). | |
| INFO | *expression*=INFO(*optional*)
INFO(*optional*)=*expression* | Not Yet Implemented | Byte-level data manipulation function, specific to ACOS internals. | INFO can be used as either a statement or as a function. It is really a 'catch-all' of ACOS state value functions in nature in that many values that are more or less unrelated are accessible through it. The following table gives the meanings of all the INFO data.
argument r/w function| | | INPUT | INPUT [#*device*,] [@*mode*,] [\\] ["*text*"] *variable* [,[\\] *variable*..] | Not Yet Implemented | Get input from user, device, or file. | Gets input from a device or interactively with the user and stores the result in one-to-many variables. There are quite a few variations how the INPUT statement can be used, but at a minimum it requires one *variable* to be specified.
-------- ---- -----------------
INFO(0) r is there a caller online? (0=no)
INFO(1) r capacity of current message file.
INFO(2) r callers baud rate /300 (1=300)
INFO(3) r/w current number of nulls.
INFO(4) w top screen stats. (1=chat, 2=exec)
INFO(5) r/w executive user online? (1=yes)
INFO(6) r checks bit map for mail/msg bases for room.
Specifying the *device* is required if inputting data from a device handle (e.g. an open file). Omitting the *device* will default to getting input from the user.
A text prompt can be optionally specified by supplying *text* before the variables. The text can serve as a prompt (e.g. "What is your name? *input here*"). If backslash (\\) is put before or after the *text*, this will result in a newline being part of the prompt (note distinction between this and using backslash for multiple variables).
Multiple variables can be specified in either a comma-separated or backslash (\\) way (or a mixture thereof), though this is typically for file input rather than interactive user input. As with the PRINT statement, the comma is taken literally (e.g. if you were to read multiple fields from a comma-separated file), and the backslash as part of the variable list implies that there will be a newline to parse (e.g. INPUT #1, A\$\\B\$
reads two lines from the file, A\$ on the first line and B\$ on the second line).
The *mode* (with '@' symbol prefix) is an optional way of specifying how the INPUT command will behave. Using *mode* is ONLY for interactive input and cannot be combined with a *device*. The various modes are as follows:
LINK "A:MSG.SEG","BULLETINS"
). The label must be enclosed in quotes or must be in a string variable. Note that for the label to be usable by the LINK command, the label must be declared as PUBLIC in the target file. | |
| LOG | LOG *drivespec* | Not Yet Implemented | Change current filesystem drive. | The LOG statement simply changes the default disk drive to the *drivespec* drive. If the drive is not legal, a BAD DRIVE SPECIFIER error will occur. | |
@@ -81,7 +83,6 @@ This document lists all of the **ACOS Words** supported in the A2osX implementat
| WRITE | WRITE #*device*, *memloc*, *number* | Not Yet Implemented | Writes binary data. | The WRITE statement is the opposite of the READ statement. It is used to write unprocessed binary data from memory to a file or other device. Almost all the device channels can be written and none will generate errors. Just specify the memory location and length to be written. BJB TODO: Need to expand on this for the arguments. | |
-
## License
A2osX is licensed under the GNU General Pulic License |