Home » CEEFAX disks » telesoftware10.adl » 29-10-88/E\INFO
29-10-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 » telesoftware10.adl |
Filename: | 29-10-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:
- CEEFAX disks » telesoftware10.adl » 29-10-88/E\INFO
- CEEFAX disks » telesoftware6.adl » 09-04-88/E\INFO
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