home *** CD-ROM | disk | FTP | other *** search
/ The Hacker's Encyclopedia 1998 / hackers_encyclopedia.iso / pc / softdox / omega.doc < prev    next >
Encoding:
Text File  |  2003-06-11  |  17.8 KB  |  509 lines

  1.                   OMEGA : Neural Cybertank Design and Simulation
  2.  
  3.         The following is a listing of the appendices in the Cybertank
  4.    Engineer's Handbook.  It includes the syntax of all the available commands
  5.    and variables.  If you have any background in programming, this should be
  6.    all that you will need to program a tank.
  7.  
  8.  
  9.                                 CCL RESERVED WORDS
  10.  
  11.         The following list of words cannot be used in user defined variables.
  12.  
  13. ACTIVE          ALIGN           ALIGNED         ALLY            ARE
  14. ARMOR           AT              AVAILABLE       BACKWARD        BEEP
  15. BEING           BEYOND          BRANCH          BREAK           CLEAR
  16. CLOSEST         CODE            COMMLINK        COPY            DATA
  17. DESTRUCT        DETECT          DIRECTION       DISTANCE        DO
  18. DOWN            EMPTY           ENEMY           FACE            FACING
  19. FIRE            FOR             FORWARD         FOUND           FROM
  20. FUEL            FUNCTIONAL      GET             GOSUB           GOTO
  21. HQ              IF              INACTIVE        INCLUDE         INTERNAL
  22. IS              JAM             KEY             KIT             LAST
  23. LAUNCH          LEFT            LOCK            LOCKED          LOWER
  24. MOVE            MOVEMENT        NOT             OBJECT          OBSTRUCTED
  25. OBSTRUCTION     OFF             ON              PRESSED         RAISE
  26. RANDOM          RANGE           REMAINING       REMOTE          REPAIR
  27. RESUME          RETURN          RIGHT           ROTATE          SCAN
  28. SCANNED         SCANNER         SELF            SHIELD          SIGNAL
  29. SWITCH          TANK            TEAM            THEN            TO
  30. TRANSMIT        TREADS          TURN            UNAVAILABLE     UNLOCK
  31. UNLOCKED        UP              WAS             WEAPON          WITH
  32. WITHIN
  33.  
  34.                              CCL SYSTEM VARIABLES
  35.  
  36.         The following is a list of all the CCL System Variables, Feel free
  37.      to use them, but remember that they cannot be altered or used as labels.
  38.  
  39. AllyCode           AllyDir            AllyDist           AllyEnemyDir
  40. AllyEnemyDist      AllyEnemyX         AllyEnemyY         AllyHQX
  41. AllyHQY            AllyNum            AllyX              AllyY
  42. ArmorDamage        CopyCode           CopyDir            CopyDist
  43. CopyEnemyDir       CopyEnemyDist      CopyEnemyX         CopyEnemyY
  44. CopyNum            CopyX              CopyY              EnemyDist
  45. EnemyHQDist        EnemyHQX           EnemyHQY           EnemyX
  46. EnemyY             FuelLevel          IntDamage          KitsLeft
  47. ObjDist            ObjType            ObjX               ObjY
  48. ObstacleDist       ObstacleType       ObstacleX          ObstacleY
  49. RandomNum          RemotesLeft        ScanDamage         ScanDir
  50. TankDir            TankNum            TankX              TankY
  51. TreadDamage        XYDist             WeapDamage
  52.  
  53.         The following are complete descriptions of the system variables.
  54.  
  55. AllyCode        Code transmitted by team member.  This value ranges from 1-100.
  56.  
  57. AllyDir         The last direction heading of a transmitting team member.
  58.  
  59. AllyDist        The distance between the transmitting and recieving tanks.
  60.  
  61. AllyEnemyDir    The direction heading of the last enemy tank scanned by
  62.                 the transmitting team member.
  63.  
  64. AllyEnemyDist   The distance to the enemy tank as it was last scanned by the
  65.                 transmitting team member.
  66.  
  67. AllyEnemyX      The X coordinate of the last enemy scanned by the transmitting
  68.                 team member, ranging from 1 to 62.
  69.  
  70. AllyEnemyY      The Y coordinate of the last enemy scanned by the transmitting
  71.                 team member, ranging from 1 to 62.
  72.  
  73. AllyHQX         The X coordinate of your team's headquarters.
  74.  
  75. AllyHQY         The Y coordinate of your team's headquarters.
  76.  
  77. AllyNum         The identification number of the transmitting team member,
  78.                 based on the order in which it was selected in the
  79.                 Simulation Design Module.
  80.  
  81. AllyX           The X coordinate of the transmitting team member.
  82.  
  83. AllyY           The Y coordinate of the transmitting team member.
  84.  
  85. ArmorDamage     This is the % of damage to the armor, ranging from 0 (intact)
  86.                 to 100 (destroyed).
  87.  
  88. CopyCode        Holds a copy of AllyCode when COPY COMMLINK DATA command
  89.                 is executed.
  90.  
  91. CopyDir         Holds a copy of AllyDir when COPY COMMLINK DATA command
  92.                 is executed.
  93.  
  94. CopyDist        Holds a copy of AllyDist when COPY COMMLINK DATA command
  95.                 is executed.
  96.  
  97. CopyEnemyDir    Holds a copy of AllyEnemyDir when COPY COMMLINK DATA command
  98.                 is executed.
  99.  
  100. CopyEnemyDist   Holds a copy of AllyEnemyDist when COPY COMMLINK DATA command
  101.                 is executed.
  102.  
  103. CopyEnemyX      Holds a copy of AllyEnemyX when COPY COMMLINK DATA command
  104.                 is executed.
  105.  
  106. CopyEnemyY      Holds a copy of AllyEnemyY when COPY COMMLINK DATA command
  107.                 is executed.
  108.  
  109. CopyNum         Holds a copy of AllyNum when COPY COMMLINK DATA command
  110.                 is executed.
  111.  
  112. CopyX           Holds a copy of AllyX when COPY COMMLINK DATA command
  113.                 is executed.
  114.  
  115. CopyY           Holds a copy of AllyY when COPY COMMLINK DATA command
  116.                 is executed.
  117.  
  118. EnemyDist       The distance between your tank and the last scanned enemy.
  119.  
  120. EnemyHQDist     The distance between your tank and the enemy headquarters.
  121.                 (Unknown until the Enemy HQ is found by you or transmitted
  122.                 by a team member)
  123.  
  124. EnemyHQX        The X coordinate of the enemy headquarters.
  125.                 (Unknown until the Enemy HQ is found by you or transmitted
  126.                 by a team member)
  127.  
  128. EnemyHQY        The Y coordinate of the enemy headquarters.
  129.                 (Unknown until the Enemy HQ is found by you or transmitted
  130.                 by a team member)
  131.  
  132. EnemyX          The enemy tank's last scanned X coordinate.
  133.  
  134. EnemyY          The enemy tank's last scanned Y coordinate.
  135.  
  136. FuelLevel       Amount of fuel remaining, ranging from 0 (empty) to 100 (Full).
  137.  
  138. IntDamage       This is the % of damage to the internals, ranging from
  139.                 0 (intact) to 100 (destroyed).
  140.  
  141. KitsLeft        The number of repair kits available.
  142.  
  143. ObjDist         The distance between your tank and the last scanned object.
  144.  
  145. ObjType         The type of object last scanned.
  146.  
  147. ObjX            The X position of the last scanned object.
  148.  
  149. ObjY            The Y position of the last scanned object.
  150.  
  151. ObstacleDist    The distance between your tank and the last scanned movement
  152.                 obstacle.  Ranges from 0 to 3.
  153.  
  154. ObstacleType    The type of movement obstacle last scanned (see next section).
  155.  
  156. ObstacleX       The X coordinate of the last scanned movement obstacle.
  157.  
  158. ObstacleY       The Y coordinate of the last scanned movement obstacle.
  159.  
  160. RandomNum       Holds the number generated by the GET RANDOM Command.
  161.  
  162. RemotesLeft     The number of remote scanners left.
  163.  
  164. ScanDamage      This is the % of damage to the scanners, ranging from
  165.                 0 (intact) to 100 (destroyed).
  166.  
  167. ScanDir         The direction the scanner is currently facing (0 to 7).
  168.  
  169. TankDir         The direction the tank is currently facing (0 to 7).
  170.  
  171. TankNum         This is the number of your tank, based on the order it
  172.                 was selected in the SDM.
  173.  
  174. TankX           Your tank's current X coordinate.
  175.  
  176. TankY           Your tank's current Y coordinate.
  177.  
  178. TreadDamage     This is the % of damage to the treads, ranging from
  179.                 0 (intact) to 100 (destroyed).
  180.  
  181. XYDist          The distance between your tank and the specified coordinates
  182.                 calculated by the GET DISTANCE TO X Y command.
  183.  
  184. WeapDamage      This is the % of damage to the weapons, ranging from
  185.                 0 (intact) to 100 (destroyed).  The tank can still function
  186.                 with a destroyed weapon.
  187.  
  188.  
  189.                                 OBJECT TYPES
  190.  
  191.    The following list contains the possible values that ObjectType can have.
  192.  
  193.         Type Value      Description
  194.           00            No Object
  195.           01            Roads, Grass, Etc...
  196.           02            Water
  197.           03            Damaged Cybertanks, squashed trees, craters
  198.           04            Trees
  199.           05            Houses, HQ
  200.           06            Buildings, barriers (Indestructible)
  201.           07 and up     Cybertanks
  202.  
  203.      Types 3-5 are destructible, while object type 6 is indestructible.
  204.  
  205.      Types 2 and up are detectable by the Movement Obstacle Sensor.
  206.  
  207.      Types 4-6 block a scanner's line of sight when scanning for enemy
  208.         tanks, etc.
  209.  
  210.  
  211.                             QUICK SYNTAX GUIDE
  212.  
  213.         All the commands that are available.  Words in [] are not needed,
  214.    but make the code easier to read.  Where "x" "y" are found, you type a
  215.    number between 1 and 62, separated by a SPACE (not a comma). "label" is
  216.    any word that does not include any of the reserved words.
  217.  
  218.   Tank Movement
  219. MOVE [TANK] FORWARD "#"                 40 cycles/space
  220. MOVE [TANK] BACKWARD "#"
  221. TURN [TANK] LEFT "#"                    16 cycles/angle
  222. TURN [TANK] RIGHT "#"
  223. TURN [TANK] TO "angle"
  224. TURN [TANK] TO "x" "y"
  225. TURN [TANK] TO FACE [ENEMY] [TANK]
  226. TURN [TANK] TO FACE ENEMY HQ
  227. ALIGN TANK [WITH SCANNER]               16 cycles/angle
  228. IF TANK [IS] ALIGNED [WITH SCANNER] THEN [BRANCH TO : DO] "label"
  229. IF TANK [IS] NOT ALIGNED [WITH SCANNER] THEN [BRANCH TO : DO] "label"
  230. IF [MOVEMENT IS] OBSTRUCTED THEN [BRANCH TO : DO] "label"
  231. IF [MOVEMENT IS] NOT OBSTRUCTED THEN [BRANCH TO : DO] "label"
  232. IF OBSTRUCTION [IS] ENEMY HQ THEN [BRANCH TO : DO] "label"
  233. IF OBSTRUCTION [IS] ALLY HQ THEN [BRANCH TO : DO] "label"
  234. IF TANK [IS] FACING [ENEMY] TANK THEN [BRANCH TO : DO] "label"
  235. IF TANK [IS] NOT FACING [ENEMY] TANK THEN [BRANCH TO : DO] "label"
  236. IF TANK [IS] FACING ENEMY HQ THEN [BRANCH TO : DO] "label"
  237. IF TANK [IS] NOT FACING ENEMY HQ THEN [BRANCH TO : DO] "label"
  238. IF TANK [IS] FACING "x" "y" THEN "label"
  239. IF TANK [IS] NOT FACING "x" "y" THEN "label"
  240. DETECT [OBSTRUCTION] AT "#"
  241. DETECT [OBSTRUCTION] AT TANK DIRECTION
  242. DETECT [OBSTRUCTION] AT SCANNER DIRECTION
  243. IF [TANK] TREADS [ARE] FUNCTIONAL THEN [BRANCH TO : DO] "label"
  244. IF [TANK] TREADS [ARE] NOT FUNCTIONAL THEN [BRANCH TO : DO] "label"
  245.  
  246.  Using the Scanner
  247. ROTATE [SCANNER] LEFT "#"
  248. ROTATE [SCANNER] RIGHT "#"
  249. ROTATE [SCANNER] TO "angle"
  250. ROTATE [SCANNER] TO "x" "y"
  251. ROTATE [SCANNER] TO FACE [ENEMY] TANK
  252. ALIGN SCANNER [WITH TANK]
  253. SCAN FOR [ENEMY] TANK
  254. SCAN FOR [CLOSEST] OBJECT
  255. SCAN FOR ENEMY HQ
  256. LOCK SCANNER
  257. UNLOCK SCANNER
  258. JAM [SCANNER SIGNAL]
  259. LAUNCH [REMOTE SCANNER]
  260. IF SCANNER [IS] FUNCTIONAL THEN [BRANCH TO : DO] "label"
  261. IF SCANNER [IS] NOT FUNCTIONAL THEN [BRANCH TO : DO] "label"
  262. IF SCANNER [IS] ALIGNED [WITH TANK] THEN [BRANCH TO : DO] "label"
  263. IF SCANNER [IS] NOT ALIGNED [WITH TANK] THEN [BRANCH TO : DO] "label"
  264. IF [ENEMY] TANK [WAS] FOUND THEN "label"
  265. IF [ENEMY] TANK [WAS] NOT FOUND THEN "label"
  266. IF [CLOSEST] OBJECT [WAS] FOUND THEN [BRANCH TO : DO] "label"
  267. IF [CLOSEST] OBJECT [WAS] NOT FOUND THEN [BRANCH TO : DO] "label"
  268. IF ENEMY HQ [WAS] FOUND THEN [BRANCH TO : DO] "label"
  269. IF ENEMY HQ [WAS] NOT FOUND THEN [BRANCH TO : DO] "label"
  270. IF [CLOSEST] OBJECT [IS] ENEMY HQ THEN [BRANCH TO : DO] "label"
  271. IF [CLOSEST] OBJECT [IS] ALLY HQ THEN [BRANCH TO : DO] "label"
  272. IF [SCANNER IS] LOCKED THEN "label"
  273. IF [SCANNER IS] UNLOCKED THEN "label"
  274. IF [TANK IS] BEING SCANNED THEN [BRANCH TO : DO] "label"
  275. IF [TANK IS] NOT BEING SCANNED THEN [BRANCH TO : DO] "label"
  276. IF REMOTE [SCANNER IS] AVAILABLE THEN [BRANCH TO : DO] "label"
  277. IF REMOTE [SCANNER IS] UNAVAILABLE THEN [BRANCH TO : DO] "label"
  278.  
  279.  Using the Weapon
  280. FIRE [WEAPON] AT [ENEMY] TANK
  281. FIRE [WEAPON] AT [CLOSEST] OBJECT
  282. FIRE [WEAPON] AT OBSTRUCTION
  283. FIRE [WEAPON] AT "x" "y"
  284. FIRE [WEAPON] AT TANK DIRECTION
  285. FIRE [WEAPON] AT SCANNER DIRECTION
  286. FIRE [WEAPON] AT ENEMY HQ
  287. IF WEAPON [IS] FUNCTIONAL THEN [BRANCH TO : DO] "label"
  288. IF WEAPON [IS] NOT FUNCTIONAL THEN [BRANCH TO : DO] "label"
  289. IF [ENEMY] TANK [IS] WITHIN [WEAPON] RANGE THEN [BRANCH TO : DO] "label"
  290. IF [ENEMY] TANK [IS] BEYOND [WEAPON] RANGE THEN [BRANCH TO : DO] "label"
  291. IF [CLOSEST] OBJECT [IS] WITHIN [WEAPON] RANGE THEN [BRANCH TO : DO] "label"
  292. IF [CLOSEST] OBJECT [IS] BEYOND [WEAPON] RANGE THEN [BRANCH TO : DO] "label"
  293. IF ENEMY HQ [IS] WITHIN [WEAPON] RANGE THEN [BRANCH TO : DO] "label"
  294. IF ENEMY HQ [IS] BEYOND [WEAPON] RANGE THEN [BRANCH TO : DO] "label"
  295.  
  296.  Tank Status
  297. IF FUEL [IS] REMAINING THEN [BRANCH TO : DO] "label"
  298. IF FUEL [IS] EMPTY THEN [BRANCH TO : DO] "label"
  299. SELF DESTRUCT
  300.  
  301.  Defense Shield
  302. RAISE [SHIELD]
  303. LOWER [SHIELD]
  304. IF SHIELD [IS] UP THEN [BRANCH TO : DO] "label"
  305. IF SHIELD [IS] DOWN THEN [BRANCH TO : DO] "label"
  306.  
  307.  Tank Repairs
  308. REPAIR INTERNAL
  309. REPAIR ARMOR
  310. REPAIR TREADS
  311. REPAIR SCANNER
  312. REPAIR WEAPON
  313. IF [REPAIR] KIT [IS] AVAILABLE THEN [BRANCH TO : DO] "label"
  314. IF [REPAIR] KIT [IS] UNAVAILABLE THEN [BRANCH TO : DO] "label"
  315.  
  316.  Using the CommLink
  317. TRANSMIT [CODE] "#" [TO TEAM]
  318. CLEAR [COMMLINK] DATA
  319. COPY [COMMLINK] DATA
  320. SWITCH [COMMLINK] ON
  321. SWITCH [COMMLINK] OFF
  322. IF ALLY TANK "#" [IS] ACTIVE THEN [BRANCH TO : DO] "label"
  323. IF ALLY TANK "#" [IS] INACTIVE THEN [BRANCH TO : DO] "label"
  324.  
  325.  Miscellaneous Commands
  326. GET DISTANCE [TO] "x" "y"
  327. GET RANDOM [TO "#"]
  328. BEEP
  329. BREAK
  330.  
  331.  Manual Control
  332. IF KEY [PRESSED] THEN [BRANCH TO : DO] "label"
  333. IF [LAST] KEY [PRESSED] = "1 character" THEN [BRANCH TO : DO] "label"
  334.  
  335.  System Commands
  336. BRANCH TO "label"
  337. GOTO "label"
  338. DO "label"
  339. GOSUB "label"
  340. RESUME
  341.  
  342.  Using Library Capsules
  343. INCLUDE "capsule filename"
  344.  
  345.  
  346.                             Authorization Errors
  347.  
  348. DUPLICATE LABEL FOUND
  349.         Occurs when the same label is used twice in the AI.
  350.  
  351. MAXIMUM NUMBER OF LABELS EXCEEDED
  352.         Too many labels, or labels too long.  Try shorter labels.
  353.  
  354. UNKNOWN COMMAND
  355.         Unrecognized command, usually because of a typo.
  356.  
  357. USER VARIABLES EXCEEDED
  358.         You are only allowed 32 variables in a program.
  359.  
  360. DOES NOT COMPUTE IN LINE
  361.         Occurs if command is incompete, ie "SCAN FOR FRIENDLY TANK", which
  362.         almost makes sense.
  363.  
  364. VALUE USED OUT OF RANGE...
  365.         Occurs when a value in a statement is not within the allowed
  366.         range, ie "TURN TANK TO 9", where 9 is not between 0-7.
  367.  
  368. THE LABEL ... WAS NOT FOUND...
  369.         Occurs when you try to reference a label that does not exist.
  370.  
  371. THE FOLLOWING LINE IS AN ILLEGAL LABEL
  372.         A label must be on the left margin, a line must be tabbed over.
  373.  
  374. THE FOLLOWING LABEL IS TOO LONG
  375.         A label must not be any longer than 10 characters.
  376.  
  377. THE FOLLOWING CAPSULE WAS NOT FOUND
  378.         You are attempting to include a capsule that is not on the disk.
  379.         Check your spelling of the name.
  380.  
  381. IF YOU INCLUDE A CAPSULE, THAT CAPSULE CANNOT INCLUDE ANOTHER
  382.         You cannot imbed INCLUDEd capsules.
  383.  
  384. YOUR TANK MUST HAVE INTELLIGENCE BEFORE IT CAN BE AUTHORIZED
  385.         Your tank must have AI.
  386.  
  387. YOU ARE MISSING ONE OR MORE ITEMS FROM YOUR TANK'S CHASSIS
  388.         Your tank must have one of all the major items; Weapon, scanner, etc.
  389.  
  390. THE COST OF YOUR TANK'S CHASSIS EXCEEDS YOUR AVAILABLE BUDGET
  391.         Your tank's chassis cannot exceed your budget.
  392.  
  393.  
  394.         The following is a sample listing of 'DINKY', in your resource
  395.                                 directory.
  396.         This is just a very simple tank.  Your tank can be as complex as
  397.                                 you wish.
  398.  
  399. * * * * * * * * * * * * * * * * *
  400. *                               *
  401. *           D I N K Y           *
  402. *                               *
  403. * * * * * * * * * * * * * * * * *
  404. *                               *
  405. *   CODE: OSI-D0923-23122-000   *
  406. *                               *
  407. *   DESIGNER: STUART B. MARKS   *
  408. *                               *
  409. *  STANDARD CLEARANCE REQUIRED  *
  410. *                               *
  411. * * * * * * * * * * * * * * * * *
  412.  
  413.  
  414. START
  415.     DO TANKSEARCH
  416.     DO ATTACKTANK
  417.     BRANCH TO START
  418.  
  419. * The following routine will
  420. * search for an enemy until one
  421. * is found.  Until an enemy is
  422. * found, the cybertank will move
  423. * forward, if possible.  If not
  424. * possible, the cybertank will
  425. * randomly either turn left or
  426. * right.
  427.  
  428. TANKSEARCH
  429.     SCAN FOR ENEMY TANK
  430.     IF ENEMY TANK WAS FOUND THEN TANKFOUND
  431.     ROTATE SCANNER LEFT 1
  432.     DETECT OBSTRUCTION AT TANK DIRECTION
  433.     IF MOVEMENT IS OBSTRUCTED THEN CHANGEDIR
  434.     MOVE FORWARD 1
  435.     BRANCH TO TANKSEARCH
  436.  
  437. CHANGEDIR
  438.     GET RANDOM TO 2
  439.     IF RANDOMNUM = 1 THEN CD1
  440. CD0
  441.     TURN TANK LEFT 1
  442.     DETECT OBSTRUCTION AT TANK DIRECTION
  443.     IF MOVEMENT IS OBSTRUCTED THEN BRANCH TO CD0
  444.     BRANCH TO TANKSEARCH
  445. CD1
  446.     TURN TANK RIGHT 1
  447.     DETECT OBSTRUCTION AT TANK DIRECTION
  448.     IF MOVEMENT IS OBSTRUCTED THEN BRANCH TO CD1
  449.     BRANCH TO TANKSEARCH
  450.  
  451. TANKFOUND
  452.     RETURN
  453.  
  454. * The following routine, assuming
  455. * an enemy was found, will close
  456. * in on the enemy until it is
  457. * within firing range.
  458.  
  459. ATTACKTANK
  460.     SCAN FOR ENEMY TANK
  461.     IF ENEMY TANK WAS NOT FOUND THEN TANKISGONE
  462.     IF ENEMY TANK IS WITHIN RANGE THEN KILLTANK
  463.     DETECT OBSTRUCTION AT SCANNER DIRECTION
  464.     IF MOVEMENT IS OBSTRUCTED THEN DO CLEARPATH
  465.     ALIGN TANK WITH SCANNER
  466.     MOVE TANK FORWARD 1
  467.     BRANCH TO ATTACKTANK
  468.  
  469. * Assuming the enemy is within
  470. * weapon range, the following
  471. * routine will fire at the enemy
  472.  
  473. KILLTANK
  474.     FIRE WEAPON AT ENEMY TANK
  475.     BRANCH TO ATTACKTANK
  476.  
  477. TANKISGONE
  478.     RETURN
  479.  
  480. * The following routine will try
  481. * clearing a path around whatever
  482. * is obstructing movement.
  483.  
  484. CLEARPATH
  485.     IF OBSTACLETYPE = 6 THEN PATHBLOCK
  486.     IF OBSTACLETYPE = 2 THEN PATHOK
  487.     FIRE WEAPON AT OBSTRUCTION
  488. PATHOK
  489.         RETURN
  490. PATHBLOCK
  491.     FINDDIR = SCANDIR
  492. PATHCHECK
  493.     DETECT AT FINDDIR
  494.     IF NOT OBSTRUCTED THEN PATHTURN
  495.     IF OBSTACLETYPE = 2 THEN PATHTURN
  496.     FINDDIR = FINDDIR + 1
  497.     GOTO PATHCHECK
  498. PATHTURN
  499.     IF TANKDIR = FINDDIR THEN PATHMOVE
  500.     TURN TANK TO FINDDIR
  501. PATHMOVE
  502.     MOVE TANK FORWARD 1
  503.     RETURN
  504.  
  505.  
  506. Another fine doc file from
  507.                                         The Mad Romulan
  508.  
  509.