%OP%BON
%OP%PL70
%OP%BM6
%OP%HE//PD PAGER//
%OP%FO//p. @p//
%OP%DEPD Pager by M.Foweraker (4423)
%CO:A,12,72%Want to print the odd pages between 45 and 56 from a document 
consisting of 12 files linked by a list file? Then this program is for 
you. If you want to do something less ambitious, it does that to.


FIRST THINGS FIRST.

You will have been supplied with two files Z206A and Z206B.

Z206A is PipeDream text file which you are reading.
Z206B is a BASIC file which should load into BASIC without any 
problems. Size 2570 bytes.

To use, start a new version of BASIC and type CHAIN "LIBRARY/Z206B" and 
press <ENTER>. Alternatively use Z164 (NEXT PLEASE), X002 (Function 
keys) etc. if that is your prefered method of working. Lines 350 and 
980 will need STOP changed to CHAIN"LIBRARY/Z164" for instance.


TO BUSINESS

When the program runs you have to answer some obvious questions and 
then wait for the print out! The program starts a new PipeDream and 
loads the file. For this reason the version you want printed must be 
saved before hand, also it means that the program is unsuitable for 
plain text files (but are these ever big?). Why load a fresh copy? Just 
in case you specify inappropriate page numbers, which could lead to the 
file being corrupted. By loading a fresh copy and then |KILLing it, 
this is avoided.

The "dialogue" goes like this:- (with deleberate mistakes) 

Name of file to Print
include the .L if a list file?  MYBOOK..L          (A)
MYBOOK..L is not a valid file name 
PRESS A KEY TO CONTINUE

Name of file to Print
include the .L if a list file?  MYBOOK.L           (B)
FILE MYBOOK.L NOT FOUND

Name of file to Print
include the .L if a list file?  ARTICLES/MYBOOK.L  (C)

First page to be printed ?  15                     (D)
Last page to be printed (must be at least 15)?  28 (E)
Which pages do you want? All, Odd or Even A O E O  (F)
Paging file will be compliled for ARTICLES/MYBOOK.L   }
To print odd pages between 15 and 28                  } (G)
Do you want to Compile and Print (y/n) ?Y             }
Paging File is 0.57k. PRESS A KEY TO CONTINUE           (H)

           Do you want to Stop OR 
Select new File, Page Numbers or Page Type? (S/F/N/T) S (I)

%P0%
(A) The filename is mistyped (two .. 's) after the error message you 
press a key and the filename is automatically avaliable for editing. 
(There is a problem if any of the "significant" keys # | and ~ are in 
the erroneous name, they will be taken as 'square', 'diamond' and 
'cursor' etc.) It does not have to be a list file.

(B) The spare dot is deleted, but the file is not found as the 
directory name was ommited (I am sure that you will not make so many 
mistakes)

(C) The directory name is added and the program proceedes

(D) First page (this is counted from the start as I cannot take account 
of the setting on the Options page, so 1 is always the first page)

(E) Last page (counted as above)

(F) Choose All pages (i.e. 15 to 28) Odd pages (i.e. 15 to 27) or Even 
(i.e. 16 to 28)

(G) Your choices are confimed (note page numbers are those input)

(H) The file :RAM.0/p.cli is created and you are told how big it is and 
asked if you want to continue. (If it is more than about 1k check your 
page numbers! p.cli is deleted later) The CLI is executed and you will 
see various menus pop about and then every thing will apparently freeze 
(especially if you are atarting some pages in) You may notice ..Page X 
flash every ten seconds or so. This shows all is well. The Z88 takes 
about 12 seconds to print a page, even if it not sent to a printer, so 
in the example there would be about a 3 minute wait before the printer 
started to print. If you want to stop printing use 'diamond' 'ESC' and 
then manually |KILL the PipeDream and return to PD Pager. 

(I) When all is done the PipeDream is |KILLed and you are returned to 
PD Pager and the CLI's are deleted and you are given the choice to stop 
or alter various settings (if you wanted Odd then you will probably 
want Even with every thing else the same).


CREDITS

Firstly to P.Hodson for "throwing down the gauntlet".

Secondly to %H4%Z88 EPROM%H4% contributers for inspiration and information.

Thirdly to myself(!) for writing file and error handing routines as 
general purpose files, which speeded up the development of this 
program. These are avaliable as X022 from the LIBRRARY


THE FUTURE

There is a missing feature, it may, or may not be important.

For facing pages (Even printed on the back of Odd) the left margin 
should be more on the Odd pages. This can be achived in three ways (but 
all with exceptions). 

The easiest, move the paper tray. This is not possible on some 
printers.

The second easiest, and could be put in the program quite easily. This 
is not a valid solution for list files.

The hardest, but only slightly harder to put in the program. To have 
the program load appropriate Printer Driver Files (PDF's) which would 
have different page offsets. The problems are two fold: 1) you have to 
supply extra file names; 2) you have to have the PDF's (if your printer 
can do it). The most convinient way to implement this method would 
probably be to have a 'special' filename (such as ending with .PPD 
"PagerPrinterDriver") which would be reconised by the program and would 
contain the four filenames (Document, normal PDF, Odd PDF, Even PDF). 
This would be most efficient for large documents that you are 
"progressively" printing as it is being written.

All three methods can be manually implemented, but before I put the 
second and/of third method in a program I would like to know if it is 
needed. Answers please?


FINALLY
 
This program is partly related to Z204E PD Linker which adds linking of 
files to PipeDream and Z204D Cut and Paste which does what it says, but 
between PipeDream programs.

Any problems, bug reports, and answers to the FUTURE, by post to 
M.Foweraker, 21 Heol-y-Ddol, CAERPHILLY, Mid Glamorgan. CF8 3JF.

I cannot promise how quickly I will respond to queries, but all updates 
will be via the LIBRARY unless it is part of program development.

(C) M.Foweraker 1993
%CO:B,12,60%%CO:C,12,48%%CO:D,12,36%%CO:E,12,24%%CO:F,12,12%