Home
Documents
Appendices

APPENDIX

  • Appendix 1 - CCL RESERVED WORDS
  • Appendix 2 - CCL SYSTEM VARIABLES
  • Appendix 3 - OBJECT TYPES
  • Appendix 4 - QUICK SYNTAX GUIDE
  • Appendix 5 - AUTHORIZATION ERRORS

APPENDIX 1 - CCL RESERVED WORDS

The following list of words cannot be employed in User Defined Variabies.
  • ACTIVE
  • ALIGN
  • ALIGNED
  • ALLY
  • ARE
  • ARMOR
  • AT
  • AVAILABLE
  • BACKWARD
  • BEEP
  • BEING
  • BEYOND
  • BRANCH
  • BREAK
  • CLEAR
  • CLOSEST
  • CODE
  • COMMLINK
  • COPY
  • DATA
  • DESTRUCT
  • DETECT
  • DIRECTION
  • DISTANCE
  • DO
  • DOWN
  • EMPTY
  • ENEMY
  • FACE
  • FACING
  • FIRE
  • FOR
  • FORWARD
  • FOUND
  • FROM
  • FUEL
  • FUNCTIONAL
  • GET
  • GOSUB
  • GOT0
  • HQ
  • IF
  • INACTIVE
  • INCLUDE
  • INTERNAL
  • IS
  • JAM
  • KEY
  • KIT
  • LAST
  • LAUNCH
  • LEFT
  • LOCK
  • LOCKED
  • LOWER
  • MOVE
  • MOVEMENT
  • NOT
  • OBJECT
  • OBSTRUCTED
  • OBSTRUCTION
  • OFF
  • ON
  • PRESSED
  • RAISE
  • RANGE
  • REMAINING
  • REMOTE
  • REPAIR
  • RESUME
  • RETURN
  • RIGHT
  • ROTATE
  • RANDOM
  • SCAN
  • SCANNED
  • SCANNER
  • SELF
  • SHIELD
  • SIGNAL
  • SWITCH
  • TANK
  • TEAM
  • THEN
  • TO
  • TRANSMIT
  • TREADS
  • TURN
  • UNAVAILABLE
  • UNLOCK
  • UNLOCKED
  • UP
  • WAS
  • WEAPON
  • WITH
  • WITHIN

APPENDIX 2 - CCL SYSTEM VARIABLES

The following is a list of ail CCL System Variables. Feel free to use them, but remember that they cannot be altered or used as labels.
  • AllyCode
  • AllyDir
  • AllyDist
  • AllyEnemyDir
  • AllyEnemyDist
  • AllyEnemyX
  • AllyEnemyY
  • AllyHQX
  • AllyHQY
  • AllyNum
  • AllyX
  • AllyY
  • ArmorDamage
  • CopyCode
  • CopyDir
  • CopyDist
  • CopyEnemyDir
  • CopyEnemyDist
  • CopyEnemyX
  • CopyEnemyY
  • CopyNum
  • CopyX
  • CopyY
  • EnemyDist
  • EnemyHQDist
  • EnemyHQX
  • EnemyHQY
  • EnemyX
  • EnemyY
  • FuelLevel
  • IntDamage
  • KitsLeft
  • ObjDist
  • ObjType
  • ObjX
  • ObjY
  • ObstacleDist
  • ObstacleType
  • ObstacleX
  • ObstacleY
  • RandomNum
  • RemotesLeft
  • ScanDamage
  • ScanDir
  • TankDir
  • TankNum
  • TankX
  • TankY
  • TreadDamage
  • WeapDamage
  • XYDist
The following are complete descriptions of the system variables.
AllyCode Code transmitted by team member. This value ranges from 0-100.
 
AllyDir The last direction heading of a transmitting team member.
 
AllyDist The distance between the transmitting and the receiving team members.
 
AllyEnemyDir The direction heading of an enemy cybertank last scanned by the transmitting team member.
 
AllyEnemyDist The distance to the enemy cybertank as it was last scanned by the transmitting team member.
 
AllyEnemyX The enemy cybertank’s X coordinate as last scanned by transmitting team member: This value ranges from 1 to 62.
 
AllyEnemyY The enemy cybertank’s Y coordinate as last scanned by transmitting team member. This value ranges from 1 to 62.
 
