THE WRITER Softechnics The Writer A Professional Word Processor for ZX Spectrum Computers by G. Carri for Softechnics CHAPTER 1 WORD PROCESSING WITH THE WRITER <> 1.1 The Writer is the most sophisticated word processing program now available for the ZX Spectrum, incorporating as it does features usually only found in far more expensive and powerful micros. It will replace all other existing word processing packages for the Spectrum, as it is compatible with nearly every existing Spectrum peripheral and if you've been using Tasword II then it will accept those files too. The Writer really does turn your 48/128K ZX Spectrum into one of the most powerful word processors on the market. <> 1.2 What exactly is "Word processing"? A word processing program enables your Spectrum to simulate a typewriter; like a word processor your computer can help you compose a draft, as on a typewriter, but unlike a typewriter you can continuously alter the words, correct spelling and typing errors on-screen, and without having [to] commit what you've written to paper. The text is not printed immediately hut is initially merely shown on the screen. In the word processing program The Writer, a part called The Editor allows you to correct any typing errors before printing a perfect copy. <> 1.3 Using The Writer The numerous procedures that the computer user has to remember often make other word processors hard to use. The Writer , however, has been designed to be extremely easy to use by offering most of the "commands" you will need to know in the form of easy to read and operate "pull down menus". Previously, this degree of what is called "user friendliness" had only been available on micros costing over #1,000 or s0. * Word processing on your Spectrum using The Writer could hardly be easier. You'll soon find that there are a host of things which you can now do with your Spectrum which you could not hope to achieve using a traditional typewriter. * Useful features of The Writer include word-wrap (it will automatically wrap a word onto the next line rather than end a line part the way through a word), auto-indent, search & replace text, copy or delete large blocks of text, print one document whilst typing another and allow you total control over the format of the text in your document; these and other features will be fully discussed in this manual. -- 1 ------- CHAPTER 2 GETTING STARTED 2.1 <> LOADING The Writer - 48K Spectrum To load The Writer into your 48K Spectrum, you must follow one of the two following procedures: 1. If you have a ZX Interface 1 and at least one Microdrive, then start the tape (side A) and type the command LOAD "". After a short pause, you will be asked whether you with to create a version for use with a mouse, or one for use with keyboard (or joystick). If you are using a mouse press 'M' and if you are not press 'K'. In a moment the message "Stop the tape and press any key" will appear on the screen. Stop the tape and insert a blank cartridge into Microdrive 1. Press a key and the cartridge will be formatted. When the Microdrive light turns off, you must start the tape again and run it until the next "Stop the tape" message appears. Repeat these operations until the following message appears on the screen: "FINISHED - THE WRITER IS READY IN MICRODRIVE 1" 2. If you don't have a Microdrive, you must load The Writer from tape with the command LOAD "" (side B of the cassette). Note that without a Microdrive, many of the program's features are not available, including the extensive HELP files. 3. Kempston Mouse & Joystick operation: If you wish to use either the Kempston Mouse or Joystick with The Writer then you will first have to ensure that your Mouse or Joystick interface is correctly attached prior to first powering up your Spectrum. Above you will have seen details on how you must create either a version for microdrive for use with the mouse, or one for keyboard and (optionally) joystick. * Needless to say, you may not attach both a joystick and mouse at the same time, and at the time of writing this manual The Writer is not compatible with other mice or joysticks (but please look in the Press for announcements of future enhancements - or better still become a member of the "SofTechnics Connection"). * Mouse operation: With the mouse attached you will find that in the EDITOR mode the mouse has no effect. Other than, that is, when you press the right-hand button on the mouse you will enter the MENU mode (which is equivalent to pressing the EDIT key). Once in the EDIT/MENU mode you will see that the mouse instantly gives you great freedom to -- 2 ------- choose menus to pull down, and items in menus are now very easily chosen. To select a menu, or an item in a menu, simply press the left-hand button. And to return to the main text screen (THE EDITOR) you will usually find that either pressing the right-hand button again or the BREAK key will get you there. * Joystick operation: With the joystick attached you will find that in the MENU/EDIT mode (entered by pressing the EDIT key) you can now move the arrow cursor around the screen easily using the joysticks usual controls. To select a menu to pull down, or an item in a menu, simply press the joystick's fire button. 2.2 <> LOADING The Writer - 128K Spectrum: The Writer must he loaded into the 128K Spectrum in the 128K BASIC mode - not the 48K BASIC mode. Simply enter: LOAD "" and press ENTER. The 128K Spectrum versions of the programs, like the 48K ones, are on the cassette in both mouse and keyboard/joystick versions (although it is noted at the time of writing that the Kempston joystick interface does not work with the 128K Spectrum - write for further details if you with to use a joystick with this program). Again, as with the 48K version, the microdrive creation side of the tape will request you to press either 'M' or 'K' depending upon whether you wish a mouse-operation version or one for use with the keyboard. An Overview: <> The "Status Line" * SCREEN COLOURS: You will note that The Writer loads up in black and white. If you prefer to see the screen in other colours (and we can also recommend either white INK and blue PAPER, or vice versa as good alternatives), then please refer to the section below dealing with the EDIT menu in the MENU/EDIT mode. * 128K & 48K differences: Note that the 128K version of The Writer can hold up to 5 totally separate text-files (documents) in memory at the same time. The name of the currently selected text-file will also be displayed at this point on the status line. To change between the 5 possible files simply enter the ETDN [?] mode, and press one of the keys '1' to '5' whilst simultaneously holding down the SYMBOL SHIFT key. Note that the program gives these files default names, but you can easily change them by using the OPEN command (see below). Note too that the 5 documents can have totally different characteristics and settings (of TABS, screen width, indentation, etc etc). -- 3 ------- * When the program has been successfully loaded, the screen will turn black, with white letters and what is called a "status line" at the top of your TV screen. It will look like this: 1:UNTITLED 1 0 0 NORM INSR This is what the status line means: 1: UNTITLED indicates the name of the document/file which you are currently working on. * The number just before the name (we've just defaulted to calling it "untitled") refers to the Microdrive on which the document is stored. Obviously, if you are using a tape based version then this number will have no meaning and you should ignore it. The '1' to the right of "UNTITLED" is the current page number. The two zeros represent the next position on the screen where writing will appear (called the "cursor position"). They are the so-called Line and column numbers of the "cursor" respectively. The two zeros simply mean that your cursor is currently in the top left hand corner (line 0, column 0) of the text area of the screen below this status line. To see how these numbers change as you type, try pressing the SPACE key and you will see that the cursor travels across the screen and that the "column" number goes up accordingly with each press of the key. * NORM: The word NORM indicates that you are in the NORMal mode in which you will usually be working. In this mode when you press a key the letter, number or symbol on that key will appear on the screen at the cursor position, just as if you were using a typewriter. * EXTD: The other two modes are EXTD (EXTenDed) and GRPH (GRaPHics). EXTD mode is entered by pressing the CAPS SHIFT and SYMBOL SHIFT keys at the same time. In this mode pressing a key will usually execute some sort of command to The Writer. For instance, you would enter this mode if you wanted to get just one line of your text centred on the screen. But we'll return to using this mode later. By the way, you can see that you are in the EXTD mode by the fact that the border colour will have turned red. Certain symbols however (~, (, ], etc) are obtained by pressing SYMBOL SHIFT and the key. * GRPH: In the GRPH mode you can get special symbols, non-English letters, and printer control codes. When you are in this mode you will see that the border colour turns yellow. -- 4 ------- * INSR: The word INSR indicates that The Writer is in INSERT mode, What this means is that anything you type in will be inserted in the text rather than over-writing whatever is already there. For instance, if you type in the following: Today is a day. Now use the cursor controls (the arrows on a Spectrum Plus/128K, or the shifted keys 5 to 8 on the older Spectrum) to go back to just before the word "day". Now type the word "fine" and you should see that it inserts itself in the text as follows: Today is a fine day. You can see easily, I hope, how to insert a word into a sentence. But you can also insert any amount of text between any two words, or two lines, or between two paragraphs, when the INSerT mode is selected. You can even split lines up onto two lines by getting your cursor in the middle of a sentence and then pressing 'ENTER'. You'll note that the second half of the line (everything to the right of the cursor) went onto the next line. You can join the line up again by simply pressing 'DELETE'. * OVER: The alternative mode is the 'OVER' (OVERWRITE) mode which allows you to write on top of what is already there. To enter this mode you press the 'V' key whilst you are in the EXTenDed mode described above. Note that when you do this the word INSR disappears from the status line, and it is replaced by 'OVER'. Once in this mode, if you get your cursor once again just before the word "fine" and type "working day", the following should result: Today is a working day. You have written one piece of text on top of another. Pressing ENTER when you are in the middle of a line will not split the line whilst you are in this OVER mode. Note that the INSR mode it the one that The Writer returns to as a default setting - when you first load it in, for instance. * CAPS: There is one other message that might appear in the right hand side of the status line, and that is 'CAPS'. If you press the CAPS LOCK key on your 128K or Plus (CAPS SHIFT+2 on older Spectrums), you'll see that the word CAPS comes on indicating (as you've probably guessed) that you are in CAPital letter mode. -- 5 ------- <> The Ruler Line The line just below the status line is called the "ruler line". This line shows the cursor position as a black rectangle; it also shows the margin positions (using the symbols < and >), and the tabulation points (using letters 'L','R','D','C' - we'll return to the meaning of the different types of TABulation later). This ruler line also shows columns using the symbol '_'. The entire area below the ruler line is effectively the electronic equivalent of a sheet of paper in a typewriter - or rather, it's more like a window into a long roll of many "pages" of paper. When you reach the bottom of the screen, instead of getting a whole new "page" to type on, the information on the screen scrolls up to allow you to go on typing. Unlike with a typewriter, then, whatever you have just been typing is always in sight higher up the screen-page. As you will have noticed, this electronic equivalent of a sheet of paper is effectively 64 characters wide instead of the more normal 32 columns on your ZX Spectrum. In fact you can get up to 127 columns - with the screen scrolling left and right as well as up and down. We'll return to this topic, though, in Chapter 14. -- 6 ------- CHAPTER 3 The 'FILE' menu option 3.1 <> SAVE: How do you go about saving the text which you've put onto the screen? Well, let us assume that you are going to save the text to Microdrive. The first thing you have to do is to press the Edit key (CAPS SHIFT+1 on older Spectrums), and you will note that the status line has been replaced by a menu bar. FILE EDIT TEXT SEARCH FORMAT HELP * A new cursor shaped like an arrow will also appear, and you see that it can be moved around the screen using the cursor keys (shifted 5,6,7,8). Note too that the keys Q, Z, I & P can also be used to move the arrow up, down, left and right respectively. Go into the 'EDIT' mode and try moving the arrow around the screen. As you see, as soon as the arrow cursor goes on top of one of the menu words that word is highlighted in reverse print. Move the arrow over the word FILE and to select that menu by either pressing ENTER or the '0' (zero) key. As you do this a pull-down menu will appear, presenting you with the following options: Delete Directory Input/Output Monitor the printer Open Paper Print Print merge Quit Save Verify * Select the SAVE option by putting the arrow over the word 'Save'. You'll see again that The Writer shows that you have selected it correctly by highlighting the text in inverse colours. Your next step is to press either ENTER or '0' - but before you do so ensure that there is a cartridge in Microdrive 1, and that the cartridge does have enough space to save the text to the Microdrive using the name you have given the file. * When the text is successfully saved the pull-down menu will disappear. -- 7 ------- * You may have noticed that the Save option did not require you to state which drive you wanted the text saved to, or what name you wanted to give to the text. This is because The Writer automatically assumes that you wish the text saved to the currently selected Microdrive (or to tape, if that is selected) and using the current name of that file. To change the name and drive option (or indeed switch between Microdrive and tape media) you can use the OPEN option in this FILE pull-down menu before saving the text. 3.2 <> OPEN: The OPEN option requests a filename and a drive number, then (after a short pause during which the Microdrive light will turn on) the name will replace the default name in the status line. When you then later use the SAVE option the text will be saved using the new document name and to the drive you have most recently specified. You should try to get into the habit of using the OPEN option every time you start a new document. * By the way, ensure that if you are re-naming an existing piece of text that you do not type a name into the OPEN option which you have used before for a file you've already saved to the Microdrive. If you do then The Writer will assume that you wish to have that older file loaded into memory instead of the existing file. 3.3 <> VERIFY: To check whether your saved file was saved correctly you can use the VERIFY option on the FILE menu. Having selected it with the arrow, you simply enter the name of the file in question and press ENTER to tell the program to verify the file. If all is OK control will be returned to you and the pull-down menu will disappear. However, if errors are found the message VERIFY ERROR will be shown. 3.4 <> LOAD: The next step is to learn how to re-load files which you have saved. Again the OPEN command is used (as intimated above). This OPEN command works in two different ways: if text is created for the first time then OPEN defines the name to be used during a SAVE routine, and effectively "names" the current document you are working on; but if the name you enter into the OPEN option already exists as that of a file previously saved to Microdrive, then OPEN will load in that file destroying any existing text. If you make alterations to the loaded-in text and then save it back to Microdrive again, The Writer will know what you are doing and will erase the old version of that file before saving the latest version onto the cartridge. -- 8 ------- * By the way, whenever an Option requests a drive number, simply pressing ENTER will mean that the program will assume that you mean drive '1'. * It may be a good idea for you to experiment with these options, saving and loading text several times to familiarise yourself with the system. 3.5 <> DIRECTORY & QUIT: Two other useful options can be found in the FILE pull-down menu. These are DIRECTORY and QUIT. The first allows you to get a display of the catalogue of the currently selected drive. QUIT on the other hand allows you to clear any text in memory. When you select QUIT in the pull-down menu another box will appear with the word QUIT in it, and you have to move your arrow to this and press ENTER or '0' in order to clear the text. This double procedure ensures that you do not delete a document by mistake. 3.6 <> BREAK: By the way, it is useful to remember that the BREAK key can be pressed at any time to exit from the menu and return to the editor (note, though, that within the editor the BREAK key is used to move on to the next TAB position). -- 9 ------- CHAPTER 4 EDITING & FORMATTING As we have already seen, when the editor is in INSERT mode it is possible to insert text directly in the middle of existing text. In the OVERwrite mode the text typed in will erase the words beneath. The EXTD-V key combination is used (pressing 'V' in the extend mode) to change the mode. 4.1 <> Carriage return (ENTER, C.SHIFT-ENTER, S.SHIFT-ENTER) To force a new line of text to begin it is possible to use one of three methods: pressing ENTER, or CAPS SHIFT plus ENTER, or SYMBOL SHIFT plus ENTER. In the first case (just ENTER) both the line and that paragraph will be terminated. The Writer physically separates each paragraph one from another, and you should bear in mind that each paragraph is treated separately for formatting purposes. For this reason, you should only use ENTER if you have actually completed the paragraph. Notice that the automatic word-wrap facility will ensure that your entire word starts on a new line without your having to press the ENTER key (it's as if The Writer automatically does "intelligent" carriage returns for you). 4.2 <> In the second case (CAPS SHIFT plus ENTER), only a soft carriage return is inserted into the text; the cursor will be forced to move to the start of the next line, but a new paragraph is not started. 4.3 <> In the last alternative (SYMBOL SHIFT plus ENTER) a similar situation arises to where you just use ENTER alone - for a new line and a paragraph termination occur. This option inserts what is called a hard carriage return into the text. However, a forced page break is also inserted, and consequently the page number in the status line will change and during printing the page will end at that point. * Note that to force any of these carriage return codes WITHIN an existing document, you must operate in INSERT mode, otherwise the only effect will be that of moving the cursor to the following line. 4.4 <> Cursor movement (CAPS SHIFT 5,6,7,8 or the cursor keys) The cursor can be moved anywhere within the existing text by using the cursor keys (shown with arrows on them on the Spectrum Plus and 128K, but must be used by pressing CAPS SHIFT with one of the keys 5,6,7 or 8on the older Spectrum). -- 10 ------- 4.5 <> Delete (CAPS SHIFT 0, SYMBOL SHIFT D) There are two different DELETE controls; the first is the "normal" one, and can be obtained with CAPS SHIFT and '0' (zero) (or by pressing the DELETE key itself of course on the Plus and 128K). This will enable you to delete the character to the left of the cursor, and in so doing the text to the right of it will be moved one position to the left. The second type is done by pressing SYMBOL SHIFT and 'D' (this would usually produce the BASIC keyword 'STEP' in Sinclair 48K BASIC). This will delete the character at the cursor position. Note that both delete controls are able to delete any control characters such as line-end, page-end, etc. For example, to join two lines it is sufficient to move the cursor to the beginning of the second line and then to press the DELETE key (or CAPS SHIFT '0'). 4.6 <> Fast cursor movement (INV.VIDEO, TRUE VIDEO) The INVERSE VIDEO and TRUE VIDEO keys can be used to move the cursor one word at a time, to the left and to the right of the cursor position respectively. 4.7 <> Fast cursor movement II (EXTD-8) Pressing the '8' key in the extended mode moves the cursor to the beginning of the next paragraph. The paragraph start is marked either by pressing ENTER or SYMBOL SHIFT/ENTER as explained above. 4.5 <> Fast cursor movement III (OR, AT) Pressing the OR and AT keys (SYMBOL SHIFT U and SYMBOL SHIFT I) moves the cursor up or down 18 lines at a time respectively. 4.6 <> Fast cursor movement IV (TO, THEN) Pressing the keys TO and THEN (SYMBOL SHIFT F and SYMBOL SHIFT G) moves the cursor to the start and to the end respectively of the document in memory. 4.10 <> Word deletion (STOP) The STOP key (SYMBOL SHIFT A) can be used to delete the word pointed to by the cursor. 4.11 <> Line deletion (NOT) The NOT key (SYMBOL SHIFT S) deletes the entire line of text where the cursor is, moving all the subsequent lines one position upwards. -- 11 ------- 4.12 <> Cursor movement to start/end of line (<=, >=) The keys <= and => (SYMBOL SHIFT Q and SYMBOL SHIFT E) can be used to move the cursor to the start and to the end of the current line respectively. 4.13 <> Centre line (<>) The <> key (SYMBOL SHIFT W) can be used to centre the text on a specific line at the mid-point between the left and right margins. This can be very useful for headings, titles, and so forth. 4.14 <> Paragraph reforming (AND) The AND key (SYMBOL SHIFT Y) allows you to reform the current paragraph, starting from the current cursor line. All unnecessary spaces are removed, and the text is reformatted according to the current formatting mode. For more details on this see chapter 13. 4.15 <> Copy a block to the cursor position (EXTD-C) The EXTD-C control (for 'C'opy) copies to the current cursor position the block of text marked with a graphics 'M' character at the start and end of it. See paragraph 7.2 for more details. Note that this is also available via the pull-down menu in the EDIT mode too. 4.16 <> Delete marked block (EXTD-D) The EXTD-D control (for 'D'elete) will delete the block which is currently marked by two GRAPHICS 'M' characters. See paragraph 7.2 and again note that this feature it also accessible via the pull-down menus. 4.17 <> Find next occurrence of string (EXTD-F) The EXTD-F (for 'F'ind) control moves the cursor to the next occurrence of the "find string" with the "change string" specified by the SEARCH command. Note that this involves using the pull-down menus in the EDIT mode, and that even the find-next-occurrence can be done from the menu too. See Chapter 9 for more information. 4.18 <> Replace current occurrence of string (EXTD-A) The EXTD-A (for 'A'lter) replaces the current occurrence of the "find" string with the "change" string as specified in the SEARCH command in the pull-down menu. Again, see Chapter 9 for more information. -- 12 ------- 4.19 <> Go to position marker (EXTD-G) The EXTD-G control (for 'G'o to) moves the cursor to the position of the character "position marker", GRAPHICS G. This can be very useful for quickly moving the cursor to a specific point within a large document. 4-20 <> Go to block marker (EXTD-K) The EXTD-K control (for bloc'K') moves the cursor to the start of the block of text marked with two GRAPHICS M characters ('M'arkers). Such a character can also be used on its own, as a GRAPHICS G marker as described in 4.19 above. 4.21 <> Justify current line (EXTD-T) When pressed in extended mode, the 'T' key justifies the line that the cursor is currently in. That is, it makes the text in that line align itself with both the left and right margins by inserting spaces between words. This paragraph is justified, for instance. 4.22 <> Left-align line (EXTD-R) Pressing the 'R' key in extended mode will align the line in which the cursor is to the left margin. All unnecessary spaces are removed. This may be used to undo the effects of either EXTD-T or EXTD-E. This text is left-aligned, for example. 4.23 <> Right align line (EXTD-E) The 'E' key when pressed in the extended mode will align the line of text that the cursor is in with the right hand margin - as this paragraph is. 4.24 <> Move to next TABulation (BREAK) The BREAK key (CAPS SHIFT and SPACE) can be used to move the cursor to the next TABulation point - see paragraph 8.2 4.25 <> Line Spacing (EXTD-S and EXTD-X) Using these two commands you can change the global line spacing of your text. Using EXTD-S (pressing the 'S' key in the EXTenD mode) will increase the line spacing by 1; if you press it again it increases again by one, and so on. EXTD-X has the opposite effect of reducing the line spacing by one. This should not be used with single space text as it will remove the empty lines between paragraphs. -- 13 ------- 4.26 <> Setting the RULER from a given line (EXTD-Z) You can set the RULER parameters from a given line on the screen. This is done by using EXTD-Z, which copies the current line into the ruler line using the characters >, L, R, C, D & <. That is, 'L' is a left-TAB, 'R' a right one, 'C' a centred one, 'D' a decimal one, and the symbols < and > indicating margins. Hence if you set up a line on the screen thus: > L R C R < Using the EXTD-Z command with the cursor at the start of this line will transfer those symbols into the TAB settings etc in the ruler line. Characters other than these above will be ignored. You may find this feature useful for matching up columns of words and numbers by typing in a line such as that above the one in question, using it to set the ruler line and then deleting it after use. 4.27 <> Other commands The CAPS LOCK control (CAPS SHIFT 2) can be used to turn the capitals on and off. Obviously, in the capitals mode (CAPS) all letters are shown in upper case. The EDIT key (CAPS SHIFT 1) shows the menu bar at the top of the screen, and an arrow that can be moved with the cursor keys (or CAPS SHIFT plus 5,6,7 & 8) or with the keys Q, Z, I, & P. When the arrow points to a command in a menu the ENTER or '0' (zero) key can be used to execute that command. BREAK can be used to abort this procedure, returning you to the editor , and allowing you to continue typing. The GRAPHICS and EXTENDED keys (CAPS SHIFT 9 and CAPS SHIFT/ SYMBOL SHIFT) can be used to turn the modes with these names on and off. Appendix 4 contains a complete list of all the control keys available within the editor. -- 14 ------- CHAPTER 5 SPECIAL CHARACTERS The following is a list of the special characters that can be obtained in GRAPHICS mode: GRPH-A ... å GRPH-B ... ß GRPH-C ... ç GRPH-E ... è GRPH-F ... Ç GRPH-G ... Place marker GRPH-H ... ` (Print merge delimiter) GRPH-I ... ì GRPH-J ... ü GRPH-K ... ° GRPH-L ... ö GRPH-M ... Block marker GRPH-O ... ò GRPH-Q ... ä GRPH-R ... é GRPH-U ... ù Another special character which can be obtained with SYMBOL SHIFT - SPACE (or with GRAPHICS 'S') is the so-called non-breaking space. It is shown and printed as a normal space, but the word-wrap procedure will prevent a line from being divided at that point. This is very useful when, for instance, you type in something like "Good evening Dr. Bloggs" where there is a space between "Dr." and "Bloggs". Clearly you would not want the program to break the line between these two! -- 15 ------- CHAPTER 6 THE FILE MENU We'll now have a closer look at all the menus which become available when you press EDIT. The first menu in the top left is FILE, and it is made up of 11 options. 6.1 <> DELETE This option allows you to delete a named file from a Microdrive. The file name and the drive number will be requested. If the ZX Interface 1 is not connected to the computer, this option has no effect. If there is no Microdrive connected to the interface, or if there is no cartridge in the drive, the error message "Microdrive not present" will appear. In that case use RUN to enter the editor again. 6.2 <> DIRECTORY The directory option gives you a directory of the currently selected Microdrive. Again, nothing will happen if the Interface 1 is not connected. 6.3 <> INPUT/OUTPUT Having selected this option the following dialog box will appear: <> Tape <> Microdrive The small white square beside the word "Microdrive" indicates that the current selection for Input/Output (I/O) is the Microdrive. This means that all Saving, Loading, Opening and Verifying will take place with a Microdrive. To change to tape operation simply position the arrow cursor over "Tape" and press ENTER or '0'. Note that when Interface 1 is not attached "Tape" is the only option, and The Writer will automatically set this selection. 6.4 <> MONITOR THE PRINTER Normally this option has no effect; during the printing of a document (using the PRINT command), it shows the number of the page and the copy being printed. You can also terminate the printing or return to the editor. See paragraph 6.7 and Chapter 15. -- 16 ------- 6.5 <> OPEN This option works in two ways, depending on which I/O channel you have selected using the INPUT/OUTPUT option. * If the I/O channel is set for the Microdrive then it requires a filename and a drive number. If the given filename is present on the cartridge OPEN will then load the file - otherwise it will return to the editor having just changed the name of the current document to whatever was entered in the OPEN dialog box. * If the I/O is set for Tape then a filename is requested and the named file will he loaded from tape. If the first character of the name is a full stop (".") then the first available file on the tape will be loaded. 6.6 <> PAPER Selecting this makes the following dialog box appear: Left margin 8 Top margin 3 Bottom margin 3 Page length 60 * It allows you to modify some parameters pertinent to the printing of a document. Changing any of the parameters is very easily accomplished by moving the arrow over the desired one, pressing ENTER or '0' to select it, and then typing in the new value. Having done that ENTER or '0' is pressed again to exit the procedure. * The parameter "left margin" indicates the number of spaces to be inserted in the sheet of paper before printing each line. It allows you to centre the text on the page. * Top margin defines the number of blank lines to be inserted at the top of each page. Whereas bottom margin defines the number of blank lines to be left at the bottom of each page. * Page length defines the number of lines present on each page (including the lines at the top and bottom which form the margin). In the edited text of the document the page number will automatically change every 54 lines of text (that's 60-3-3). However it won't do this when it faces forced page breaks, of course, when they are inserted with SYMBOL SHIFT - ENTER. -- 17 ------- When a 63-character-per-line format and an 80 column printer are used, the default parameters are valid for normal A4 sheets of paper, and for normal "fan fold" paper (66 lines/page). In other cases you should obviously modify the parameters. The "page length" parameter indicates the number of lines that can be printed; ie. about 6 lines less than the actual number of lines on the page (i.e. 60 for 66 line pages). Remember that the four PAPER parameters are automatically saved with a document and are thus modified when an OPEN command is issued to load in some text. 6.7 <> PRINT Selecting this option, the following dialog box will be shown: <> Ignore style OK <> Emphasized <> Elite <> Condensed Pages: <> All <> NLQ <> Range: 1 1 PAPER <> Continuous Copies: 1 <> Cut sheet Priority: 2 * PRINT: Let's now consider the various PRINT options. The five options at the top on the right allow you to select the "global" print style. The first option, Ignore style, uses the print style currently selected on the printer; the other four options select one of the following styles: Emphasized, Elite, Condensed, NLQ. If the printer is not able to print with these styles, some options will have no effect. * PAGES: The PAGES option defines whether it is necessary to print the whole text in memory (ALL), or only some pages (RANGE); in the latter case, you must specify the starting and ending page numbers. Pressing ENTER, you will accept the default values, which results in the printing of the page containing the cursor. -- 18 ------- * PAPER: The PAPER option defines whether you are using a continuous form (fanfold) paper or single sheets. In the second case, when each page has been printed a "beep" will be emitted from the printer and printing will pause so that you can change the paper. To continue the printing select the PROCEED option within the MONITOR THE PRINTER box. * COPIES: The COPIES option defines the number of copies to be printed. The PRIORITY option defines the editor priority over the print spooler. The meaning of this parameter will be clearer after you have read the next sections. * MONITOR THE PRINTER: When you have defined all parameters, you can either press BREAK to exit from the PRINT dialog box and return to the editor, or you may select the OK option. Should you do this, the printing will begin and the MONITOR THE PRINTER box will appear, showing the number of the page currently being printed and the copy number. If the box does not appear immediately then hold down a key. The MONITOR THE PRINTER box has two options: they are TERMINATE and PROCEED. The former can be used to terminate the printing. The latter has two functions: selecting PROCEED continues the printing halted for a page change and returns you to the editor, activating the page spooler. While the file is being printed, it is possible to continue typing the text. Note that you can ONLY ADD text to the END of the document, i.e. you must NOT alter the text as it is in the process of being printed, EXCEPT at the end. While printing is taking place, you can also select options such as MONITOR THE PRINTER, SAVE, etc. Some options, such as PRINT, FORMAT, OPEN, QUIT cannot be selected however. * PRIORITY: Now we'll look at the parameter "PRIORITY": When you activate the spooler with "MONITOR THE PRINTER, PROCEED" to return to the editor, the print speed will obviously be reduced. Low PRIORITY values result in a slowing down of the editor, and vice versa. The default value 2 should he perfectly suitable in any case, because the print speed increases automatically when no key is pressed on the keyboard. Note that the response rate of the keyboard will always remain unchanged because there is a keyboard buffer. If you want to print at the maximum speed, you should remain within the MONITOR THE PRINTER box. You must NOT exit from that box using the BREAK key, as the spooler will not be correctly activated. PROCEED should always be used to exit from MONITOR THE PRINTER. See Chapter 15 for further details on the printing of a document. -- 19 ------- 6.8 <> PRINT MERGE As with the preceding option, PRINT MERGE allows you to print a text, but with so-called mail merge facilities. To use this very powerful option, it is necessary to have at least one Microdrive. See Chapter 18 for a complete explanation. 6.9 <> QUIT The QUIT option allows you to delete the current document from memory. You will tee that when you choose QUIT, a second QUIT box appears for you to select again so as to confirm that you really did intend to erase the current document. 6.10 <> VERIFY Selecting this option enables you to verify that the file held in memory is the same as that which you have saved onto Microdrive or tape. You will be asked to supply the name of the file in memory. The messages VERIFY ERROR or TAPE LOADING ERROR will appear if the verifying is unsuccessful. -- 20 ------- CHAPTER 7 EDIT MENU 7.1 <> General description The following is the EDIT dialogue box: BLOCK copy Page number 1 Delete Include Bell column 60 Write INK 7 RULER PAPER 0 Show <> BRIGHT 0 The right-hand side allows you to define some editing parameters: "page number" defines the number of the first page in the file (this parameter is saved with the file). "Bell column" indicates the column at which the "bell" (similar to that of a typewriter) will sound. INK, PAPER and BRIGHT can be used to change the screen colours (note that the program prevents you from choosing an INK colour equal to the PAPER colour). The ruler line colour is set automatically according with the INK/PAPER values. The RULER option defines whether the ruler lines should be displayed. 7.2 <> Block options The four BLOCK options concern block handling. A block of text is marked with a GRAPHICS M starting character, and a GRAPHICS M ending character. The text between the two markers can be handled using these options. The COPY option copies the marked block of text to the cursor position. The DELETE option clears the block of text, including the two markers. The INCLUDE (or MERGE) option reads a text from Microdrive, and then inserts it at the cursor position. The WRITE option creates a Microdrive file holding the marked block of text. -- 21 ------- * The WRITE/INCLUDE facility (available only with Microdrives) is fundamental to move blocks of blocks of text from one file to another, while COPY can be used to copy blocks within the same document. The following "FILE2": 1. OPEN the file "FILE1" 2. Mark the start and the end of the block with GRAPHICS M 3. Use the WRITE option with the filename "FILEX". 4. OPEN the file "FILE2". 5. Move the cursor where the text should be copied. 6. Use the INCLUDE option with the filename "FILEX". 7. (Eventually) delete the file "FILEX" with "FILE, DELETE" * The WRITE/INCLUDE options can also be used to implement glossaries: 1. OPEN a file named "JANE-ADDR" 2. Type the following text: JANE PLAIN Main House. 5 High Street. London, ZX8 1QL. 3. Use SAVE to save the text 4. Use QUIT to delete the file from memory Now you can recall Jane's address in your letters without having to retype it completely: 1. OPEN a file named "JANE-LETTR" 2. Type the following text: London, April 22nd 1987 3. Instead of writing Jane's address, use the INCLUDE option to load the file JANE-ADDR. 4. After a few seconds the letter will appear as follows: London, April 22nd 1987 JANE PLAIN Main House. 5 High Street. London, ZX8 1QL. -- 22 ------- The JANE-ADDR file can be loaded, modified and saved as a normal file using OPEN and SAVE. It can also be printed on its own, using PRINT, and it will have its own parameters (page length, etc). These parameters will not alter the parameters of the file within which you include the JANE-ADDR file. * WRITE/INCLUDE can also be used to include existing documents within a letter, or to merge two files. * WRITE/INCLUDE can also come in very useful when dealing with the 5 potential documents one can hold in memory at the same time with a 128K Spectrum. By using these features you can effectively "CUT" text out of one of the documents and then "PASTE" it back into one of the other ones. * WRITE/INCLUDE is also very useful when you want to include often used paragraphs or phrases in your document. You might thus want to store on your microdrive such well used items as "Yours sincerely", or "Best Wishes", and by giving them memorable names you can easily and quickly insert them in your text at the cursor position using the INCLUDE option. -- 23 ------- CHAPTER 8 TEXT MENU 8.1 <> General description The TEXT dialogue box is as follows: <> Left <> Centred <> Right <> Justified TEXT FORMAT Left margin 0 Right margin 62 Indent margin 0 Tabs Wordwrap 0 The four "TEXT FORMAT" options allow you to define the text format. The default format is LEFT, which produces left-aligned, right-ragged texts (like this paragraph). The RIGHT option uses a left-ragged, right-aligned format. The JUSTIFIED option uses a left-aligned, right-aligned format. * The CENTRED option centres the text between the two margins. * The left margin value defines the left margin column. The default value is 0. It is advisable not to use a left margin greater than 0, because it will decrease the processing speed and increase the space required to store the file. The indent margin value is automatically set by using this option. * The right margin value defines the right margin column. The default value is 62. It is possible to move the right margin up to the column 127; in that case the screen will scroll sideways when the cursor reaches the screen margin at column 63. It is not possible to set the right and left margins in such a way that there are less than 6 columns in a line. * The indent margin value defines the "autoindent" column: at the beginning of each paragraph the cursor will be automatically moved to that column (i.e. when you press ENTER or SYMBOL SHIFT-CENTRE). The default value is 0, i.e. equal to the left margin value, so as to have no "auto-indentation". The indent column is shown in the ruler line with the symbol '1'. -- 24 ------- * The WORDWRAP option allows you to enable or disable the word-wrap procedure, and all of the automatic formatting procedures. Disable the wordwrap only when you type source listings or any text that requires no formatting operation. 8.2 <> TABS option The TABS option shows the following dialogue box: Erase tab Erase all tabs Set tab Left <> Blank <> Right <> ..... <> Centred <> ----- <> Decimal <> _____ <> TYPE LEADER * The ERASE TAB option allows you to delete a tab. The tab column is first requested (press ENTER to use the cursor column). * ERASE ALL TABS deletes all of the current tabs. * SET TAB allows you to insert a tab of the type specified by the TYPE and LEADER options. Again the column number will be required, and ENTER can be pressed to use the cursor column. * A LEFT tab is the normal one; pressing the tabulate key 'BREAK' the cursor will simply be moved to the tab column. A left tab is shown in the ruler line by the letter L. * A RIGHT tab right-aligns the text that you type to the tab column. You may exit from a right tab either by pressing the tabulate key (BREAK) again or by using any "control key" such as CAPS LOCK or EXTENDED. It is shown in the ruler line by the letter R. * A CENTRED tab centres the text that you type around the tab column. The position of this tab is shown by the letter C in the ruler line. * A DECIMAL tab is similar to a right tab, but it allows the text to be left-aligned following a decimal point '.'. It can be used to align numbers with decimal points to the tab column. It is shown by the letter D. -- 25 ------- * The LEADER options allows you to define the character with which the line will be filled until the tab column. The default option is BLANK that ignores this feature. The "...." option produces tables as follows: Fred .................. 25,000.50 George ................. 1,200.20 The dot leader is automatically inserted pressing the tabulate key, BREAK. The '----' and '____' options will obviously insert the corresponding leader into the space between tabulation positions. You may wish to try to identify the tab types in the following examples: Class Limit Result 129-135 128.5- 135.5 1 115-128 114.5- 128.5 2 101-114 100.5- 114.5 4 95-100 94.5- 100.5 6 87-94 86.5- 94.5 10 Mark ................... 100 12,500.20 David ................... 91 212,300.00 George ................ 1320 6,500.947 Name __________________________ Street __________ Address _______________________ Tel. ____________ Expenses 23,450.50 Income 42,500.20 Tax, various 11,245.14 Profit 7,804.56 -- 26 ------- CHAPTER 9 SEARCH MENU 9.1 <> General description In the SEARCH dialog box you will see the following: Find : ___________________________ Change : ___________________________ <> Whole word OK <> Upper/lower case FIND NEXT CHANGE CURRENT GOTO PAGE 1 9.2 <> Find text The FIND option asks for a string to be searched for within the text. During input you can insert any letter, digit or special character, by eventually entering EXTENDED or GRAPHICS modes. It is possible to insert wild card characters by typing a question mark: '?' within the FIND string. In this way, during searching, all words containing any character in that position will be searched for. For instance, typing "beg?n" as the find string, "begin", "begun" and "began", and so on will be searched for. Typing "???" as the find string, all 3-letter words will be searched for. 9.3 <> Change text The CHANGE option requests a string to replace occurrences of the FIND string. In this case, the character '?' has no "wild card" meaning. It is still possible to type any special character in extended or graphic modes. -- 27 ------- <> Search/replace procedure Using the FIND NEXT option (or the keyboard EXTD-F control), the cursor will be automatically moved to the next occurrence of the FIND string. Note that if WHOLE WORD is enabled, only the occurrences of the find string that are whole words will be accepted. Hence, if the FIND string is "the", FIND NEXT will not find the letters "the" in, for example, "thesis" - it will only look for the whole word "the". Thus with this WHOLE WORD option chosen it will only search for "the" in the following types of case: "the book", "(the book)", "(the) book", "the! book!", "the, book", etc. * If WHOLE WORD is disabled, ALL the occurrences of the find string will be searched for (i.e., if the find string is "he", both "he", "the", "they", "help", etc. will be searched for). * Note that the strings "this is for you" and "thisisforyou", or "this is for you" and "this is for you" are considered as being equals. * The UPPER/LOWER CASE option defines whether the word to be searched for must be equal to the find string as regards upper and lower case letters. Hence, if UPPER/LOWER CASE is enabled, and the FIND string is "bank", the FIND NEXT option will search only for "bank", and not for "Bank", "BANK" or "BAnk". These will be only be searched for if UPPER/LOWER CASE is disabled. * The CHANGE CURRENT option (or the keyboard EXTD-A control) allows you to replace the next occurrence of the find string (or the occurrence pointed by the cursor) with the CHANGE string. This is very useful for replacing only some occurrences of a word with another: if you have typed some names within a letter, preceded by "Dr." and you should instead have typed "Mr.", you may type as FIND text the word "Dr." , and as CHANGE text the word "Mr.". Now use EXTD-F to search for the various occurrences of "Dr.", and EXTD-A to change the required occurrences to "Mr.". Note that the CHANGE algorithm is "intelligent"; type the following text: Good Morning good morning GOOD MORNING -- 28 ------- Now move the cursor to the start of the text using TO (SYMBOL SHIFT F), and select the SEARCH menu. Type "morning" as find string, and "eveNING" as change string. Use EXTD-A three times to replace the occurrences of "morning". The result will be: Good Evening good evening GOOD EVENING * As you have noticed, the CHANGE string has taken on the characteristics of the string that has been found. Repeating the example with UPPER/LOWER CASE enabled, you will see that in all cases the word "EVEning" will be inserted (i.e. same as the specified CHANGE string). * The OK option replaces ALL occurrences of the find string with the change string, starting from the cursor position. It is a FIND AND CHANGE ALL procedure. In this case, the paragraphs containing the replaced text will be automatically reformed according to the current text format (left, right, centered or justified) and the current margins. This procedure stops automatically with an OUT OF MEMORY error message if there is not sufficient memory to insert another CHANGE string (obviously this can only occur if the change string is longer than the find string). *AN IMPORTANT NOTE: If you use the OK option (find and change all) with the FIND string equal to the change string, the program may enter an endless loop. This also happens if you try to search for a string (with WHOLE WORD disabled) and to replace it with another string that holds the find string as a sub-string (i.e. find "a", change to "erasable": the "a" is also present within "erasable", and will be continuously replaced, resulting in an expanding "erererererererererasable" word). Obviously such an operation is absurd. In the rare case that you do it by mistake, you can press BREAK to abort the operation. * The FIND and CHANGE all option may be used to: 1) Change all occurrences of a word to another: i.e. "good" to "beautiful". 2) Add a word to all occurrences of another: i.e. FIND string = "computers", CHANGE string = "computers and typewriters" will add "and typewriters" to all instances of "computers". -- 29 ------- 3) Remove a word from all occurrences of a sentence or phrase; i.e. FIND string = "computers and typewriters", CHANGE string = "computers" will remove "and typewriters" from all occurrences of "computers and typewriters". 4) Delete all occurrences of a word: i.e. if the FIND string = "Fred", CHANGE string blank (just press ENTER), this will delete all of "Fred". 9.5 <> GOTO PAGE option Allows you to move the cursor to the beginning of a given page. If you try to move the cursor to the beginning of an non-existent page, it will be moved to the end of the file. -- 30 ------- CHAPTER 10 FORMAT MENU 10.1 <> General description This is the FORMAT dialogue box: PAGE NUMBER FORMAT <> Numeric <> Roman (upper) <> Roman (lower) <> Alphabetic (upper) <> Alphabetic (lower) Header Footer 10.2 <> Page number format * There are five different formats, selected using the PAGE NUMBER FORMAT option. The default format is NUMERIC. In that case, the page number will be printed with normal arabic numerals, from 1 to 65535. * The ROMAN format prints the page number in Roman numerals, from 1 to 3999. It is possible to choose between upper and lower case roman numerals (i.e. XII and xii). * The ALPHABETIC format prints the page number in alphabetic form: a, b, c, d, ... z, aa, ab, ... Again you can choose between upper and lower case letters. Alphabetic numbers can vary from 1 to 702 (a...zz). * The Roman and alphabetic formats are often used to number introduction and appendix sections of books, manuals, etc. -- 31 ------- <> Header and footer Selecting one of the options header and footer, the following dialogue box will follow: Header (Footer) (Input box) <> Left <> Right <> Centre <> Alternate Margin: 2 * This dialog box allows you to set some parameters related to the insertion of headers and footers in the printed text. * The header/footer text can be inserted selecting the input box, under the "Header" ("Footer") word. The '#' character can be used in the header/footer text and will be converted into the current page number at print time, in the format defined by the PAGE NUMBER FORMAT options. In this way it is possible to type strings such as "#". "Page #", "-#-", that will be printed as "26", "Page 26", "-26-". It is also possible to insert printer control codes (see Chapter 12) to change the print style thus printing the header/footer in bold, or in italic characters. * The four subsequent options define the header/footer print format. The LEFT format prints the header (footer) on the left side of each page, i.e. starting from the left margin column. * The RIGHT format is opposed to the preceding one and, thus, headers or footers are printed on the right side of each page, i.e. with the last character at the right margin column. * The CENTRE format is the default option; headers and footers are printed centred between the current margins. * The ALTERNATE format prints the header/footer on the RIGHT side of each ODD-numbered page, and on the LEFT side of each EVEN-numbered page. This is an often used format, because it means the header and the footer are on the outside edge of each page, if you print on both sides of the paper. -- 32 ------- * The last option, "Margin", defines the lines, within the top margin, in which the header will he printed; or the line, within the bottom margin, in which the footer will he printed. If, as in the default case, the top and bottom margins are three lines in length, we will have: LINE 3 LINE 2 LINE 1 * Using margin=3, the header (or the footer if you have selected the FOOTER option) will he printed on the first line of the top (bottom) margin. In the default case (margin=2), header and footers will be printed in the central line. If top margin=0, the header text will not be printed. Similarly, the footer text will not be printed if bottom margin=0 or footer margin=0. -- 33 ------- CHAPTER 11 HELP MENU 11.1 <> HELP Selecting this menu allows you to read a brief summary of this manual on the screen and is thus very useful when you want to recall how to do something without having to look at this manual itself. The HELP command requires that the program cartridge is inserted in Microdrive (or that the disk is in the drive, in the case of disk versions). Pulling down the HELP menu reveals the following subjects: Control keys FILE menu EDIT menu TEXT menu SEARCH menu FORMAT menu Control characters Mail merge Installation Communication Various You simply have to select one of these using the arrow cursor and the ENTER key in the usual way and then after a few seconds the information wIll appear on the screen. Any key can be pressed to advance to the next page of text and when you have reached the end of that help file, you will be returned to where you were in your document before calling up the HELP option. -- 34 ------- CHAPTER 12 PRINTER CONTROL CHARACTERS The characters GRAPHICS 1, 2, 3, 4, 5, 6, 7, 8 (with or without shift) can be used to insert printer control codes within the text. These will be sent to the printer to change print style, i.e. to emphasize, underline, etc. The following are the default effects of the control characters. Remember that the key WITHOUT CAPS SHIFT ENABLES the style, while the same key WITH CAPS SHIFT DISABLES the style. GRAPHICS 1 - double strike (bold) GRAPHICS 2 - italic GRAPHICS 3 - proportional GRAPHICS 4 - underlined GRAPHICS 5 - condensed (remember <- arrow) GRAPHICS 6 - subscript, ie. H2O GRAPHICS 7 - SUPERSCRIPT, ie. "TM" GRAPHICS 8 - Enlarged The default codes can be modified at will, as will be explained in Chapter 16. Note that the control characters are ignored by the formatting operations: if you insert two control characters in a line, it will be, using for example the JUSTIFIED format, justify two characters past the right margin, so as to have a correct result at printing time. -- 35 ------- CHAPTER 13 PARAGRAPH REFORM 13.1 <> General description After having deleted or modified a piece of text, it is necessary to reform it, so that it has the text in a left, right, centred or justified format again. The AND control key (SYMBOL SHIFT Y) can be used to do this. It reforms the current PARAGRAPH, starting from the cursor line, i.e. to reform a paragraph you should move the cursor to the first line, and then press AND. Note that the first line will be indented according to the "Indent margin" value (see 8.10.) Remember that a paragraph is assumed to be finished when you press ENTER to begin a new line. CAPS SHIFT-ENTER can be used to begin a new line without terminating the paragraph (See 4.2). 13.2 <> Changing the paragraph format If you have typed a paragraph with, for example, a left aligned format, and you want to change that format to right-aligned, without having to re-type the whole paragraph, you must: 1) Select the new text format using the TEXT menu 2) Move the cursor to the first line of the paragraph and use AND Again the first line will be indented (unless the format is "Centred" or "Right"). 13.3 <> Changing paragraph margins To change the margins of an existing paragraph, you can select the new margin values using the TEXT menu, and then press the AND key when the cursor is at the start of the paragraph. 13.4 <> Using the correct format Normally, The Writer formats your text with a left-aligned format, with margins 0 and 62. These are standard values, suitable for printing on standard A4 sheets with 10 cpi spacing. -- 36 ------- As you have seen, it is possible to change the standard values at will, to obtain many graphic results. For example, it is possible to change margins, to emphasize paragraphs (such as this one), or to write texts with more than 63 columns, using the sideways scrolling facility. A maximum of 9-10 pages such as these ones, can be stored in memory, using the default parameters. Using RIGHT or JUSTIFIED text formats, this number will decrease. It is unadvisable to use a non-zero left margin, apart from short paragraphs as the previous one. as the space required to store the text will greatly increase. Using a right margin greater than the standard one, the number of pages will decrease, but the actual amount of text will be the same. -- 37 ------- CHAPTER 14 WIDE DOCUMENTS If your printer allows for more than 80 characters to be printed on each line, you may want to move the right margin past the default column 62. For example, many printers have a "condensed" style that allows more than 100 characters to be printed on each line. Using The Writer you can take advantage of these possibilities without any problem, although a maximum of 64 characters can be displayed on each screen line. If you select the right margin at column 79, you can insert up to 80 characters per line; when the cursor reaches the right edge of the screen, the whole text will scroll sideways. You can insert up to 127 characters per line in this way. Note that the screen is handled transparently to the program execution, i.e. when the screen is sideways scrolled, or updated, the editor will not be slowed down. -- 38 ------- CHAPTER 15 PRINTING TEXT 15.1 <> Introduction * Let us summarise the procedures to be followed to print a text. Refer also to paragraphs 6.4, 6.6, 6.7, and to chapters 10, 12, and 18. * If you are using The Writer for the first time, it is necessary to install the program with your printer and interface. See chapter 16. * After having written and corrected your text using the editor, you can define some parameters to be used at printing time, such as the number of the first page (see 7.1), the page length (6.6), the header and the footer (10.3) In many circumstances the default values will be perfectly suitable. The above-mentioned parameters should be sent BEFORE saving the text on Microdrive or tape, as they are saved with the text. ALWAYS SAVE THE TEXT BEFORE PRINTING IT : if there are any line faults, or synchronising problems, you can return to the initial conditions in a few seconds by OPENing the file again. It is (very rarely) possible using the PRINT option (that operates in a time-sliced multitask system, with semi-critical timing conditions) that there would be a false synchronising with the printer, causing a system crash. The PRINT MERGE option (normal print option, see chapter 18) can also be used to print a document in the same way as PRINT, but there are no timing problems. The only difference is that the text to be printed is taken from Microdrive, and not from memory. So again you must save the text before printing. * To get better graphic results it may be useful to define the page break positions "manually", just before printing the text: it may happen that the automatic page make-up causes something like a table to be printed across two pages. To avoid this, you can go through the beginning of the various pages, using the "SEARCH, GOTO PAGE" option, and insert forced page breaks (SYMBOL SHIFT-ENTER) to change the actual layout. * It is advisable not to save such a modified version of the file, because if you later want to alter the text the forced page breaks would have to be deleted to avoid anomalous page divisions. The automatic page divisions move dynamically as you add or delete lines, so there will always be the same number of lines in each page. * Before calling the PRINT option, you should define the right and the left margin, that will be used for the header/footer printing. Normally, you should use the same margins used to type the text to be printed. Now call the PRINT option and define the various parameters (number of copies, print style, paper type, etc.) - again the default values are often -- 39 ------- suitable). Then select the OK box to start the printing. This will also cause the MONITOR THE PRINTER box to be displayed; the PROCEED option cannot be used to return to editor at reduced print speed, and the TERMINATE option can be used to terminate the printing (if your printer has an internal buffer, the printing may not stop immediately). Otherwise just wait until the end of the printing and select PROCEED. If you use cut sheets, the printing will halt at the end of each page; when you have changed the sheet, select PROCEED to continue printing. 15.2 <> Printing text larger than the textfile If you want to use THE WRITER to write texts longer than 10 pages (more than the maximum memory capacity) you can use the following procedure: 1. Write 7-8 pages of text and define all parameters 2. Save the text 3. Use QUIT to delete the text 4. Use OPEN to change the text name 5. Use "EDIT, PAGE NUMBER" to define the number of the first page in the new block 6. Write another 7-8 pages 7. Back to 2 If you want to write text after having turned off the computer, you should first load any of the previous blocks, and define all of the parameters such as header, footer, etc. Then continue from 3 above. The WRITE/INCLUDE options present in the EDIT menu (7.2) can be very useful at this stage to move blocks of text from [one] file to another. To print the whole text you can use the PRINT MERGE command (normal print option, see 18.3), printing one block at a time. * Printing very large documents using the 128K version: By using a similar method to that above you can arrange to have each of the 5 documents in memory in the 128K version such that the initial page number of the second follows on the from the last one of the first and so on. Then print all 5 files in sequence for one document many pages long. -- 40 ------- CHAPTER 16 INSTALLING THE WRITER 16.1 <> Installation Using THE WRITER for the first time, you must install the copy on cartridge, so as to make it work with your printer and interface. To do this you must load the installation program with the following command: LOAD *"m";1;"install" When the program has been loaded, the following dialogue box appears: Printer driver <> CENTRONICS H80, EPSON Baud rates: 9600 <> DIABLO Decimal: 46 <> CUSTOM EDIT DRIVER INSTALL DRIVER Printer interface <> Interface 1, RS232 <> Kempston, Hilderbay K <> Hilderbay H <> Hilderbay T <> Euroelectronics * Let us look at the various options. The PRINTER INTERFACE options allow you to define the interface used to connect the computer to your printer. The ZX Interface 1 is the default option. * The BAUD RATE option allows you to set the transmission speed of the printer, if the ZX Interface 1 is used. The default value is 9600 baud. * The DECIMAL option defines the "decimal point" code (normally 46, the -- 41 ------- ASCII code for the full stop character). It is possible to modify this value (i.e. inserting ASCII code for the "comma" character, 44), so as to align decimal tabs using a new character. Below PRINTER DRIVER you can select the printer type. The default option installs the program for a CENTRONICS H80, or an EPSON printer. Many dot matrix printers are directly compatible with these. The next option installs the program for a DIABLO daisywheel printer. If you have a different printer, select the CUSTOM option. It works with almost all printers, but it is not possible to use the control codes to change print style. 16.2 <> Editing the printer driver After having selected the required driver, you may want to modify some parameters. To do this, select the EDIT DRIVER option. A dialogue box will then appear, with the driver's name shown at the top of the screen. The following is the dialogue box for the CENTRONICS H80 printer: End of line CR,LF End of page FF Bell BEL,CR Initialisation ESC,"@ Condensed mode ESC,"!,4 NLQ mode ESC,"( Elite mode ESC,"!,1 Emphasised mode ESC,"!,8 GRAPHICS set on ESC,"6 GRAPHICS set off ESC,"7 16.3 <> More codes ... As you may have noticed, the control codes are next to the corresponding printer functions. In the manual of your printer you will find the codes that it requires: if there is a difference, you can easily insert the correct codes. End of line defines the string of codes (max 4) to be sent to the printer to start a new line. Some printers accept only a CR control code, others only a LF code, others both a CR and a LF. -- 42 ------- End of page defines the code (only one code) to be sent to the printer to change page. Almost all printers use the Form Feed code 12, 'FF'. Bell defines the string of codes (max 4) to be sent to the printer to make the printer's buzzer emit a sound (used by The Writer to signal when a page has been printed). Almost all printers use the BEL code. Some need a CR code following the BEL code, as in this case. See the printer manual to identify your case. Initialisation defines the string of codes (max 4) needed to initialise the printer, i.e. to reset any print style and special function selected. This string will be sent to the printer before selecting the "Global" print style (unless you use the IGNORE STYLE option, see 6.7). Condensed mode, NLQ mode, Elite mode, Emphasized mode are the strings of codes (max 4) to be sent to the printer to set the corresponding "global" print styles (see 6.7). If your printer does not have codes to select styles such as NLQ, use others to select a similar style (i.e. Emphasised double strike). After having modified the required parameters, select the MORE CODES option. A further dialogue box will appear: Enlarged on:ESC,"W,1 off:ESC,"W,0 Double strike on:ESC,"G off:ESC,"H Italic on:ESC,"4 off:ESC,"5 Proportional on:ESC,"p,1 off:ESC,"p,0 Underline on:ESC,"-,1 off:ESC."-,0 Condensed on:SI off:DC2 Subscript on:ESC,"S,1 off:ESC,"T Superscript on:ESC,"S,0 off:ESC,"T END Translate codes See codes ASCII: ASCII: Code: Code: * The first eight options can be used to define the strings of codes (max 3) to be sent to the printer to enable (ON) or disable (OFF) the relevant print style; these codes are sent using the printer control codes entered in GRAPHICS mode (see chapter 12). You can set codes related to styles -- 43 ------- different from those stated in the dialogue box; i.e. you can set the Proportional control to enable/disable the Emphasised style: remember that the style has to be selected using the key that you would use to select the Proportional mode (GRAPHICS 3). * The TRANSLATE CODES option is very important for the installation of the character set of your printer. Different printers often require different codes to print the same character. Appendix 3 has a list of the codes sent to the printer to print all The Writer characters. If they correspond to the codes required by your printer to print the same characters, then the program is already compatible with the printer. Otherwise select TRANSLATE CODES. Let us assume that to print the character "ß" (GRAPHICS B, see chapter 5), normally sent as code '225', your printer needs the code '156': after having selected TRANSLATE CODES, type the character GRAPHICS B in response to the first request (the character will not be correctly displayed, but the program will accept it). * To the second request you may either press ENTER to abort the command, or the code that your printer needs to print that character (156 in our example). To check that all is now correct, select the SEE CODES option, and type the character GRAPHICS B. The number 156 will be again displayed as the one that has been successfully defined as the code to be sent to print the "_" character. * You can "translate" ALL printable characters. Not all characters however should be modified. These characters are: GRAPHICS G (Place marker) sent as code 0 (not printed); GRAPHICS M (Block marker) sent as code 0 (not printed); GRAPHICS S (or SYMBOL SHIFT-SPACE, Non-breaking space) sent as code 32 (same as "space") and SPACE, sent as code 32. Having modified all the parameters to suit your printer, use the END option to return to the main dialogue box. You can now either turn off the computer, if you have changed some parameters by mistake, thus leaving everything unchanged, or select the INSTALL DRIVER option. In the latter case the Microdrive 1 (which must still contain the program cartridge) will run for about a minute. During this time you MUST NOT press BREAK or turn off the computer, as this would result in destruction of the program. When the Microdrive light turns off you are within the installed version of The Writer that from now on will use all the new parameters that you have set. If you don't have a Microdrive, and are thus using the Tape version of the program, you can do the installation by typing the command: LOAD "install" -- 44 ------- The program is recorded on side B of the tape, after The Writer. When the program has been loaded, you must rewind the tape to the start and press PLAY on your recorder. When a message appears, you can insert a blank cassette into the recorder and press any key on the Spectrum to record an installed version of the program. 16.4 <> Control codes input format The control codes requested by the installation program can be specified in three modes: 1 - In decimal numeric form, i.e, 13, 10 2 - In ASCII form, using " as delimiter, i.e. "A, "b (or "A", "b") 3 - Using standard ASCII abbreviations: CR, LF It is not possible to enter codes in hex form. This is the list of the standard ASCII abbreviations, along with the corresponding decimal and hex form. NUL 0 00H SDH 1 01H STX 2 02H ETX 3 03H EOT 4 04H ENQ 5 05H ACK 6 06H BEL 7 07H BS 8 08H HT 9 09H LF 10 0AH VT 11 0BH FF 12 0CH CR 13 0DH ST 14 0EH SI 15 0FH DLE 16 I0H DC1 17 11H DC2 18 12H DC3 19 13H DC4 20 14H NAK 21 15H SYN 22 16H ETB 23 17H CAN 24 18H EM 25 19H SUB 26 1AH ESC 27 1BH FS 28 1CH GS 29 1DH RS 30 1EH US 31 1FH The NONE word can be used to cause no codes to be sent to the printer. All the ASCII abbreviations may be specified in upper or lower case: ESC, esc, Esc are equally effective for sending the code 27. -- 45 ------- CHAPTER 17 THE COMMUNICATION PROGRAM 17.1 <> Communicating with other computers THE WRITER comes with a Communication Program that allows you to copy texts from a source to a destination of different type. The possibility of sending a text from The Writer program to another computer and vice versa, or of exchanging texts between programs are among the possible uses of such a program. The communication program is only available using the Microdrive version of THE WRITER. To load the program you should type the following command: LOAD *"m";1;"comm" As soon as the program is loaded, the following dialogue box will appear: THE WRITER COMMUNICATION PROGRAM SOURCE <> ASCII file from RS232 <> ASCII file from tape <> THE WRITER file from drive <> WordStar file from Rs232 DESTINATION <> ASCII file through RS232 <> ASCII tape file <> THE WRITER microdrive file <> WordStar file through RS232 PROCEED Baud rate: 9600 At this stage you can define the source of the text to be transmitted, and the destination of the received text. It is possible to choose any of the four sources, and any of the four destinations; but it is not possible to select a source of the same type as the destination, i.e. source=ASCII file from RS232 and destination = ASCII file through RS232. * The BAUD RATE option can obviously be used to define the transmission speed for the RS232 operations, that will use the RS232 port of the ZX Interface 1. As soon as the options have been chosen, you can select PROCEED to start the procedure. The required filenames, drive -- 46 ------- numbers, etc. eventually necessary, will be requested at this point. Then the transmission will begin. Note that typing a full stop as the first character in a filename for the "ASCII file from tape" option, the first file found on tape will be loaded. During any I/O operation, the border will flash. * Let's look now at the various kinds of source and destination. The "Source=ASCII file from RS232" receives an ASCII file from the RS232 LINK. The file must contain only valid ASCII characters, and the lines must end with CR, LF (paragraph end) or FF (forced page end). The transmission must end with a control-Z character (CHR$ 26), * The "Source=ASCII file from tape" receives an ASCII file from tape. The file format most be without the final control-Z character. The file must have been saved on tape with a command such as SAVE "name" CODE start, length. * The "Source=THE WRITER file from drive" receives a file previously saved with The Writer from Microdrive. * The "Source=WordStar file from RS232" receives ASCII files from RS232 link, in WordStar format, i.e. with two characters CR and LF at the end of each line. For the technically minded, MSBs set will automatically be reset. The file must end with a control-Z characters, CHR$ 26. * The "Destination=ASCII file through RS232" sends the received text as an ASCII file, through the RS232 link. * The "Destination=ASCII tape" file saves the received text on tape, with a format SAVE "name" CODE start, length. * The "Destination=The Writer Microdrive" file sends the received text to Microdrive, in a format suitable to be reloaded with the OPEN command of The Writer. * The "Destination=WordStar file through RS232" sends the received text over the RS232 link, in WordStar format. 17.2 <> Example of transmission WORDSTAR - The Writer To send a text from WORDSTAR to The Writer (using a CP/M version of WordStar): 1. Load the communication program 2. Select SOURCE=WordStar file from RS232 3. Select DESTINATION=THE WRITER Microdrive file 4. Select baud rate compatible with the sending computer 5. Select PROCEED -- 47 ------- 6. Type onto the sending computer the following CP/M command: PIP LST:=FILENAME, EOF: Where LST: is the logical device indicating the RS232 port, FILENAME is the WordStar file to be send, and EOF: allows the transmission to be finished with a control-Z character. 7. The border of the screen should begin to flash; when the transmission is finished, the Microdrive light will turn on to save the received text. Then the computer can be reset. Load THE WRITER and use OPEN to load the received text from Microdrive. 17.3 <> Example of transmission QL - The Writer To send a text from the Sinclair QL computer to The Writer you can use the following procedure: 1. Load the communication program 2. Select SOURCE=ASCII file from RS232 (to receive SuperBasic listings) or WordStar file from RS232 (to receive QL Quill files, saved with the PRINT TO A MICRODRIVE FILE command) 3. Select DESTINATION=THE WRITER Microdrive file 4. Select suitable baud rate (9600) 5. Select PROCEED 6. Type the following SuperBasic command COPY_N mdv1_file TO ser2 where mdv1_file defines the source filename and the drive number. 7. When the transmission is finished, use the following SuperBasic command to send a control-Z character to the Spectrum: OPEN #3,ser2: PRINT #3;chr$(10);chr$(26);: CLOSE #3 8. After a few seconds the file will be on Microdrive, ready to be used by The Writer. -- 48 ------- 17.4 <> Example of transmission The Writer - QL The opposite procedure can be useful, apart from sending The Writer files to the QL, as a system of saving SuperBasic programs on cassette tapes. You can use the previous procedure to save QL SuperBasic programs on tape (using destination=ASCII tape file), and this procedure to reload the program: Source=ASCII file from tape Destination=ASCII file through RS232 Select PROCEED and type on the QL the command "LOAD ser2". When the transmission is finished, press CTRL-SPACE on the QL and the program [The remainder of the sentence wasn't printed. JimG] 17.5 <> Example of transmission tape - The Writer This kind of transmission can be used to send a text created by another Spectrum program to The Writer. The communication program format is: Source=ASCII file from tape Destination=THE WRITER microdrive file The following BASIC program creates an ASCII textfile on tape that can be sent to a file compatible with THE WRITER by using the communication program. 10 CLEAR 32767: LET ADD=32768 20 READ A$ 30 FOR A=1 TO LEN A$ 40 POKE ADD+A-1,CODE A$(A) 50 NEXT A 60 LET ADD=ADD+A-1 70 GOTO 20 80 REM 90 DATA "FIRST LINE OF TEXT",CHR$ 10 100 DATA "SECOND LINE OF TEXT",CHR$ 10 110 DATA "PAGE",CHR$ 12,"CHANGE",CHR$ 10 120 DATA "END",CHR$ 10 -- 49 ------- When the program stops, use the following command: SAVE "name" CODE 32768,ADD-32768 to save the ASCII file on tape. Note that CHR$ 10 can be used to terminate a paragraph and a line, CHR$ 13 to terminate a line, and CHR$ 12 to terminate a paragraph and a page. -- 50 ------- CHAPTER 18 PRINT MERGE OPTION 18.1 <> General description One of the features that makes The Writer such a powerful word processing program is the special PRINT MERGE option, present in the FILE menu. It allows you to print a document stored on Microdrive with mail merge facilities. Almost all good word processors have this capacity, but in rather limited forms. The Writer has a very sophisticated print merge command. With print merge, you can write standard letters without writing any particular information such as addresses, names, etc. This information must be held in a datafile present on Microdrive, created by a BASIC program or by a proper filing program such at The Filer (also available soon from SofTechnics). The records containing the information are then fetched from the Microdrive, and the information is inserted into the printed letter. The number of records present in the datafile determines how many letters will be printed. To indicate where The Writer should insert the information, you can write the field names holding the required information, enclosed between two special characters (GRAPHICS H), in the standard letter. There are no particular limits on the maximum number of fields in the datafile, apart from the fact that each record cannot exceed 6500 bytes in length. The field names can be specified more than once within a line; The Writer will then reform the text (the file on Microdrive will not be modified). 18.2 <> PRINT MERGE menu Selecting the PRINT MERGE (it is necessary to use the Microdrive version of The Writer, that must be present in Microdrive 1), the following dialogue box will appear: TEXT Filename: UNTITLED PROCEED (A to quit) Drive no: 1 RETURN TO EDITOR <> Normal print <> PRINT MERGE <> Continuous form Datafile name: <> Cut sheet -- 51 ------- Drive no: Copies: 1 Print merge format Global print style <> Left <> Justified <> Ignore <> Elite <> Right <> Centred <> Condensed <> NLQ Interface type <> RS232 <> Hilderbay T <> Kempston <> Euroelectr <> Hilderbay H <> Stream 3 18.3 <> Normal print option If this option is selected, the document is printed without using the PRINT MERGE format. This is an alternative to using the PRINT command. The file to be printed must be present on Microdrive and the TEXT option at the top of the dialogue box must first be used to define the filename. * Other selectable options are: "Global print style" to define the print style, "Copies" to define the number of copies to be printed, "Continuous form / cut sheet" to define the paper type, and "Interface type" to select the Interface used to connect the printer to the computer. The RETURN TO EDITOR option can be used to return to the editor (any text will be deleted). * Parameters such as header, footer, etc. are those saved along with the file to be printed. The page number format has to be selected before calling the PRINT MERGE option. Note that the current left and right margins are used, as in the PRINT option, to define the margins of the header and the footer. * To start printing use the PROCEED option. The 'A' key (STOP) can be used to terminate the printing. * The "Print merge format" options have no effect using NORMAL PRINT. -- 52 ------- 18.4 <> Print merge option Selecting the PRINT MERGE option (below "Normal print"), the name of the datafile containing the information to be merged with your text will be requested. The "Print merge format" options can be used to define the format that will be used to reform the printed lines. The other options are definable as for the above-mentioned Normal Print option. Note that using this option the text to be printed MUST have been typed with a LEFT-aligned format. Before calling PRINT MERGE, you should ensure that the current left margin is 0, or is equal to the left margin used to type the text to be printed. The right margin can assume any value in the range: the text will be printed using THAT MARGIN value and not the one used in the text present on Microdrive. It it advisable to always use the default margins 0 and 62, and the default LEFT format, so you don't need to check these details. 18.5 <> Print merge fields The document to be printed with PRINT MERGE can, as explained before, contain the field names placed between two characters GRAPHICS H as delimiters. Each field can have a name made up by letters (there is no difference between upper and lower case letters), digits and underscores. If the last character is '$', THE WRITER will assume that the field is alphanumeric, otherwise it must contain a number or a numeric expression. Some valid names for alphanumeric fields are: `names$` `This_is_a_long_name$` `a$` `Date$` `Variable_1_$` `hello$` Some valid names for numeric fields are: `amount` `the_long-variable` `VAT` Of course, if PRINT MERGE is to correctly substitute the field names with the information, the datafile (see appendix 1 for the datafile structure) must contain the same names referred to in the letter. Note also that the field names can appear more than once within the text -- 53 ------- to be printed, and need not necessarily appear in the same order in which they are defined in the datafile. Now OPEN the file "TEST" on drive 1 and type the following text (remember that the "`" character used to enclose the field names must be typed as GRAPHICS H). 5/5/1987 `Company$` `Name$` `Street$` `Town$`, `County$` `post_code$` Dear `Name$`, As I have already stated in my previous letter of `last-letter$` I should be interested in meeting your representative, `manager$` regarding the project for extending sales to the American market. Please send me details. Yours Sincerely, Fred Bloggs Quick Computers Ltd Save the text on Microdrive with SAVE and exit from THE WRITER using EXTD-B. Now you must create the datafile containing all information to be inserted in the letter. You can use The Filer program, or the Basic program listed in the Appendix 1. Create a datafile called "TEST_DAT", specifying as field names the same names used in the letter: Company$, Name$, Street$, Town$, County$, Post_code$, Last_letter$, Manager$. -- 54 ------- Insert the following three records: 1. Company$= Kerosene and Computers Ltd. Name$= John Black Street$= 971 Regent Street Town$= Worthing County$= Sussex Post_code$= W1 2KK Last_letter$= 12/4/1987 Manager$= Manfred White 2. Company$= Megasoft Name$= Peter Smith Street$= 450 High Street Town$= Exeter County$= Devon Post_code$= HS2 3AC Last_Letter$= 15/4/1987 Manager$= Robert Nichols 3. Company$= Jones Computers Name$= Edward "Frog" Jones Street$= 213 Church Street Town$= Brighton County$= Sussex Post_code$= BR4 6AB Manager$= Paul King After having saved the datafile on Microdrive, load The Writer again and select the PRINT MERGE option, present in the FILE menu. After a few seconds the PRINT MERGE dialog box will appear. Select TEXT FILENAME= TEST and PRINT MERGE and type TEST-DAT as datafile name. Select PROCEED to start printing. You should obtain the following three letters: -- 55 ------- 5/5/1987 Kerosene and Computers Ltd John Black 971 Regent Street Worthing, Sussex W1 2KK Dear John Black, As I have already stated in my previous letter of 12/4/1987, I should be interested in meeting your representative, Manfred White, regarding the project for extending sales to the American market. Please send me details. Yours Sincerely, Fred Bloggs Quick Computers Ltd. 5/5/1987 Megasoft Peter Smith 450 High Street Exeter, Devon HS2 3AC Dear Peter Smith, As I have already stated in my previous letter of 15/4/1987. I should be interested in meeting your representative, Robert Nichols, regarding the project for extending sales to the American market. Please send me details. Yours Sincerely, Fred Bloggs Quick Computers Ltd. 5/5/1987 Jones Computers Edward "Frog" Jones 213 Church Street Brighton, Sussex BR4 6AB Dear Edward "Frog" Jones, As I have already stated in my previous letter of 2/4/1987, I should be interested in meeting your representative, Paul King, regarding the project for extending sales to the American market. Please send me details. Yours Sincerely. Fred Bloggs Quick Computers Ltd. -- 56 ------- You should have noticed that each letter holds the information taken from the datafile instead of the field names and that the text has been reformed according to the selected "Print merge format" (in this case justified). 18.6 <> Simple expressions The previous example has shown the possibility of inserting information coming from a Microdrive datafile within a text to be printed. Very few print merge programs have more features than this. Remember that any print merge command or expression must be enclosed between two GRAPHICS H characters; there must not be any space within the expression, or the printing will stop with an error. It is possible to insert any numeric expression within the text instead of a field name. Instead of `amount` you can specify expressions such as `amount\100`, `amount+nett_price`, `2345+12.276`, `tax/-4E4`, etc. At printing time, the whole expression will be replaced by the result, providing that the expression can he evaluated numerically: an expression such as `name$+100` cannot be evaluated because `name$` is a string. It is also possible to insert logical expressions that will print '1' as the result if they are true, or '0' if [they] are false: `"mystery">name$` will print 1 if the string "mystery" is alphabetically greater than the string held in the `name$` datafile field, otherwise it will print 0. The following are some other valid logic expressions: `"alpha">"beta"` `alpha$+"GOOD MORNING"` `name$+customer$` `100+100` `2*3(3+amount)-constant>tax-12` `string$="a ""good"" book"` -- 57 ------- The last example shows how it is possible to insert the " character within a string by typing it twice. The valid operators to be used in numeric expressions are: + - * / ^ ( ) = > < The valid operators to be used in alphanumeric expressions: = > < This important possibility allows calculations to be made on the data to be inserted into the printed text, i.e. an expression like `amount+amount*0.15` is sufficient to print the value held in the field 'amount', including VAT. 18.7 <> Conditional printing This is the most powerful feature of the PRINT MERGE option. The Writer can determine according to pre-established conditions whether or not to print a piece of text. The condition must be specified using an IF command. `IF price>300.55` ... TEXT ... `ENDIF` The text present between IF and ENDIF (note the characters GRAPHICS H) will be printed only if the number held in the field 'price' is greater than 300.55. The following are valid conditions to be used with IF commands. Remember that IF conditionals cannot be nested. `IF a+10` `IF 2.14*(variable-12)"kilowatt"` `IF a$=b$` `IF logic_variable` The last example shows the possibility of using as an IF argument, a simple numeric expression or a numeric variable. The logic value of the expression will be used, i.e. if the result of the expression is 0, the text between IF and ENDIF will not be printed. In all other cases, it will be printed. -- 58 ------- The IF command allows you to print "customised" letters for each datafile record: for example, the persons that must pay more than a given amount will have a notice of payment printed on the letter; the regular customers will have printed prices with discount, etc. etc. 'IF' has almost limitless possibilities. A different version of the IF structure is the following: `IF a>b` ... TEXT1 ... `ELSE` ... TEXT2 ... `ENDIF` As you might have guessed, the ELSE command allows the conditional printing of one of two pieces of text. If the IF condition is true (in this case, if 'a' is greater than 'b'), then the TEXT1 text will be printed, otherwise the condition is false and the TEXT2 text will be printed. ELSE can also be used to simulate, within an IF structure, the operators <>, >= and <= (not otherwise specifiable). `IF a<>b` can be entered as `IF a=b` `ELSE` `IF a>=b` can be entered as `IF ab` `ELSE` 18.8 <> ASKing and SETting variables Two other commands, ASK and SET, are available. Both request the value to be assigned to a numeric or string variable, that can then be used within any expression as a datafile variable. ASK requests a new value for the variable when a new letter is printed (for each record). SET requests the value once at the start of printing (if you print multiple copies, the value will be requested at the start of each copy). Here's some examples of syntax: ASK string_variable$ * Shows on the screen the "string_variable$" name, and requests the value to be assigned. You can respond with: - a string (remember the quotes!), i.e. "hello", "1/1/1987" - a string variable already defined, i.e. date$, string$ - a number or a numeric expression, i.e. 127, 1.41, 4*(2-12+abc). In this case the variable will hold a string equal to the result of the expression. -- 59 ------- ASK numeric_variable * Again the value to be assigned to the variable is requested. The variable is numeric (i.e. the last character of the name is not '$'), and so you can respond with: - a number (i.e. 15, 4E4, -2.34561) - a numeric expression with or without variables (i.e. 14+1, (2*(4+2*amount)-6)/0.44, start+length, etc.) - a logic expression (i.e. "good ">", value=loss, 1>n, "Fred">name$, etc.) The variable will hold the result of the given numeric expression. If any reference to a datafile variable is made in the expression, the result will be recalculated as soon as a new record is loaded to print a new letter. * SET has the same syntax as ASK, but it requests the value of the variable only once at the start of the printing, and not for each record. SET can be used to define any fixed parameters such as the date to be printed in the letter (SET date$). * Two definitions for the same variable are accepted (i.e. two ASK commands for the same variable in the same letter), but only the first definition will be used. You can also use ASK to set all variables to be used in the text, without having to create a datafile. In this case you should specify the name "NULL_DAT" as "Datafile name": it is a null datafile recorded in the program cartridge. Define the number of letters to be printed with the "Copies" option. There are up to 300 bytes available for the SET variable definitions, and 300 bytes for the ASK variables (about 15 variables for each type). If you exceed this limit, the OUT OF MEMORY error will result. -- 60 ------- 18.9 <> Various notes about print merge Remember that all of the expressions and commands for the print merge command must be enclosed between two GRAPHICS H characters. There should be no spaces present within numeric expressions i.e. `1+2` is valid, but `1 + 2` is not. All string variables must end with the '$' character. All "end of line" characters are ignored within a print merge command. All evaluation errors are reported with C Nonsense in BASIC - Use RUN to return to the print merge dialog box. 18.10 <> Printing to a Microdrive file It is possible to print to a Microdrive file instead of to a printer, if either the NORMAL PRINT or the PRINT MERGE options are used. The following command must he used before loading The Writer: OPEN #3;"m";1;"FILENAME" Having loaded The Writer with LOAD *"m";1;"run", you must call the PRINT MERGE dialog box, select "Interface type=STREAM 3" (that sends the printing to the opened Microdrive file). When the printing is finished, use RETURN TO EDITOR, and the EXTD_B control. Finally use the Basic command CLOSE #3, and the Microdrive file will be ready to be examined or printed with MOVE *"m";1;"FILENAME" to "B"). 18.11 <> Printing with ZX Printer The ZX Printer can be used selecting the STREAM 3 option of the PRINT MERGE command. The "Install" program must have been used to install the program with the "CUSTOM" printer driver, with CR as end of line code, CR as end of page code. and NONE for all remaining control codes. Write your texts using margins 0 and 31, and with Paper left margin=0. -- 61 ------- APPENDIX 1 PRINT MERGE DATAFILE FORMAT A datafile compatible with the PRINT MERGE option must have the following format: DEFB "Field_name_1",0 DEFB "Field_name_2",0 DEFB "Field_name_3",0 ... etc DEFB "Last_field_name",1 DEFB "Record 1, Field 1",0 DEFB "Record 1, Field 2",0 DEFB "Record 1, Field 3",0 ... etc DEFB "Record 1, last_field",1 DEFB "Record 2, Field 1",0 ... etc DEFB "Last_record, last_field",1 DEFB 2 To create datafiles you can use the program The Filer, or the following BASIC program: 100 REM Datafile creator 110 REM 120 CLEAR#: cls#: INPUT "Filename? ";a$: OPEN #4;*"m";1;a$ 130 INPUT "How many fields? ";nf: IF nf<1 THEN GO TO 130 140 DIM b$(nf,32): FOR a=1 TO nf 150 INPUT "Field name ";(a);"? ";LINE c$ 160 LET b$(a)=c$: PRINT #4;c$; 170 IF a=nf THEN PRINT #4;CHR$ 1;: GO TO 190 110 PRINT #4;CHR$ 0; 190 NEXT a: LET rec=1 200 FOR a=1 TO nf: CLS: PRINT "Record ";rec 210 INPUT (b$(a));"? ";LINE c$: IF c$=CHR$ 226 AND a=1 THEN GO TO 270 220 PRINT #4;c$; 230 IF a=nf THEN PRINT #4;CHR$ 1;: GO TO 250 240 PRINT #4;CHR$ 0; 250 NEXT a 260 LET rec=rec+1: GO TO 200 270 PRINT #4;CHR$ 2;: CLOSE #4 -- 62 ------- Simply type the datafile name at the first request, the number of fields, and the field name (remember the '$' for alphanumeric fields). Finally you should insert the records. When the last record has been typed, respond with the keyword STOP (SYMBOL SHIFT A). Note that numeric field contents must not refer to any variable. -- 63 ------- APPENDIX 2 THE WRITER COMMAND SUMMARY FILE MENU Delete Director Input/Output Tape Microdrive Monitor the printer Terminate Proceed Open Paper Left margin Top margin Bottom margin Page length Print OK Ignore style Emphasised Elite Condensed NLQ Copies Priority Paper Continuous Cut sheet Pages All Range Print Merge Text Filename Drive number Proceed Return to editor Normal Print -- 64 ------- Print merge Datafile name Drive number Continuous form Cut sheet Copies Print merge format Left Right Justified Centred Global print style Ignore Condensed Emphasised Elite NLQ Interface type RS232 Kempston Hilderbay H Hilderbay T Euroelect Stream 3 Quit Save Verify EDIT MENU Block Copy Delete Include Write Ruler Show Page number Bell column INK PAPER BRIGHT -- 65 ------- TEXT MENU Text format Left Right Centred Justified Left margin Right margin Indent margin Tabs Erase tab Erase all tabs Set tab Type Left Right Centred Decimal Leader Blank ..... ----- _____ Wordwrap SEARCH MENU Find Change Whole word Upper/lower case OK (find and change all) Find next Change current Goto page -- 66 ------- FORMAT MENU Page number format Numeric Roman (upper) Roman (lower) Alphabetic (upper) Alphabetic (lower) Header Header text Left Centre Right Alternate Margin Footer Footer text Left Centre Right Alternate Margin HELP MENU Control keys FILE EDIT TEXT SEARCH FORMAT Control characters Mail merge Installation Communications Various -- 67 ------- APPENDIX 3 THE WRITER CHARACTER SET The following is a list of all of the characters that can be found within a The Writer textfile. The code sent to the printer using the "H80/EPSON", "DIABLO" or "CUSTOM" driver is listed for each character. These codes can be modified using the installation program. CHARACTER CODE H80 CODE DIABLO CODE CUSTOM CODE ENTER 10 13, 10 13, 10 13, 10 CS ENTER 13 13, 10 13, 10 13, 10 SS ENTER 12 12 12 12 space 32 32 32 32 ! 33 33 33 33 " 34 34 34 34 # 35 35 35 35 $ 36 36 36 36 % 37 37 37 37 & 38 38 38 38 ' 39 39 39 39 ( 40 40 40 40 ) 41 41 41 41 * 42 42 42 42 + 43 43 43 43 , 44 44 44 44 - 45 45 45 45 . 46 46 46 46 / 47 47 47 47 0 48 48 48 48 1 49 49 49 49 2 50 50 50 50 3 51 51 51 51 4 52 52 52 52 5 53 53 53 53 6 54 54 54 54 7 55 55 55 55 8 56 56 56 56 9 57 57 57 57 : 58 58 58 58 ; 59 59 59 59 -- 68 ------- CHARACTER CODE H80 CODE DIABLO CODE CUSTOM CODE < 60 60 60 60 = 61 61 61 61 > 62 62 62 62 ? 63 63 63 63 @ 64 64 64 64 A 65 65 65 65 B 66 66 66 66 C 67 67 67 67 D 68 68 68 68 E 69 69 69 69 F 70 70 70 70 G 71 71 71 71 H 72 72 72 72 I 73 73 73 73 J 74 74 74 74 K 75 75 75 75 L 76 76 76 76 M 77 77 77 77 N 78 78 78 78 O 79 79 79 79 P 80 80 80 80 Q 81 81 81 81 R 82 82 82 82 S 83 83 83 83 T 84 84 84 84 U 85 85 85 85 V 86 86 86 86 W 87 87 87 87 X 88 88 88 88 Y 89 89 89 89 Z 90 90 90 90 [ 91 91 91 91 | 92 92 92 92 ] 93 93 93 93 ^ 94 94 94 94 _ 95 95 95 95 # 96 156 35 35 a 97 97 97 97 b 98 98 98 98 c 99 99 99 99 -- 69 ------- CHARACTER CODE H80 CODE DIABLO CODE CUSTOM CODE d 100 100 100 100 e 101 101 101 101 f 102 102 102 102 g 103 103 103 103 h 104 104 104 104 i 105 105 105 105 j 106 106 106 106 k 107 107 107 107 l 108 108 108 108 m 109 109 109 109 n 110 110 110 110 o 111 111 111 111 p 112 112 112 112 q 113 113 113 113 r 114 114 114 114 s 115 115 115 115 t 116 116 116 116 u 117 117 117 117 v 118 118 118 118 w 119 119 119 119 x 120 120 120 120 y 121 121 121 121 z 122 122 122 122 { 123 123 123 123 \ 124 124 124 124 } 125 125 125 125 ~ 126 126 126 126 copyright 127 127 127 127 GRP-A 144 133 32 32 GRP-B 145 225 32 32 GRP-C 146 135 32 32 GRP-D 147 173 32 32 GRP-E 148 138 32 32 GRP-F 149 128 32 32 GRP-G 150 0 0 0 GRP-H 151 96 32 32 GRP-I 152 141 32 32 GRP-J 153 129 32 32 GRP-K 154 248 32 32 GRP-L 155 148 32 32 -- 70 ------- CHARACTER CODE H80 CODE DIABLO CODE CUSTOM CODE GRP-M 156 0 0 0 GRP-N 157 164 32 32 GRP-O 158 149 32 32 GRP-P 159 158 32 32 GRP-Q 160 132 32 32 GRP-R 161 130 32 32 GRP-S 162 32 32 32 GRP-T 163 168 32 32 GRP-U 164 151 32 32 APPENDIX 4 CONTROL KEYS SUMMARY (EXTD-EXTENDED, GRPH-GRAPHICS, CS-CAPS SHIFT, SS-SYMBOL SHIFT) 00 EXTD-CS-8 Cursor right 01 EXTD-CS-9 GRAPHICS on/off 02 EXTD-8 Move to next paragraph 04 CS-3 Move to previous word 05 CS-4 Move to next word 06 CS-2 CAPS LOCK on/off 07 CS-1 EDIT 08 CS-5 Cursor left 09 CS-8 Cursor right 0A CS-6 Cursor down 0B CS-7 Cursor up 0C CS-0 Delete 0D ENTER "Hard" CR 0E CS-SS EXTD mode on/off 0F CS-9 GRAPHICS mode on/off 10 EXTD-0,SS-ENTER Forced page break 11 EXTD-1,CS-ENTER "Soft" CR 18 EXTD-CS-0 Delete 19 EXTD-CS-1 Edit 1A EXTD-CS-2 CAPS LOCK on/off 1B EXTD-CS-3 Move to previous word 1C EXTD-CS-4 Move to next word 1D EXTD-CS-5 Cursor left 1E EXTD-CS-6 Cursor down 1F EXTD-CS-7 Cursor up -- 71 ------- 96 GRPH-G Place marker 97 GRPH-H Print merge delimiter 9C GRPH-M Block marker A2 GRPH-S,SS-SPACE Non-breaking space A5 EXTD-T,GRPH-V Justify current line AC AT (SS-1) Fast scroll up B1 EXTD-K Go to block marker B4 EXTD-E Right align current line BA EXTD-R Left align current line BC EXTD-F Find next occurrence BD EXTD-G Go to marker C3 NOT (SS-S) Delete line C4 EXTD-B Return to BASIC C5 OR (SS-U) Fast scroll down C6 AND (SS-Y) Paragraph reform C7 <= (SS-Q) Move to start of line C8 >= (SS-E) Move to end of line C9 <> (SS-W) Centre current line CB THEN (SS-G) Move to end of file CC TO (SS-F) Move to start of file CD STEP (SS-D) Delete current character E0 EXTD-C Copy marked block E2 STOP (SS-A) Delete current word E3 EXTD-A Change current occurrence E4 EXTD-D Delete marked block APPENDIX 5 PRINTER CONTROL CODES Key Code Meaning H80 DIABLO GRP-1 81H Double strike ESC,"G" ESC,"0" GRP-CS-1 8EH "" "" "" off ESC,"H" ESC,"&" GRP-2 82H Italic on ESC,"4" ---- GRP-CS-2 8DH "" "" "" off ESC,"5" ---- GRP-3 83H Proportional ESC,"p",1 ---- GRP-CS-3 8CH "" "" "" off ESC,"p",0 ---- GRP-4 84H Underlined ESC,"-",1 ESC,"E" GRP-CS-4 8BH "" "" "" off ESC,"-",0 ESC,"R" -- 72 ------- GRP-5 85H Condensed SI ---- GRP-CS-5 8AH "" "" "" off DC2 ---- GRP-6 86H Subscript ESC,"S",1 ---- GRP-CS-6 89H "" "" "" off ESC,"T" ---- GRP-7 87H Superscript ESC,"S",0 ---- GRP-CS-7 88H "" "" "" off ESC,"T" ---- GRP-8 80H Enlarged ESC,"W",1 ---- GRP-CS-8 8FH "" "" "" off ESC,"W",0 ---- APPENDIX 6 TASWORD FILES The Writer is able to read any TASWORD II(tm) file by first translating it into Writer compatible form using the program on the tape (or Microdrive) called "CONV" (or "conv"). The first step is to load in this file thus: LOAD "conv" (for tape versions) or: LOAD *"m";1;"conv" (for microdrive versions) Once loaded the program will be in a state expecting you to load in a machine-code file of TASWORD II compatible text (that is, a normally saved TASWORD II text-file). When this text has been loaded in by the conversion program it will pause momentarily whilst it converts all the TASWORD control characters etc to Writer ones, and then pressing a key will SAVE the Writer compatible version of the file out onto the medium you are using (tape or microdrive). * 48K and 128K file compatibility: It is well to note here too that 48K Spectrum files of Writer documents are fully compatible with each of the 5 documents in the 128K version. -- 73 ------- INDEX Word processing with The Writer 1 Getting started 2 Saving text 7 Editing and formatting 10 INSERT and OVERWRITE modes 10 Carriage return 10 Cursor movement 10 Delete 11 Fast cursor movement 11 Word/line deletion 11 Cursor movement to start/end of line 12 Centre line 12 Paragraph reform 12 Return to Basic 12 Copy/Delete marked blocks of text 12 Find/Replace next occurrence of string 12 Go to position marker/block marker 13 Justify/left align/right align line 13 Move to text tabulation 13 Line spacing 13 Setting the Ruler 13 Special characters 15 FILE menu 16 DELETE option 16 DIRECTORY option 16 INPUT/OUTPUT option 16 MONITOR THE PRINTER option 16 OPEN option 17 PAPER option 17 PRINT option 18 PRINT MERGE option 20 QUIT option 20 SAVE option 20 VERIFY option 20 EDIT menu 21 General description 21 Block options 21 WRITE/INCLUDE 22 TEXT menu 24 General description 24 TABS option 25 SEARCH menu 27 General description 27 Find text 27 Change text 27 -- 74 ------- Search/Replace procedure 28 Go to page option 30 FORMAT menu 31 General description 31 Page number format 31 Header and footer 32 HELP menu 34 Printer control characters 35 Paragraph reform 36 General description 36 Changing the paragraph format 36 Changing paragraph margins 36 Using the correct format 36 Wide documents 38 Printing a text 39 Printing text larger than the textfile 40 Installing The Writer 41 Editing the printer driver 42 Control codes input format 45 Communication program 46 Example of transmission WORDSTAR-The Writer 47 Example of transmission QL-The Writer 48 Example of transmission The Writer-QL 49 Example of transmission Tape-The Writer 49 Print merge option 51 General description 51 PRINT MERGE menu 51 Normal print option 52 Print merge option 53 Print merge fields 53 Simple expressions 57 Conditional print 58 ASKing and SETting variables 59 Various notes about print merge 61 Printing to a microdrive file 61 Printing with ZX printer 61 APPENDICES; 1 Print merge datafile format 62 2 The Writer command summary 64 3 The Writer character set 68 4 Control keys summary 71 5 Printer control codes 72 6 TASWORD II File Conversion 73 -- 75 -------