This post was going to be about the CD command. However, I had no luck with getting it to work on any of the DOS’s. No errors, but just not working. Until I can figure out why, the CD command is being shelved while I work out the issue in a test program. So, for this post I’m going to summarize the current list of supported commands. Gathering this data will also aid in creating the Scriptee documentation. And as it turned out, also helped me identify several areas of code that need hardening. For simplicity, I’m presenting them in alphabetical order:
:<LABEL>
Defines a name/label for a section of script code. The label can be up to 40 characters in length and should only contain alpha-numeric characters. There is a maximum of 20 labels. And I just realized the labels need to be cleared when the CHAIN command is invoked because they will be invalid after the new script is loaded. There also needs to be a size check on the label. Look for those modifications in another post.
BACK <ICODE>
Sets the background of the screen to a specific character. This must be specified in the internal character code, not ATASCII. All values from 0 to 255 are accepted. Get your copy of Compute’s Third Book Of Atari handy as there is a great character reference in the back.
BOX <BOXID> X Y W H <STYLE>
Draws a box at the X and Y screen coordinate of width W and height H in given style. This requires six parameters. The first is a BOXID, which can be a letter from A through J (10 boxes are supported). You can reuse a BOXID if you want, but will lose the previous coordinate information by doing so.
The second and third parameters are the X and Y screen coordinate at which to place the box. The X and Y parameters can be separated with a space or comma.
The fourth and fifth are the width and height of the box. The W and H parameters can be separated with a space or comma.
The sixth is the style. Support styles are BLOCK, FAT, NONE, THIN, and XE.
If invalid coordinates or sizing are specified, script execution will stop and Scriptee will exit with an error.
CHAIN "DRIVE:>PATH>FILENAME.SCT"
Loads a new script and begins execution. The script name should be fully qualified and enclosed in quotes such that the drive, path (if any), filename, and extension are specified. The script name parameter can be up to 80 characters.
Note: When chaining scripts together, the internal variables for the real time clock and pick routines remain intact.
CLS
Clears the screen (Clear Le Screen).
DATET
Outputs the date to the current cursor position on the screen. The date format is YYYY.MM.DD. Currently the ability to alter the format does not exist.
EXIT
Stops execution of the running script and exits Scriptee. For command line DOS’s this should return control back to the command prompt. For non command line DOS’s, it may or may not return to DOS and load the DUP menu.
GETTD[G]
Gets the time and date from the real time clock device. This is the second real time clock command that should be used in a script, following RTC itself. If the APE-Time real time clock is in use, you can optionally add a G to the end of the command which tells Scriptee to get GMT instead of local time. On some APE-Time devices local time may report as GMT until the time zone is set. Use the SETTZ command to set the local time zone.
This command can be called as frequently as needed, and stores the retrieved values for later use.
If this is called without setting the real time clock type with the RTC command, script execution will stop and Scriptee will exit with an error.
GOXY X Y
Moves the cursor to the X and Y position specified. The next display output will appear at this location unless a coordinate is specified with it as well. The X and Y parameters can be separated with a space or comma. The X value is limited to the screen width in columns and the Y value is limited to the screen height in rows, both being 0 based.
If an invalid value is passed, the script will stop execution and Scriptee will exit with an error.
GOBXY <BOXID> X Y
Moves the cursor to the X and Y position in relation to the top left corner of the BOX specified by BOXID. This requires three parameters. The X and Y parameters can be separated with a space or comma. The first is the BOXID of a previously defined BOX.
The second and third are the X and Y offsets of the top left of the BOX coordinate.
If the coordinates are invalid, the script will stop execution and Scriptee will exit with an error.
GOTO <LABEL>
Sets the next script execution line to the first line following the label specified. If an invalid label is specified, the script execution will stop and Scriptee will exit with an error.
HDIV[K] <BOXID>/NOBOX Y <STYLE>
Draws a horizontal divider. This requires three parameters. The first parameter is a BOXID in which to draw the divider, which must have previously been defined. This can optionally be specified as NOBOX to draw a divider anywhere on the screen.
The second parameter is the Y location. When a BOXID is given as the first parameter, the Y location is the offset from the top of the box. When NOBOX is given as the first parameter, the Y location is the Y screen coordinate, and the divider is drawn the full screen width on that row.
The third parameter is the style to draw the divider in. Supported styles are BLOCK, LOWER, UPPER, NONE, and XE.
When the first parameter is a BOXID, the command supports an optional suffix of K. The K tells Scriptee to Keep the existing box frame styles intact. This allows mixing styles between the divider and box for additional creative control.
If the Y coordinate or style is invalid, script execution will stop and Scriptee will exit with an error.
HELP
Displays a brief help message. This parameter is only available when passed to Scriptee via the command line, limiting its’ usage to command line DOS’s. This displays the same version and copyright information as the VER command, but also includes a usage syntax message.
IF
IF PICK <CHAR> <COMMAND>
IF KEY TRUE <COMMAND>
IF KEY FALSE <COMMAND>
Tests one of two conditions and performs an action based on the result. The IF command supports two conditions: PICK and KEY.
IF PICK is used to test if the CHAR matches what the last PICK command retrieved from the user. If it does match, the COMMAND following will be processed.
IF KEY is used to test if a key has been pressed or not. IF KEY uses the next parameter to determine which case to test. Specifying TRUE checks for a keystroke. Specifying FALSE checks for NO keystroke. If the condition passes the COMMAND following will be processed.
Not all Scriptee commands are supported by the IF command – while technically possible, some don’t make sense to allow. Commands supported are: CLS, EXIT, GOTO, POKE, RUN, TEXT[E], TEXTXY[E], and WAIT.
If any of the following conditions occur, script execution will stop and Scriptee will exit with an error: a) something other than PICK or KEY is specified; b) something other than TRUE or FALSE is specified for IF KEY; c) an unsupported COMMAND is specified.
INV ON/OFF
Turns the inverse video mode on or off. Valid parameters are ON to cause all displayed output to be in inverse video, or OFF to cause all displayed output to be in normal video.
NL
Outputs a newline to the screen which moves the cursor to position 0 (far left) and the next row of the screen.
PICK <CHAR>...<CHAR>
Gets a choice of a single character from the user. This requires one variable length parameter which is a list of the characters that are valid responses. The command will continue processing keystrokes until a character from the parameter string it pressed. The inputs are forced capital. The parameter string should be listed in UPPERCASE, not enclosed in quotes, and can contain alpha-numerics only (A-Z, 0-9).
POKE <ADDRESS> <VALUE>
Sets a memory location to a value, just like the BASIC POKE command you remember. It requires two parameters – the memory address specified in decimal form from 0 to 65535, and the value to place in the location from 0 to 255. These parameters can be separated with a space or comma.
This was a quick cheat to allow setting screen colors, cursor speed, etc without using a bunch of commands which would increase code size. It turned out to be the correct solution.
RTC APE/RT8
Tells Scriptee which real time clock to use. Supported values are APE for the APE-Time clock accessible over the SIO bus (if present), or RT8 for the ICD R-Time 8 cartridge. This should be the very first real time clock command used.
RUN "DRIVE:>PATH>FILENAME.XEX"
Loads and runs a binary executable. The binary name should be fully qualified and enclosed in quotes such that the drive, path (if any), filename, and extension are specified. The binary name parameter can be up to 80 characters.
SETTZ "EST5EDT"
Sets the timezone to use for local time when using the APE-Time real time clock. The parameter should a valid timezone definition for APE-Time, an example is shown as “EST5EDT” which is U.S. Eastern.
If an attempt to use this command when the real time clock is set to RT8, an error will be displayed and Scriptee will exit.
TEXT[E] "TEXT"
Displays the quoted text at the current cursor position. This requires a single parameter which is the text string to display and must be enclosed in quotes. Adding the E suffix to the command causes a newline to be output after the text, returning the cursor to position 0 on the next line.
TEXTXY[E] X Y "TEXT"
Displays the quoted text at the screen coordinate denoted by X and Y. This requires three parameters. The first two are the X and Y coordinates at which to display the text, and the third is the text string to display. The X and Y parameters can be separated with a space or comma. The text string must be enclosed in quotes. Adding the E suffix to the command causes a newline to be output after the text, returning the cursor to position 0 on the next line.
TEXTBXY <BOXID> X Y "TEXT"
Displays the quoted text the screen coordinate denoted by X and Y in relation to the top left corner of the BOX specified by BOXID. This requires four parameters. The first is the BOXID of a previously defined BOX. The second and third are the X and Y offsets of the top left of the BOX coordinate. The X and Y parameters can be separated with a space or comma. The fourth is the text string to display, and must be enclosed in quotes. Because this is BOX related, the E suffix does not apply for TEXTBXY.
TIMET
Outputs the time to the current cursor position on the screen. The time format is HH:MM:SS. Currently the ability to alter the format does not exist.
TITLE[I] <BOXID> LEFT/RIGHT/CENTER TOP/BOTTOM <STYLE> "TEXT"
Displays the text string as a box frame title with left and right ornaments in the designated style. This requires five parameters. The first parameter is the BOXID to place the title on, and must have been previously defined.
The second parameter specifies the left to right location on the box frame specified as one of LEFT, RIGHT, or CENTER.
The third parameter specifies the top or bottom location on the box frame specified as TOP or BOTTOM. For the location parameters you can use the whole word, or just the first letter, and they can be separated with a space or comma.
The fourth parameter designates the style for the title ornaments (characters that appear on the left and right sides of the title text), and supports: BLOCK, FAT, NONE, THIN, and XE. If you want a nice blend into the frame, use the same style the box was defined with.
The fifth parameter is the title string itself. The text is limited in length to the box width minus two. The TITLE command supports and optional command suffix of I.
If specified it will cause the text portion of the title, not the ornaments, to be displayed in inverse video.
VER
Displays Scriptee version and copyright. This parameter is only available when passed to Scriptee via the command line, limiting its’ usage to command line DOS’s.
WAIT <0...240>
Pauses script execution for the specified number of seconds. Values can range from 0 seconds to 240 seconds (4 minutes). Why 0? It allows eating up an unspecified amount of time less than 1 second – think of it as a very quick pause. If you need a longer timeout than 240 seconds, you can call WAIT multiple times.
I’ve never been quite happy with the real time clock commands, and looking at the list I might consolidate them into just the RTC command itself. So there would be commands might be:
RTC APE/RT8/GETTD/SETTZ/DATE/TIME. I need to think about this some more.










