AllyHQX X coordinate of your cybertank’s team headquarters.
 
AllyHQY Y coordinate of your cybertank’s team headquarters.
 
AllyNum The identification number of the transmitting team member. Cybertank identification numbers are based on the order in which they were selected in the Simulation Design Module.
 
AllyX The X coordinate of the transmitting team member.
 
AllyY The Y coordinate of the transmitting team member.
 
ArmorDamage This is the current armor damage percentage. ArmorDamage value ranges from 0 (fully intact) to 100 (destroyed). When ArmorDamage reaches 100, the cybertank is destroyed.
 
CopyCode Holds a copy of AllyCode when Copy Commlink Data command is executed.
 
CopyDir Holds a copy of AllyDir when Copy Commlink Data command is executed.
 
CopyDist Holds a copy of AllyDist when Copy CommLink Data command is executed.
 
CopyEnemyDir Holds a copy of AllyEnemyDir when Copy CommLink Data command is executed.
 
CopyEnemyDist Holds a copy of AllyEnemyDist when Copy CommLink Data command is executed.
 
CopyEnemyX Holds a copy of AllyEnemyX when Copy CommLink Data command is executed.
 
CopyEnemyY Holds a copy of AllyEnemyY when Copy CommLink Data command is executed.
 
CopyNum Holds a copy of AllyNum when Copy Commlink Data command is executed.
 
CopyX Holds a copy of AllyX when Copy CommLink Data command is executed.
 
CopyY Holds a copy of AllyY when Copy CommLink Data command is executed.
 
EnemyDist The distance between your cybertank and the last scanned enemy cybertank.
 
EnemyHQDist This is the distance between your cybertank and the enemy headquarters -- unknown to your cybertank until either found by scanning or transmitted by a team member.
 
EnemyHQX The X coordinate of the enemy headquarters -- unknown to your cybertank until either found by scanning or transmitted by a team member.
 
EnemyHQY The Y coordinate of the enemy headquarters -- unknown to your cybertank until either found by scanning or transmitted by a team member.
 
EnemyX The enemy cgbertank’s X coordinate at last scanned position.
 
EnemyY The enemy cybertank’s Y coordinate at last scanned position.
 
FuelLevel Amount of remaining fuel. This value ranges from 0 (empty) to 100 (full).
 
IntDamage Current damage percentage of your cybertank’s internal mechanisms. Ranges from 0 (fully intact) to 100 (destroyed). When this value reaches 100, the cybertank is terminated.
 
KitsLeft The number of repair kits remaining.
 
ObjDist The distance between your cybertank and the last scanned object.
 
ObjType The type of object last scanned (see Appendix 3 for list of possible values).
 
ObjX X coordinate of the last scanned object. This value ranges from 1 to 62.
 
ObjY Y coordinate of the last scanned object. This value ranges from 1 to 62. 
 
ObstacleDist The distance between your cgbertank and the last movement obstacle detected. This value ranges from 0 to 3.
 
ObstacleType The type of movement obstacle last detected (see Appendix 3 for list of possible values).
 
ObstacleX X coordinste of the last detected movement obstacle. This value ranges from 1 to 62.
 
ObstacleY Y coordinate of the last detected movement obstacle. This value ranges from 1 to 62.
 
