💾 Archived View for gemini.spam.works › mirrors › textfiles › apple › DOCUMENTATION › robotwar.3.of.… captured on 2020-10-31 at 20:59:50.

View Raw

More Information

-=-=-=-=-=-=-


2. Moving Text

There are also methods of moving the text itself, when in the cursor
mode. The direction, in which the text moves, is set by pressing the '+'
key (a forward direction) or the '-' key (a backward direction) prior to
pressing the L, P, or A keys. 

A) The L key will move the text up or down one line. 

B) The P key will move the text up or down one full page. 

C) The A key will set the text in continuous scrolling motion. 

You can move to the beginning or end of the text by pressing the Esc key
first and then the '-' key or the '+' key respectively. 

3. Deleting Text

This function deletes text from the screen and the memory if the Apple,
but not from the disk. There are three methods of deleting text: 

A) Ctrl-D Any character may be deleted by positioning the cursor over
the character and pressing Ctrl-D. 

B) Ctrl-G Any line, or portion of a line, may be deleted by positioning
the cursor over a character and pressing Ctrl-G. This will delete the
character and the rest of the line that follows it. 

C) Esc Ctrl-Z All of the text, presently in the text-editor may be
deleted by pressing Esc and then Ctrl-Z.  You will have to confirm the
command by pressing the # key.  This protects against accidental
erasures. 

4. Block Operations

This function allows you to mark a portion of the current source code,
and then manipulate that block to another place in the file. You must
designate the beginning and the end of a block by placing block markers
at those two points. To insert a block marker immediately after the
cursor, press Ctrl-V to mark the beginning and end of th block, and it
will be represented on the screen by a flashing ')' sign. Only one block
can exist in a file at any one time and any attempt to insert a block
mark when a block has already been defined will result in the error
message "BLOCK ALREADY MARKED". 

When a block is marked, press Esc V and the block options will be
displayed on the bottom of the screen. They are Copy, Delete, and
Unmark. 

To copy a block, move the cursor to the location in the file where you
want to insert the copy of the block and press C. This is a
non-destructive copy. 

To delete a block. Pressing D will remove the block and the block
markers from memory. 

To unmark the block press U. You may also remove markers with normal
delete commands. Remember, these changes only exits in the memory and
not on the disk. 

5. Find Operations

Fo find all occurrences of a word or phrase in a file, use the find
command. Press Ctrl-F and you will be prompted wit the "FIND:>" message.
At this point, type in the word or phrase you wish to locate and press
return. 

The first occurrence of the word or phrase will be displayed in the
center of the screen. To find all subsequent occurrences press Ctrl-F
and Return. 

You need not enter the word each time, the search will always begin at
the current cursor location and search in the direction that the
indicator in the lower left corner of the screen shows. 

6. Printing Source Code Files

To print the source code on a printer, press Ctrl-P. The screen will
prompt you to type in the printer slot number.  Once this has been done,
and the RETURN key has been pressed, the text will print out. 

7. Adding Text

Position the cursor to where you want to begin adding text and enter the
add mode by pressing Ctrl-A. To return from add mode to cursor mode,
press Esc twice. 

8. Loading files

To load a file into memory which was previously saved on disk press
Ctrl-L. The loading operation works similar to loading any other file. 

9. Saving Files

To save a file on disk, press Ctrl-S. Use the space bar to select the
file name from disk, or type one in. Press RETURN when done. 

10. Entering the Assembler

To save the current robot program and enter the assembler, press Ctrl-R.
This will save the text as it appears in the memory on the disk, and
then exit the text-editor to the assembler. Before a robot can be
assembled, it must have been given a name by being saved to disk. 

The Assembler

The Assembler translates source code programs into robot-understandable
object code. It also checks for errors in the source code and displays a
message if one is found. 

The assembler can be entered from the Main Menu by selecting option 2,
or from the editor by pressing Ctrl-R.  If the assembler is entered from
the editor, a robot source program is loaded and ready to assemble. 

It is possible to assemble a robot from source code on the disk, or load
an assembled robot from disk to test.  There is also an option to print
the assembled robot on the printer. 

Assembly Errors

There are eight errors that the RobotWar assembler can detect. When the
assembler detects an error it will display a message such as: 

NO DATA FIELD IN LINE 27

     10 + TO C

           ^


The error message indicates the type of error, the program line number
and the position in the line (^) where it occurred. Following are the
possible error messages: 

1. NO DATA FIELD - There is no register or number after a command. 

2. UNKNOWN ITEM - You have tried to use a register or a label that is
not defined. 

3. LARGE NUMBER - You have tried to store a number greater than 1,024,
or less than -1,024 into a register. 

4. PROGRAM TOO LONG - Program is too big for the allotted program
storage area. Programs have a maximum length of 256 object code
instructions. 

5. FATAL JUNK - You have included something that the computer cannot
understand, like an illegal statement. 

6. STORE IN NUMBER - You have tried to store a value in a number instead
of a register. 

7. RESERVED LABEL - You have tried to use a register name as a label. 

8. NO PROGRAM CODE - There are no instructions in the program.  Object
Code Exercise

The following pages list the object code's commands and registers and
the translation of the sample robot's source code. Using the list and
the two codes for the sample robot, compare and identify the source code
and it's object code translation. It will be very useful to understand
the object code when learning to use the test bench in the next
chapter. 

List of Object Code Instructions

