Home » CEEFAX disks » telesoftware6.adl » 09-04-88/E\INFO

09-04-88/E\INFO

This website contains an archive of files for the Acorn Electron, BBC Micro, Acorn Archimedes, Commodore 16 and Commodore 64 computers, which Dominic Ford has rescued from his private collection of floppy disks and cassettes.

Some of these files were originally commercial releases in the 1980s and 1990s, but they are now widely available online. I assume that copyright over them is no longer being asserted. If you own the copyright and would like files to be removed, please contact me.

Tape/disk: Home » CEEFAX disks » telesoftware6.adl
Filename: 09-04-88/E\INFO
Read OK:
File size: 5AC5 bytes
Load address: 0000
Exec address: FFFFFFFF
Duplicates

There is 1 duplicate copy of this file in the archive:

File contents
            Eclipse Documentation
     Eclipse requires 16K of sideways RAM in which to run. It cannot be
blown into ROM since it is by it's very nature a RAM only program. It has
been designed to provide easy access to sideways RAM which is normally
"hidden" from the user. To do this it divides the 16K into two areas of
8K, one for the actual program code and the other for the user. This
second 8k provides 32 "membanks" of 256 byes each.
    Membanks can be used in several diiferent ways, e.g. they can be used
to keep notes and messages in, the first 10 membanks can be used as extra
function keys each of 256 bytes each instead of just 256 bytes between 10,
pages of main RAM can be swapped in and out of SWR (page 12 holds the User
Defined Graphic Characters, several alternative UDG set could be held in
various membanks and swapped in to replace page 12 when the user wished
thereby extending the number of UDGs available), last but not least the
banks can be used to hold macros.  
    Eclipse Macros are simply a series of operation system * commands
which Eclipse forces the operating system to execute when the user
executes the macro. So that these can be fully supported Eclipse provides
several control stuctures, links to machine code, input/output commands,
and allows other commands either on disc or in other ROMs to be inculuded
in a macro.
     Eclipse's facilities can be divided into two main groups; minor
utilities and membanks. Eclipse has been designed to work from within any
language on the BBC micro and uses no calls to BASIC. (The exception to
this is the Baslist command which lists BASIC programs from discs).
    Eclipse should work with all filing systems but has only been tested
with discs.
    Eclipse is compatible with a Model B+, but a *CLEAN is required before
you start work. This is because on the B+, like some SWR boards for the B,
sets all locations initially to zero, causing Eclipse to think it has a
full complement of macros loaded. Eclipse has not been tested on a Master,
but there is no reason why it should not operate correctly.
     Eclipse can perform many operations, to some users some of these
options may well be inappropriate, and it is therefore designed for
individual users to "tailor" it to there own uses. One good example of
this is the *BREAK command. The ability to add extra messages may seem
trivial but it is more important in that this provides an entry point for
interceping the OS after a break. Because Eclipse uses so much memory
users will either have to use fewer membanks or strip some functions out.  
    For details of entering Eclipse see the Technical section below.
    Before continuing, several points must be noted. Firstly, some of the
commands mainly those intended for general use, print "OK" when they have
finished, I myself find this convenient but the facility can be turned of
with *NOOK and switched back on with *OK. The commands which are mainly
intended to be used from within membanks do not print "OK" at all to avoid
corruption of the screen.
    Second, Eclipse operates entirely in hexadecimal. This reflects it's
closeness to machine code/assembly language. The only execption to this is
the SCREEN command (see below).
    Finally, since Eclipse contains over 70 commands, it is quite possible
that one of Eclipse's commands may be recognized by another sideways
ROM/RAM and executed by mistake. To avoid this all Eclipse commands may be
prefixed by "P". Eclipse commands may be in either upper or lower case,
e.g. *PBASLIST, *baslist, & *pBaSlIsT perform the same task as *BASLIST.

      General Commands.
   1) *BREAK. This command is very important since several other commands
rely on it's setting. *Break should always be followed by a hexadecimal
value and sometimes a string of ASCII characters. The first four bits of
this value signify the following:
   a) If bit 0 is set the "BBC Computer" message will not appear.
   b) If bit 1 is set the string following *Break will be displayed on
each break. The string may be up to 40 characters.
   c) If bit 2 is set then Eclipse will take control of the operating
system character output stream vector (WRCHV) allowing various changes to
the characters output to be made (see below).
   d) If bit 3 is set then Eclipse will take control of the operating
system event vector (EVENTV) allowing the extended function keys to
operate.
   Examples:
    *BREAK F Eclipse Sideways RAM - this will cause Eclipse to take
control of WRCHV vector and EVENTV vector and display Eclipse Sideways RAM
above the BBC Computer message
  *BREAK 1 - this will just remove the BBC Computer mesages.
    *BREAK C - this will leave the messages as normal but will claim both
WRCHV and EVENTV.

      2) *Upper, *Lower and *Normal
    If *Break has not claimed the WRCHV vector then these commands may not
be used.
    *UPPER causes all lower case characters sent to the screen and printer
to be made into upper case characters.
    *LOWER operates the same as *Upper but coverts all upper case
characters to lower case characters.
    *NORMAL cancels the action of *Upper and *Lower

      3) *Return and *Noreturn
    Again the WRCHV vector has to be claimed. *RETURN {number} censures
the characters sent to the screen and if a character with the same ASCII
value as {number} is sent output is halted until the user presses the
RETURN key. *NORETURN cancels this action.
   e.g. *RETURN D - means that the return key must be pressed before every
line feed

      4) *Beep and *Nobeep
    Again the WRCHV vector must be claimed. *BEEP x y slows down output to
the screen by causing a beep though the internal speaker of the same pitch
as the character sent to the screen. With Beep x and y are needed for
duration of beep (x) and amplitude (y). These are the same as for the BBC
BASIC sound command but the amplitude is positive not negative and
envelopes cannot be used, e.g. *BEEP 1 7. *NOBEEP cancels this action.

      5) *Text, *Graphic and *Window
    Within Eclipse space has been alloted to hold the settings for 16
windows which would normally have to be set with the VDU 23 and VDU 28
commands. The first 8 windows (0 to 7) are for text windows and the second
8, 8 to &F for graphic windows. *Text or *Graphic are used to set the
window's pararmeters and *Window to activate them
      e.g.
      *Text 0 5 10 D 1
      *Window 0
      *Graphic 8 96 12C 448 2BC
      *Window 8

      6) *Baslist
    This is the only command requiring the BASIC ROM. *Baslist {filename}
will find the file specified and list it on screen as if it were in memory
and were being LISTed.
    One advantage of this command is in recovering a "Bad program". Since
the output can be spooled as usual, if a program becomes bad the area of
memory containing the program can be *SAVEd, a *SPOOL file opened and then
the memory file *Baslisted to produces a file which when executed is a
normal BASIC program,
      e.g. *SAVE BADPROG 1900 +1000
           *SPOOL PROG
           *BASLIST BADPROG
           (program is listed)
           *SPOOL
           NEW (prepare BASIC for a new program)
           *EXEC PROG

    This may not recover all the program (the amount recovered depends on
the damage done) but will usually recover most of the program.

      7) *CHANGE and *NOCHANGE
    These 2 commands require WRCHV to have been claimed with *BREAK.
*NOCHANGE will wipe all settings set by *CHANGE. Change needs 3
parameters, the first of which is the priority (0 to &D), next comes the
character to be changed then the character to be changed to
      e.g. *CHANGE 1 C 40
    This would cause the @ sign to be printed when ever VDU12 was issued.
The priority is important since there may be several attempts to change
one character, the first to it wins e.g. with the following settings:-
      *CHANGE 0 C 40
      *CHANGE 1 C 41
      *CHANGE 2 C 42
      VDU 12 would be changed to @ not A to B.

      8) *SETTINGS and *STATUS
    These simply display details of various settings e.g break, beep,
return, change and windows.


            Macros
     Macros are one of the major functions of Eclipse. Macros in Eclipse
are a collection of Operating System star (*) commands. This enables
Eclipse to access OS functions, functions in other ROMs which have command
access and programs on disc. Eclipse also provides a host of support for
these commands including; if then else, for next, repeat until, variables
etc. Eclipse can, in some ways, be thought of as a small language.
    Macros are programmed in the same way as notes are taken, with the use
of the MEM command. To tell Eclipse that the membank contains a macro it
must start with a zero. Next must be the name of the command and finally a
carriage return or space to signal the end of the command, e.g. *MEM 00
|@EXAMPLE|M defines a new command in membank 00 called EXAMPLE, as yet it
does nothing. By typing *MACROS all the macros so far defined will be
listed. Suppose a command is needed to catalogue both sides of the disc at
the same time. Then 
      *MEM 00 |@BOTH|MCAT 0|MCAT 2|M 
    Notice that you need not insert the *. This also shows how commands
may be placed one after another by separating commands with a return. The
final |M is not strictly necessary since Eclipse automatically inserts one
when it comes to the end of the membank. Macros can be recalled in the
normal way with *RECALL. To use a macro simply type its name as a normal *
command e.g. *BOTH. To reduce clashes the macro's are case sensitive e.g.
*BOTH and *both are different commands. 
    An alternative way to use macros is without a command. The macro is
defined as normal but the zero, name, and return code is left out. To run
the macro the command *MACRO x is used where x is the number of the
membank containing the membank. Do not confuse this command with *MACROS
which looks for a zero at the start of a membank and if it finds one
displays the name. Macros defined in this alternative way will not show up
on a *MACROS call. Using this method the above dual catalogue would be
written thus:
      *MEM 00 .0|M.2|M 
  To use it *MACRO 00 would be used. (The use of *. as apposed to *CAT is
irrelevant.)

      Variables
     Eclipse supports variables both inside and outside macros although
other ROMs and * commands will not recognize Eclipse's variables, unless
they have been programmed to do so. There are just 26 variables, A to Z
(upper case only ). So that Eclipse knows that, what it expects to be a
number is actually a variable. It is preceeded with a percent sign (%). To
set a variable the command *LET is used e.g. *LET %T=77. To see the value
of a variable *SCREEN can be used e.g. *SCREEN %T. All Eclipse commands
will accept variables instead of a number. 
    If a variable or value is prefixed by ?, as in BASIC the effect will
be like a PEEK command, substituting the returned value for the value of
the memory location of the following value e.g. *LET %T=?FFFF or *LET
%T=?%U. By using 2 question marks an indirect operator can be simulated
e.g. LET %T ??&C00 means the value at the memory pointed to by the value
of memory location &C00.
  Initially all variables are set to zero. Variables are 16 bit, if an
Eclipse command only needs 8 bits only the lower 8 bits will be looked at.
Variables are one of the central points of the Eclipse macro system
allowing macros to more than just replace a series of keyboard commands.
Since Eclipse only uses memory within SWR macros can be used from within
most language ROMs. The only memory not in SWR that they use are a few
zero page locations which are allotted for transient disc commands.
     To support variables there are a host of special * commands, they are
mainly based on BASIC commands since most users will be familiar with
these but some do have a similarity to Forth.
    1) *LET x y. This uses 2 values, the first (x) must be a variable, the
second can be another variable or a number. The equals sign used above is
optional. 
    2) *ADD x y z. This will store in variable x the sum of y and z. y and
z may be variables and/or numbers e.g. *ADD %R %Y 6 or *ADD %W 9 9
    3) *SUB x y z. This is the same as ADD but will subtract z from y and
store the result in x.
    4) *AND x y z. This will perform a Boolean AND operation on y and z at
bit level and store the result in x.
    5) *OR x y z. This is the same as AND but will perform a bit level
Boolean OR operation on y and z storing the result in x.
    6) *EOR x y z. The same as OR but a Boolean bit level Exclusive OR
operation on y and z.
    7) *NOT x. This will carry out a bit level Boolean NOT on x
effectively making it negative, if positive and vice versa.
    8) *TEST x y [condition] z. This will test y against z wih the
condition specified and store a true (&FF) or false (0) result in x e.g.
*TEST %T %Y>0 or *TEST %T %U>=%I. The conditions that can be used are =,
>, <, <>, >=, or <=.

     Although the variables can be used freely, 4 of them are special. %A,
%X, %Y and %P roughly correspond to the 6502 A, X, Y and PSR registers.
This means that when the direct links to machine code e.g. GO, MC, GOSUB,
OSWORD, OSBYTE etc. are used the values in %A, %Y, %X, and %P are copied
into the A, X, Y and PSR registers and where there is a return the
registers are copied into the variables. This enables machine code calls,
particularly OSBYTEs to be used and monitored.

      Control Structures
    Three control structures are implemented in a similar manner to their
BASIC equivalents, but there are slight differences.
      1) If
    The if structure uses 4 commands, *IF x [condition] y, *THEN
instructions, *ELSE instructions (optional statement), *ENDIF. A possible
example of this would be: 
      *MEM 01 |@EXAMPLE
         IF %Y=6
         THEN
          SCREEN Y is equal to six
         |@ELSE
          SCREEN Y is not six
         |@ENDIF
         SCREEN OK? 

    [Note that this definition could not be entered like this. It would
need to be expressed as: *MEM 01 |@EXAMPLE|MIF %Y=6|MTHEN|MSCREEN Y is
equal to six|M|@ELSE|MSCREEN|MY is not six|M|@ENDIF|MSCREEN OK?|M]
      Translated this means:
    *MEM 01 - store the following im membank 1
    |@EXAMPLE - this is a macro (|@ gives 0), it is called EXAMPLE and
ends with a carriage return (|M)
    IF %Y=6 - this is one phrase. It is terminated by the carriage return
(|M). When Eclipse encounters an IF it evaluates the condition and stores
the result as a flag, the last flag set is consulted by THEN and ELSE and
only removed when ENDIF is found. (For the condition available see  *TEST
above.) 
    THEN - if the last IF flag is false Eclipse will ignore all the
following instructions. It will look for the next zero in the membank
before executing any more instructions. If the IF flag is true Eclipse
will continue executing the following instructions as before
    SCREEN Y is equal to six - this is just a message for screen display (
see below)
    |@ - this tells Eclipse that the THEN instructions are finished so
revert to executing instructions regardless of the IF condition 
    ELSE - this is the reverse of the THEN statement. If the latest IF
flag is true Eclipse will skip the following instructions until it
encounters a zero. 
    |@ - this signals the end of the ELSE 
    ENDIF - this will remove the latest IF flag. Note that since Eclipse
works with an IF flag which is only removed when it is told to there are
several useful situations:
    1) You can place non-conditional statements between the IF, THEN, ELSE
and ENDIFat any point as long as neither THEN or ELSE has been executed or
after the zero (|@).
    2) You can place the THEN and ELSE in any order or have more than one
e.g. ELSE, THEN, ELSE, THEN, ELSE is possible.
    3) If the membank is terminated before the ENDIF removes the flag it
will remain. This will normally be a disadvantage since after 16
unfinished IFs you will get a "Too many" error since Eclipse can only
handle 16 ifs at a time - this should be more than adequate. To clear any
unwanted flags use *ENDIF until a no start error occurs.

      2) The For loop
    The for loop uses the commands FOR and NEXT. It has a control variable
and an upper and lower limit. It also has an optional step control but if
none is specified it will use 1.    
    FOR takes the form FOR x y z t. Where x is the control variable, y the
lower limit and z the upper limit, t is the optional step, if the default
is to be used a carriage return should be placed after the z. y and z may
be numbers and/or variables.
    NEXT simply increments the control variable by the step and continues
execution from the command after FOR, provided the upper limit has not
been reached.
      *MEM 02 |@EXAMPLE2
         FOR %T 0 10
         SCREEN %T
         NEXT
   or
      *MEM 02 |@EXAMPLE3
         FOR %T 0 20 2
         SCREEN %T
         NEXT

    Again FOR NEXT uses a series of flags and if the macro is terminated
prematurely by the exit from the membank the result will be to leave these
flags set. Eclipse can handle 8 indented FOR loops at one time. To clear
any spare loops simply use *NEXT directly. 

      3) The Repeat loop
    This is implemented as in a similar way to the FOR NEXT and IF
structures. The above FOR NEXT macros can be written with this structure
as: 
      *MEM 02 |@EXAMPLE4
         LET %T=0
         REPEAT
          SCREEN %T
          ADD %T %T 1
          UNTIL %T>10
   or
      *MEM 02 |@EXAMPLE5
         LET %T=0
         REPEAT
          SCREEN %T
          ADD %T %T 2
          UNTIL %T>20

     Again REPEAT UNTIL uses flags and the premature exit of a macro will
leave these flags set, to cure this use *UNTIL 1=1.



            Memory manipulation
    Apart from the commands already covered in the general section for
changing pages of memory there are two more commands. These are *BYTE and
*WORD. *BYTE x y will store the lower 8 bits of y in memory location x.
*WORD x y will store the 16 bits of y in x and x+1 corresponding to the
upper and lower bytes.

         Operating System routines and machine code
     Eclipse allows users to incorporate machine code, where necessary,
this may be either calls to specialist Operating System calls or the users
own machine code. To allow for this Eclipse provides nine commands. These
used together with the %A, %X, %Y and %P relationships (above) allows most
machine code functions to be easily accessed.
    First the OS commands. Before using these %A, %X and %Y will have to
be set and in some cases a control block established in memory. P% has
little effect so this is only set on return, the PSR is not changed on
entry. Any block of memory used will normally be in main RAM but could be
in one of Eclipses membanks although this may cause problems if other ROMs
or the OS is accessed. The memory may be set up from outside Eclipse or
with the use of Eclipse's STORE, RESTORE, BYTE, and WORD commands.
     Once the conditions have been set (refer to the BBC User Guide or any
other book documenting OS calls e.g. BBC Advanced User Guide). Simply use
one of the following commands: OSBYTE, OSCLI, OSWRCH, OSASCI, ORWRCH or
OSWORD. This is by no means a comprehensive list of all OS calls, these
are just the most frequently used commands; so Eclipse supports them,
there would be little point in including many rarely used commands which
may not be used very often. Any command not listed can still be
synthesized using the GOSUB command. The filing system commands have to be
left out because although they are very useful they are probably better
left to a full blown language - although GOSUB can be used.
    The GOSUB x command will jump to location x and execute the machine
code there. %A, %X and %Y are copied to the registers before leaving.
Since Eclipse expects a return the registers will be copied back to %A,
%X, %Y and %P on return.  
    The GO x command is the same as the GOSUB command but Eclipse does NOT
expect a return. This means that when the routine is left control will be
return to the OPERATING SYSTEM. The OS is ignorant of any action that may
have been taken by Eclipse since it passed the * command to Eclipse it is
important therefore, that the machine code run exits with A=0, if it does
not then the OS will continue to process the command if A=4, if A is set
to another value results will be slightly unpredictable.
    The MC command is different from all other Eclipse commands since it
is intended to bring together directly, machine code intended for Eclipse
into Eclipse. MC should ONLY be used within a macro. Its effect is to take
the current memory pointers from Eclipse, set %A, %X and %Y and hand
control over to machine code that follows the MC command e.g. the inside
of the membank would be something along the lines of 0,E,G,13,M,C,13 [pure
machine code]. The machine code will, of course, have to be calibrated to
run in the membank unless it only uses relative addressing. Eclipse does
not expect a return from this command so the same exit conditions exist as
with GO. 

         Input and Output within Macros
    When a normal * command is entered it may be followed by paramenters,
Eclipse macros may also be followed by paramenters. This is  accomplished
through the GET and STRING commands.
    GET x - this takes a number following the Macro and stores it in
variable x. e.g GET %T within the macro EXAMPLE would take the 20 from the
command *EXAMPLE 20 and store it in %T.
    STRING x - here the string of characters following the command are
taken and strored at location x. e.g. STRING C00 in macro "EXAMPLE this is
text" - would store "this is text" at location &C00 on. 

    It is advised that if STRING and GET are to be used they are used
early on in the macro e.g. first or second command executed. GET can be
reused e.g. GET %T GET %U but once STRING has been used neither it or GET
can be used again.

     The command SCREEN has appeared above on several ocasions. All
*SCREEN does is display the following message on the  screen. If % occures
SCREEN will take the following letter and handle it as a variable
displaying its hexadecimal value on screen. If ~ is used the SCREEN will
take the following value, numeric or variable and display it in decimal.
If ^ is found SCREEN will display the following value, again numeric or
variable, as an ASCII code.
     The command INSERT x will insert into the keyboard buffer the string
of characters x e.g INSERT This is the Insert command.
     Since SCREEN and INSERT are both intended to be used from within
macros any | characters included during their entry will be left so if
used directly the | character will show up as |x. The only exception which
may cause problems is |@ (0) as Eclipse uses this when dealing with IF,
THEN, ELSE, ENDIF.
     Since SCREEN must be used within a membank long messages may cause
problems, one way round this is to install the message(s) in a membank(s)
and RECALL the membank(s) needed.

     The final input command is INKEY x y. This is the same as the BASIC