RandomNum Holds the random value generated by the Get Random [to #] command.
 
RemotesLeft The number of remaining remote scanners.
 
ScanDamage Current damage percentage of your cybertank’s scanner. Ranges from 0 (fully intact) to 100 (destroyed). A cybertank is still operational with a destroyed scanner, but it cannot scan.
 
ScanDir The direction the scanner is currently facing. This value ranges from 0 to 7.
 
TankDir The direction your cybertank is currently facing. This value ranges from 0 to 7.
 
TankNum This Is the number of your cybertank. Cybertank numbers are based on the order they were selected in the SDM.
 
TankX Your cybertank’s current X coordinate.
 
TankY Your cybertank’s current Y coordinate.

 
TreadDamage Current damage percentage of your cybertank’s treads. This value ranges from 0 (fully intact) to 100 (destroyed). The cybertank still operates with destroyed treads, but it cannot move.
 
XYDist This holds the distance between your cybertank and the specified coordinate as calculated by the command Get Distance to “X” “Y”.
 
WeapDamage Current damage percentage of your cybertank’s weapon. This value ranges from 0 (fully intact) to 100 (destroyed). The cybertank Is still operational with a destroyed weapon, but it cannot fire.

APPENDIX 3 - OBJECT TYPES

The following list should be used as an aid in incorporating a System variable that reports an “object’s type.”
TYPE NUMBER DESCRIPTION
00 No object
01 Roads, grass, etc.
02 Water
03 Damaged cybertanks, squashed trees
04 Trees
05 Houses, HQ
06 Buildings, barriers
Greater than 6 Cybertanks

NOTES:

  • Object types 3-5 are destructible while object type 6 (buildings, barriers) is indestructible.
  • Object types 2-6 are detectable by the MOS. Cybertanks are also detectable by the MOS as objects with types greater than 6.
  • Object types 3-6 can be detected with the CCS. Cybertanks are also detectable by the CCS as objects with types greater than 6.
  • Object types 4-6 block a scanner’s line of sight when scanning for cybertanks and other objects.

APPENDIX 4 - QUICK SYNTAX GUIDE

For complete information on the commands, please see Part 3 of this handbook.

TANK MOVEMENT

MOVE [TANK] FORWARD "#"
MOVE [TANK] BACKWARD "#"
TURN [TANK] LEFT "#"
TURN [TANK] RIGHT "#"
TURN [TANK] TO "ANGLE"
TURN [TANK] TO "X" "Y"
TURN [TANK] TO FACE [ENEMY] [TANK]
TURN [TANK] TO FACE ENEMY HQ
ALIGN TANK [WITH SCANNER]
IF TANK [IS] ALIGNED WITH SCANNER] THEN [BRANCH TO : DO] "LABEL"
IF TANK [IS] NOT ALIGNED [WITH SCANNER] THEN [BRANCH TO : DO]
   "LABEL"
IF MOVEMENT IS] OBSTRUCTED THEN [BRANCH TO : DO] "LABEL"
IF [MOVEMENT IS] NOT OBSTRUCTED THEN [BRANCH TO : DO] "LABEL"
IF OBSTRUCTION [IS] ENEMY HQ THEN BRANCH TO : DO] "LABEL"
IF OBSTRUCTION [IS] ALLY HQ THEN [BRANCH TO : DO] "LABEL"
IF TANK [IS] FACING [ENEMY] TANK THEN [BRANCH TO : DO]
   "LABEL"
IF TANK [IS] NOT FACING [ENEMY] TANK THEN [BRANCH TO : DO] "LABEL"
IF TANK [IS] FACING ENEMY HQ THEN [BRANCH TO : DO] "LABEL"
IF TANK [IS] NOT FACING ENEMY HQ THEN [BRANCH TO : DO] "LABEL"
IF TANK [IS] FACING "X" "Y" THEN LABEL
IF TANK [IS] NOT FACING "X" "Y" THEN LABEL
DETECT [OBSTRUCTION] AT "#"
DETECT [OBSTRUCTION] AT TANK DIRECTION
DETECT [OBSTRUCTION] AT SCANNER DIRECTION
IF [TANK] TREADS [ARE] FUNCTIONAL THEN [BRANCH TO : DO] "LABEL"
IF [TANK] TREADS [ARE] NOT FUNCTIONAL THEN [BRANCH TO : DO]
   "LABEL"

USING THE SCANNER

ROTATE [SCANNER] LEFT "#"
ROTATE [SCANNER] RIGHT "#"
ROTATE [SCANNER] TO "ANGLE"
ROTATE [SCANNER] TO "X" "Y"
ROTATE [SCANNER] TO FACE [ENEMY] TANK
ALIGN SCANNER [WITH TANK]
SCAN FOR [ENEMY] TANK
SCAN FOR [CLOSEST] OBJECT
SCAN FOR ENEMY HQ
LOCK SCANNER
UNLOCK SCANNER
JAM [SCANNER SIGNAL]
LAUNCH [REMOTE SCANNER]
IF SCANNER [IS] FUNCTIONAL THEN [BRANCH TO : DO] "LABEL"
IF SCANNER [IS] NOT FUNCTIONAL THEN [BRANCH TO : DO] "LABEL"
IF SCANNER [IS] ALIGNED [WITH TANK] THEN [BRANCH TO : DO] "LABEL"
IF SCANNER [IS] NOT ALIGNED [WITH TANK] THEN [BRANCH TO : DO]
   "LABEL"