Instruction Action
   
   ,  Load accumulator with next data item
   
   IF Load accumulator with next data item
   
   +  Add next data item to accumulator
   
   -  Subtract next data item from accumulator
   
   *  Multiply accumulator by next data item
   
   /  divide accumulator by next data item
   
   =  Skips the next command unless the accumulator is equal to next
      data item
   
   >  Skips the next command unless the accumulator is greater than the
      next data item
   
   <  Skips the next command unless the accumulator is less than next
      data item
   
   #  Skips the next command if the accumulator is equal to next data
      item

 TO       Store accumulator in next dat item
 GOTO     Branch to the address given
 GOSUB    GOSUB to the address give
 ENDSUB   REturn from a subroutine

Assembly of Robot Sample

Code   Building
====   ========
SCAN
0      ,      AIM
1      +      5
2      TO     AIM
3      ,      AIM
4      TO     RADAR
LOOP
5      IF     RADAR
6      <      0
7      GOSUB  FIRE
8      GOTO   SCAN
FIRE
9      ,      0
10     -      RADAR
11     TO     SHOT
12     ENDSUB

Code   Statistics
===    ==========
140    Letters
13     Instructions
3      Labels
2      References


The Test Bench

The test bench is a micro-computer simulator of a robot.  With the test
bench, you can monitor a robot's performance without actually putting it
on the battlefield. This simulator will prove an important device, as
you learn to debug robots, because it allows you to monitor the object
code and the contents of the registers. 

Load a robot into the test bench by selecting option 2 from the
assembler menu or from the main menu. 

Operating the Test Bench

As the test bench runs the program, each instruction (in object code)
will appear on the left side of the screen as it is executed. On the
right side of the screen are displayed the robot's position and register
contents. Also shown are the instruction number being executed (program
counter) and the accumulator. 

Controlling the Test Bench

The test bench can be interrupted by pressing the space bar. Press the
space bar again to execute one more instruction. This can be useful when
analyzing a program to see if it is acting as you had planned. Pressing
RETURN will start the test bench running again. To change the speed of
the test bench, press a number from 0 to 9. 

Simulating Radar

Pressing the R key will cause the radar display to light up and the
RADAR register will display a negative number to simulate an enemy robot
in view. This will allow your program to go into it's "enemy spotted"
routine. 

Simulating Damage

Each time the G key is pressed, a random amount, up to 10% will be
subtracted from the DAMAGE register. This allows th program the
opportunity to use it's damage detection routine. The DAMAGE register
will also indicate damage if the simulated robot crashes into a wall.
The test bench will automatically stop when the DAMAGE register reaches
0. 

Tracing Registers

The trace is used to check the contents of registers not normally
displayed on the test bench. Press the T key to access the tracer. The
test bench will stop, and the following question will be displayed:
"NAME REGISTER TO TRACE?" Enter the name of the register you want to
trace and press RETURN. The test bench will continue, with the contents
of the traced register displayed on the line above "X POSITION". 

The Esc key will exit from the test bench. 

Storing Robots

There is a limited amount of space on the RobotWar disk to store robot
files. However, robot files can be transferred to and from auxiliary
storage disks. 

Auxiliary storage disks are used only to store robot files. Robot files
on auxiliary disks must be transferred back to the RobotWar program disk
before they can be tested, assembled, edited, or battled. 

There is a utility in the menu to initialize a data disk. Only disks
initialized by RobotWar can be used as data disks. 

To save or load a robot to or from a data disk simply remove the
RobotWar disk after entering the robot name and before pressing return.
After the file is loaded, swap the disks back again before continuing
with the program. 

To delete a robot from a disk, exit to basic, and delete the file with
the DOS 3.3 command DELETE filename and press RETURN. When done, enter
PR#6 to re-start RobotWar. 

Summary of Editor Keys Cursor Mode: 

Moving keys

     +    Set forward direction

     -    Set backward direction

 Esc +    Move to end of text

 Esc -    Move to beginning of text

     A    Sets text in continuous scrolling motion

RETURN    Move cursor up one line
Esc RETURN    Move cursor to top of page

     /    Move cursor one line down

 Esc /    Move cursor to bottom of page

    <-    Move one space left

    ->    Move one space right

Esc ->    Move cursor to right end of line

Esc <-    Move cursor to left margin

     P    Move up or down one full page

     L    Move text up or down one line

Text deleting keys


Ctrl-D    Delete the character at the cursor

Ctrl-G    Delete the line at the cursor

Esc Ctrl-Z    Delete the whole file

File handling keys


Ctrl-L    Clear memory and load a source file

Ctrl-S    Save text as a source file

Ctrl-R    Save current file and enters assembler

Control keys

Esc Ctrl-Q    Exits to main menu

Ctrl-F    Executes FIND operation

Ctrl-P    Prints file in memory

Ctrl-V    Places block marker at cursor

 Esc-V    Displays block options

           C-Copy block

           D-Delete block

           U-Remove block markers

Add Mode

Text adding keys


Ctrl-A    Start adding text
   Esc Esc    Stop adding text

    <-    Backspace, erases as it goes

    ->    Moves text to the right

RETURN    Acts as a carriage return


From the Assembler

Space Bar     Stop the assembler or move it one step
   RETURN     Start the assembler operating again

  0-9     Adjust the speed at which the assembler is
scrolling

From the Test Bench

   RETURN     Start the assembler operating again

  0-9     Adjust the speed at which the assembler is
scrolling

    R     Simulate Radar

    G     Simulate a shell hit

    T     Trace a Register

  Esc     Exit the test bench

 the DOS 3.3 command DELETE filename and press RETURN. When
done, enter PR#6 to re-start RobotWar.

Summary of Editor Keys
Cursor Mode:

Moving keys

     +    Set forward direction

     -    Set backward direct

  -END-