inkey. x is the length of time in hundreths of a second to be waited and
the ASCII value of the key pressed (if at all) is stored in y. e.g. INKEY
20 %T.
00000000  20 20 20 20 20 20 20 20  20 20 20 20 45 63 6c 69  |            Ecli|
00000010  70 73 65 20 44 6f 63 75  6d 65 6e 74 61 74 69 6f  |pse Documentatio|
00000020  6e 0d 20 20 20 20 20 45  63 6c 69 70 73 65 20 72  |n.     Eclipse r|
00000030  65 71 75 69 72 65 73 20  31 36 4b 20 6f 66 20 73  |equires 16K of s|
00000040  69 64 65 77 61 79 73 20  52 41 4d 20 69 6e 20 77  |ideways RAM in w|
00000050  68 69 63 68 20 74 6f 20  72 75 6e 2e 20 49 74 20  |hich to run. It |
00000060  63 61 6e 6e 6f 74 20 62  65 0d 62 6c 6f 77 6e 20  |cannot be.blown |
00000070  69 6e 74 6f 20 52 4f 4d  20 73 69 6e 63 65 20 69  |into ROM since i|
00000080  74 20 69 73 20 62 79 20  69 74 27 73 20 76 65 72  |t is by it's ver|
00000090  79 20 6e 61 74 75 72 65  20 61 20 52 41 4d 20 6f  |y nature a RAM o|
000000a0  6e 6c 79 20 70 72 6f 67  72 61 6d 2e 20 49 74 20  |nly program. It |
000000b0  68 61 73 0d 62 65 65 6e  20 64 65 73 69 67 6e 65  |has.been designe|
000000c0  64 20 74 6f 20 70 72 6f  76 69 64 65 20 65 61 73  |d to provide eas|
000000d0  79 20 61 63 63 65 73 73  20 74 6f 20 73 69 64 65  |y access to side|
000000e0  77 61 79 73 20 52 41 4d  20 77 68 69 63 68 20 69  |ways RAM which i|
000000f0  73 20 6e 6f 72 6d 61 6c  6c 79 0d 22 68 69 64 64  |s normally."hidd|
00000100  65 6e 22 20 66 72 6f 6d  20 74 68 65 20 75 73 65  |en" from the use|
00000110  72 2e 20 54 6f 20 64 6f  20 74 68 69 73 20 69 74  |r. To do this it|
00000120  20 64 69 76 69 64 65 73  20 74 68 65 20 31 36 4b  | divides the 16K|
00000130  20 69 6e 74 6f 20 74 77  6f 20 61 72 65 61 73 20  | into two areas |
00000140  6f 66 0d 38 4b 2c 20 6f  6e 65 20 66 6f 72 20 74  |of.8K, one for t|
00000150  68 65 20 61 63 74 75 61  6c 20 70 72 6f 67 72 61  |he actual progra|
00000160  6d 20 63 6f 64 65 20 61  6e 64 20 74 68 65 20 6f  |m code and the o|
00000170  74 68 65 72 20 66 6f 72  20 74 68 65 20 75 73 65  |ther for the use|
00000180  72 2e 20 54 68 69 73 0d  73 65 63 6f 6e 64 20 38  |r. This.second 8|
00000190  6b 20 70 72 6f 76 69 64  65 73 20 33 32 20 22 6d  |k provides 32 "m|
000001a0  65 6d 62 61 6e 6b 73 22  20 6f 66 20 32 35 36 20  |embanks" of 256 |
000001b0  62 79 65 73 20 65 61 63  68 2e 0d 20 20 20 20 4d  |byes each..    M|
000001c0  65 6d 62 61 6e 6b 73 20  63 61 6e 20 62 65 20 75  |embanks can be u|
000001d0  73 65 64 20 69 6e 20 73  65 76 65 72 61 6c 20 64  |sed in several d|
000001e0  69 69 66 65 72 65 6e 74  20 77 61 79 73 2c 20 65  |iiferent ways, e|
000001f0  2e 67 2e 20 74 68 65 79  20 63 61 6e 20 62 65 20  |.g. they can be |
00000200  75 73 65 64 0d 74 6f 20  6b 65 65 70 20 6e 6f 74  |used.to keep not|
00000210  65 73 20 61 6e 64 20 6d  65 73 73 61 67 65 73 20  |es and messages |
00000220  69 6e 2c 20 74 68 65 20  66 69 72 73 74 20 31 30  |in, the first 10|
00000230  20 6d 65 6d 62 61 6e 6b  73 20 63 61 6e 20 62 65  | membanks can be|
00000240  20 75 73 65 64 20 61 73  20 65 78 74 72 61 0d 66  | used as extra.f|
00000250  75 6e 63 74 69 6f 6e 20  6b 65 79 73 20 65 61 63  |unction keys eac|
00000260  68 20 6f 66 20 32 35 36  20 62 79 74 65 73 20 65  |h of 256 bytes e|
00000270  61 63 68 20 69 6e 73 74  65 61 64 20 6f 66 20 6a  |ach instead of j|
00000280  75 73 74 20 32 35 36 20  62 79 74 65 73 20 62 65  |ust 256 bytes be|
00000290  74 77 65 65 6e 20 31 30  2c 0d 70 61 67 65 73 20  |tween 10,.pages |
000002a0  6f 66 20 6d 61 69 6e 20  52 41 4d 20 63 61 6e 20  |of main RAM can |
000002b0  62 65 20 73 77 61 70 70  65 64 20 69 6e 20 61 6e  |be swapped in an|
000002c0  64 20 6f 75 74 20 6f 66  20 53 57 52 20 28 70 61  |d out of SWR (pa|
000002d0  67 65 20 31 32 20 68 6f  6c 64 73 20 74 68 65 20  |ge 12 holds the |
000002e0  55 73 65 72 0d 44 65 66  69 6e 65 64 20 47 72 61  |User.Defined Gra|
000002f0  70 68 69 63 20 43 68 61  72 61 63 74 65 72 73 2c  |phic Characters,|
00000300  20 73 65 76 65 72 61 6c  20 61 6c 74 65 72 6e 61  | several alterna|
00000310  74 69 76 65 20 55 44 47  20 73 65 74 20 63 6f 75  |tive UDG set cou|
00000320  6c 64 20 62 65 20 68 65  6c 64 20 69 6e 0d 76 61  |ld be held in.va|
00000330  72 69 6f 75 73 20 6d 65  6d 62 61 6e 6b 73 20 61  |rious membanks a|
00000340  6e 64 20 73 77 61 70 70  65 64 20 69 6e 20 74 6f  |nd swapped in to|
00000350  20 72 65 70 6c 61 63 65  20 70 61 67 65 20 31 32  | replace page 12|
00000360  20 77 68 65 6e 20 74 68  65 20 75 73 65 72 20 77  | when the user w|
00000370  69 73 68 65 64 0d 74 68  65 72 65 62 79 20 65 78  |ished.thereby ex|
00000380  74 65 6e 64 69 6e 67 20  74 68 65 20 6e 75 6d 62  |tending the numb|
00000390  65 72 20 6f 66 20 55 44  47 73 20 61 76 61 69 6c  |er of UDGs avail|
000003a0  61 62 6c 65 29 2c 20 6c  61 73 74 20 62 75 74 20  |able), last but |
000003b0  6e 6f 74 20 6c 65 61 73  74 20 74 68 65 0d 62 61  |not least the.ba|
000003c0  6e 6b 73 20 63 61 6e 20  62 65 20 75 73 65 64 20  |nks can be used |
000003d0  74 6f 20 68 6f 6c 64 20  6d 61 63 72 6f 73 2e 20  |to hold macros. |
000003e0  20 0d 20 20 20 20 45 63  6c 69 70 73 65 20 4d 61  | .    Eclipse Ma|
000003f0  63 72 6f 73 20 61 72 65  20 73 69 6d 70 6c 79 20  |cros are simply |
00000400  61 20 73 65 72 69 65 73  20 6f 66 20 6f 70 65 72  |a series of oper|
00000410  61 74 69 6f 6e 20 73 79  73 74 65 6d 20 2a 20 63  |ation system * c|
00000420  6f 6d 6d 61 6e 64 73 0d  77 68 69 63 68 20 45 63  |ommands.which Ec|
00000430  6c 69 70 73 65 20 66 6f  72 63 65 73 20 74 68 65  |lipse forces the|
00000440  20 6f 70 65 72 61 74 69  6e 67 20 73 79 73 74 65  | operating syste|
00000450  6d 20 74 6f 20 65 78 65  63 75 74 65 20 77 68 65  |m to execute whe|
00000460  6e 20 74 68 65 20 75 73  65 72 0d 65 78 65 63 75  |n the user.execu|
00000470  74 65 73 20 74 68 65 20  6d 61 63 72 6f 2e 20 53  |tes the macro. S|
00000480  6f 20 74 68 61 74 20 74  68 65 73 65 20 63 61 6e  |o that these can|
00000490  20 62 65 20 66 75 6c 6c  79 20 73 75 70 70 6f 72  | be fully suppor|
000004a0  74 65 64 20 45 63 6c 69  70 73 65 20 70 72 6f 76  |ted Eclipse prov|
000004b0  69 64 65 73 0d 73 65 76  65 72 61 6c 20 63 6f 6e  |ides.several con|
000004c0  74 72 6f 6c 20 73 74 75  63 74 75 72 65 73 2c 20  |trol stuctures, |
000004d0  6c 69 6e 6b 73 20 74 6f  20 6d 61 63 68 69 6e 65  |links to machine|
000004e0  20 63 6f 64 65 2c 20 69  6e 70 75 74 2f 6f 75 74  | code, input/out|
000004f0  70 75 74 20 63 6f 6d 6d  61 6e 64 73 2c 0d 61 6e  |put commands,.an|
00000500  64 20 61 6c 6c 6f 77 73  20 6f 74 68 65 72 20 63  |d allows other c|
00000510  6f 6d 6d 61 6e 64 73 20  65 69 74 68 65 72 20 6f  |ommands either o|
00000520  6e 20 64 69 73 63 20 6f  72 20 69 6e 20 6f 74 68  |n disc or in oth|
00000530  65 72 20 52 4f 4d 73 20  74 6f 20 62 65 20 69 6e  |er ROMs to be in|
00000540  63 75 6c 75 64 65 64 0d  69 6e 20 61 20 6d 61 63  |culuded.in a mac|
00000550  72 6f 2e 0d 20 20 20 20  20 45 63 6c 69 70 73 65  |ro..     Eclipse|
00000560  27 73 20 66 61 63 69 6c  69 74 69 65 73 20 63 61  |'s facilities ca|
00000570  6e 20 62 65 20 64 69 76  69 64 65 64 20 69 6e 74  |n be divided int|
00000580  6f 20 74 77 6f 20 6d 61  69 6e 20 67 72 6f 75 70  |o two main group|
00000590  73 3b 20 6d 69 6e 6f 72  0d 75 74 69 6c 69 74 69  |s; minor.utiliti|
000005a0  65 73 20 61 6e 64 20 6d  65 6d 62 61 6e 6b 73 2e  |es and membanks.|
000005b0  20 45 63 6c 69 70 73 65  20 68 61 73 20 62 65 65  | Eclipse has bee|
000005c0  6e 20 64 65 73 69 67 6e  65 64 20 74 6f 20 77 6f  |n designed to wo|
000005d0  72 6b 20 66 72 6f 6d 20  77 69 74 68 69 6e 20 61  |rk from within a|
000005e0  6e 79 0d 6c 61 6e 67 75  61 67 65 20 6f 6e 20 74  |ny.language on t|
000005f0  68 65 20 42 42 43 20 6d  69 63 72 6f 20 61 6e 64  |he BBC micro and|
00000600  20 75 73 65 73 20 6e 6f  20 63 61 6c 6c 73 20 74  | uses no calls t|
00000610  6f 20 42 41 53 49 43 2e  20 28 54 68 65 20 65 78  |o BASIC. (The ex|
00000620  63 65 70 74 69 6f 6e 20  74 6f 0d 74 68 69 73 20  |ception to.this |
00000630  69 73 20 74 68 65 20 42  61 73 6c 69 73 74 20 63  |is the Baslist c|
00000640  6f 6d 6d 61 6e 64 20 77  68 69 63 68 20 6c 69 73  |ommand which lis|
00000650  74 73 20 42 41 53 49 43  20 70 72 6f 67 72 61 6d  |ts BASIC program|
00000660  73 20 66 72 6f 6d 20 64  69 73 63 73 29 2e 0d 20  |s from discs).. |
00000670  20 20 20 45 63 6c 69 70  73 65 20 73 68 6f 75 6c  |   Eclipse shoul|
00000680  64 20 77 6f 72 6b 20 77  69 74 68 20 61 6c 6c 20  |d work with all |
00000690  66 69 6c 69 6e 67 20 73  79 73 74 65 6d 73 20 62  |filing systems b|
000006a0  75 74 20 68 61 73 20 6f  6e 6c 79 20 62 65 65 6e  |ut has only been|
000006b0  20 74 65 73 74 65 64 0d  77 69 74 68 20 64 69 73  | tested.with dis|
000006c0  63 73 2e 0d 20 20 20 20  45 63 6c 69 70 73 65 20  |cs..    Eclipse |
000006d0  69 73 20 63 6f 6d 70 61  74 69 62 6c 65 20 77 69  |is compatible wi|
000006e0  74 68 20 61 20 4d 6f 64  65 6c 20 42 2b 2c 20 62  |th a Model B+, b|
000006f0  75 74 20 61 20 2a 43 4c  45 41 4e 20 69 73 20 72  |ut a *CLEAN is r|
00000700  65 71 75 69 72 65 64 20  62 65 66 6f 72 65 0d 79  |equired before.y|
00000710  6f 75 20 73 74 61 72 74  20 77 6f 72 6b 2e 20 54  |ou start work. T|
00000720  68 69 73 20 69 73 20 62  65 63 61 75 73 65 20 6f  |his is because o|
00000730  6e 20 74 68 65 20 42 2b  2c 20 6c 69 6b 65 20 73  |n the B+, like s|
00000740  6f 6d 65 20 53 57 52 20  62 6f 61 72 64 73 20 66  |ome SWR boards f|
00000750  6f 72 20 74 68 65 20 42  2c 0d 73 65 74 73 20 61  |or the B,.sets a|
00000760  6c 6c 20 6c 6f 63 61 74  69 6f 6e 73 20 69 6e 69  |ll locations ini|
00000770  74 69 61 6c 6c 79 20 74  6f 20 7a 65 72 6f 2c 20  |tially to zero, |
00000780  63 61 75 73 69 6e 67 20  45 63 6c 69 70 73 65 20  |causing Eclipse |
00000790  74 6f 20 74 68 69 6e 6b  20 69 74 20 68 61 73 20  |to think it has |
000007a0  61 0d 66 75 6c 6c 20 63  6f 6d 70 6c 65 6d 65 6e  |a.full complemen|
000007b0  74 20 6f 66 20 6d 61 63  72 6f 73 20 6c 6f 61 64  |t of macros load|
000007c0  65 64 2e 20 45 63 6c 69  70 73 65 20 68 61 73 20  |ed. Eclipse has |
000007d0  6e 6f 74 20 62 65 65 6e  20 74 65 73 74 65 64 20  |not been tested |
000007e0  6f 6e 20 61 20 4d 61 73  74 65 72 2c 0d 62 75 74  |on a Master,.but|
000007f0  20 74 68 65 72 65 20 69  73 20 6e 6f 20 72 65 61  | there is no rea|
00000800  73 6f 6e 20 77 68 79 20  69 74 20 73 68 6f 75 6c  |son why it shoul|
00000810  64 20 6e 6f 74 20 6f 70  65 72 61 74 65 20 63 6f  |d not operate co|
00000820  72 72 65 63 74 6c 79 2e  0d 20 20 20 20 20 45 63  |rrectly..     Ec|
00000830  6c 69 70 73 65 20 63 61  6e 20 70 65 72 66 6f 72  |lipse can perfor|
00000840  6d 20 6d 61 6e 79 20 6f  70 65 72 61 74 69 6f 6e  |m many operation|
00000850  73 2c 20 74 6f 20 73 6f  6d 65 20 75 73 65 72 73  |s, to some users|
00000860  20 73 6f 6d 65 20 6f 66  20 74 68 65 73 65 0d 6f  | some of these.o|
00000870  70 74 69 6f 6e 73 20 6d  61 79 20 77 65 6c 6c 20  |ptions may well |
00000880  62 65 20 69 6e 61 70 70  72 6f 70 72 69 61 74 65  |be inappropriate|
00000890  2c 20 61 6e 64 20 69 74  20 69 73 20 74 68 65 72  |, and it is ther|
000008a0  65 66 6f 72 65 20 64 65  73 69 67 6e 65 64 20 66  |efore designed f|
000008b0  6f 72 0d 69 6e 64 69 76  69 64 75 61 6c 20 75 73  |or.individual us|
000008c0  65 72 73 20 74 6f 20 22  74 61 69 6c 6f 72 22 20  |ers to "tailor" |
000008d0  69 74 20 74 6f 20 74 68  65 72 65 20 6f 77 6e 20  |it to there own |
000008e0  75 73 65 73 2e 20 4f 6e  65 20 67 6f 6f 64 20 65  |uses. One good e|
000008f0  78 61 6d 70 6c 65 20 6f  66 0d 74 68 69 73 20 69  |xample of.this i|
00000900  73 20 74 68 65 20 2a 42  52 45 41 4b 20 63 6f 6d  |s the *BREAK com|
00000910  6d 61 6e 64 2e 20 54 68  65 20 61 62 69 6c 69 74  |mand. The abilit|
00000920  79 20 74 6f 20 61 64 64  20 65 78 74 72 61 20 6d  |y to add extra m|
00000930  65 73 73 61 67 65 73 20  6d 61 79 20 73 65 65 6d  |essages may seem|
00000940  0d 74 72 69 76 69 61 6c  20 62 75 74 20 69 74 20  |.trivial but it |
00000950  69 73 20 6d 6f 72 65 20  69 6d 70 6f 72 74 61 6e  |is more importan|
00000960  74 20 69 6e 20 74 68 61  74 20 74 68 69 73 20 70  |t in that this p|
00000970  72 6f 76 69 64 65 73 20  61 6e 20 65 6e 74 72 79  |rovides an entry|
00000980  20 70 6f 69 6e 74 20 66  6f 72 0d 69 6e 74 65 72  | point for.inter|
00000990  63 65 70 69 6e 67 20 74  68 65 20 4f 53 20 61 66  |ceping the OS af|
000009a0  74 65 72 20 61 20 62 72  65 61 6b 2e 20 42 65 63  |ter a break. Bec|
000009b0  61 75 73 65 20 45 63 6c  69 70 73 65 20 75 73 65  |ause Eclipse use|
000009c0  73 20 73 6f 20 6d 75 63  68 20 6d 65 6d 6f 72 79  |s so much memory|
000009d0  0d 75 73 65 72 73 20 77  69 6c 6c 20 65 69 74 68  |.users will eith|
000009e0  65 72 20 68 61 76 65 20  74 6f 20 75 73 65 20 66  |er have to use f|
000009f0  65 77 65 72 20 6d 65 6d  62 61 6e 6b 73 20 6f 72  |ewer membanks or|
00000a00  20 73 74 72 69 70 20 73  6f 6d 65 20 66 75 6e 63  | strip some func|
00000a10  74 69 6f 6e 73 20 6f 75  74 2e 20 20 0d 20 20 20  |tions out.  .   |
00000a20  20 46 6f 72 20 64 65 74  61 69 6c 73 20 6f 66 20  | For details of |
00000a30  65 6e 74 65 72 69 6e 67  20 45 63 6c 69 70 73 65  |entering Eclipse|
00000a40  20 73 65 65 20 74 68 65  20 54 65 63 68 6e 69 63  | see the Technic|
00000a50  61 6c 20 73 65 63 74 69  6f 6e 20 62 65 6c 6f 77  |al section below|
00000a60  2e 0d 20 20 20 20 42 65  66 6f 72 65 20 63 6f 6e  |..    Before con|
00000a70  74 69 6e 75 69 6e 67 2c  20 73 65 76 65 72 61 6c  |tinuing, several|
00000a80  20 70 6f 69 6e 74 73 20  6d 75 73 74 20 62 65 20  | points must be |
00000a90  6e 6f 74 65 64 2e 20 46  69 72 73 74 6c 79 2c 20  |noted. Firstly, |
00000aa0  73 6f 6d 65 20 6f 66 20  74 68 65 0d 63 6f 6d 6d  |some of the.comm|
00000ab0  61 6e 64 73 20 6d 61 69  6e 6c 79 20 74 68 6f 73  |ands mainly thos|
00000ac0  65 20 69 6e 74 65 6e 64  65 64 20 66 6f 72 20 67  |e intended for g|
00000ad0  65 6e 65 72 61 6c 20 75  73 65 2c 20 70 72 69 6e  |eneral use, prin|
00000ae0  74 20 22 4f 4b 22 20 77  68 65 6e 20 74 68 65 79  |t "OK" when they|
00000af0  20 68 61 76 65 0d 66 69  6e 69 73 68 65 64 2c 20  | have.finished, |
00000b00  49 20 6d 79 73 65 6c 66  20 66 69 6e 64 20 74 68  |I myself find th|
00000b10  69 73 20 63 6f 6e 76 65  6e 69 65 6e 74 20 62 75  |is convenient bu|
00000b20  74 20 74 68 65 20 66 61  63 69 6c 69 74 79 20 63  |t the facility c|
00000b30  61 6e 20 62 65 20 74 75  72 6e 65 64 20 6f 66 0d  |an be turned of.|
00000b40  77 69 74 68 20 2a 4e 4f  4f 4b 20 61 6e 64 20 73  |with *NOOK and s|
00000b50  77 69 74 63 68 65 64 20  62 61 63 6b 20 6f 6e 20  |witched back on |
00000b60  77 69 74 68 20 2a 4f 4b  2e 20 54 68 65 20 63 6f  |with *OK. The co|
00000b70  6d 6d 61 6e 64 73 20 77  68 69 63 68 20 61 72 65  |mmands which are|
00000b80  20 6d 61 69 6e 6c 79 0d  69 6e 74 65 6e 64 65 64  | mainly.intended|
00000b90  20 74 6f 20 62 65 20 75  73 65 64 20 66 72 6f 6d  | to be used from|
00000ba0  20 77 69 74 68 69 6e 20  6d 65 6d 62 61 6e 6b 73  | within membanks|
00000bb0  20 64 6f 20 6e 6f 74 20  70 72 69 6e 74 20 22 4f  | do not print "O|
00000bc0  4b 22 20 61 74 20 61 6c  6c 20 74 6f 20 61 76 6f  |K" at all to avo|
00000bd0  69 64 0d 63 6f 72 72 75  70 74 69 6f 6e 20 6f 66  |id.corruption of|
00000be0  20 74 68 65 20 73 63 72  65 65 6e 2e 0d 20 20 20  | the screen..   |
00000bf0  20 53 65 63 6f 6e 64 2c  20 45 63 6c 69 70 73 65  | Second, Eclipse|
00000c00  20 6f 70 65 72 61 74 65  73 20 65 6e 74 69 72 65  | operates entire|
00000c10  6c 79 20 69 6e 20 68 65  78 61 64 65 63 69 6d 61  |ly in hexadecima|
00000c20  6c 2e 20 54 68 69 73 20  72 65 66 6c 65 63 74 73  |l. This reflects|
00000c30  20 69 74 27 73 0d 63 6c  6f 73 65 6e 65 73 73 20  | it's.closeness |
00000c40  74 6f 20 6d 61 63 68 69  6e 65 20 63 6f 64 65 2f  |to machine code/|
00000c50  61 73 73 65 6d 62 6c 79  20 6c 61 6e 67 75 61 67  |assembly languag|
00000c60  65 2e 20 54 68 65 20 6f  6e 6c 79 20 65 78 65 63  |e. The only exec|
00000c70  70 74 69 6f 6e 20 74 6f  20 74 68 69 73 20 69 73  |ption to this is|
00000c80  0d 74 68 65 20 53 43 52  45 45 4e 20 63 6f 6d 6d  |.the SCREEN comm|
00000c90  61 6e 64 20 28 73 65 65  20 62 65 6c 6f 77 29 2e  |and (see below).|
00000ca0  0d 20 20 20 20 46 69 6e  61 6c 6c 79 2c 20 73 69  |.    Finally, si|
00000cb0  6e 63 65 20 45 63 6c 69  70 73 65 20 63 6f 6e 74  |nce Eclipse cont|
00000cc0  61 69 6e 73 20 6f 76 65  72 20 37 30 20 63 6f 6d  |ains over 70 com|
00000cd0  6d 61 6e 64 73 2c 20 69  74 20 69 73 20 71 75 69  |mands, it is qui|
00000ce0  74 65 20 70 6f 73 73 69  62 6c 65 0d 74 68 61 74  |te possible.that|
00000cf0  20 6f 6e 65 20 6f 66 20  45 63 6c 69 70 73 65 27  | one of Eclipse'|
00000d00  73 20 63 6f 6d 6d 61 6e  64 73 20 6d 61 79 20 62  |s commands may b|
00000d10  65 20 72 65 63 6f 67 6e  69 7a 65 64 20 62 79 20  |e recognized by |
00000d20  61 6e 6f 74 68 65 72 20  73 69 64 65 77 61 79 73  |another sideways|
00000d30  0d 52 4f 4d 2f 52 41 4d  20 61 6e 64 20 65 78 65  |.ROM/RAM and exe|
00000d40  63 75 74 65 64 20 62 79  20 6d 69 73 74 61 6b 65  |cuted by mistake|
00000d50  2e 20 54 6f 20 61 76 6f  69 64 20 74 68 69 73 20  |. To avoid this |
00000d60  61 6c 6c 20 45 63 6c 69  70 73 65 20 63 6f 6d 6d  |all Eclipse comm|
00000d70  61 6e 64 73 20 6d 61 79  20 62 65 0d 70 72 65 66  |ands may be.pref|
00000d80  69 78 65 64 20 62 79 20  22 50 22 2e 20 45 63 6c  |ixed by "P". Ecl|
00000d90  69 70 73 65 20 63 6f 6d  6d 61 6e 64 73 20 6d 61  |ipse commands ma|
00000da0  79 20 62 65 20 69 6e 20  65 69 74 68 65 72 20 75  |y be in either u|
00000db0  70 70 65 72 20 6f 72 20  6c 6f 77 65 72 20 63 61  |pper or lower ca|
00000dc0  73 65 2c 0d 65 2e 67 2e  20 2a 50 42 41 53 4c 49  |se,.e.g. *PBASLI|
00000dd0  53 54 2c 20 2a 62 61 73  6c 69 73 74 2c 20 26 20  |ST, *baslist, & |
00000de0  2a 70 42 61 53 6c 49 73  54 20 70 65 72 66 6f 72  |*pBaSlIsT perfor|
00000df0  6d 20 74 68 65 20 73 61  6d 65 20 74 61 73 6b 20  |m the same task |
00000e00  61 73 20 2a 42 41 53 4c  49 53 54 2e 0d 0d 20 20  |as *BASLIST...  |
00000e10  20 20 20 20 47 65 6e 65  72 61 6c 20 43 6f 6d 6d  |    General Comm|
00000e20  61 6e 64 73 2e 0d 20 20  20 31 29 20 2a 42 52 45  |ands..   1) *BRE|
00000e30  41 4b 2e 20 54 68 69 73  20 63 6f 6d 6d 61 6e 64  |AK. This command|
00000e40  20 69 73 20 76 65 72 79  20 69 6d 70 6f 72 74 61  | is very importa|
00000e50  6e 74 20 73 69 6e 63 65  20 73 65 76 65 72 61 6c  |nt since several|
00000e60  20 6f 74 68 65 72 20 63  6f 6d 6d 61 6e 64 73 0d  | other commands.|
00000e70  72 65 6c 79 20 6f 6e 20  69 74 27 73 20 73 65 74  |rely on it's set|
00000e80  74 69 6e 67 2e 20 2a 42  72 65 61 6b 20 73 68 6f  |ting. *Break sho|
00000e90  75 6c 64 20 61 6c 77 61  79 73 20 62 65 20 66 6f  |uld always be fo|
00000ea0  6c 6c 6f 77 65 64 20 62  79 20 61 20 68 65 78 61  |llowed by a hexa|
00000eb0  64 65 63 69 6d 61 6c 0d  76 61 6c 75 65 20 61 6e  |decimal.value an|
00000ec0  64 20 73 6f 6d 65 74 69  6d 65 73 20 61 20 73 74  |d sometimes a st|
00000ed0  72 69 6e 67 20 6f 66 20  41 53 43 49 49 20 63 68  |ring of ASCII ch|
00000ee0  61 72 61 63 74 65 72 73  2e 20 54 68 65 20 66 69  |aracters. The fi|
00000ef0  72 73 74 20 66 6f 75 72  20 62 69 74 73 20 6f 66  |rst four bits of|
00000f00  0d 74 68 69 73 20 76 61  6c 75 65 20 73 69 67 6e  |.this value sign|
00000f10  69 66 79 20 74 68 65 20  66 6f 6c 6c 6f 77 69 6e  |ify the followin|
00000f20  67 3a 0d 20 20 20 61 29  20 49 66 20 62 69 74 20  |g:.   a) If bit |
00000f30  30 20 69 73 20 73 65 74  20 74 68 65 20 22 42 42  |0 is set the "BB|
00000f40  43 20 43 6f 6d 70 75 74  65 72 22 20 6d 65 73 73  |C Computer" mess|
00000f50  61 67 65 20 77 69 6c 6c  20 6e 6f 74 20 61 70 70  |age will not app|
00000f60  65 61 72 2e 0d 20 20 20  62 29 20 49 66 20 62 69  |ear..   b) If bi|
00000f70  74 20 31 20 69 73 20 73  65 74 20 74 68 65 20 73  |t 1 is set the s|
00000f80  74 72 69 6e 67 20 66 6f  6c 6c 6f 77 69 6e 67 20  |tring following |
00000f90  2a 42 72 65 61 6b 20 77  69 6c 6c 20 62 65 20 64  |*Break will be d|
00000fa0  69 73 70 6c 61 79 65 64  20 6f 6e 0d 65 61 63 68  |isplayed on.each|
00000fb0  20 62 72 65 61 6b 2e 20  54 68 65 20 73 74 72 69  | break. The stri|
00000fc0  6e 67 20 6d 61 79 20 62  65 20 75 70 20 74 6f 20  |ng may be up to |
00000fd0  34 30 20 63 68 61 72 61  63 74 65 72 73 2e 0d 20  |40 characters.. |
00000fe0  20 20 63 29 20 49 66 20  62 69 74 20 32 20 69 73  |  c) If bit 2 is|
00000ff0  20 73 65 74 20 74 68 65  6e 20 45 63 6c 69 70 73  | set then Eclips|
00001000  65 20 77 69 6c 6c 20 74  61 6b 65 20 63 6f 6e 74  |e will take cont|
00001010  72 6f 6c 20 6f 66 20 74  68 65 20 6f 70 65 72 61  |rol of the opera|
00001020  74 69 6e 67 0d 73 79 73  74 65 6d 20 63 68 61 72  |ting.system char|
00001030  61 63 74 65 72 20 6f 75  74 70 75 74 20 73 74 72  |acter output str|
00001040  65 61 6d 20 76 65 63 74  6f 72 20 28 57 52 43 48  |eam vector (WRCH|
00001050  56 29 20 61 6c 6c 6f 77  69 6e 67 20 76 61 72 69  |V) allowing vari|
00001060  6f 75 73 20 63 68 61 6e  67 65 73 20 74 6f 0d 74  |ous changes to.t|
00001070  68 65 20 63 68 61 72 61  63 74 65 72 73 20 6f 75  |he characters ou|
00001080  74 70 75 74 20 74 6f 20  62 65 20 6d 61 64 65 20  |tput to be made |
00001090  28 73 65 65 20 62 65 6c  6f 77 29 2e 0d 20 20 20  |(see below)..   |
000010a0  64 29 20 49 66 20 62 69  74 20 33 20 69 73 20 73  |d) If bit 3 is s|
000010b0  65 74 20 74 68 65 6e 20  45 63 6c 69 70 73 65 20  |et then Eclipse |
000010c0  77 69 6c 6c 20 74 61 6b  65 20 63 6f 6e 74 72 6f  |will take contro|
000010d0  6c 20 6f 66 20 74 68 65  20 6f 70 65 72 61 74 69  |l of the operati|
000010e0  6e 67 0d 73 79 73 74 65  6d 20 65 76 65 6e 74 20  |ng.system event |
000010f0  76 65 63 74 6f 72 20 28  45 56 45 4e 54 56 29 20  |vector (EVENTV) |
00001100  61 6c 6c 6f 77 69 6e 67  20 74 68 65 20 65 78 74  |allowing the ext|
00001110  65 6e 64 65 64 20 66 75  6e 63 74 69 6f 6e 20 6b  |ended function k|
00001120  65 79 73 20 74 6f 0d 6f  70 65 72 61 74 65 2e 0d  |eys to.operate..|
00001130  20 20 20 45 78 61 6d 70  6c 65 73 3a 0d 20 20 20  |   Examples:.   |
00001140  20 2a 42 52 45 41 4b 20  46 20 45 63 6c 69 70 73  | *BREAK F Eclips|
00001150  65 20 53 69 64 65 77 61  79 73 20 52 41 4d 20 2d  |e Sideways RAM -|
00001160  20 74 68 69 73 20 77 69  6c 6c 20 63 61 75 73 65  | this will cause|
00001170  20 45 63 6c 69 70 73 65  20 74 6f 20 74 61 6b 65  | Eclipse to take|
00001180  0d 63 6f 6e 74 72 6f 6c  20 6f 66 20 57 52 43 48  |.control of WRCH|
00001190  56 20 76 65 63 74 6f 72  20 61 6e 64 20 45 56 45  |V vector and EVE|
000011a0  4e 54 56 20 76 65 63 74  6f 72 20 61 6e 64 20 64  |NTV vector and d|
000011b0  69 73 70 6c 61 79 20 45  63 6c 69 70 73 65 20 53  |isplay Eclipse S|
000011c0  69 64 65 77 61 79 73 20  52 41 4d 0d 61 62 6f 76  |ideways RAM.abov|
000011d0  65 20 74 68 65 20 42 42  43 20 43 6f 6d 70 75 74  |e the BBC Comput|
000011e0  65 72 20 6d 65 73 73 61  67 65 0d 20 20 2a 42 52  |er message.  *BR|
000011f0  45 41 4b 20 31 20 2d 20  74 68 69 73 20 77 69 6c  |EAK 1 - this wil|
00001200  6c 20 6a 75 73 74 20 72  65 6d 6f 76 65 20 74 68  |l just remove th|
00001210  65 20 42 42 43 20 43 6f  6d 70 75 74 65 72 20 6d  |e BBC Computer m|
00001220  65 73 61 67 65 73 2e 0d  20 20 20 20 2a 42 52 45  |esages..    *BRE|
00001230  41 4b 20 43 20 2d 20 74  68 69 73 20 77 69 6c 6c  |AK C - this will|
00001240  20 6c 65 61 76 65 20 74  68 65 20 6d 65 73 73 61  | leave the messa|
00001250  67 65 73 20 61 73 20 6e  6f 72 6d 61 6c 20 62 75  |ges as normal bu|
00001260  74 20 77 69 6c 6c 20 63  6c 61 69 6d 20 62 6f 74  |t will claim bot|
00001270  68 0d 57 52 43 48 56 20  61 6e 64 20 45 56 45 4e  |h.WRCHV and EVEN|
00001280  54 56 2e 0d 0d 20 20 20  20 20 20 32 29 20 2a 55  |TV...      2) *U|
00001290  70 70 65 72 2c 20 2a 4c  6f 77 65 72 20 61 6e 64  |pper, *Lower and|
000012a0  20 2a 4e 6f 72 6d 61 6c  0d 20 20 20 20 49 66 20  | *Normal.    If |
000012b0  2a 42 72 65 61 6b 20 68  61 73 20 6e 6f 74 20 63  |*Break has not c|
000012c0  6c 61 69 6d 65 64 20 74  68 65 20 57 52 43 48 56  |laimed the WRCHV|
000012d0  20 76 65 63 74 6f 72 20  74 68 65 6e 20 74 68 65  | vector then the|
000012e0  73 65 20 63 6f 6d 6d 61  6e 64 73 20 6d 61 79 20  |se commands may |
000012f0  6e 6f 74 0d 62 65 20 75  73 65 64 2e 0d 20 20 20  |not.be used..   |
00001300  20 2a 55 50 50 45 52 20  63 61 75 73 65 73 20 61  | *UPPER causes a|
00001310  6c 6c 20 6c 6f 77 65 72  20 63 61 73 65 20 63 68  |ll lower case ch|
00001320  61 72 61 63 74 65 72 73  20 73 65 6e 74 20 74 6f  |aracters sent to|
00001330  20 74 68 65 20 73 63 72  65 65 6e 20 61 6e 64 20  | the screen and |
00001340  70 72 69 6e 74 65 72 0d  74 6f 20 62 65 20 6d 61  |printer.to be ma|
00001350  64 65 20 69 6e 74 6f 20  75 70 70 65 72 20 63 61  |de into upper ca|
00001360  73 65 20 63 68 61 72 61  63 74 65 72 73 2e 0d 20  |se characters.. |
00001370  20 20 20 2a 4c 4f 57 45  52 20 6f 70 65 72 61 74  |   *LOWER operat|
00001380  65 73 20 74 68 65 20 73  61 6d 65 20 61 73 20 2a  |es the same as *|
00001390  55 70 70 65 72 20 62 75  74 20 63 6f 76 65 72 74  |Upper but covert|
000013a0  73 20 61 6c 6c 20 75 70  70 65 72 20 63 61 73 65  |s all upper case|
000013b0  0d 63 68 61 72 61 63 74  65 72 73 20 74 6f 20 6c  |.characters to l|
000013c0  6f 77 65 72 20 63 61 73  65 20 63 68 61 72 61 63  |ower case charac|
000013d0  74 65 72 73 2e 0d 20 20  20 20 2a 4e 4f 52 4d 41  |ters..    *NORMA|
000013e0  4c 20 63 61 6e 63 65 6c  73 20 74 68 65 20 61 63  |L cancels the ac|
000013f0  74 69 6f 6e 20 6f 66 20  2a 55 70 70 65 72 20 61  |tion of *Upper a|
00001400  6e 64 20 2a 4c 6f 77 65  72 0d 0d 20 20 20 20 20  |nd *Lower..     |
00001410  20 33 29 20 2a 52 65 74  75 72 6e 20 61 6e 64 20  | 3) *Return and |
00001420  2a 4e 6f 72 65 74 75 72  6e 0d 20 20 20 20 41 67  |*Noreturn.    Ag|
00001430  61 69 6e 20 74 68 65 20  57 52 43 48 56 20 76 65  |ain the WRCHV ve|
00001440  63 74 6f 72 20 68 61 73  20 74 6f 20 62 65 20 63  |ctor has to be c|
00001450  6c 61 69 6d 65 64 2e 20  2a 52 45 54 55 52 4e 20  |laimed. *RETURN |
00001460  7b 6e 75 6d 62 65 72 7d  20 63 65 6e 73 75 72 65  |{number} censure|
00001470  73 0d 74 68 65 20 63 68  61 72 61 63 74 65 72 73  |s.the characters|
00001480  20 73 65 6e 74 20 74 6f  20 74 68 65 20 73 63 72  | sent to the scr|
00001490  65 65 6e 20 61 6e 64 20  69 66 20 61 20 63 68 61  |een and if a cha|
000014a0  72 61 63 74 65 72 20 77  69 74 68 20 74 68 65 20  |racter with the |
000014b0  73 61 6d 65 20 41 53 43  49 49 0d 76 61 6c 75 65  |same ASCII.value|
000014c0  20 61 73 20 7b 6e 75 6d  62 65 72 7d 20 69 73 20  | as {number} is |
000014d0  73 65 6e 74 20 6f 75 74  70 75 74 20 69 73 20 68  |sent output is h|
000014e0  61 6c 74 65 64 20 75 6e  74 69 6c 20 74 68 65 20  |alted until the |
000014f0  75 73 65 72 20 70 72 65  73 73 65 73 20 74 68 65  |user presses the|
00001500  0d 52 45 54 55 52 4e 20  6b 65 79 2e 20 2a 4e 4f  |.RETURN key. *NO|
00001510  52 45 54 55 52 4e 20 63  61 6e 63 65 6c 73 20 74  |RETURN cancels t|
00001520  68 69 73 20 61 63 74 69  6f 6e 2e 0d 20 20 20 65  |his action..   e|
00001530  2e 67 2e 20 2a 52 45 54  55 52 4e 20 44 20 2d 20  |.g. *RETURN D - |
00001540  6d 65 61 6e 73 20 74 68  61 74 20 74 68 65 20 72  |means that the r|
00001550  65 74 75 72 6e 20 6b 65  79 20 6d 75 73 74 20 62  |eturn key must b|
00001560  65 20 70 72 65 73 73 65  64 20 62 65 66 6f 72 65  |e pressed before|
00001570  20 65 76 65 72 79 0d 6c  69 6e 65 20 66 65 65 64  | every.line feed|
00001580  0d 0d 20 20 20 20 20 20  34 29 20 2a 42 65 65 70  |..      4) *Beep|
00001590  20 61 6e 64 20 2a 4e 6f  62 65 65 70 0d 20 20 20  | and *Nobeep.   |
000015a0  20 41 67 61 69 6e 20 74  68 65 20 57 52 43 48 56  | Again the WRCHV|
000015b0  20 76 65 63 74 6f 72 20  6d 75 73 74 20 62 65 20  | vector must be |
000015c0  63 6c 61 69 6d 65 64 2e  20 2a 42 45 45 50 20 78  |claimed. *BEEP x|
000015d0  20 79 20 73 6c 6f 77 73  20 64 6f 77 6e 20 6f 75  | y slows down ou|
000015e0  74 70 75 74 20 74 6f 0d  74 68 65 20 73 63 72 65  |tput to.the scre|
000015f0  65 6e 20 62 79 20 63 61  75 73 69 6e 67 20 61 20  |en by causing a |
00001600  62 65 65 70 20 74 68 6f  75 67 68 20 74 68 65 20  |beep though the |
00001610  69 6e 74 65 72 6e 61 6c  20 73 70 65 61 6b 65 72  |internal speaker|
00001620  20 6f 66 20 74 68 65 20  73 61 6d 65 20 70 69 74  | of the same pit|
00001630  63 68 0d 61 73 20 74 68  65 20 63 68 61 72 61 63  |ch.as the charac|
00001640  74 65 72 20 73 65 6e 74  20 74 6f 20 74 68 65 20  |ter sent to the |
00001650  73 63 72 65 65 6e 2e 20  57 69 74 68 20 42 65 65  |screen. With Bee|
00001660  70 20 78 20 61 6e 64 20  79 20 61 72 65 20 6e 65  |p x and y are ne|
00001670  65 64 65 64 20 66 6f 72  0d 64 75 72 61 74 69 6f  |eded for.duratio|
00001680  6e 20 6f 66 20 62 65 65  70 20 28 78 29 20 61 6e  |n of beep (x) an|
00001690  64 20 61 6d 70 6c 69 74  75 64 65 20 28 79 29 2e  |d amplitude (y).|
000016a0  20 54 68 65 73 65 20 61  72 65 20 74 68 65 20 73  | These are the s|
000016b0  61 6d 65 20 61 73 20 66  6f 72 20 74 68 65 20 42  |ame as for the B|
000016c0  42 43 0d 42 41 53 49 43  20 73 6f 75 6e 64 20 63  |BC.BASIC sound c|
000016d0  6f 6d 6d 61 6e 64 20 62  75 74 20 74 68 65 20 61  |ommand but the a|
000016e0  6d 70 6c 69 74 75 64 65  20 69 73 20 70 6f 73 69  |mplitude is posi|
000016f0  74 69 76 65 20 6e 6f 74  20 6e 65 67 61 74 69 76  |tive not negativ|
00001700  65 20 61 6e 64 0d 65 6e  76 65 6c 6f 70 65 73 20  |e and.envelopes |
00001710  63 61 6e 6e 6f 74 20 62  65 20 75 73 65 64 2c 20  |cannot be used, |
00001720  65 2e 67 2e 20 2a 42 45  45 50 20 31 20 37 2e 20  |e.g. *BEEP 1 7. |
00001730  2a 4e 4f 42 45 45 50 20  63 61 6e 63 65 6c 73 20  |*NOBEEP cancels |
00001740  74 68 69 73 20 61 63 74  69 6f 6e 2e 0d 0d 20 20  |this action...  |
00001750  20 20 20 20 35 29 20 2a  54 65 78 74 2c 20 2a 47  |    5) *Text, *G|
00001760  72 61 70 68 69 63 20 61  6e 64 20 2a 57 69 6e 64  |raphic and *Wind|
00001770  6f 77 0d 20 20 20 20 57  69 74 68 69 6e 20 45 63  |ow.    Within Ec|
00001780  6c 69 70 73 65 20 73 70  61 63 65 20 68 61 73 20  |lipse space has |
00001790  62 65 65 6e 20 61 6c 6c  6f 74 65 64 20 74 6f 20  |been alloted to |
000017a0  68 6f 6c 64 20 74 68 65  20 73 65 74 74 69 6e 67  |hold the setting|
000017b0  73 20 66 6f 72 20 31 36  0d 77 69 6e 64 6f 77 73  |s for 16.windows|
000017c0  20 77 68 69 63 68 20 77  6f 75 6c 64 20 6e 6f 72  | which would nor|
000017d0  6d 61 6c 6c 79 20 68 61  76 65 20 74 6f 20 62 65  |mally have to be|
000017e0  20 73 65 74 20 77 69 74  68 20 74 68 65 20 56 44  | set with the VD|
000017f0  55 20 32 33 20 61 6e 64  20 56 44 55 20 32 38 0d  |U 23 and VDU 28.|
00001800  63 6f 6d 6d 61 6e 64 73  2e 20 54 68 65 20 66 69  |commands. The fi|
00001810  72 73 74 20 38 20 77 69  6e 64 6f 77 73 20 28 30  |rst 8 windows (0|
00001820  20 74 6f 20 37 29 20 61  72 65 20 66 6f 72 20 74  | to 7) are for t|
00001830  65 78 74 20 77 69 6e 64  6f 77 73 20 61 6e 64 20  |ext windows and |
00001840  74 68 65 20 73 65 63 6f  6e 64 0d 38 2c 20 38 20  |the second.8, 8 |
00001850  74 6f 20 26 46 20 66 6f  72 20 67 72 61 70 68 69  |to &F for graphi|
00001860  63 20 77 69 6e 64 6f 77  73 2e 20 2a 54 65 78 74  |c windows. *Text|
00001870  20 6f 72 20 2a 47 72 61  70 68 69 63 20 61 72 65  | or *Graphic are|
00001880  20 75 73 65 64 20 74 6f  20 73 65 74 20 74 68 65  | used to set the|
00001890  0d 77 69 6e 64 6f 77 27  73 20 70 61 72 61 72 6d  |.window's pararm|
000018a0  65 74 65 72 73 20 61 6e  64 20 2a 57 69 6e 64 6f  |eters and *Windo|
000018b0  77 20 74 6f 20 61 63 74  69 76 61 74 65 20 74 68  |w to activate th|
000018c0  65 6d 0d 20 20 20 20 20  20 65 2e 67 2e 0d 20 20  |em.      e.g..  |
000018d0  20 20 20 20 2a 54 65 78  74 20 30 20 35 20 31 30  |    *Text 0 5 10|
000018e0  20 44 20 31 0d 20 20 20  20 20 20 2a 57 69 6e 64  | D 1.      *Wind|
000018f0  6f 77 20 30 0d 20 20 20  20 20 20 2a 47 72 61 70  |ow 0.      *Grap|
00001900  68 69 63 20 38 20 39 36  20 31 32 43 20 34 34 38  |hic 8 96 12C 448|
00001910  20 32 42 43 0d 20 20 20  20 20 20 2a 57 69 6e 64  | 2BC.      *Wind|
00001920  6f 77 20 38 0d 0d 20 20  20 20 20 20 36 29 20 2a  |ow 8..      6) *|
00001930  42 61 73 6c 69 73 74 0d  20 20 20 20 54 68 69 73  |Baslist.    This|
00001940  20 69 73 20 74 68 65 20  6f 6e 6c 79 20 63 6f 6d  | is the only com|
00001950  6d 61 6e 64 20 72 65 71  75 69 72 69 6e 67 20 74  |mand requiring t|
00001960  68 65 20 42 41 53 49 43  20 52 4f 4d 2e 20 2a 42  |he BASIC ROM. *B|
00001970  61 73 6c 69 73 74 20 7b  66 69 6c 65 6e 61 6d 65  |aslist {filename|
00001980  7d 0d 77 69 6c 6c 20 66  69 6e 64 20 74 68 65 20  |}.will find the |
00001990  66 69 6c 65 20 73 70 65  63 69 66 69 65 64 20 61  |file specified a|
000019a0  6e 64 20 6c 69 73 74 20  69 74 20 6f 6e 20 73 63  |nd list it on sc|
000019b0  72 65 65 6e 20 61 73 20  69 66 20 69 74 20 77 65  |reen as if it we|
000019c0  72 65 20 69 6e 20 6d 65  6d 6f 72 79 0d 61 6e 64  |re in memory.and|
000019d0  20 77 65 72 65 20 62 65  69 6e 67 20 4c 49 53 54  | were being LIST|
000019e0  65 64 2e 0d 20 20 20 20  4f 6e 65 20 61 64 76 61  |ed..    One adva|
000019f0  6e 74 61 67 65 20 6f 66  20 74 68 69 73 20 63 6f  |ntage of this co|
00001a00  6d 6d 61 6e 64 20 69 73  20 69 6e 20 72 65 63 6f  |mmand is in reco|
00001a10  76 65 72 69 6e 67 20 61  20 22 42 61 64 20 70 72  |vering a "Bad pr|
00001a20  6f 67 72 61 6d 22 2e 20  53 69 6e 63 65 0d 74 68  |ogram". Since.th|
00001a30  65 20 6f 75 74 70 75 74  20 63 61 6e 20 62 65 20  |e output can be |
00001a40  73 70 6f 6f 6c 65 64 20  61 73 20 75 73 75 61 6c  |spooled as usual|
00001a50  2c 20 69 66 20 61 20 70  72 6f 67 72 61 6d 20 62  |, if a program b|
00001a60  65 63 6f 6d 65 73 20 62  61 64 20 74 68 65 20 61  |ecomes bad the a|
00001a70  72 65 61 20 6f 66 0d 6d  65 6d 6f 72 79 20 63 6f  |rea of.memory co|
00001a80  6e 74 61 69 6e 69 6e 67  20 74 68 65 20 70 72 6f  |ntaining the pro|
00001a90  67 72 61 6d 20 63 61 6e  20 62 65 20 2a 53 41 56  |gram can be *SAV|
00001aa0  45 64 2c 20 61 20 2a 53  50 4f 4f 4c 20 66 69 6c  |Ed, a *SPOOL fil|
00001ab0  65 20 6f 70 65 6e 65 64  20 61 6e 64 20 74 68 65  |e opened and the|
00001ac0  6e 0d 74 68 65 20 6d 65  6d 6f 72 79 20 66 69 6c  |n.the memory fil|
00001ad0  65 20 2a 42 61 73 6c 69  73 74 65 64 20 74 6f 20  |e *Baslisted to |
00001ae0  70 72 6f 64 75 63 65 73  20 61 20 66 69 6c 65 20  |produces a file |
00001af0  77 68 69 63 68 20 77 68  65 6e 20 65 78 65 63 75  |which when execu|
00001b00  74 65 64 20 69 73 20 61  0d 6e 6f 72 6d 61 6c 20  |ted is a.normal |
00001b10  42 41 53 49 43 20 70 72  6f 67 72 61 6d 2c 0d 20  |BASIC program,. |
00001b20  20 20 20 20 20 65 2e 67  2e 20 2a 53 41 56 45 20  |     e.g. *SAVE |
00001b30  42 41 44 50 52 4f 47 20  31 39 30 30 20 2b 31 30  |BADPROG 1900 +10|
00001b40  30 30 0d 20 20 20 20 20  20 20 20 20 20 20 2a 53  |00.           *S|
00001b50  50 4f 4f 4c 20 50 52 4f  47 0d 20 20 20 20 20 20  |POOL PROG.      |
00001b60  20 20 20 20 20 2a 42 41  53 4c 49 53 54 20 42 41  |     *BASLIST BA|
00001b70  44 50 52 4f 47 0d 20 20  20 20 20 20 20 20 20 20  |DPROG.          |
00001b80  20 28 70 72 6f 67 72 61  6d 20 69 73 20 6c 69 73  | (program is lis|
00001b90  74 65 64 29 0d 20 20 20  20 20 20 20 20 20 20 20  |ted).           |
00001ba0  2a 53 50 4f 4f 4c 0d 20  20 20 20 20 20 20 20 20  |*SPOOL.         |
00001bb0  20 20 4e 45 57 20 28 70  72 65 70 61 72 65 20 42  |  NEW (prepare B|
00001bc0  41 53 49 43 20 66 6f 72  20 61 20 6e 65 77 20 70  |ASIC for a new p|
00001bd0  72 6f 67 72 61 6d 29 0d  20 20 20 20 20 20 20 20  |rogram).        |
00001be0  20 20 20 2a 45 58 45 43  20 50 52 4f 47 0d 0d 20  |   *EXEC PROG.. |
00001bf0  20 20 20 54 68 69 73 20  6d 61 79 20 6e 6f 74 20  |   This may not |
00001c00  72 65 63 6f 76 65 72 20  61 6c 6c 20 74 68 65 20  |recover all the |
00001c10  70 72 6f 67 72 61 6d 20  28 74 68 65 20 61 6d 6f  |program (the amo|
00001c20  75 6e 74 20 72 65 63 6f  76 65 72 65 64 20 64 65  |unt recovered de|
00001c30  70 65 6e 64 73 20 6f 6e  0d 74 68 65 20 64 61 6d  |pends on.the dam|
00001c40  61 67 65 20 64 6f 6e 65  29 20 62 75 74 20 77 69  |age done) but wi|
00001c50  6c 6c 20 75 73 75 61 6c  6c 79 20 72 65 63 6f 76  |ll usually recov|
00001c60  65 72 20 6d 6f 73 74 20  6f 66 20 74 68 65 20 70  |er most of the p|
00001c70  72 6f 67 72 61 6d 2e 0d  0d 20 20 20 20 20 20 37  |rogram...      7|
00001c80  29 20 2a 43 48 41 4e 47  45 20 61 6e 64 20 2a 4e  |) *CHANGE and *N|
00001c90  4f 43 48 41 4e 47 45 0d  20 20 20 20 54 68 65 73  |OCHANGE.    Thes|
00001ca0  65 20 32 20 63 6f 6d 6d  61 6e 64 73 20 72 65 71  |e 2 commands req|
00001cb0  75 69 72 65 20 57 52 43  48 56 20 74 6f 20 68 61  |uire WRCHV to ha|
00001cc0  76 65 20 62 65 65 6e 20  63 6c 61 69 6d 65 64 20  |ve been claimed |
00001cd0  77 69 74 68 20 2a 42 52  45 41 4b 2e 0d 2a 4e 4f  |with *BREAK..*NO|
00001ce0  43 48 41 4e 47 45 20 77  69 6c 6c 20 77 69 70 65  |CHANGE will wipe|
00001cf0  20 61 6c 6c 20 73 65 74  74 69 6e 67 73 20 73 65  | all settings se|
00001d00  74 20 62 79 20 2a 43 48  41 4e 47 45 2e 20 43 68  |t by *CHANGE. Ch|
00001d10  61 6e 67 65 20 6e 65 65  64 73 20 33 0d 70 61 72  |ange needs 3.par|
00001d20  61 6d 65 74 65 72 73 2c  20 74 68 65 20 66 69 72  |ameters, the fir|
00001d30  73 74 20 6f 66 20 77 68  69 63 68 20 69 73 20 74  |st of which is t|
00001d40  68 65 20 70 72 69 6f 72  69 74 79 20 28 30 20 74  |he priority (0 t|
00001d50  6f 20 26 44 29 2c 20 6e  65 78 74 20 63 6f 6d 65  |o &D), next come|
00001d60  73 20 74 68 65 0d 63 68  61 72 61 63 74 65 72 20  |s the.character |
00001d70  74 6f 20 62 65 20 63 68  61 6e 67 65 64 20 74 68  |to be changed th|
00001d80  65 6e 20 74 68 65 20 63  68 61 72 61 63 74 65 72  |en the character|
00001d90  20 74 6f 20 62 65 20 63  68 61 6e 67 65 64 20 74  | to be changed t|
00001da0  6f 0d 20 20 20 20 20 20  65 2e 67 2e 20 2a 43 48  |o.      e.g. *CH|
00001db0  41 4e 47 45 20 31 20 43  20 34 30 0d 20 20 20 20  |ANGE 1 C 40.    |
00001dc0  54 68 69 73 20 77 6f 75  6c 64 20 63 61 75 73 65  |This would cause|
00001dd0  20 74 68 65 20 40 20 73  69 67 6e 20 74 6f 20 62  | the @ sign to b|
00001de0  65 20 70 72 69 6e 74 65  64 20 77 68 65 6e 20 65  |e printed when e|
00001df0  76 65 72 20 56 44 55 31  32 20 77 61 73 20 69 73  |ver VDU12 was is|
00001e00  73 75 65 64 2e 0d 54 68  65 20 70 72 69 6f 72 69  |sued..The priori|
00001e10  74 79 20 69 73 20 69 6d  70 6f 72 74 61 6e 74 20  |ty is important |
00001e20  73 69 6e 63 65 20 74 68  65 72 65 20 6d 61 79 20  |since there may |
00001e30  62 65 20 73 65 76 65 72  61 6c 20 61 74 74 65 6d  |be several attem|
00001e40  70 74 73 20 74 6f 20 63  68 61 6e 67 65 0d 6f 6e  |pts to change.on|
00001e50  65 20 63 68 61 72 61 63  74 65 72 2c 20 74 68 65  |e character, the|
00001e60  20 66 69 72 73 74 20 74  6f 20 69 74 20 77 69 6e  | first to it win|
00001e70  73 20 65 2e 67 2e 20 77  69 74 68 20 74 68 65 20  |s e.g. with the |
00001e80  66 6f 6c 6c 6f 77 69 6e  67 20 73 65 74 74 69 6e  |following settin|
00001e90  67 73 3a 2d 0d 20 20 20  20 20 20 2a 43 48 41 4e  |gs:-.      *CHAN|
00001ea0  47 45 20 30 20 43 20 34  30 0d 20 20 20 20 20 20  |GE 0 C 40.      |
00001eb0  2a 43 48 41 4e 47 45 20  31 20 43 20 34 31 0d 20  |*CHANGE 1 C 41. |
00001ec0  20 20 20 20 20 2a 43 48  41 4e 47 45 20 32 20 43  |     *CHANGE 2 C|
00001ed0  20 34 32 0d 20 20 20 20  20 20 56 44 55 20 31 32  | 42.      VDU 12|
00001ee0  20 77 6f 75 6c 64 20 62  65 20 63 68 61 6e 67 65  | would be change|
00001ef0  64 20 74 6f 20 40 20 6e  6f 74 20 41 20 74 6f 20  |d to @ not A to |
00001f00  42 2e 0d 0d 20 20 20 20  20 20 38 29 20 2a 53 45  |B...      8) *SE|
00001f10  54 54 49 4e 47 53 20 61  6e 64 20 2a 53 54 41 54  |TTINGS and *STAT|
00001f20  55 53 0d 20 20 20 20 54  68 65 73 65 20 73 69 6d  |US.    These sim|
00001f30  70 6c 79 20 64 69 73 70  6c 61 79 20 64 65 74 61  |ply display deta|
00001f40  69 6c 73 20 6f 66 20 76  61 72 69 6f 75 73 20 73  |ils of various s|
00001f50  65 74 74 69 6e 67 73 20  65 2e 67 20 62 72 65 61  |ettings e.g brea|
00001f60  6b 2c 20 62 65 65 70 2c  0d 72 65 74 75 72 6e 2c  |k, beep,.return,|
00001f70  20 63 68 61 6e 67 65 20  61 6e 64 20 77 69 6e 64  | change and wind|
00001f80  6f 77 73 2e 0d 0d 0d 20  20 20 20 20 20 20 20 20  |ows....         |
00001f90  20 20 20 4d 61 63 72 6f  73 0d 20 20 20 20 20 4d  |   Macros.     M|
00001fa0  61 63 72 6f 73 20 61 72  65 20 6f 6e 65 20 6f 66  |acros are one of|
00001fb0  20 74 68 65 20 6d 61 6a  6f 72 20 66 75 6e 63 74  | the major funct|
00001fc0  69 6f 6e 73 20 6f 66 20  45 63 6c 69 70 73 65 2e  |ions of Eclipse.|
00001fd0  20 4d 61 63 72 6f 73 20  69 6e 20 45 63 6c 69 70  | Macros in Eclip|
00001fe0  73 65 0d 61 72 65 20 61  20 63 6f 6c 6c 65 63 74  |se.are a collect|
00001ff0  69 6f 6e 20 6f 66 20 4f  70 65 72 61 74 69 6e 67  |ion of Operating|
00002000  20 53 79 73 74 65 6d 20  73 74 61 72 20 28 2a 29  | System star (*)|
00002010  20 63 6f 6d 6d 61 6e 64  73 2e 20 54 68 69 73 20  | commands. This |
00002020  65 6e 61 62 6c 65 73 0d  45 63 6c 69 70 73 65 20  |enables.Eclipse |
00002030  74 6f 20 61 63 63 65 73  73 20 4f 53 20 66 75 6e  |to access OS fun|
00002040  63 74 69 6f 6e 73 2c 20  66 75 6e 63 74 69 6f 6e  |ctions, function|
00002050  73 20 69 6e 20 6f 74 68  65 72 20 52 4f 4d 73 20  |s in other ROMs |
00002060  77 68 69 63 68 20 68 61  76 65 20 63 6f 6d 6d 61  |which have comma|
00002070  6e 64 0d 61 63 63 65 73  73 20 61 6e 64 20 70 72  |nd.access and pr|
00002080  6f 67 72 61 6d 73 20 6f  6e 20 64 69 73 63 2e 20  |ograms on disc. |
00002090  45 63 6c 69 70 73 65 20  61 6c 73 6f 20 70 72 6f  |Eclipse also pro|
000020a0  76 69 64 65 73 20 61 20  68 6f 73 74 20 6f 66 20  |vides a host of |
000020b0  73 75 70 70 6f 72 74 20  66 6f 72 0d 74 68 65 73  |support for.thes|
000020c0  65 20 63 6f 6d 6d 61 6e  64 73 20 69 6e 63 6c 75  |e commands inclu|
000020d0  64 69 6e 67 3b 20 69 66  20 74 68 65 6e 20 65 6c  |ding; if then el|
000020e0  73 65 2c 20 66 6f 72 20  6e 65 78 74 2c 20 72 65  |se, for next, re|
000020f0  70 65 61 74 20 75 6e 74  69 6c 2c 20 76 61 72 69  |peat until, vari|
00002100  61 62 6c 65 73 0d 65 74  63 2e 20 45 63 6c 69 70  |ables.etc. Eclip|
00002110  73 65 20 63 61 6e 2c 20  69 6e 20 73 6f 6d 65 20  |se can, in some |
00002120  77 61 79 73 2c 20 62 65  20 74 68 6f 75 67 68 74  |ways, be thought|
00002130  20 6f 66 20 61 73 20 61  20 73 6d 61 6c 6c 20 6c  | of as a small l|
00002140  61 6e 67 75 61 67 65 2e  0d 20 20 20 20 4d 61 63  |anguage..    Mac|
00002150  72 6f 73 20 61 72 65 20  70 72 6f 67 72 61 6d 6d  |ros are programm|
00002160  65 64 20 69 6e 20 74 68  65 20 73 61 6d 65 20 77  |ed in the same w|
00002170  61 79 20 61 73 20 6e 6f  74 65 73 20 61 72 65 20  |ay as notes are |
00002180  74 61 6b 65 6e 2c 20 77  69 74 68 20 74 68 65 20  |taken, with the |
00002190  75 73 65 0d 6f 66 20 74  68 65 20 4d 45 4d 20 63  |use.of the MEM c|
000021a0  6f 6d 6d 61 6e 64 2e 20  54 6f 20 74 65 6c 6c 20  |ommand. To tell |
000021b0  45 63 6c 69 70 73 65 20  74 68 61 74 20 74 68 65  |Eclipse that the|
000021c0  20 6d 65 6d 62 61 6e 6b  20 63 6f 6e 74 61 69 6e  | membank contain|
000021d0  73 20 61 20 6d 61 63 72  6f 20 69 74 0d 6d 75 73  |s a macro it.mus|
000021e0  74 20 73 74 61 72 74 20  77 69 74 68 20 61 20 7a  |t start with a z|
000021f0  65 72 6f 2e 20 4e 65 78  74 20 6d 75 73 74 20 62  |ero. Next must b|
00002200  65 20 74 68 65 20 6e 61  6d 65 20 6f 66 20 74 68  |e the name of th|
00002210  65 20 63 6f 6d 6d 61 6e  64 20 61 6e 64 20 66 69  |e command and fi|
00002220  6e 61 6c 6c 79 20 61 0d  63 61 72 72 69 61 67 65  |nally a.carriage|
00002230  20 72 65 74 75 72 6e 20  6f 72 20 73 70 61 63 65  | return or space|
00002240  20 74 6f 20 73 69 67 6e  61 6c 20 74 68 65 20 65  | to signal the e|
00002250  6e 64 20 6f 66 20 74 68  65 20 63 6f 6d 6d 61 6e  |nd of the comman|
00002260  64 2c 20 65 2e 67 2e 20  2a 4d 45 4d 20 30 30 0d  |d, e.g. *MEM 00.|
00002270  7c 40 45 58 41 4d 50 4c  45 7c 4d 20 64 65 66 69  ||@EXAMPLE|M defi|
00002280  6e 65 73 20 61 20 6e 65  77 20 63 6f 6d 6d 61 6e  |nes a new comman|
00002290  64 20 69 6e 20 6d 65 6d  62 61 6e 6b 20 30 30 20  |d in membank 00 |
000022a0  63 61 6c 6c 65 64 20 45  58 41 4d 50 4c 45 2c 20  |called EXAMPLE, |
000022b0  61 73 20 79 65 74 20 69  74 0d 64 6f 65 73 20 6e  |as yet it.does n|
000022c0  6f 74 68 69 6e 67 2e 20  42 79 20 74 79 70 69 6e  |othing. By typin|
000022d0  67 20 2a 4d 41 43 52 4f  53 20 61 6c 6c 20 74 68  |g *MACROS all th|
000022e0  65 20 6d 61 63 72 6f 73  20 73 6f 20 66 61 72 20  |e macros so far |
000022f0  64 65 66 69 6e 65 64 20  77 69 6c 6c 20 62 65 0d  |defined will be.|
00002300  6c 69 73 74 65 64 2e 20  53 75 70 70 6f 73 65 20  |listed. Suppose |
00002310  61 20 63 6f 6d 6d 61 6e  64 20 69 73 20 6e 65 65  |a command is nee|
00002320  64 65 64 20 74 6f 20 63  61 74 61 6c 6f 67 75 65  |ded to catalogue|
00002330  20 62 6f 74 68 20 73 69  64 65 73 20 6f 66 20 74  | both sides of t|
00002340  68 65 20 64 69 73 63 20  61 74 0d 74 68 65 20 73  |he disc at.the s|
00002350  61 6d 65 20 74 69 6d 65  2e 20 54 68 65 6e 20 0d  |ame time. Then .|
00002360  20 20 20 20 20 20 2a 4d  45 4d 20 30 30 20 7c 40  |      *MEM 00 |@|
00002370  42 4f 54 48 7c 4d 43 41  54 20 30 7c 4d 43 41 54  |BOTH|MCAT 0|MCAT|
00002380  20 32 7c 4d 20 0d 20 20  20 20 4e 6f 74 69 63 65  | 2|M .    Notice|
00002390  20 74 68 61 74 20 79 6f  75 20 6e 65 65 64 20 6e  | that you need n|
000023a0  6f 74 20 69 6e 73 65 72  74 20 74 68 65 20 2a 2e  |ot insert the *.|
000023b0  20 54 68 69 73 20 61 6c  73 6f 20 73 68 6f 77 73  | This also shows|
000023c0  20 68 6f 77 20 63 6f 6d  6d 61 6e 64 73 0d 6d 61  | how commands.ma|
000023d0  79 20 62 65 20 70 6c 61  63 65 64 20 6f 6e 65 20  |y be placed one |
000023e0  61 66 74 65 72 20 61 6e  6f 74 68 65 72 20 62 79  |after another by|
000023f0  20 73 65 70 61 72 61 74  69 6e 67 20 63 6f 6d 6d  | separating comm|
00002400  61 6e 64 73 20 77 69 74  68 20 61 20 72 65 74 75  |ands with a retu|
00002410  72 6e 2e 20 54 68 65 0d  66 69 6e 61 6c 20 7c 4d  |rn. The.final |M|
00002420  20 69 73 20 6e 6f 74 20  73 74 72 69 63 74 6c 79  | is not strictly|
00002430  20 6e 65 63 65 73 73 61  72 79 20 73 69 6e 63 65  | necessary since|
00002440  20 45 63 6c 69 70 73 65  20 61 75 74 6f 6d 61 74  | Eclipse automat|
00002450  69 63 61 6c 6c 79 20 69  6e 73 65 72 74 73 20 6f  |ically inserts o|
00002460  6e 65 0d 77 68 65 6e 20  69 74 20 63 6f 6d 65 73  |ne.when it comes|
00002470  20 74 6f 20 74 68 65 20  65 6e 64 20 6f 66 20 74  | to the end of t|
00002480  68 65 20 6d 65 6d 62 61  6e 6b 2e 20 4d 61 63 72  |he membank. Macr|
00002490  6f 73 20 63 61 6e 20 62  65 20 72 65 63 61 6c 6c  |os can be recall|
000024a0  65 64 20 69 6e 20 74 68  65 0d 6e 6f 72 6d 61 6c  |ed in the.normal|
000024b0  20 77 61 79 20 77 69 74  68 20 2a 52 45 43 41 4c  | way with *RECAL|
000024c0  4c 2e 20 54 6f 20 75 73  65 20 61 20 6d 61 63 72  |L. To use a macr|
000024d0  6f 20 73 69 6d 70 6c 79  20 74 79 70 65 20 69 74  |o simply type it|
000024e0  73 20 6e 61 6d 65 20 61  73 20 61 20 6e 6f 72 6d  |s name as a norm|
000024f0  61 6c 20 2a 0d 63 6f 6d  6d 61 6e 64 20 65 2e 67  |al *.command e.g|
00002500  2e 20 2a 42 4f 54 48 2e  20 54 6f 20 72 65 64 75  |. *BOTH. To redu|
00002510  63 65 20 63 6c 61 73 68  65 73 20 74 68 65 20 6d  |ce clashes the m|
00002520  61 63 72 6f 27 73 20 61  72 65 20 63 61 73 65 20  |acro's are case |
00002530  73 65 6e 73 69 74 69 76  65 20 65 2e 67 2e 0d 2a  |sensitive e.g..*|
00002540  42 4f 54 48 20 61 6e 64  20 2a 62 6f 74 68 20 61  |BOTH and *both a|
00002550  72 65 20 64 69 66 66 65  72 65 6e 74 20 63 6f 6d  |re different com|
00002560  6d 61 6e 64 73 2e 20 0d  20 20 20 20 41 6e 20 61  |mands. .    An a|
00002570  6c 74 65 72 6e 61 74 69  76 65 20 77 61 79 20 74  |lternative way t|
00002580  6f 20 75 73 65 20 6d 61  63 72 6f 73 20 69 73 20  |o use macros is |
00002590  77 69 74 68 6f 75 74 20  61 20 63 6f 6d 6d 61 6e  |without a comman|
000025a0  64 2e 20 54 68 65 20 6d  61 63 72 6f 20 69 73 0d  |d. The macro is.|
000025b0  64 65 66 69 6e 65 64 20  61 73 20 6e 6f 72 6d 61  |defined as norma|
000025c0  6c 20 62 75 74 20 74 68  65 20 7a 65 72 6f 2c 20  |l but the zero, |
000025d0  6e 61 6d 65 2c 20 61 6e  64 20 72 65 74 75 72 6e  |name, and return|
000025e0  20 63 6f 64 65 20 69 73  20 6c 65 66 74 20 6f 75  | code is left ou|
000025f0  74 2e 20 54 6f 20 72 75  6e 0d 74 68 65 20 6d 61  |t. To run.the ma|
00002600  63 72 6f 20 74 68 65 20  63 6f 6d 6d 61 6e 64 20  |cro the command |
00002610  2a 4d 41 43 52 4f 20 78  20 69 73 20 75 73 65 64  |*MACRO x is used|
00002620  20 77 68 65 72 65 20 78  20 69 73 20 74 68 65 20  | where x is the |
00002630  6e 75 6d 62 65 72 20 6f  66 20 74 68 65 0d 6d 65  |number of the.me|
00002640  6d 62 61 6e 6b 20 63 6f  6e 74 61 69 6e 69 6e 67  |mbank containing|
00002650  20 74 68 65 20 6d 65 6d  62 61 6e 6b 2e 20 44 6f  | the membank. Do|
00002660  20 6e 6f 74 20 63 6f 6e  66 75 73 65 20 74 68 69  | not confuse thi|
00002670  73 20 63 6f 6d 6d 61 6e  64 20 77 69 74 68 20 2a  |s command with *|
00002680  4d 41 43 52 4f 53 0d 77  68 69 63 68 20 6c 6f 6f  |MACROS.which loo|
00002690  6b 73 20 66 6f 72 20 61  20 7a 65 72 6f 20 61 74  |ks for a zero at|
000026a0  20 74 68 65 20 73 74 61  72 74 20 6f 66 20 61 20  | the start of a |
000026b0  6d 65 6d 62 61 6e 6b 20  61 6e 64 20 69 66 20 69  |membank and if i|
000026c0  74 20 66 69 6e 64 73 20  6f 6e 65 0d 64 69 73 70  |t finds one.disp|
000026d0  6c 61 79 73 20 74 68 65  20 6e 61 6d 65 2e 20 4d  |lays the name. M|
000026e0  61 63 72 6f 73 20 64 65  66 69 6e 65 64 20 69 6e  |acros defined in|
000026f0  20 74 68 69 73 20 61 6c  74 65 72 6e 61 74 69 76  | this alternativ|
00002700  65 20 77 61 79 20 77 69  6c 6c 20 6e 6f 74 20 73  |e way will not s|
00002710  68 6f 77 20 75 70 0d 6f  6e 20 61 20 2a 4d 41 43  |how up.on a *MAC|
00002720  52 4f 53 20 63 61 6c 6c  2e 20 55 73 69 6e 67 20  |ROS call. Using |
00002730  74 68 69 73 20 6d 65 74  68 6f 64 20 74 68 65 20  |this method the |
00002740  61 62 6f 76 65 20 64 75  61 6c 20 63 61 74 61 6c  |above dual catal|
00002750  6f 67 75 65 20 77 6f 75  6c 64 20 62 65 0d 77 72  |ogue would be.wr|
00002760  69 74 74 65 6e 20 74 68  75 73 3a 0d 20 20 20 20  |itten thus:.    |
00002770  20 20 2a 4d 45 4d 20 30  30 20 2e 30 7c 4d 2e 32  |  *MEM 00 .0|M.2|
00002780  7c 4d 20 0d 20 20 54 6f  20 75 73 65 20 69 74 20  ||M .  To use it |
00002790  2a 4d 41 43 52 4f 20 30  30 20 77 6f 75 6c 64 20  |*MACRO 00 would |
000027a0  62 65 20 75 73 65 64 2e  20 28 54 68 65 20 75 73  |be used. (The us|
000027b0  65 20 6f 66 20 2a 2e 20  61 73 20 61 70 70 6f 73  |e of *. as appos|
000027c0  65 64 20 74 6f 20 2a 43  41 54 20 69 73 0d 69 72  |ed to *CAT is.ir|
000027d0  72 65 6c 65 76 61 6e 74  2e 29 0d 0d 20 20 20 20  |relevant.)..    |
000027e0  20 20 56 61 72 69 61 62  6c 65 73 0d 20 20 20 20  |  Variables.    |
000027f0  20 45 63 6c 69 70 73 65  20 73 75 70 70 6f 72 74  | Eclipse support|
00002800  73 20 76 61 72 69 61 62  6c 65 73 20 62 6f 74 68  |s variables both|
00002810  20 69 6e 73 69 64 65 20  61 6e 64 20 6f 75 74 73  | inside and outs|
00002820  69 64 65 20 6d 61 63 72  6f 73 20 61 6c 74 68 6f  |ide macros altho|
00002830  75 67 68 0d 6f 74 68 65  72 20 52 4f 4d 73 20 61  |ugh.other ROMs a|
00002840  6e 64 20 2a 20 63 6f 6d  6d 61 6e 64 73 20 77 69  |nd * commands wi|
00002850  6c 6c 20 6e 6f 74 20 72  65 63 6f 67 6e 69 7a 65  |ll not recognize|
00002860  20 45 63 6c 69 70 73 65  27 73 20 76 61 72 69 61  | Eclipse's varia|
00002870  62 6c 65 73 2c 20 75 6e  6c 65 73 73 0d 74 68 65  |bles, unless.the|
00002880  79 20 68 61 76 65 20 62  65 65 6e 20 70 72 6f 67  |y have been prog|
00002890  72 61 6d 6d 65 64 20 74  6f 20 64 6f 20 73 6f 2e  |rammed to do so.|
000028a0  20 54 68 65 72 65 20 61  72 65 20 6a 75 73 74 20  | There are just |
000028b0  32 36 20 76 61 72 69 61  62 6c 65 73 2c 20 41 20  |26 variables, A |
000028c0  74 6f 20 5a 0d 28 75 70  70 65 72 20 63 61 73 65  |to Z.(upper case|
000028d0  20 6f 6e 6c 79 20 29 2e  20 53 6f 20 74 68 61 74  | only ). So that|
000028e0  20 45 63 6c 69 70 73 65  20 6b 6e 6f 77 73 20 74  | Eclipse knows t|
000028f0  68 61 74 2c 20 77 68 61  74 20 69 74 20 65 78 70  |hat, what it exp|
00002900  65 63 74 73 20 74 6f 20  62 65 20 61 0d 6e 75 6d  |ects to be a.num|
00002910  62 65 72 20 69 73 20 61  63 74 75 61 6c 6c 79 20  |ber is actually |
00002920  61 20 76 61 72 69 61 62  6c 65 2e 20 49 74 20 69  |a variable. It i|
00002930  73 20 70 72 65 63 65 65  64 65 64 20 77 69 74 68  |s preceeded with|
00002940  20 61 20 70 65 72 63 65  6e 74 20 73 69 67 6e 20  | a percent sign |
00002950  28 25 29 2e 20 54 6f 0d  73 65 74 20 61 20 76 61  |(%). To.set a va|
00002960  72 69 61 62 6c 65 20 74  68 65 20 63 6f 6d 6d 61  |riable the comma|
00002970  6e 64 20 2a 4c 45 54 20  69 73 20 75 73 65 64 20  |nd *LET is used |
00002980  65 2e 67 2e 20 2a 4c 45  54 20 25 54 3d 37 37 2e  |e.g. *LET %T=77.|
00002990  20 54 6f 20 73 65 65 20  74 68 65 20 76 61 6c 75  | To see the valu|
000029a0  65 0d 6f 66 20 61 20 76  61 72 69 61 62 6c 65 20  |e.of a variable |
000029b0  2a 53 43 52 45 45 4e 20  63 61 6e 20 62 65 20 75  |*SCREEN can be u|
000029c0  73 65 64 20 65 2e 67 2e  20 2a 53 43 52 45 45 4e  |sed e.g. *SCREEN|
000029d0  20 25 54 2e 20 41 6c 6c  20 45 63 6c 69 70 73 65  | %T. All Eclipse|
000029e0  20 63 6f 6d 6d 61 6e 64  73 0d 77 69 6c 6c 20 61  | commands.will a|
000029f0  63 63 65 70 74 20 76 61  72 69 61 62 6c 65 73 20  |ccept variables |
00002a00  69 6e 73 74 65 61 64 20  6f 66 20 61 20 6e 75 6d  |instead of a num|
00002a10  62 65 72 2e 20 0d 20 20  20 20 49 66 20 61 20 76  |ber. .    If a v|
00002a20  61 72 69 61 62 6c 65 20  6f 72 20 76 61 6c 75 65  |ariable or value|
00002a30  20 69 73 20 70 72 65 66  69 78 65 64 20 62 79 20  | is prefixed by |
00002a40  3f 2c 20 61 73 20 69 6e  20 42 41 53 49 43 20 74  |?, as in BASIC t|
00002a50  68 65 20 65 66 66 65 63  74 20 77 69 6c 6c 0d 62  |he effect will.b|
00002a60  65 20 6c 69 6b 65 20 61  20 50 45 45 4b 20 63 6f  |e like a PEEK co|
00002a70  6d 6d 61 6e 64 2c 20 73  75 62 73 74 69 74 75 74  |mmand, substitut|
00002a80  69 6e 67 20 74 68 65 20  72 65 74 75 72 6e 65 64  |ing the returned|
00002a90  20 76 61 6c 75 65 20 66  6f 72 20 74 68 65 20 76  | value for the v|
00002aa0  61 6c 75 65 20 6f 66 0d  74 68 65 20 6d 65 6d 6f  |alue of.the memo|
00002ab0  72 79 20 6c 6f 63 61 74  69 6f 6e 20 6f 66 20 74  |ry location of t|
00002ac0  68 65 20 66 6f 6c 6c 6f  77 69 6e 67 20 76 61 6c  |he following val|
00002ad0  75 65 20 65 2e 67 2e 20  2a 4c 45 54 20 25 54 3d  |ue e.g. *LET %T=|
00002ae0  3f 46 46 46 46 20 6f 72  20 2a 4c 45 54 0d 25 54  |?FFFF or *LET.%T|
00002af0  3d 3f 25 55 2e 20 42 79  20 75 73 69 6e 67 20 32  |=?%U. By using 2|
00002b00  20 71 75 65 73 74 69 6f  6e 20 6d 61 72 6b 73 20  | question marks |
00002b10  61 6e 20 69 6e 64 69 72  65 63 74 20 6f 70 65 72  |an indirect oper|
00002b20  61 74 6f 72 20 63 61 6e  20 62 65 20 73 69 6d 75  |ator can be simu|
00002b30  6c 61 74 65 64 0d 65 2e  67 2e 20 4c 45 54 20 25  |lated.e.g. LET %|
00002b40  54 20 3f 3f 26 43 30 30  20 6d 65 61 6e 73 20 74  |T ??&C00 means t|
00002b50  68 65 20 76 61 6c 75 65  20 61 74 20 74 68 65 20  |he value at the |
00002b60  6d 65 6d 6f 72 79 20 70  6f 69 6e 74 65 64 20 74  |memory pointed t|
00002b70  6f 20 62 79 20 74 68 65  20 76 61 6c 75 65 0d 6f  |o by the value.o|
00002b80  66 20 6d 65 6d 6f 72 79  20 6c 6f 63 61 74 69 6f  |f memory locatio|
00002b90  6e 20 26 43 30 30 2e 0d  20 20 49 6e 69 74 69 61  |n &C00..  Initia|
00002ba0  6c 6c 79 20 61 6c 6c 20  76 61 72 69 61 62 6c 65  |lly all variable|
00002bb0  73 20 61 72 65 20 73 65  74 20 74 6f 20 7a 65 72  |s are set to zer|
00002bc0  6f 2e 20 56 61 72 69 61  62 6c 65 73 20 61 72 65  |o. Variables are|
00002bd0  20 31 36 20 62 69 74 2c  20 69 66 20 61 6e 0d 45  | 16 bit, if an.E|
00002be0  63 6c 69 70 73 65 20 63  6f 6d 6d 61 6e 64 20 6f  |clipse command o|
00002bf0  6e 6c 79 20 6e 65 65 64  73 20 38 20 62 69 74 73  |nly needs 8 bits|
00002c00  20 6f 6e 6c 79 20 74 68  65 20 6c 6f 77 65 72 20  | only the lower |
00002c10  38 20 62 69 74 73 20 77  69 6c 6c 20 62 65 20 6c  |8 bits will be l|
00002c20  6f 6f 6b 65 64 20 61 74  2e 0d 56 61 72 69 61 62  |ooked at..Variab|
00002c30  6c 65 73 20 61 72 65 20  6f 6e 65 20 6f 66 20 74  |les are one of t|
00002c40  68 65 20 63 65 6e 74 72  61 6c 20 70 6f 69 6e 74  |he central point|
00002c50  73 20 6f 66 20 74 68 65  20 45 63 6c 69 70 73 65  |s of the Eclipse|
00002c60  20 6d 61 63 72 6f 20 73  79 73 74 65 6d 0d 61 6c  | macro system.al|
00002c70  6c 6f 77 69 6e 67 20 6d  61 63 72 6f 73 20 74 6f  |lowing macros to|
00002c80  20 6d 6f 72 65 20 74 68  61 6e 20 6a 75 73 74 20  | more than just |
00002c90  72 65 70 6c 61 63 65 20  61 20 73 65 72 69 65 73  |replace a series|
00002ca0  20 6f 66 20 6b 65 79 62  6f 61 72 64 20 63 6f 6d  | of keyboard com|
00002cb0  6d 61 6e 64 73 2e 0d 53  69 6e 63 65 20 45 63 6c  |mands..Since Ecl|
00002cc0  69 70 73 65 20 6f 6e 6c  79 20 75 73 65 73 20 6d  |ipse only uses m|
00002cd0  65 6d 6f 72 79 20 77 69  74 68 69 6e 20 53 57 52  |emory within SWR|
00002ce0  20 6d 61 63 72 6f 73 20  63 61 6e 20 62 65 20 75  | macros can be u|
00002cf0  73 65 64 20 66 72 6f 6d  20 77 69 74 68 69 6e 0d  |sed from within.|
00002d00  6d 6f 73 74 20 6c 61 6e  67 75 61 67 65 20 52 4f  |most language RO|
00002d10  4d 73 2e 20 54 68 65 20  6f 6e 6c 79 20 6d 65 6d  |Ms. The only mem|
00002d20  6f 72 79 20 6e 6f 74 20  69 6e 20 53 57 52 20 74  |ory not in SWR t|
00002d30  68 61 74 20 74 68 65 79  20 75 73 65 20 61 72 65  |hat they use are|
00002d40  20 61 20 66 65 77 0d 7a  65 72 6f 20 70 61 67 65  | a few.zero page|
00002d50  20 6c 6f 63 61 74 69 6f  6e 73 20 77 68 69 63 68  | locations which|
00002d60  20 61 72 65 20 61 6c 6c  6f 74 74 65 64 20 66 6f  | are allotted fo|
00002d70  72 20 74 72 61 6e 73 69  65 6e 74 20 64 69 73 63  |r transient disc|
00002d80  20 63 6f 6d 6d 61 6e 64  73 2e 0d 20 20 20 20 20  | commands..     |
00002d90  54 6f 20 73 75 70 70 6f  72 74 20 76 61 72 69 61  |To support varia|
00002da0  62 6c 65 73 20 74 68 65  72 65 20 61 72 65 20 61  |bles there are a|
00002db0  20 68 6f 73 74 20 6f 66  20 73 70 65 63 69 61 6c  | host of special|
00002dc0  20 2a 20 63 6f 6d 6d 61  6e 64 73 2c 20 74 68 65  | * commands, the|
00002dd0  79 20 61 72 65 0d 6d 61  69 6e 6c 79 20 62 61 73  |y are.mainly bas|
00002de0  65 64 20 6f 6e 20 42 41  53 49 43 20 63 6f 6d 6d  |ed on BASIC comm|
00002df0  61 6e 64 73 20 73 69 6e  63 65 20 6d 6f 73 74 20  |ands since most |
00002e00  75 73 65 72 73 20 77 69  6c 6c 20 62 65 20 66 61  |users will be fa|
00002e10  6d 69 6c 69 61 72 20 77  69 74 68 0d 74 68 65 73  |miliar with.thes|
00002e20  65 20 62 75 74 20 73 6f  6d 65 20 64 6f 20 68 61  |e but some do ha|
00002e30  76 65 20 61 20 73 69 6d  69 6c 61 72 69 74 79 20  |ve a similarity |
00002e40  74 6f 20 46 6f 72 74 68  2e 0d 20 20 20 20 31 29  |to Forth..    1)|
00002e50  20 2a 4c 45 54 20 78 20  79 2e 20 54 68 69 73 20  | *LET x y. This |
00002e60  75 73 65 73 20 32 20 76  61 6c 75 65 73 2c 20 74  |uses 2 values, t|
00002e70  68 65 20 66 69 72 73 74  20 28 78 29 20 6d 75 73  |he first (x) mus|
00002e80  74 20 62 65 20 61 20 76  61 72 69 61 62 6c 65 2c  |t be a variable,|
00002e90  20 74 68 65 0d 73 65 63  6f 6e 64 20 63 61 6e 20  | the.second can |
00002ea0  62 65 20 61 6e 6f 74 68  65 72 20 76 61 72 69 61  |be another varia|
00002eb0  62 6c 65 20 6f 72 20 61  20 6e 75 6d 62 65 72 2e  |ble or a number.|
00002ec0  20 54 68 65 20 65 71 75  61 6c 73 20 73 69 67 6e  | The equals sign|
00002ed0  20 75 73 65 64 20 61 62  6f 76 65 20 69 73 0d 6f  | used above is.o|
00002ee0  70 74 69 6f 6e 61 6c 2e  20 0d 20 20 20 20 32 29  |ptional. .    2)|
00002ef0  20 2a 41 44 44 20 78 20  79 20 7a 2e 20 54 68 69  | *ADD x y z. Thi|
00002f00  73 20 77 69 6c 6c 20 73  74 6f 72 65 20 69 6e 20  |s will store in |
00002f10  76 61 72 69 61 62 6c 65  20 78 20 74 68 65 20 73  |variable x the s|
00002f20  75 6d 20 6f 66 20 79 20  61 6e 64 20 7a 2e 20 79  |um of y and z. y|
00002f30  20 61 6e 64 0d 7a 20 6d  61 79 20 62 65 20 76 61  | and.z may be va|
00002f40  72 69 61 62 6c 65 73 20  61 6e 64 2f 6f 72 20 6e  |riables and/or n|
00002f50  75 6d 62 65 72 73 20 65  2e 67 2e 20 2a 41 44 44  |umbers e.g. *ADD|
00002f60  20 25 52 20 25 59 20 36  20 6f 72 20 2a 41 44 44  | %R %Y 6 or *ADD|
00002f70  20 25 57 20 39 20 39 0d  20 20 20 20 33 29 20 2a  | %W 9 9.    3) *|
00002f80  53 55 42 20 78 20 79 20  7a 2e 20 54 68 69 73 20  |SUB x y z. This |
00002f90  69 73 20 74 68 65 20 73  61 6d 65 20 61 73 20 41  |is the same as A|
00002fa0  44 44 20 62 75 74 20 77  69 6c 6c 20 73 75 62 74  |DD but will subt|
00002fb0  72 61 63 74 20 7a 20 66  72 6f 6d 20 79 20 61 6e  |ract z from y an|
00002fc0  64 0d 73 74 6f 72 65 20  74 68 65 20 72 65 73 75  |d.store the resu|
00002fd0  6c 74 20 69 6e 20 78 2e  0d 20 20 20 20 34 29 20  |lt in x..    4) |
00002fe0  2a 41 4e 44 20 78 20 79  20 7a 2e 20 54 68 69 73  |*AND x y z. This|
00002ff0  20 77 69 6c 6c 20 70 65  72 66 6f 72 6d 20 61 20  | will perform a |
00003000  42 6f 6f 6c 65 61 6e 20  41 4e 44 20 6f 70 65 72  |Boolean AND oper|
00003010  61 74 69 6f 6e 20 6f 6e  20 79 20 61 6e 64 20 7a  |ation on y and z|
00003020  20 61 74 0d 62 69 74 20  6c 65 76 65 6c 20 61 6e  | at.bit level an|
00003030  64 20 73 74 6f 72 65 20  74 68 65 20 72 65 73 75  |d store the resu|
00003040  6c 74 20 69 6e 20 78 2e  0d 20 20 20 20 35 29 20  |lt in x..    5) |
00003050  2a 4f 52 20 78 20 79 20  7a 2e 20 54 68 69 73 20  |*OR x y z. This |
00003060  69 73 20 74 68 65 20 73  61 6d 65 20 61 73 20 41  |is the same as A|
00003070  4e 44 20 62 75 74 20 77  69 6c 6c 20 70 65 72 66  |ND but will perf|
00003080  6f 72 6d 20 61 20 62 69  74 20 6c 65 76 65 6c 0d  |orm a bit level.|
00003090  42 6f 6f 6c 65 61 6e 20  4f 52 20 6f 70 65 72 61  |Boolean OR opera|
000030a0  74 69 6f 6e 20 6f 6e 20  79 20 61 6e 64 20 7a 20  |tion on y and z |
000030b0  73 74 6f 72 69 6e 67 20  74 68 65 20 72 65 73 75  |storing the resu|
000030c0  6c 74 20 69 6e 20 78 2e  0d 20 20 20 20 36 29 20  |lt in x..    6) |
000030d0  2a 45 4f 52 20 78 20 79  20 7a 2e 20 54 68 65 20  |*EOR x y z. The |
000030e0  73 61 6d 65 20 61 73 20  4f 52 20 62 75 74 20 61  |same as OR but a|
000030f0  20 42 6f 6f 6c 65 61 6e  20 62 69 74 20 6c 65 76  | Boolean bit lev|
00003100  65 6c 20 45 78 63 6c 75  73 69 76 65 20 4f 52 0d  |el Exclusive OR.|
00003110  6f 70 65 72 61 74 69 6f  6e 20 6f 6e 20 79 20 61  |operation on y a|
00003120  6e 64 20 7a 2e 0d 20 20  20 20 37 29 20 2a 4e 4f  |nd z..    7) *NO|
00003130  54 20 78 2e 20 54 68 69  73 20 77 69 6c 6c 20 63  |T x. This will c|
00003140  61 72 72 79 20 6f 75 74  20 61 20 62 69 74 20 6c  |arry out a bit l|
00003150  65 76 65 6c 20 42 6f 6f  6c 65 61 6e 20 4e 4f 54  |evel Boolean NOT|
00003160  20 6f 6e 20 78 0d 65 66  66 65 63 74 69 76 65 6c  | on x.effectivel|
00003170  79 20 6d 61 6b 69 6e 67  20 69 74 20 6e 65 67 61  |y making it nega|
00003180  74 69 76 65 2c 20 69 66  20 70 6f 73 69 74 69 76  |tive, if positiv|
00003190  65 20 61 6e 64 20 76 69  63 65 20 76 65 72 73 61  |e and vice versa|
000031a0  2e 0d 20 20 20 20 38 29  20 2a 54 45 53 54 20 78  |..    8) *TEST x|
000031b0  20 79 20 5b 63 6f 6e 64  69 74 69 6f 6e 5d 20 7a  | y [condition] z|
000031c0  2e 20 54 68 69 73 20 77  69 6c 6c 20 74 65 73 74  |. This will test|
000031d0  20 79 20 61 67 61 69 6e  73 74 20 7a 20 77 69 68  | y against z wih|
000031e0  20 74 68 65 0d 63 6f 6e  64 69 74 69 6f 6e 20 73  | the.condition s|
000031f0  70 65 63 69 66 69 65 64  20 61 6e 64 20 73 74 6f  |pecified and sto|
00003200  72 65 20 61 20 74 72 75  65 20 28 26 46 46 29 20  |re a true (&FF) |
00003210  6f 72 20 66 61 6c 73 65  20 28 30 29 20 72 65 73  |or false (0) res|
00003220  75 6c 74 20 69 6e 20 78  20 65 2e 67 2e 0d 2a 54  |ult in x e.g..*T|
00003230  45 53 54 20 25 54 20 25  59 3e 30 20 6f 72 20 2a  |EST %T %Y>0 or *|
00003240  54 45 53 54 20 25 54 20  25 55 3e 3d 25 49 2e 20  |TEST %T %U>=%I. |
00003250  54 68 65 20 63 6f 6e 64  69 74 69 6f 6e 73 20 74  |The conditions t|
00003260  68 61 74 20 63 61 6e 20  62 65 20 75 73 65 64 20  |hat can be used |
00003270  61 72 65 20 3d 2c 0d 3e  2c 20 3c 2c 20 3c 3e 2c  |are =,.>, <, <>,|
00003280  20 3e 3d 2c 20 6f 72 20  3c 3d 2e 0d 0d 20 20 20  | >=, or <=...   |
00003290  20 20 41 6c 74 68 6f 75  67 68 20 74 68 65 20 76  |  Although the v|
000032a0  61 72 69 61 62 6c 65 73  20 63 61 6e 20 62 65 20  |ariables can be |
000032b0  75 73 65 64 20 66 72 65  65 6c 79 2c 20 34 20 6f  |used freely, 4 o|
000032c0  66 20 74 68 65 6d 20 61  72 65 20 73 70 65 63 69  |f them are speci|
000032d0  61 6c 2e 20 25 41 2c 0d  25 58 2c 20 25 59 20 61  |al. %A,.%X, %Y a|
000032e0  6e 64 20 25 50 20 72 6f  75 67 68 6c 79 20 63 6f  |nd %P roughly co|
000032f0  72 72 65 73 70 6f 6e 64  20 74 6f 20 74 68 65 20  |rrespond to the |
00003300  36 35 30 32 20 41 2c 20  58 2c 20 59 20 61 6e 64  |6502 A, X, Y and|
00003310  20 50 53 52 20 72 65 67  69 73 74 65 72 73 2e 0d  | PSR registers..|
00003320  54 68 69 73 20 6d 65 61  6e 73 20 74 68 61 74 20  |This means that |
00003330  77 68 65 6e 20 74 68 65  20 64 69 72 65 63 74 20  |when the direct |
00003340  6c 69 6e 6b 73 20 74 6f  20 6d 61 63 68 69 6e 65  |links to machine|
00003350  20 63 6f 64 65 20 65 2e  67 2e 20 47 4f 2c 20 4d  | code e.g. GO, M|
00003360  43 2c 20 47 4f 53 55 42  2c 0d 4f 53 57 4f 52 44  |C, GOSUB,.OSWORD|
00003370  2c 20 4f 53 42 59 54 45  20 65 74 63 2e 20 61 72  |, OSBYTE etc. ar|
00003380  65 20 75 73 65 64 20 74  68 65 20 76 61 6c 75 65  |e used the value|
00003390  73 20 69 6e 20 25 41 2c  20 25 59 2c 20 25 58 2c  |s in %A, %Y, %X,|
000033a0  20 61 6e 64 20 25 50 20  61 72 65 20 63 6f 70 69  | and %P are copi|
000033b0  65 64 0d 69 6e 74 6f 20  74 68 65 20 41 2c 20 58  |ed.into the A, X|
000033c0  2c 20 59 20 61 6e 64 20  50 53 52 20 72 65 67 69  |, Y and PSR regi|
000033d0  73 74 65 72 73 20 61 6e  64 20 77 68 65 72 65 20  |sters and where |
000033e0  74 68 65 72 65 20 69 73  20 61 20 72 65 74 75 72  |there is a retur|
000033f0  6e 20 74 68 65 0d 72 65  67 69 73 74 65 72 73 20  |n the.registers |
00003400  61 72 65 20 63 6f 70 69  65 64 20 69 6e 74 6f 20  |are copied into |
00003410  74 68 65 20 76 61 72 69  61 62 6c 65 73 2e 20 54  |the variables. T|
00003420  68 69 73 20 65 6e 61 62  6c 65 73 20 6d 61 63 68  |his enables mach|
00003430  69 6e 65 20 63 6f 64 65  20 63 61 6c 6c 73 2c 0d  |ine code calls,.|
00003440  70 61 72 74 69 63 75 6c  61 72 6c 79 20 4f 53 42  |particularly OSB|
00003450  59 54 45 73 20 74 6f 20  62 65 20 75 73 65 64 20  |YTEs to be used |
00003460  61 6e 64 20 6d 6f 6e 69  74 6f 72 65 64 2e 0d 0d  |and monitored...|
00003470  20 20 20 20 20 20 43 6f  6e 74 72 6f 6c 20 53 74  |      Control St|
00003480  72 75 63 74 75 72 65 73  0d 20 20 20 20 54 68 72  |ructures.    Thr|
00003490  65 65 20 63 6f 6e 74 72  6f 6c 20 73 74 72 75 63  |ee control struc|
000034a0  74 75 72 65 73 20 61 72  65 20 69 6d 70 6c 65 6d  |tures are implem|
000034b0  65 6e 74 65 64 20 69 6e  20 61 20 73 69 6d 69 6c  |ented in a simil|
000034c0  61 72 20 6d 61 6e 6e 65  72 20 74 6f 20 74 68 65  |ar manner to the|
000034d0  69 72 0d 42 41 53 49 43  20 65 71 75 69 76 61 6c  |ir.BASIC equival|
000034e0  65 6e 74 73 2c 20 62 75  74 20 74 68 65 72 65 20  |ents, but there |
000034f0  61 72 65 20 73 6c 69 67  68 74 20 64 69 66 66 65  |are slight diffe|
00003500  72 65 6e 63 65 73 2e 0d  20 20 20 20 20 20 31 29  |rences..      1)|
00003510  20 49 66 0d 20 20 20 20  54 68 65 20 69 66 20 73  | If.    The if s|
00003520  74 72 75 63 74 75 72 65  20 75 73 65 73 20 34 20  |tructure uses 4 |
00003530  63 6f 6d 6d 61 6e 64 73  2c 20 2a 49 46 20 78 20  |commands, *IF x |
00003540  5b 63 6f 6e 64 69 74 69  6f 6e 5d 20 79 2c 20 2a  |[condition] y, *|
00003550  54 48 45 4e 0d 69 6e 73  74 72 75 63 74 69 6f 6e  |THEN.instruction|
00003560  73 2c 20 2a 45 4c 53 45  20 69 6e 73 74 72 75 63  |s, *ELSE instruc|
00003570  74 69 6f 6e 73 20 28 6f  70 74 69 6f 6e 61 6c 20  |tions (optional |
00003580  73 74 61 74 65 6d 65 6e  74 29 2c 20 2a 45 4e 44  |statement), *END|
00003590  49 46 2e 20 41 20 70 6f  73 73 69 62 6c 65 0d 65  |IF. A possible.e|
000035a0  78 61 6d 70 6c 65 20 6f  66 20 74 68 69 73 20 77  |xample of this w|
000035b0  6f 75 6c 64 20 62 65 3a  20 0d 20 20 20 20 20 20  |ould be: .      |
000035c0  2a 4d 45 4d 20 30 31 20  7c 40 45 58 41 4d 50 4c  |*MEM 01 |@EXAMPL|
000035d0  45 0d 20 20 20 20 20 20  20 20 20 49 46 20 25 59  |E.         IF %Y|
000035e0  3d 36 0d 20 20 20 20 20  20 20 20 20 54 48 45 4e  |=6.         THEN|
000035f0  0d 20 20 20 20 20 20 20  20 20 20 53 43 52 45 45  |.          SCREE|
00003600  4e 20 59 20 69 73 20 65  71 75 61 6c 20 74 6f 20  |N Y is equal to |
00003610  73 69 78 0d 20 20 20 20  20 20 20 20 20 7c 40 45  |six.         |@E|
00003620  4c 53 45 0d 20 20 20 20  20 20 20 20 20 20 53 43  |LSE.          SC|
00003630  52 45 45 4e 20 59 20 69  73 20 6e 6f 74 20 73 69  |REEN Y is not si|
00003640  78 0d 20 20 20 20 20 20  20 20 20 7c 40 45 4e 44  |x.         |@END|
00003650  49 46 0d 20 20 20 20 20  20 20 20 20 53 43 52 45  |IF.         SCRE|
00003660  45 4e 20 4f 4b 3f 20 0d  0d 20 20 20 20 5b 4e 6f  |EN OK? ..    [No|
00003670  74 65 20 74 68 61 74 20  74 68 69 73 20 64 65 66  |te that this def|
00003680  69 6e 69 74 69 6f 6e 20  63 6f 75 6c 64 20 6e 6f  |inition could no|
00003690  74 20 62 65 20 65 6e 74  65 72 65 64 20 6c 69 6b  |t be entered lik|
000036a0  65 20 74 68 69 73 2e 20  49 74 20 77 6f 75 6c 64  |e this. It would|
000036b0  0d 6e 65 65 64 20 74 6f  20 62 65 20 65 78 70 72  |.need to be expr|
000036c0  65 73 73 65 64 20 61 73  3a 20 2a 4d 45 4d 20 30  |essed as: *MEM 0|
000036d0  31 20 7c 40 45 58 41 4d  50 4c 45 7c 4d 49 46 20  |1 |@EXAMPLE|MIF |
000036e0  25 59 3d 36 7c 4d 54 48  45 4e 7c 4d 53 43 52 45  |%Y=6|MTHEN|MSCRE|
000036f0  45 4e 20 59 20 69 73 0d  65 71 75 61 6c 20 74 6f  |EN Y is.equal to|
00003700  20 73 69 78 7c 4d 7c 40  45 4c 53 45 7c 4d 53 43  | six|M|@ELSE|MSC|
00003710  52 45 45 4e 7c 4d 59 20  69 73 20 6e 6f 74 20 73  |REEN|MY is not s|
00003720  69 78 7c 4d 7c 40 45 4e  44 49 46 7c 4d 53 43 52  |ix|M|@ENDIF|MSCR|
00003730  45 45 4e 20 4f 4b 3f 7c  4d 5d 0d 20 20 20 20 20  |EEN OK?|M].     |
00003740  20 54 72 61 6e 73 6c 61  74 65 64 20 74 68 69 73  | Translated this|
00003750  20 6d 65 61 6e 73 3a 0d  20 20 20 20 2a 4d 45 4d  | means:.    *MEM|
00003760  20 30 31 20 2d 20 73 74  6f 72 65 20 74 68 65 20  | 01 - store the |
00003770  66 6f 6c 6c 6f 77 69 6e  67 20 69 6d 20 6d 65 6d  |following im mem|
00003780  62 61 6e 6b 20 31 0d 20  20 20 20 7c 40 45 58 41  |bank 1.    |@EXA|
00003790  4d 50 4c 45 20 2d 20 74  68 69 73 20 69 73 20 61  |MPLE - this is a|
000037a0  20 6d 61 63 72 6f 20 28  7c 40 20 67 69 76 65 73  | macro (|@ gives|
000037b0  20 30 29 2c 20 69 74 20  69 73 20 63 61 6c 6c 65  | 0), it is calle|
000037c0  64 20 45 58 41 4d 50 4c  45 20 61 6e 64 0d 65 6e  |d EXAMPLE and.en|
000037d0  64 73 20 77 69 74 68 20  61 20 63 61 72 72 69 61  |ds with a carria|
000037e0  67 65 20 72 65 74 75 72  6e 20 28 7c 4d 29 0d 20  |ge return (|M). |
000037f0  20 20 20 49 46 20 25 59  3d 36 20 2d 20 74 68 69  |   IF %Y=6 - thi|
00003800  73 20 69 73 20 6f 6e 65  20 70 68 72 61 73 65 2e  |s is one phrase.|
00003810  20 49 74 20 69 73 20 74  65 72 6d 69 6e 61 74 65  | It is terminate|
00003820  64 20 62 79 20 74 68 65  20 63 61 72 72 69 61 67  |d by the carriag|
00003830  65 20 72 65 74 75 72 6e  0d 28 7c 4d 29 2e 20 57  |e return.(|M). W|
00003840  68 65 6e 20 45 63 6c 69  70 73 65 20 65 6e 63 6f  |hen Eclipse enco|
00003850  75 6e 74 65 72 73 20 61  6e 20 49 46 20 69 74 20  |unters an IF it |
00003860  65 76 61 6c 75 61 74 65  73 20 74 68 65 20 63 6f  |evaluates the co|
00003870  6e 64 69 74 69 6f 6e 20  61 6e 64 20 73 74 6f 72  |ndition and stor|
00003880  65 73 0d 74 68 65 20 72  65 73 75 6c 74 20 61 73  |es.the result as|
00003890  20 61 20 66 6c 61 67 2c  20 74 68 65 20 6c 61 73  | a flag, the las|
000038a0  74 20 66 6c 61 67 20 73  65 74 20 69 73 20 63 6f  |t flag set is co|
000038b0  6e 73 75 6c 74 65 64 20  62 79 20 54 48 45 4e 20  |nsulted by THEN |
000038c0  61 6e 64 20 45 4c 53 45  20 61 6e 64 0d 6f 6e 6c  |and ELSE and.onl|
000038d0  79 20 72 65 6d 6f 76 65  64 20 77 68 65 6e 20 45  |y removed when E|
000038e0  4e 44 49 46 20 69 73 20  66 6f 75 6e 64 2e 20 28  |NDIF is found. (|
000038f0  46 6f 72 20 74 68 65 20  63 6f 6e 64 69 74 69 6f  |For the conditio|
00003900  6e 20 61 76 61 69 6c 61  62 6c 65 20 73 65 65 20  |n available see |
00003910  20 2a 54 45 53 54 0d 61  62 6f 76 65 2e 29 20 0d  | *TEST.above.) .|
00003920  20 20 20 20 54 48 45 4e  20 2d 20 69 66 20 74 68  |    THEN - if th|
00003930  65 20 6c 61 73 74 20 49  46 20 66 6c 61 67 20 69  |e last IF flag i|
00003940  73 20 66 61 6c 73 65 20  45 63 6c 69 70 73 65 20  |s false Eclipse |
00003950  77 69 6c 6c 20 69 67 6e  6f 72 65 20 61 6c 6c 20  |will ignore all |
00003960  74 68 65 0d 66 6f 6c 6c  6f 77 69 6e 67 20 69 6e  |the.following in|
00003970  73 74 72 75 63 74 69 6f  6e 73 2e 20 49 74 20 77  |structions. It w|
00003980  69 6c 6c 20 6c 6f 6f 6b  20 66 6f 72 20 74 68 65  |ill look for the|
00003990  20 6e 65 78 74 20 7a 65  72 6f 20 69 6e 20 74 68  | next zero in th|
000039a0  65 20 6d 65 6d 62 61 6e  6b 0d 62 65 66 6f 72 65  |e membank.before|
000039b0  20 65 78 65 63 75 74 69  6e 67 20 61 6e 79 20 6d  | executing any m|
000039c0  6f 72 65 20 69 6e 73 74  72 75 63 74 69 6f 6e 73  |ore instructions|
000039d0  2e 20 49 66 20 74 68 65  20 49 46 20 66 6c 61 67  |. If the IF flag|
000039e0  20 69 73 20 74 72 75 65  20 45 63 6c 69 70 73 65  | is true Eclipse|
000039f0  0d 77 69 6c 6c 20 63 6f  6e 74 69 6e 75 65 20 65  |.will continue e|
00003a00  78 65 63 75 74 69 6e 67  20 74 68 65 20 66 6f 6c  |xecuting the fol|
00003a10  6c 6f 77 69 6e 67 20 69  6e 73 74 72 75 63 74 69  |lowing instructi|
00003a20  6f 6e 73 20 61 73 20 62  65 66 6f 72 65 0d 20 20  |ons as before.  |
00003a30  20 20 53 43 52 45 45 4e  20 59 20 69 73 20 65 71  |  SCREEN Y is eq|
00003a40  75 61 6c 20 74 6f 20 73  69 78 20 2d 20 74 68 69  |ual to six - thi|
00003a50  73 20 69 73 20 6a 75 73  74 20 61 20 6d 65 73 73  |s is just a mess|
00003a60  61 67 65 20 66 6f 72 20  73 63 72 65 65 6e 20 64  |age for screen d|
00003a70  69 73 70 6c 61 79 20 28  0d 73 65 65 20 62 65 6c  |isplay (.see bel|
00003a80  6f 77 29 0d 20 20 20 20  7c 40 20 2d 20 74 68 69  |ow).    |@ - thi|
00003a90  73 20 74 65 6c 6c 73 20  45 63 6c 69 70 73 65 20  |s tells Eclipse |
00003aa0  74 68 61 74 20 74 68 65  20 54 48 45 4e 20 69 6e  |that the THEN in|
00003ab0  73 74 72 75 63 74 69 6f  6e 73 20 61 72 65 20 66  |structions are f|
00003ac0  69 6e 69 73 68 65 64 20  73 6f 0d 72 65 76 65 72  |inished so.rever|
00003ad0  74 20 74 6f 20 65 78 65  63 75 74 69 6e 67 20 69  |t to executing i|
00003ae0  6e 73 74 72 75 63 74 69  6f 6e 73 20 72 65 67 61  |nstructions rega|
00003af0  72 64 6c 65 73 73 20 6f  66 20 74 68 65 20 49 46  |rdless of the IF|
00003b00  20 63 6f 6e 64 69 74 69  6f 6e 20 0d 20 20 20 20  | condition .    |
00003b10  45 4c 53 45 20 2d 20 74  68 69 73 20 69 73 20 74  |ELSE - this is t|
00003b20  68 65 20 72 65 76 65 72  73 65 20 6f 66 20 74 68  |he reverse of th|
00003b30  65 20 54 48 45 4e 20 73  74 61 74 65 6d 65 6e 74  |e THEN statement|
00003b40  2e 20 49 66 20 74 68 65  20 6c 61 74 65 73 74 20  |. If the latest |
00003b50  49 46 0d 66 6c 61 67 20  69 73 20 74 72 75 65 20  |IF.flag is true |
00003b60  45 63 6c 69 70 73 65 20  77 69 6c 6c 20 73 6b 69  |Eclipse will ski|
00003b70  70 20 74 68 65 20 66 6f  6c 6c 6f 77 69 6e 67 20  |p the following |
00003b80  69 6e 73 74 72 75 63 74  69 6f 6e 73 20 75 6e 74  |instructions unt|
00003b90  69 6c 20 69 74 0d 65 6e  63 6f 75 6e 74 65 72 73  |il it.encounters|
00003ba0  20 61 20 7a 65 72 6f 2e  20 0d 20 20 20 20 7c 40  | a zero. .    |@|
00003bb0  20 2d 20 74 68 69 73 20  73 69 67 6e 61 6c 73 20  | - this signals |
00003bc0  74 68 65 20 65 6e 64 20  6f 66 20 74 68 65 20 45  |the end of the E|
00003bd0  4c 53 45 20 0d 20 20 20  20 45 4e 44 49 46 20 2d  |LSE .    ENDIF -|
00003be0  20 74 68 69 73 20 77 69  6c 6c 20 72 65 6d 6f 76  | this will remov|
00003bf0  65 20 74 68 65 20 6c 61  74 65 73 74 20 49 46 20  |e the latest IF |
00003c00  66 6c 61 67 2e 20 4e 6f  74 65 20 74 68 61 74 20  |flag. Note that |
00003c10  73 69 6e 63 65 20 45 63  6c 69 70 73 65 0d 77 6f  |since Eclipse.wo|
00003c20  72 6b 73 20 77 69 74 68  20 61 6e 20 49 46 20 66  |rks with an IF f|
00003c30  6c 61 67 20 77 68 69 63  68 20 69 73 20 6f 6e 6c  |lag which is onl|
00003c40  79 20 72 65 6d 6f 76 65  64 20 77 68 65 6e 20 69  |y removed when i|
00003c50  74 20 69 73 20 74 6f 6c  64 20 74 6f 20 74 68 65  |t is told to the|
00003c60  72 65 20 61 72 65 0d 73  65 76 65 72 61 6c 20 75  |re are.several u|
00003c70  73 65 66 75 6c 20 73 69  74 75 61 74 69 6f 6e 73  |seful situations|
00003c80  3a 0d 20 20 20 20 31 29  20 59 6f 75 20 63 61 6e  |:.    1) You can|
00003c90  20 70 6c 61 63 65 20 6e  6f 6e 2d 63 6f 6e 64 69  | place non-condi|
00003ca0  74 69 6f 6e 61 6c 20 73  74 61 74 65 6d 65 6e 74  |tional statement|
00003cb0  73 20 62 65 74 77 65 65  6e 20 74 68 65 20 49 46  |s between the IF|
00003cc0  2c 20 54 48 45 4e 2c 20  45 4c 53 45 0d 61 6e 64  |, THEN, ELSE.and|
00003cd0  20 45 4e 44 49 46 61 74  20 61 6e 79 20 70 6f 69  | ENDIFat any poi|
00003ce0  6e 74 20 61 73 20 6c 6f  6e 67 20 61 73 20 6e 65  |nt as long as ne|
00003cf0  69 74 68 65 72 20 54 48  45 4e 20 6f 72 20 45 4c  |ither THEN or EL|
00003d00  53 45 20 68 61 73 20 62  65 65 6e 20 65 78 65 63  |SE has been exec|
00003d10  75 74 65 64 20 6f 72 0d  61 66 74 65 72 20 74 68  |uted or.after th|
00003d20  65 20 7a 65 72 6f 20 28  7c 40 29 2e 0d 20 20 20  |e zero (|@)..   |
00003d30  20 32 29 20 59 6f 75 20  63 61 6e 20 70 6c 61 63  | 2) You can plac|
00003d40  65 20 74 68 65 20 54 48  45 4e 20 61 6e 64 20 45  |e the THEN and E|
00003d50  4c 53 45 20 69 6e 20 61  6e 79 20 6f 72 64 65 72  |LSE in any order|
00003d60  20 6f 72 20 68 61 76 65  20 6d 6f 72 65 20 74 68  | or have more th|
00003d70  61 6e 20 6f 6e 65 0d 65  2e 67 2e 20 45 4c 53 45  |an one.e.g. ELSE|
00003d80  2c 20 54 48 45 4e 2c 20  45 4c 53 45 2c 20 54 48  |, THEN, ELSE, TH|
00003d90  45 4e 2c 20 45 4c 53 45  20 69 73 20 70 6f 73 73  |EN, ELSE is poss|
00003da0  69 62 6c 65 2e 0d 20 20  20 20 33 29 20 49 66 20  |ible..    3) If |
00003db0  74 68 65 20 6d 65 6d 62  61 6e 6b 20 69 73 20 74  |the membank is t|
00003dc0  65 72 6d 69 6e 61 74 65  64 20 62 65 66 6f 72 65  |erminated before|
00003dd0  20 74 68 65 20 45 4e 44  49 46 20 72 65 6d 6f 76  | the ENDIF remov|
00003de0  65 73 20 74 68 65 20 66  6c 61 67 20 69 74 0d 77  |es the flag it.w|
00003df0  69 6c 6c 20 72 65 6d 61  69 6e 2e 20 54 68 69 73  |ill remain. This|
00003e00  20 77 69 6c 6c 20 6e 6f  72 6d 61 6c 6c 79 20 62  | will normally b|
00003e10  65 20 61 20 64 69 73 61  64 76 61 6e 74 61 67 65  |e a disadvantage|
00003e20  20 73 69 6e 63 65 20 61  66 74 65 72 20 31 36 0d  | since after 16.|
00003e30  75 6e 66 69 6e 69 73 68  65 64 20 49 46 73 20 79  |unfinished IFs y|
00003e40  6f 75 20 77 69 6c 6c 20  67 65 74 20 61 20 22 54  |ou will get a "T|
00003e50  6f 6f 20 6d 61 6e 79 22  20 65 72 72 6f 72 20 73  |oo many" error s|
00003e60  69 6e 63 65 20 45 63 6c  69 70 73 65 20 63 61 6e  |ince Eclipse can|
00003e70  20 6f 6e 6c 79 0d 68 61  6e 64 6c 65 20 31 36 20  | only.handle 16 |
00003e80  69 66 73 20 61 74 20 61  20 74 69 6d 65 20 2d 20  |ifs at a time - |
00003e90  74 68 69 73 20 73 68 6f  75 6c 64 20 62 65 20 6d  |this should be m|
00003ea0  6f 72 65 20 74 68 61 6e  20 61 64 65 71 75 61 74  |ore than adequat|
00003eb0  65 2e 20 54 6f 20 63 6c  65 61 72 20 61 6e 79 0d  |e. To clear any.|
00003ec0  75 6e 77 61 6e 74 65 64  20 66 6c 61 67 73 20 75  |unwanted flags u|
00003ed0  73 65 20 2a 45 4e 44 49  46 20 75 6e 74 69 6c 20  |se *ENDIF until |
00003ee0  61 20 6e 6f 20 73 74 61  72 74 20 65 72 72 6f 72  |a no start error|
00003ef0  20 6f 63 63 75 72 73 2e  0d 0d 20 20 20 20 20 20  | occurs...      |
00003f00  32 29 20 54 68 65 20 46  6f 72 20 6c 6f 6f 70 0d  |2) The For loop.|
00003f10  20 20 20 20 54 68 65 20  66 6f 72 20 6c 6f 6f 70  |    The for loop|
00003f20  20 75 73 65 73 20 74 68  65 20 63 6f 6d 6d 61 6e  | uses the comman|
00003f30  64 73 20 46 4f 52 20 61  6e 64 20 4e 45 58 54 2e  |ds FOR and NEXT.|
00003f40  20 49 74 20 68 61 73 20  61 20 63 6f 6e 74 72 6f  | It has a contro|
00003f50  6c 20 76 61 72 69 61 62  6c 65 0d 61 6e 64 20 61  |l variable.and a|
00003f60  6e 20 75 70 70 65 72 20  61 6e 64 20 6c 6f 77 65  |n upper and lowe|
00003f70  72 20 6c 69 6d 69 74 2e  20 49 74 20 61 6c 73 6f  |r limit. It also|
00003f80  20 68 61 73 20 61 6e 20  6f 70 74 69 6f 6e 61 6c  | has an optional|
00003f90  20 73 74 65 70 20 63 6f  6e 74 72 6f 6c 20 62 75  | step control bu|
00003fa0  74 20 69 66 0d 6e 6f 6e  65 20 69 73 20 73 70 65  |t if.none is spe|
00003fb0  63 69 66 69 65 64 20 69  74 20 77 69 6c 6c 20 75  |cified it will u|
00003fc0  73 65 20 31 2e 20 20 20  20 0d 20 20 20 20 46 4f  |se 1.    .    FO|
00003fd0  52 20 74 61 6b 65 73 20  74 68 65 20 66 6f 72 6d  |R takes the form|
00003fe0  20 46 4f 52 20 78 20 79  20 7a 20 74 2e 20 57 68  | FOR x y z t. Wh|
00003ff0  65 72 65 20 78 20 69 73  20 74 68 65 20 63 6f 6e  |ere x is the con|
00004000  74 72 6f 6c 20 76 61 72  69 61 62 6c 65 2c 20 79  |trol variable, y|
00004010  20 74 68 65 0d 6c 6f 77  65 72 20 6c 69 6d 69 74  | the.lower limit|
00004020  20 61 6e 64 20 7a 20 74  68 65 20 75 70 70 65 72  | and z the upper|
00004030  20 6c 69 6d 69 74 2c 20  74 20 69 73 20 74 68 65  | limit, t is the|
00004040  20 6f 70 74 69 6f 6e 61  6c 20 73 74 65 70 2c 20  | optional step, |
00004050  69 66 20 74 68 65 20 64  65 66 61 75 6c 74 0d 69  |if the default.i|
00004060  73 20 74 6f 20 62 65 20  75 73 65 64 20 61 20 63  |s to be used a c|
00004070  61 72 72 69 61 67 65 20  72 65 74 75 72 6e 20 73  |arriage return s|
00004080  68 6f 75 6c 64 20 62 65  20 70 6c 61 63 65 64 20  |hould be placed |
00004090  61 66 74 65 72 20 74 68  65 20 7a 2e 20 79 20 61  |after the z. y a|
000040a0  6e 64 20 7a 20 6d 61 79  0d 62 65 20 6e 75 6d 62  |nd z may.be numb|
000040b0  65 72 73 20 61 6e 64 2f  6f 72 20 76 61 72 69 61  |ers and/or varia|
000040c0  62 6c 65 73 2e 0d 20 20  20 20 4e 45 58 54 20 73  |bles..    NEXT s|
000040d0  69 6d 70 6c 79 20 69 6e  63 72 65 6d 65 6e 74 73  |imply increments|
000040e0  20 74 68 65 20 63 6f 6e  74 72 6f 6c 20 76 61 72  | the control var|
000040f0  69 61 62 6c 65 20 62 79  20 74 68 65 20 73 74 65  |iable by the ste|
00004100  70 20 61 6e 64 20 63 6f  6e 74 69 6e 75 65 73 0d  |p and continues.|
00004110  65 78 65 63 75 74 69 6f  6e 20 66 72 6f 6d 20 74  |execution from t|
00004120  68 65 20 63 6f 6d 6d 61  6e 64 20 61 66 74 65 72  |he command after|
00004130  20 46 4f 52 2c 20 70 72  6f 76 69 64 65 64 20 74  | FOR, provided t|
00004140  68 65 20 75 70 70 65 72  20 6c 69 6d 69 74 20 68  |he upper limit h|
00004150  61 73 20 6e 6f 74 0d 62  65 65 6e 20 72 65 61 63  |as not.been reac|
00004160  68 65 64 2e 0d 20 20 20  20 20 20 2a 4d 45 4d 20  |hed..      *MEM |
00004170  30 32 20 7c 40 45 58 41  4d 50 4c 45 32 0d 20 20  |02 |@EXAMPLE2.  |
00004180  20 20 20 20 20 20 20 46  4f 52 20 25 54 20 30 20  |       FOR %T 0 |
00004190  31 30 0d 20 20 20 20 20  20 20 20 20 53 43 52 45  |10.         SCRE|
000041a0  45 4e 20 25 54 0d 20 20  20 20 20 20 20 20 20 4e  |EN %T.         N|
000041b0  45 58 54 0d 20 20 20 6f  72 0d 20 20 20 20 20 20  |EXT.   or.      |
000041c0  2a 4d 45 4d 20 30 32 20  7c 40 45 58 41 4d 50 4c  |*MEM 02 |@EXAMPL|
000041d0  45 33 0d 20 20 20 20 20  20 20 20 20 46 4f 52 20  |E3.         FOR |
000041e0  25 54 20 30 20 32 30 20  32 0d 20 20 20 20 20 20  |%T 0 20 2.      |
000041f0  20 20 20 53 43 52 45 45  4e 20 25 54 0d 20 20 20  |   SCREEN %T.   |
00004200  20 20 20 20 20 20 4e 45  58 54 0d 0d 20 20 20 20  |      NEXT..    |
00004210  41 67 61 69 6e 20 46 4f  52 20 4e 45 58 54 20 75  |Again FOR NEXT u|
00004220  73 65 73 20 61 20 73 65  72 69 65 73 20 6f 66 20  |ses a series of |
00004230  66 6c 61 67 73 20 61 6e  64 20 69 66 20 74 68 65  |flags and if the|
00004240  20 6d 61 63 72 6f 20 69  73 20 74 65 72 6d 69 6e  | macro is termin|
00004250  61 74 65 64 0d 70 72 65  6d 61 74 75 72 65 6c 79  |ated.prematurely|
00004260  20 62 79 20 74 68 65 20  65 78 69 74 20 66 72 6f  | by the exit fro|
00004270  6d 20 74 68 65 20 6d 65  6d 62 61 6e 6b 20 74 68  |m the membank th|
00004280  65 20 72 65 73 75 6c 74  20 77 69 6c 6c 20 62 65  |e result will be|
00004290  20 74 6f 20 6c 65 61 76  65 20 74 68 65 73 65 0d  | to leave these.|
000042a0  66 6c 61 67 73 20 73 65  74 2e 20 45 63 6c 69 70  |flags set. Eclip|
000042b0  73 65 20 63 61 6e 20 68  61 6e 64 6c 65 20 38 20  |se can handle 8 |
000042c0  69 6e 64 65 6e 74 65 64  20 46 4f 52 20 6c 6f 6f  |indented FOR loo|
000042d0  70 73 20 61 74 20 6f 6e  65 20 74 69 6d 65 2e 20  |ps at one time. |
000042e0  54 6f 20 63 6c 65 61 72  0d 61 6e 79 20 73 70 61  |To clear.any spa|
000042f0  72 65 20 6c 6f 6f 70 73  20 73 69 6d 70 6c 79 20  |re loops simply |
00004300  75 73 65 20 2a 4e 45 58  54 20 64 69 72 65 63 74  |use *NEXT direct|
00004310  6c 79 2e 20 0d 0d 20 20  20 20 20 20 33 29 20 54  |ly. ..      3) T|
00004320  68 65 20 52 65 70 65 61  74 20 6c 6f 6f 70 0d 20  |he Repeat loop. |
00004330  20 20 20 54 68 69 73 20  69 73 20 69 6d 70 6c 65  |   This is imple|
00004340  6d 65 6e 74 65 64 20 61  73 20 69 6e 20 61 20 73  |mented as in a s|
00004350  69 6d 69 6c 61 72 20 77  61 79 20 74 6f 20 74 68  |imilar way to th|
00004360  65 20 46 4f 52 20 4e 45  58 54 20 61 6e 64 20 49  |e FOR NEXT and I|
00004370  46 0d 73 74 72 75 63 74  75 72 65 73 2e 20 54 68  |F.structures. Th|
00004380  65 20 61 62 6f 76 65 20  46 4f 52 20 4e 45 58 54  |e above FOR NEXT|
00004390  20 6d 61 63 72 6f 73 20  63 61 6e 20 62 65 20 77  | macros can be w|
000043a0  72 69 74 74 65 6e 20 77  69 74 68 20 74 68 69 73  |ritten with this|
000043b0  20 73 74 72 75 63 74 75  72 65 0d 61 73 3a 20 0d  | structure.as: .|
000043c0  20 20 20 20 20 20 2a 4d  45 4d 20 30 32 20 7c 40  |      *MEM 02 |@|
000043d0  45 58 41 4d 50 4c 45 34  0d 20 20 20 20 20 20 20  |EXAMPLE4.       |
000043e0  20 20 4c 45 54 20 25 54  3d 30 0d 20 20 20 20 20  |  LET %T=0.     |
000043f0  20 20 20 20 52 45 50 45  41 54 0d 20 20 20 20 20  |    REPEAT.     |
00004400  20 20 20 20 20 53 43 52  45 45 4e 20 25 54 0d 20  |     SCREEN %T. |
00004410  20 20 20 20 20 20 20 20  20 41 44 44 20 25 54 20  |         ADD %T |
00004420  25 54 20 31 0d 20 20 20  20 20 20 20 20 20 20 55  |%T 1.          U|
00004430  4e 54 49 4c 20 25 54 3e  31 30 0d 20 20 20 6f 72  |NTIL %T>10.   or|
00004440  0d 20 20 20 20 20 20 2a  4d 45 4d 20 30 32 20 7c  |.      *MEM 02 ||
00004450  40 45 58 41 4d 50 4c 45  35 0d 20 20 20 20 20 20  |@EXAMPLE5.      |
00004460  20 20 20 4c 45 54 20 25  54 3d 30 0d 20 20 20 20  |   LET %T=0.    |
00004470  20 20 20 20 20 52 45 50  45 41 54 0d 20 20 20 20  |     REPEAT.    |
00004480  20 20 20 20 20 20 53 43  52 45 45 4e 20 25 54 0d  |      SCREEN %T.|
00004490  20 20 20 20 20 20 20 20  20 20 41 44 44 20 25 54  |          ADD %T|
000044a0  20 25 54 20 32 0d 20 20  20 20 20 20 20 20 20 20  | %T 2.          |
000044b0  55 4e 54 49 4c 20 25 54  3e 32 30 0d 0d 20 20 20  |UNTIL %T>20..   |
000044c0  20 20 41 67 61 69 6e 20  52 45 50 45 41 54 20 55  |  Again REPEAT U|
000044d0  4e 54 49 4c 20 75 73 65  73 20 66 6c 61 67 73 20  |NTIL uses flags |
000044e0  61 6e 64 20 74 68 65 20  70 72 65 6d 61 74 75 72  |and the prematur|
000044f0  65 20 65 78 69 74 20 6f  66 20 61 20 6d 61 63 72  |e exit of a macr|
00004500  6f 20 77 69 6c 6c 0d 6c  65 61 76 65 20 74 68 65  |o will.leave the|
00004510  73 65 20 66 6c 61 67 73  20 73 65 74 2c 20 74 6f  |se flags set, to|
00004520  20 63 75 72 65 20 74 68  69 73 20 75 73 65 20 2a  | cure this use *|
00004530  55 4e 54 49 4c 20 31 3d  31 2e 0d 0d 0d 0d 20 20  |UNTIL 1=1.....  |
00004540  20 20 20 20 20 20 20 20  20 20 4d 65 6d 6f 72 79  |          Memory|
00004550  20 6d 61 6e 69 70 75 6c  61 74 69 6f 6e 0d 20 20  | manipulation.  |
00004560  20 20 41 70 61 72 74 20  66 72 6f 6d 20 74 68 65  |  Apart from the|
00004570  20 63 6f 6d 6d 61 6e 64  73 20 61 6c 72 65 61 64  | commands alread|
00004580  79 20 63 6f 76 65 72 65  64 20 69 6e 20 74 68 65  |y covered in the|
00004590  20 67 65 6e 65 72 61 6c  20 73 65 63 74 69 6f 6e  | general section|
000045a0  20 66 6f 72 0d 63 68 61  6e 67 69 6e 67 20 70 61  | for.changing pa|
000045b0  67 65 73 20 6f 66 20 6d  65 6d 6f 72 79 20 74 68  |ges of memory th|
000045c0  65 72 65 20 61 72 65 20  74 77 6f 20 6d 6f 72 65  |ere are two more|
000045d0  20 63 6f 6d 6d 61 6e 64  73 2e 20 54 68 65 73 65  | commands. These|
000045e0  20 61 72 65 20 2a 42 59  54 45 20 61 6e 64 0d 2a  | are *BYTE and.*|
000045f0  57 4f 52 44 2e 20 2a 42  59 54 45 20 78 20 79 20  |WORD. *BYTE x y |
00004600  77 69 6c 6c 20 73 74 6f  72 65 20 74 68 65 20 6c  |will store the l|
00004610  6f 77 65 72 20 38 20 62  69 74 73 20 6f 66 20 79  |ower 8 bits of y|
00004620  20 69 6e 20 6d 65 6d 6f  72 79 20 6c 6f 63 61 74  | in memory locat|
00004630  69 6f 6e 20 78 2e 0d 2a  57 4f 52 44 20 78 20 79  |ion x..*WORD x y|
00004640  20 77 69 6c 6c 20 73 74  6f 72 65 20 74 68 65 20  | will store the |
00004650  31 36 20 62 69 74 73 20  6f 66 20 79 20 69 6e 20  |16 bits of y in |
00004660  78 20 61 6e 64 20 78 2b  31 20 63 6f 72 72 65 73  |x and x+1 corres|
00004670  70 6f 6e 64 69 6e 67 20  74 6f 20 74 68 65 0d 75  |ponding to the.u|
00004680  70 70 65 72 20 61 6e 64  20 6c 6f 77 65 72 20 62  |pper and lower b|
00004690  79 74 65 73 2e 0d 0d 20  20 20 20 20 20 20 20 20  |ytes...         |
000046a0  4f 70 65 72 61 74 69 6e  67 20 53 79 73 74 65 6d  |Operating System|
000046b0  20 72 6f 75 74 69 6e 65  73 20 61 6e 64 20 6d 61  | routines and ma|
000046c0  63 68 69 6e 65 20 63 6f  64 65 0d 20 20 20 20 20  |chine code.     |
000046d0  45 63 6c 69 70 73 65 20  61 6c 6c 6f 77 73 20 75  |Eclipse allows u|
000046e0  73 65 72 73 20 74 6f 20  69 6e 63 6f 72 70 6f 72  |sers to incorpor|
000046f0  61 74 65 20 6d 61 63 68  69 6e 65 20 63 6f 64 65  |ate machine code|
00004700  2c 20 77 68 65 72 65 20  6e 65 63 65 73 73 61 72  |, where necessar|
00004710  79 2c 0d 74 68 69 73 20  6d 61 79 20 62 65 20 65  |y,.this may be e|
00004720  69 74 68 65 72 20 63 61  6c 6c 73 20 74 6f 20 73  |ither calls to s|
00004730  70 65 63 69 61 6c 69 73  74 20 4f 70 65 72 61 74  |pecialist Operat|
00004740  69 6e 67 20 53 79 73 74  65 6d 20 63 61 6c 6c 73  |ing System calls|
00004750  20 6f 72 20 74 68 65 20  75 73 65 72 73 0d 6f 77  | or the users.ow|
00004760  6e 20 6d 61 63 68 69 6e  65 20 63 6f 64 65 2e 20  |n machine code. |
00004770  54 6f 20 61 6c 6c 6f 77  20 66 6f 72 20 74 68 69  |To allow for thi|
00004780  73 20 45 63 6c 69 70 73  65 20 70 72 6f 76 69 64  |s Eclipse provid|
00004790  65 73 20 6e 69 6e 65 20  63 6f 6d 6d 61 6e 64 73  |es nine commands|
000047a0  2e 20 54 68 65 73 65 0d  75 73 65 64 20 74 6f 67  |. These.used tog|
000047b0  65 74 68 65 72 20 77 69  74 68 20 74 68 65 20 25  |ether with the %|
000047c0  41 2c 20 25 58 2c 20 25  59 20 61 6e 64 20 25 50  |A, %X, %Y and %P|
000047d0  20 72 65 6c 61 74 69 6f  6e 73 68 69 70 73 20 28  | relationships (|
000047e0  61 62 6f 76 65 29 20 61  6c 6c 6f 77 73 20 6d 6f  |above) allows mo|
000047f0  73 74 0d 6d 61 63 68 69  6e 65 20 63 6f 64 65 20  |st.machine code |
00004800  66 75 6e 63 74 69 6f 6e  73 20 74 6f 20 62 65 20  |functions to be |
00004810  65 61 73 69 6c 79 20 61  63 63 65 73 73 65 64 2e  |easily accessed.|
00004820  0d 20 20 20 20 46 69 72  73 74 20 74 68 65 20 4f  |.    First the O|
00004830  53 20 63 6f 6d 6d 61 6e  64 73 2e 20 42 65 66 6f  |S commands. Befo|
00004840  72 65 20 75 73 69 6e 67  20 74 68 65 73 65 20 25  |re using these %|
00004850  41 2c 20 25 58 20 61 6e  64 20 25 59 20 77 69 6c  |A, %X and %Y wil|
00004860  6c 20 68 61 76 65 20 74  6f 0d 62 65 20 73 65 74  |l have to.be set|
00004870  20 61 6e 64 20 69 6e 20  73 6f 6d 65 20 63 61 73  | and in some cas|
00004880  65 73 20 61 20 63 6f 6e  74 72 6f 6c 20 62 6c 6f  |es a control blo|
00004890  63 6b 20 65 73 74 61 62  6c 69 73 68 65 64 20 69  |ck established i|
000048a0  6e 20 6d 65 6d 6f 72 79  2e 20 50 25 20 68 61 73  |n memory. P% has|
000048b0  0d 6c 69 74 74 6c 65 20  65 66 66 65 63 74 20 73  |.little effect s|
000048c0  6f 20 74 68 69 73 20 69  73 20 6f 6e 6c 79 20 73  |o this is only s|
000048d0  65 74 20 6f 6e 20 72 65  74 75 72 6e 2c 20 74 68  |et on return, th|
000048e0  65 20 50 53 52 20 69 73  20 6e 6f 74 20 63 68 61  |e PSR is not cha|
000048f0  6e 67 65 64 20 6f 6e 0d  65 6e 74 72 79 2e 20 41  |nged on.entry. A|
00004900  6e 79 20 62 6c 6f 63 6b  20 6f 66 20 6d 65 6d 6f  |ny block of memo|
00004910  72 79 20 75 73 65 64 20  77 69 6c 6c 20 6e 6f 72  |ry used will nor|
00004920  6d 61 6c 6c 79 20 62 65  20 69 6e 20 6d 61 69 6e  |mally be in main|
00004930  20 52 41 4d 20 62 75 74  20 63 6f 75 6c 64 20 62  | RAM but could b|
00004940  65 0d 69 6e 20 6f 6e 65  20 6f 66 20 45 63 6c 69  |e.in one of Ecli|
00004950  70 73 65 73 20 6d 65 6d  62 61 6e 6b 73 20 61 6c  |pses membanks al|
00004960  74 68 6f 75 67 68 20 74  68 69 73 20 6d 61 79 20  |though this may |
00004970  63 61 75 73 65 20 70 72  6f 62 6c 65 6d 73 20 69  |cause problems i|
00004980  66 20 6f 74 68 65 72 20  52 4f 4d 73 0d 6f 72 20  |f other ROMs.or |
00004990  74 68 65 20 4f 53 20 69  73 20 61 63 63 65 73 73  |the OS is access|
000049a0  65 64 2e 20 54 68 65 20  6d 65 6d 6f 72 79 20 6d  |ed. The memory m|
000049b0  61 79 20 62 65 20 73 65  74 20 75 70 20 66 72 6f  |ay be set up fro|
000049c0  6d 20 6f 75 74 73 69 64  65 20 45 63 6c 69 70 73  |m outside Eclips|
000049d0  65 20 6f 72 0d 77 69 74  68 20 74 68 65 20 75 73  |e or.with the us|
000049e0  65 20 6f 66 20 45 63 6c  69 70 73 65 27 73 20 53  |e of Eclipse's S|
000049f0  54 4f 52 45 2c 20 52 45  53 54 4f 52 45 2c 20 42  |TORE, RESTORE, B|
00004a00  59 54 45 2c 20 61 6e 64  20 57 4f 52 44 20 63 6f  |YTE, and WORD co|
00004a10  6d 6d 61 6e 64 73 2e 0d  20 20 20 20 20 4f 6e 63  |mmands..     Onc|
00004a20  65 20 74 68 65 20 63 6f  6e 64 69 74 69 6f 6e 73  |e the conditions|
00004a30  20 68 61 76 65 20 62 65  65 6e 20 73 65 74 20 28  | have been set (|
00004a40  72 65 66 65 72 20 74 6f  20 74 68 65 20 42 42 43  |refer to the BBC|
00004a50  20 55 73 65 72 20 47 75  69 64 65 20 6f 72 20 61  | User Guide or a|
00004a60  6e 79 0d 6f 74 68 65 72  20 62 6f 6f 6b 20 64 6f  |ny.other book do|
00004a70  63 75 6d 65 6e 74 69 6e  67 20 4f 53 20 63 61 6c  |cumenting OS cal|
00004a80  6c 73 20 65 2e 67 2e 20  42 42 43 20 41 64 76 61  |ls e.g. BBC Adva|
00004a90  6e 63 65 64 20 55 73 65  72 20 47 75 69 64 65 29  |nced User Guide)|
00004aa0  2e 20 53 69 6d 70 6c 79  20 75 73 65 0d 6f 6e 65  |. Simply use.one|
00004ab0  20 6f 66 20 74 68 65 20  66 6f 6c 6c 6f 77 69 6e  | of the followin|
00004ac0  67 20 63 6f 6d 6d 61 6e  64 73 3a 20 4f 53 42 59  |g commands: OSBY|
00004ad0  54 45 2c 20 4f 53 43 4c  49 2c 20 4f 53 57 52 43  |TE, OSCLI, OSWRC|
00004ae0  48 2c 20 4f 53 41 53 43  49 2c 20 4f 52 57 52 43  |H, OSASCI, ORWRC|
00004af0  48 20 6f 72 0d 4f 53 57  4f 52 44 2e 20 54 68 69  |H or.OSWORD. Thi|
00004b00  73 20 69 73 20 62 79 20  6e 6f 20 6d 65 61 6e 73  |s is by no means|
00004b10  20 61 20 63 6f 6d 70 72  65 68 65 6e 73 69 76 65  | a comprehensive|
00004b20  20 6c 69 73 74 20 6f 66  20 61 6c 6c 20 4f 53 20  | list of all OS |
00004b30  63 61 6c 6c 73 2c 20 74  68 65 73 65 0d 61 72 65  |calls, these.are|
00004b40  20 6a 75 73 74 20 74 68  65 20 6d 6f 73 74 20 66  | just the most f|
00004b50  72 65 71 75 65 6e 74 6c  79 20 75 73 65 64 20 63  |requently used c|
00004b60  6f 6d 6d 61 6e 64 73 3b  20 73 6f 20 45 63 6c 69  |ommands; so Ecli|
00004b70  70 73 65 20 73 75 70 70  6f 72 74 73 20 74 68 65  |pse supports the|
00004b80  6d 2c 0d 74 68 65 72 65  20 77 6f 75 6c 64 20 62  |m,.there would b|
00004b90  65 20 6c 69 74 74 6c 65  20 70 6f 69 6e 74 20 69  |e little point i|
00004ba0  6e 20 69 6e 63 6c 75 64  69 6e 67 20 6d 61 6e 79  |n including many|
00004bb0  20 72 61 72 65 6c 79 20  75 73 65 64 20 63 6f 6d  | rarely used com|
00004bc0  6d 61 6e 64 73 20 77 68  69 63 68 0d 6d 61 79 20  |mands which.may |
00004bd0  6e 6f 74 20 62 65 20 75  73 65 64 20 76 65 72 79  |not be used very|
00004be0  20 6f 66 74 65 6e 2e 20  41 6e 79 20 63 6f 6d 6d  | often. Any comm|
00004bf0  61 6e 64 20 6e 6f 74 20  6c 69 73 74 65 64 20 63  |and not listed c|
00004c00  61 6e 20 73 74 69 6c 6c  20 62 65 0d 73 79 6e 74  |an still be.synt|
00004c10  68 65 73 69 7a 65 64 20  75 73 69 6e 67 20 74 68  |hesized using th|
00004c20  65 20 47 4f 53 55 42 20  63 6f 6d 6d 61 6e 64 2e  |e GOSUB command.|
00004c30  20 54 68 65 20 66 69 6c  69 6e 67 20 73 79 73 74  | The filing syst|
00004c40  65 6d 20 63 6f 6d 6d 61  6e 64 73 20 68 61 76 65  |em commands have|
00004c50  20 74 6f 20 62 65 0d 6c  65 66 74 20 6f 75 74 20  | to be.left out |
00004c60  62 65 63 61 75 73 65 20  61 6c 74 68 6f 75 67 68  |because although|
00004c70  20 74 68 65 79 20 61 72  65 20 76 65 72 79 20 75  | they are very u|
00004c80  73 65 66 75 6c 20 74 68  65 79 20 61 72 65 20 70  |seful they are p|
00004c90  72 6f 62 61 62 6c 79 20  62 65 74 74 65 72 0d 6c  |robably better.l|
00004ca0  65 66 74 20 74 6f 20 61  20 66 75 6c 6c 20 62 6c  |eft to a full bl|
00004cb0  6f 77 6e 20 6c 61 6e 67  75 61 67 65 20 2d 20 61  |own language - a|
00004cc0  6c 74 68 6f 75 67 68 20  47 4f 53 55 42 20 63 61  |lthough GOSUB ca|
00004cd0  6e 20 62 65 20 75 73 65  64 2e 0d 20 20 20 20 54  |n be used..    T|
00004ce0  68 65 20 47 4f 53 55 42  20 78 20 63 6f 6d 6d 61  |he GOSUB x comma|
00004cf0  6e 64 20 77 69 6c 6c 20  6a 75 6d 70 20 74 6f 20  |nd will jump to |
00004d00  6c 6f 63 61 74 69 6f 6e  20 78 20 61 6e 64 20 65  |location x and e|
00004d10  78 65 63 75 74 65 20 74  68 65 20 6d 61 63 68 69  |xecute the machi|
00004d20  6e 65 0d 63 6f 64 65 20  74 68 65 72 65 2e 20 25  |ne.code there. %|
00004d30  41 2c 20 25 58 20 61 6e  64 20 25 59 20 61 72 65  |A, %X and %Y are|
00004d40  20 63 6f 70 69 65 64 20  74 6f 20 74 68 65 20 72  | copied to the r|
00004d50  65 67 69 73 74 65 72 73  20 62 65 66 6f 72 65 20  |egisters before |
00004d60  6c 65 61 76 69 6e 67 2e  0d 53 69 6e 63 65 20 45  |leaving..Since E|
00004d70  63 6c 69 70 73 65 20 65  78 70 65 63 74 73 20 61  |clipse expects a|
00004d80  20 72 65 74 75 72 6e 20  74 68 65 20 72 65 67 69  | return the regi|
00004d90  73 74 65 72 73 20 77 69  6c 6c 20 62 65 20 63 6f  |sters will be co|
00004da0  70 69 65 64 20 62 61 63  6b 20 74 6f 20 25 41 2c  |pied back to %A,|
00004db0  0d 25 58 2c 20 25 59 20  61 6e 64 20 25 50 20 6f  |.%X, %Y and %P o|
00004dc0  6e 20 72 65 74 75 72 6e  2e 20 20 0d 20 20 20 20  |n return.  .    |
00004dd0  54 68 65 20 47 4f 20 78  20 63 6f 6d 6d 61 6e 64  |The GO x command|
00004de0  20 69 73 20 74 68 65 20  73 61 6d 65 20 61 73 20  | is the same as |
00004df0  74 68 65 20 47 4f 53 55  42 20 63 6f 6d 6d 61 6e  |the GOSUB comman|
00004e00  64 20 62 75 74 20 45 63  6c 69 70 73 65 20 64 6f  |d but Eclipse do|
00004e10  65 73 20 4e 4f 54 0d 65  78 70 65 63 74 20 61 20  |es NOT.expect a |
00004e20  72 65 74 75 72 6e 2e 20  54 68 69 73 20 6d 65 61  |return. This mea|
00004e30  6e 73 20 74 68 61 74 20  77 68 65 6e 20 74 68 65  |ns that when the|
00004e40  20 72 6f 75 74 69 6e 65  20 69 73 20 6c 65 66 74  | routine is left|
00004e50  20 63 6f 6e 74 72 6f 6c  20 77 69 6c 6c 20 62 65  | control will be|
00004e60  0d 72 65 74 75 72 6e 20  74 6f 20 74 68 65 20 4f  |.return to the O|
00004e70  50 45 52 41 54 49 4e 47  20 53 59 53 54 45 4d 2e  |PERATING SYSTEM.|
00004e80  20 54 68 65 20 4f 53 20  69 73 20 69 67 6e 6f 72  | The OS is ignor|
00004e90  61 6e 74 20 6f 66 20 61  6e 79 20 61 63 74 69 6f  |ant of any actio|
00004ea0  6e 20 74 68 61 74 20 6d  61 79 0d 68 61 76 65 20  |n that may.have |
00004eb0  62 65 65 6e 20 74 61 6b  65 6e 20 62 79 20 45 63  |been taken by Ec|
00004ec0  6c 69 70 73 65 20 73 69  6e 63 65 20 69 74 20 70  |lipse since it p|
00004ed0  61 73 73 65 64 20 74 68  65 20 2a 20 63 6f 6d 6d  |assed the * comm|
00004ee0  61 6e 64 20 74 6f 20 45  63 6c 69 70 73 65 20 69  |and to Eclipse i|
00004ef0  74 20 69 73 0d 69 6d 70  6f 72 74 61 6e 74 20 74  |t is.important t|
00004f00  68 65 72 65 66 6f 72 65  2c 20 74 68 61 74 20 74  |herefore, that t|
00004f10  68 65 20 6d 61 63 68 69  6e 65 20 63 6f 64 65 20  |he machine code |
00004f20  72 75 6e 20 65 78 69 74  73 20 77 69 74 68 20 41  |run exits with A|
00004f30  3d 30 2c 20 69 66 20 69  74 20 64 6f 65 73 0d 6e  |=0, if it does.n|
00004f40  6f 74 20 74 68 65 6e 20  74 68 65 20 4f 53 20 77  |ot then the OS w|
00004f50  69 6c 6c 20 63 6f 6e 74  69 6e 75 65 20 74 6f 20  |ill continue to |
00004f60  70 72 6f 63 65 73 73 20  74 68 65 20 63 6f 6d 6d  |process the comm|
00004f70  61 6e 64 20 69 66 20 41  3d 34 2c 20 69 66 20 41  |and if A=4, if A|
00004f80  20 69 73 20 73 65 74 0d  74 6f 20 61 6e 6f 74 68  | is set.to anoth|
00004f90  65 72 20 76 61 6c 75 65  20 72 65 73 75 6c 74 73  |er value results|
00004fa0  20 77 69 6c 6c 20 62 65  20 73 6c 69 67 68 74 6c  | will be slightl|
00004fb0  79 20 75 6e 70 72 65 64  69 63 74 61 62 6c 65 2e  |y unpredictable.|
00004fc0  0d 20 20 20 20 54 68 65  20 4d 43 20 63 6f 6d 6d  |.    The MC comm|
00004fd0  61 6e 64 20 69 73 20 64  69 66 66 65 72 65 6e 74  |and is different|
00004fe0  20 66 72 6f 6d 20 61 6c  6c 20 6f 74 68 65 72 20  | from all other |
00004ff0  45 63 6c 69 70 73 65 20  63 6f 6d 6d 61 6e 64 73  |Eclipse commands|
00005000  20 73 69 6e 63 65 20 69  74 0d 69 73 20 69 6e 74  | since it.is int|
00005010  65 6e 64 65 64 20 74 6f  20 62 72 69 6e 67 20 74  |ended to bring t|
00005020  6f 67 65 74 68 65 72 20  64 69 72 65 63 74 6c 79  |ogether directly|
00005030  2c 20 6d 61 63 68 69 6e  65 20 63 6f 64 65 20 69  |, machine code i|
00005040  6e 74 65 6e 64 65 64 20  66 6f 72 20 45 63 6c 69  |ntended for Ecli|
00005050  70 73 65 0d 69 6e 74 6f  20 45 63 6c 69 70 73 65  |pse.into Eclipse|
00005060  2e 20 4d 43 20 73 68 6f  75 6c 64 20 4f 4e 4c 59  |. MC should ONLY|
00005070  20 62 65 20 75 73 65 64  20 77 69 74 68 69 6e 20  | be used within |
00005080  61 20 6d 61 63 72 6f 2e  20 49 74 73 20 65 66 66  |a macro. Its eff|
00005090  65 63 74 20 69 73 20 74  6f 20 74 61 6b 65 0d 74  |ect is to take.t|
000050a0  68 65 20 63 75 72 72 65  6e 74 20 6d 65 6d 6f 72  |he current memor|
000050b0  79 20 70 6f 69 6e 74 65  72 73 20 66 72 6f 6d 20  |y pointers from |
000050c0  45 63 6c 69 70 73 65 2c  20 73 65 74 20 25 41 2c  |Eclipse, set %A,|
000050d0  20 25 58 20 61 6e 64 20  25 59 20 61 6e 64 20 68  | %X and %Y and h|
000050e0  61 6e 64 0d 63 6f 6e 74  72 6f 6c 20 6f 76 65 72  |and.control over|
000050f0  20 74 6f 20 6d 61 63 68  69 6e 65 20 63 6f 64 65  | to machine code|
00005100  20 74 68 61 74 20 66 6f  6c 6c 6f 77 73 20 74 68  | that follows th|
00005110  65 20 4d 43 20 63 6f 6d  6d 61 6e 64 20 65 2e 67  |e MC command e.g|
00005120  2e 20 74 68 65 20 69 6e  73 69 64 65 0d 6f 66 20  |. the inside.of |
00005130  74 68 65 20 6d 65 6d 62  61 6e 6b 20 77 6f 75 6c  |the membank woul|
00005140  64 20 62 65 20 73 6f 6d  65 74 68 69 6e 67 20 61  |d be something a|
00005150  6c 6f 6e 67 20 74 68 65  20 6c 69 6e 65 73 20 6f  |long the lines o|
00005160  66 20 30 2c 45 2c 47 2c  31 33 2c 4d 2c 43 2c 31  |f 0,E,G,13,M,C,1|
00005170  33 20 5b 70 75 72 65 0d  6d 61 63 68 69 6e 65 20  |3 [pure.machine |
00005180  63 6f 64 65 5d 2e 20 54  68 65 20 6d 61 63 68 69  |code]. The machi|
00005190  6e 65 20 63 6f 64 65 20  77 69 6c 6c 2c 20 6f 66  |ne code will, of|
000051a0  20 63 6f 75 72 73 65 2c  20 68 61 76 65 20 74 6f  | course, have to|
000051b0  20 62 65 20 63 61 6c 69  62 72 61 74 65 64 20 74  | be calibrated t|
000051c0  6f 0d 72 75 6e 20 69 6e  20 74 68 65 20 6d 65 6d  |o.run in the mem|
000051d0  62 61 6e 6b 20 75 6e 6c  65 73 73 20 69 74 20 6f  |bank unless it o|
000051e0  6e 6c 79 20 75 73 65 73  20 72 65 6c 61 74 69 76  |nly uses relativ|
000051f0  65 20 61 64 64 72 65 73  73 69 6e 67 2e 20 45 63  |e addressing. Ec|
00005200  6c 69 70 73 65 20 64 6f  65 73 0d 6e 6f 74 20 65  |lipse does.not e|
00005210  78 70 65 63 74 20 61 20  72 65 74 75 72 6e 20 66  |xpect a return f|
00005220  72 6f 6d 20 74 68 69 73  20 63 6f 6d 6d 61 6e 64  |rom this command|
00005230  20 73 6f 20 74 68 65 20  73 61 6d 65 20 65 78 69  | so the same exi|
00005240  74 20 63 6f 6e 64 69 74  69 6f 6e 73 20 65 78 69  |t conditions exi|
00005250  73 74 20 61 73 0d 77 69  74 68 20 47 4f 2e 20 0d  |st as.with GO. .|
00005260  0d 20 20 20 20 20 20 20  20 20 49 6e 70 75 74 20  |.         Input |
00005270  61 6e 64 20 4f 75 74 70  75 74 20 77 69 74 68 69  |and Output withi|
00005280  6e 20 4d 61 63 72 6f 73  0d 20 20 20 20 57 68 65  |n Macros.    Whe|
00005290  6e 20 61 20 6e 6f 72 6d  61 6c 20 2a 20 63 6f 6d  |n a normal * com|
000052a0  6d 61 6e 64 20 69 73 20  65 6e 74 65 72 65 64 20  |mand is entered |
000052b0  69 74 20 6d 61 79 20 62  65 20 66 6f 6c 6c 6f 77  |it may be follow|
000052c0  65 64 20 62 79 20 70 61  72 61 6d 65 6e 74 65 72  |ed by paramenter|
000052d0  73 2c 0d 45 63 6c 69 70  73 65 20 6d 61 63 72 6f  |s,.Eclipse macro|
000052e0  73 20 6d 61 79 20 61 6c  73 6f 20 62 65 20 66 6f  |s may also be fo|
000052f0  6c 6c 6f 77 65 64 20 62  79 20 70 61 72 61 6d 65  |llowed by parame|
00005300  6e 74 65 72 73 2e 20 54  68 69 73 20 69 73 20 20  |nters. This is  |
00005310  61 63 63 6f 6d 70 6c 69  73 68 65 64 0d 74 68 72  |accomplished.thr|
00005320  6f 75 67 68 20 74 68 65  20 47 45 54 20 61 6e 64  |ough the GET and|
00005330  20 53 54 52 49 4e 47 20  63 6f 6d 6d 61 6e 64 73  | STRING commands|
00005340  2e 0d 20 20 20 20 47 45  54 20 78 20 2d 20 74 68  |..    GET x - th|
00005350  69 73 20 74 61 6b 65 73  20 61 20 6e 75 6d 62 65  |is takes a numbe|
00005360  72 20 66 6f 6c 6c 6f 77  69 6e 67 20 74 68 65 20  |r following the |
00005370  4d 61 63 72 6f 20 61 6e  64 20 73 74 6f 72 65 73  |Macro and stores|
00005380  20 69 74 20 69 6e 0d 76  61 72 69 61 62 6c 65 20  | it in.variable |
00005390  78 2e 20 65 2e 67 20 47  45 54 20 25 54 20 77 69  |x. e.g GET %T wi|
000053a0  74 68 69 6e 20 74 68 65  20 6d 61 63 72 6f 20 45  |thin the macro E|
000053b0  58 41 4d 50 4c 45 20 77  6f 75 6c 64 20 74 61 6b  |XAMPLE would tak|
000053c0  65 20 74 68 65 20 32 30  20 66 72 6f 6d 20 74 68  |e the 20 from th|
000053d0  65 0d 63 6f 6d 6d 61 6e  64 20 2a 45 58 41 4d 50  |e.command *EXAMP|
000053e0  4c 45 20 32 30 20 61 6e  64 20 73 74 6f 72 65 20  |LE 20 and store |
000053f0  69 74 20 69 6e 20 25 54  2e 0d 20 20 20 20 53 54  |it in %T..    ST|
00005400  52 49 4e 47 20 78 20 2d  20 68 65 72 65 20 74 68  |RING x - here th|
00005410  65 20 73 74 72 69 6e 67  20 6f 66 20 63 68 61 72  |e string of char|
00005420  61 63 74 65 72 73 20 66  6f 6c 6c 6f 77 69 6e 67  |acters following|
00005430  20 74 68 65 20 63 6f 6d  6d 61 6e 64 20 61 72 65  | the command are|
00005440  0d 74 61 6b 65 6e 20 61  6e 64 20 73 74 72 6f 72  |.taken and stror|
00005450  65 64 20 61 74 20 6c 6f  63 61 74 69 6f 6e 20 78  |ed at location x|
00005460  2e 20 65 2e 67 2e 20 53  54 52 49 4e 47 20 43 30  |. e.g. STRING C0|
00005470  30 20 69 6e 20 6d 61 63  72 6f 20 22 45 58 41 4d  |0 in macro "EXAM|
00005480  50 4c 45 20 74 68 69 73  20 69 73 0d 74 65 78 74  |PLE this is.text|
00005490  22 20 2d 20 77 6f 75 6c  64 20 73 74 6f 72 65 20  |" - would store |
000054a0  22 74 68 69 73 20 69 73  20 74 65 78 74 22 20 61  |"this is text" a|
000054b0  74 20 6c 6f 63 61 74 69  6f 6e 20 26 43 30 30 20  |t location &C00 |
000054c0  6f 6e 2e 20 0d 0d 20 20  20 20 49 74 20 69 73 20  |on. ..    It is |
000054d0  61 64 76 69 73 65 64 20  74 68 61 74 20 69 66 20  |advised that if |
000054e0  53 54 52 49 4e 47 20 61  6e 64 20 47 45 54 20 61  |STRING and GET a|
000054f0  72 65 20 74 6f 20 62 65  20 75 73 65 64 20 74 68  |re to be used th|
00005500  65 79 20 61 72 65 20 75  73 65 64 0d 65 61 72 6c  |ey are used.earl|
00005510  79 20 6f 6e 20 69 6e 20  74 68 65 20 6d 61 63 72  |y on in the macr|
00005520  6f 20 65 2e 67 2e 20 66  69 72 73 74 20 6f 72 20  |o e.g. first or |
00005530  73 65 63 6f 6e 64 20 63  6f 6d 6d 61 6e 64 20 65  |second command e|
00005540  78 65 63 75 74 65 64 2e  20 47 45 54 20 63 61 6e  |xecuted. GET can|
00005550  20 62 65 0d 72 65 75 73  65 64 20 65 2e 67 2e 20  | be.reused e.g. |
00005560  47 45 54 20 25 54 20 47  45 54 20 25 55 20 62 75  |GET %T GET %U bu|
00005570  74 20 6f 6e 63 65 20 53  54 52 49 4e 47 20 68 61  |t once STRING ha|
00005580  73 20 62 65 65 6e 20 75  73 65 64 20 6e 65 69 74  |s been used neit|
00005590  68 65 72 20 69 74 20 6f  72 20 47 45 54 0d 63 61  |her it or GET.ca|
000055a0  6e 20 62 65 20 75 73 65  64 20 61 67 61 69 6e 2e  |n be used again.|
000055b0  0d 0d 20 20 20 20 20 54  68 65 20 63 6f 6d 6d 61  |..     The comma|
000055c0  6e 64 20 53 43 52 45 45  4e 20 68 61 73 20 61 70  |nd SCREEN has ap|
000055d0  70 65 61 72 65 64 20 61  62 6f 76 65 20 6f 6e 20  |peared above on |
000055e0  73 65 76 65 72 61 6c 20  6f 63 61 73 69 6f 6e 73  |several ocasions|
000055f0  2e 20 41 6c 6c 0d 2a 53  43 52 45 45 4e 20 64 6f  |. All.*SCREEN do|
00005600  65 73 20 69 73 20 64 69  73 70 6c 61 79 20 74 68  |es is display th|
00005610  65 20 66 6f 6c 6c 6f 77  69 6e 67 20 6d 65 73 73  |e following mess|
00005620  61 67 65 20 6f 6e 20 74  68 65 20 20 73 63 72 65  |age on the  scre|
00005630  65 6e 2e 20 49 66 20 25  20 6f 63 63 75 72 65 73  |en. If % occures|
00005640  0d 53 43 52 45 45 4e 20  77 69 6c 6c 20 74 61 6b  |.SCREEN will tak|
00005650  65 20 74 68 65 20 66 6f  6c 6c 6f 77 69 6e 67 20  |e the following |
00005660  6c 65 74 74 65 72 20 61  6e 64 20 68 61 6e 64 6c  |letter and handl|
00005670  65 20 69 74 20 61 73 20  61 20 76 61 72 69 61 62  |e it as a variab|
00005680  6c 65 0d 64 69 73 70 6c  61 79 69 6e 67 20 69 74  |le.displaying it|
00005690  73 20 68 65 78 61 64 65  63 69 6d 61 6c 20 76 61  |s hexadecimal va|
000056a0  6c 75 65 20 6f 6e 20 73  63 72 65 65 6e 2e 20 49  |lue on screen. I|
000056b0  66 20 7e 20 69 73 20 75  73 65 64 20 74 68 65 20  |f ~ is used the |
000056c0  53 43 52 45 45 4e 20 77  69 6c 6c 0d 74 61 6b 65  |SCREEN will.take|
000056d0  20 74 68 65 20 66 6f 6c  6c 6f 77 69 6e 67 20 76  | the following v|
000056e0  61 6c 75 65 2c 20 6e 75  6d 65 72 69 63 20 6f 72  |alue, numeric or|
000056f0  20 76 61 72 69 61 62 6c  65 20 61 6e 64 20 64 69  | variable and di|
00005700  73 70 6c 61 79 20 69 74  20 69 6e 20 64 65 63 69  |splay it in deci|
00005710  6d 61 6c 2e 0d 49 66 20  5e 20 69 73 20 66 6f 75  |mal..If ^ is fou|
00005720  6e 64 20 53 43 52 45 45  4e 20 77 69 6c 6c 20 64  |nd SCREEN will d|
00005730  69 73 70 6c 61 79 20 74  68 65 20 66 6f 6c 6c 6f  |isplay the follo|
00005740  77 69 6e 67 20 76 61 6c  75 65 2c 20 61 67 61 69  |wing value, agai|
00005750  6e 20 6e 75 6d 65 72 69  63 20 6f 72 0d 76 61 72  |n numeric or.var|
00005760  69 61 62 6c 65 2c 20 61  73 20 61 6e 20 41 53 43  |iable, as an ASC|
00005770  49 49 20 63 6f 64 65 2e  0d 20 20 20 20 20 54 68  |II code..     Th|
00005780  65 20 63 6f 6d 6d 61 6e  64 20 49 4e 53 45 52 54  |e command INSERT|
00005790  20 78 20 77 69 6c 6c 20  69 6e 73 65 72 74 20 69  | x will insert i|
000057a0  6e 74 6f 20 74 68 65 20  6b 65 79 62 6f 61 72 64  |nto the keyboard|
000057b0  20 62 75 66 66 65 72 20  74 68 65 20 73 74 72 69  | buffer the stri|
000057c0  6e 67 0d 6f 66 20 63 68  61 72 61 63 74 65 72 73  |ng.of characters|
000057d0  20 78 20 65 2e 67 20 49  4e 53 45 52 54 20 54 68  | x e.g INSERT Th|
000057e0  69 73 20 69 73 20 74 68  65 20 49 6e 73 65 72 74  |is is the Insert|
000057f0  20 63 6f 6d 6d 61 6e 64  2e 0d 20 20 20 20 20 53  | command..     S|
00005800  69 6e 63 65 20 53 43 52  45 45 4e 20 61 6e 64 20  |ince SCREEN and |
00005810  49 4e 53 45 52 54 20 61  72 65 20 62 6f 74 68 20  |INSERT are both |
00005820  69 6e 74 65 6e 64 65 64  20 74 6f 20 62 65 20 75  |intended to be u|
00005830  73 65 64 20 66 72 6f 6d  20 77 69 74 68 69 6e 0d  |sed from within.|
00005840  6d 61 63 72 6f 73 20 61  6e 79 20 7c 20 63 68 61  |macros any | cha|
00005850  72 61 63 74 65 72 73 20  69 6e 63 6c 75 64 65 64  |racters included|
00005860  20 64 75 72 69 6e 67 20  74 68 65 69 72 20 65 6e  | during their en|
00005870  74 72 79 20 77 69 6c 6c  20 62 65 20 6c 65 66 74  |try will be left|
00005880  20 73 6f 20 69 66 0d 75  73 65 64 20 64 69 72 65  | so if.used dire|
00005890  63 74 6c 79 20 74 68 65  20 7c 20 63 68 61 72 61  |ctly the | chara|
000058a0  63 74 65 72 20 77 69 6c  6c 20 73 68 6f 77 20 75  |cter will show u|
000058b0  70 20 61 73 20 7c 78 2e  20 54 68 65 20 6f 6e 6c  |p as |x. The onl|
000058c0  79 20 65 78 63 65 70 74  69 6f 6e 20 77 68 69 63  |y exception whic|
000058d0  68 0d 6d 61 79 20 63 61  75 73 65 20 70 72 6f 62  |h.may cause prob|
000058e0  6c 65 6d 73 20 69 73 20  7c 40 20 28 30 29 20 61  |lems is |@ (0) a|
000058f0  73 20 45 63 6c 69 70 73  65 20 75 73 65 73 20 74  |s Eclipse uses t|
00005900  68 69 73 20 77 68 65 6e  20 64 65 61 6c 69 6e 67  |his when dealing|
00005910  20 77 69 74 68 20 49 46  2c 0d 54 48 45 4e 2c 20  | with IF,.THEN, |
00005920  45 4c 53 45 2c 20 45 4e  44 49 46 2e 0d 20 20 20  |ELSE, ENDIF..   |
00005930  20 20 53 69 6e 63 65 20  53 43 52 45 45 4e 20 6d  |  Since SCREEN m|
00005940  75 73 74 20 62 65 20 75  73 65 64 20 77 69 74 68  |ust be used with|
00005950  69 6e 20 61 20 6d 65 6d  62 61 6e 6b 20 6c 6f 6e  |in a membank lon|
00005960  67 20 6d 65 73 73 61 67  65 73 20 6d 61 79 20 63  |g messages may c|
00005970  61 75 73 65 0d 70 72 6f  62 6c 65 6d 73 2c 20 6f  |ause.problems, o|
00005980  6e 65 20 77 61 79 20 72  6f 75 6e 64 20 74 68 69  |ne way round thi|
00005990  73 20 69 73 20 74 6f 20  69 6e 73 74 61 6c 6c 20  |s is to install |
000059a0  74 68 65 20 6d 65 73 73  61 67 65 28 73 29 20 69  |the message(s) i|
000059b0  6e 20 61 20 6d 65 6d 62  61 6e 6b 28 73 29 0d 61  |n a membank(s).a|
000059c0  6e 64 20 52 45 43 41 4c  4c 20 74 68 65 20 6d 65  |nd RECALL the me|
000059d0  6d 62 61 6e 6b 28 73 29  20 6e 65 65 64 65 64 2e  |mbank(s) needed.|
000059e0  0d 0d 20 20 20 20 20 54  68 65 20 66 69 6e 61 6c  |..     The final|
000059f0  20 69 6e 70 75 74 20 63  6f 6d 6d 61 6e 64 20 69  | input command i|
00005a00  73 20 49 4e 4b 45 59 20  78 20 79 2e 20 54 68 69  |s INKEY x y. Thi|
00005a10  73 20 69 73 20 74 68 65  20 73 61 6d 65 20 61 73  |s is the same as|
00005a20  20 74 68 65 20 42 41 53  49 43 0d 69 6e 6b 65 79  | the BASIC.inkey|
00005a30  2e 20 78 20 69 73 20 74  68 65 20 6c 65 6e 67 74  |. x is the lengt|
00005a40  68 20 6f 66 20 74 69 6d  65 20 69 6e 20 68 75 6e  |h of time in hun|
00005a50  64 72 65 74 68 73 20 6f  66 20 61 20 73 65 63 6f  |dreths of a seco|
00005a60  6e 64 20 74 6f 20 62 65  20 77 61 69 74 65 64 20  |nd to be waited |
00005a70  61 6e 64 0d 74 68 65 20  41 53 43 49 49 20 76 61  |and.the ASCII va|
00005a80  6c 75 65 20 6f 66 20 74  68 65 20 6b 65 79 20 70  |lue of the key p|
00005a90  72 65 73 73 65 64 20 28  69 66 20 61 74 20 61 6c  |ressed (if at al|
00005aa0  6c 29 20 69 73 20 73 74  6f 72 65 64 20 69 6e 20  |l) is stored in |
00005ab0  79 2e 20 65 2e 67 2e 20  49 4e 4b 45 59 0d 32 30  |y. e.g. INKEY.20|
00005ac0  20 25 54 2e 0d                                    | %T..|
00005ac5
09-04-88/E\INFO.m0
09-04-88/E\INFO.m1
09-04-88/E\INFO.m2
09-04-88/E\INFO.m4
09-04-88/E\INFO.m5