IF [ENEMY] TANK [WAS] FOUND THEN LABEL
IF [ENEMY] TANK [WAS] NOT FOUND THEN LABEL
IF [CLOSEST] OBJECT [WAS] FOUND THEN [BRANCH TO : DO] "LABEL"
IF [CLOSEST] OBJECT [WAS] NOT FOUND THEN [BRANCH TO : DO] "LABEL"
IF ENEMY HQ [WAS] FOUND THEN [BRANCH TO : DO] "LABEL"
IF ENEMY HQ [WAS] NOT FOUND THEN [BRANCH TO : DO] "LABEL"
IF [CLOSEST] OBJECT [IS] ENEMY HQ THEN [BRANCH TO : DO] "LABEL"
IF [CLOSEST] OBJECT [IS] ALLY HQ THEN [BRANCH TO : DO] "LABEL"
IF [SCANNER IS] LOCKED THEN LABEL
IF [SCANNER IS] UNLOCKED THEN LABEL
IF [TANK IS] BEING SCANNED THEN [BRANCH TO : DO] "LABEL"
IF [TANK IS] NOT BEING SCANNED THEN [BRANCH TO : DO] "LABEL"
IF REMOTE [SCANNER IS] AVAILABLE THEN [BRANCH TO : DO] "LABEL"
IF REMOTE [SCANNER IS] UNAVAILABLE THEN [BRANCH TO : DO] "LABEL"

USING THE WEAPON

FIRE WEAPON] AT [ENEMY] TANK
FIRE [WEAPON] AT [CLOSEST] OBJECT
FIRE [WEAPON] AT OBSTRUCTION
FIRE [WEAPON] AT "X" "Y"
FIRE WEAPON] AT TANK DIRECTION
FIRE [WEAPON] AT SCANNER DIRECTION
FIRE [WEAPON] AT ENEMY HQ
IF WEAPON [IS] FUNCTIONAL THEN [BRANCH TO : DO] "LABEL"
IF WEAPON [IS] NOT FUNCTIONAL THEN [BRANCH TO : DO] "LABEL"
IF [ENEMY] TANK [IS] WITHIN [WEAPON] RANGE THEN [BRANCH TO : DO]
   "LABEL"
IF [ENEMY] TANK [IS] BEYOND [WEAPON] RANGE THEN [BRANCH TO : DO]
   "LABEL"
IF [CLOSEST] OBJECT [IS] WITHIN [WEAPON] RANGE THEN
   [BRANCH TO : DO] "LABEL"
IF [CLOSEST] OBJECT [IS] BEYOND [WEAPON] RANGE THEN
   [BRANCH TO : DO] "LABEL"
IF ENEMY HQ [IS] WITHIN WEAPON] RANGE THEN [BRANCH TO : DO]
   "LABEL"
IF ENEMY HQ [IS] BEYOND [WEAPON] RANGE THEN [BRANCH TO : DO]
   "LABEL"

TANK STATUS

IF FUEL [IS] REMAINING THEN [BRANCH TO : DO] "LABEL"
IF FUEL [IS] EMPTY THEN [BRANCH TO : DO] "LABEL"
SELF DESTRUCT

Defense Shield

RAISE [SHIELD]
LOWER [SHIELD]
IF SHIELD [IS] UP THEN [BRANCH TO : DO] "LABEL"
IF SHIELD [IS] DOWN THEN [BRANCH TO : DO] "LABEL"

Tank Repairs

REPAIR INTERNAL
REPAIR ARMOR
REPAIR TREADS
REPAIR SCANNER
REPAIR WEAPON
IF [REPAIR] KIT [IS] AVAILABLE THEN [BRANCH TO : DO] "LABEL"
IF [REPAIR] KIT [IS] UNAVAILABLE THEN [BRANCH TO : DO] "LABEL"

USING THE COMMLINK

