Electron User1st March 1987
Published in Electron User 4.06
Steve Turnbull enthuses over this powerful word processor, now available on disc for the Electron.
Wordwise by Computer Concepts was the very first word processor that appeared for the BBC Micro, and it became the standard. But, when the Electron appeared, Wordwise could not be transferred across to it because there wasn't the facility to plug the rom chip into it, and it used Mode 7 for editing and poked the screen directly.
Then, two years ago, came the next stage: Wordwise Plus, something completely new in word processing. Now, five years later, Electron users can benefit from this tremendous rom. The bad news is though that you can only use it if you have Permanent Memory Systems' E2P-6502 cartridge.
This isn't an Eprom, it contains another 6502 microprocessor with its own 64K of RAM. E2P is a second processor for the Electron and it was reviewed in the October 1986 issue of Electron User.
The version of Wordwise Plus you get is a rom image of Hi-Wordwise Plus saved on disc. The Hi means that you get an extra 10K of ram for storing your text.
Why have this set-up? Well, if you have two micro-processors operating together, you can split the work in half and run the program almost twice as fast. So, while your Electron looks after the keypresses and screen display, the E2P holds the Wordwise Plus program and the text you are typing in.
To start up Hi-Wordwise Plus, the E2P must be plugged in and initiated. Shift-Break boots Hi-Wordwise Plus from disc and you are presented with the Mode 6 main menu screen. Press the key number of the option required, or press Escape to take you to the main screen for editing your text. You can also press * for a system command or : for a special Wordwise Plus command.
There is a moment's delay when you switch to edit mode while the program brings up its edit screen.
Wordwise Plus keeps the main menu screen and the edit screen as separate ram areas and swamps them over. Once in edit mode you can start typing. The text occupies most of the screen with the beginning and end of text marked with START and END in black on white.
At the top of the screen is one line which, from left to right, gives a word count, a free character count - more than 42,000 bytes or roughly six A4 pages of solid text - and I for Insert or O for Overwrite.
As you type the letters appear on the screen almost immediately, but there is a very slight delay because if you hold down a single key and allow it to auto-repeat the screen display cannot quite keep up.
There is automatic wordwrap, which means that if a word runs over the right hand edge of the screen the whole word is moved to the next line, so avoiding a split.
This essential feature can be switched off and on with Ctrl-F. Moving around the text is simple using the cursor keys to move left, right, up and down by a single line or character.
For larger jumps, you use other keys with the Func key. This seems a slightly odd arrangement but you soon get used to it.
As you can see, Wordwise is not WYSIWYG - What You See Is What You Get - so you have to format the text for output using embedded commands. These are typed into the text and processed as the text is printed.
Each embedded command must be preceded by a G code selected with Func-1 and terminated by a W code selected with Func-2
You can see one in the second paragraph of Figure II. The command is LS2, standing for "line space 2", which inserts a blank line between each printed line.
Embedded commands are used to control left margin, line length, page length, indentation and so on. Other commands can be used to send Operating System, command during print out, get additional text from files, print numbers and calculations within a line and even execute segment programs - see later about segment programs.
Func-0 switches between Insert and Overwrite mode when typing data in, this changes the I letter on the top right of the edit screen.
Pressing Func-3 sets a marker in the text, and puts a block in the top right corner of the edit screen. Markers are used to indicate the beginning and end of a piece of text. After text has been so marked you can do things to just that marked section - delete it, move it somewhere else in the text, save it and so on.
Func-4 waits for you to press another character, then moves the cursor to where it next appears in the text. If it can't find the character the cursor ends up at the end of the text, which can be very annoying.
Func-5 also waits for another character and then counts the words up to that character - not a particularly useful operation.
Func-6 waits for a character and then deletes all the text up to that character - a very dangerous option if you aren't careful.
The final three function keys, 7, 8 and 9, are all used with a marked section of text. Func-7 deletes the text between the markers, Func-8 moves the text between the markers to wherever the cursor key has been positioned and Func-9 copies the marked text to the cursor, leaving the original text and markers in place.
Pressing the Escape key when you are in edit mode takes you back to the menu. The first two options on the main menu save and load text, but Wordwise Plus is careful to make sure you don't make mistakes.
When you save text it gives you the name of the file you loaded (if any) which you can copy and if you do save under the same name it ass you if you want to overwrite the previous file, and aborts if you don't.
When you select the load option, it checks if there is any text in memory, and if so makes sure you really want to load. I would have preferred if it took notice of whether you had edited the text in memory or not, so that you could keep loading different files without having the annoying beep and the "Are you sure? (Y/N)" coming up every time.
It should only check if you wanted to load new text over the top of text which you had edited but hadn't saved.
You can mark a piece of text when in edit mode and option three allows you to save that section only.
Option four lets you join text files together by inserting the new text fie at the cursor position in your text. Search and replace - option ive - works in two ways. Take the global option and every time the search string is found it is replaced by the replace string.
If you opt for the selective mode, each time the search string is found you are asked whether you want to replace it or not. It allows you to search for Returns, Tabs, and the embedded command G and W characters using special codes.
Even handier, you can use the # symbol for a wildcard, which means that if you want to replace every occurrence of the word "Beeb" or "beeb" with "BBC Micro", you can use "#eeb" to match the upper or lower case B.
In the selective mode the computer beeps every time a match is found - an option to turn the noises off would have been nice, although you can use *FX210,1.
The next three options (six, seven and eight) are all variations on the same theme - output.
Option six, Print text, prints the text, or just the marked section. Option seven, Preview text, displays the text in Mode 0 as it would appear if it were printed, with a long dotted line showing where the page break would be.
And option eight, Spool text, first asks you for a filename, then sends the preview of the text (or marked section) to that file.
One additional choice on the spool option is whether you want any of the printer control codes to be sent to the file as well.
The main menu option nine, Segment Menu, marks the point where Wordwise Plus stops being an ordinary word processor and becomes something completely different - a text processing language interpreter.
Selecting this option takes you to the menu shown in Figure III.
Apart from the main text area for editing, Wordwise Plus possesses ten other text areas called segments, each of which can contain ordinary text, whch means you can edit up to eleven documents at one time, or they can contain segment programs.
A segment program is written using a built-in language which looks a lot like Basic designed to handle text.
|Cls||Clear the screen|
|Cursor at <expr>||Move cursor to position in line|
|Cursor left <expr>
Cursor right <expr>
Cursor up <expr>
Cursor down <expr>
|Delete at <expr>||Delete character(s) at the cursor|
|Delete left <expr>||Delete character(s) backwards|
|Delete marked <expr>||Delete marked text|
|Delete markers <expr>||Remove the markers|
|Delete word <expr>||Delete word(s) at cursor|
|Delete text||Delete text in selected area|
|Display||Show the currently selected text area on screen|
|Endproc||End of procedure|
|Find <$expr>||Move cursor to the beginning of the next occurrence of the string|
|Proc <label name>||Call a procedure|
|Repeat ... until <expr>||Loop|
|Replace <$expr>,<$expr>||Replace next occurrence of first string with the next|
|Select text||Select the main text area|
|Select segment <expr>||Select one of the segments|
|Type <$expr>||Puts string into the text area selected|
|<expr>||Means a number expression, for example, 5 or 3+N%|
|<$expr>||Means a string expression, such as "hello" or CHR$(55+Z%)|
|<label name>||Means any name, such as input, skip5, test13b and so on|
The above table gives a list of the major keywords By pressing : from a menu you can type immediate commands such as:
which will reset everything, clearing all text and segments.
With segment programs you can create address lists, mail merging, notepads, and spelling checkers limited only by your imagination. You have 26 integer variables, A% to Z%, and 26 string variables, A$ to Z$, although there is limited string space of only about 435 bytes.
The true power of the segment programs lies in extending the utilities available when you are word processing.
To run the program that is in segment zero you press Func-A, for the program in segment one Func-B, and so on. This means that each segment program is available from edit mode.
A frequent word processing error is to type two letters in the wrong order, like this:
You could change this every time you make the mistake, but this would take quite a few keypresses.
Look at listing 1, a segment program to make the transposition for you.
You place the cursor on the first of the misplaced letters and press Func-A (assuming the program is in segment zero). Whenever you write a segment program the first thing you must do is SELECT the area of memory that the commands are going to affect; in this case, the TEXT area.
The first character to be swapped is read into the variable A$ with the GCT$ function (Get Character from Text).
This function also moves the cursor one place on and the character just read is DELETEd.
The cursor is moved right one character and the character in A$ is TYPEd in at the current cursor position and the screen displayed.
Note that you have to DISPLAY the screen otherwise nothing happens on-screen until you press the next key.
Listing II shows a more complex segment program to perform the search and replace operation which demonstrates loops and jumping within the segment.
Because segment programs are available from edit mode you don't have to go to the main menu to search and replace.
The other use of segments is to hold data. Listing III shows a segment to find all the different worlds used in a piece of text, placed in alphabetical order, storing all the words in segment 9.
I hope I have been able to prompt your interest in this very flexible and powerful word-processor with its unique text handling capabilities. For serious word processing this is definitely the best buy.