Cambridge Computer Z88 Portable Computer

· Model Z88 · 258 pages

User guide for the Z88 portable computer, covering setup, the PipeDream application, Diary, popdown utilities (Calculator, Calendar, Clock, Alarm, Filer, Panel, Import/Export), BBC BASIC, the Terminal, PrinterEd, and reference sections for each.

Find parts for this model

Frequently Asked Questions

What batteries does the Z88 require?

Four alkaline cells, size AA, type MN1500 or LR6. Other types of the same size can be used in an emergency, but leak-resistant alkaline cells are recommended as they keep the Z88 working longer without needing replacement.

How long will the batteries last?

With alkaline batteries, an unexpanded Z88 will give about 20 hours of active computing, and data will be preserved in the machine while switched off for up to a year. For heavy indoor use, the mains power unit is recommended.

How do I perform a hard reset to initialise the Z88?

Open the transparent cover to the card slots, locate the reset button behind a hole on the left-hand edge of the case, turn the contrast control fully clockwise, press the reset button twice using an unbent paperclip, then close the card slot cover. The screen should display a dark blue rectangle, and you can then turn back the contrast control until the screen is clear.

How do I set the correct date and time?

Press DT to enter the Clock popdown, press the Set option, then use the cursor keys to move between the time and date fields and along individual digits. Type the correct values using the numeric keys, press ENTER to confirm, and press Esc to exit the Clock.

How do I switch the Z88 off and on?

Press both SHIFT keys simultaneously to switch the Z88 off, and press both SHIFT keys simultaneously again to switch it back on. The machine will also automatically switch off after several minutes of inactivity to conserve power.

What is the difference between applications and popdowns on the Z88?

Applications, such as PipeDream, the Diary, BBC BASIC, the Terminal, and PrinterEd, are used for main tasks like writing text, calculations, or organising information. Popdowns, such as the Calculator, Calendar, Clock, Alarm, Filer, Panel, and Index, perform simpler tasks and can be called up from within any application without breaking off from what you are doing.

Manual text content

