FUNCTION: DBL.COM was written to use the compressed mode of most printers in use today, to print files two pages at a time on a single sheet of paper, sort of like this: xxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxx Pg 1 Pg 2 HISTORY: The first versions (which were not released to the public) used CP/M's random disk read function extensively. These versions were hard on disk drives, the light on the drives would come on and stay on until the printing quit. The first version released to the public used all of the computers available RAM space as a gigantic disk buffer. This version could read most files at one time, then begin printing them, greatly reducing the drive activity. The second version released to the public (DBL2) contained a new feature, it allowed the printing to start in the middle of the file, unfortunately, it contained several minor inconvienences, and at least one bug. It didn't like to start printing on a page that occurred after the second disk access. The third version cured the problem, or seemed to and took care of some of the inconvienence, but never got released to the public. DBL4 cures the problems from DBL3 and contains a number of new options, including an assortment of print mode options and a set print format options. MENU OPTIONS: If a filename is specified when the program is called up as it was in DBL2, such as: A>DBL4 D:FILENAME.TYP P5 All of the default options are taken and printing proceeds just as in DBL2. If no filename is specified, the program will prompt for a filename. This filename is entered in the following format: D:FILENAME.TYP Where 'D' is the drive to be used (A thru P), 'FILENAME' is the primary file name of eight or less characters, 'TYP' is the secondary name (TYPE) in three or fewer characters. The program assumes that the second character will be a colin (':'), if a drive is being specified, otherwise the default drive will be used. If the 'FILENAME' is more than eight (8) characters in length or if the dot separating it from the 'TYP' is omitted, all characters beyond this point will be discarded until either a dot or the end of the specification is reached. Although it takes a carrage return or an escape to terminate the entry, inter- pretation of the entry will terminate if a space is entered. Finally, the previous filename is copied to a buffer before the new entry is interpreted, if you wish to use the same file specification, you merely need to press the [Escape] key. After the filename is entered, each valid printer mode is shown along with a prompt for your choice. At this point the computer will be waiting for you to press a numeric key in the range of 1 thru 7, if you enter an invalid option, you'll get to do it over. As soon as you press a valid key, it'll print the corresponding mode (if you goofed there's a way out). Next it'll ask first for the start page, then the finish page. You can key in any decimal number you want, but it only sees numbers from 0 thru 65535, but you'll have to press the return key to tell it when you are entering a number. By the way, don't key in anything that isn't a decimal digit (0 to 9), it terminates the number when it sees anything that isn't a decimal digit. If you enter a finish page that comes before the start page, it will not accept it, additionally, all starts are rounded down to the nearest odd number, all finishes up to the nearest even number. The page format comes next. The program prints each item, then the default and waits for your input. It wants a number, as above, but only accepts numbers in the range of 0 thru 255. The prompts are: Page Height (Default = ###): Page Width (Default = ###): Left Margin (Default = ###): Right Margin (Default = ###): Center Gap (Default = ###): Top Margin (Default = ###): Bottom Margin (Default = ###): After all of the format options are entered, it does some mathmatics. If something goes wrong in the mathmatics, you get to do the format over. Once it has all of the above, it will show what it got, and wait for you to approve it by pressing the return key. If you press the return key, it'll read the disk and start printing. You can interupt the printing by pressing the 'P' key, then resume by pressing the 'P' again ( 'p' and Ctl-P do the same thing ). When the printing is done it will return to the filename prompt. You can exit the program at any time by entering Ctl-Q, entering a Ctl-X will return you to the filename prompt. Pressing the Escape key while printing is going on will also return you to the filename prompt. Additionally, the Escape key will take the defaults for all of the items in a series of prompts. A single default can be taken by merely pressing the Return key for any prompt except for the print mode. INSTALLING DIFFERENT PRINTER: Different strokes for different folks. There are more different printers on the market than I know about, each of them takes a different sequence of control codes. Fortunately Epson and Okidata seem to be taking up the major portion of the market, so I've written overlays for both of them. The only one that I am absolutely sure works is the Epson RX-80, because that's what I've got. The two overlay files are named DBLEPSON.OVR & DBLOKI.OVR, respectively, get the one that matches your printer and rename it with a .ASM type. Use ASM to assemble it an make a .HEX file. Now use DDT to combine DBL4.COM and the overlay as follows: A>DDT DBL4.COM Call up DDT & tell it to read DBL4.COM DDT VERS 2.2 (Note that DDT signs on with NEXT PC information about itself and 0E00 0100 DBL4.COM) -DD20,D3F Tell DDT to display last two lines of program. 0D20 00 0A 50 61 67 65 20 20 20 20 20 20 00 00 00 00 ..Page 1.... 0D30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ -IDBLOKI.HEX Input overlay filename.hex -R Read overlay NEXT PC DDTs reply 0E00 0100 -G0 Exit DDT A>SAVE 13 DBL+.COM Save the overlayed file with a new name - don't use old name. A>DDT Call up DDT again DDT VERS 2.2 This time theres not much sign on because no other file was read -F100,1000,FF Fill bottom of TPA with 0FFH -IDBL+.COM Insert name of modified version -R Read modified version NEXT PC DDTs reply 0E00 0100 -DD20,D3F Tell DDT to display last two lines of program (should match previous) 0D20 00 0A 50 61 67 65 20 20 20 20 20 20 00 00 00 00 ..Page 1.... 0D30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ If these lines match the previous dump, then the new version is all there -F5C,FF,20 Clear out the default file control block (If you don't do this, it'll try to print DBL4+.COM) -G100 Start program running...and test options If it works properly you can rename it otherwise you get to try the proceedure over again. BUGS: There has to be a few, there always is, additionally some of the new features may not be implimented very well and need some refinement, so don't think this is the ultimate version. OTHER POSSIBLE FEATURES: A number of people have asked for a dot command interpreter. I suppose that it's possible to do, but the problems that come up when printing to pages at once seem monumental right now. Doing some of the things that programs like WordStar do is fairly easy to do when there's only one page. When there's two pages things like emphasized print that's on several lines of one page but not on the other at all, is more than a little bit tricky. Doing headings and footings pose similar problems. The output from DBL looks sort of like the way that a printing company would set up their printing for a book. Publishers use a method of putting the pages together known as a printers gallery, the last and first pages are on the same side of sheet (in that order) and the second and next to last are on the other (in that order). This means that the start of all of the pages have to be located before the printing begins. Then all of both pages has to be in memory at the time the printing begins. It could be done, but not very easily...it's better to print the pages one by one and tape them together in the proper order. How about sending the output to the console or to a disk file. Both are possible, but I've had about all of the rampant featureitius that I can take for now. Maybe this winter.