TRANSMIT [CODE] "#" TO TEAM]
CLEAR [COMMLINK] DATA
COPY [COMMLINK] DATA
SWITCH [COMMLINK] ON
SWITCH [COMMLINK] OFF
IF ALLY TANK "#" [IS] ACTIVE THEN [BRANCH TO : DO] "LABEL"
IF ALLY TANK "#" [IS] INACTIVE THEN [BRANCH TO : DO] "LABEL"

MISCELLANEOUS COMMANDS

GET DISTANCE [TO] "X" "Y"
GET RANDOM [TO "#"]
BEEP
BREAK

ATTAINING MANUAL CONTROL

IF [LAST] KEY [PRESSED] THEN [BRANCH TO : DO] "LABEL"
IF [LAST] KEY [PRESSED] = "1 CHARACTER" THEN [BRANCH TO : DO]
   "LABEL"

SYSTEM COMMANDS

BRANCH TO "LABEL"
GOTO "LABEL"
DO "LABEL"
GOSUB "LABEL"
RESUME

USING LIBRARY CAPSULES

INCLUDE "CAPSULE FILENAME"

APPENDIX 5 - AUTHORIZATION ERRORS

The following lists all the possible errors that may occur during the Authorization process in the Cybertank Authorization Module (CAM).

DUPLICATE LABEL FOUND

This error occurs when the same label has been used twice in the AI. For a complete discussion of labels, see Part 1, Section 6.4 of this handbook.

FATAL ERROR: MAXIMUM NUMBER OF LABELS EXCEEDED

This error occurs when you exceed the memory allocated for label names. To remedy, try using fewer labels or shorter label names. For example, instead of using the label “SHOOTTANK”, try using something like "SHOOT”.

UNKNOWN COMMAND

This error occurs when an unrecognizable command Is included in the AI. This normally occurs because of a misspelled or missing word.

USER VARIABLES EXCEEDED

This error occurs if you attempt to use more than 32 User Variables. The only way to correct this error is to cut down on the number of User Variables. For a complete discussion of User Variables, see Pert 1, Section 6 of this manual.

DOES NOT COMPUTE IN THE LINE

This error occurs when an instruction in the AI is incomplete. For example, the instruction “SCAN FOR FRIENDLY TANK” is almost a valid instruction, but not quite since it is not complete.

VALUE USED IS OUT OF RANGE IN FOLLOWING LINE:

This error occurs when a value in an instruction is not within the allowable range. For example, in the instruction “TURN TANK TO 9”, the 9 is an illegal value because you can only turn Your tank to values 0-7.

THE LABEL ... WAS NOT FOUND IN THE FOLLOWING LINE:

This error occurs when an instruction attempts to reference a label which does not exist.

THE FOLLOWING LINE IS AN ILLEGAL LABEL:

When this error occurs, it signifies that a line in the AI. positioned in the left margin, is not a valid label. This is often caused by incorrect spacing or indentation.

THE FOLLOWING LABEL IS TOO LONG:

This error occurs when a label of more than 10 characters is encountered. Shorten the length of the label.

THE FOLLOWING CAPSULE WAS NOT FOUND:

This error occurs when attempting to INCLUDE a Capsule routine and the Capsule was not found. To remedy this error, simply insert the Disc which contains the Capsule routine into any access slot.

IF YOU INCLUDE A CAPSULE, THAT CAPSULE CANNOT INCLUDE ANOTHER

This error occurs when you INCLUDE a Capsule routine and that Capsule attempts to INCLUDE another. To remedy, you must remove all INCLUDE statements from any Capsules you wish to INCLUDE.

YOUR TANK MUST BE GIVEN INTELLIGENCE BEFORE IT CAN BE AUTHORIZED

This error occurs if your cybertank has no AI.

YOU ARE MISSING ONE OR MORE ITEMS FROM YOUR TANK’S CHASSIS

This error occurs if you have forgotten to install a needed component on your cybertank. For example, a cybertank cannot be Authorized if it has no scanner system. To solve, return to the Chassis Design Module (CDM) and obtain all necessary components.

THE COST OF YOUR TANK’S CHASSIS EXCEEDS YOUR AVAILABLE BUDGET

This error occurs when you attempt to Authorize a cybertank designed by someone with a higher clearance level, and the equipment on their cybertank exceeds the budget limitations of your clearance level.

Toadstool's Home | Contact © 2003 Toadstool's Game Shrines. All Rights Reserved.