' I I I I I I I I I Z88 USER GUIDE (Ron Rf L. rJD. � Aooo3) ii I I t I t I I I I I I INTRODUCTION TUTORIAL REFERENCE CONTENTS Section One - Getting started Introducing the Z88 Up and running The Z88 applications and popdowns Basic concepts Section Two - Using PipeDream Starting PipeDream Designing a party invitation Compiling a name and address list Calculating home expenses Section Three - Using the Diary Section Four - Using the popdowns The Calculator - D R The Calendar - D C The Clock - D T The Alarm - D A The Filer - D F The Panel - D S Import/Export - DX The Index - llNDEXI Section Five - PipeDream reference Operations on blocks of slots - BLOCKS Moving about the document - CURSOR Editing text and expressions - EDIT Working with files - FILES Altering the document layout - LAYOUT Document options - OPTIONS Printing documents - PRINT Expression slots 3 4 6 1 1 1 5 31 3 2 3 7 4 6 5 6 6 5 69 70 75 77 78 80 87 90 92 103 104 1 14 1 1 8 1 2 5 1 3 1 1 3 8 146 1 5 0 vi CONTENTS Section Six - The Diary reference 161 Operations on a block of text - BLOCKS 162 Moving around the Diary - CURSOR 166 Editing the Diary - EDIT 170 Loading and saving - FILES 172 Section Seven - Filer reference 175 Section Eight - The Terminal 185 Section Nine - The Printer Editor 187 Section Ten - BBC BASIC 195 BASIC keywords 199 BASIC operators 223 APPENDICES Appendix A - Replacing batteries 229 Appendix B - Serial port 23 1 Appendix C - Error messages 233 Appendix D - Z88 character set 237 Appendix E - PipeDream file format 240 Appendix F - Z88 specification 243 Index 245 I I INTRODUCTION Section One - Getting start e d Introducing the Z88 Conventions in this manual Up and running Fitting batteries Inserting the batteries Initialise the 288 Adjust the display Set the clock Try typing text Switch off The Z88 applications and popdowns The applications The popdowns Basic concepts The keyboard The Index Entering an application Suspended activities Using menus Short cuts - ¢ Line editing Memory low condition Soft and hard reset Help 3 4 4 6 6 7 8 8 9 9 1 0 1 1 1 1 1 3 1 5 1 5 1 8 1 9 20 20 23 24 24 24 2 5 2 Section One Getting started Start here to find out how to get your 288 working for you. This section contains four introductory chapters : Introducing the Z88 gives a foretaste of what the 288 can do. Up and running explains how to insert batteries, switch on, and start writing your first document on the 288. The Z88 applications and popdowns describes the programs provided in the 288, to help you decide which you want to learn about first. These are then explained more fully in the later sections. Basic concepts explains a little more about the components of the 288 : the keyboard, the display, and how the functions work. Introducing the Z88 The Z88 is a unique computer for several reasons . For the first time in a machine of its size and portability it offers you a powerful productivity tool, PipeDream, capable of tackling the most demanding applications and providing all the capabilities normally only obtained by working with separate programs on much larger computers ; it combines in one program most facilities provided by the best word processors , database programs , and spreadsheets. To complement PipeDream, the Z88 comes complete with a range of utility programs, designed to anticipate any task you might wish to perform in the home or office ; these include a clock, calculator, diary and organiser, and an alarm reminder. The Z88 also avoids the problems of storing documents and applications long-term by providing battery-powered circuitry which will retain all the information in the computer for over a year while it is switched off. The batteries also maintain the correct time and date in an internal clock and calendar. In addition, communication with larger computers is catered for by built in transfer programs. In no time , the Z88 will revolutionise your life by making it possible for you to work with the tools you need, wherever and whenever you want . Conventions in this manual In this manual, anything displayed on the Z88 screen is shown in a computer typeface, such as N aMe o f f i l e t o s ave Anything that you should type at the keyboard is shown in a different typeface to designate the keyboard keys ; for example Y o u a r e i nv i t e d t o a p a r ty t I I I I I I I I I I Introducing the ZBB The keys on the keyboard with a special function are shown in the text with key legends. So, for example, if you are asked to type my f i l e IENTERI you would actually type the letters m y f i l e and then press the IENTERI key. In general, references to menu headings are in bold caps ; for example LAYOUT References to individual commands are in bold; for example Save or Load. References to options displayed by a command are in italics ; for example Save only range of columns. 5 Up and running Fitting batteries This section will explain how to get your Z88 working for you as soon as possible. Once you have tried out the simple examples in the next few pages you should have a feel for what the Z88 can do for you, before proceeding to the later sections at your leisure. To run the Z88 you will need the following batteries : • Four alkaline cells , Size AA , type M N 1 500 or LR6 . Other types of the same size can be used in an emergency, but we recommend the use of the leak-resistant alkaline type as these will keep your Z88 working for longer without needing replacement. With these batteries an unexpanded Z88 will give about 20 hours of active computing, and the data will be preserved in the machine while it is switched off for up to a year. For heavy indoor use the mains power unit is recommended. Note that the procedure described here is not the same as the one for replacing existing batteries. In this case refer to Appendix A. t I I I I I I I I I I I I I I I I I I I I I Up and running Inserting the batteries The four batteries are housed in a row in the battery compartment, under a flap on the rear of the Z88 case. To insert batteries for the first time, use the following procedure : © Remove the cover from the battery compartment on the back of the Z88 case, and insert one battery at each end of the compartment. Make sure the batteries are fitted the correct way round, as indicated by the diagram in the battery compartment. I •·•·•····· � 8 / >· GD ® Insert the remaining two batteries to make an 'A' shape above the case. Make sure that all four batteries are facing in the same direction, with the correct polarity. Then push down on the two batteries so that they click into place. ® Replace the battery compartment cover firmly. 7 8 Initialise the Z88 <D Open the transparent cover to the card slots. ® Locate the reset button, which is situated behind a hole on the left-hand edge of the Z88 case. Adjust the display <D Tum the contrast control as far towards the top of the Z88 case as it will go (ie clockwise}. , Z88 ® P r ess the reset button twice, using an unbent paperclip to reach into the hole. © Close the card slot cover. This gives a hard reset, initialising the Z88 to make it ready for use . ---@ I � u + Reset � + Contrast I I ® The screen should display a dark blue rectangle. Z88 Section One - Getting started r Z88 __. _____ ® Gradually turn back the control until you can see t:ne Z88 screen clearly. Z88 INOEX r COMMANDS N.=tME KEY YOUlit 1�www �.··· - Pi�eDrur. P-- BAS!C ca C<11l cul nor cR Caltndu cc Cl oc� cr I I I I t I I I I I I I I I I I I I I Up and running Set the clock When you first install batteries you will need to use the Clock popdown to set the correct date and time using the following procedure: G) Press DT to enter the clock popdown. ® Press O to highlight the Set option: CLOCK Tuesday 1 7th M ar c h 1987 00:00:57 EXIT ED Try typing text G) Hold down the o key (at the bottom left of the keyboard) and press the P key, to enter PipeDream. Al •••••••••••.,•••••••••••••,.••U• A . I I I I I I lmFlllll'=>+q:• ® Press IENTERI to enter the Set function, which displays the previous (incorrect) date and time, and will allow you to alter these to their correct values : U?/ 0 3/ 1 987 NEW TIME 00: 01:15 You can move the cursor between the time and date with 'O and D. You can also move the cursor left and right along the digits with the ¢J and O keys. Moving off the end of the date will position the cursor on the time, and vice versa. ® Type De a r S i r , at the keyboard. Press the � key to delete mistakes. If you type more than will fit o n one line, PipeDream will automatically lay out the text for you. Al n•••••••••••u•••••••••• .. •••••• A I 1 1 1 1 I I Dear Sir, g •:fifiSiJWJl"UIA 9 ©Having positioned the cursor, simply type the correct time or date, using the numeric keys 0 to 9. The format of the new time and date should not change; if you type over the ' I ' or ' : ' signs, move the cursor back with the ¢J key and replace them. When you have set the correct values , press IENTERI to confirm them, and after about two seconds the correct time and date will be displayed. Finally, press IEscl to exit from the Clock. ® Return to the Index by pressing the llNDEXI key. Your letter will be kept as a suspended activity ; go back to it by pressing DP again . You are now ready to proceed with the examples of using the 288 in the following sections . 1 0 Switch off There is usually no need to worry about switching your Z88 off. If you do not type anything for several minutes the machine will automatically switch off to conserve power. You should always switch your Z88 off before, for example, carrying it in a briefcase. This is because the keys may get pressed, disturbing what you were in the middle of doing, or keeping the Z88 on and wasting the batteries. To switch off press both ISHIFTI keys simultaneously. Section One - Getting started To switch the Z88 on again at any time, press both ISHIFTI keys simultaneously. The Z88 applications and popdowns The applications The 288 comes with two types of built-in program, called applications and popdowns. For most of your work, you will probably use the applications, for writing text, setting up financial calculations , or organising information and appointments . The popdowns perform simpler tasks , and are equivalent to desktop tools . They can be called up from within any application whenever you need them, and in the cases of the alarm clock, calculator and calendar, will generally be most useful for making a rapid check or record of information. So , in the middle of typing a letter , for example, you could use the Calculator to perform a quick calculation, and then return immediately to the letter. You can keep several unfinished documents in your 288 at once : when you return to one of them to continue working on it , everything will be exactly as you left it . The 288 is designed to leave you free to do things in whatever order you wish, and whenever you want . It does the work, and leaves you free to get on with the thinking. The next few pages will give an overview of what the 288 applications and popdowns can do. The TUTORIAL, in Sections Two, Three , and Four, then gives fuller descriptions of each application and popdown, with examples of their use. The following applications are provided in the 288: Creating documents - PipeDream A typewriter may enable you to type in text, correct mistakes as you type them, and underline text, but as soon as you need to make revisions , you inevitably have to retype parts of what you have already written. In PipeDream you can carry out proof corrections , sorting operations , and complex calculations with a few keystrokes , without you having to retype any of the text . 12 Section One - Getting Started Some facilities, such as the ability to move blocks of text around, will be familiar to anyone who has already used another word processor. Other features, like the ability to put a list of items into numerical order or the ability to perform calculations on tables of values, are normally only found on specialist pieces of software specifically designed for these tasks. Organising your time - Diary The Diary program provides a quick way of organising events, and keeping day-to-day information, such as expenses. Like a desktop diary, there is a page for each day, on which you can write engagements and other information. But the ZBB diary also caters for the likelihood that you might want to find something you wrote down on a previous occasion; if you cannot remember even the month of a particular exhibition, just search for 'exhibition' and the Diary will find the page for you. You can also print out entries of a certain type, which makes it easy to produce expense claims, or worksheets. Writing a program - BBC BASIC The ZBB comes complete with the BBC BASIC programming language which will allow you to program the computer to carry out sequences of instructions. For example, if you wanted to process some complicated statistical data, or convert the format of a file, the simplest way to do this might be to write a program using BBC BASIC . BBC BASIC is also an ideal language for learning to program, and many books on programming are available for use with it . Talking to another computer - Terminal The Terminal application allows you to set up a conversation with another computer, using the VT52 standard. With a modem, this will allow you to access information databases via a telephone line. Create a printer driver - PrinterEd The applications will print on any serial printer connected to the ZBB, but to make full use of a particular printer's capabilities, such as special fonts and highlighting features, you may want to create your own driver selecting whichever features you require. The PrinterEd application makes this a simple task. I I I I I I I I I I The ZBB applications and popdowns The popdowns Popdowns are programs you can call from within an application, to perform a service without breaking off from what you are doing. Managing resources - Index 1 3 The Index popdown is the key t o all other Z 8 8 applications and popdowns . From here you can call any other application or popdown, or resume an activity you suspended on a previous occasion. The Index also contains the Card Manager, which shows what memory cards or plug-in applications are present in the Z 8 8 , and allows you to insert or remove cards. Performing rapid calculations - Calculator You can use the Calculator to make quick calculations - even if you are in the middle of doing something else at the time. Its feau . .JPs mclude ten memories, and a units-conversion facility. So, for examp1e, y o u can convert from litres to gallons with a few key-presses . Looking up dates - Calendar The Calendar means that you can plan your appointments for the corning weeks at a glance; and when you need to make a Diary entry, you can use the Calendar with the Diary to find the day you want immediately (see p. 68 for details) . Knowing the time - Clock The Clock will show you the time and date instantly, without your having to look away from whatever else you are doing. All files and suspended activities are labelled with the time and date, so be sure that you have set the clock before you use the Z88. Remembering appointments - Alarm The Alarm application allows you to set up a number of alarm reminders, with a given time and, if required, date. Each reminder can include a message, and reminders can be programmed to alert you at the same time every day, month, or other interval. You can even set the alarm to run a program. 1 4 Section One - Getting Started Working with files - Filer The Filer gives you access to the Z88 filing system, where you can store documents and BBC BASIC programs in the Z88 RAM , or for more permanent storage on an EPROM card. Although the filing system supports a flexible hierarchical directory structure, for simple applications directories can be ignored. Customise the Z88 - Panel The Panel is a set of controls for the Z88, allowing you to tailor the way that the keyboard, filing system, sound, and serial interface work to your own preferences . Transferring files to another computer - Import/Export The Import/Export popdown enables you to transfer documents to or from another computer, using a simple set of commands. Basic concepts The keyboard Before trying an application on the 288, you need to be familiar with the basic concepts which are common to all applications . These involve selecting what you want to do, be it running an application or performing an operation within an application, and then carrying it out with the appropriate command from the keyboard. The Z88 keyboard looks like a normal typewriter keyboard with the familiar qwerty arrangement of letters . There are some additional keys on each side of the keyboard which have the special functions explained below. The letter and number keys Press the letter keys alone to give the lower-case letters , or with ISHIFTI to get capitals. You can get capitals without needing to hold down ISHIFTI by pressing ICAPSLOCKI - see below. Press the digit keys on the top row of the keyboard to give the digits, or with ISHIFTI to give the symbol above each digit on the key. Note that , unlike on some typewriters , the letter 0 is quite different in meaning from the digit 0 , and the letter 1 (lower-case L) from the digit 1. 16 Section One - Getting Started On the left-hand side of the keyboard: IEscl will normally cancel what you are currently doing, and go back to the most appropriate point just before . ITABI is like the tabulate key on a typewriter. Use it for making columns of figures , or arranging tables . IMENUI enables you to select which of the Z88's operations you want to carry out . These are explained in greater detail in the section Using menus on p. 2 0 . llNDEXI will return you to the Index from within an application. [8ITf>J give s you a display of information about the action you are currently carrying out. Further information is then available on related topics. o introduces a short cut to calling an application or a popdown. ¢ introduces a short cut for carrying out an operation within an application or popdowr . A list of the most useful of these operations is given on the Single key functions card, above the Z88 keyboard. D. JJ, o, o On the right-hand side of the keyboard: rubs out the last character you typed at the keyboard. is normally typed at the end of a line to confirm what you have just typed, or to go to the beginning of the next line, like the carriage return on a typewriter. move the cursor up, down, left or right on the screen. Caps lock modes Two caps lock modes are available which determine the way that the ISHIFTI key operates. The mode selected is indicated by a symbol at the bottom right-hand comer of the screen. The state of the caps lock mode is stored with each application, so you can, for example, keep one mode set up for PipeDream and another for BASIC . The operation of each mode is as follows : I I I I Basic concepts ¢ICAPSLOCKI DICAPSLOCKI ICAPSLOCKI 1 7 selects Normal Caps mode. The letter keys give capitals, irrespective of the ISHIFTI key. Displays : CRPS selects Inverted Caps mode, giving capital letters normally, and lower case with the ISHIFTI key. Displays : switches on and off the selected mode. Special characters ¢' gives ''' (grave accent) , and ¢SPACE gives an exact space, displayed as' ... ' . Cleaning the keyboard The keyboard should be kept free from dust by cleaning it periodically with a damp lint-free cloth, or sponge . Solvents should not be used. 18 The Index Menu list Shows the current application or popdown name, and the menus available. INDEX Section One - Getting Started The Index popdown allows you to call up 288 applications or popdowns , or to return to any activity that you were previously working on. To see the Index screen at any time, press the [INDEX[ key at the lower left of the keyboard. To return to an application from the Index, press �. The components of the Index screen are identified below : Suspended activities Lists the activities being kept in the machine. CLI indicator Shows when the Command Line Interpreter is active Alarm symbol Flashes to indicate when an alarm is active. COMMANDS NAME KEY YOUR REF, �D�1-a-r , - � ---a�D- �yu1y �r Calculator aR Calendar aC Clocl<. DT Applications and popdowns Allows you to select and enter an application or popdown. Key sequence display Shows ¢ or D key sequences as you type them. Battery low symbol Appears when the batteries need replacing. Caps lock status Shows which caps lock mode is active. The right-hand edge of the screen is reserved for status information from the 288 operating system. It displays OZ when the 288 is ready for use. Basic concepts Entering an application To enter an application, or a popdown, you simply have to select its name on the APPLICATIONS menu by moving the highlighting bar up and down with the cursor keys D and ..(). : Diary DD PipeDream DP BASIC DB Calculator DR Calendar DC Clock DT Alarm DA Filer OF PrinterEd DE Panel OS Terminal ov Imp-Export DX When the bar reaches the bottom of the screen, the list scrolls up to show the remaining options. Having selected the one you want press the IENTERI key to enter it . Creating a new activity Entering PipeDream or BBC BASIC from the Index APPLICATIONS list creates a new, blank document. 1 9 For example, to enter PipeDream, starting with a new blank document, move the highlighting bar until P i p eD re aM is selected, and press the IENTERI key ; you will then see the PipeDream screen : · az PIPEDREAM Al BLOCKS CURSOR .................................A . • • • • • • • • • • B • • • • • • • • • • • C • • • • • • • • • • • D • • • • • . . • • • • E . . . • • • • • • • +F EDIT FILES LAYOUT OPTIONS PRINT 1 l;m;WilWOI• 20 Suspended activities Using menus Section One - Getting Started If you return to the Index after creating a document in PipeDream (or writing a program in BBC BASIC) , your activity will be suspended, and you will see it listed in the list of SUSPENDED ACTIVITIES . This shows the time and date you were last working on the document under the heading W HEN S U SPE NDED , and if a name has been given to the document (with the PipeDream <> FC or <>FL commands , or the BASIC * N A M E command) , the name will be shown in the column headed YO U R REF. You can keep as many PipeDream and BBC BASIC suspended activities as you want, subj ect to the available memory. Re-entering a suspended activity You can re-enter a suspended activity by selecting it on the list of SUSPENDED ACTIVITIES . Move the highlighting bar across with the O key if necessary, and then press the IENTERJ key. Alternatively, pressing DP or DB repeatedly will enter each PipeDream or BBC BASIC activity in turn. Killing activities - <>KILL Each suspended activity does, of course, use up some memory space; some for the document you are working on, plus a small overhead needed by the application. You can therefore kill activities you no longer need to work on in order to free the memory space . Save the document (or program) first if you may need it again. To kill a suspended activity, select it on the SUSPENDED ACTIVITIES list with the cursor, and type <>KILL. The activity will be removed from the list, and any document (or program) associated with it will be lost . The Z88 applications , and some popdowns , use menus to show you what operations are available at any stage, and to give you a simple way of choosing the one you want from among them. In keeping with the philosophy of the Z88, menus free you from having to remember cryptic sequences of commands to be typed from the keyboard, and allow you to do what you want as quickly as possible. The items on each menu all relate to one particular type of operation. For example, all the operations to do with printing are listed on a PRINT menu. The menu headings are shown on the Menu List, which is displayed on the left-hand side of the screen under the name of the application or popdown. I I I Basic concepts PIPEDREAM ·�•;Jim!! 8LOcfs ear Mark CURSOR Copy EDIT Move F I LES Delete LAYOUT S o r t OPTIONS R e p l i c a t e PR I NT To use menus you have to : <D Select the menu you want from the menu list. @ Select the operation you want to perform from that menu. ® Execute the operation. These three steps are now explained in greater detail. Selecting a menu 2 1 A s an example of using menus, try using the menus in the PipeDream application. First enter PipeDream from the Index as already described. The menus available in any application are listed at the left-hand side of the screen, under the application name. For example, the menus in PipeDream are given under the heading P I PE DRE A M . Each title refers to one type of operation you can perform with PipeDream. For example, the first menu, the BLOCKS menu, contains operations you can perform on a block of text. Pressing the lMENUI key will display this menu, and BLOCKS will be highlighted in bold letters on the Menu List. To look at a menu further down the list, press the lMENUI key until you reach it . If you go past the menu you want, keep pressing the lMENUI key until it circles back around to the top of the list. tt Search <>BSE Word Count <>BWC liiliil1I oz Re p l ace <>BRP New <>BNEW ADVANCE <>BC Next Match <>BNM Recalculate <>A � �"" '\}- <>BM SELECT <>BD lili:m <>BSD ACT I ON <>BRE [DI RESUME For example , to select the FILES menu, you need to press the IMENUI key three more times. You can always check which menu is displayed by the title in bold on the Menu List. 22 P I PEDRl!AM B L O C K S C U R SOR ED I T FILES L A YOUT OPT I ONS PRINT Section One - Getting Started �FC N e x t F il e Previ ous. F il e T o p F i l e Bo t t oPl F i l e Selecting an operation rilililD oz ADVANCE ¢' -:> '°' -fr SELECT rlliilJ ACT I ON ITfti RESUHE You select a menu item by moving the highlighting bar with the cursor keys O ODD until the operation you want is highlighted. Executing the operation To perform the highlighted operation, simply press the [ENTER[ key. For example, on the BLOCKS menu example shown above, press the [ENTER[ key to perform the Mark Block operation. Options Many operations give you a list of options before actually carrying out the command. The Save command, on the FILES menu, is an example ; press D to highlight the Save command. When you press the [ENTER[ key you will see the following prompts : N aMe o f f i l e t o s ave Sav e o n l y r a n ge o f c o l uM n s S ave s e l e c t i o n o f r ows S ave M a r ke d b l o c k S ave p l a i n tex t I N o N o N o N o In this case you c an simply type in a file name, such as N aMe o f f i l e t o s ave My f i l el and press the [ENTER[ key to carry out the Save. I I I I Basic concepts Short cuts - <> 23 The other options under the Save command have only two possibilities each, Ye-s and No . You can alternate between them in two different ways: CD Type Y for Ye-s and N for No as appropriate. ® Use the Next Option or <>J command to display the alternative value. (With options which have specific values , <>J will restore the default ; see Setting the options, p. 103 , for more details.) Escaping from an operation If you decide against performing an operation from the menu , press the IEscl key and the menu will disappear from the screen. It may take you a little while to become familiar with using the menu operations to carry out your wishes , but once you have mastered menus you will be able to use all of the applications on the Z88 without difficulty. Menus make it easy to locate what you want to do even if you are not familiar with an application. But with a little experience you will find you know exactly which operation you want to carry out, and so will appreciate the short cuts which allow you to carry out any action without going through a menu. Each operation can be called up by typing the special <> key (called 'diamond' ) , followed by a sequence of one or more letters. When you type a <> sequence, the operation will be carried out instantly, no matter what you were doing in the application. If you do not keep the <> key held down while you are entering a <> sequence, the letters are shown at the right-hand side of the screen as a reminder. The short cuts are shown on each menu so that you can refer to them if necessary. For example, the short cut for the Save operation, shown on the FILES menu above, is <>FS . Also, the most useful of these operations are shown on the list of key functions above the Z88 keyboard. Note: Normally <> and D may be used either by holding them down whilst typing the sequence, or by pressing and releasing them and then typing the sequence . There are two exceptions to this ; these are <> ESC and DESC where they must be held down. 24 Line editing o.o <>o.<>o ml ISHIFTlm] <>D <>T Memory low condition Soft and hard reset Section One - Getting Started In most situations where you are entering a line of text in the Z88, such as in response to a prompt, the following commands are available to make corrections and alterations to what you are typing : moves the cursor left and right moves the cursor to the beginning or end of a line deletes the previous character deletes the character at the cursor position deletes to the end of the line deletes a word When you have almost filled the Z88 memory, with applications or data, the menu-selection of commands is automatically disabled to conserve memory. The highlight bar disappears, and the prompt display, at the right-hand side of all menu screens, changes to indicate that menu commands can no longer be selected with the cursor keys : lllliilD oz ADVANCE MEMORY LOW IB!ll RESUME In the memory-low condition the command short cuts must be used until enough memory has been freed from the machine. Soft reset In the unlikely situation of the Z88 not responding to any keyboard input it can be given a soft reset. This will remove all the applications running in the Z88, and clear any temporary work space being used by the operating system, but should retain all files . Basic concepts Help 25 To give a soft reset, press the reset button twice. The display will briefly show SOFT RESET I I I and then return to the Index . The operating system does its best to retain all files in the internal or external memory, and usually succeeds. Hard reset Hard reset completely initialises the Z88, clearing all memory, losing all files , and resetting the clock. Hard reset is described in Ini lialise the Z88, p. 8. After a hard reset the Z88 will display HARD RESET I I I The Z88 contains a Help system with highly-structured information on many operations and facilities provided hy the machine. The problem new users of a computer often face is that they need to find out how to do something but are not quite sure where to look. The Z88 Help system overcomes this problem by allowing you to 'browse ' , from Help information on one topic to information on related ones which might also provide the information you require. The help information is limited on the basic machine, but there is the provision of extending it with a Help application card. Getting help To find out information about a particular topic all you have to do is press the IHELPI key at the bottom left-hand side of the keyboard. The Help system will then automatically give you information on the menu or operation within the application you are currently using. Browsing within Help The cursor keys <=i OD D and the IHELPI key allow you to obtain more information, as shown on the Help screen. Returning to your application To exit from the Help system and return to your application, press the IE_sg key. 26 TUTORIAL Section Two - Using PipeDream Starting PipeDream The structure of PipeDream Designing a party invitation Starting PipeDream Typing text Deleting Word wrap Adding text Starting a new paragraph Columns Replacing text Inserting a line Adding styles to text Altering the layout of text Saving your document Loading a document Printing the document What next? Compiling a name and address list Preparing the document Setting up headings Entering some information Saving the document Sorting the information Finding information Help with searching Printing information Printing selected rows 31 32 33 37 37 37 3 8 3 8 3 8 39 40 40 4 1 4 1 42 43 44 44 45 46 46 47 48 50 50 52 53 53 54 28 TUTORIAL Calculating home expenses 56 Designing the table 56 Moving around the document 56 Labelling the table 57 Entering the rates 5 8 Referring to slots 58 Replicating values 59 Other expenses 60 Monthly totals 60 Replicating slot references 60 Percentage expenditures 61 Changing the format 63 What you have learnt 64 Section Three - Using the Diary 65 Entering the Diary 65 Making a Diary entry 66 Moving between days 66 Searching for Diary entries 67 Using the Calendar and Diary together 68 Section Four - Using the popdowns 69 Using popdowns 69 The Calculator - CR 70 Entering numbers 71 Display format 72 Constants 72 Storing and Recalling 72 Percentages 73 Converting units 74 The Calendar - CC 75 Searching for a day 76 Active days 7 6 The Clock - C T 77 The Alarm - CA 78 Alarm options 78 Clearing alarms 79 I I TUTORIAL The Filer - OF Entering the Filer File names Giving Filer commands Selecting files Filer commands The Panel - DS Altering the panel Panel options Import/Export - DX Using Import/Export Import/Export protocol The Index - DI The Index screen Entering an application Suspended activities Cards RAM cards EPROM cards Application cards 29 80 8 1 8 1 82 83 84 87 8 7 8 7 90 90 9 1 92 9 2 93 93 94 95 96 9 8 30 Section Two Using PipeDream This section will familiarise you with all the essential facilities provided by PipeDream, through a series of three simple worked examples : • Design a party invitation, using PipeDream's text editing and page layout facilities. • Set up a name and address list, using PipeDream's ability to organise information. • Calculate home expenses , using PipeDream's facilities for working with tables of figures. Starting PipeDream Slot coordinates The column and row coordinates of the slot currently containing the cursor. Before trying the sample applications using PipeDream, this section shows how to start PipeDream, and introduces the fundamental concepts necessary to an understanding of how to work with it . First start PipeDream with a blank document from the Index. To do this: G) If you are not already in the Index , press the llNDEXI key. ® Select PipeDream from the Index APPLICATIONS list . Press ¢J to move into the APPLICATIONS list , if necessary, and press .Q. or D until P i p eD re af'l is shown highlighted. ® Press the IENTERI key to enter PipeDream. You will see the PipeDream opening screen, confirming that you have selected the PipeDream application. Cursor column The column containing the cursor is indicated by close dots on the top border. Top border Marks character positions across the screen, and the column headings. Right-hand margin The right-hand edge of text typed into the document. PIPEDREAM Al BLOCKS CURSOR .................................A . . . • . • • • . . . B • • • . • . . • • • • C . • • • • . . . . . . D • . . . . . . . . . . E . ......... +F oz EDIT F I LES LAYOUT OPTIONS P R I N T Row number The number of the row or line in the document. Cursor A flashing block indicating where text will appear as you type. End of text marker Page display map Indicates the bottom of the This area of the screen document. displays a map of the text on the current page. I I Starting PipeDream For clarity, the subsequent diagrams in this chapter show the central portion of the screen only. Page display map 33 The page display map gives you an overall view of the current page of the document you are working on in PipeDream. Each character in the document is represented by a single dot in the map , enabling you to see the layout of the whole page and, if necessary, to adjust the layout to improve the appearance. At any time the lines on the map corresponding to those displayed on the PipeDream screen are indicated by a vertical bar at the right-hand side of the map : 1mr- Lines displayed on the 288 screen The structure of PipeDream To make best use of PipeDream it is important to understand some basic principles of how PipeDream documents are constructed. Rows and columns Every document is divided into rows or lines , numbered 1 , 2 , 3 . . . etc, and one or more columns, labelled with letters A, B , C . . . etc. Initially the document has 6 columns , labelled A to F, each of which is 12 characters wide , but commands are available for you to alter the widths of individual columns or to alter the number of columns. The part of a document lying in one row and one column is called a slot . A slot is referred to by its column label and its row number ; for example, the following diagram shows slot D3 highlighted by the highlighting bar: 34 D3 Section Two - Using PipeDream 1 I I I I I I I I I I I A I I I I I ' • I I I I B I I I I I I I I I I I C .. . .... . .. . . . . . .. ... .. . .. . ... .... D I I I I I I I I I I I E I I • I I I I I I I .J..F 2 3 4 5 6 The coordinates of the slot containing the cursor are shown at the top left of the PipeDream screen, and the column containing the cursor is identified by closely-spaced dots on the top border. The right-hand margin is indicated by the ..J.. symbol on the top border, and normally all columns have their right-hand margins at the right hand edge of the screen. Much of the power and flexibility of PipeDream comes from the two different types of slot which you can create and combine within a single document : text slots and expression slots. Each type of slot can contain up to 240 characters . Text slots Text slots are used for entering and editing continuous text, such as the body of a letter, a technical paper, or a novel. When working with text, the columns in PipeDream behave as if they are on different layers, like separate overlapping sheets of paper. For example, the initial column format could be represented by the following diagram : I I Starting PipeDream T ext i fl C P l U f'l fl A T ext i fl 35 CD l U f'l fl 8 T ext i fl C 0 l Uf'l fl c T ex t i fl C) l Uf'l fl D Text i fl col Uf'l fl E Tex t i fl c o l U f'l fl F Text typed into column A behaves as if it is on the bottom layer, which is 72 characters wide ; it will 'show through' the other layers, unless they contain text or expressions in the same row. Text typed into column F behaves as if it is on the uppermost layer, which is only 12 characters wide When text is typed into a text slot it will automatically wrap around to the start of the next row in the same column when the cursor reaches the right-hand margin for that column (unless wrapping has specifically been turned off). Formatting If justified text has been selected, from the Options Page, lines will be padded with spaces so that the right-hand margin is even. The layout of a document can be altered simply by moving the right-hand margin, and then reformatting the text paragraph by paragraph. By giving each column a different right-hand margin, independent columns of text can be created within the same document. With a little practise you will find that PipeDream is capable of creating quite complex multi-column page layouts. 36 Section Two - Using PipeDream Expression slots Expression slots , on the other hand, are used for creating tables of figures or information, often called spreadsheets. These can contain mathematical expressions, including references to other slots in the document, and scientific functions . The main difference between expression slots and text slots is that once you have typed the expression into an expression slot, what is displayed in the document is not the expression itself, but the result of evaluating the expression. For example, if you typed 1 . 1 5 * 3 0 0 into an expression slot , the result 3 4 5 would be displayed in the document. For spreadsheet work you can make all slots work as expression slots by default by setting the Options Page Text/Numbers setting to Numbers; see p . 140. Mixing text and expressions Text slots and expression slots can be mixed in the same document; so a letter could include a table of financial calculations automatically added together by PipeDream, or a company business plan could incorporate a spreadsheet within the descriptive text to show financial predictions . Values from expression slots can be included within formatted text in text slots using ' @-fields ' . This is convenient if, for example, you want a letter to refer to the result of a particular calculation. The examples The concepts of rows and columns , text slots and expression slots , and formatting text , are illustrated by the following three practical examples in the use of PipeDream. I Designing a party invitation Starting PipeDream Typing text This chapter will explain how to : • Type in text • Make corrections to the text you have entered • Create bold and underlined text • Alter the layout of text • Save the document • Print the document This example shows how PipeDream can be used in a typical word processing application. To enter PipeDream from the Index starting with a blank document , select PipeDream from the Index, and press the IENTERI key. Type the following : Y o u a r e i n vite d to a b e a n o . Notice that the cursor moves to the right as you type. The next character you type will always be typed at the position indicated by the cursor. A short time after you stop typing, you will see the page map , on the right-hand side of the screen, change to show the new layout of text on your page. 38 Section Two - Using PipeDream A 1 ................................. A I I I I I I I I I I I 8 I I I I I I I I I I I c I I I I I I I I I I I D I I I I I I I I I I I E I I I I I I I I I I ..J.. F Y o u a r e i nv i t e d t o a b e a n o . I • :ti'EilRMlit:v.tOW Deleting Word wrap Adding text Press the [Qfil key at the top right-hand side of the keyboard, until the word b e- a n o disappears. [Qfil backspaces the cursor over the text you have typed, removing it from the page. Type the word p a rty and then continue to type the paragraph shown below. If you make a mistake, use the [Qfil key to correct it . When your typing reaches the right-hand margin, indicated by the ..j.. symbol on the top border, just keep typing and PipeDream will automatically carry words over to the start of the next line. Y o u a r e i n v i te d to a p a rty to c e l e b r a te th e c r e a ti o n o f my f i r s t d o c u m e nt w i t h th e Z 8 8 c o mp ute r . C h a m p a g n e w i l l b e p r o v i d e d . PipeDream starts in Insert mode, although you also have the option of working in another mode called Overtype mode. You can change modes with the Insert/Overtype command; see p. 119. In Insert mode, text is always added at the position indicated by the cursor. You can add text simply by moving the cursor to the point where you want the text added, and then typing. The cursor is moved around on your document using the four arrow keys , o , O, D , D at the bottom right-hand side of the keyboard. Designing a party invitation 39 A2 Position the cursor after the word c h aM p a 9 n � , on the second line of the text you have just entered, press the space bar, and add the phrase : a n d s m o k e d s a l m o n The original text will move apart to make room for the new text, and words will wrap around to the next line at the right-hand margin to ensure that the altered text is correctly formatted. w - ·- - I ................................. A I I I I I I I I I I I B I I I I I I I I I I I c I I I I I I I I I I I D I I I I • I I I I I I E I I I I I I • I I I J..F 1 Y o u a r e i nv i t e d t o a p a r t y t o c e l e b r a t e t h e c r e a t i o n o f M Y f i r s t 2 d o c uM e n t w i t h t h e Z 8 8 c oM p u t e r . C h aM p a g n e a n d sM o k e d s a l M o n l i l l b e 3 P r ov i d e d . •mn•m• Starting a new paragraph After adding the new text press the IENTERI key. IENTERI moves the cursor to the beginning of the next line. A5 Press IENTERI twice more to leave a blank line and move the cursor down to row 5 on the page . Type the following: S u n d a y 2 8 t h F e b r u a ry a t 1 2 o ' c l o c k . You can use the IENTERI key to end paragraphs , insert blank lines, and separate items in a list. ................................. A . I I I • • I I I I I B I I I I I I I I I I I c I I I I I I • I • • • D I • I • I I I I I I • E I I • I • • I I I I +F 1 V o u a r e i nv i t e d to a p a r t y t o c e l e b r a t e t h e c r e a t i o n of MY f i rs t 2 d o c u M e n t w i t h t h e Z88 c o M p u t e r . C h aM p a g n e a n d s M o k e d s a l M o n w i l l b e 3 p r ov i d e d . 4 5 S u n d !!� 8 t h F e b r u a r y a t 1 2 o � c l o c k . I •m�m• - ""!. - . - - --- - I 40 Section Two - Using PipeDream Columns The page you are working on is divided into six colwnns, each 1 2 characters wide, shown b y the rows o f dots and the letters A t o F on the top border of the screen. These provide the equivalent to tab positions on a typewriter. F5 With the cursor still on row 5 , press ITABI exactly five times . The cursor will move to the left-hand edge of each colwnn in tum until it reaches the left-hand side of the column labelled 'F' . Notice that as the cursor moves into each blank slot, text overlapping the slot .is hidden. Now type in the text : R S V P The text will be positioned near the right-hand side of the sheet , opposite the text already on row 5 . -.: _ - · I I • I I I I I I I I A I I I I I I I I I I I B I • I I I I I I I I • c I I I • I I I I I I I D I I I I I I I I I I I E . ... . . . . . . . ... . . . .. . . . . . . . . .. . .+F 1 Y o u a r e i nv i t e d to a p a r t y to c e l e b r a t e t h e c r e a t i o n of MY f i rs t 2 d o c uM e n t w i t h t h e Z88 c oM p u t e r . C h aM p a g n e a n d sM o k e d s a l M o n w i l l b e 3 p r ov i d e d . 4 5 S u n d ift � 8 t h F e b r u a r y a t 1 2 o � c l o c k . RSUPI •::tili__!....!!!MM You can move to the previous tab position by holding down the ISHIFTI key and pressing ITABI . Try doing this to move the cursor back into column A, at the left-hand side of the screen. Replacing text You can remove characters from the middle of a line by using the Delete Character command which you can gi ve either using the EDIT menu, or by holding down the ISHIFTI key and pressing [Qill . Now you decide to change the day of the party to Saturday 2 8th February. Move the cursor across to the S of S u n d a y with the cursor keys . Then, hold down the ISHIFTI key and press [Qill ; the S will be deleted. Keep pressing ISHIFTI [Qill until the word S u n d a y is removed. Then, type in the word S a tu r d a y to replace it. ' I I I I I I I I I Designing a party invitation 4 1 Inserting a line Now add a heading to the invitation. To do this , you first need to insert two blank lines at the top of the page. A 1 Move the cursor up to the first line of your document , row 1, by pressir' · Lt . Now give the Insert Row command. You can do this either using the EDIT menu, or by typing oN. A blank line will be added where the cursor was , and the remaining lines of the document will be moved down on the page. Type oN again to give two blank lines at the top of the page. Then type in the following text : A O n c e - i n - a - l i f e ti m e P a r ty ................................. A I I I I I I I I I I I B I I I I I I I I I I • c I I I I I I I I I I I D I I I I I I • I I I • E I I I I I I I I I I +F 1 A O n c e- i n- a - l i f e t i M e P a r t yl 2 3 Y o u a r e i nv i t e d t o a p a r t y t o c e l e b r a t e t h e c r e a t i o n o f M Y f i rs t 4 d o c u M e n t w i t h t h e Z88 c oM p u t e r . C h aM p a g n e a n d sM o k e d s a l M o n w i l l b e 5 p r ov i d e d , 6 The bottom line of your document will not be visible as it is off the bottom of the screen. You can make it scroll into view by moving the cursor down with the .Q. key. Move the cursor back to the top line with the Lt key before continuing with the example. Adding styles to text You can emphasise key phrases in your text by changing the style to bold, underlined or italics . This is achieved by selecting one of the highlight commands from the PRINT menu, or by typing one of the following highlight commands : Command Effect Hiahliaht code ¢PU for underlined text 1 oPB for bold text 2 ¢Pl for italic text 4 42 Section Two - Using PipeDream Type the command once at the beginning of the text you want to emphasise, and give the same command at the end of the text you want to emphasise, to switch back to normal text . To emphasise the heading of the invitation, move the cursor to the beginning of the heading with the o key. Then type oPB . A '2 ' symbol will be inserted before the text to indicate that a highlight code 2 has been inserted. Move to the end of the heading with the o key, and type oPB again. Another ' 2 ' symbol will be inserted. Now move the cursor down to the next line with the D key and the heading will be displayed bold on the screen. When you move the cursor onto the line containing highlights , the codes are displayed as highlighted numbers U to l:: so that you can edit them, or delete them, just like any other text characters. When you move the cursor onto another line, the effect of each highlight is shown on the screen, just as it will appear when printed out. (Italic text is displayed as tiny characters .) Altering the layout of text You can alter the layout of one or more lines of text in your document with one of the Align commands on the LAYOUT menu. For example, to centre a line of text, you move the cursor onto that line and then select the Centre Align command from the LAYOUT menu. Alternatively, you can type oLAC . A2 Move the cursor onto the line containing the heading of the party invitation, if it is not there already, and type oLAC. You will see the heading become centred on the page map (which always shows you the format of the page as it will appear when printed) . The actual line of text will be centred on the document when you move the cursor onto the next line. ................................. A I I I I I I I I I I I B I I I I I I I I I I I c I I I I I I I I I I I D I I I I I I I I I I I E I I I I I I I I I I +. F R O nc e -i n-a-l i f e t i Me Partg 2 I 3 Y o u a r e i nv i t e d t o a p a r t y t o c e l e b r a t e t h e c r e a t i o n o f M Y f i rs t 4 d o c uM e n t w i t h t h e 288 c oM p u t e r . C h aM p a g n e a n d sM o k e d s a l M o n w i l l b e 5 p r ov i d e d . 6 I I I Designing a party invitation Saving your document 43 Once you have finished working on a document it is a good idea to save it as a file to the 288 RAM. You will then be able to find it again without difficulty at a later date, and there is the added advantage that documents saved to the filing system take up less space and are more secure than documents left within PipeDream. You can save a copy of your document into the 288 filing system by selecting Save from the F1LES menu : G) Press the IMENUI key until the FIT.ES menu is displayed on the screen. ® Press the .Q. key to highlight the Save command. ® Press IENTERI to select the Save command. The Save command optionally allows you to save only part of your document , and therefore prompts with the following questions : N aMe o f f i l e t o s ave S ave o n l y r a n ge o f c o l uM n s S ave s e l e c t i o n o f r ows S ave M a r ke d b l o c k S ave p l a i n tex t I N o N o N o N o Type in the name I n v i t a t i o n as the name of the file to be saved, so that the top prompt becomes N aMe o f f i l e t o s ave I nv i t a t i o nl and press IENTERI , since on this occasion you do not need to select any of the other options. A copy of the document will be saved with the name I n v i t a t i o n in the 288 filing system. You will see the file I ri o..• i t o. t i o ri listed if you select the Filer by typing DF. Press IEscJ to return to PipeDream. If at some stage you expand the 288 with a RAM card, you can save a document to the extra RAM by referring to it in the file name as , for example : : RAM . 1 / I n v i t a t i o n 44 Loading a document Printing the document Section Two - Using PipeDream Try loading back the docwnent you have just saved using the PipeDream Load command. First clear the invitation from PipeDream by giving the New command from the BLOCKS menu. If you have altered the document since you saved it, the prompt Ov e rw r i t e t ex t? will be displayed at the top of the display, to give you the chance to go back and save your changes . Press Y to clear the docwnent. Then select the Load command from the FILES menu. As in the case of the Save command, fill in the file name in the list of options H aM e o f f i l e t o l o a d I nv i t a t i o n l and press IENTERI to load the file. You should see the invitation exactly as you saved it. If you have a printer connected to the Z88, you can print out a copy of the invitation with the following procedure : © Select the PRINT menu by pressing the l�NUI key until PRINT is highlighted on the Menu List. ® The Print operation may already be highlighted as it is the first item on the menu; otherwise use the cursor keys to select it. ® Press IENTERI to give the Print command. © Press IENTERI again to ignore the Print options and print the invitation. You can repeat the procedure to print as many copies as you want. I I I I I I I I I I I I I I Designing a party invitation A O n c e - i n - a - 1 i f e t ime P a rt y Y o u a re i n v i t e d t o a p a r t y t o c e l e b r a t e t h e c re a t i o n o f my f i r s t d o c ume nt w i t h t h e Z 8 8 c ompu t e r . Ch ampagne a n d smo ked s a lmo n w i l l b e p r o v i de d . 4 5 S a t u rday 2 8 t h F e b r u a r y a t 1 2 o ' c l o c k RSVP What next? To get bold and underlined text to print correctly you may need to use the Printer Editor ; see Section Nine - The Printer Editor, p. 1 87. You have just seen how the Z88 makes it a simple matter to write text, correct mistakes , alter the layout, and print a document. The Z8 8 also enables you to compile a catalogue of information, as demonstrated in the next worked example. Compiling a name and address list Preparing the document T ex t/N u f'l b e rs T I ns e r t o n w r a p B o r d e rs Y C a l e : A u t o/M a n J us t i f y N C o l uM ns/R ows W r a � 11 D e c i f'l a l p l a c e s P a 9 e 1 e n 9 t 06 M i n us/B r a c k e ts L i n e s p a c i n g 1 L e a d c hs . S t a r t p a g e T r a i l c h s . This example shows how you can enter any type of information such as a library catalogue, a book index or bibliography, or a name and address list into the Z88 using PipeDream. You will learn how to : • Enter information • Find any particular information you want • Organise the information • Print out all, or a selection, of the information in an orderly table Because you are going to enter lists of information, rather than a block of text for formatting into a document, you should first alter the Wrap option on the Options Page so that words do not wrap around onto the next line when they reach the right-hand margin. Select the Options Page by typing ¢ 0 . You will see a display showing the different options you can select for your document, and information about the document. Move the cursor down to the wrap option by pressing D until the cursor is opposite the word W r a p . Then type N to change the option value from Y (Yes) to N (No) to stop wrapping altogether : R M a r g i n s : T o p 0 F i l e N o F i l e A H e a d e r 2 P a g e 1 I n s e r t c F o o t e r 2 F r e e 20480 2 B o t t o f'l 8 M L e f t 0 T i t l e £ H e a d e r % F o o t e r Finally press t h e IEscJ key to return to the document . I I I Compiling a name and address list 4 7 Setting up headings Before entering information into PipeDream, it is good practice to set up headings to specify how the information will be arranged. Since you are going to create a name and address list, the headings will simply correspond to the name and address, with one reserved for additional information. When you start a new sheet in PipeDream you are given six columns, each 12 characters wide. Although you can enter lines of text much wider than this in each column, it will make working with the name and address information simpler if, at this point , you make each of the columns in the document wider. You do this with the Width command in the LAYOUT menu. Press the IMENU\ key until the LAYOUT menu is displayed. The Width command may already be highlighted as it is the first item on the menu; otherwise use the cursor keys to highlight it. Then press IENTERI to select it. In reply to the prompt N ew w i d t h type 2 4 and press IENTERJ to carry out the change. (You can ignore the other prompt - S p e c i f y c o l urrn .) The width of the column containing the cursor, column A, will increase to 24 characters . Now move the cursor into column B by pressing the ITABJ key, and repeat the procedure to set the width of column B to 24 also. You can, if you wish, select the Width command directly without going through the LAYOUT menu, by typing oW. Continue until you have set each of the columns A to F to a width of 24 characters. Notice that when you press the ITABI key to get from column C to column D , the document moves to the left on the screen so that columns D and E come into view without the cursor position changing. Then move the cursor back to the left-hand side of column A by typing OITAB\ . Type the following headings , pressing the ITABJ key between each heading to move the cursor to the beginning of the next column. 48 0 1 N a me ITABI A d d r e s s ITABI T ow n ITABI C o u n ty ITABI P o s t c o d e ITABI I n f o Section Two - Using PipeDream Notice that when you type the word T o w n and press the ITABI key, the document scrolls to the left so that the column headed 'D' comes clearly into view : I 1 1 1 1 I 1 1 I I I I I I I I I I I I I I 1 8 1 I I I I I I I I I I I I I I I I I I I I I 1 C • • • • • • • • • • • • • • • • • • •• • • • H H • • • • • • • • • • • • • • • • • • • • • • • • • • • • o o • • • • • • • • • • • • D A d d r ess T ow n I •:a.,.m• So, although you can only see three of the six columns in your document at any one time, it is a simple matter to move about and find the information you want. Although it should be quite obvious what you will be using each of the first five headings for, you may be wondering what the purpose of the last heading I n f' o might be. You can use this to record additional information about all of the people in your address list , such as whether you sent them a Christmas card last year, when their birthday is , or any other information you would like to be able to recall. In the following examples the field will contain the person's age . Entering some information Move the cursor back to the left-hand side of column A by typing <> ITABI . Press the IENTERI key to move the cursor to row 2 . You can now type the first name into slot A2 . B e l l , A Press the ITABI key when you have finished typing the name to move the cursor across to the address column, column B. Type in the address , remembering to press the ITABI key between each item : t t Compiling a name and address list 49 A3 N a me Be 1 1 . B e l 1 . A ITABI 2 R i n g w a y ITABJ T r i n g ITABI H e r t s ITABJ . T E I 2 L M ITABJ 2 4 e u • • • • • • • • • • • • • • • • • • • • . , • • • • • • • • • • • • • n • • • •• • • • • • • • • • • • • • • • • • • • • • • • • A I I I I I I I I I I I I I I I I I I I I I I 1 8 1 I I I I I I I I I I I I I I I I I I I I I 1 C 1 I H aM e A d d r ess T ow n C 2 B e l l , A 2 R i n gw a y T r i n g H 3 1:rmnwmw A d d r e s s A 2 R i n gw a y Enter the other names an d addresses given below on lines 3 , 4 , 5 , and 6 of your document in exactly the same way. Of course, if you prefer, you can compile your own list . If part of an address is too long to fit within one column, just keep typing; although you will not be able to see all the information in that column, it will be retained and you will be able to refer to it later. Also, be sure to keep to the headings at the top of the document. For example, if a particular address does not have anything corresponding to a county, leave that column blank so that you put the postcode under the correct heading. This will enable you to search for a particular postcode, as described later. Complete the table as follows : T o w n C o u n t y P o s t c o d e I n f o T r i n g H e r t s T E I 2 L M 2 4 L o n g . C 9 K n o t t C l o s e F a r n h a m S u r r ey W A Y 2 G O 2 7 Ro v e r , A 4 C h a s e M e w s K e n i l w o r t h W a r w . K 9 W U F I 2 B i r d , J 2 7 W o o d L a n e B a t h A v o n C B I L 2 3 I 4 H i l 1 . M a x I O U p p e r S t r e e t S t e e p H a n t s U P 2 I T 4 3 50 Section Two - Using PipeDream Saving the document Since by now you may have spent some time entering information into your document, it is a good idea to save a copy to the 288 filing system in case you accidentally lose the information during the next experiments. You save a copy of the document by using the same procedure as the one used for the party invitation. Sorting the information Select the Save command by @essing the IMENUI key until the FILES menu is displayed. Press the .JJ key to highlight Save. Then press IENTERI to give the Save command. Type a d d r e s s e s as the name of file to save , ignoring the other options since you want to save the whole document, and press IENTERI . A copy of the document will now be saved to the filing system. Now that you have entered a table of names and addresses , it would be useful to have them sorted into alphabetical order so that you can look up a particular name more easily. First you need to specify which part of your document you want to sort. Move the cursor to slot A2, the to2 left-hand comer of the table of names and addresses, using the iJ and .JJ keys to move up and down the document and the ITABI and ISHIFTI ITABJ commands to move across the document between columns to the left and right. Mark slot A2 by giving the Mark Block command from the BLOCKS menu, or by typing oz. When you give the command, slot A2 will be highlighted on the screen to indicate that it has been marked : A2 lh. tk. ._ If • • • • • • • • • • • • • • • • • • • • • • • • • • • , . • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • o o o o o A I I I I I I I I I I I I I I I I I I I I I I 1 8 1 I I I I I I I I I I • I I I I I I I I I I 1 C 1 1 N aM e A d d r ess T ow n C 2 mtm& 2 R i n 9w a y T r i n 9 H 3 Lofi9) C 9 K n o t t C 1 os e F a r n h aM S 4 R ov e r , A 4 C h a s e M ews K e n i l w o r t h W 5 B i r d , J 27 W o o d L a n e B a t h A 6 H i l l , M ax 1 0 U p p e r S t r e e t S t e e p H Now mark the bottom right-hand comer of the table of names and addresses . Move the cursor down to row 6 and across to column F with the ..Q. key and the ITABJ command. Then give the Mark Block command again. When you have completed the second Mark Block command, the Compiling a name and address list entire table of names and addresses will be selected and shown highlighted on the screen. 51 F 6 1k � ._ If I I I I I I I I I I I I I I I I I I I I I I 1 D 1 I I I I I I 1 I 1 I I I I I I I I I I I I 1 E u • • o o o o o o • • • • . ... ,, .. , , , , , , , , , , , . . , , , , , , , .. , , . , , , , , , , , , . . , , , , , , , . . , , F 1 C t P d I f 2 3 4 5 6 e r ts S u r r e y WAY 2GO 27 W a rw . K9 WUF 1 2 Av o n CB 1 L23 1 4 H a n ts UP 2 I T 43 The highlighted table of slots is referred to as a 'block' , and several commands are available which will operate on an entire block of slots that you have selected. Move back to the left-hand side of the sheet with o lTABI . To sort the block of slots , use the Sort command from the BLOCKS menu. Press the IMENUI key until the BLOCKS menu is displayed. Then press the ..0 key until the Sort command is highlighted on the menu, and press IENTERl to select the command. We wish to sort the names and addresses into alphabetical order of the names , which are in column A, so type A to the prompt S o r t o n c o l uM n A and press the IENTERI key to perform the sort. (You can ignore the other prompts for the moment. ) You will s e e that the names an d addresses have been correctly sorted within the table . You can clear the marked block by giving the Clear Mark command from the BLOCKS menu, or by pressing o O : A6 � ... L. S '''''"''''''''''''''''''''''''''''''''''''''''''°"'''''''''''''''''''A l I I I I I I I I I I I I I I I I I I I I I 1 8 1 I I I I I I I I I I I I I I I I I I I I I 1 C 1 1 N a l"l e A d d r ess T ow n C 2 B e l l , A 2 R i n 9w a y T r i n 9 H 3 B i r d , J 27 W o o d [ a n e B a t h A 4 H i 1 1 , M ax 1 0 U p p e r S t r e e t S t e e p H 5 L o n g , C 9 K n o t t C l o s e F a r n h a l"I S 6 � ov e r , A 4 C h a s e M ew s K e n i l w o r t h W 52 Finding information Section Two - Using PipeDream You could, of course, have sorted the information on a different heading by specifying another column, rather than column A, when you gave the Sort command. For example, you may like to experiment with sorting the same names and addresses on the Town column, or on the column containing the peoples' ages. You could have entered many more names and addresses than the few you have already stored without running out of space in the document. You can see how much space is available in a document at any time by typing o O to display the Options Page. The number of characters of space available is given after the heading F r e e on the right-hand side of the Options Page display. Press IEscl to return to your document. In a large list of names and addresses, it would be very inconvenient to have to search around in the list for a particular name or address . Fortunately, there is a much faster way, using the automatic search facility built into PipeDream. Select the Search command from the BLOCKS menu in the usual way : display the BLOCKS menu with the IMENUI key, and use the cursor keys to highlight Search; then press IENTERI to give the Search command. The Search command displays a number of options which allow you to specify exactly what you want to search for, and whether you want to restrict the search to a particular part of your table of information. For example, you might want to search for the address of someone whose surname you had forgotten, but whose Christian name you knew to be Max. You would then enter M a x against the first option : S t r i n g t o s e a r c h f o r M ax Press .Q. to move to the next option which initially shows : S e a r c h o n l y r a n g e o f c o l uM ns N o and press Y to alter the option value t o Y es , and type A, to specify that you want to search only column A, which contains the names. The option will now read: S e a r c h o n l y r a n g e o f c o l uM ns Y es A t I I Compiling a name and address list Help with searching Printing information 53 Then press IENTERI to begin the search. The cursor will instantly find the name H i l 1 , M ax , allowing you to read off his address. Incidentally, if the name you chose to search for found someone else with the same name first, you could use the Next Match command on the BLOCKS Menu to move on and find the next item that contained the same name. It is a peculiarity of the way we remember information that we can often only remember part of what we are trying to recall. For example, we may know that the person we are trying to find lives in a town called something like Caxton - or perhaps it was Croxton? Or then again, perhaps it was Foxton. The PipeDream Search command has two facilities which help in just this type of situation. You can type the symbols " # in the string you are looking for, to represent any combination of letters (including none) . Thus , you simply have to specify S t r i n g t o s e a r c h f o r ,..#x t o n to find any of the towns, Caxton, Croxton or Foxton, or any other town ending in 'xton' . You can also specify the symbols " ? which will match any single letter or character in the string you are searching for. So, if you could only remember that the name of a road had three letters, you could search for 11 ? 11 ? 11 ? R o a d and you would be sure to find it. To print out the information in your name and address list as an orderly table, select the Print option from the PRINT menu. Press the l�Nul key until the PRINT menu is displayed. Select Print using the cursor keys, and then press IENTERI to give the command. Since the total width of the table of names and addresses is 144 characters (six columns of 24 characters) it will probably be too wide to fit across the width of the paper on your printer ; most printers will only 54 Printing selected rows Section Two - Using PipeDream print 80 characters . You will therefore need to print the table in two sections , by selecting a range of columns in each case. The first time you give the Print command, alter the option P r i n t o n l y r a n g e o f C o l u M ns No to Y es by typing Y, followed by A C so that the option reads P r i n t o n l y r a n g e o f c o l u M ns Y es A C Then press the IENTERI key to start printing. Once this is finished, give the Print command again, this time specifying the option as P r i n t o n l y r a n g e o f c o l u M ns Y es D F Alternatively, some printers will print up to 132 characters across ; in this case you may be able to fit the whole table onto a single sheet of paper by first reducing the width of some of the columns using the Width command on the LAYOUT menu. If you were going to use the name and address list for a business mail shot, you might want to compile a selective list containing only the names and addresses of people living in one particular area. The PipeDream Print command caters for this by allowing you to specify a test to be performed on each row of the document. Only those rows for which the test succeeds will be printed. You specify the test in terms of slots in row 1 ; PipeDream automatically alters the slot coordinates to refer to the appropriate row as testing proceeds through the document. For example, to print out the names and addresses of all the people living in Hants or Surrey, give the Print command in the usual way by displaying the PRINT menu and then pressing IENTERI to give the Print command. Then move the cursor to the option S e l e c t r ows t o p r i n t N o Change the option value t o Y es , by typing Y , and type in the selectiol_l expression D l = " H a n t s " : D l = " S u r r ey " Compiling a name and address list 55 The ' : ' symbol means 'OR' , so the whole expression means : " If the item in slot D 1 is Hants or the item in slot D 1 is Surrey . . . " . In row 2 the test will apply to D2 , and so on. The selection expression can be virtually as complicated as you need, and can include tests on several different columns. For example, for a mail shot of information on a new wonder hair tonic you might want to select all men over 30 on the name and address list. The expression might be D l = " L o n d o n " & G l = " M " & F l >= 3 0 where G l was an extra column containing M or F to indicate the sex. The ' & ' symbol means 'AND' and can be used to link several tests together. Calculating home expenses Designing the table The next worked example shows how to use the Z88 to perform numerical calculations. It shows how you would analyse your monthly expenses, and discover what proportion of your income you were spending on each. You will learn how to : • Enter numbers and expressions into a table • Copy expressions to save typing • Perform calculations • Alter the format of the numbers You are going to create a table which shows for each of the months January to May what your expenditure has been on your mortgage, food, car, gas and electricity, and telephone. At first sight it might appear that an awful lot of typing would be involved in setting up such a table. However, as you will see, all the repetition is carried out automatically for you by PipeDrearn and very little typing is actually needed. Moving around the document To set up the table of expenses you will need to be familiar with the procedure for moving the cursor between slots ( or columns ) in the document . Remember that you will need to use the following keys : to move up a line to move down a line to move to the previous slot to the left to move to the next slot to the right to move to the leftmost slot Calculating home expenses 5 7 Also, when you ar e at the left-hand edge o f a slot, pressing ¢J will move to the previous slot to the left, if there is one . When you are working with a document you can use the First Column, Last Column, Top of Column, or Bottom of Column commands on the CURSOR menu to move to the four edges of the document in a single operation. Labelling the table You are now going to set up the column and row labels for the table of expenses . 82 Move the cursor to slot B 1 and type the label J a n ( for January ) . Likewise type F e b , M a r c h , and A p r i l in slots C l to E l to complete the column headings for the table . Later you could extend the table for a whole year's figures . Now type the row labels for the different expense categories , as follows : In slot : A2 A3 A4 A5 A6 Enter : R a t e s M o r t g a g e F o o d C a r G a s / E l e c t The table headings are now complete. Move the cursor back up to slot B2, and the table should appear as shown on the following screen : I I I I • I I I • I I A ................................. B I I I I I I I I I I I c I I I I I I I I I I I D I I I I I I I I I I • E I I I I I I I I I I + F I!:. - - - - 1 2 R a t es 3 M o r t g a g e 4 F o o d 5 C a r 6 G a s/E l e c t J a n F e b M a r c h A p r i l I 58 E ntering the rates Referring to slots Section Two - Using PipeDream The rates in the example are going to be £500 per half-year. This is going to be divided evenly over each month's expenses , but you do not need to divide 500 by 6 ; PipeDream will do it for you. You only have to enter the expression 5 0 0 / 6 into slot B2 (the '/' sign means divide) . However, you first need to specify that this slot is to be an expression slot , so that whatever you type into it will be evaluated, and so that other slots on the table can refer to the result. To do this you give the Edit Expression command from the EDIT menu ; alternatively you may find it more convenient to type ox which has the same effect . The slot B2 will be highlighted on the screen to show that you are editing an expression slot, and the cursor will move to the centre of the top line of the screen so that you can enter an expression. Type the expression 5 0 0 / 6 and press the JENTERJ key to enter it into slot B 2 . The number 83.33 will be displayed right-aligned in slot B2 . You do not need to type the rates expression into the other slots in row 2 ; you can simply indicate that you want the same value as slot B2 by typing the coordinates of that slot. Move to slot C2 and press o X to enter an expression. Then type B 2 and press JENTERJ . The value 83.33 will appear in slot C2. Likewise enter the expression B 2 into slots D2 and E2. Effectively you have specified that you always want slots C2 to E2 to contain the same value as slot B 2 . So, for example, suppose you were granted a rates reduction to £400 per half-year. Move the cursor back to slot B2 and type ox to display the slot 's previous contents , 500/6 . Delete them, by typing o D I t Calculating home expenses 59 and then type the new value : 4 0 0 / 6 IENTERI Not only will the value in B2 change to 66. 67, but slots C2 to E2 will also change, since they refer to this value. Replicating values Next you are going to enter the figure 200 for the four months' mortgage payments. Type 2 0 0 into slot B3 . If you forgot to type ox when entering the figure, the number will appear left-aligned just as you entered it. In this case, move the cursor back to the slot and press ox and then IENTERI afterwards . 83 You do not need to type the same value in slots C3 to E3 ; the Replicate command will do it automatically. Select the Replicate command from the BLOCKS menu, and press IENTERI to execute it. Answer the prompts as follows , pressing D to move to the next line after entering B 3 : R a n g e t o c o p y f r oM R a n g e t o c o p y t o 83 C3 E3 This says that you are going to replicate the value in slot B3 to the range of slots C3 to E3 . Press IENTERI to give the command, and the figure 2 0 0 , 00 should appear across the entire row so that the table appears as shown : I I I I I I I I I I I A . . ... . . . . . . .... . .... . . . .. . ..... . . 8 I I I I I I I I • I I c I I I I • • I I I I I D I • I I I I I I I I I E I I I I I I I I I I + F IE:. - - - - - - - - 1 2 R a t es 3 M o r t 9 a 9 e 4 F o o d 5 C a r 6 G as/E l e c t J a n F e b M a r c h A p r i l 6 6 . 67 66 . 67 66 . 67 66 . 67 I 2 0 0 . 0 0 200 . 00 200 . 00 200 . 00 Note that until you press the IENTERI key you can alter the values you have typed for the ranges, moving between the two prompts with 0 and D . 60 Section Two - Using PipeDream Other expenses The expenses in the other categories will tend to vary each month. You can either type in the figures used in the example shown below, or use figures from your own experience. In either case complete the table, remembering to make each slot into an expression slot before you enter the figure , or if you forget, afterwards . A 1 ................................. A I I I I I I I I I I I 8 I I I I I I • I I I I c I I I I • I I I I I I D . I I I I • I I I I I E I I I I I I I I I I + F 1 • J a n F e b M a r c h A p r i 1 2 R a t es 6 6 . 67 66 . 67 6 6 . 6 7 66 . 67 3 M o r t g a g e 2 0 0 . 0 0 200 . 00 2 0 0 . 0 0 200 . 00 4 F o o d 1 20 . 0 0 1 30 . 00 1 20 . 0 0 1 30 . 00 5 C a r 4 0 , 0 0 42 . 0 0 4 4 . 0 0 4 6 . 00 6 G as /E l e c t 1 00 . 00 1 20 . 0 0 1 1 0 . 00 1 1 2 . 00 I!::. - .- . - . - • Monthly totals You are now going to produce monthly totals for the expenses. Enter the label T O T A L into slot A7, and press ITABI to move the cursor to slot B7. Replicating slot references Now press ox, and enter the following expression: s um ( B 2 8 6 ) Press the IENTERJ key, and PipeDream will perform the calculation and instantly display the sum of the figures in the range of slots B2 to B 6 ; ie all the expenses for January. The function s u m ( 8 2 B 6 ) is a convenient way of writing the equivalent expression 8 2+ 8 3+ B 4+ B 5+ B 6 where the slots t o b e added are all in a row, column, or rectangular table. Just as you replicated the value 200.00 above, you can also replicate an expression across a range of slots. Where the expression contains references to other slots, as in this example s u m ( B 2 8 6 ) , the references will automatically be altered to reflect the change in position. I I I Calculating home expenses 6 1 87 Replicate the expression you have just entered for slot B7 to slots C7 to E7 as follows . Select the Replicate command from the BLOCKS menu, and give the options as : R a n g e t o c o p y f r oM R a n g e t o c o p y t o 87 C7 E7 Press IENTERI and totals will appear for each column. The Replicate command has automatically altered the range B2B6 to give the appropriate totals in columns C to E . If you now move the cursor t o slot C7 you will see the expression i n that slot displayed at the top left-hand side of the screen : S UM ( C2C6 ) Note that PipeDream removes unnecessary spaces when storing an expression. 'S UM ( 8286 ) IC:. - .- .-.-. I I I I I I I I I I I A . . . . . . . . . . . .... . . . . . . . . . . . . . . . . . . B I I I I I I • I I I • c I I I I I • I I I • I D I • I I I I I I I I I E I I I I I • I I I • .+F 2 R a t es 6 6 . 6 7 66 . 67 66 . 6 7 66 . 6 7 3 M o r t 9 a 9 e 200 . 00 2 0 0 . 0 0 2 0 0 . 0 0 200 . 0 0 4 F o o d 1 20 . 00 1 30 . 0 0 1 2 0 . 0 0 1 30 . 0 0 5 C a r 40 . 00 42 . 0 0 4 4 . 0 0 46 . 00 6 G as/E l e c t 1 0 0 . 00 1 20 . 00 1 1 0 . 00 1 1 2 . 00 7 TOTAL I 526 . 67 558 , 67 5 4 0 . 67 554 . 67 Percentage expenditures As a final illustration of the power of PipeDream in analysing figures , you are going to calculate the percentage expenditure represented by each of the categories in the table. First type the label P e r c e n t a g e in slot F 1 . Next find the total expenditure for the four months in the table. Move to slot F7 , press ox, and enter the expression s u m ( B 7 E 7 ) 62 F2 Section Two - Using PipeDream Instead of typing the references B 7 and E7, you can 'point to ' each slot by moving the highlighted slot with the keys ITABI , ISHIFTI ITABI , O , and O, and then give the Insert Reference command, oK, to enter the corresponding references, B7 and then E 7 , into the editing line. Now move to F2 and enter the following expression (which will be explained in a moment) : s u m ( B 2 E 2 l / $ F $ 7 * 1 0 0 Press IENTERI to enter the expression. This expression is built up as follows : s u m ( B 2 E 2 ) is the total spent on rates for the four months . F 7 is the overall total expenditure for the four months . The $ signs 'freeze ' the reference so that when the expression is replicated, the reference to F7 will remain the same . s u m ( B 2 E 2 ) I $ F $ 7 is thus the proportion of the overall expenditure spent on rates. s u m ( B 2 E 2 ) I $ F $ 7 * 1 0 0 expresses this proportion as a percentage. Now replicate this expression down the remaining slots in column F by giving the Replicate command from the BLOCKS menu, and entering the options as R a n g e t o c o p y f r oM R a n g e t o c o p y t o F2 F3 F6 The appropriate percentages will be displayed against each category. s UM ( 82E2 ) /$F$7* 1 00 IE:. - .- .-.-. -. I I I I I I I I I I I I A . I I I I I I I I I I B I I I I I I I I I I I c I I I I I I I I I I I D I I I I I I I I I I I E ... . . . . . . . . . . . . .. . . . . .. . . . . . . . + F 1 J a n F e b M a r c h A p r i l P e r c e n t a g e 2 R a t es 6 6 . 67 66 . 6 7 6 6 . 67 66 . 67 I 1 2 . 23 3 M o r t g a g e 200 . 00 200 , 0 0 2 0 0 . 0 0 200 , 0 0 36 . 6 9 4 F o o d 1 2 0 . 00 1 3 0 . 0 0 1 2 0 . 0 0 1 30 . 0 0 2 2 . 9 3 5 C a r 4 0 . 00 42 . 0 0 4 4 . 0 0 46 , 0 0 7 . 8 9 6 G a s/E l e c t 1 0 0 . 00 1 2 0 . 0 0 1 1 0 . 0 0 1 1 2 . 0 0 2 0 . 2 7 I t Calculating home expenses Changing the format 63 When you first start using PipeDream, the results of all expression slots are displayed with two decimal places , the most useful format for working with financial calculations (although values are stored internally with full accuracy) . You can alter the display format for all expression slots in your document by changing the Decimal Places option on the Options Page menu, or for individual slots with the Decimal Places command on the LAYOUT menu. For example, the table would look tidier if the percentages were displayed with no decimal places . First, mark the block of slots containing the percentages with the following procedure : CD Move the cursor to F2 and give the Mark Block command on the BLOCKS menu ; alternatively, type oz as shown on the list of key functions above the keyboard. ® Move the cursor to F6 and give the Mark Block command again. The block containing slots F2 to F6 will now be highlighted. Now select the Decimal Places command from the LAYOUT menu. Reply to the prompts as follows : N uM b e r o f d e c iM a l p l a c es F l o a t i n g f o rM a t 0 N o Press IENTERI and the numbers will be displayed with no decimal places . You can also specify that certain characters , given on the Options Page, should be displayed before or after certain numbers in the document . By default , the trailing characters are set to '% ' , and the leading characters are set to '£ ' . To display a ' % ' sign after the numbers in the marked block, give the Trailing Characters command from the LAYOUT menu. You can also display a ' £ ' sign before each value in the table. Mark the block of slots from B2 to E7 by moving the cursor to each of these slots in tum and typing oz. Then give the Leading Characters command from the LAYOUT menu. 64 Section Two - Using PipeDream Finally, the column labels can be right-aligned. Mark slots B 1 to F l with the Mark Block command, ¢Z, and give the Right Align command from the LAYOUT menu. Press ¢0 to clear the marked area, and the table will now appear as shown : F6 S UM ( 86E6 ) /$F$7* 1 00 E:. • • :1 :1 -:::J I I I I I I I I I I I I A I I I I I I I I I I I B I I I I I I I I I I I c . . I I I I I I I • I D I I I I I I I I I I I E .. . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . F 1 J a n F e b M a r c h A p r i l P e r c e n t a 9 e 2 R a t es £66 , 67 £66 , 6 7 £66 , 6 7 £66 . 67 1 2 % 3 M o r t 9 a 9 e £200 . 00 £200 . 00 £200 . 00 £200 . 00 37% 4 F o o d £ 1 2 0 . 00 £ 1 30 . 0 0 £ 1 20 . 0 0 £ 1 30 . 00 23% 5 C a r £40 . 00 £42 . 0 0 £44 . 0 0 £46 . 00 8% 6 G as/E l e c t £ 1 00 . 00 £ 1 20 . 00 £ 1 1 0 . 00 £ 1 1 2 . 00 I 20% What you have learnt These three examples have demonstrated how PipeDream can help you to write letters and design text documents (word processing) , set up lists of information, sort them, retrieve the items you need (databases) , and set up and perform calculations on tables of numerical or financial information (spreadsheets) . For simplicity, each example focussed on one aspect of PipeDream's capabilities . However, the real power of PipeDream comes in its ability to mix all three different functions in a single document. For example , the expense account could be incorporated into a letter to your bank manager, the name and address list could include financial information and calculations , or the party invitation could be automatically addressed to everyone on your name and address list. You are now in a position to start using PipeDream for your own applications , but to get the most out of its facilities you will probably want to read through the list of commands given in Section Five. You will then be able to refer back to it when your requirements of PipeDream become more advanced. I t Section Three Entering the Diary D I ARY 13�l•W•l#j#ffi4 B L O C K S: C•JRSOR ED I T F I LES Using the Diary This chapter will show how you can use the Z88 Diary application to organise your engagements, and plan your time. It demonstrates how to : • Enter engagements into the Diary • Search for and list out all engagements relating a particular thing • Use the Diary with the Calendar popdown to find any date very quickly Before using the Diary, make sure you have set the correct time and date on the Clock popdown, as described in Section One. You can enter the Diary in either of two equivalent ways, whichever you find most convenient : Either: go into the Index , by pressing the llNDEXI key, and select the Diary from the APPLICATIONS list by pressing the D and D keys until the Diary item is highlighted. Then press the !ENTER] key to enter it. Or: type D D . You can do this from anywhere, even another application. Once you have made entries in the Diary, it will appear on the list of SUSPENDED ACTIVITIES in the Index , but there can only be one copy of the Diary. Type �CT to go to today's date, and the Diary screen display similar to the diagram shown below will appear : . - . o z TUESDAY 1 7TH MARCH 1 9S 7 I NS E R T M O D E 66 Making a Diary entry Moving between days Section Three - Using the Diary This gives you a page for today's date, onto which you can type infor mation in any form you like. The information is stored permanently in the diary, and you will be able to refer back to it on another occasion. Try typing the following appointments onto today's page in the Diary, pressing the ITABI and IENTERI keys where indicated to lay out the lines neatly : W o r k : ITABI S i m o n : ITABI 1 0 . 0 0 S a l e s m e e t i n g IENTERI 1 2 . 3 0 P i c k u p f r o m s t a t i o n IENTERI You can actually lay out information in the Diary however you like, but it is a good idea to label your appointments , as in the example above, because you will then be able to locate everything in a particular category by searching for the appropriate label. An example of this is gi ven below. You can move between days in the Diary by typing o .Q. to go to the next day o i} to go to the previous day Try moving to the day after tomorrow, by typing o .Q. twice. Then enter the following appointment : W o r k : ITABI 1 1 . 0 0 P r e s e n t r e p o r t t o B o a r d IENTERI I I I I I I I Section Three - Using the Diary Searching for Diary entries The Diary provides a powerful Search command which enables you to find and list out all appointments in a particular category. As an illustration, the following example provides a list of all appointments relating to Work. 6 7 First select the BLOCKS menu, b y pressing the lMENUI key until B L O C K S is highlighted o n the menu bar a t the left-hand side o f the screen. Then move the cursor to highlight Search on the menu, and press IENTERI to give the command. The following prompts will be displayed : - - - - - - - - - - - - S TR I N G TO S E ARCH FOR - - - - - - - - - E � U A T E U P P ER A N D L O W E R CASE , , , , , , , , , , , Y � s S E ARCH O N L Y M A R K E D B L OCK , . , , , , , , , , , , , , N o PRO D U C E L I S T , • • • • , , • • • • • . . . • • , • • • , • • • • N o PR I NT L I ST . . . . , . . . , . . . . . . . . . , . , . , , , , . , t-� o Below the prompt S TR I N G T O S E AR C H FOR type W o r k : Then press D three times to move the cursor to the line PRO D U C E L I ST • • • , • • , • • • • • , • • • , , • , • , , , • • N o and type Y t o alter the value o f the option t o Y e- � . Now press l®"fil , since the other options are not relevant , and the appointments will be listed : T h u rs d a y 1 7 t h M a r c h 1 987 W o r k : 1 0 . 0 0 S a l es � e e t i n 9 S a t u r d a y 1 9 t h M a r c h 1 987 W o r k : 1 1 , 00 P r es e n t r e p o r t t o b o a r d Of course, in your case the dates will be different, corresponding to the information you have used. 68 Using the Calendar and Diary together TUESDAY 1 7TH MARCH 1 987 I NSERT MODE I NSERT MODE Section Three - Using the Diary By calling the Calendar popdown from within the Diary, you can move quickly between different dates , and the Diary will then give the page for the date you have selected. For example, having forgotten a friend's birthday on the 1 7th March, you decide to make an entry in the Diary to make sure you do not forget it the following year. Use the following procedure to find the right day very quickly : MARCH 1 9 87 , M O N T U E W E D T H U F R I S AT S U �� D C 1 2 3 4 5 6 7 8 ... 9 1 0 1 1 1 2 1 3 1 4 1 5 Select Calendar 1 6 � 2 3 :.:: 1 8 25 1 9 20 2 1 2 2 2 6 27 28 2 9 popdown 3 0 3 1 M O N T U E ... ¢ .(J. ! Go to next year M A R C H 1 9 S S W E D T H U 2 3 9 1 0 F R I S AT Escape back to Diary application 7 1 4 2 1 28 1 8 1 5 2 2 29 �� · 3 0 3 1 4 1 1 1 8 25 5 1 2 1 9 2 6 6 1 3 20 27 You are now on the diary page for the same date one year later, and can type in the reminder. Refer to the following section for a full list of the Calendar operations . I I I I I I I I Section Four Using the popdowns The 288 popdowns are utility programs that you can make use of while you are working within another application, such as PipeDream, the Diary, or BBC BASIC . They pop down over your application screen, and disappear again when you press [Escl to return to the application. The following popdowns are provided in the 2 8 8 : Calculator - D R Perform calculations Calendar - D C Look up dates Clock - DT See the current time, and today's date Alarm - DA Set alarms and reminders Filer - DF Perform operations with files Panel - D S Customise the 288 to your requirements Import/Export - D X Transfer documents between the 2 8 8 and other makes o f computer Index - lt>JDEX[ or DI Enter applications , popdowns, or suspended activities, and examine which cards are present Usin g popdowns You can either call a popdown by pressing the D key combination given above , or from the Index as follows : Calling a popdown from the Index Highlight the popdown's name on the APPLICATIONS list . You can move the bar highlighting items on this menu by pressing the D and D keys at the bottom right of the keyboard. If you move the bar too far, press D to go up again. Then press [ENTER] to run the popdown you have selected. The C alculator - D R - I · - -- .i- . .-lil D E L 7 s i.. s 1 :2 0 . If you ever need to perform calculations while using the Z88 you can simply call up the Calculator popdown, even if you are in the middle of doing something else at the time : , _ , _ _ . - • - 0 . 0 0 I Go 1 1 o n :s: <- L i t r e :s: M i l e :s: k ,.., :S t o M R c l M + M P G I � 1 0 0 1< n 9 U n i t .,.. A c r e s H e c t a r e s 6 Y < > x - I I> k 9 3 :s: I <i n / o z 9 z F i x = O e 9 F o e , c The top line of the calculator displays the result of your calculation - initially 0 .00 - and below that are the calculator keys . You can press these in either of two ways, depending on your preference . Either: Use the cursor keys '0 .Q. O O to highlight the operation you want , and then press IENTERI to enter the selected key. Or: Type the Z88 key corresponding to the key you want, as listed on the next page. I I I I I Th e Calculator Entering numbers Calculator Key Z88 Key Function: Leaend : Eauivalent : Clear c Clear DEL ml Delete last keypress StoM s Store to memory 0 to 9 RclM R Recall from memory 0 to 9 O to 9 O to 9 Enter digit Decimal point Unit u Convert units (see below) Y<>x y Swap y and x sign I Change sign Fix F Number of decimal places % % Percentage (see below) + + or P Plus x X, * , or T Times - - or M Minus I /, \ , or D Divide = = Result Enter a number by selecting the digits with the cursor keys, and press IENTERI ; or just type the number with the keys 0-9 . You can use C or ml to correct typing mistakes. Numbers can contain a decimal point, obtained by typing the full-stop key, and can be entered in scientific notation, as in 1 .27E6 , entered as 1 . 2 7 E 6 , which means 1 . 2 7 x 1 06 . 7. lE- 1 3 , entered a s 7 • 1 E I 1 3 , which means 7 . 1 x 1 0· 13. 71 The two operands of an operation can be exchanged, before pressing = , by selecting the Y<>x operation, or pressing Y . For example , to find the reciprocal of a previous calculation, enter I 1 Y = All calculations are performed to an accuracy of nine decimal places , and numbers can lie between 1 E 3 8 and l E-3 8. The Calculator displays E r r o r if an error, such as 1/0 , occurs . 72 Display format Constants Storing and Recalling Section Four - Using the popdowns The format in wh ich numbers are displayed can be altered with the Fix operation, which gives the prompt F i x "? Typing a number between O and 8 will fix the number of decimal places displayed to the specified number ; the initial value is 2 . Typing 9 will give free format. Entering a number, followed by one of the arithmetic keys pressed twice, stores the operation as a constant operation and displays the operator with K at the top right-hand comer of the screen. For example, entering 1 . 1 5 * * sets up constant multiplication by 1 . 1 5 , and displays * K ; entering 1 0 0 0 = then gives the result 1 1 50 .00 , and 2 0 0 0 = gives the result 2300.00. You can store a result for use later in a calculation with the StoM and RclM operations. To store a result, select the StoM operation (or type S) . The prompt S 'l; o M "? will be given, to which you should give a register number by typing a digit from 0 to 9 . Up to ten different results can be stored, one in each register. You can also add a result into a register, subtract a result from a register, multiply a register by a result, or divide a register by a result, I I I I I I I I I I I I The Calculator Percentages by giving the StoM operation followed by ' + ' , '-' , ' * ' , or '/' respectively, followed by the register O to 9 . You can cancel a store operation in the middle b y pressing IEscl . For example, 1 . 2 s 9 stores 1 .2 in register 9 , and 3 . 5 6 S - 9 subtracts 3 . 5 6 from the same register. Finally R 9 recalls the result from register 9 . 73 The ' % ' key works in conjunction with one of the other keys ' * ' , '/' , ' + ' , or '-' to calculate percentages , and to add or subtract a given percentage to or from a number. The following examples illustrate each of these cases. To find 1 2 % of 1 500 enter 1 5 0 0 * 1 2 % To express 660/880 as a percentage , enter 6 6 0 I 8 8 0 % To add 1 5 % on to 1 2 5 enter 1 2 5 * 1 5 % + Likewise, to discount 1 2 5 by 1 5 % enter 1 2 5 * 1 5 % - 74 Converting units Section Four - Using the popdowns You can convert any result between the pairs of units displayed on the C ONVERT menu by selecting the Unit operation. Highlight the unit you want to convert to using the cursor keys , and press IENTERI to perform the conversion. For example, to convert from Litres to Gallons highlight Gallons, and to convert from Gallons to Litres highlight Litres. To exit from the CONVERT menu press rn . I I I I I I I I I I I I The Calendar - D C The Calendar provides a convenient tool for planning your engagements , particularly when you want to look up dates quickly without leaving the application you are currently working on. Calling the Calendar displays the page for the current month, or the month you last looked at : H 1 � 8 7 H O N T U E W E D T H U F R I S A T S U N 2 3 4 9 1 0 1 1 �� � �� 3 0 3 1 5 1 2 1 9 2 6 6 1 3 2 0 2 7 1 7 8 1 4 1 5 2 1 2 2 2 8 2 9 You use the cursor keys , in combination with the JSHIFTI and ¢ keys , to move about within the calendar as follows : previous day previous week previous month previous year next day next week next month next year If necessary, the calendar will automatically turn a page to the next or previous month. The Calendar is accurate back to the year 1 753 (when the Gregorian calendar was accepted in England) and so has historical applications in addition to its obvious business uses . 76 Searching for a day Active days Section Four - Using the popdowns You can also use the Calendar to go immediately to any date in any year. Press !ENTER! , and the prompt L o o k f o r : 1 7/03/ 1 987 will be displayed, with today's date initially displayed. Type in the date you are searching for, and press the !ENTER! key. The cursor will move to the specified day. The date can also be entered in the form 1 7 m a r 1 9 8 7 if you find this more convenient . The Z 8 8 defaults to the twentieth century, so 1 7 m a r 8 7 is equivalent to 1 7 m a r 1 9 8 7 . If the Calendar popdown is called from the Diary application, days containing information in the Diary will be identified on the Calendar with a pointer against the date Such active days can be found in the Calendar very quickly with the commands D O previous active day o Q next active day I I I I I I I I The Clock - D T The Clock popdown can be called whenever you need to see the correct time or date. The time is displayed in 24-hour format, and is accurate to within a few seconds per day. To set the time and date, see the details given in Set the clock, p . 9. C L O C K T u e s d a � 1 7 t h M a r c h 1 9 8 7 1 1 : 44 : 53 - w= ::t::; _, l.,.,- i4 - S E T Press JESCI to return to the current application. Because you may be using the Clock popdown to time something, the Z88 will not switch off after the timeout period if the clock is displayed on the screen. The Alarm - D A Alarm options The Alarm popdown can be used to make your Z88 remind you of important events or appointments , or simply to wake y o u up in the morning. Any number of alarms can be set up, and for each alarm you can specify the following information: DATE The d at e on which the first alarm will occur. F o r a new alarm this is initially set to the current date, or if the alarm i s called from the Calendar or Diary, the Calendar or Diary date. TIME The time at which the alarm will occur. For a new alarm this is set to the current time, but you will usually alter it to the required alarm time. All times in the Alarm are given in 24-hour format. REASON/COMMAND For each alarm you can specify a message of up to 23 characters, or a CLI command string which will be executed to cause something to happen; see below. To set an alarm, press IENTERJ . The alarms you have set up will become active as soon as you exit from the popdown by pre ss ing � . Note that the Z88 will not switch off automatically while the alarm popdown is on the screen. Each alarm can also have the following optional settings : Bell: can be ON or O F F , determining whether the Z88 bleeper sounds when the alarm is activated. Alarm type: normally A L A R M . This can be altered to E X E C U T E to allow a command, in the R E A S O N F O R A L A R M field, to be executed when the I I I The Ala.rm Clearing alarms alarm is activated. Thus you could, for example, cause the Diary to be entered and a line of text to be typed in automatically on an alarm: # D : C T U r g e n t m e s s a g e For more information on executing commands , see CIJ files, p . 1 79 . Repeat every: normally set to NEVER , s o that an alarm will oc cur just once, at the specified time and date . The repeat rate can be altered to one of the following to obtain a repeating alarm: YEAR , M O N T H , WEEK , D A Y , H O U R , M I NU TE , SEC O N D You can move between these options with ISHIFTI 0 and ISHIFTI .JJ. ; pressing 0 or .JJ. then increases or decreases the number of the unit selected. You can thus specify every ::s: H O U R S , for example. 79 No. of times: specifies the number of times that the alarm will be repeated before being cancelled. It is initially set to N EVER , so that the alarm will occur just once. It can be set to FOREVER by pressing .JJ. , or a number from one upwards by pressing 0 . Holding the ISHIFTI key down while pressing 0 or .JJ. will increase or decrease the number in tens, and <> 0 and <> .JJ. will change it in hundreds. By setting these fields appropriately, you can obtain almost every possible alarm setting. For example, to cause an alarm to occur on the 3rd March, 3rd April, and 3rd May, at 1 2 .00, set DATE T I ME 3 M a r 1 9 8 7 1 2 . 0 0 REPEAT E VE R Y N O , OF T I MES 1 M O N T H 3 Note: Do not set the alarm to repeat every second for ever. You will not be able to cancel it without doing a soft reset. To clear an alarm, select it with the cursor keys 0 or .JJ. on the list of alarms , select C L E A R A L A R M with Q and c> , and press IENTERI . With a repeating alarm this just clears the present alarm; use C L E A R A L A R M twice to remove a repeating alarm completely. If an alarm occurs while the Z88 is turned off, the alarm will sound and the Z88 will be turned on in LOCK O U T state to prevent accidental key presses. To clear this state turn the Z88 off and then on again in the usual way, by pressing both ISHIFTI keys. The Filer - D F With extension RAM and EPROM cards fitted, you will have the ability to store many documents in your 288 . The Filer provides everything you will need for organising these; in particular it allows you to: • Obtain a list ( catalogue) of all your files, or the files in the optional EPROM card ( Catalogue Files and Catalogue EPROM) . • Move files to and from an EPROM, which provides permanent storage on a removable card in slot 3 of the 288 (Save to EPROM and Fetch from EPROM) . • Change the names of files within the filing system (Rename). • Make additional copies of files (Copy} , or remove files completely (Erase) . Other commands , for more advanced use of the Filer, are explained in the Filer Reference section. When you have finished using the Filer, press IEscl to return to the original application. Hierarchical stlllcture The 288 filing system is a hierarchical filing system. This means that you can group files together within ' directories ' . This facility is akin to keeping similar documents in a folder within a filing cabinet , and is of great assistance in keeping a large number of files orderly . However, for simple use of the filing system you will not need to use these facilities ; see the Filer Reference section for a full description. Note: With Operating Systems up to and including 3 .0 it is important that you only exit the Filer by pressing IESCI . In particular, if you are using Catalogue Files ( oCF ) or Catalogue EPROM ( OCE ) and you exit the Filer in the middle of the operation by using liNDEXI or o followed by a letter, then one of the files can become marked as 'IN USE ' , and you will not be able to access it without performing a soft reset. I I I The Filer Entering the Filer Commands Allows a Filer command to be selected and executed. 8 1 The Filer display consists o f two windows ; a COMMANDS window, and a DIRECTORY window : Catalogue window Lists all the files and directories in the current directory. Directory Shows the currently-selected device and directory. �.;���NOS KOf1i(1l!•xrtlJ:Wiit!* ==l'l .. w • o • R · K -----H� t!iii �- llli li.UIE• L · E · T· T· E R • s • . • P · O -- .. CATALOG U E E P R O H 9 aM e . b a s l e t t e r . t t o z SAVE TO E P R O H F E T C H F R O M E P R O M COPY RENAME ERASE Commands menu Selected file Directory Filename Lists the Filer commands. Marker indicates files that have been selected. Directory names are in small capitals. Filenames can be upper and lower case File names Each file or directory in the filing system has a name of up to twelve letters or digits. This can be followed by a full stop and up to three further letters or digits called the extension, and is normally used to describe the type of the file. Thus a BASIC program could be saved as g a m e . b a s where b a s is an extension used for all BASIC programs . Upper- and lower-case letters are treated as equivalent in file names . In the catalogue window directories are displayed in a small typeface. Specifying devices When sa vin g and loading files to and from applications , such as PipeDream, you will normally just give the file name and extension, if there is one . However, the Filer keeps a fuller description of where the file is in the system, including which RAM card it is on (the device} , and several of the Filer commands will show this full form of the file name. 82 Giving Filer commands Section Four - Using the popdowns The full form of a file name is :DEVICE/filename The most useful options for DEVICE are : : RAM . O RAM in slot 0 (internal memory) : RAM . 1 to : RAM . 3 RAM in slots 1 to 3 (external memory) A full list is given in the Filer Reference section. * can be used in any part of a file name to match any characters ; thus g a me * represents any file name beginning with g a m e , and : RAM . * represents all the RAM in the Z88. You can give filer commands in one of three ways , depending which you find most convenient : © Select the command from the Filer COMMANDS list , using the 11 and .Q. keys . The list of commands will scroll up if you move the cursor below the bottom of the screen. Then press IENTERJ to give the command. ® Select the command from the COMMANDS menu with the cursor keys , and press IENTERI to give the command. ® Give the <> key sequence for the command, as listed below. I I I I Th e Filer F I L ER 'CllliU'fl!NDS C a t a l o g u e F i l e s C o p y R e n aM e E r as e Ex e c u t e S e l e c t F i r s t F i l e S e l e c t E x t r a F i l e Selecting files 83 COMMANDS menu Press IMENUI to see the COMMANDS menu : <>CF <> C O <>RE <>ER <>EX Imm C r ea t e D i r e c tor y S e l e c t D i r e c tor � U p D ir e c tor .,, Dow n D i r e c tor .,, C u rs o r R i 9 h t C u rsor L e f t C u rsor U P <>CD <>S I SHIFT � SHIFT -8- ¢ C a t a l o g u e EPROM S av e t o E P R O M F e t c h f r oM EPROM S e l e c t D ev i c e T r e e C O P \I <>CE lllllllD OZ SHIFT!rnm C ursor Dow n 4' � -a- NaM e M a t c h <>ES A D V A N C E <>EF 4' <> -0. i>' <> S U SELECT <>TC Imm <>NM ACT I ON � RESUME The Filer provides two ways of identifying the files you wish to operate on. Either: Type the file name after the Filer prompt N aM e : I Or: Select the file or files in the catalogue window, as described below. Select First File - IENTERI or ITABI Select Extra File - ISHIFTI lENTERI or lTABI Select the first file by highlighting the file name using the cursor keys , and press IENTERI (or ITABI ) . You c an select further files, if required for an operation that can be performed on several files at once ( eg Erase) , using ISHIFTI IENTERI (or ITABI again) . When selected, files are indicated by a marker to the left of the file name in the catalogue window, as shown in the example on p. 8 1 . 84 Filer commands Section Four - Using the popdowns The commands for simple use of the Filer are listed below ; for full use of the hierarchical directory structure, see Section Seven - Filer Reference, p. 1 75 Catalogue Files - ¢ CF Gives fuller information about a specified list of files . The subset of files to be catalogued is specified after the prompt N aM e : I Reply as follows : IENTERI f r e d * * . b a s catalogues all files ( in the current directory ) catalogues all files beginning with f r e d catalogues all files with a b a s extension Each file will be listed as : File name Creation time and date Last updated time and date Size in characters 1 e t t e r , tx t n ov e l , tx t g aM e , b as T o d a y 0 1 -J u n- 1 987 02-J u n- 1 987 1 7 : 42 : 54 1 7 : 4 1 : 1 7 1 2 : 27 : 43 T o d a y 1 7 : 42 : 5 4 T o d a y 1 4 : 32 : 50 02-J u n- 1 987 1 2 : 27 : 4 3 1 25 4 1 3 1 1 2 827 ( The last updated time and date are only relevant if OPENUP is used from BASIC . ) If the file is open at the time it is catalogued, the size will not be shown. When you catalogue or save to a blank EPROM, the display will go blank for a few seconds while the EPROM is checked. Catalogue EPROM - ¢CE Gives a list of information on all files in an EPROM card fitted in slot 3 . The directories and file names will b e given t o show where the files originally came from. Save to EPROM - ¢ES Copies files from the filing system to an EPROM card fitted in slot 3. The file or files to be saved can either be selected as already described, or specified after the prompt N a M e : I I I I The Filer Note that while a file is being saved to EPROM the screen will blank intermittently until saving is completed, when the 288 will bleep. Fetch from EPROM - oEF 85 Copies files from EPROM card in slot 3 back to the filing system. Gives the prompts S o u r c e : D es t i n a t i o n : Source: specifies the name of the file in the EPROM. Destination : gives the name it is to be saved as in the destination filing system. It is initially set to the same as the source name , but you can edit it if you want to save the file under a different name. Copy - oCO Makes a second copy of a file. Gives the prompt allowing you to specify the file name to be copied, followed by the prompt for the name of the copy. Multiple files (selected in the catalogue window) can be merged into a single file with the Copy command ; they will be appended in the order in which they were selected. Rename - ORE Allows the name of a file to be altered. Gives the prompts M af'l e M ew n af'l e : 86 Section Four - Using the popdowns For example , to change the name of a file from g a m e . b a s to o l d v e r s i o n you would specify N aM e : 9 aM e , b as N ew n aM e : o l dv e rs i o n Note that you cannot use the Rename command to move a file from one directory or device to another. The new name must be a simple file name ; devices and path names are not permitted. Erase - oER Allows one or more files to be removed from the filing system. Gives the prompt N aM e : followed by the prompt C o n f i rM e a c h f i l e ? Y es Pressing IENTERI will prompt for each file you have selected to be erased, so allowing you to change your decision for any particular file. Alternatively, changing the option to N o by typing N will erase all the selected files without further prompting. You will not be permitted to erase a file which is in use ; for example, a directory containing other files, or an open BASIC file . Files can only be erased from the EPROM with the ultra-violet EPROM eraser. Note that because parts of an erased file may still be present , you should not rely on the Erase command for disposing of confidential information from the system. Advanced Filer commands The remaining Filer commands are for advanced use of the Filer, and the hierarchical directory structure ; these are explained in the Section Seven - Filer Reference, p. 1 75 . I The Panel - DS Altering the panel Panel options The Panel popdown allows you to set up aspects of the Z 8 8 ' s operation to suit your own preferences . You can alter the rate at which keys on the keyboard auto-repeat when you hold them down, the time after which the 288 will automatically switch off, the default device and directory used by the Filer , and the parameters for the serial interface. You can call up the panel by typing os (for Settings) . To alter an option on the panel, first select it by moving the cursor to the appropriate line with the cursor keys D, D , Q , and CJ . Then type in the new value for the option, and press IENTERI . In the case of options with alternative values you can also select between the alternatives by giving the Next Option command, <>J, or you can specify the option you want by typing the option's first letter. You can save a particular set of panel settings in a panel file , using the Save command on the FILES menu. Selecting the New command on the FILES menu returns the settings to their initial values. For each of the following options the initial default value is shown in brackets . Note that options marked t affect only the state of new activities , and existing activities retain their original settings. Keyboard options Auto-repeat rate (6) : determines the rate at which keys auto-repeat when held down continuously. Smaller values increase the repeat rate. A value of 0 gives no auto-repeat. Keyclick (No) : altering the option to Y e- � gives an audible bleep at each keypress, to provide additional feedback during touch-typing. 88 Section Four - Using the popdowns t Insert/Overtype (Insert): in Insert mode text typed at the keyboard is inserted at the cursor position, and subsequent text on the line moves to the right to make space for the new text . Some typists prefer Overtype mode, in which text types over any text previously on the line. To insert text in Overtype mode you need to make a gap in the line with the Insert Character command OU first . Filer options t Default device (:RAM. 0): the device to and from which files are saved and loaded, which is set to the internal RAM memory filing system by default . It can also be set to :RAM . 1 , : RAM . 2 , or :RAM . 3 , corresponding to the three RAM cards . t Default directory allows a path of one or more directories , which should already exist, to be specified for all filing-system operations. By default the top-level directory is selected. Machine options Timeou t (mins) (5): determines the time after which the 2 8 8 will switch off if nothing is typed at the keyboard; a value of 0 disables timeout . Setting the timeout to 2 minutes will extend the effective battery life of the 288 ( 1 minute is possible but not recommended for normal use). Sound (Yes): allows the internal sound system to be switched off. Map (Yes): allows the PipeDream page map display to be turned off if not required. Typing and editing will be marginally faster when the map is disabled. Map size (80): allows the size of the map to be altered up to a maximum size of 92 characters across , or 2 5 5 characters across on a 288 with at least 1 2 8K in card slot 1 . Reducing the size of the map allows a larger text display width to be used in PipeDream. Date format (European): determines the format for all dates in the 288; the default date format is European, so that dates are recognised in the form: day/month/year The option can be changed to American to work with the format month/day/year t I I I Th e Panel ( Serial port parameters / � I'""" 89 i Transmit baud rate (9600) I Receive baud rate (9600): can both be set to any of the following values: 75, 300 , 600, 1 200, 240 0 , 9600 , � � t. . Parity (N o n e) : can be set to None , Space , Mark, Odd, or Even. The number of data bits is � · or 7 otherwise. 3 Xon!Xoff (Yes): determines whether the serial communication protocol · uses Xon/Xoff. l1 . The number of start and stop bits is fixed as follows : � Transmit : 1 start bit, 2 stop bits . .J:::...L ) Receive: 1 start bit , 1 stop bit. D'\ � Note: In versions of the Operating System up to and including 3 . 0 ODD and EVEN parity settings do not result in correct behaviour. Import/Export - DX Using Import/Export The Import/Export popdown enables you to transfer files between the ZBB and other makes of computer. It communicates with the other computer through the serial port on the right-hand side of the machine. To use Import/Export you will need an Import/Export program for the other computer, and a connecting lead. Follow the directions supplied with this for a detailed explanation. Details of the serial port connections are given in Appendix B . The serial parameters should b e set up in the Panel before running Import/Export . Also run the program on the machine you wish to communicate with. The program recognises the following commands, which are given by typing the first letter of the command: S)end file Prompts for the name of the file to be transmitted , and then transmits the name and file to the receiving computer. Wildcards are accepted in the file name . R)eceive file Prompts for a file name ; press IENTERI to receive a file and use its transmitted name, or type a name to rename the received file . B)atch receive Receives a sequence of named files , terminated by an end batch code. E)nd batch Sends an end batch code ( ESC Z) . To send a batch of files use the following procedure : © Give the Batch receive command on the receiving computer ® Send each file with a Send file command (or give a ' * ' wildcard in the file name) ® Give an End batch command. l l t Tli e Pan el Import/Expo rt protocol 91 The Import/Export protocol is given here for programmers who want to interface the Z 8 8 to a computer by writing their own interface software. l C o n t r o l sequenc � s 7 Seauence Function ESC N Start of file name ESC F Start of file/end of file name ESC E End of file ESC Z End of file or end of list of files ESC B x x Where x x is two ASCII d i gi t s representing a hex byte. For example , the byte &A9 is transmitted with ESC B A 9 . XON = & 1 1 Receiver sends to transmitter to restart flow . XOFF = & 1 3 Receiver sends to transmitter to stop flow. Note that all the characters after the ESC code must be in upper-case ASCII. Transfer protocol First file, and subsequent files : ESC N filename ESC F data ESC E Last file : ESC N filename ESC F data ES C Z where data is a sequence of characters in the range & 2 0 to &7E . Codes in the range &00 to & l F and & 7F to &FF should be transmitted using the ESC B prefix . Import/Export will give a S us p e n d e d message if a battery low is flagged while s ending or receiving, or if the Z88 is switched off or the flap is opened . In this case you must repeat the transfer. The filename can be omitted. The Index - D I The Index screen APPLICATIONS Allows you to select and enter an application or popdown . , ' INOEX COMMANOS NAME K E Y '"''£ �, l � e r e <iM BA I C CB C a l c u l a t o r C R C a l e n d a r c c C l o d . C T T h e Index popdown allows you t o • Enter popdowns or applicatio ns . • Start PipeDream (or B B C BASIC ) with a new , blank, document (or program) . • Obtain a list of all the suspended activities you have in the Z 8 8 , an d remove activities you n o long er nee d. • Insert and remove RAM , RO M , or EPROM cards. Y O U R R E F . N a m e g i v e n t o identify a suspended a ctivity SUSPENDED ACT IV ITI E S L i s t s t h e activitie s bei n g k e p t in t h e machine. C A R D S In d i c a te s a ct 1 v 1 t 1 e s u s m g an a pp l i c a t 1 0 n ca r d , an d I I th d l t b r e a s s o ci a t e s 0 n u m e I , . · - C Z YOUR R E Ff, A P P L I C A T I O N - - - WH E N S U S P E N D E D - · - C: A R D J R e p o r t I � i a r � I O O a � i � : r� : �$ I P i p e r e a M Y es t e r a y E p s o n P r i n t e r E d Y es t e r d a y 09 : 06 : 1 0 Cr:JMM88 Y es t e r- d a \:I 08 : 56 : 1 9 2 I I t I I I I I The Index Enterin g an application Suspended activities 93 To enter an application, or a popdown , select its name on the APPLICATIONS list by moving the highlighting bar up and down with the cursor keys D and D , and press the IENTERI key : Diary DD Pip eDream DP BASIC DB Calculator DR Calendar DC Clock DT Alarm DA Filer OF PrinterEd DE Panel OS Terminal DV Imp-Export DX When the b ar reaches the bottom of the screen, the list scrolls up to show the remaining options . Entering PipeDream (or BBC BASIC) from the Index APPLICATIONS list creates a new , blank document (or program) . The SUSPE NDED ACTIVITIES list shows the following information for each suspended activity : Headinq Meaninq Y O U R R E F , The name given to the document (with the PipeDream o FC or oFL commands, the Diary or PrinterEd oFC, oFS, or oFL commands , or the BASIC * N AM E command) A P P L I C A T I O N The application name l,o) H E N S U S P E N D E D The time and date the document was suspended C A R D S The numb er of the card slot, for activities using an application card There can be more than one PipeDream and B B C BASIC suspended activity, but only one for each of the other applications . 94 Cards Section Fo ur - Using th e pop downs Re-entering a su spende d activi ty To re-enter a suspended activity, select it by moving the highlighting bar across with the cursor keys , and then p r e s s the E� -;- :; ;; k e y . Alternatively, pressing ClP or D B repeatedly will ent er each Pip e D r e am or BBC BASIC activity in turn. Killing activities - OiaLL To kill a suspended activity, select it on the SUSPENDED ACTIVITIE S list with the cursor, and type o KIL L . The activity will be removed from the list, and the document (or program) associated with i t will b e lost . ¢PURGE is equivalent to a soft reset , which kills all suspended activities, and should therefore be used with great caution . There are three types of card for use with the 2 8 8 : RAM cards are for storing your own information. Application cards, referred to as ROM cards, are used for plug-in programs and help text . EPROM cards allow you to write information once only , but ret ain it even when removed from the machine thus providing a secure way of saving your data. Card information - ¢ CARD The ¢ CARD command, on the Index C OMMANDS menu. shows the type and size of the card in each slot . Inserting or removing cards Cards should only be inserted or removed with the 288 s w it ch e d on . First enter the Index. Then open the perspex flap at the front of the machine. Check that the screen goes blank . The comput er s hould b l e e p once as you open the flap. The card can then be pushed in or pulled out . The label on the end of the card should be upright when you pus h th e card home . When you have completed t h e o p eratio n , push th e perspex flap back into position. The Index RAM cards Card errors Errors which occur during the insertion or removal of cards are displayed in the OZ position at the left-hand side of the screen. 95 A m message is given if a RAM card is removed, indicating that a soft reset is necessary. If you remove an application card which a suspended activity is using, the ZBB will give a continuous tone and flash C A R D until the card is replaced. The suspended activity should be removed with <>KILL before trying again. An I N D E X message is given, together with a continuous tone, if you have attempted to remove an application card while not in the Index. RAM cards allow you to store more data in the Z88. RAM cards are available in different sizes; the 32K RAM approximately doubles the storage of the Z88 , providing space for an extra 32 , 000 characters. The 1 2 8K RAM increases memory even more , allowing you to use the Z88 to store very large documents , diaries, or programs. It is recommended that you avoid using slot 3 for RAM cards because they draw more current in slot 3 than in slots 1 and 2 , and slot 3 would then not be available for EPROM cards. Expansion facilities Some additional facilities will be available on a Z88 which has a RAM card of at least 1 2 8K in slot 1 : Less than 128K in slot 1 128K or more in slot 1 Map limited to 92 pixels Map can be up to 255 pixels BASIC workspace BK BASIC workspace 40K RAM card FAIL If you do accidentally remove a RAM card, a [Jill! message will appear and a soft reset will be necessary. The Z88 will attempt to keep all the files in the remaining RAM . If you need to change a RAM card you must therefore save all your important data into another RAM card, EPROM , 96 EPROM cards Section Four - Using the popdowns or transfer your files to another computer using the Import/Export programs . Since the RAM cards draw their power from the 288, the contents will be lost if the 288 loses its power. Using the Filer with extra RAM Files are normally stored in the internal memory. To make the 288 use the external card you need to set the DEVICE to : RAM . n where n is the slot number (shown in white letters on the flap). The device used by new applications is determined by the Panel setting. For example, if you have a RAM card in slot 1 , set the Panel: D e f a u l t D ev i c e : RAM . 1 Each existing application will store the device it is using. To alter these, first go into the application, and then use the Select Device in the Filer to change the device setting for each application you want to use the new RAM card. EPROM cards can be inserted or removed at any time, except when you are actually reading or writing to EPROM. The EPROM card must go into the right-hand slot, labelled 3 . When you catalogue or save to a blank EPROM, the display will go blank for a few seconds while the EPROM is checked. EPROM cards provide the best method of archiving valuable data files or programs . Once the EPROM is full, the recommended way to erase it (if required) is to use the ultra-violet EPROM ERASER from Cambridge Computer Ltd. Note that an EPROM card should be removed before restoring power to a 288 in any of the following circumstances , or data may be corrupted: after it has been left unpowered; after it has been left for some weeks so that the batteries have failed; aft er a persistent battery low sign; or when changing the batteries . Never leave EPROM cards where sunlight can shine onto the round window. Significant exposure to strong direct sunlight of more than ten minutes may cause loss of data. a I I I I I I Th e Index 9 7 EPROM eraser The EPROM eraser will erase all the data stored in the EPROM by exposing the integrated circuit through the round window in the card to ultra-violet light . WARNING If the internal light can be seen when there is no card present the EPROM eraser is faulty and should be returned. The EPROM eraser produces an intense ultra-violet light which can only be activated by insening a Z88 memory card into the eraser; this safety feature prevents any escape of ultra-violet light . , REMOVE FROM MAINS SUPPLY WHEN NOT IN USE . Never touch the ultra-violet light source. It gets hot in use and may cause burns ; also it is made of quanz and will cloud over due to moisture from the skin. To erase an EPROM © Connect the eraser to the domestic mains supply. The plug should be fitted with either a 1 Amp or a 3 Amp fuse. ® Fully insen the EPROM card into the slot on the front of the eraser, with the round hole uppermost. The card is correctly inserted if the white label on the end of the card is visible and the printing " 3 2K EPROM " or " 1 2 8K EPROM " is upside down. ® The action of inserting the card switches the eraser on. The yellow indicator light on top of the eraser should light and the EPROM will be exposed to ultra-violet light for approximately twenty minutes . After this time the ultra-violet light is automatically switched off and the yellow light will go out. © After the yellow light goes out, you can remove the card from the eraser. DO NOT REMOVE THE EPROM BEFORE THE YELLOW LIGHT IS OUT . The EPROM card should now be blank and ready for re-use . Removing the card resets the timer, so to erase another card, simply insen it; the yellow indicator light will again be illuminated, and the process can be repeated. 98 Application cards Section Four - Using the popdowns The ultra-violet light source decreases in efficiency with use and eventually a single 20-minute exposure may not completely erase all the data in the EPROM. In this case it may be a good idea to repeat the process a second time to be absolutely sure that it is thoroughly erased. There is no means of erasing selected individual parts of data from the EPROM. When the EPROM is exposed to the ultra-violet source all data is affected in the same way. Application cards , containing help text, an application, or both, can be inserted into any of the three slots . Note that you must first go to the Index before opening the card flap and inserting the card. When you close the perspex flap, the Z88 should register the new card. Before removing an Application card, activities using the card must be killed. To do this , enter the Index , and examine the SUSPENDED ACTIVITIES window to see if the number of the card you want to remove appears in the CARDS column. Any activity with the Application slot number next to it is using the card, and should be killed with the ¢KILL command. The card can then be removed. Following a C A R D message , you must replace the card in the same slot and then ¢KILL any applications which are using the card. Following an I N DEX message, you must return the card to its original slot and close the flap. You must then enter the Index and remove the card in the usual way. RE FE RE N C E Section Five - PipeDream reference 103 Setting the options 103 Operations on blocks of slots - BLO CKS 104 Marking 1 04 Replicating slots 1 0 5 I Copy, Move, and Delete 1 0 8 Sorting 1 0 8 Searching and replacing 1 0 9 I Other block operations 1 1 3 I Moving about the document - CURSOR 114 Moving anywhere 1 1 4 Moving within a line/slot 1 1 5 Moving within a column 1 1 6 Moving between columns 1 1 6 Summary o f PipeDream cursor operations 1 1 7 Editing text and expressions - EDIT 118 Editing within a line/slot 1 1 9 Editing within a COlUIIlll 1 2 0 Editing a document 1 2 1 Editing expression slots 1 2 3 Working with files - FIL E S 125 File names 1 2 5 Loading a document 1 2 6 Saving a document 1 2 7 Multi-file documents 1 2 8 Altering the document layout - LAYOUT 131 ColuIIlll widths and margins 1 3 1 Widths an d margins in a multi-coluIIlll document 1 3 2 Alignment 1 3 4 Fixing rows and coluIIllls 1 3 5 Number formats 1 3 6 1 00 REFERENCE D ocument options - OPTIONS 1 38 Information lines 1 3 8 Option lines 1 3 9 Text format 140 Recalculation mode 1 4 1 Number formats 1 4 1 Page format 142 Headers , footers, and margins 142 Margins 144 Printing documents - PRINT 146 Highlighting text 148 Expression slots 1 50 Expressions 1 50 Operators 1 52 Functions 1 5 3 @ Fields 1 5 8 Section Six - The Diary reference 1 6 1 Operations on a block o f text - BLO CKS 1 62 Searching and replacing 163 Moving around t h e D i a ry - CURSOR 1 66 Moving within a line 1 6 7 Moving within a day 1 67 Moving between days 1 6 8 Active days 1 6 8 Summary o f Diary cursor operations 1 6 9 Editing t h e Diary - EDIT 170 Editing within a line 1 70 Editing within a day 1 7 1 Miscellaneous 1 7 1 Loading and saving - FILES 172 Section Seven - Filer reference 175 Specifying file names in full 1 7 5 Additional Filer commands 1 77 CLI files 1 79 I I REFERENCE Section Eight - The Terminal Control keys Spooling files Transmitting files Section Nine - The Printer Editor Editing the driver definition Highlight codes Printer options PrinterEd FILES menu Section Ten - BBC BASIC Entering BBC BASIC Entering keywords Editing BASIC programs BASIC keywords Special Z88 information BASIC operators Order of precedence 1 0 1 1 8 5 1 8 5 1 86 1 86 1 87 1 8 8 1 8 8 1 9 1 1 93 195 1 96 1 9 7 1 9 7 199 2 2 2 223 2 2 5 1 02 I I I I Section Five Setting the options PipeDream refere nee This section describes all of the PipeDream commands that ar e available in each menu. To understand this chapter, you should already be familiar with the basic concepts of using PipeDream described in Section Two - Using PipeDream. All commands can be typed directly from the keyboard, as well as chosen from the appropriate menu. The keyboard equivalent for each command is shown to the right of the command name in the menu. For example, the Replicate command on the BLOCKS menu appears as R e p l i c a t e oBRE This means that you can give the Replicate command by typing the ¢ key followed by the keys B R E . Note that the letters do not need to be in capitals : ¢ b r e has the same effect. Also, you can hold down the ¢ key while typing the letter keys if you prefer. When, as in this example, the command equivalent is a sequence of two or three letters, the first letter will usually be the first letter of the menu name. For frequently-used commands, the key equivalent is a single letter with the ¢ key (in a very few cases the o key) . For example, the Mark Block command on the BLOCKS menu has the equivalent ¢Z. Note that in the following screen diagrams the highlighting bar has been omitted for clarity. Some commands present you with a table of options which allow you to set up the command to your requirements . To begin with, the cursor is positioned next to the first option ; the cursor keys can be used as normal to move up and down the list. Many of the options have only two possible alternatives : Ye- s: and N o . You can change the value shown either by typing Y or N as appropriate, or by using the Next Option command, ¢J, which alternates between the available values . In the case of options which take specific values, such as Page Length, Next Option restores the default value. Operations on blocks of slots - BLO CKS P I PEOREAM M a r lr. B l o c lr. 8LOCks C l e a r M a r lr. C: U RSOR C o p 11 E D I T M ov e FI LES D e l e t e LAYOUT S o r t OPT I ONS R e p l i c a t e PR I NT Marking <>Z S e a r c h <>BSE W o r d Co u n t <>BWC mmm DZ <>Q R e p l a c e <>BRP N ew <>BNEW AOVANC:E <>BC N ex t M a t c h <>BNM R e c a l c u l a t e <>A � � -0. -i>' <>BM SELEC:T <> B D lliilD <>BSO AC:T I ON <>BRE IBll RESUME The commands on the BLOCKS menu enable you to manipulate documents to control exactly which areas are affected by a particular operation. A block can include anything from a single slot to a complete document. Before giving any block command you identify the slots you wish to operate on using the Mark Block command. You can mark a single slot, a row of slots, a column of slots, or a rectangular block of slots spanning several rows and columns. You identify which block of slots you want to operate on by giving the Mark Block command at the top left-hand comer and bottom right-hand comer of the block. After giving the two Mark Block commands , all the selected slots in the block will be shown highlighted on the screen. Mark Block - �z Marks a single slot, or the top left-hand corner and bottom right-hand comer of a rectangular block of slots, to identify the slots to be operated on by subsequent block commands. Clear Marks - �a Clears any marked block previously set up with the Mark Block command. I I Operations on blocks of slots - BLOCKS 1 05 Replicating slots Replicate - OBRE Reproduces the contents of a slot, or block of slots , in any part of the document . The following options are displayed : R a n g e t o c o p y f r o� R a n g e t o c o p y t o Each range is a block of slots identified by specifying the coordinates of its top left-hand corner and bottom right-hand corner. If necessary, extra rows and/or columns are created in the document to accommodate the new slots . The ranges c an be one of the following forms : 1. Single slot to area Range to copy from: a single slot, eg A 1 . Range to copy to: an area, eg B 3 07, or just a row or column range. The area can include the original slot, if required. The contents of the slot are copied over the entire area, as represented symbolically in the following diagram : A B c D A B c D 1 @ 1 @ 2 2 3 3 ® @ €) 4 4 . €) () @ 5 --. 5 @ @ @ 6 6 @ @ 0 7 7 €) €) ® 8 8 1 06 Section Five - PipeDream Reference 2. Column to area Range to copy from : a column array, eg Al A3 . Range to copy to: a single slot or a row array, eg B5 D5. The column is copied to the target column starting at either the single slot , or the range of slots given by the target row. A B c D A B c D 1 @ 1 @ 2 + 2 + 3 A 3 A 4 4 5 -. 5 ® @ () 6 6 + + + 7 7 A A A 8 8 3. Row to area Range to copy from: a row array, eg A 1 C 1 . Range t o copy to: a single slot o r a colUIIL. 'l array, eg B5 B 7 . The row i s copied t o the target row, starting either at the single slot or at the range of slots given by the target column, as shown on the following page : I I I I Operations on blocks of slots - BLOCKS A 1 @ 7 8 B 4. Area to area c D 1 2 3 4 -. 5 ,.___ _.__--I 6 7 8 Range to copy from: an area, eg At B 2 . Range t o copy to: a single slot, e g C 5 . 1 0 7 A B c D @ + A 0 + A G + A e + A The area is copied to the area with the top left-hand comer defined by the single slot . A B c D 1 e A 2 v + 3 4 1 2 3 4 A e v B c D A + 5 --. 5 e A 6 7 8 6 7 8 v + If the slots contain slot references , the references are updated to take account of their altered position, unless they are fixed with the $ operator. 1 08 Copy, Move, and Delete Sorting Section Five - PipeDream Reference C o py - ¢ BC Copies a marked block of slots to the position in the document indicated by the cursor. Slots in the document will be moved apart to make space for the block being copied, in contrast with the Replicate command which overwrites the target area. Slot references in the new block are updated as for the Replicate command, but references to slots within the block are not altered. Move - ¢BM Moves a marked block of slots from its original position to the position indicated by the cursor. All slot references are updated as appropriate. Note that if you attempt to move a block of slots to a new position which overlaps the same rows or columns as the original block, the error Ov e r l a p will be displayed. Delete - ¢BD Deletes a marked block of slots from the document. Since you will lose the information previously in those slots , it is a good idea to save a copy of your document before deleting a large area, so that you can revert to this if you accidentally delete valuable information. Sort - ¢BSO Sorts a marked block of slots . Text slots are sorted into alphabetical order, expression slots into numeric order, and date slots into date order. The following options are displayed : S o r t o n c o l uf'l n S o r t i n r ev e rs e o r d e r D o n � t u p d a t e r e f e r e n c es N o N o Sort on column : set to a column label (A, B , C etc) to specify which column within the marked block should be used to determine the ordering of the slots. I I Operations on blocks of slots - BLOCKS 1 09 Searching and replacing Sort in reverse order: by default, the marked block is sorted into ascending order, and any slot references are updated as appropriate . Setting this option t o Y t?s will sort the specified column in descending order. Don 't update references: setting this option to Y t?s inhibits the updating of slot references within the block being sorted. This gives a faster sort operation, and can be used provided no slots within the sorted block are referred to either from within or from outside the sorted block. Search - ¢ BSE Search is for a specified string within a single document , or a multi-file document . The following options are available : S t r i n g t o s t? a r c h f o r S t? a r c h o n l y r a n 9 t? o f c o l uM ns N o Eq u a t t? u p p t? r a n d l ow t? r c as t? Y t?s S t? a r c h o n l y M a r k t? d b l o c k N o S t? a r c h f r oM c u r r t? n t f i l t? N o S t? a r c h a l l f i l t?s i n l is t N o The string to be searched for is specified in the same way as for the Replace command, and the equivalent options have the same effect ; see below. When the search is completed, a message such as 27 f o u n d will be displayed where 2 7 is the number of matches since the last Search command. Next Match - ¢BNM Following a Search command, the Next match command can be used to find the next occurrence of the specified string starting at the current cursor p o si ti o n . Replace - ¢ BRP Searches for and replaces occurrences of one specified string by another. The following options are displayed : 1 1 0 S t r i n g t o s e a r c h f o r R e p l a c e w i t h Section Five - PipeDream Reference S e a r c h o n l y r a n g e o f c o l uM ns N o Eq u a t e u p p e r a n d l ow e r c as e Y es As k f o r c o n f i rM a t i o n Y es S e a r c h o n l y M a r k e d b l o c k N o S e a r c h a l l f i l es i n l is t N o By default, the Replace command replaces all occurrences of the first specified string with the second specified string throughout the current document, equating upper- and lower-case letters and prompting for confirmation before each replacement. For example S t r i n g t o s e a r c h f o r R e p l a c e w i t h C a t D o g will replace Cat with Dog, cat with dog, and CAT with DOG. On each occurrence of the search string, the prompt R e p l a c e : N , Y? will be displayed at the top of the screen. Answer Y to perform the replacement, N to proceed to the next occurrence of the search string, or press the IEscl key to cancel the command. When the command is completed, the message 27 f o u n d (or as appropriate) will be displayed to show the total number of replacements that have been made. String to search for: specifies the search string, which can be up to 240 characters in length. Certain special sequences of characters can be used in the search string to represent characters which cannot be typed at the keyboard, or classes of search string : I I I I Operations on blocks of slots - BLOCKS Seauence Matches A l . . A8 Highlight character AA A A? A single character - not space A# Any number of non-space characters (ie a word) AS A space ARref Slot reference ref AR# Any slot reference space One or more spaces, or across slots AB Beainnina of a slot (or line) Replace with : specifies the string to replace each occurrence of the search string. The following special sequences of characters can be used: Seauence Substitutes A 1 . . A 8 Highlight character AA A A?n Character matching nth A? in search A#n String matching nth A# in search AS A space ARref Slot reference ref AR#n Slot reference matching nth AR# space Matchina spaces or slot boundary 1 1 1 Up to nine A? fields, nine A# fields and nine AR# fields, numbered 1 to 9 , can b e used in the same replace string. The " 1f wild field will match zero characters , as long as the string which has been searched for contains at least one character (otherwise the wild field would match all spaces) . Search and Replace examples The sequences A 1 to A8 represent highlight codes 1 to 8 . For example, all occurrences of P i p e D r e a m could be put into bold with the options S t r i n g t o s e a r c h f o r R e p l a c e w i t h P i p eD r e af'l "'2P i p eD r e af'l"'2 The sequence AB forces the search string to start at the beginning of a line. For example, all single spaces could be removed from the beginnings of lines with the options 1 1 2 Section Five - PipeDream Reference S t r i n g t o s e a r c h f o r R e p l a c e w i t h "B"S The sequence /\# will match a sequence of characters not containing a space ; ie a word, or a number. For example, to strip line numbers from spooled BASIC programs : S t r i n g t o s e a r c h f o r R e p l a c e w i t h "B "# "S Where /\# or /\? have been used to search for any words or characters , the words or characters that were found can be inserted in the Replace with string using /\#1 to /\#9, or /\ ? l to /\?9 respectively. For example, S t r i n g t o s e a r c h f o r R e p l a c e w i t h will change c a r t to t a c k and c o r d to d o c k . c"? r"? "?2"? 1 c lt. The sequence /\Rref and "R# respectively match a specific slot reference, and any slot reference, in an expression slot. Thus , S t r i n g t o s e a r c h f o r R e p l a c e w i t h "R# "R# 1 + 1 will replace all slot reference A 1 by A 1 + 1 , and so on. Search only range of columns: enables you to specify a column range by entering a pair of column labels separated by a space : eg A G. The command is then restricted to the specified range of columns , inclusive. Equate upper and lower case: by default, upper- and lower-case letters are treated as equivalent in the search string and the cases of letters in the replace string are altered to match the cases of the letters in corresponding positions of the matched string. Setting this option to N o forces matches to be identical case. This means that, for example, specifying Do '91 to replace ca. t,. will have no effect on cat or CAT. Ask for confirmation : setting this option to N o causes all strings to be replaced without prompting. Search only marked block: setting this option to Y es restricts the search to a marked block of slots. Operations on blocks of slots - BLOCKS 1 1 3 Other block operations Search from current file: setting this option to Y ei s performs the search and replace operation throughout a multi-file document, starting at the top of the current file . Search all files in list: setting this option to V es performs the search and replace operation throughout a multi-file document, starting at the top of the first file. See Multi-file documents, p . 1 2 8 . Word Count - ¢BWC Counts the words in the whole document, or in a block of slots if one has been marked, and displays the number of words , for example 1 27 w o r ds at the top of the screen. Note that numbers and other symbols separated by spaces will contribute towards the word count. New - ¢BNEW Clears the entire document. The query Ov e rw r i t e t ex t? is given. If you clear the document (by answering V e s ) , this will cancel all file names and multi-file mode, resetting the Options Page options to their defaults, and resetting the screen display to its starting state of six columns, each 12 characters wide. Recalculate - ¢A Recalculates all expression slots throughout the entire document. The order of recalculation is determined by the columns/rows Options Page setting. Moving about the document - CURSOR PIPEDREFIM E n d of S l o t BLOCKS S t a r t of S I o t CURSOR T o p of C o l uPl n E D I T B o t t oPI o f C o l UPl n F I LES S av e P os i t i o n LAYOUT R es t o r e P os i t i o n OP T I ONS Go to S l o t PR I NT ENTER Moving anywhere <> � N ex t W o r d SHIFT � N ex t C o l uP1 n lim mmm oz <> 4' P r ev i o us W o r d SHIFT 4o P r ev i o us C o l UPl n SNIFTmJ ADVANCE <> '°' S c r e e n U p SHIFT -0- F i rs t C o l uM n <> C F C 4' � -& -0- <> -& S c r e e n D o w n S H I FT -& L as t C o l uM n <>CLC SELECT <>CSP C u rs o r Ri 1ht � IIiiIII <>CRP C u rs o r L e t 4' FICT I ON <> C GS C u rs o r Up -&- IE!ll IIiiIII C u rs o r D ow n -& RESUME The commands on the CURSOR menu aim to provide the greatest possible flexibility for moving around a document. Because they are used so frequently, many of them have simple shorthand equivalents, which can save you a lot of time . You can move to the left or right a character, word, or column at a time, or to the start or end of a slot, or to the first or last column. You can move up or down the document a row at a time , a screenful at a time, or to the top or bottom of the column. You can also go directly to a specified slot by giving its coordinates . The commands on the CURSOR menu do not modify the document in any way, with the exception of the IENTERI command which will add a blank row at the bottom of the document if the cursor was previously at the bottom of the document. Go to Slot - �CGS Moves the cursor directly to a specified slot. After the prompt G o t o s l o t type the coordinates of the slot you want to move to, followed by IENTERI . If the slot you specify is off the document , the cursor will be moved as far as possible in the direction of the specified slot. I I I I Moving about the document - CURSOR 1 1 5 Moving within a line/slot Save Position - ¢ CSP Saves the cursor position of the line containing the cursor in PipeDream. If you move to a new position, you can jump back to the previous position with the Restore Position command. Up to five positions can be saved. Restore Position -¢CRP Moves the cursor to the last position saved. If five positions have already been saved, the Save Position command will give a bleep warning. Cursor Right - O Cursor Left - O Moves the cursor to the next character in the slot, or the previous character in the slot respectively. Cursor Left will have no effect once the cursor reaches the beginning of the slot. Cursor Right will continue to move the cursor beyond the end of the slot, scrolling the slot left if it reaches the wrap point for the column. Next Word - ISHIFTI 0 Previous Word - ISHIFTI O Moves the cursor to the first character of the next word in the slot, and the previous word in the slot respectively. If there are no more words in the current slot, Next Word will move the cursor to the first character of the next slot. Likewise, if the cursor is at the beginning of a slot, Previous Word will move the cursor to the end of the previous slot. Beginning of Line - ¢ 0 Moves the cursor t o the first character position in the slot. End of Line - ¢0 Moves the cursor to the position after the last character in the slot. 1 1 6 Moving within a column Moving between columns Section Five - PipeDream Reference ENTER - IENTERI Moves the cursor down to the next row and to the first character position in the current column. If the cursor is at the bottom of the document, the command will add an extra row to the document . Cursor Up - fi Cursor Down - 0 Moves the cursor to the same horizontal position in the previous line and the next line respectively : the cursor remains in the current column. Cursor Up will have no effect if the cursor is already on the top line of the document, and Cursor Down will have no effect if the cursor is already on the bottom line of the document. Screen Up - ISHJFTI fi Screen Down - ISHIFTI .Q. Moves the cursor up or down a screenful at a time . With borders displayed this will be five lines at a time. Top of Column - o fi Bottom of Column - o O Moves the cursor to the top or bottom of the current column in the document respectively. First Column - oCFC or O ITABI Last Column - oCLC These commands move the cursor to the first or left-most column on the document, and last or right-most column on the document respectively. The cursor stays in the same row, but will be moved to the first (left most) character position in the specified column. Next Column- ITABI Previous Column - ISHIFTI ITABI Moves the cursor to the next column on the right, or the previous column on the left, respectively. The cursor remains in the same row, but moves to the beginning of the slot in the new column. I I I I Moving about the document - CURSOR Summary of PipeDream cursor operations ¢ ITABI Move to first column ISHIFTI ITABI ¢ 0 ISHIFTI O 0 Move to Move to Move to Move to previous beginning previous previous column of slot word character ¢ D Move to top of column ISHIFTI D Move up one screenful i) Move to previous line j I c:> I SHIFT IQ Move to Move to , ' next next word character JJ Move to next line ISHIFTl .Q. Move down one screenful ¢ .Q. Move to bottom of column 1 1 7 ¢ 0 ITABI Move to Move to end of slot next column Editing text and expressions - EDIT P I P E D R E A M R u b o u t B L. O C l< S D e l e t e C h a r a c t e r C U RSOR I ns e r t C h a r a c t e r E D IT D e l e t e W o r d F I L.E S D e l e t e to E n d o f S l o t L. A Y O U T D e l e t e R ow O P T I ONS I ns e r t R ow P R I NT ESCAPE � I ns e r t/Ov e r t ':J p e <>U <>G Sw a p C a s e <> S <>U N ex t O p t i o n <>J OT E d i t Ex R r ess i o n <>X <>D I ns e r t e f e r e n c e <>K <>Y N uM b e r< >T ex t <> EN T <>N F o r M a t P a r a q r a P h <> R � S p l i t L i n e <> E S L J o i n L i n es <> E J L D e l e t e R ow i n C o l uM n <> E D R C I ns e r t R ow i n C o l uM n <> E I RC D e l e t e C o l u M n <>EDC I ns e r t C o l u M n <> E I C A d d C o l uM n <> EA C I ns e r t P a 9 e <> E I P lilIIilD oz ADVANCE � � � il' SE L. ECT lliilD ACT I ON � RESUME The commands on the EDIT menu provide for various modifications on the contents of document. In the first place, there are commands which allow you to delete a character, word, slot, row or column on the document. You can also insert a row or a column, join two slots or split a slot, and insert a page break. Some of these commands are especially useful when working with multi-column documents : see Widths and margins in a multi-column document, p. 1 3 2 The remaining commands are divided into two groups ; the first applies specifically to working with text , the second to working with expression slots : Format Paragraph reformats a paragraph of text within a column, Swap Case swaps the case of a single character, and Insert/Overtype changes PipeDream between Insert and Overtype text entry modes. Edit Expression allows you to enter an expression, Number to Text converts between an expression slot and a text slot and Insert Reference inserts a slot reference into an expression. I I I I I I I I Editing text and expressions - EDIT 1 1 9 Editing within a line/slot Insert/Overtype - <>V Switches the text entry mode between Insert and Overtype. The mode currently selected is displayed on the top line of the Options Page. In Insert mode , characters typed are inserted at the cursor position, and subsequent text on the line moves apart to make space. In Overtype mode, characters type over any text previously on the same line, in the same way as a correcting typewriter works . The mode you choose to work in is a matter of personal preference. The selected mode is specific to each PipeDream suspended activity; the default mode can be set in the Panel. Rubout - @bl The Rubout command, normally used by pressing the @bl key, deletes to the left. The [Qill key is used to remove a mistake in the line you have just typed. In Insert mode the remaining characters on the line move one position to the left. Note that @bl will not jump back to the previous line when the left-hand margin of a page is reached. Delete Character - <>G or (SHIFTI � Deletes to the right. You would normally use the Delete Character command to delete one or more characters in the middle of a line of text. Insert Character - <> U Inserts a space at the cursor position, leaving the cursor where it is and moving subsequent text on the line to the right. The Insert Character command is used when working in Overtype mode, to create spaces in which to insert additional text within a line. Delete Word - <>T Deletes all the characters from the current cursor position, up to but not including the first character of the next word. Normally you would position the cursor at the beginning of the word you want to delete, using the Next Word and Previous Word commands , and then give the Delete Word command to delete everything up to the next word. Note that Delete Word will not delete beyond the end of the current slot. 1 20 Editing within a column Section Five - PipeDream Reference Delete to End of Slot - <> D Deletes all characters from the current cursor position to the end of the slot. Swap Case - <>S Changes the case of the character under the cursor, and moves the cursor one position to the right. Delete Row in Column - <> EDRC Deletes the slot containing the cursor and closes up the gap, so that subsequent rows in the current column move up on the document . This command will typically be used when PipeDream is operating in Columns mode, so that the text in the current column does not have to remain aligned with the text in adjacent columns. Insert Row in Column - <>EIRC Inserts a row in the column containing the cursor. Subsequent rows in the current column are moved down to make space. The Insert Row in Column command is typically used when working in Columns mode, as it does not affect the text in columns to either side of the column containing the cursor. It is also useful for restoring the alignment of a table containing items in different columns. Join Lines - <> EJL Joins the text in the line below the current line onto the end of the current line, and closes up the gap so that subsequent slots in the current column are moved up one row. Split Line - <>ESL Splits the current line at the cursor position. The character at the cursor position and subsequent characters are moved to the next row and the cursor remains at the end of the current slot. Fonnat Paragraph - <>R Reformats text from the line containing the cursor to the end of the paragraph. The lines of text will be split at the last space before the I I t Editing text and expressions - EDIT Editing a document 1 2 1 right-hand margin for the current column ; see Starting PipeDream, p. 3 2 . If justification has been selected, with the Options Page Justify option (see p. 140), additional spaces will be added to each line to make the right-hand end always coincide with the wrap point. The end of the paragraph is determined by one of the following : A line beginning with at least one space An expression slot A slot with alignment other than free align ; in other words, left align, right align or LCR align. You can prevent words from being split at a space by typing <> space, which is called an 'exact space' and is displayed on the screen as ' . . . ' . For example, 27 . . . K H :z: Delete Row - <> Y or <>� Deletes the row containing the cursor across the entire document, closing up the gap. This command should be used with care, since the slot in every column on the current row will be deleted. The command is typically used when PipeDream is operating in Rows mode, in order to maintain alignment between text in adjacent columns. Delete Column - <>EDC Deletes the column containing the cursor. Note that all information in the column will be lost, so use this command with caution. Insert Page - <> EIP Normally, page breaks are inserted automatically by PipeDream. These are called ' soft' page breaks, and are represented by a horizontal line A A A A A A A A A A A A A A A A A A A A A A A A across the document between two rows. Their position will change if you alter the amount of text on a page, or change the margin settings on the Options Page. 1 22 Section Five - PipeDream Reference However, to force a page break to occur at a specific place in the document , such as before a new chapter, you can insert a 'hard' page break with the Insert Page command. Hard page breaks are displayed as a row on the document Using this command will insert a hard page break in the row containing the cursor. The command gives the prompt S p e c i f y n o , o f u n b r o k e n 1 i n es N o Pressing IENTERI executes the command, thereby ensuring that subsequent text will always start at the top of a new page. Alternatively, altering the option to Y e s followed by a number enters a conditional hard page break. This means that a page break will occur if less than the specified number of lines is available on the current page. For example, before a table of ten lines one might insert a conditional hard page break with a value of 10 to ensure that all ten lines of the table were on the same page. If the conditional hard page break does not cause a page break, it will be displayed in column A as : Insert Row - o N Inserts a blank row across the entire document before the row containing the cursor. Subsequent rows are moved down to make space. The Insert Row command is typically used when working in Rows mode (see the Options Page), since it maintains alignment between text in adjacent columns . Insert Column - oEIC Inserts a blank column to the left of the column containing the cursor. The new column is created with an initial width of 12 characters , and an initial wrap-width of zero. The cursor remains in the new column. I I Editing text and expressions - EDIT Editing expression slots 123 Add Column - ¢EAC Adds a blank column at the right-hand side of the document. The new column is added with an initial width of 12 characters, and a wrap-width of zero so that text in the new column will wrap at the right-hand edge of the column. Insen Reference - ¢ K Enables expressions to be built up by indicating, or 'pointing to' , various slots to which an expression will refer. It inserts the coordinates of the slot containing the cursor into the expression being edited. To perform the command, move the block cursor to the required slot using the cursor keys , and type ¢K. If an expression is not being edited, this command will have no effect. Edit Expression - ¢X Sets the slot containing the cursor to an expression slot, or edits an existing expression slot. The slot is highlighted, and the cursor moves to the editing line above the top border at the centre of the screen. The current contents of the slot, if any, are displayed, and they can be edited using the cursor keys and line editing commands : ml ISHIFTl m] ¢V ¢U ¢T ¢D ¢K ¢:1 , 0 ISHIFTI ¢:1 , ISHIFTI 0 ¢¢:1 , ¢0 Rubout Delete character Insert/Overtype Insert character Delete word Delete to end of slot Insert reference Cursor left/Cursor right Previous word/Next word Beginning of line/End of line Finally press IENTERI to enter the expression into the slot and display its value, or IEscl to leave the slot' s previous value unaltered. 1 24 Section Five - PipeDream Reference Escape - IESCI Exits from the Options Page, or from the options of any PipeDream command. IEscl will also abandon the editing of an expression and leave the contents of the slot being edited unchanged. Number < > Text - o ENT Converts the slot containing the cursor between an expression slot and a text slot. This command allows a number inadvertently entered as text to be converted to an expression, or the equation in an expression slot to be displayed as text so that it can be printed out. The following procedure can be used to display, or print out, all the expressions within a particular area of a spreadsheet or document : © Save the document first, as the procedure will alter it . ® Mark as much of the document as you wish to examine or print out. @ Type oENT. Expression slots within the marked block will display the expressions they contain. Note that text slots will display the error Ty p i n g e r r o r . © Press oO to clear the marked block, and, if necessary, increase the column widths so that the full expressions can be seen. I I I I I I I I I I I Working with files - FILES P I PEDRE AM L o a d BLOCKS S av e CU RSOR t-laM e ED I T FILES L A YOUT OPT I ONS PR I NT File names <>FL H e x t F i l e <>FS P r ev i o us F i l e <>FC Top F i l e B o t t oM F i l e l'iil1llll oz ADVANCE � � -!). � S E L E C T Imm A C T I ON � RESUME The commands on the FILES menu allow you to load documents from the Z88 filing system, and save documents to the filing system. You can create a document consisting of several files linked together by a List file. Commands are available to move to the next file or previous file, or go directly to the first file or last file in a multi-file document . For simple use of PipeDream you do not need to use files, since you can leave documents you are working on as suspended applications . However, since there is a small overhead in keeping suspended applications , saving a large number of small documents as files will prevent the inconveniences of memory low conditions. When you start PipeDream with a blank document, the document will have no File name associated with it, and it will show : F i l e N o F i l e at the top right-hand side of the Options Page. A File name can be given to a document with the Name command. Loading a file, with the Load command, will set the File name to the name of the loaded file. The File name of the document is displayed in the Options Page, and is used as the default file name in the options for the Save and Name commands. The File name is also used to label PipeDream suspended activities , in the Index YOUR REF. column. 1 26 Loading a document Section Five - PipeDream Reference Narne - ¢FC Sets the File name for the current document. Gives the prompt : N ew n a M e o f f i l e The current File name, if any, will be displayed ; this should be edited to the new name, followed by !ENTER! . Load - ¢FL Loads a document of a given name from the filing system. The following options are displayed : N aM e o f f i l e t o l o a d I ns e r t a t s l o t L iM i t t o r a n g e o f r ows L o a d as p l a i n t ex t N o N o N o Name of file to load: specifies the file name. If a file of the same name but with the extension ' . L' exists , this file is taken as a List file ; see Multi-file documents, p. 1 2 8 . If not , the specified file is loaded. The File name, displayed in the Options Page, will be set to the name of the file loaded. In the case of a multi-file d ocum ent, this will be the name of the current document, not the name of the List file. Instead of typing the file name, the file can be selected from the Filer. After typing oFL, call the Filer by typing DF, and select the required document using the cursor keys followed by IENTERI ( see Selecting files, p. 83). You can then return to PipeDream from the Filer by pressing [@ , and the full file name will have been entered for you. Press IENTERI to load the file. If the document in memory has been altered since last saving it, the message Ov e rw r i t e t ex t? will be displayed, and the document will only be loaded if Y ( or y ) is typed. If the document is too large to fit into memory, only the first section will be loaded, and the display will show the message I I I I I I I I I I Working with files - FILES Saving a document 1 2 7 M e1vi o r y f u l l Insert at slot: appends the file to the document already in memory, either at the specified slot reference, or at the current cursor position if no slot reference is specified. Type Y for the option I ns e r t a t s l o t Y es and enter a slot reference. Limit to range of rows: enables files too large for the available memory to be edited by splitting them up into sections. If the option is set to Y es , a range of rows can be entered as two numbers separated by a space. Only rows lying between the specified range, inclusive, will be loaded. Load as plain text: if Y es is specified, the file is interpreted as plain text. Sections of text on each line separated by tabs are put into successive columns across each row of the PipeDream document. After loading a document, expression slots are recalculated twice , once to obtain the correct values of constant slots, and then again to ensure that references to constant slots have the correct values . If the document contains complicated forward referencing, it may need further recalculation before the values of slots stabilise. Save - � FS If none of the options are changed, pressing lENTERI saves the whole of the current document to the name last set by the Load or Name commands. The following options are displayed : N aM e o f f i l e t o s av e S av e o n l y r a n g e o f c o l uM ns S av e s e l e c t i o n o f r ows S av e M a r k e d b l o c k S av e p l a i n t ex t N o N o N o N o Name of file to save : b y default, the current File name is displayed, as shown in the Options Page. This can be edited to save the document under a different name. 128 Multi-file documents Section Five - PipeDream Reference Save only range of columns: altering this option to Y es allows you to specify a range of colwnns . This should be given as two colwnn labels , separated by a space : for example, A F. Only the text within the range of colwnns , inclusive, will be saved. Save selection of rows: altering this option to Y es allows you to enter an expression. Only rows for which the expression evaluates to TRUE will be saved. For example, column E in an inventory of goods may represent the quantity of each item in stock. To save a copy of the database which excluded out-of-stock items , you would type S av e s e l e c t i o n o f r ow s Y es E l > 0 All row references i n the expression ar e incremented before the expression is evaluated for each row in the document. So in this example row 6 will be saved if E 6 > 0 . Save marked block: altering this option to Y es specifies that only the marked block of text should be saved. Save plain text: altering this option to Y es will save the document as a plain text file, containing no special constructs . The contents of each successive column will be output separated by tab characters , with each row terminated by a return character. Documents comprised of several different files can be edited and printed as a single document by means of a PipeDream List file. The List file is a plain text file containing the names of all the files making up the entire document. It should be saved with the Save plain text option, with each file name on a separate line. The List file should be given a name with the extension ' . L ' . A file with extension ' . L ' is taken as a List file when loading, and the first document in the list will be loaded. Any error which occurs during the processing of a multi-file document cancels the multi-file mode after reporting the error, to avoid overwriting files with incorrect text. I I I I I Working with files - FILES A3 129 The following commands provide a convenient way of moving between files in a multi-file document : Next File - oFN Loads the next file in a multi-file document, but first saves the current file if it has been altered since the last save command. Previous File - o FP Loads the previous file in a multi-file document. The current document is saved if it has been altered since last saving it . Top File - o FT Loads the first file in a multi-file document . The current document is first saved if it has been altered since last saving it . Bottom File - o FB Loads the last document in a multi-file document. The current document is first saved if it has been altered since last saving it. Multi-file example For example , first create a List file in PipeDream, containing the following text : ................................. A . I ' I I I I I I I I B I I I I I I • • I I I c I I I I • I I I I I I D I I I I I • I I I I I E I I I I I I I I I I .J..F 1 c h a p t e r o rn? 2 c h a p t e r t1..J o 3 crthre;i • .1r.1a;pa Take care not to add any blank lines after the last file name . Then s ave this as a plain text file called b o o k . L , by typing o FS b o o k . L, and setting the Save plain text option to Y . 1 30 Section Five - PipeDream Reference Create three files , c h a p t e r o n e , c h a p t e r t w o , and c h a p t e r t h r e e , containing, for example, the following lines of text respectively : T h i s i s t h e f i r s t c h a p t e r T h i s i s t h e s e c o n d c h a p t e r T h i s i s c h a p t e r t h r e e Now load the multi-file document by typing ¢FL b o o k . If you use the Filer to select the file you will need to delete the ' . L ' extension from the end of the file name. Typing ¢ FN, ¢ FP, ¢FT, and ¢ FB will then move between the three files . Altering the document layout - LAYOUT PIPEOREAM W i d t h B L OCKS S e t M a r g i n C U RSOR F i x R ow EDIT F i x C o l uM n F I L ES M a r g i n R i 1 h t L A VOIJT M a r g i n Le t OPTIONS P R I N T ¢W R i � h t A l i 9 n ¢LAR D e c i M a l P l a c e s ¢LDP rilli11l ¢H Le t A l i m ¢LAL S i g n B r a c k e ts ¢ L S B ADVANCE ¢LFR C e n t r e A i g n ¢ L A C S i g n M i n u s ¢LSM ¢' '¢ -0- � ¢LFC LCR A l i 9 n 9LLCR L e a d i n g C h a r a c t e r s 9LCL SELECT a '¢ F r e e A l 1 9 n ¢LAF T r a i l i n g C h a r a c t e rs 9LCT IIiiIIJ a ¢' D e f a u l t F o r M a t 9LDF ACT I ON rn:!I R E S U M E The commands in the LAYOUT menu allow you to specify how the information entered in a document is displayed. You can alter the width that any column occupies, and the column' s right-hand margin, which determines the point at which lines of text entered into that column wrap onto the next line. D Z You can also fix rows above the cursor position and columns to the left of the cursor position so that you can see information on one part of the document while editing information on another part. Column widths and margins Width - ow Specifies the width that a column occupies on the document. The following options are displayed : N e-w w i d t h S p e- c i f y c o l Uf'l fl N o If no column is specified, the column currently containing the cursor is assumed. 1 32 Widths and margins in a multi-column document Section Five - PipeDream Reference Set Margin - oH Alters the right-hand margin of a specified column. The margin is indicated by the right-hand margin pointer, .J.. ,on the top border, and determines the point at which text typed into the column will wrap onto the next line. This command determines the area over which text is to be formatted within the column ; thus , if the width is set to zero, it will be equal to the column width, and there will be no margin. The following options are displayed : N ew w i d t h S p e c i f y c o l Uf'"l n N o If no column is specified, the column containing the cursor will be assumed. Margin Left - Cl O Margin Right - co These commands allow you t o move the right-hand margin for a number of columns simultaneously. The commands move the right-hand margin pointer, .J.. , for the column containing the cursor one character position to the left or right respectively. They also set the wrap point of all columns between the current column and the wrap point so that they wrap at the same position. By default, the wrap point for all columns is set to the right-hand edge of the screen, which is most appropriate for creating tables of information within a single column of text. The Insert on wrap option on the Options Page is initially set to Rows , ensuring that information in adjacent columns will remain aligned. It is also possible to create a document with two or more independent columns of text, like the layout of a newspaper. You do this by moving the right-hand margin for each column to the right-hand edge of the column. Setting the Insert on wrap Options Page option to Columns will then ensure that the text in each column can be edited without affecting adjacent columns. Altering the document layout - LA YOUT 1 33 A3 For example , the following steps can be used to create the three-column document shown below. CD Set the widths of columns A, B , and C to 24 , by giving the Width command on the LAYOUT menu with the options N ew w i d t h 24 S p e c i f y c o l Uf"l n Y es A N ew w i d t h 24 S p e c i f y c o l Uf"I n Y es B N ew w i d t h 24 S p e c i f y c o l Uf"I n Y es c ® With the cursor in column A, move the right-hand margin to the right-hand edge of column A by pressing D O until the right-hand margin pointer is just to the left of the A on the top border ; see the diagram below. This will also position the left margin for columns B and C to the right-hand edge of those columns. @ Enter the Options Page, by typing o O , and alter the Insert on wrap option to Columns by pressing .0: until the cursor is on the option line, and typing C to alter it to I ns e r t o n w r a p c Press IEscl to exit from the Options Page. © Type the required text into each column ; it will format automatically within the column width. , , , , , 0 0 , , , , , , . , , , , , . , , , , , , , , , , , , , , , . , , , , , , , , , , , , , , , . , . , .J, A . I I I I I I I I I I I I I I I I I I I I I 1 8 1 I I I I I I I I I I I I I I I I I I I I I 1 C 1 1 ·r: ... . s e n d y o u r n affl e a n d 2 . W i t h i n 1 0 d a ys y o u 3 . I f n o t c ol'l p l e t e l y 2 a d d r e ss w i t h a p o s t a l w i l l r e c e iv e y o u r ow n s a t is f i e d , r e t u r n t h e 3 o r d e r f o r £20 . 1 p e rs o n a l p i r a n h a f is h , f is h f o r a f u l l r e f u n d . •mnwm• 1 34 Alignment Section Five - PipeDream Reference Text can be aligned in one of the following ways : © Left-aligned with the left-hand edge of the colwnn. ® Right-aligned with the right-hand margin pointer. ® Centred between the left-hand edge of the colwnn and the right hand margin pointer. ® Components of the line can be left-aligned, centred, and right aligned ( LCR alignment ) . Text in a slot which has been aligned with one of the Align commands will not be reformatted by the Format Paragraph command. The results of expression slots can similarly be displayed left-aligned, centred, or right-aligned over the width of the column. Right Align - ¢ LAR Left Align - ¢ LAL Aligns the text in the current slot to the right or left of the wrap-width of the current column, respectively. The alignment will be displayed when the cursor is moved off the slot . The Left Align command can, for example, be used to prevent text in a table from being inadvertently re formatted with the Format Paragraph command. Centre Align - ¢ LAC Centres the text in the slot containing the cursor, or a marked block of slots, over the wrap-width of the column containing it. LCR Align - ¢ LLCR Aligns components of the slot containing the cursor, or the slots within a marked block, to the left, centre, and right of the column's text wrap width. The line has the format where left, centre , and right represent text which will be respectively left-aligned, centred and right-aligned, and '/' represents an arbitrary delimiter, which must not occur elsewhere in the line of text. Altering the document layout - LAYOUT 1 35 Free Align - o LAF Removes the alignment from a slot containing the cursor, or a marked block of slots. Text, or the results of expression slots, will be left-aligned in the slot. Fixing rows and columns Fix Row - o LFR A 1 Fixes the row containing the cursor, and all rows above it , on the screen. If borders are displayed, the fixed rows are identified with horizontal lines in the left-hand border. Moving the cursor up or down on the document will scroll only those rows which have not been fixed, so the cursor can be moved to another part of the document while retaining the fixed rows on the screen. Giving the Fix Row command again frees the rows and restores the document to its original state. Fix Colunm - o LFC Fixes the column containing the cursor, and all columns to its left, on the screen. If borders are displayed, the fixed columns are identified in the top border by solid lines . If the cursor is moved on the document, only the columns that have not been fixed will scroll, so that the cursor can be moved to another part of the document while retaining the fixed columns on the screen. Giving the Fix Column command again frees the columns. For example, the top row of headings and leftmost column of labels have been fixed in the following document by giving the commands oLFR and o LFC with the cursor in slot A 1 : =- ---- A 1 1 1 I 1 1 1 1 1 I 1 8 1 1 I 1 I 1 1 1 I I 1 C 1 I I I I I I 1 1 I 1 0 1 I I I I I I 1 1 1 1 E 1 I 1 1 I I I I I 1 J.. F __ 1 I J a n u a r ii F e b r u a r y M a r c h A p r i l M a y 2 M i n t c h i ps 25 34 33 45 49 11 1 1 1 1 ' 3 C h o e b r ow ns 1 0 9 1 1 23 7 4 S p o n 9 es 35 37 34 36 1 9 5 F l a p J.a c k s 5 6 3 4 6 6 Q u e e n c a k es 1 24 1 45 1 67 1 89 234 The cursor can then be moved around to scroll the document while keeping the column headings and row labels in view. 1 36 Number formats Section Five - PipeDream Reference Expressions can be displayed with a sp ecified number of decimal places , or in free format . Negative numbers can be displayed either with a minus sign, or with brackets as in financial notation. The results of expression slots can also be displayed with one or more leading characters , such as ' £ ' and one or more trailing characters , such as ' % ' . The leading and trailing characters for the document are specified in the Options Page . The format in which any expression slot is displayed can be restored to the default specified in the Options Page by the Default Format command. All the format commands can be applied either to the single slot containing the cursor, or to a block of slots by marking them before gi ving the command. Decimal Places - ¢LDP Sets the number of decimal places displayed by an expression slot, or a marked block of expression slots . Gives the prompt N uM b e r o f d e c iM a l p l a c es F l o a t i n g f o rM a t N o The number of decimal places may b e set to a value from 0 to 9 , or floating format may be specified which uses the display format giving the most significant figures displayed in the available width. Sign Brackets - ¢LSB Sign Minus - ¢LSM Specify that negative values in an expression slot or marked block of expression slots should be displayed in financial notation, enclosed in brackets , or with a minus sign prefix respectively. Leading Characters - ¢ LCL Trailing Characters - ¢ LCT Specify that the leading or trailing characters defined in the Options Page should be displayed for the expression slot contained in the cursor or the marked block of expression slots . The default leading and trailing characters are ' £ ' and ' % ' respectively, and these can be altered on the Options Page . Altering the document layout - LA YOUT 1 3 7 Default Format - oLDF Restores the expression slot containing the cursor, or a marked block of expression slots, to the default format as specified on the Options Page. Once any element of an expression slot' s format has been altered with one of the commands Decimal Places, Sign Brackets, Sign Minus, Leading Characters or Trailing Characters, the slot's format is frozen and will not be affected by subsequent alterations to the Options Page. Giving the Default Format command removes any specific format set on the slot. D ocument options - OPTIONS P I PEDREAM O p t i o ns P a g e BLOCKS <-0 mmm oz ADVANCE CURSOR E D I T F I LES LAYOUT O PT IONS P R I NT T ex t/N ul"l b e rs T B o r d e rs Y J us t i h H W r a p Y P a 9 e l e n 9 t h 66 L i n e s p a c i n9 1 S t a r t p a 9 e 4- � � il' SELECT mim ACT I ON � RESUME The OPTIONS menu contains only one command, Options Page, or <> O , which displays a page o f information about the current document together with the global settings which may be altered to effect the way that commands operate on the document. I ns e r t o n w r a p R C a l e : A u t o/M a n A C o l U l"l n s / R ows C D e c i l"l a l p l a c es 2 M i n us/B r a c k e ts M L e a d c hs . £ T r a i l c hs . % M a r 9 i ns : T o p 0 H e a d e r 2 F o o t e r 2 B o t t ol"l 8 L e f t 0 H e a d e r F o o t e r F i l e P a 9 e F r e e T i t l e N o F i l e 1 20480 I ns e r t You can return to a PipeDream document by pressing the IEscl key. Information lines The right-hand column of the Options Page display gives information about the current document. File The name of the document previously loaded with the Load command, or the name assigned to a document by the N aine command ( <> FC) on the FILES menu. If no name has been specified, it will show N o F i l e The name will also appear on the SUSPENDED ACTIVITIES list in the Index display. I I I I I I I I Document options - OPTIONS Option lines 1 39 Page Shows the current page number of the line containing the cursor. This will correspond to the page numbering when the document is printed unless rows are fixed with the Fix Row command on the LAYOUT menu, or the Options Page page-length setting has been set to zero. Insert/Overtype Shows the current text entry mode selected by the Insert/Overtype comm.and on the EDIT menu. The mode initially selected is Insert mode. Microspace Normally blank, displays the word M i c r- o $ P a.c e- if the microspace option has been selected from the PRINT menu. Free Displays the amount of space remaining for characters in the current document, to the nearest multiple of 2 56 characters. It is inadvisable to continue typing text into a document if there are less than approximately 300 free characters. In such a situation you are advised to make space in memory by freeing activities, or deleting files. This page is used to determine how text and expressions are displayed in a document (including the default setting for the display of expression results) and to set up the layout of a document ready for printing, specifying headers and footers, and margins at the top, bottom and left of the page. In addition, you can control the length of the page, the spacing of text, and the page numbering. Altering options - Next Option As with many other commands , Next Option, oJ will alternate between two available values, for example Y and N for Ye- s: and No , or T and N for Te- x � and Nu Mt> e- r- s: . Alternatively, these values can be changed by typing the appropriate letter. In the case of options with more than two possible values, oJ will set the option back to its default value. Other options can be altered by moving the cursor to the appropriate item, with the 'O' and .(). keys , and then editing the item with the line- 140 Text format Section Five - PipeDream Reference editing commands o , Q , IQebl key and o G or ISHIFTI IQebl to delete the character under the cursor. In numeric fields , such as Page length, Overtype mode is automatically set irrespective of the current Overtype/Insert mode setting. In the following list of options the default value is shown against each option. Determines the formatting of text in the document. Text/Nunibers (T) Set to T (Text) to make the default slot format text slots , or H (Numbers) for expression slots. In Numbers mode there is no need to type o X before entering an expression, and the cursor keys O and o will move directly between slots containing expressions ; ie behave like ITABI and !SHIFT! ITABI . Borders (Y) Set to Y (Yes) to display borders, or H (No) to hide borders. Hiding the borders allows a larger area of the sheet to be displayed , and can be useful for word-processing applications. Justify (N) Set to H (No justify) for ragged right margins , or Y (Yes) for even right hand margins . To reformat a paragraph of text after changing this option, give the Format Paragraph command, o R. Wrap (Y) Set to Y (Yes) to make text wrap automatically at the wrap point, or H (No) for no wrapping. Insert on wrap (R) Set to R (Rows) to maintain alignment between adjacent rows, or C (Columns) for creating independent columns of text ; see Widths and margins in a multi-column document, p. 132. I I Documen t options - OPTIONS Recalculation mode Number formats 1 4 1 The C a l c options determine how expression slots are recalculated in the document. Auto/Man (A) Determines the recalculation of expression slots on the document. Set to A (Automatic) to recalculate the docwnent every time an expression slot changes or M (Manual) for recalculation only with the <>A command. This option can be set to M to make entering data into a large spreadsheet, or working with large text documents, faster. Columns/Rows (C) Select the order of recalculation : R (Rows) across rows first, or C (Columns) down columns first. Determine the default display format for numerical expression slots. Decimal places (2) Select 0 to 9 decimal places or F for free format. Minus/brackets (M) Select M (Minus) to display negative numbers with a minus sign, or B (Brackets) for financial bracketed notation. Lead chs. (£) Trail chs. (%) Specify up to 4 characters to be displayed in front of or after expression slots with <> LCL or <> LCT set. 142 Page format Section Five - PipeDream Reference Determines the spacing and pagination of the document when printed. Page length (66) Set to between 1 and 1 2 7 to specify the number of lines on each page, including margins , footer and header, or O to suppress page breaks altogether. Line spacing (1) You can specify from 0 to 255 additional blank lines to be inserted between each line of text. Start page You can set the current page number to 0 to 255. Headers, footers, and margins You can specify an additional header or footer line of text to appear at the top or bottom of each printed page respectively. Each line of text can consist of up to three components , which will be left-aligned, centred, and right-aligned. The left margin, and the margins above and below the header and footer, and between the header and footer and the page of text, can be separately altered to determine the layout of the printed page. Note that if a header or footer are specified, the number of lines of text on each page will be reduced accordingly. I I I I I I I I Document options - OPTIONS 1 43 Top Margin Header Text Header Margin :=:: :::: margin Page of text Left Footer Margin Footer Text Bottom Margin The complete page layout , with headers and footers and their associated margins , will be represented on the page map display at the right-hand side of the PipeDream screen. Header Footer You can specify lines of text which will be printed out at the head and foot of each page. Each line has the format / l e f t/ c e n t r e/ r i g h t/ where left, centre, and right represent text which will be respectively left-aligned, centred and right-aligned, and '/' represents an arbitrary delimiter, which must not occur elsewhere in the line of text. 1 44 Margins Section Five - PipeDream Reference Title A line of up to 244 characters can be entered in this field as a title for the document. The title can be included in the document, or in the footer or header, by giving the @T@ field; see p. 1 58. You can specify the number of blank lines, from 0 to 255, to be left above the header, between header and text, between text .and footer, and below the footer respectively. The left margin can specify a margin of O to 255 characters at the left of each page: M a r g i ns : T o p 0 H e a d e r 2 F o o t e r 2 B o t t of'l 8 L e f t 0 For example, a typical set-up might be M a r g i ns : T o p 2 H e a d e r 2 F o o t e r 2 B o t t o f'l 2 L e f t 6 H e a d e r /@T@//M ax o L t d/ F o o t e r //P a g e @P@// T i t l e Q u a r t e r l y R e p o r t The @-field @ P @ will be replaced by the current page number, and the @-field @T@ by the Title . The resulting page layout would be as follows : I I I I I Document options - OPTIONS 145 Quarterly Repo rt Maxo Lt d P a ge 1 Printing documents - PRINT P I P E D R E A H P r i n t B L OCKS Mi c r os p a c e P i t c h C URSOR E D I T F I LES L A YOUT OP T I ONS PR INT oPO U n d • r l i n • Of>U I ns e r t H i g h l i g h ts oPH I lilllilll oPH B o l d � R ffl ov e H i 9 h l i g h t s oPHR ADVANCE !><ti . S t<t u • n c • oPX H i g h l i g h t B l o c k oPHB � � � � t � l C Of' I SELECT u bs c r i p t Of'L lliiID S u p • rs c r i p t oPR ACT I ON A l t . F o n t oPA � Us • r D e f i n e d oPE RESUME The commands on the PRINT menu allow you to print your document and to take advantage of facilities offered by the printer, such as bold and underlined text, and alternative fonts. Print - oPO Prints all or part of a document. The following options are displayed: P r i n t o n l y r a n g e o f c o l u M ns S e l e c t r ow s t o p r i n t W a i t b e tw e e n p a g es N o N o N o oz By default, the Print command prints the whole of the current document with no pause between pages . The starting page number is determined by the Options Page Start page setting, except when printing a marked block, or selected rows. In this case the pages will be numbered, starting at 1 , and soft page breaks will be ignored. Print only range of columns: setting this option to Y es will allow a column range to be specified. The column range should be given as two column labels, separated by a space. Only the columns within the specified range (inclusive) will be printed. Select rows to print: setting this option to Y e s will allow an expression to be entered. Rows will only be printed if the expression evaluates to a true or non-zero result. The expression can contain slot references ; after each row the slot references are updated by one row, unless they are fixed with the $ operator. I I I I I I I I I I I I I I Printing documents - PRINT 1 4 7 For example, a document containing text in column B could use column A to contain a ' * ' character, indicating the latest revisions to the document. To print out only the revised lines the option S e l e c t r o ws t o p r i n t V e s A 1 = 11 * 1 1 could be specified. See also Printing selected rows, p. 54, for an example. Wait between pages : setting this option to V es gives a prompt between pages to allow single sheets to be inserted into the printer. The prompt P a g e n , , is displayed, where n is the page number. You can then press one of the following keys to control printing : M to miss the page C to continue printing all remaining pages without further prompting Any other character ( eg the space bar) to print the page IEscl to abandon printing. Prin ting a marked block: if a block of slots is marked when the Print command is given, only the marked slots will be printed. Multi-file documen ts : if the Print command is given in a multi-file document, the current document will be saved if it is modified, and the entire multi-file document will be printed, starting with the first file. Microspace pitch - oPM Selects microspaced printed output . Gives the prompt M i c r o s p a c e p r i n t e d o u t p u t N o Changing the option to V e s and pressing IENTERI causes subsequent output to be microspaced at the default spacing of 1 2/120ths of an inch, giving a pitch of 1 0 characters per inch. A number can be entered to specify an alternative spacing. For example, entering 10 gives 12 characters per inch. M i c r- o $ P a. c e- is displayed at the top right-hand comer of the Options Page display if it has been selected. 148 Highlighting text Section Five - PipeDream Reference You can alter the style of text in your document by insening one of eight highlight codes in front of the text, and the same code after the text to reven back to normal. Highlight codes The recommended assignment of the eight codes is as follows : Code Function Printed example 1 Underline YDQ�;i;:liD�Q t�i2� 2 Bold bold type 3 Extended sequence S C 1t 4 Italic i t a l i c type 5 Subscript H20 6 Superscript e=mc2 7 Alternative font a l t e r n a t i v e f o n t 8 User defined To obtain the right results when these codes are printed you may need to create a printer driver; see Section Nine - The Printer Editor. The codes are insened into text with the following commands : Underline (1) - ¢PU Bold (2) - ¢PB Extended Sequence (3) - ¢PX Italic (4) - ¢PI Subscript (5) - ¢ PL Superscript (6) - ¢ PR Alternative font (7) - ¢ PA User Defined (8) - ¢PE These commands insen the corresponding highlight code at the current cursor position. Successive occurrences of a highlight code enable and disable the corresponding printer facility. The effect of highlights 1 , 2, 3, and 4 (underline, bold, extended sequences , and italic text styles) are displayed on the screen as underlined, bold, grey, and tiny characters respectively when the cursor is moved onto another slot. When the cursor is on the same slot, all highlight codes are displayed as the corresponding highlighted numbers U to �. I I Printing documents - PRINT 149 Highlight characters are considered to be of zero width for formatting and justification. Note: You can use <>SPACE to create an 'exact space' character. This may help to create continuous underlining of titles etc. Insert Highlights - <>Pill Inserts a specified highlight number in the text at the cursor position. Gives the prompt H i g h l i g h t n uM b e r Typing in a number between 1 and 8 , followed by IENTERI , will insert the corresponding highlight code into the text. Remove Highlights - <> PHR Removes all occurrences of a specified highlight number from a given marked block of text . Gives the prompt H i g h l i g h t n uM b e r Typing a number between 1 and 8 followed by IENTERI will remove all occurrences of the corresponding highlight from the marked block. Highlight Block - <>PHB Highlights all words within a marked block of text with a given highlight number. Gives the prompt H i g h l i g h t n uM b e r Typing a number between 1 and 8 will remove any existing highlights of the same number and highlight all words in the marked block with pairs of the specified highlight character. Because individual words are highlighted, reformatting the highlighted block of text will leave the selected text correctly highlighted, and text will be printed correctly even if the highlighted block extends over a page break. Expression slots Expressions Any slot in a PipeDream document can be designated as an expression slot , in which case the expression you type into it will be evaluated, and the result will be displayed in the corresponding position in the document . An expression is entered by giving the Edit Expression command on the EDIT menu, or by typing ¢ X. The cursor will then move to the editing line, at the top of the screen, until the expression is entered by typing IENTER I. Alternatively, if the Options Page Text/Numbers option is set to H , all entries are taken as expressions . Expressions can consist of numbers , functions performing operations on other expressions , references to other slots , or a combination of these combined by mathematical operators. Expressions can give a numerical result, a date, or a string of text. Illegal expressions will gi v e an error as their result. Numbers Numbers can be expressed in normal notation, or scientific notation. For example, 1 , - 1 . 7 6 3 2 , 1 . 4 e 2 7 , 0 . 0 0 1 All calculations are performed to an accuracy of nine decimal places and numbers may lie between le38 and l e-38. Strings Strings are entered between double quotes, and may contain spaces . A slot reference to a text slot returns a string. Slot references The form of a slot reference is I ' Expression slots 1 5 1 column-label row-number separated by optional spaces, where column-label designates one of the 64 columns, A to z, followed by AA to BN, and row-number is from 1 to 3 2 76 8 . Slot references are normally 'relative' ; the reference will b e updated if the position of the slot containing the reference changes relative to other slots. Each half of the slot reference may be 'fixed' by preceding the column letter or the row number by a dollar sign. The possibilities are : A 1 normal reference $ A 1 fixed column reference A $ 1 fixed row reference $ A $ l fixed column, fixed row The fixed part of a reference is not altered when copied with the Replicate or Copy commands on the BLOCKS menu, or when placed in a selection expression for the Save and Print commands on the FILES and PRINT menus respectively. Wh�n a slot to which a slot reference refers is deleted, the slot reference is marked with a ' % ' sign to indicate that the reference is no longer valid. The expression containing the slot reference will display the B a d s l o t error message. Specifying a block of slots - Ranges You can perform some functions on a block of slots, specified by the top left-hand comer of the block followed by the bottom right-hand comer of the block. For example A2 0 8 specifies all the slots in the block between columns A and D , and rows 2 and 8 inclusive. 1 52 Operators Section Five - PipeDream Reference In some cases the function only makes sense if the range is restricted to a single row (a 'row range' ) as in A l D l , or a single column (a 'column range'), as in BB B20. Specifying several slots - Lists Functions are available to count, choose from, or find the maximum or minimum of a list of elements. The elements in a list are separated by coITu. -nas and can be simple slot references , or ranges. Each slot in a range is considered as a separate list element. For example , 1 3 , B l B 5 , C l . is a list containing the 7 elements 1 3 • B 1 . B 2 • B 3 • B 4 • B 5 • and C 7 . Dates Dates are entered in the format DD.MM. YYYY or MM.DD. YYYY depending on whether the Panel date-format setting is European or American. Dates can be sorted into chronological order, and the functions DAY, MONTH, and YEAR can be used to extract the values of the date's day, month, and year respectively. The following operators can be used within expressions Arithmetic The arithmetic operators take two numbers as operands . + * /\ add multiply raise to the power I subtract divide Also , ' + ' and '-' may be used on date values. For example 1 2 . 1 0 . 1 9 8 7 + 1 2 7 I ' Expression slots Functions 1 53 will return the date 1 2 7 days after 12 October 87, or 1 6 . 2 . 88, assuming that European date format has been selected. Relational The relational operators can compare dates, strings , and numbers . Both operands must be of the same type, and the result is a logical value of FALSE =O and TRUE = 1 . < <= <> less than less than or equal to not equal to > >= equal to greater than greater than or equal to When strings are being compared, the following wildcards (as in the Replace command) can be included in the second string: A? matches any single character A# matches any number of characters /\/\ represents A Logical The logical operators operate on numeric or logical values . Boolean FALSE is taken as zero, TRUE as non-zero. & AND unary NOT ABS Absolute value ABS( number) OR Returns the absolute positive value of the argument. ACS Aic cosine ACS( number) Returns the arc cosine of the argument, in radians . 1 54 Section Five - PipeDream Reference ASN Arc sine ASN(nurnber) Returns the arc sine of the argument, in radians. ATN Arc tangent ATN(number) Returns the arc tangent of the argument, in radians. CHOOSE Choose element from list CHOOSE(list) Returns an element from the list, using the value of the first element as an index into the remaining elements. For example, if B4 contains 1 7 . 2 . 1 987 C H O O S E ( M O N T H ( B 4 l , " j a n " , " f e b " , " m a r " , " a p r " l gives the result f e b . COL Column COL The value of the column in which it is evaluated. Column A is 1 , column B is 2 , etc. COS Cosine COS(radians) Returns the cosine of the argument. COUNT Count the number of elements COUNT(list) Returns the number of non-blank slots in the list. I I I I Expression slots DAY Day of date DAY( date) Returns the day number of a date argument. 1 55 For example, if slot A t contains 1 7 , 3 , 1 96 1 , then D A Y ( A l ) returns t 7 DEG Degrees from radians DEG( radians) Converts the argument, taken in radians, into degrees. EXP Exponent EXP( number) Returns the constant e ( 2 .7 t 82 8 t 84 . . ) raised to the specified power. IF Conditional expression IF(boolean,then,else) If the value of the first argument is TRUE , ie non-zero, the function returns then; otherwise the function returns else. For e xampl e , if slot A t contains -23 , I F ( A l < O . " D e b i t " , " C r e d i t " ) would return Debit. INDEX Index slot INDEX( column, row) Returns the evaluated expression or string found at coordinates column, row. For example, if A2 contained I F < 1 0 0 , 1 1 D e b i t 11 , 11 C r e d i t 11 ) I N D E X ( l , 2 ) would retum. C r e d i t . 1 56 Section Five - PipeDream Reference 8 4 INT Integer part INT(number) Returns the integer part of the argument. LN Logarithm to base e LN(number) Returns the natural logarithm, loge of the argument. LOG Logarithm to base 10 LOG( number) Returns the logarithm to base 1 0 of the argument. LOOKUP Look up value in a table LOOKUP(key,range 1 ,range2) Returns the value in range2 corresponding to the position that key occurs in range 1 . key must b e a cell reference. For example, the following sheet would result if L O O K U P ( A 3 , A l F l . A Z F 2 ) were placed at B4 : LOOKUP < A3 , A 1 F 1 , A2F2 > I I I I I I I I I I I A . . . . . . . . . . . . . .. . .. . . . . . . . . ..... .. B I I • I I I I I I I I c I I I • I I I I • • I D I • I I I I I I I I I E I I I I ' ' I I I I J...F 1 1 2 3 4 5 6 2 1 1 1 222 333 444 555 666 3 5 4 •:filiWWt-nl 555 If an exact match is found in range 1 , the function returns the value of the slot the same number of slots from the beginning of the second range. If key is not found in range 1 , the function returns the error L o o k u p Wildcards ' /\? ' and ' /\# ' may be included in key. I I I I I I I I I I I I I I I Expression slots 1 5 7 MAX Maximum value in list MAX( list) Returns the maximum value from the slots in the list. MIN Minimum value in list MIN(list) Returns the minimum value from the slots in the list . MONTH Month of date MONTH( date) Returns the month number of its date argument. For example, if A l contains 1 2 , 6 , 1 987 then M O N T H ( A l ) returns 6 . Pl 7t PI Returns the value 3 . 1 4 1 592653 . RAD Radians from degrees RAD( degrees) Returns the argument , taken as degrees , converted into radians . ROW Row ROW The value of the row in which it is evaluated. S GN Sign S GN ( n umb e r ) Returns - 1 , 0 , or 1 depending on whether the argument is negative, zero , or positive respectively. 1 58 Section Five - PipeDream Reference @ Fields SIN Sine SIN(radians) Returns the sine of the argument, in radians. SOR Square root SOR( number) Returns the positive square-root of its argument. SUM Sum SUM(list) Returns the sum of the slots in the list. TAN Tangent TAN(radians) Returns the tangent of the argument, in radians . YEAR Year of date Returns the year number of its date argument. For example, if Al contains 1 2 . 6 . 1 987 then Y E A R ( A l ) r e t u rns 87. You can include the page number, the date, the file title from the Options Page, or the value of any expression slot within text in y o ur document using the special PipeDream @-fields. The following @ fields are available : Identifier Effect @P@ current page number @D@ d a t e @T@ title defined in options page @ref@ value of slot ref @� @ I , I I I :Expression slots One or more ' @ ' characters should be given after the identifier to determine the size of the @ field for formatting. For example, @P� 1 59 creates a field of four characters . Provided the value to be displayed is less than the size of the @-field, the line will be justified correctly. The field : @ref� will reserve five characters for the value of the slot indicated by the reference. If it is an expression slot, the value will be displayed in the same format as in the slot itself, with alignment ignored. When the cursor is not on a text slot with an @ field in it, the slot shows the value of the @ field. When the cursor is moved onto the slot, the actual @ identifier is shown, for editing. 1 60 I I I I Section Six � l*irr·•·'*i=+J•• BLOCKS CURSOR E D I T F I L E S The D iary ref ere nee The Diary application can be entered from the Index menu or from any application by typing DD. Only one copy of the Diary can exist in the list of SUSPENDED ACTIVITIES at any time. The Diary displays the Diary page for the current date, or the page previously edited if there is one . -· - . TUESDAY 1 7TH MARCH 1 SS7 I NSERT MODE oz Text can be typed into the diary in a free format, and can be edited using similar cursor-editing facilities as in PipeDream. Text automatically wraps to the next line when it reaches the right-hand margin, but note that unlike PipeDream the Diary does not reformat the remaining text on the page . This is to avoid altering the layout of any subsequent diary entries on the same page. The IEscJ key can be used to escape from any menu option. If you call the Calendar from within the Diary, you can use the cursor keys to select a new date. Pressing IEscl then returns you to the Diary which will now display the page for the new date selected. (See Using the Calendar and Diary together, p . 6 8 , for details .) Similarly, if you call the Al arm popdown from the Diary, the date will initially be set to the current date in the Diary. When you return to the Diary, however, the same date will be displayed on the screen as before the Alarm was called. Memory low warning When memory is low, a warning is displayed in the o 1 A R Y D A T E window. You should then free memory before proceeding by deleting obselete diary entries with the o [Qill command. Operations on a block of text - BLO CKS D I FIRY M a r k B l o c k BLOCKS C l e a r M a r k CURSOR C o p y ED I T M ov e F I LES D e l e t e L i s t/P r i n t 9Z S e a r c h 9BSE mmm DZ ¢Q R e p l a c e 9BRP FI D V FI N C E 9BC N ex t M a t c h 9BNM � "} -0- 'fr 9BM P r ev i o us M a t c h 9BPM S E L E C T 9B D oum 9BL FICT I O N � R E S U M E The commands on the BLOCKS menu allow you to perform a command on a block of text with a single operation A marked block can consist of a single line, can include several lines within one day, or can extend over several days, months , or even years. To mark a block gi ve the Mark Block command on a line to be selected, or at the top and bottom of an area to be selected. The marked block will be displayed highlighted on the screen. Mark Block - <>Z Marks a line, or the first and last lines in a block of lines, prior to performing one of the block operations on the entire block. Clear Mark - <>a Clears any marked block previously set up with the Mark Block command. Copy - <>BC Makes a second copy of all the text within a marked block, putting the copy on the day indicated by the cursor position. Move - <>BM Moves a marked block of text from one position in the Diary to the position indicated by the cursor. I I I Operations on a block of text - BLOCKS 1 63 Searching and replacing Delete - �BD Deletes a marked block of text from the Diary, closing up the gap. Note that this text cannot be recovered - the command should be used with caution. Llst - �BL Lists all or part of the diary to the screen, or to a printer. The following options are displayed : L is t o n s c r e e n L is t o n p r i n t e r L is t o n l � M a r k e d b l o c k Y es N o Y es Pressing IENTERI will list the entire Diary to the screen. To list part of the Diary, mark the part you wish to list with the Mark Bl ock command on the BLOCKS menu first. When listing to the screen the Diary will pause at the end of each screenful with the PAGE WA I T display: aJ:Dl CONT I NUE � RESUME Press the space bar to continue the listing or IEscl to exit. The Search and Replace commands allow you to search for information anywhere in the diary and, if you wish, replace it throughout by different text. Whenever the Diary is performing a time-consuming task, such as searching through a huge amount of information, or performing a large number of replacements , the cursor will disappear. Search - �BSE Searches for a specified string, and moves to the day containing the first occurrence. You can restrict the search to a marked block, and also print or list all the lines which match the search string. 1 64 Section Six - The Diary reference The following options are displayed : - - - - - - - - - - - S T R I N G T O S E A R C H F O R - - - - - - - - - - E Q U A T E U P P E R A N D L O W E R C A S E 1 1 1 1 1 1 1 1 1 1 1 Y e $ S E A R C H O N L Y MARK E D B L O C K 1 1 1 1 1 1 1 1 1 1 1 1 1 1 N o P R O D U C E L I S T 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 N o P R I N T L I S T • , • , , • • • , • • • , • • • • , • • • • • • • • • • N o For example , if you identify every expense claim in your diary with the prefix 'EX: ' , you could search for or print out all the expenses by entering EX : as the string to search for. Equate upper and lower case: by default the case is ignored so that specifying t h e will find T h e T H E , etc. Change to No to find only strings that match the case of the specified string exactly. Search only marked block: change to Y es to restrict the search to a marked block. Produce list I Print list: change to Y es to produce a list of the found strings to the screen or printer respectively. This is useful for finding and printing all lines beginning with the same word, such as M e e t i n g . Next Match - 9BNM Moves from the cursor position to the next occurrence of the string you are searching for. Previous Match - ¢ BPM Moves from the cursor position to the previous occurrence of the string you are searching for. Replace - ¢ BRP Allows you to replace each occurrence of a string you are searching for with other specified text. By default the case of the replaced string is altered to match the case of the string matched, and before each replacement you are asked whether you want to make it. You can restrict the replacements to a marked block. I I Operations on a block of text - BLOCKS Gives the prompts : - - - - - - - - - - - S T R I N G T O S E A R C H F O R - - - - - - - - - - - - - - - - - - - - S T R I N G T O R E P L A C E W I T H - - - - - - - - - E G U A T E U P P E R A N D L O W E R C A S E 1 1 1 1 1 1 1 1 1 1 1 Y e s A S K F O R C O N F I R M A T I O N 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 Y e s S E A R C H O N L Y M A R K E D BL O C K 1 1 1 1 1 1 1 1 1 1 1 1 1 1 N o Replace with : specifies the string to replace every occurrence of the string to search for. Equate upper & lower case: only affects the search part of the string, and the string is replaced exactly as specified. 1 65 The other options operate in the same way as for the Search command. Moving around the D iary - CURSOR D I ARY E n d ot L i n e B L OC K S S t a r t ot L i n e C U RSOR L as t L i n e ED I T F i rs t L i n e F I LE S S av e P os i t i o n R es t o r e P o s i t i o n ENTER <> � H e x t W o r d SHIFr � TAB liliEI mmm DZ <> -¢. P r ev i o us W o r d SHIFr -¢1 T o d a 11 <> C T ADVANCE <> � S c r e e n U p SHIFr -0- F i rs t A c t iv e D a 11 <> C F A D 4' '¢- � -0- <> -0- S c r e e n D ow n SHIFr � L as t A c t iv e D a 11 <> C L A D SELECT <>CSP Curs o r Ri �ht '¢- H ex t A c t iv e D a 11 a � lliiIJ] <>CRP C u rs o r Le t 4' P r ev i o us A c t i v e D a 11 0 4' ACT I ON lllim C u r s o r U p -0- P r ev i o us D a 11 a -0- � C u rs o r D ow n � H ex t D a 11 a � RESUME The commands on the cursor menu enable you to move the cursor to any position on the page of information for the current day in the diary, and to the next or previous day. TAB - ITABI Inserts spaces to position the cursor at the next tab position to the right. There are preset tab positions preset every 8 characters across the line. ENTER - IENTERI Moves the cursor to the beginning of the next line. Save Position - oCSP Saves the current cursor position. If you move to a new position, you can jump back to the previous position with the Restore Position command. Up to five positions can be saved, and they will be restored in tum. Restore Position - oCRP Moves the cursor to the last position saved. Moving around the Diary - CURSOR 1 6 7 Moving within a line Cursor Right - o Moving within a day Moves the cursor one character space to the right. Cursor Left - O Moves the cursor one character position to the left. You cannot move past the beginnning of the line. Next Word - !SHIFT\ 0 Moves the cursor to the beginning of the next word on the current line. Previous Word - !SHIFT\ O Moves the cursor to the beginning of the previous word on the current line. End of Line - ¢ 0 Moves the cursor to the character position after the last character on the current line. Start of Line - ¢0 Moves the cursor to the first character position in the current line. Cursor Down - .0 Moves the cursor down within the current day. Cursor Up - 0 Moves the cursor up within the current day Last Line - ¢.(). Moves the cursor to the last line on the current page. First Line - ¢-Q Moves the cursor to the first line on the current page. 1 68 Moving between days Active days Section Six - The Diary reference Screen Down - ISHIFTI .Q. Moves the cursor down by a screenful of information. Screen Up - ISHIFTI 11 Moves the cursor up by a screenful of information. Today - OCT Moves the cursor to today. Next Day - o .Q. Moves t o the next day. Previous day - CJ 11 Moves to the previous day. Days in the Diary which contain information are referred to as ' active' days . You can move rapidly between the active days with the Next and Previous Active Day commands, and you can find the latest and earliest information in the Diary with the Last and First Active Day commands. If you call the Calendar from the Diary, active days, and the day you are currently looking at, are indicated by a marker against the d a y : 1 4 • 1 5 1 6 Next Active Day - CJ Q Moves to the next day containing an entry. Previous Active Day - CJ Q Moves to the previous day containing an entry. Last Active Day - o CLAD Moves to the latest day containing any information. I I Moving around the Diary - CURSOR First Active Day - <> CFAD Moves to the earliest day containing any information. Summary of Diary cursor operations DQ <><=i ISHIFTI Q Q Move to Move to Move to Move to previous beginning previous previous active day of line word character o D Move to previous day <> D Move to first line o f current day ISHIFTI D Move up one screenful D Move to previous line 0 ISHIFTI O Move to Move to u next next word character u Move to next line ISHIFTI U Move down one screenful <>o Move to end of line <> U Move to last line of current day o U Move to next day 1 69 DO Move to next active day Editing the D iary - EDIT D I A R Y R u b o u t B L OCl<S D e l e t e C h a r a c t e r C U R S O R I n-s e r t C h a r a c t e r ED IT D e l e t e W o r d F I LES D e l e t e to E n d D e l e t e L i n e o f L i n e I n-s e r t L i n e Editing within a line li1D I ns e r t/Ov e r t 11 P e oU S p l i t L i n e <> E S L rm.ml DZ <> G Sw a p C as e oS J o i n L i n e s <>EJL ADVANCE <>U Next 0 P t i o n oJ � � -6- il' <>T M ef'l o r .,, F r e e <>EMF SELECT oD mmJ <>Y ACT I ON <> N cm RESUME Insert/Overtype - ¢ V Switches the text entry mode between Insert mode, in which characters typed are inserted at the cursor position, and Overtype mode, in which characters type over the previous contents of the line. The current mode is displayed at the right-hand side of the screen in the D I A R Y D A T E window. Delete Character - ¢G or ISHIFTI � Deletes the character at the cursor position. All characters to the right of the cursor will move one position to the left to close up the gap . Delete to End of Line - ¢ D Deletes the text from the cursor position to the end of the line . Delete Word - ¢T Deletes all characters from the cursor position to the beginning of the next word. If you position the cursor at the beginning of a word before gi ving this command, it will delete the word. Rubout - � Deletes to the left. In Insert mode all characters at and to the right of the cursor will move left. Editing the Diary - EDIT Editing within a day Miscellaneous 1 71 Insert Character - ¢ U Inserts a blank space at the cursor position. Swap Case - os Changes the case of the character at the cursor position and moves the cursor to the next character. Delete Line - oY or ¢� Deletes the current line. Text on subsequent lines is moved up one line to close up the gap. Join Lines - ¢ EJL Adds the text on the next line to the end of the text on the current line. Insert Line - ¢N Inserts a blank line at the cursor position. The text on the current line and all subsequent lines is moved down one line. Split Line - ¢ESL Splits the current line at the cursor position. All characters at, and to the right of the cursor, will be moved to the next line. Memory Free - ¢EMF Displays the amount of space available, in bytes, in the o I A R Y D A T E window on the right-hand side of the Diary screen. Each byte represents the space needed for a character ; approximately 2000 bytes are needed to store a typical A4 page of text. Next Option - OJ Alternates between the available values of an option. Loading and s aving - FILE S D I A R Y 'BC'O'Ei<s C U R S O R E D I T F I LES L o .a d S .av e mllllll DZ A D V A N C E -4' � -0- -0- S E L E C T ffiim A C T I O N IE!I R E S U H E The commands on the FILES menu allow you archive old information in the Diary, or to load a range of entries into the Diary, starting at a different date (such as a year later) . Load - OFL Incorporates a diary file of a specified name into the information currently in the Diary. Gives the prompts : - - - - - - - - - - - N A M E O F F I L E TO L O A D - - - - - - - - - - S T A R T L O A D I N G D A T A AT D I A R Y D A T E , , , , , , N o A block of Diary entries can be copied from one range of dates to another, such as from one year to the next, by saving the block, moving to the same date in the next year (using the Calendar) , and then loading the data back with the option set S T A R T L O A D I N G D A T A A T D I A R Y D A T E I , , , , , Y e s Because loading appends data to whatever is already in the diary, an additional blank line will be present on the current day after a load. Instead of typing the file name, the file can be selected from the Filer. After typing o FL call the Filer by typing OF, and select the required file by marking it (see Selecting files, p. 83) . When you return to the Diary from the Filer by pressing IEscl the selected file name will have been Loading and saving - FILES copied to the Load window. You will then just need to press IENTERI to load the file. Save - oFS 1 73 Saves the Diary to the current name, or to a name you specify. Normally the whole diary is saved. You can also save part of the Diary by marking the block of text first. Gives the prompts : - - - - - - - - - - - N A M E O F F I L E TO S A V E - - - - - - - - - - SA V E O N L Y M A R K E D B L O C K , , , . . . . . . . . . . , . . N o 1 74 Section Seven Filer refere nee This section describes the more advanced features of the Filer popdown, and should be read in conjunction with the Filer description in Section Three. The features described here include : • Directories , and the hierarchical filing system • The Command Line Interpreter, and CLI files Specifying file names in full The full form of a file name is : DEVICE/DIRECTOR Y/DIRECTOR Y/ . . . . /filename where DIRECTOR Y and filename are each of the form name. extension consisting of a name of up to 1 2 letters or digits, followed by an optional extension of up to three letters or digits, The following extensions are used for system functions : . s g n . C L I . L For D +K and o + S CLI files For BOOT.CLI ; see CIJ files, p . 1 79 . For PipeDream multi-file List file DIRECTOR Y is a directory name subject to the same constraints as filename. In addition the following symbolS can be used: . . I n a me Parent directory of name Current directory 1 76 Section Seven - Filer reference Device specifications DEVICE can be specified as one of the following: Specification Effect : RA M . O RAM in slot 0 (internal memory) : RAM . 1 RAM in slot 1 (external memory) : RAM . 2 RAM in slot 2 ( external memory) : RAM . 3 RAM in slot 3 ( external memory) : R A M . - Any RAM memory; ie 0, 1 , 2 , or 3 . Used by CLI for temporary files , and lost on reset. : R O M . O ROM : S C R . 0 Screen : P RT . 0 Printer; via printer driver so that highlight codes are interpreted : C O M . O Communications ; via serial pon : I N P . 0 Standard input : O U T . O Standard output : N U L . O Null: absorbs output , and acts like an empty file on input Note: RAM . - files must be deleted before a soft reset is performed with Operating Systems up to and including 3 . 0 . Wildcards The device , directory and file name can contain the following wildcards : * ? I I For example, : * / / l e t t e r d o c * * * . . / f r e d * Matches any number o f characters (or none) Matches a single character Matches any number of directories (or none) Finds the file called 1 e t t e r anywhere Finds: d o c . tx , d o c ufY! e n t , d o c2 7 , d o c , etc. Finds only files with extensions . Finds all files beginning with f r e d in the parent directory Note that the characters '/' and ' \ ' may be used interchangeably. I I I I Section Seven - Filer reference Additional Filer commands F I LER C a t a l o g u e F i l es llrRRRNDS C o p y R e n aM e E r as e Ex e c u t e S e l e c t F i rs t F i l e 1 77 The following commands provide facilities for creating directories , manipulating files within the hierarchical directory structure, and executing files of commands . The files referenced by commands such as Select directory or Execute can be selected by marking them ; see Selecting files, p . 8 3 . <> C F C r e a t e D i r e c t o r y <>CD C a t a l o g u e EPROM <> C E fillil!I o z <> C O S e l e c t D i r e c t o r � <>S I S av e t o EPROM <>ES A D V A N C E <>RE Up D i r e c t o r y SHIJT 'Ii' F e t c h f r oM EPROM <>EF <> '9 '°'" 'Ii' <>E R D ow n D i r e c t o r y SHIJT -0- S e l e c t D ev i c e <> S U S E L E C T <>EX C u rs o r R i 1 h t ¢ T r e e C o p y <>TC l.Iiim l.Iiim C u rs o r L e t ¢o N aM e M a t c h <>HM ACT I ON S e l e c t E x t r a F i l e SHIJTl.Iilm C u rs o r U P � lliiH C u rs o r D o w n -0- RESUHE Select Directory - ¢SI Sets the current directory to the specified directory. Gives the prompt N aM ei : I displaying the current directory string (if any). For example, to set the current directory to directory TEXT in the current directory, specify N aM ei : T E X T If the directory has not been created, a F i 1 ei n o t f' o u n d error will be displayed. Select Device - oSV Sets the current device. Gives a prompt such as N aM ei : : R A t1 . 0 showing the current device , which can be edited to the required new device . The Select Device command resets the current directory to the root directory. The Select Device and Select Directory commands affect the device and directory for the activity from which the F i l er was entered, if there is 1 78 Section Seven - Filer reference one. This allows different activities to use different devices and directories without the need for specifying them explicitly each time. Note, therefore, that if you save files having set a device and/or directory from one activity, and then enter the Filer from another activity, the files may not appear in the DIRECTORY list. Check the directory displayed at the top of the DIRECTORY window to ensure that you are in the intended directory. Down Directory - ISH O TI .0 Up Directory - ISHIFTI These commands are used for traversing a hierarchical directory structure. To select a directory move the highlight bar to the directory name in the Filer DIRECTORY window and press ISHIFTI .Q. . To go back up to the parent directory press ISHIFTI D . Execute - ¢EX Executes a CLI file of commands specified after the prompt N af'l e : I See CIJ files below. Create Directory - ¢ CD Creates a directory within the current directory ; the name is specified after the prompt N af'l e : I Tree Copy - ¢TC Copies a file tree from one directory to another. Arguments to the S o u r c e and D es t i n a t i o n fields must be devices or directories. For example, S o u r c e : : R A M , 1 D es t i n a t i o n : : R A M . 2 will make a duplicate copy of all files from RAM card 1 to RAM c ar d 2 . The source area cannot be part o f the destination area. Section Seven - Filer reference CLI files 1 79 Name Match - <>NM Sets up a match string restricting access to files in the current directory to those that match the string. For example, setting N aM e : * , b as will catalogue only files with a b as extension. The default match string is * , matching all file names. When a name match other than * is active , the symbol N M will b e displayed at the left-hand end o f the Filer DffiECTORY window. The Filer Execute command, <>EX, allows a text file to be passed to the Command Line Interpreter, or CLI. The effect is as if the characters in the file had been typed at the Z88 keyboard. CLI files thus provide a means of specifying a sequence of commands or operations, which can then be carried out simply by executing the file. For example, an execute file could be used to carry out a frequently-used sequence of Replace operations in PipeDream documents . Certain characters are given a special significance in CLI files , to allow special keys on the keyboard to be represented, or additional operations to be carried out by the Command Line Interpreter. These special characters, and their functions, are as follows : ti Prefixes a o key sequence : Prefixes a <> key sequence Used in combination with a letter to represent other special keys on the Z88 keyboard As the first character on a line, introduces a special CLI command. To represent these actual characters in a command file, they should be specified twice : Seauence Renresents ## # - - - I I I I I I 1 80 Section Seven - Filer reference Key sequences Character Significance -A Single press of the o key ; -A-A has no effect - c Single press o f the o key ; -C-C has no effect - s ISHIFTI -I llNDEXI -M IMENUI -H IHELPI -E lENTERJ -x !Qill -T ITABI -u B -D -L 0 -R 0 I [ fESCl File control commands The full-stop character introduces the following special commands when it is the first character of a line in an execute file. Seauence Significance . T> filename Create output file . T< filename Create input file . T= filename Create printer file .> filename Redirect output .< filename Redirect input . = filename Redirect printer .D nnn Delay nnn centiseconds . s Suspend CLI ; all redirections o f input o r output remain in force . * filename Invoke new file to CLI .J Ignore special significance of subsequent escape characters . ; a comment Ianored . The T character represents a 'T' junction, as it causes an additional copy of the input or output to be sent to a specified stream. For example : . T > : R A M . O / f r e d . t x t Section Seven - Filer reference sends a copy of what is going to the screen to the file : RAM . O / f r e d . t x t The J character stands for 'Jam' , as it inhibits interpretation of the escape characters . 1 8 1 Printer output can be spooled t o a file with the ' = ' symbol. For example, . = : RAM . O / p r i n t o u t takes the text that would have been printed out, before printer codes are added, and puts the text into the file : RAM . O / p r i n t o u t Terminating execute files When the CLI is running an execute file a CLI symbol is displayed in the OZ area of the screen. The current CLI can be terminated by pressing ISHIFTI IEscl . If several CLis are running they can all be terminated by holding down ¢ and pressing IEscl . Redirecting keyboard input and screen output The following key combinations can be used to redirect keyboard input and screen output : Kev Effect D+P All screen output also sent to the printer D + S All screen output also sent t o the file : R A M . - I S . s g n D +K Key input also sent to the file : RAM . - I K . s g n For example , o +P can be used to obtain a catalogue of EPROM or RAM to a printer. The corresponding sequences with '-' tum the facility off, and sequences D +P and D + S are mutually exclusive. The commands o +S and D +K generate files K.sgn and S .sgn in temporary RAM . These should be deleted after use with the Filer Erase command . 1 82 Section Seven - Filer reference Editing BASIC programs using PipeDream BASIC programs are saved in a tokenised format , and so cannot be loaded into PipeDream and edited directly. However, the CLI provides a convenient way of obtaining a text listing of a BASIC program, which can then be edited and executed back into BASIC . The procedure is as follows : <D LIST the program to the file : RAM . - I S . s g n by typing L I S T D + S [ENTER! ® When the listing has finished, close the file by typing o - s The file : RAM . - I S . s g n can be loaded into PipeDream as plain text, and edited. ® Add the characters . J N E W at the start of the file, and save it from PipeDream using the Plain text option. ® Execute the edited file back into BASIC by entering BASIC and typing : * C L I . * F I L E N A M E to invoke the CLI t o execute the file. ® When finished, erase the file : RAM . - I S . s g n using the Filer. The . J at the start of the file avoids the need to replace characters such as # by ## throughout the BASIC program so that they will not be interpreted by the CLI. Section Seven - Filer reference Executing a file on reset On resetting the Z88, if a file with the name B O O T . C L ! exists on an EPROM card in slot 3 , it will be copied into : RAM . - / B O O T . C L ! and then executed. The file should be deleted when it is no longer required. 1 83 1 84 S e ction Eight Control keys The Terminal The Terminal application provides a widely-used VT52 standard for communicating between a Z88 and a.I'iother computer, or between two Z88 computers, over the RS2 32 serial line. The Terminal can be entered from the Index APPLICATIONS menu, or by typing ov. You can leave the Terminal by pressing the ISHIFTI and [ENTERI keys together. Serial port settings The serial port parameters can be configured from the panel which is entered with o S ; see Panel options, p. 87. The equivalent Z88 keys for the VT52 control keys are shown in the following table , together with a list of the codes transmitted: VT52 Z88 Codes sent DELETE ruJ $7F BACKSPACE ISHIFTJrul $ 0 8 UP B ESC A DOWN ESC B R I GHT c) ESC C LEFT 0 ESC D FO ISHIFTI O ESC P F l ISHIFTI L) ESC O F2 ISHIFTI D ESC R F3 ISHIFTJ D ESC S CONTROL ¢ - These functions are provided on the Terminal COMMANDS menu, with the following additional command: Exit - ISHIFTl!ENTERJ Removes the terminal and returns to the Index. From the Index, OKILL is preferred. 1 86 Spooling files Transmitting files Section Eight - The Terminal Material received by the Terminal application can be spooled to a file :RAM.-/S.sgn automatically by typing c + S before commencing the transfer. The file will be created in temporary RAM, and should be deleted after use. Spooling can be disabled by typing c - S . A convenient way of sending a file to a remote machine is to copy the file to the : C O M device . Enter the Terminal and establish contact with the remote machine in the usual way, and then type C F to go into the Filer. Select the file you wish to transmit and then choose Copy from the Filer menu (see pp . 83-85 for details of how to select and copy files). A dialogue box will appear. Type in : C O M as the destination and press IENTERI . The file will then be transmitted. Once the transmission is over the dialogue box will disappear leaving the Filer display on the screen. You may then press IEscJ to return to the Terminal. � I I I I I I t I I I I I Section Nine The Printer Editor With PipeDream you can create documents containing highlight codes that specify particular type styles and effects, such as bold and underlined text, superscripts and subscripts, and alternative fonts. Because different printers use different techniques to achieve these effects, the ZBB uses a printer driver to convert the standard PipeDream highlights to each particular printer's codes. The printer driver can then be altered to suit a particular printer's facilities. The ZBB comes with a built-in driver, which interfaces with the widely used Epson series of dot-matrix printers, or other printers compatible with this. Creating a new printer driver The ZBB PrinterEd application allows you to create your own printer driver definition, editing the options used by the built-in driver to add your own special printing effects to your documents. Alternatively, you can design a printer driver definition for a make of printer not catered for by the built-in driver. To do this you will need to consult the printer handbook, to find out which codes are needed for each facility you want to use . Having created a new printer driver definition, you can use this to replace the built-in driver with the Update Driver command. To run the editor select PrinterEd from the Index APPLICATIONS list, or press DE from any application. The driver definition is displayed on two pages. You can move between the pages with the following commands : move from page 1 to page 2 move from page 2 to page 1 . While developing and testing a printer driver it is sensible to keep PrinterEd as a suspended activity. On completing a driver definition, and saving it to the filing system, the PrinterEd activity can be deleted from the Index with o KILL . 1 88 Section Nine - The Printer Editor Editing the driver definition The printer driver definition is altered by moving the cursor to the appropriate field on the page with the cursor keys , D , D , O , or c> , and then typing the required value for the option. The editing commands are summarised on the PrinterEd CURSOR menu. Some options take a Yes/No value ; in this case you can toggle between the values with the Next Option command, oJ, or select the appropriate value by typing Y or N . Most options take a list of one or more codes , separated by commas . Code values Printer codes can be entered in any of the following forms : T e Decimal number Hexadecimal number ASCII character ASCII s ol Exam le 1 90 $5A · z · Exam le 2 2 7 $ 1B ESC The two examples show equivalent representations of the same values. Any of the standard ASCII symbols can be used to represent the values 0 to 3 1 , or $0 to $ l F . A full list is given in Appendix D - ZBB Character Set. Hi ghlight codes Page 1 of the PrinterEd application allows the behaviour of each of the eight PipeDream highlight codes to be specified. P R I N T E R E O C U RSOR F I L.ES 'AAqa9&\"!!#Ji'�:W 1 . O N U n d e r l i n e 27 , 45 , 1 • · - 2 S t r 1 n� B o l d 2 7 , 69 3 Ex t . s e� u e n c e 4 I t a l i cs 27 , 52 ·�•ma;;w 5 S u bs e r i p t 27 , 83 , 1 ps o n 6 S u p e rs c r i p t 27 , 83 , 0 Paye 1 7 A l t . f o n t 1 5 14. c:cw =•u••' 8 U s e r d Ei f" i n e d 27 / 1 20 , 1 OFF 2 7 , 45 , 0 S t r i n g 2 7 , 7 0 2 7 , 5 3 2 7 , 84 2 7 , 8 4 1 8 2 7 , 1 2 0 , 0 O f f Y es ' DZ a t Y es CR Y es Y es Y e s Y es N o N o The recommended assignment of highlight codes to printer functions is as follows : I I I I I I I I I I I I Section Nine - The Printer Editor 1 89 Code Function Printed example 1 Underline unde r l i n�d tyQ� 2 Bold bold type 3 Extended sequence e p t 4 Italic i t a l i c type 5 Subscript H,O 6 Superscript e=mc2 7 Alternative font a l t e r n a t i v e f o n t 8 User defined In every case the same highlight turns the facility off, and in all cases except 7 and 8, the facility is also turned off at the end of a slot. The highlight table contains three columns specifying the following information for each of the eight highlights , 1 to 8 : O N String OFF String Off at CR The sequence of codes needed to turn the facility on The sequence of codes needed to turn the facility off Y e- s: or N o , to determine whether the facility should be cancelled at the end of a slot. You can move between columns using the cursor keys ¢J and O, and between lines with D and D . ON String and OFF String The ON String specifies the sequence of codes to turn the corresponding printer facility on, and the OFF String the sequence of codes to tum it off. Each of these sequences of codes is output on alternate occurrences of the specified highlight code in the document. If the facility is toggled on and off by the same sequence of codes , the OFF String can be omitted, and the ON String will be output on every occurrence of the highlight . Overprinting On some printers special effects can be obtained by outputting a sequence of codes for every character printed. For example, some daisy wheel printers underline by backspacing, an d then printing an underscore character, for every character printed. 1 90 Section Nine - The Printer Editor You can set up highlights that work on this principle by including the special '?' character in the ON String. When the highlight is active , the specified ON String sequence will be output for every character printed, with ' ? ' replaced by that character. This facility is toggled on and off by successive occurrences of the specified highlight code. For example, to underline by backspacing and overprinting an underscore character, give the sequence ON U n d e r l i n e ? , BS , 11 _ 11 If ' ? ' occurs in the ON String the OFF String is ignored, and should be left blank. Off at CR The final column specifies for each code whether the facility should be turned off automatically at the end of each slot. In general, all highlights which are normally inserted on a word by word basis , such as underlining and bold type, should specify V es (the default) in this column. Off at CR should also be set to V es if the printer itself turns off the corresponding facility at a carriage return. Off at CR should be set to N o in the case of highlights , such as alternative font, which are applied to a large section of a document . Note that in this case headers and footers within the highlighted area will also be affected. I I Section Nine - The Printer Editor 1 9 1 Printer options Page 2 of the PrinterEd application allows the driver definition options to be specified, and up to nine character translations to be set up. F" R I NTERED C U RSOR F I L..ES '*.\lfj\\ff!;jj'"'i9 P � � � � ! � r 0�� 2 7 , 64 End o f P H e 1 2 A l l o w l i n e f e e d Y e s - 1; "" ,a .... p t s l """ i 0 1 = 3 n ;w .. HM I : P r e f ix E 1 S u f f ix l@iJ a ? E- =h••; Offseit Printer on T r a n s l a t i o n s .:ill C h a r a c t e r 1 6 C h a n g e s t o 27 , 82 , 3 , C h a r a c t e r C h a n g e s t o C h a r a c t e r C h a n g e s t o oz Specifies a sequence of codes to be sent to the printer before printing a document . For example, the codes 2 7 , 64 in the Epson driver definition initialise the printer. Printer off Can be used to reset the printer to its previous settings so that subsequent printing will not be affected. End of page Specifies a sequence of codes to be sent to the printer at the end of each page . If the sequence contains a form-feed character, 12 (or FF) , PipeDream will not output linefeeds to the end of page, resulting in faster and quieter page ej ects on printers that support this . Allow line feed Determines whether a line feed code (LF) is sent at the end of each line, in addition to a carriage return (CR). This option is set to Y e s in the default Epson driver. If unwanted extra line feeds are produced, so that all printing is double-spaced, change the option value to No . Note: With Operating Systems 3 . 0 and earlier, selecting No will cause ASCII 0 (NULL) to be sent instead of ASCII 10 (LF). Microspacing - HMI Certain printers allow the horizontal movement of the print head to be controlled to 1/120th of an inch, which mens that text will be justified 1 92 Section Nine - The Prin ter Editor with an almost perfectly even distribution of the space. The following sample is printed without microspacing: T h i s s a m p l e o f t e x t d e m o n s t r a t e s t h e i mp r o v e m e n t g a i n e d b y j u s t i fy i n g t e x t w i t h m i c r o s p a c i n g . The same sample with microspacing is shown below: T h i s s a m p l e o f t e x t d e m o n s t r a t e s t h e i m p r o v e m e n t g a i n e d b y j u s t i fy i n g t e x t w i t h m i c r o s p a c i n g . Microspacing requires a Horizontal Motion Increment, or HMI, to be specified to the printer as the number of 1 2 0ths of an inch to be allocated to the printing of subsequent characters . This is normally given after a prefix code, although for some printers a suffix is also required. For example, the Ricoh, Flowriter 1 600 , and JUKI 6 1 00 use the following prefix: HM I p r e f ix ESC , 3 1 HM I s u f f ix HM I o f f s e t Translations The character translation table allows up to 9 single-character substitutions to be made before printing, so that alterations can be made to the character set supplied by the printer. The sequence may include a string of codes, which will scroll within the window as they are entered. For example, the default Epson driver uses the following sequence to print a ' £ ' sign, assuming it is set up to use the USA character set: 27 , 82 , 3 , 35 , 2 7 , 8 2 , 0 which is equivalent to: E S C , " R " , 3 3 5 E S C , " R " , 0 select UK character set print pound sign restore USA character set Section Nine - The Printer Editor PrinterEd FILES menu P R I N T E R E D C U R S O R F ILES Lo a d S ave N aM e N ew U p d a t e D r iv e r 1 93 The PrinterEd FILES menu provides commands to allow driver definitions to be used for subsequent printing, or to be saved and loaded as named files . You can also reset the driver definition to the standard Epson driver. oFL oFS oFC oFNEW <> F U I Milil!I oz ADVANCE ¢' � -0-- it SELECT I lliilll A�ON RESUHE The name of the current driver definition. initially Epson.is displayed on the Printer Editor screen and is shown for the PrinterEd activity m the Index YOUR REF. column. Load - ¢FL Allows a driver definition to be loaded into the Printer Editor. Gives the prompt : F i l e n aM e I Note that the driver definition is not actually installed until the Update Driver command is given. Save - ¢FS Saves the current driver definition with a specified name. Name - ¢FC Sets the name of the current driver definition. New - QFNEW Resets the driver definition in the Printer Editor to the options for the default Epson driver, and resets the driver used for printing to this driver. Update Driver - ¢FU Creates a printer driver from the definition currently in the Printer Editor, and installs it for use in subsequent printing. 1 94 I I I I I I I I I I I I Section Ten BB C BASIC PipeDream can be used t o carry out most o f the operations you are likely to want to perform on text and numbers, such as entering and editing, searching, sorting and calculating. However, some problems would require you to carry out a sequence of different operations and this might be cumbersome and time-consuming using PipeDream. For this sort of problem you can turn to the BBC BASIC programming language which is provided in your 28 8 . Programming languages are designed t o allow you t o instruct the computer to carry out a sequence of operations on text or numbers . BASIC is one such general-purpose programming language , and is the most widely used language on microcomputers. BASIC has a significant advantage over many other languages in that it is interactive : you can make changes to a sequence of instructions, and see the result immediately without having to perform any intervening operations. This means that programs can be developed relatively quickly. This section provides a reference list of all the 288 BBC BASIC language keywords . It is not intended as a tutorial on the BASIC language ; many excellent books on this subject already exist . The keywords are divided into four types : Commands are instructions that can be typed from the keyboard to assist in creating a program, and testing it out . Commands are typed from the keyboard in immediate mode after the BASIC > sign prompt, and they may not be used within programs. Statements are the special keywords that are used within programs , after a line number, to instruct the computer to do something. Most statements can also be typed directly after the BASIC prompt, and are then executed immediately so that you can try out their effect. The BASIC statements are normally the first keyword after the line number in a program line. Functions can be included in expressions , and will return the result of performing an operation on the arguments enclosed in brackets after their name . They are similar to the functions in PipeDream. 1 96 Section Ten - BBC BASIC A function can be followed by one or more arguments , and returns a number or a string. Functions which take only one argument require brackets around the argument only if it is a complex expression. If the argument is a simple number, variable, or another function, no brackets are required. Finally, the operators can be used to link the components of expressions . The following keywords , associated with graphics, sound, and analogue operations in other versions of BBC BASIC, give the error S o r r y , n o t if"I P l ef"l e n t e d on the Z88 : Graphics : CLG, COLOUR, DRAW, GCOL, MODE , MOVE , PLOT, POINT Sound: ENVELOPE , SOUND Analogue : ADVAL Entering BBC BASIC You enter B B C BASIC by selecting BASIC from the Index APPLICATIONS LIST , or by typing DB from any application. The initial BASIC screen will then be displayed : BBC BAS I C < Z80 ) U e rs i o n 3 . 00 ( C ) C o p y r i g h t R . T . R us s e l l 1 987 >I oz C A P S In an unexpanded machine, BASIC has a workspace of BK bytes. In an expanded machine, containing in slot 1 at least 1 2 8K RAM, the I workspace is increased to 40K. I I I I I I I I I I I I I I I I I I I Section Ten - BBC BASIC Entering keywords Editing BASIC programs 6 0 0 0 0 E N D 6 0 0 1 0 D E F P R O C E ( 8 ) 1 9 7 Many keywords may b e abbreviated when entered into a program, and will be expanded by the BASIC interpreter. In such cases the shortest abbreviation is shown in brackets after the full form; eg AUTO (AU . ) . All keywords must b e entered in capitals , a s shown in the following alphabetical list. Inverted Caps mode can be selected by typing D [CAPS LOCK[ . To give capital letters when the Z 8 8 keys are typed alone, and lower-case letters when typed with the [SHIFT[ key. Press O [CAPS LOCK[ to restore ordinary Caps mode. The following program provides BBC BASIC on the Z88 with a line editor. The line editor works as follows : (1) To edit a line you need to type: P R O C E ( l i n e n umb e r ) [ENTERi The editor will list out the line and put the cursor at the end. @ You can now use the cursor keys to move within the line and make changes , and most of the edit commands available in PipeDream such as Delete Word etc. @ When you have made all the changes you want, press [ENTER[ t o store the line back in the program. If you want to abandon the changes you have made then press [Esc[ and the line will be left unchanged. Before you can use the editor you must type in the following program. You can then start writing your own program. When you save your program the editor will be saved with it. 6 0 0 2 0 R E M C a m b r i d g e C o m p u t e r L t d . 6 0 0 3 0 I F 8 = 0 T H E N E N D P R O C 6 0 1 2 0 A= I N K E Y ( O ) 6 0 1 3 0 A= O P E N I N 8 $ 6 0 1 4 0 I N P U T # A . A $ , A $ 6 0 1 5 0 C L O S E # A 6 0 0 4 0 A= O P E N O U T " : R A M . O / E E . C L I " 6 0 0 5 0 B S = " : R A M . O / E . C L I " 6 0 0 6 0 P R I N T # A , " . > " + 8 $ 6 0 0 7 0 P R I N T # A , " . J " , " L I S T " + S T R $ ( 8 ) , " P R O C F " 6 0 0 8 0 C L O S E # A 6 0 0 9 0 * C L I . * : R A M . O / E E . C L I 6 0 1 0 0 E N D P R O C 6 0 1 1 0 D E F P R O C F 6 0 1 6 0 A= O P E N O U T 8 $ 6 0 1 7 0 P R I N T # A , " . J " , A $ 6 0 1 8 0 P T R#A= P T R#A - 1 6 0 1 9 0 8 P U T tfA . 0 6 0 2 0 0 C L O S E # A 6 0 2 1 0 V D U 8 6 0 2 2 0 O S C L I " * C L I . < " + 8 $ 6 0 2 3 0 E N D P R O C 1 98 Printing from BASIC Section Ten - BBC BASIC If you have several existing programs which you would like to append the editor to you must type the editor into PipeDream. On the first line you must include the CLI command .J . Now save the file in plain text format as EDBAS. When you want to use the editor start a BASIC and load the program you want to edit. To append the editor onto the end of your program type: * C L ! . * E D B A S IENTERI where EDBAS should be in the directory selected by this application. Note that if your program uses line numbers above 60000 you should renumber it first before appending the editor. The editor generates two working files in :RAM.O called IEE.CL! and IE .CU. The files can be erased after use. If you have a RAM card in slot 1 or slot 2 you could alter the program to save its working files in :RAM. 1 or :RAM.2 by changing lines : 60040, 60050, and 60090. The following program shows how to print from a BASIC program: 1 0 0 L E T P RT_O N $ =C H R $ ( 5 ) + " [ " 1 1 0 L E T P RT_O F F $ =C H R $ ( 5 ) + " J " 1 2 0 L E T L F $ =C H R $ ( 1 0 ) 1 3 0 1 4 0 L E T P RT=O P E N O U T " : P RT " 1 5 0 I F P RT=O T H E N P R I N T " C A N ' T O P E N P R I N T E R " : S T O P 1 6 0 1 7 0 P R I N T# P RT , P RT_O N $ 1 8 0 F O R I = l T O 4 1 9 0 P R I N T# P RT , " T e x t " + ST R $ ( I * P I ) + " a n d n u m b e r s ! " + L F $ 2 0 0 N E X T I 2 1 0 P R I N T # P RT , P RT_O F F $ 2 2 0 : 2 3 0 C L O S E lf P RT When run it prints the following: T e x t 3 . 1 4 1 5 9 2 6 5 a n d n u m b e r s ! T e x t 6 . 2 8 3 1 8 5 3 1 a n d n u m b e r s ! T e x t 9 . 4 2 4 7 7 7 9 6 a n d n u m b e r s ! T e x t 1 2 . 5 6 6 3 7 0 6 a n d n u m b e r s ! I I I I I I I I I I I I I I I I I I I BASIC keywords ABS Absolute value (function) Returns the absolute positive value of its argument. ACS Arc cosine (function) Returns the arc cosine of its argument in radians. The permitted range of the argument is - 1 to + 1 . For example, P R I N T D E G ( A C S ( Q . 5 ) ) will print 60, because COS(60°) is 0.5. AND (A.) Logical AND (operator) Performs a bitwise logical AND between two operands which are internally converted to 4 byte integers before the operation. It is normally used to join two conditions in an IF or UNTIL statement ; thus I F l e n g t h > 1 0 A N D w i d t h > 1 0 T H E N P R I N T " O K " ensures that a rectangle is larger than 1 0 x 10. ASC ASCII value (function) Returns the ASCII ch ara ct er value of the first character of the argument string. P R I N T A S C ( " Z 8 8 " ) gives 90, the ASCII value of •z•. The brackets are optional, and A S C " " , the null string, gives - 1 . 200 Section Ten - BBC BASIC ASN Arc sine (function) Returns the arc sine of its argument in radians . The permitted range of the argument is -1 to + 1 . ATN Arc tangent (function) Returns the arc tangent of its argument in radians . AUTO (AU.) Automatic numbering (command) Allows lines to be entered without first typing in the number of the line. The line numbers are preceded by the usual prompt ( >) . B y default the starting line number and increment are both 1 0 , but they may optionally be specified; for example A U T O 2 0 will start with line 20 , and A U T O 1 0 0 , 2 0 will start at line 100 and increment by 2 0 . AUTO will continue generating line numbers until you press IEscJ . BGET# (B.#) Byte from data file (function) Returns a byte from the data file whose channel number is its argument. The file pointer is incremented after the byte has been read. For example, c h a r a c t e r= B G E T/l c reads the next character from file c. BPUT# (BP.#) Output a byte (statement) Puts a byte to the data file whose channel number is the first argument . The second argument ' s least significant byte is written to the file. The file pointer is incremented after the byte has been written. Thus B P U T# c h a n n e l , c h a r writes c h a r to file c h a n n e 1 . I I I I I I I BASIC keywords CALL (CA.) 20 1 Call machine-code (statement) Calls a machine code subroutine at a specified address , passing parameters in a parameter block addressed by the ZBO's IX register. The IY register is set to the address of the machine code subroutine being called. The processor's A, B , C, D, E , F, H, and L registers are initialised to the least significant bytes of A% , B % , C % , 0 % , E % , F% , H % , and 1% respectively. This statement could cause corruption of the Z88 memory, and should therefore only be used by experienced programmers. The parameter block contains the following list : number of parameters first parameter type first parameter address parameter type parameter address Parameter types 0 8 bit bytes ( eg ?a) 1 byte (IX+ O) 1 byte (IX+ l ) 2 bytes (IX+ 2 ,IX+3) ) repeated as often ) as necessary 4 32 bit integer variable (eg l b or c % ) 5 40 bit floating point number ( eg d) 1 2 8 A string at a defined address (eg $e - terminated b y a &OD) 129 A string variable such as f$ In the case of a string variable the parameter address is the address of a String Information Block which gives the current length of the string, number of bytes allocated, and start address , in that order. m u l d i v = l 2 3 4 C A L L m u l d i v , A , B $ , C % CHAIN (CH.) Load and run program (statement) Loads and runs the program whose name is specified in the argument allowing one program to load another. Information can be passed between programs using the static variables @ % , and A% to Z % . 202 Section Ten - BBC BASIC CHR$ ASCil character (function) Returns the ASCII character string specified by the least significant byte of the numeric argument. A $ = C H R $ ( 9 0 ) will set A$ to • z •, since ASC"Z" is 90. The characters corresponding to values 32 and above can be displayed on the screen with the line F O R N %=3 2 T O 2 5 5 : P R I N T C H R $ ( N % ) ; : N E X T CLEAR (CL.) Clear program (statement) Clears all variables , including strings apart from the static variables @ % , and A % to Z % . CLOSE# (CL.#) Close channel (statement) Closes a specified channel. For example, C L O S E#c closes channel c. CLS Clear text area (statement) Clears the text area of the screen. The text cursor is moved to the 'home' position (0,0) at the top left-hand character position of the text area. COS Cosine (function) Returns the cosine of its argument in radians . X=C O S ( a n g l e ) COUNT (COU.) Character count (function) Returns the number of characters sent to the output stream (VDU or printer) since the last new line. For example, P R I N T A $ ; : R E P E AT P R I N T " . " ; : U N T I L C O U N T = 7 2 will pad the line with dots to 72 characters . I I I I I I BASIC keywords DATA (D.) Data (statement) Introduces lists of data for use by the READ statement (see READ). DEF Define function/procedure (statement) Precedes declaration of a user-defined function (FN) or procedure (PROC) . DEF must be used at the start of a program line. For example, D E F F N c e l s i u s ( f ) = ( f - 3 2 ) * 5 / 9 defines a function to convert Fahrenheit to Celsius . Executing P R I N T F N c e l s i u s ( 9 8 . 4 ) will convert 98.4 to Celsius. DEG Degrees (function) 203 Returns the argument converted from radians to degrees . For example P R I N T= D E G ( P I / 2 ) will print 90. DELETE (DEL.) Delete lines (command) Deletes a group of lines from the program. Both start and end lines of the group will be deleted. For example D E L E T E 1 2 3 , 4 5 6 will delete all lines between 1 2 3 and 456 inclusive, which need not exist . DIM Dimension array (statement) Dimensions an array, or reserves an area of memory for special applications. For example, D I M a $ ( 1 0 , 2 0 ) 204 Section Ten - BBC BASIC dimensions a two-dimensional string array a$ with elements a$(0,0) up to a$( 1 0 , 2 0 ) . Arrays may have one or more dimensions, and may be string arrays , floating-point arrays , or integer arrays . D I M X % 2 4 reserves 2 5 bytes and puts the address of byte O in the variable X% . DIV Integer divide (operator) Gives the integer quotient of two items. The result is always an integer. X=A D I V B y= ( t o p+ b o t t o m+ l ) D I V 2 ELSE (EL.) Else clause (statement) An optional part of the IF. . .THEN, or ON . . . GOSUB/GOTO statements, it introduces the action to be taken if the testable condition evaluates to FALSE , or the ON expression is out of range. END End program (statement) Returns to direct mode. ENDPROC End procedure (statement) Denotes the end of a procedure defined with DEF PROC. EOF# End of file (function) Returns - 1 (TRUE) if the end of the specified data file has b ee n reached. For example, R E P E AT c h a r % = B G E T # d a t a U N T I L E O F#d a t a will read characters until the end of the file whose channel number is the variable d a t a . I I I I � I I I I I BASIC keywords 205 EOR Logical Exclusive-OR (operator) Performs a bitwise integer logical exclusive-or between two operands which are internally converted to 4 byte integers before the operation. ERL Error line (function) Returns the line number of the line where the last error occurred. For example, P R I N T " E r r o r n u m b e r " E R R " a t l i n e " E R L ERR Error code (function) Returns the error code number of the last error which occurred . EVAL (EV.) Evaluate string (function) Returns the result of evaluating the given expression supplied as a string. For example , a = 6 : b=7 P R I N T E V·A L ( " a + b " ) EXP Exponent (function) Returns 'e' (2 . 7 1 82 8 1 83) to the power of the argument . EXT# Extent of file (function) Returns the total length of the file whose channel number is its argument. The file must have been opened with OPENIN, OPENUP, or OPENOUT . FALSE (FA.) False (function) Returns the value zero representing logical false. For example, R E P E AT P R I N T " * " : U N T I L F A L S E will continue forever. 206 Section Ten - BBC BASIC FN Function (statement) Introduces a user-declared function. The first character of the function name can be a letter, underline, or a nwnber. No spaces are allowed between the function name and the opening bracket of the parameter list (if any) . FOR (F.) Start FOR loop (statement) Initialises a FOR . . . NEXT loop. The loop is executed at least once for each of the values of the control variable in the specified range. F O R c a r d = l TO 6 P R I N T c a r d ; N E X T c a r d will print 1 2 GET /GET$ Wait for key (function) 3 4 5 6 Waits for a key to be pressed on the keyboard. GET returns the ASCII value, and GET$ returns the corresponding single-character string. For example, R E P E AT U N T I L G E T = 1 3 waits for IENTERI to be pressed. GOSUB (GOS.) Call subroutine (statement) Calls a section of a program as a subroutine at a specified line nwnber. Control returns to the next statement when RE TURN is encountered in the subroutine. One subroutine may call another subroutine (or itself) . 1 0 G O S U B 4 0 0 2 0 E N D 4 0 0 P R I N T " H e l l o " : R E T U R N I I t I I I I I I I I BASIC keywords GOTO (G.) Go to line (statement) Transfers program control to a line with a specified or calculated line number. For example , G O T O 1 0 0 G O T O ( X * l O ) 207 The use of the calculated GOTO, as in the second example, is not recommended as it will not be renumbered correctly by the RENUMBER command. HIMEM (H.) High memory bound (function) A pseudo-variable which contains the address of the first byte of free memory. IF Condition (statement) Sets up a test condition which can be used to control the subsequent flow of the program. It is part of the IF . . . THEN . . . ELSE structure. The word THEN is optional under most circumstances. I F l e n g t h = 5 T H E N 1 1 0 I F A < C O R A > D G O T O 1 1 0 I F A > C A N D C > - D T H E N G O T O 1 1 0 E L S E P R I N T " C C L " INKEY/INKEY$ Read key (function) Waits for up to a specified number of clock ticks ( 1 0ms each) . If no key is pressed in the time limit, INKEY will return - 1 and INKEY$ will return a null string ; otherwise the INKEY function will return the ASCII value of the key pressed. INPUT (I.) Input value (statement) Inputs values from the keyboard. The INPUT statement normally prints a ? prompt for each variable in the list. Alternatively strings can be included in the list of variables to be printed as prompts ; omitting the comma after a string will suppress the question mark. For example : I N P U T " E n t e r y o u r a g e : " a g e % , " a n d y o u r n a m e " , n a me $ 208 INPUT LINE Input a line (statement) Section Ten - BBC BASIC Identical to INPUT except that the entire line, including commas, quotes and leading spaces is input into a string variable. I N P U T L I N E A $ INPUT# Input from file (statement) Reads data from a file into specified variables . The data should have been written to the file with a corresponding PRINT# statement. INSTR Substring (function) Returns the position of a substring within a string, optionally starting the search at a specified place in the string. The leftmost character position is 1 . If the sub-string is not found, 0 is returned. For example, P R I N T I N S T R ( " Z 88 " , " 8 " ) will print 2 , and P R I N T I N S T R ( " P i p e D r e a m " , " e " , 5 ) will start the search at character 5 and print 7. INT Integer (function) Converts a real number to the next lower or equal integer. I N T ( 9 9 . 8 ) is 9 9 I N T ( - 1 2 ) is - 1 2 I N T ( - 1 2 . 1 ) is - 1 3 . LEFT$ Left of string (function) Returns a specified number of characters from the left of a string. If there are insufficient characters in the source string, all the characters are returned. Thus, if A$ ="BANANA" I I I I BASIC keywords P R I N T L E FT $ ( A $ , 3 ) would print 1BAN1• LEN Length of string (function) Returns the length of the argument string. For example, X = L E N " f r e d " will set X to 4 . LET Assignment (statement) Optional before an assignment statement. LIST (L.) List program (command) Lists the program. Examples L I S T L I S T , 9 9 L I S T 1 1 , L I S T 1 1 , 9 9 U S T 5 5 lists the entire program lists up to line 99 lists from line 11 to the end lists lines 1 1 to 99 inclusive lists line 55 only To obtain a listing of a program to a printer connected to the Z88 : © Attach and turn on the printer. ® Type L I S T , type D +P, and press IENTERI . ® When finished, type D-P LISTO LIST options (command) 209 Controls the appearance of a listed program. The number following the command specifies which of the following formatting options are required. 210 Section Ten - BBC BASIC Value Ootion 0 No inserted spaces 1 Space after line number 2 FOR . . . NEXT loops indented 4 REPEAT . . . UNTIL loops indented The numbers can be added to combine options, the default being 7. LN Natural logarithm (function) Returns the natural (Naperian) logarithm of its argument. LOAD (LO.) Load program (command) Loads a new program from a file and clears the variables. For example L O A D " S T A T 4 " or L O A D " : R AM . O / C O N V E RT E R . B A S " LOCAL (LOC.) Local variables (statement) Declares variables for local use inside a function (FN) or procedure (PROC). L O C A L A $ , X , Y % LOG Logaritlun (function) Returns the base- 1 O logarithm of its argument. LOMEM (LOM.) Lower memory bound (function) A pseudo-variable which controls where in memory the dynamic data structures are to be placed. The default is TOP, the first free address after the end of the program. MID$ Middle of string (function) Returns a string consisting of a specified number of characters of the string starting from a given position. For example A $ = M I D $ C B $ , s t a r t , l e n g t h ) I I BASIC keywords 2 1 1 sets A$ to the substring of B$ starting at position ' start ' , and of length 'length' . If 'length' is omitted, or if there are insufficient characters in the string, then all the characters from 'start' onwards are returned. Thus P R I N T M I D S C " D O Z Y " , 2 , 2 ) will print " O Z II MOD Modulo (operator) Gives the signed remainder of the integer division. X=A M O D B is equivalent to X = A - ( ( A D I V B ) * B ) NEW New program (command) Initialises the interpreter for a new program to be typed in. An old program may be recovered with the OLD command provided no program lines have been typed in. The variables @% and A% to Z % are preserved even after a NEW command. NEXT(N.) End FOR loop (statement) Ends a FOR . . . NEXT loop. NEXT takes an optional control variable ; if this is not the same as the variable supplied in the corresponding FOR statement, an error will occur. NOT Logical NOT (operator) A unary operator (the same priority as unary -) giving a bit-by-bit binary inversion of the constant, variable, or mathematical or boolean expression to its right. Usually used in IF . . . THEN or UNTIL statements to invert the sense of the condition. Expressions must be enclosed in brackets. 2 1 2 Section Ten - BBC BASIC OLD Recover old program (command) Undoes the effect of NEW provided no lines have been typed in or deleted, no variables have been created, and no popdown or application has been entered. ON Multi-way switch (statement) Provides a multi-way GOTO or GOSUB , depending on the value of a control variable. The line numbers in the list may be constants or calculated, and the unwanted ones are skipped without calculation. For example: O N a c t i o n G O S U B 1 0 0 0 , 2 0 0 0 , 3 0 0 0 , 4 0 0 0 ON ERROR Error trap (statement) Provides error trapping. If an ON ERROR statement has been encountered, BASIC will transfer control to it (without taking any reporting action) when an error is detected. This allows error reporting/recovery to be controlled by the program. However, the program control stack is still cleared when the error is detected and it is not possible to return to the point where the error occurred. Note that under some circumstances ON ERROR can cause BASIC to generate repeated errors , requiring a soft-reset. This can be avoided by including a call to INKEY$ , as in the following example, which will allow you to exit from BASIC to the Index and ¢KILL the activity: 1 0 O N E R R O R R E P O RT : Q $ = I N K E Y $ ( 1 0 0 ) 2 0 E R R O R OPENIN (OP.) Open file for input (function) Opens a file for reading or updating and returns the 'channel number' of the file, or O on failure. This number must be used in subsequent references to the file with BGET#, INPUT#, EXT#, PTR#, EOF# or CLOSE#. BASIC keywords OPENOUT Open file for output (function) 2 1 3 Opens a file for writing and returns the 'channel number' o f the file, o r 0 on failure. This number must be used in subsequent references to the file with BPUT#, PRINT#, EXT#, PTR# or CLOSE#. X =O P E N O U T C A $ ) X = O P E N O U T C " : RAM . O / D ATA . D AT " ) OPENUP (OPENU.) Open file for update (function) Opens a file for update and returns the channel number, or O on failure. Once a file is opened you can update it or extend it. OPT Assembler options (statement) An assembler pseudo operation controlling the method of assembly. It is followed by a number in the range O to 3 to specify the method of assembly: Option Action 0 errors suppressed, no listing 1 errors suppressed, listing 2 errors reported, no listing 3 errors reported, listina The code is assembled into memory at the address specified by P % . For example : 1 0 D I M c o d e 1 0 0 2 0 F O R p a s s = 0 T O 3 S T E P 3 3 0 P %= c o d e 4 0 [ 5 0 O P T p a s s 6 0 7 0 \ b a c k s l a s h i n t r o d u c e s a c o mm e n t 8 0 \ s t a n d a r d Z 8 0 m n e m o n i c s a r e u s e d 9 0 J 1 0 0 N E X T p a s s 1 1 0 E N D 2 1 4 Section Ten - BBC BASIC Alternatively the assembled code can be assembled into memory at the address specified by 0 % , with labels generated according to the value of P % , by adding 4 to each of these option values . OR Logical OR (operator) Gives the bitwise integer logical OR between two operands which are internally converted to 4 byte integers before the operation. OSCLI Operating-system command (statement) Allows a string expression to be passed to the operating system. For example, in the BASIC editor (see Editing BASIC programs, p. 1 97) 6 0 2 2 0 O S C L I " * C L I . < " + B S PAGE (PA.) Program area (function) A pseudo-variable controlling the starting address of the current user program area. The lower byte of PAGE is always zero. PI Pi (function) Returns 3 . 14 1 592653 . POS Cursor position (function) Returns the horizontal position of the cursor on the screen. The left-hand column is 0 and the right-hand column is one less than the width of the display. PRINT (P.) Print text (statement) Prints characters on the screen or printer. Items may be separated by commas, semi-colons, or no separator : P R I N T " O N E " 1 % " T W O " Numbers are printed in a format determined by the value of the variable @ % . This is set to a hexadecimal value as follows : @% = &SSNNPPWW where BASIC keywords 2 1 5 SS determines the format of strings created b y STR $ . If SS = O l then STR $ will use the format specified by @ % , otherwise @ % will be ignored. NN determines the notation format. NN= OO General notation: integers will be printed with no decimal places , numbers between 0 . 1 and 1 will be printed as 0 . 1 etc, and numbers less than 0. 1 will use scientific notation. NN= 0 1 Scientific notation : eg 100 is printed as 1E2 . NN= 02 Fixed format notation : if the number will fit into the specified field width, it will be displayed with the number of decimal places specified by PP. Otherwise general notation will be used. PP determines the number of decimal places to be printed. WW determines the overall print field width. By default, @ % = &0000090A, gi ving general notation with a field width of 10 characters. Its value can be printed, in hexadecimal, with P R I N T -@% Numbers can be printed in hexadecimal by prefixing them with '- ' . PRINT# (P.#) Write to file (statement) Writes the internal form of a list of variables, separated by commas, to a specified data file. PROC Procedure (statement) Introduces a user-declared procedure. The first character of a procedure name can be a letter, underline, or a number. No spaces are allowed between the procedure name and the opening bracket of the parameter list (if any ) . The procedure returns to the calling program with an ENDPROC statement. PTR# File pointer (function) A pseudo-variable allowing the random-access pointer of a specified file to be read and changed. For example, 2 1 6 Section Ten - BBC BASIC PT R/I F= P T R/I F+ 5 moves to the next floating-point number in the file with channel number F, since 5 bytes are allocated to each number. PUT Output to port (statement) Outputs data to a ZBO port. Should only be used by experienced programmers as incorrect use could damage the Z88. The full ZBO extended addressing is available. P U T A , N : R E M o u t p u t N t o p o r t A . RAD Radians (function) Returns its argument converted from degrees to radians . For example : RA D ( 9 0 ) READ Read DATA statements (statement) Assigns to variables values read from the DATA statements in the program. Strings must be enclosed in double quotes if they have leading spaces or contain commas . R E A D A% , B , C $ DATA 2 7 , - 1 2 . 3 4 , " H e l l o " REM Comment (statement) Introduces a comment , causing the rest of the line to be ignored. RENUMBER (REN.) Renumber program (command) Renumbers the lines and corrects the cross references inside a program. The options are as for AUTO. REPEAT (REP.) REPEAT loop (statement) Introduces a REPEAT . . . UNTIL loop . For example : R E P E AT P R I N T " * " ; U N T I L C O U N T = 8 0 will print 8 0 stars on the screen or printer. BASIC keywords 2 1 7 REPORT (REPO.) Report error (statement) Prints out the error string associated with the last error which occurred. If no error has occurred, prints the copyright string. RESTORE (RES.) Restore READ (statement) Sets the line from which subsequent READ statements will read data. RETURN (R.) Return from subroutine (statement) Causes a RETURN to the statement after the most recent GOSUB statement . RIGHT$ Right of string (function) Returns a specified nwnber of characters from the right-hand end of a string. If there are insufficient characters in the string then all are returned. For example : P R I N T R I G H T $ C " D O Z Y " , 3 ) will print 0 Z Y . RND Random number (function) Returns a random nwnber. The type and range of the number returned depends upon the optional parameter, as follows : Value Result of RND(X) X<O Returns X and resets random number generator to -X. X= O Repeats last random number given by RND( 1 ) . X= l Returns a random nwnber between O and 0 .999999. X > 1 Returns a random integer between 1 and X inclusive. RUN Run program (statement) Starts execution of the program after clearing all but the static variables @ % , and A% to Z % . 2 1 8 SAVE (SA.) Save program (statement) Section Ten - BBC BASIC Saves the current program area to a file, in internal ( tokenised) format. S A V E " my p r o g . B A S " S A V E A $ SGN Sign (function) Returns - 1 , 0, or + l depending on whether the argument is negative , zero or positive respectively. r e s u l t= S G N ( a n s w e r ) SIN Sine (function) Returns the sine of its argument taken in radians . SPC Print spaces (statement) Prints a specified number of spaces . SPC can only be used as part of an INPUT or PRINT list ; for example : P R I N T " N a m e " ; S P C ( 4 ) ; " A g e " ; S P C ( 6 ) ; " A d d r e s s " SOR Square root (function) Returns the positive square root of its argument. z = S O R ( x " 2 +y " 2 ) STEP (S.) FOR loop increment (statement) Part of the FOR statement, this optional section specifies the step size. For example, F O R i = l T O 2 0 ST E P 5 P R I N T i ; N E X T will print : 1 6 1 1 1 6 BASIC keywords 2 1 9 STOP Stop program (statement) Syntactically identical to END , STOP also prints a message S T O P a t l i n e X where X is the line nwnber. STR$ String (function) Returns the string form of the numeric argument as it would have been printed. A nwnber A% can be converted to a string in hexadecimal format with the function : S T R $ - A% STRING$ Repeat strings (function) Returns a given nwnber of repetitions of a string. A S= S T R I N G $ ( 5 , " H A " ) will set A$ to "HAHAHAHAHA". TAB Move to screen position (statement) Moves the cursor to a given screen position. TAB can only be used as part of a PRINT or INPUT statement. There are two forms : TAB(X) will print spaces until the cursor reaches column X (on the same line, or next line). TAB(X,Y) will move the cursor directly to character position X,Y on the screen, where 0 , 0 corresponds to the top left-hand comer. TAN (T.) Tangent (function) Returns the tangent of its argument taken in radians. THEN (TH.) Condition clause (statement) An optional part of the IF . . . THE N . . . ELSE statement. It introduces the action to be taken if the testable condition evaluates to TRUE . 220 Section Ten - BBC BASIC TIME (TI.) Time (function) A pseudo-variable which sets and reads the elapsed time clock. The value of TIME must be initialised before it is used ; for example T I M E= l O O resets the value of TIME to 1 00 centiseconds , and X =T I M E sets X to the value of the current elapsed time. TIME$ Time string (function) Returns a string giving the current date and time ; for example : W e d n e s d a y 2 9 A p r i l 1 9 8 7 , 1 0 : 1 2 : 3 2 The functions LEFT $ , MID $ , and RIGHT $ can be used to extract pans of this string. For example, the time alone can be obtained by A $ = R I G H T $ ( T I M E $ , 8 ) P R I N T A $ 1 0 : 1 2 : 3 2 TO Upper bound of FOR loop (statement) Introduces the terminating value for the loop in a FOR . . . TO . . . STEP statement . When the loop control variable exceeds the value following 'TO ' , the loop is terminated. TOP Top of program (function) Returns the value of the first free location after the end of the current program. TRACE (TR.) Trace program (command) TRACE can be used to provide information on the execution of a program. TRACE ON causes the interpreter to print executed line numbers when it encounters them, for debugging. The facility can be turned off by typing TRACE OFF . BASIC keywords TRUE True (function) Returns the value -1 , representing logical true. UNTIL (U.) End REPEAT loop (statement) The end of a REPEAT . . . UNTIL structure. USR Call machine-code (function) 221 Enters a machine code routine at the address specified in its argument, passing the least-significant bytes of the integer variables A % , B % , C % , D % , E % , F% , H % , L % , and F % into the correspondingly-named registers of the 280 on entry. Unlike CALL, USR returns a 32-bit result composed of the contents of the Z80's H, L, H' , and L' registers, most-significant to least-significant . This function should only be used by experienced programmers . VAL Value of string (function) Converts a character string representing a number into numeric form. X =V A L ( a $ ) VDU (V. ) Output bytes to screen (statement) Takes a list of numeric arguments and sends their least-significant bytes as characters to the current 'output stream' . VPOS (VP.) Vertical position (function) Returns the vertical cursor position. The top of the screen is line 0 . WIDTH (W.) Screen width (statement) Controls output overall field width. Initially WIDTH is 94 (the default). For example, before printing it is a good idea to set W I DT H 8 0 to give a new line after every 80 characters of output. 222 Section Ten - BBC BASIC *CLI Send line to CLI (OZ command) Sends a command to the command line interpreter.For example, in the BASIC editor (see Editing BASIC programs, p. 197) : 6 0 0 9 0 * C L ! . * : RAM . O / E E . C L I *ERASE Erase a file (OZ command) Erases a specified file. For example, * E RA S E f i l e n a m e or using the CLI O S C L I " * E RA S E " + f i l e $ *NAME Names the BASIC activity (OZ command) Gives the BASIC activity a name , which will be displayed in the list of SUSPENDED ACTMTIES in the Index. *NAME MYPROG *RENAME Rename a file (OZ command) Special Z88 information Renames a file ; for example : * R E N AM E o l d f i l e n ew f i l e O S C L I " * R E N AM E " + o l d f i l e $ + " " + n e w f i l e $ The following system information is available : P R I N T - P T R# - 1 P R I N T E X T# - 1 P R I N T E O F # - 1 The number of channels left for use and the ROM release number Prints the estimated free memory in bytes Returns 0 for an unexpanded Z88, and -1 for an expanded Z88 with at least 1 2 8K in slot 1 BASIC operators The following operators may be used as part of expressions. Arithmetic operators The arithmetic operators take two numbers as operands. + * /\ add multiply raise to the power Relational operators I subtract divide The relational operators can compare numbers, and return a logical value of FALSE=O and TRUE=-1 . < less than <= less than or equal to <> not equal to Logical operators = equal to > greater than >= greater than or equal to The logical operators operate on numeric or logical values. Boolean FALSE is taken as zero, TRUE as - 1 : Indirection operators The following operators allow the programmer to access memory directly (called PEEK in other versions of BASIC) or to alter the contents of specified memory locations (called POKE in other BASICs) . These operators should only be used by experienced programmers, since they give the programmer the capability of altering the operation of other activities in the Z88 operating system; in general, only addresses within the region allocated by a BASIC DIM statement should be altered. ? byte indirection $ string indirection word indirection 224 0 1 2 vec? 1 0 1 2 I t vec ! O 3 Section Ten - BBC BASIC The usual way of using these operators is to allocate a vector using the DIM statement, and then manipulate elements of this vector with the indirection operators. For example, D I M v e c 1 5 allocates a vector of 16 bytes, and assigns its address to the variable vec. These bytes can be addressed as 4 5 6 7 8 9 1 0 1 1 1 2 vec?3 vec?7 vec?9 vec? 1 1 3 Note that ? v e c is an alternative way of writing v e c ? O . A typical manipulation might be v e c ? l = v e c ? l + 1 Alternatively the vector could be addressed as 4 four-byte words : 4 5 6 7 8 9 1 0 1 1 1 2 I t I t I t vec ! 4 vec ! B vec! 1 2 Finally, the string indirection operator allows a string to b e stored directly into an area of memory. For example : $ v e c = " Z 88 C O M P U T E R " stores characters in the vector as follows : BASIC operators 0 1 2 z 8 8 f $vec Order of precedence 3 4 5 6 7 8 9 1 0 1 1 1 2 I &20 I c 0 I M I p u T E R I &OD I The string can be accessed with the $ operator, so the following statement will print the string : P R I N T $ v e c Individual characters can be accessed with the ? operator. The order of precedence of the operators is as follows : Group 1 unary minus () brackets NOT logical NOT Group 2 /\ raise to the power Group 3 * multiply I divide Group 4 + add subtract Group 5 < less than = equal to <= less than or equal to > greater than <> not equal to >= greater than or equal to Group 6 AND Logical AND Group 7 OR Logical OR EOR Logical Exclusive-OR so , for example, A-B *C/\D is equivalent to A-(B*(CAD)). 225 226 APPE NDI C E S Appe ndix A - Replacing batteries Appendix B - Serial port Appendix C - E rror messages PipeDream error messages Diary error messages BASIC error messages Appendix D - Z88 character set Appendix E - PipeDream file format Appe ndix F - Z88 specification Index 229 23 1 233 233 235 236 237 240 243 245 228 Appendix A Replacing batteries If the battery low symbol appears as soon as the Z 8 8 is switched on, the safest course of action is to replace the batteries as soon as possible. The computer should be switched off until new batteries have been obtained. The replacement batteries should be Alkaline cells , size AA, type MN 1 500 or LR6. Note that while you are exchanging batteries, the contents of the machine's memory will be kept intact by the internal super capacitor. However, this will only maintain power for a limited time, so it is recommended that you power the Z88 from the mains power unit while changing batteries, especially if extra cards are fitted. In the absence of a mains unit, carry out the following actions promptly, and bear in mind the time limitations given below. Memory retention time The time available depends on the number of RAM cards fitted. With no RAM cards the machine will retain its data for 3 minutes. With one RAM card this will be reduced to about 1 minute. Use of two RAM cards will lead to a further reduction to about 30 seconds. It is not recommended that the machine be fitted with three RAM cards as this would require the use of slot 3 which is designed primarily for use with EPROM cards and, although it is possible to use it with RAM, a much higher power consumption would result. The time limit does not depend on the size of RAM card used. EPROM cards do not affect the time limit in any slot . The times given are for the worst case situation. In general the limit will be twice as high, but this should not be relied upon. If you have a mains adaptor you can use it to power the 288 while you change batteries . 230 Appendix A Procedure Read the following procedure carefully, so that you can carry it out without pausing: © Remove the new batteries from their packaging, and place them within easy reach on the right-hand side of the ZBB . ® Switch the Z88 off by pressing both ISHIFTI keys simultaneously. ® Place the Z88 keyboard-down, and remove the lid of the battery compartment. © Note the time, and calculate how long you have according to the table given on the previous page. ® Remove the four batteries from the battery compartment , if necessary tilting the Z88 to slide the batteries out. ® Throw the old batteries away, to avoid confusing them with the new replacements. (!) Place one of the new batteries at each end of the battery compartment, observing the polarity carefully. Place the remaining two batteries in an 'A' shape, and press down on the point of the 'A' so that they pop into place. ® Check that the batteries are all orientated correctly. There is now no longer any time pressure. ® Replace the battery-compartment lid firmly before turning the machine over again. DO NOT PRESS RESET. ® Switch on, by pressing both ISHIFTI keys simultaneously. The Z88 should now be working, and the battery-low indicator will not be displayed. App endix B Serial port This appendix describes the pin connections for the Z88 serial connector. The following connections are for a cable to connect the Z88 serial pon connector to a 25-pin D-type serial printer connector, or equivalent : Z88 Printer - 9 way D (Male) 25 way D (Male) 1 - - 2 TxD � 3 RxD 3 RxD � 2 TxD 4 RTS � 5 CTS 5 CTS � 20 DTR 6 - - 7 GND 7 GND 8 DCD � 20 DTR 9 DTR � 6, 8 (DSR, DCD) where the signals are as follows : TxD RxD RTS CTS GND DCD DTR Notes Transmitted data Received data Request to send Clear to send Signal ground Data carrier detect Data terminal ready The Z88 RS232 pon is wired as Data Terminal Equipment Pin 1 must not be used for RS232 signals. It carries +5v at 1 0μA, even when the machine is OFF . Do not use pin 6 on the Z88 connector. Pin 9 is the RS2 32 DTR signal. It provides +5v at 1mA while the Z8 8 is switched on.for powering CMOS serial to parallel conveners. 232 Appendix B CTS on the 288 must be high for the 288 to transmit, and DCD must be high for the 288 to receive. For simple RS232 use, connect pins 5 and 8 to pin 9, and connect pins 2 (TxD) , 3 (RxD) , and 7 (GND) to the other computer. A S us p e n d e d message will be displayed if a battery low is flagged while sending or receiving, or if the Z88 is switched off or the flap is opened. In this case you must repeat the transfer. I I I I App endix C PipeDream error messages -ve root All columns zero width Bad argument Bad column Bad date Bad file Bad index Bad list file Bad name Bad number Bad option Bad range Bad slot Error messages Th e argument t o the SOR function was negative ; eg SOR( - 1 ) . Attempt t o set the width o f all columns to zero. The argument to a Next Match ( oBNM) command was given with no prior Search command. The Sort (oBSO) command was given with an invalid column specification. The argument to the DAY, MONTH, or YEAR function is not a valid date ; eg DA Y(2 7 ) . The file specified was not a valid file. A CHOOSE , or INDEX function was called with an invalid index ; eg CHOOSE(-2, 1 ) . The list file loaded b y the Load command (¢FL) does not contain valid file names, or was not saved with the Save Plain text option. The name specified in a Load, Save, or Name command was not a valid file name. The argument to an Insert Highlights ( ¢PHI) , Remove Highlights (oPHR) , Highlight Block (oPHB ) , or Decimal Places (oLDP) command was not in the valid range. The option was not valid for the command. The range of slots specified in a Replicate or Save command was not a valid range ; eg, S av e o n l y r a n 9 e o f c o l uM n s C A . The command was given an invalid slot reference ; eg Go to Slot (oCGS) AO . 234 Bad /\ field Divide by O Edge Editing expression End of list file Escape Exp range Expression too long FP overflow Log range Lookup Loop Memory full No list file No marked block Overlap Propagated Stack overflow Appendix C The /\ sequence in a Search or Replace string was invalid ; eg S t r i n g t o s e a r c h f o r AH An expression attempted to divide by zero ; eg 2/0. The block being copied or moved would not fit within the maximum possible sheet size; eg, an attempt to copy from A t Z6 to AA t . The specified command i s not available while editing an expression; eg, Load (¢FL) . The end of the List file has been reached ; eg Bottom File ( o FB) at the end of a document. The IEscl key was pressed while processing a document. The range of the EXP function was exceeded; eg EXP( tOO) . The string of text is too long to be entered into a slot ; ie longer than 240 characters. An expression resulted in a number too large to be represented; eg, 100/\ 1 00. The argument to the LOG function was invalid ; eg LOG( - 1 ) . The LOOKUP function could not find a successful match. Two slots containing string values reference each other. No more memory is available for the current sheet. A multi-file command such as Bottom File ( ¢ FB) was given with no List file loaded, or after the List file was cancelled due to an error. The command requires a marked block ; eg Move. The source and destination blocks, specified in a Move or Copy command, overlap. The expression slot refers to another slot with an error. The expression is too complex for evaluation. I , I Error messages Too few arguments Too long Too many columns Typing error Diary error messages Memory Low No String No Room No Marker Not Marked Date Range Overlaps n Found An IF, CHOOSE , or INDEX function has been specified with too few arguments ; eg, INDEX(2 ). The length of line that would result after a Join Lines or Replace command is longer than 240 characters, or the string specified in a Search or Replace command is longer than 240 characters . 235 The Add Column (¢EAC) or Insert Column (oEIC) command was given in a document which already has 42 columns, the maximum number. The expression is invalid; eg, A1 +*3. Diary error messages are displayed in the DIARY DATE window between the date and mode. The user should take immediate action to delete data from the Diary, files, or suspended applications. Delete a line to free memory with o !Qru , followed by ¢ Y to free more entries. Tried to Search or Replace with null string. The Save Position command ( oCSP) was given with five positions already saved. Search/Replace between markers etc. Next/Previous Match (Search within block) when cursor is outside block. An attempt was made to move outside the legal date range. A block operation was attempted with the cursor inside the block. Final message after Replace command. In addition system error messages , such as 'File not found' are displayed in another window on top of the operation being performed. 236 Appendix C BASIC error messages 0 No room 24 EXP range 1 Out of range 26 No such variable 2 Byte 27 Missing ) 3 Index 28 Bad hex 4 Mistake 29 No such FN/PROC 5 Missing 30 Bad call 6 Type mismatch 3 1 Arguments 7 No FN 32 No FOR 8 $ range 33 Can't match FOR 9 Missing • 34 FOR variable 1 0 Bad DIM 36 No TO 1 1 DIM space 38 No GOSUB 1 2 Not LOCAL 39 ON syntax 1 3 No PROC 40 ON range 14 Array 4 1 No such line 1 5 Subscript 42 Out of DATA 1 6 Syntax error 43 No REPEAT 1 7 Escape 220 Syntax 1 8 Division by zero 222 Channel 1 9 String too long 252 End of file 20 Too big 252 Suspended 2 1 -ve root 252 File not found 22 LOG range 252 Read protected 23 Accuracy lost 252 Write protected App endix D Z88 character set I Hex Dec Code Description Hex Dec Code Description 0 0 0 N U L ¢= Null 2 0 3 2 Space 0 1 1 S O H ¢ A Start of Heading 2 1 3 3 I 0 2 2 S T X ¢ B Start of Text 2 2 3 4 0 3 3 E T X ¢ C End of Text 2 3 3 5 # 0 4 4 E Q T ¢ 0 End of Transmit 2 4 3 6 $ 0 5 5 E N O ¢ E Enquiry 2 5 3 7 % 0 6 6 A C K ¢ F Acknowledge 2 6 3 8 & 0 7 7 B E L¢ G Bell 2 7 3 9 ' I 0 8 8 B S ¢ H Backspace 2 8 4 0 ( 0 9 9 H T ¢ 1 Horizontal Tab 2 9 4 1 ) Q A 1 0 L F ¢ J Line Feed 2 A 4 2 * I O B 1 1 V T ¢ K Vertical Tab 2 B 4 3 + Q C 1 2 F F ¢ L Form Feed 2 C 4 4 I O D 1 3 C R ¢ M Carriage Return 2 0 4 5 O E 1 4 s o ¢ N Shift Out 2 E 4 6 O F 1 5 S I ¢ 0 Shift In 2 F 4 7 I 1 0 1 6 O L E ¢ P Data Line Escape 3 0 4 8 0 1 1 1 7 D C l ¢ Q X On 3 1 4 9 1 1 2 1 8 D C 2 ¢ R Aux On 3 2 5 0 2 1 3 1 9 D C 3 ¢ S X Off 3 3 5 1 3 1 4 2 0 D C 4 ¢ T Aux Off 3 4 5 2 4 1 5 2 1 N A K ¢ U Negative Acknowledge 3 5 5 3 5 1 6 2 2 S Y N ¢ V Synchronous File 3 6 5 4 6 1 7 2 3 E T B ¢ W End of Transmitted Block 3 7 5 5 7 I 1 8 2 4 C A N ¢ X Cancel 3 8 5 6 8 1 9 2 5 E M ¢ Y End of Medium 3 9 5 7 9 I l A 2 6 S U B ¢ 2 Substitute 3 A 5 8 l B 2 7 E S C ¢ [ Escape 3 B 5 9 . l C 2 8 F S ¢ \ File Separator 3 C 6 0 < 1 0 2 9 G S ¢ ] Group Separator 3 0 6 1 1 E 3 0 R S ¢ £ Record Separator 3 E 6 2 > 1 F 3 1 u s ¢ - Unit Separator 3 F 6 3 ? 238 Appendix D Hex Dec Code Description Hex Dec Code Description 4 0 6 4 @ 6 0 9 6 ¢ ' 4 1 6 5 A 6 1 9 7 a 4 2 6 6 B 6 2 9 8 b 4 3 6 7 c 6 3 9 9 c 4 4 6 8 D 6 4 1 0 0 d 4 5 6 9 E 6 5 1 0 1 e 4 6 7 0 F 6 6 1 0 2 f 4 7 7 1 G 6 7 1 0 3 g 4 8 7 2 H 6 8 1 0 4 h 4 9 7 3 I 6 9 1 0 5 i 4 A 7 4 J 6 A 1 0 6 j 4 B 7 5 K 6 B 1 0 7 k 4 C 7 6 L 6 C 1 0 8 1 4 0 7 7 M 6 0 1 0 9 m 4 E 7 8 N 6 E 1 1 0 n 4 F 7 9 0 6 F 1 1 1 0 5 0 8 0 p 7 0 1 1 2 p 5 1 8 1 a 7 1 1 1 3 q 5 2 8 2 R 7 2 1 1 4 r 5 3 8 3 s 7 3 1 1 5 s 5 4 8 4 T 7 4 1 1 6 t 5 5 8 5 u 7 5 1 1 7 u 5 6 8 6 v 7 6 1 1 8 v 5 7 8 7 w 7 7 1 1 9 w 5 8 8 8 x 7 8 1 2 0 x 5 9 8 9 y 7 9 1 2 1 y 5 A 9 0 z 7 A 1 2 2 z 5 B 9 1 [ 7 B 1 2 3 { 5 C 9 2 \ 7 C 1 2 4 I I 5 0 9 3 J 7 0 1 2 5 5 E 9 4 II 7 E 1 2 6 5 F 9 5 7 F 1 2 7 D E L Delete A O 1 6 0 ... Exact space A 7 1 6 3 £ Pound I I I I t I t I I I I ZBB character set Special characters These are obtained by executing VDU 1 , n from BASIC, where n is the number of the character. Code Character 32 Dot space 33 Alarm bell 39 Aposed ' 42 Square 43 Diamond 45 Shift 224 'SPACE' sign (3 char) 225 'ENTER' sign (3 char) 226 'TAB' sign (3 char) 227 'DEL' sign (3 char) 228 'ESC' sign (3 char) 229 'MENU sign (3 char) 230 'INDEX' sign (3 char) 2 3 1 'HELP sign ( 3 char) 240 Hollow left arrow 24 1 Hollow right arrow 242 Hollow down arrow 243 Hollow up arrow 244 Head arrow left 245 Head arrow right 246 Head arrow down 24 7 Head arrow up 248 Arrow left 249 Arrow right 250 Arrow down 2 5 1 Arrow up Character modes V D U l , A S C " B " V D U 1 . A S C " F " V D U l , A S C " G " V D U l , A S C " R " V D U l , A S C " T " V D U 1 , A S C " U " Bold toggle Flash toggle Grey toggle Reverse toggle Tiny font toggle Underline toggle 239 App endix E PipeDream file format The PipeDream file format is designed to facilitate manipulation by other programs. Apart from carriage return characters which are used as separators , no control characters or characters above 1 2 7 in value appear in the file (unless they have been explicitly typed in) . The files are sequential, and can be edited by any text editor. PipeDream constructs Information about the structure of the file is stored in constructs consisting of one or more alphabetic characters between percent signs. Additional information relevant to the construct may be included before the final percent sign. The file begins with a group of Options Page constructs giving the values of the Options Page parameters for the file. This is followed by the main body of the file. Each column in the file is preceded by a Column construct giving details about the column, and followed by an entry for each slot in the column. Each slot entry may include a collection of constructs giving details about the slot, and is terminated by a carriage return character. Options Page construct % 0 P % p a r a m e t e r v a l u e e r p a r a m e t e r v a l u e e r two characters identifying t he parameter the value of the parameter carriage return character The various parameter values are : AM B M B O DE DP Auto/manual Bottom margin B orders Title D ecimal places r I t I I I I I Error messages FM FO HE HM J.W JU LM LP LS MB PA PL PS RC TM TN TP WR Column construct Footer margin Footer Header Header margin Insert on wrap Justify Left margin Leading characters Line spacing Minus/brackets Pages Page length Page no. start Rows/columns Top margin Text/numbers Trailing characters Wrap % C O : c o l u m n , w i d t h , w r a p - w i d t h % c o l u m n w i d t h w r a p - w i d t h letter identifying the column decimal number giving the column width decimal number giving the wrap-width These constructs can appear anywhere in the entry for each slot : % B % % C % % Dn % % DF % % F % % Hn % % JL % % .JR % % L % % LC % %LCR % % Pn % brackets format centre align decimal places , n gives the number floating format free align highlight character : n gives the number justify left justify right left align leading character format LCR align page break : n gives the argument , 0 for unconditional 24 1 242 %PC % %R% % TC % %V% General format: percent character right align trailing character format slot is a number slot c o n s t r u c t t e x t c o n s t r u c t t e x t . . . e r c o n s t r u c t t e x t e r one of the constructs above ASCII characters being the slot contents carriage return character Appendix C 1 Appendix F f I t I I I I I Power source Weight Dimensions Keyboard Sound Serial 110 Port Operating system Operating temperature Microprocessor Internal memory Memory cards CMOS RAM CMOS EPROM Z88 specification 4 x AA Alkaline Cells (MN 1 500, LR6) providing 2 0 hours of use AC Mains adaptor ( 6 . 5 v DC ± 1 0 % ) , 500 mA , centre positive. 900 g ( 1 .98 lb) . 2 94 mm (L) x 2 1 0 mm (D) x 2 3 mm (H) ( 1 1 112 • x 81/4 • x 7/e ") QWERTY, silent , 64 keys including INDEX, MENU, and HELP. Miniature loudspeaker, used for alarm or warning. RS2 32, connector 9-way 'D' female. Unique to Z88 (concurrent , 4M Bytes address range) . o·c to 4o·c (32"F to 1 04"F) . CMOS Z80 RAM CMOS 32K Bytes ROM CMOS 1 2 8K Bytes Slots 1 , 2 , or 3 lM Byte per card maximum Slot 3 also programs EPROM cards. Random Access Memory. Data ratained while machine is powered. Erasable, Programmable, Read-Only Memory Data retention measured in years. Card can be removed from Z88 without data loss. Eraser available from Cambridge Computer Limited. 244 Index I t A B eginning of Line (PipeDream CLI file-control commands 1 8 0 t command) 1 1 5 CLI files, examples 1 8 2 ABS (BASIC keyword) 199 BGET# (BASIC keyword) 2 00 CLI key sequences 1 8 0 ABS (PipeDream function) 1 53 BLOCKS menu in PipeDream 1 04 Clock 1 3 , 77 ACS (BASIC keyword) 1 99 B old (PipeDream command) 1 4 8 CLOSE# (BASIC keyword) 2 0 2 A C S (PipeDream function) 1 5 3 B ottom File (PipeDream command) CLS (BASIC keyword) 2 0 2 active days in the Diary 7 6 1 2 9 C O L (PipeDream function) 1 54. Add Column (PipeDream command) B ottom of Column (PipeDream column widths in PipeDream 1 3 1 1 2 3 command) 57, 1 1 6 columns in PipeDream 4 0 Alarm 1 3 , 78 BPUT# (BASIC keyword) 2 0 0 command-line interpreter 1 7 9 Align commands in PipeDream 42 computer typeface 4 alignment commands in PipeDream c constants, in the Calculator 72 134 control keys, in Terminal 1 8 5 Alternative font (PipeDream Calculator 1 3 conventions 4 t command) 1 4 8 functions 70 Copy (Diary command) 1 62 AND (BASIC keyword) 1 99 Calendar 1 3 Copy (Filer command) 8 5 I application cards 98 used with Diary 68 Copy (PipeDream command) 1 0 8 applications 1 1 CALL (BASIC keyword) 2 0 1 copying blocks in PipeDream 1 0 8 entering 1 9 , 9 3 CAPS LOCK key 1 7 C O S (BASIC keyword) 2 02 ASC (BASIC keyword) 1 99 Caps mode 1 7 C O S (PipeDream function) 1 54 ASN (BASIC keyword) 2 00 ¢ CARD 94 COUNT (BASIC keyword) 2 0 2 I ASN (PipeDream function) 1 54 CARD command 94 COUNT (PipeDream function) 1 54 assembler 2 1 3 CARD error 9 5 , 9 8 Create Directory (Filer command) 1 7 8 t ATN (BASIC keyword) 200 cards Cursor Down (Diary command) 1 6 7 ATN (PipeDream function) 1 54 errors 9 5 Cursor Down (PipeDream command) I AUTO (BASIC keyword) 200 installing 94 1 1 6 Catalogue EPROM (Filer command) Cursor Left (Diary command) 1 6 7 I B 84 Cursor Left (PipeDream command) Catalogue Files (Filer command) 84 1 1 5 t BASIC 1 9 5 Centre Align (PipeDream command) Cursor Right (Diary command) 1 6 7 error messages 2 3 6 4 2 , 1 34 Cursor Right (PipeDream command) programs, editing 182, 197 CHAIN (BASIC keyword) 201 1 1 5 I running 1 96 characters, special 2 3 9 Cursor Up (Diary command) 1 67 basic concepts 1 5 CHOOSE (PipeDream function) 1 54 Cursor Up (PipeDream command) 1 1 6 r batteries 6 CHR$ (BASIC keyword) 202 cursor keys 1 6 inserting 7 CLEAR (BASIC keyword) 2 02 in PipeDream 3 8 replacing 2 2 9 Clear Mark (Diary command) 1 6 2 cursor operations BBC BASIC 1 2 , 1 9 5 �cu 2 2 2 in PipeDream 1 1 7 CLI 1 7 9 in the Diary 1 6 9 246 D DATA (BASIC keyword) 203 data transfer 231 database example 46 date format 88 dates in PipeDream 1 52 DAY (PipeDream function) 1 5 5 Decimal Places (PipeDream command) 63 Decimal Places (PipeDream command) 136 DEF (BASIC keyword) 203 Default Format (PipeDream command) 1 3 7 D E G (BASIC keyword) 2 0 3 D E G (PipeDream function) 1 55 DEL key 1 6 in PipeDream 3 8 DELETE (BASIC keyword) 203 Delete (Diary command) 1 63 Delete (PipeDream command) 1 0 8 Delete Character (PipeDream command) 40, 1 1 9 Delete Column (PipeDream command) 1 2 1 Delete Line (Diary command) 1 7 1 Delete Row (PipeDream command) 1 2 1 Delete Row i n Column (PipeDream command) 120 Delete to End of Line (Diary command) 1 70 D elete to End of Slot (PipeDream command) 120 D elete Word (Diary command) 1 70 Delete Word (PipeDream command) 1 1 9 device specification 176 devices 8 1 Diary 1 2 , 6 5 error messages 2 3 5 screen 65 use with Calendar 6 8 D IM (BASIC keyword) 2 0 3 D IV (BASIC keyword) 204 Down Directory (Filer command) 178 E EDIT menu in PipeDream 1 1 8 Edit Expression (PipeDream command) 58 Edit Expression (PipeDream command) 1 2 3 , 1 50 editing expression slots in PipeDream 123 editing within a slot in PipeDream 1 1 9 ELSE (BASIC keyword) 204 END (BASIC keyword) 204 End of Line (Diary command) 1 67 End of Line (PipeDream command) 1 1 5 ENDPROC (BASIC keyword) 204 ENTER (Diary command) 1 66 ENTER (PipeDream command) 1 1 6 ENTER key 1 6 in PipeDream 3 9 EOF# (BASIC keyword) 204 EOR (BASIC keyword) 205 EPROM cards 96 EPROM eraser 97 EPROMs, use with Filer 8 5 *ERASE 222 Erase (Filer command) 86 ERL (BASIC keyword) 205 ERR (BASIC keyword) 205 error messages BASIC 236 Diary 235 PipeDream 233 ESC key 16 Escape (PipeDream command) 1 24 EVAL (BASIC keyword) 205 exact space 17, 1 2 1 Execute (Filer command) 1 78 , 1 79 executing a file on reset 1 8 3 executing a program from the Alarm 79 Exit (Terminal command) 1 8 5 E XP (BASIC keyword) 205 Index EXP (PipeDream function) 1 5 5 expression slots 3 6 , 5 8 , 1 50 EXT# (BASIC keyword) 205 Extended Sequence (PipeDream command) 148 extensions, in file names 81 F FAIL error 95 FALSE (BASIC keyword) 205 FCC compliance iii Fetch from EPROM (Filer command) 85 File name, in PipeDream 1 2 5 file names 8 1 full specification 1 7 5 Filer 1 3 , 80 Filer commands 8 3 , 1 77 Filer reference 1 7 5 FILES menu i n PipeDream 1 2 5 FILES menu i n PrinterEd 1 9 3 finding information i n PipeDream 5 2 First Active Day (Diary command) 169 First Column (PipeDream command) 57, 1 1 6 First Line (Diary command) 167 Fix Column (PipeDream command) 1 3 5 Fix Row (PipeDream command) 1 3 5 F N (BASIC keyword) 206 foot 7 footers in PipeDream 142 FOR (BASIC keyword) 206 Format Paragraph (PipeDream command) 1 2 0 format, PipeDream 240 formatting in PipeDream 35, 1 2 1 Free Align (PipeDream command) 1 3 5 functions i n PipeDream 1 53 FX800 printer 1 87 In dex 24 7 G Insert Highlights (PipeDream layout, altering in PipeDream 42 command) 149 LCR Align (PipeDream command) 1 34 GET/GET$ (BASIC keyword) 206 Insert Line (Diary command) 1 7 1 Leading Characters (PipeDream Go to Slot (PipeDream command) 1 14 Insert Page (PipeDream command) command) 63, 1 3 6 GOSUB (BASIC keyword) 206 1 2 1 Left Align (PipeDream command) 1 34 t GOTO (BASIC keyword) 207 Insert Reference (PipeDream LEFT$ (BASIC keyword) 208 command) 1 2 3 LEN (BASIC keyword) 209 I H Insert Row (PipeDream command) 4 1 , LET (BASIC keyword) 209 122 line editing 24 hard reset 24 Insert Row in Column (PipeDream LIST (BASIC keyword) 209 headers in PipeDream 142 command) 120 List (Diary command) 1 63 headings , fixing 1 3 5 insert mode i n PipeDream 1 19 list file 126, 128 HELP key 1 6 Insert/Overtype (Diary command) 1 70 LISTO (BASIC keyword) 209 help 25 Insert/Overtype (PipeDream lists in expression slots 1 52 hierarchical filing system 80 command) 1 1 9 LN (BASIC keyword) 2 1 0 Highlight Block (PipeDream inserting a line in PipeDream 4 1 LN (PipeDream function) 1 56 command) 149 INSTR (BASIC keyword) 208 LOAD (BASIC keyword) 2 1 0 highlight codes 42 , 148 INT (BASIC keyword) 208 Load (Diary command) 1 72 in PrinterEd 1 8 8 INT (PipeDream function) 1 56 Load (PipeDream command) 44, 1 2 6 highlight commands 4 1 Inverted Caps mode 17 loading a BASIC program 210 highlighting text 148 in BASIC 1 97 loading in PipeDream 44 HIMEM (BASIC keyword) 207 Italic (PipeDream command) 148 LOCAL (BASIC keyword) 2 1 0 home expenses example 56 LOCK OUT state 79 J LOG (BASIC keyword) 2 1 0 I LOG (PipeDream function) 1 56 jam sequence, in CLI 1 8 1 LOMEM (BASIC keyword) 2 1 0 IF (BASIC keyword) 207 Join Lines (Diary command) 1 7 1 LOOKUP (PipeDream function) 1 56 IF (PipeDream function) 1 5 5 Join Lines (PipeDream command) 1 20 Import/Export 14, 90 M protocol 91 K INDEX (PipeDream function) 1 5 5 Margin Left (PipeDream command) INDEX error 95 keyboard 1 5 132 INDEX key 16 keyboard options 87 Margin Right (PipeDream command) Index 1 3 , 1 8 keyboard, cleaning 1 7 132 screen 1 8 , 92 keycap legends 5 margins in PipeDream 1 3 1 , 142 INKEY /INKEY$ (BASIC keyword) 207 �KILL 20, 94 Mark Block (Diary command) 1 62 INPUT (BASIC keyword) 207 KILL 98 Mark Block (PipeDream command) 50 I INPUT.ff (BASIC keyword) 208 marking blocks in PipeDream 50, 1 04 INPUT LINE (BASIC keyword) 208 L MAX (PipeDream function) 1 57 Insert Character (Diary command) 1 7 1 Memory Free (Diary command) 1 7 1 ,, Insert Character (PipeDream Last Active Day (Diary command) 1 68 memory low 24 command) 1 19 Last Column (PipeDream command) MENU key 16 Insert Column (PipeDream command) 57, 1 1 6 menu, selecting 2 1 122 Last Line (Diary command) 1 67 Microspace pitch (PipeDream LAYOUT menu in PipeDream 1 3 1 command) 147 248 Index microspacing in PrinterEd 1 9 1 Number < > Text (PipeDream options in commands 22, 103 MID$ (BASIC keyword) 2 1 0 command) 1 24 OR (BASIC keyword) 2 14 MIN (PipeDream function) 1 57 number formats in PipeDream 63, 1 3 6 OSCLI (BASIC keyword) 2 1 4 MOD (BASIC keyword) 2 1 1 overprinting 1 8 9 MONTH (PipeDream function) 1 57 0 Overtype mode in PipeDream 38, 1 1 9 � Move (Diary command) 1 62 OZ information 1 8 Move (PipeDream command) 108 OLD (BASIC keyword) 2 1 2 moving around a PipeDream ON (BASIC keyword) 2 1 2 p document 57 ON ERROR (BASIC keyword) 2 1 2 moving between days i n the Diary 66 OPENIN (BASIC keyword) 2 1 2 PAGE (BASIC keyword) 2 1 4 moving blocks i n PipeDream 1 0 8 OPENOUT (BASIC keyword) 2 1 3 page breaks in PipeDream 122 moving in PipeDream 1 14 OPENUP (BASIC keyword) 2 1 3 page display map 3 3 moving within the Calendar 7 5 operations Panel 14, 87 multi-column document, creating 132 executing 22 paragraphs in PipeDream 39 multi-file documents in PipeDream selecting 22 party invitation example 37 1 2 6 , 1 2 8, 147 operators percentage calculations in the multi-file example 1 29 in BASIC 223 Calculator 73 in PipeDream 1 52 PI (BASIC keyword) 2 1 4 N precedence of 225 PI (PipeDream function) 1 57 OPT (BASIC keyword) 2 1 3 PipeDream 1 1 *NAME 2 2 2 OPTIONS menu i n PipeDream 1 3 8 error messages 233 Name (PipeDream command) 126 Options Page (PipeDream command) file format 240 Name (PrinterEd command) 1 93 46 reference 103 Name Match (Filer command) 179 Options Page 1 3 8 screen 32 name and address list example 46 Options Page in PipeDream 46 starting 32 NEW (BASIC keyword) 2 1 1 Options Page options using 31 New (PipeDream command) 44, 1 1 3 Auto/Man 1 4 1 popdowns 1 1 New (PrinterEd command) 193 Borders 140 entering 1 9 , 93 NEXT (BASIC keyword) 2 1 1 Columns/Rows 1 4 1 running 69 Next Active Day (Diary command) 1 6 8 Decimal places 1 4 1 using 69 Next Column (PipeDream command) File 1 3 8 POS (BASIC keyword) 2 1 4 1 1 6 Free 1 3 9 Previous Active Day (Diary command) Next Day (Diary command) 1 6 8 Insert o n wrap 1 40 168 Next File (PipeDream command) 129 Insert/Overtype 139 Previous Column (PipeDream Next Match (Diary command) 1 64 Justify 140 command) 1 1 6 Next Match (PipeDream command) Lead chs. 141 Previous Day (Diary command) 168 53 , 1 09 Line spacing 142 Previous File (PipeDream command) Next Option (Diary command) 1 7 1 Microspace 1 39 129 Next Option (PipeDream command) Minus/brackets 14 1 Previous Match (Diary command) 164 139 Page 1 3 9 Previous Word (Diary command) 1 67 Next Word (Diary command) 167 Page length 142 Previous Word (PipeDream command) Next Word (PipeDream command) 1 1 5 Start page 142 1 1 5 NM in Filer DIRECTORY window. 179 Text/Numbers 140 PRINT (BASIC keyword) 214 NOT (BASIC keyword) 2 1 1 Trail chs. 1 4 1 PRINT# (BASIC keyword) 2 1 5 Wrap 1 40 PRINT menu in PipeDream 146 Index 249 Print (PipeDream command) 44, 53, Right Align (PipeDream command) 64, SGN (PipeDream function) 1 57 146 134 short cuts 23 Printer Editor 187 RIGHT$ (BASIC keyword) 2 1 7 Sign Brackets (PipeDream command) printer driver 1 8 7 RND (BASIC keyword) 2 1 7 136 editing 1 8 8 ROM cards 98 Sign Minus (PipeDream command) � PrinterEd 12, 1 8 7 ROW (PipeDream function) 1 57 136 printing rows and columns in PipeDream 33 SIN (BASIC keyword) 2 1 8 I expressions 1 24 RS232 connections 2 3 1 SIN (PipeDream function) 158 from BASIC 198 RS232 parameters 89 slot references 58 in PipeDream 44 Rubout (Diary command) 170 slots in PipeDream 33 selected rows in PipeDream 54 Rubout (PipeDream command) 1 1 9 soft reset 24 PROC (BASIC keyword) 2 1 5 RUN (BASIC keyword) 2 1 7 Sort (PipeDream command) 5 1 , 108 PTR# (BASIC keyword) 2 1 5 sorting in PipeDream 50, 1 08 �PURGE 94 s SPC (BASIC keyword) 2 1 8 PUT (BASIC keyword) 2 1 6 specification o f Z 8 8 243 I SAVE (BASIC keyword) 2 1 8 Split Line (Diary command) 171 R Save (Diary command) 173 Split Line (PipeDream command) 120 Save (PipeDream command) 43 , 127 spooling files from the Terminal 186 I RAD (BASIC keyword) 2 1 6 Save (PrinterEd command) 193 spreadsheet example 56 RAD (PipeDream function) 1 57 Save Position (Diary command) 166 SOR (BASIC keyword) 2 1 8 RAM cards 95 Save Position (PipeDream command) SOR (PipeDream function) 1 58 ranges in expression slots 1 5 1 1 1 5 Start of Line (Diary command) 167 READ (BASIC keyword) 2 1 6 Save t o EPROM (Filer command) 84 STEP (BASIC keyword) 2 1 8 Recalculate (PipeDream command) saving a BASIC program 2 1 8 STOP (BASIC keyword) 2 1 9 1 1 3 saving a document in PipeDream 43 STR$ (BASIC keyword) 2 1 9 redirecting input and output 1 8 1 Screen Down (Diary command) 168 STRING$ (BASIC keyword) 2 1 9 REM (BASIC keyword) 2 1 6 Screen Down (PipeDream command) styles, adding to text 4 1 Remove Highlights (PipeDream 1 1 6 Subscript (PipeDream command) 148 command) 149 Screen Up (Diary command) 168 SUM (PipeDream function) 1 5 8 *RENAME 222 Screen Up (PipeDream command) 1 1 6 Superscript (PipeDream command) Rename (Filer command) 8 5 Search (Diary command) 6 7 , 1 6 3 148 RENUMBER (BASIC keyword) 2 1 6 Search (PipeDream command) 5 2 , 109 suspended activities 20, 93 REPEAT (BASIC keyword) 2 1 6 searching for a day i n the Calendar 76 swap Case (Diary command) 1 7 1 Replace (Diary command) 1 64 searching for Diary entries 67 SWap Case (PipeDream command) Replace (PipeDream command) 1 09 Select Device (Filer command) 96, 177 12 0 I Replicate (PipeDream command) 59 Select Directory (Filer command) 1 77 switching off 1 0 replicating slots 59 Select Extra File (Filer command) 83 switching on 8 , 1 0 I REPORT (BASIC keyword) 2 1 7 Select First File (Filer command) 8 3 system information 2 2 2 reset 24 selecting files 8 3 I reset button 8 serial port 2 3 1 T RESTORE (BASIC keyword) 2 1 7 serial port parameters 8 9 Restore Position (Diary command) 1 66 Set Margin (PipeDream command) T junction escape sequence 1 80 Restore Position (PipeDream 132 TAB (BASIC keyword) 2 1 9 command) 1 1 5 setting a n alarm 7 8 TAB (Diary command) 1 66 RETURN (BASIC keyword) 2 1 7 SGN (BASIC keyword) 2 1 8 TAB key 1 6 250 TAN (BASIC keyword) 2 1 9 TAN (PipeDream function) 1 58 Terminal 1 2 , 1 8 5 text slots 3 5 THEN (BASIC keyWord) 2 1 9 TIME (BASIC keyword) 220 TIME$ (BASIC keyword) 220 title in PipeDream 1 44 TO (BASIC keyword) 220 Today (Diary command) 168 TOP (BASIC keyword) 220 Top File (PipeDream command) 129 Top of Column (PipeDream command) 57, 1 1 6 TRACE (BASIC keyword) 220 Trailing Characters (PipeDream command) 63, 1 3 6 translating codes i n PrinterEd 1 92 Tree Copy (Filer command) 1 7 8 TRUE (BASIC keyword) 221 tutorial section 27 typing text in PipeDream 37 u Underline (PipeDream command) 148 units conversion in the Calculator 74 UNTIL (BASIC keyword) 221 Up Directory (Filer command) 178 Update Driver (PrinterEd command) 1 8 7 , 193 User Defined (PipeDream command) 148 USR (BASIC keyword) 22 1 v VAL (BASIC keyword) 221 VDU (BASIC keyword) 2 2 1 vectors i n BASIC 224 VPOS (BASIC keyword) 22 1 w WIDTH (BASIC keyword) 2 2 1 Width (PipeDream command) 4 7 , 54, 1 3 1 Index wild cards in Filer 1 76 in PipeDream 53, 1 1 0 Word Count (PipeDream command) 1 1 3 word wrap in PipeDream 3 8 word processing example 37 y YEAR (PipeDream function) 1 5 8 z Z80 assembler 2 1 3 Z88 character set 237 Z88 ROM release number 222 Z88 specification 243 /\ft in PipeDream 53 /\ft wild field 1 1 1 A? in PipeDream 53 /\? wild field 1 1 1 I 4 ' I 1