IMD 1.16: 29/05/2007 18:49:10 FOGCPM.077 --FOGCPM077FRONT51 COM0FRONT51 DOC FRONT51 DOC !"#$%&'(FRONT51 DOC;)*+,-./0-06-00 86 -CPM077 DOCFRONT51 INF123FRONTSUBDOC0456789AUTOST CM0:;<=>?FRNSTL51COM@ABCDEFGHIJKLMNOFRNT51PTASMePQRSTUVWXYZ[\PRN COM]^_`abcdefghijklPRN COMcmnopqrstuvwxyPRN DOCz{|}~PRN DOCPRN DOCWCHAR DEFCHRTX COMKThis is the disk name. FRONT51 INF012FRONTSUBDOC0345678AUTOST CM09:;<=>FRNSTL51COM?@ABCDEFGHIJKLMNFRNSTL51COMFRNT51PTASMeOPQRSTUVWXYZ[PRN COM\]^_`abcdefghijkPRN COMclmnopqrstuvwxPRN DOCyz{|}~PRN DOCPRN DOCWCHAR DEFCHRTX COMKCHEKLISTCRCFRONT - (C) 1986 by Claude Ostyn - Version 5.1 All rights reservedFRONT may be copied freely, but may not be sold by anyone without written permission. See FRONT51.DOC. Claude Ostyn P.O. Box 2035 Sitka, Alaska 99835 USAP= TRE[]yone without written permission. See FRONT51.DOC. Claude Ostyn P.O. Box 2035 Sitka, Alaska 99835 USAP=COMSUBBASCMDXQTINTA:SUBMITA:MBASICA:DBASEA:SC2A:CRUN2A:XXXXXXXXA:XXXXXXXXA:XXXXXXXXHTS???????????-??????????$A:FRONT51~G #°y*.|g"~!9"|*~!{; 2*~.~: ~͹ 2ͱ 2Z!Hk!k!~L#~ L#~0L1L!6!P L_:__] :_ͬ ͹ 2_] ͝e !C">2b :ž7 e ^%D i:|7 e  W :2\7+iʴ:    ʴʥe wʥʥ!k! ~O#y2?!6#6ͧ%͒!k:o%G.xV ʥ YG̓:ĥ͒!Qk]`:0:+ :$c*~.~#!N *~ o6#|w:O*|*~!~/!kP%!6#6 ͧt%:}_%!|%:{_%!z%:y_%!x%,GX/!}!{!yFRONT options: [] sort menu (now ) [] show file types (now ) [] show hidden files (now ) [X] exit to CP/M [ESC] return to FRONT ~ %OFFON !kn%,_YC7 :i:¥i|%!Qk]c:_ͬ :_] : :*|͞2y2ʐͤ ʤͥ:  ʤ ; !y*~G # õ>  :A>: *###~ # !q!Fx6#H~6# !Nyw}o6 #xO͞>2 >2,   : ʒ ʪ  G?̷+; =; 77:ʟE7:27:!ʽ727!:7!G:7#7:!7b7!| !z !x>2~ ww͇ !%4 :1 > 2 >!q#: Gw #> r !6#:wͧ͒!k!^,Gʵ ʵ  GyR x R R #w _y2 R yO6 2S% R >2 ͘222!C":2!F*###ͫ  :2  Ͳ:<2!5 :2y2͇ %!5ͧ͒  !H͘!\: r* M  :0 ͬ M :_ͬ  ͇ %*%%  %, >~@2\#]#~. .  e!͇ %! ##~ȷ{ #GAT _T ] < ] < !#~ʔ #ʂ  x #~#ʚ 0ʳ ʚ  Ú _ ͬ >+>:0 !\6?M ͉~  \:<! M ͉#% H%!$#~ , _#  ~ L .~_#@ \\: ˜ :z Kͤ |=͹ 2!~Ow-z *ô   }ͱ 2O:2!6#6ͧ͒W%͹ A_ P%͘: ͱ 3Z!C"͹ :O Ͳ * !k!6#6ͧ͘%çe ͇ ^%͘!6#6ͧ͘:GRP%y !6#:wͧ͘RP%› !~ʶ k :O h:2ç:G:-[ *~ =2#~2ͧ  2*#H :z2*~2#~2:-[-!5ͧ:̆H:-[H y#~_ #N:ʋ:ʋ!͕͘.~ _#:ʢ:-[¥ ͌!k::!!k:!:!k:!! kG:Oxyx d0x 1 _~EI[[]c_#)ESCA͆A͌A~ʁG#~_u!,k!3k!:k!Ak!C":GͲª*"!~2:2>2:G!N G!~!~w :w4!46 !:74!:2:2>2+:G!~Vw\:w#5!5:2!:2*:w#:w!O ͉"  y!͕* ͫ¡> y2*##w#*# *:x ~怷>:2423:323G:426>25:522:2G:321Z ͫH̀:3G:222=H:5<25G:6:2!C͕###"7:1!C͕###*7+9  !9 $USER 00$ 00:2"*###\:<y!<͕"e!hPr\<\<\e ͇ !w#6ͧ`%!\ >2ͧ!~ a S d^dU6.~_:̉# y9y}͇ D%,7  W   ==Ö!r!r!C":~22o2!,~6#6[!36#6]>2:42<2:z>2::-[>2>> O2:!<<'x2/J/2 ! w:sGʇ~!u! >w#w#wͿq:u! #w:sʇͿv!u:sG ͫʨ : !y͕> > > >:tG xp#6+ #~^#6~# x~G# x00:0> 7:_z0Wa{_:b!k:O  iw#r*##~2ɯ2$:!͕Cͫ>2$,Hn:$!:!_ͬ ́ͼR:_ͬ ́ͼ́ͼRCͼ:0:ͼ!Qk]`:́:3!#~56 #r#s#r:[! :3!r#s#r!D:Aw#6:#r::ʑ:<<ʦ:<!Gr:<>$:R:<:! 6::0-͘:0 %ͧ%%P%ͬ $$$ SUBLabel:  Drive Use [ARROW KEYS] to select a command, [RETURN] to run it, [SPACE] to enter arguments before executing, [+] to change logged drive/user or [] for other options Enter optional arguments then press [RETURN], or enter [] then [RETURN] to return to menu No executable file found! Select new disk or drive/user, or enter  to exit FRONT. Enter drive and/or user number: Executing command: .Cannot find .COM required to execute [] Press [] to return to menu. Press any key to continue. Peeking into Exit (Y/N)? Returning to CP/M Hit RETURN if disk error: Press i if disk error:  Disk full or R/O: Unable to proceed with .po5 .FO FRONT.DOC v. 5.1 (C) 1984, 1986 BY CLAUDE OSTYN PAGE # FRONT.DOC Documentation for FRONT.COM version 5.1 Copyright (c) 1984, 1986 by Claude Ostyn This document and the programs it describes may be copied, used and distributed freely at no cost for the benefit and enjoyment of all CP/M users. They may not be sold or included in a package for sale, under any name, in whole or in part, without the prior written permission of the copyright owner, but copies may be sold by non-profit users groups as long as the price does not exceed the cost of the blank media and duplication. Commercial use is subject to payment of a fee or of royalties. The programs may only be distributed as a package including FRONT51.COM, FRNSTL51.COM, FRNT51PT.ASM, FRONTSUB.DOC and FRONT51.DOC (this document). The copyright notices may not be altered. I specifically disclaim any warranties, implied or otherwise, as to the performance and suitability of this software for any purpose. If it works, great. If it doesn't, don't blame me, but feel free to blame whoever concocted your version of CP/M. Since I spent considerable time and effort to develop and debug this software, I would like a reasonable payment if it turns out to be useful to you. A modest contribution ($15 or more) will be welcome as a tangible sign of appreciation. I also trust that you will be totally honest and will mention this when you pass FRONT around. Comments, reviews, picture postcards, gourmet chocolate, suggestions and bug reports are also welcome, of course. Claude Ostyn P.O. Box 2035 Sitka, Alaska 99835 CONTENTS 1. Changes since last versions 2. Introduction 3. Description of FRONT A. Short description B.  Hardware/software requirements C. Using FRONT 4. Installation 5. Installation procedures using FRNSTL51.COM A. Terminal installation B. File types installation C. Special features D. Saving the installed FRONT file 6. Custom installation using FRNT51PT.ASM 7. Technical notes 8. Troubleshooting 9. Using FRONT with a hard disk. 1. CHANGES SINCE LAST VERSION The last circulated version FRONT was FRONT50. The following have been added or corrected in v.5.1: - Added support for newer versions of ZCPR and ZCMD. - Fixed a bug in execution of certain commands. Other improvements over the original FRONT.COM which had been added in previous versions include: - fixed bug in Osborne 1 installation - supports more non-standard CP/M implementations - CP/M Plus compatibility; - ability to change the user area as well as the logged drive; - optional alphabetic sorting of the command on the menu; - compatibility with some Trantor hard disk CCP modifications; - improved compatibility with CP/M Plus; - compatibility with JG Communications clock software version 3.2 for the Osborne 1; - automatic repetition of FRONT after execution of the called program by using a standard CP/M feature available on most systems (the feature can be cancelled by ESCaping); - improved installation program with display of all settings at main menu; - support for ANSI terminal video addressing and support for arrow keys on more terminals; - optional and adjustable delay before execution of the called program (for those "oops!" situations); - optional display of disk label below drive name; - for Osborne 1 owners, more reliable screen size recognition with or without Screen-Pac. - additional terminal support - options submenu - improved compatibility with old Kaypro II; - conflict with SUBMIT in the standard Osborne 1 installation has been eliminated; ----- 2. INTRODUCTION A while back I got frustrated with the otherwise excellent public-domain program MENU.COM because it did not allow me to enter arguments after selecting a command, or to run BASIC and DBASE programs without creating an extra alias .COM program. I also needed to set up turn-key systems for people who were utterly confused by CP/M. Out of this came FRONT.COM. 3. DESCRIPTION A. SHORT FRONT.COM is a front-end utility for CP/M. It DESCRIPTION replaces the A> prompt with a menu of available programs and lets you select the command to run by just moving a highlight to the command name with the arrow keys and pressing one other key. Its size is only 6K. The menu shows the names of programs (.COM) files present on the disk. Optionally, the menu will also show the names of .SUB, .BAS and other program files which require an interpreter to run. The menu is automatically updated as files are added to the disk or erased, or if you log in another disk or user area. The menu is normally arranged in alphabetic order. At your option, the order of file names in the menu can also be the same as in the disk directory. There are two ways to execute a command from the menu. One way is to use the arrow keys to move the cursor to the name of the program to run and press either RETURN or the space bar. If you press the space bar, you will be prompted for additional arguments. The second way is to start typing in the command. As you type, the names which do not match the command you are typing disappear from the menu, so you only have to type in enough characters to uniquely identify the command. As soon as FRONT recognizes what you want, it will show you the command and ask for optional arguments. To run a Basic program, for instance, you would not have to type in MBASIC MYPROGRM, but you would  just move the cursor over the name MYPROGRM and press RETURN and it will be executed. Or you could start typing "M" and all the names which don't begin with "M" would disappear from the menu. Then you would type "Y" and, if no other command begins with "MY", FRONT would show you "MYPROGRM" and ask for optional arguments. As soon as you press RETURN, FRONT will execute the command MBASIC MYPROGRAM. FRONT.COM is designed to be reloaded every time a program ends with a "warm boot", so it is very possible that you will never see the A> prompt. However, it will also let you exit to CP/M and cancel that feature by just pressing the ESC key. B. HARDWARE FRONT.COM can run on just about any computer & SOFTWARE which has an addressable cursor video display and REQUIREMENTS runs CP/M 2.2 or CP/M Plus. The minimum allowable screen width is 52 columns. Video control FRNSTL51.COM, which should be distributed along with FRONT.COM, will automatically patch FRONT.COM for a number of different terminals and computers. Note that the version number for FRNSTL51 has to match the version number for FRONT. When installed for an Osborne 1, FRONT will automatically adjust the width of the menu according to the current screen size if it detects the Osborne 80-column upgrade. Operating FRONT has no special requirements and will run system with any standard CP/M 2.2 or CP/M Plus system configuration, and with reasonably standard ZCPR implementations. It has been tested successfully on several models of Kaypro, Osborne and other brands. FRONT will automatically recognize and adjust itself to work with different CP/M sizes and versions. It does not leave a "sleeper" or loader in memory and therefore has no effect on the size of the TPA and does not interfere with programs which make direct calls or integrity checks on the BDOS or BIOS. Auto-repeat With most CP/M machines, FRONT can reload itself feature automatically after executing the selected program. Since different machines can handle this differently, FRNSTL51 will allow you to select a method to do this. Auto-start With the Osborne 1, FRONT should normally be feature renamed AUTOST and will then be loaded automatically. With other machines, you may have to patch your system to take advantage of the undocumented CP/M autoload feature. More details  in the technical section. C. USING FRONT +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ + Drive A FRONT - (c) 1986 by Claude Ostyn - Version 5.1 + + Label: -WSASM.001 + + + + [WORDSTAR] SUPERDIR FILTER XERA UNERA + + PROOF NSWEEP PIP COPYDISK IMP + + ASM LOAD ASM&LOAD RESOURCE + + + + + + + + + + + + + + Arrow keys to select command, [RETURN] to execute, + + [SPACE] to enter optional execution parameters, + + [+] to change logged drive/user or [ESC] for options + +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Fig. 1: FRONT.COM menu display. Yours will probably look different, depending on the files on your disk and your screen size. The "sorted menu" option has been turned off in this example. Higlighting or inverse video will be used instead of [brackets] if your screen supports it. HOW IT WORKS FRONT looks up all the files of certain types (such as .COM, .SUB, .BAS, etc.--as determined during installation ) present on the disk in the default user area and displays them as a menu. The type can be shown after the name or not (this can be toggled by calling the options menu). What's on Files with the SYS attribute set, which would the menu not be show with the CP/M DIR command, are not included in the menu. Files are listed in the same order as in the directory, with the first name in the top left corner, then second one to its right, etc. (see Figure 1), unless the sorted menu option has been selected with FRNSTL51, in which case they are listed in alphabetic order. Selecting The first name on the list is underlined or a command highlighted (depending on the terminal), or set with the between brackets on terminals which do not have cursor highlighting or underlining capabilities. By using the arrow keys (or either the standard CP/M ^H^J^K^L or the WordStar ^S^X^D^E diamond if the arrow keys don't work), the highlight is moved from name to name. It can be moved freely in any direction and will wrap around at the end of each line and back to the first name if moved beyond the last one on the list. Logging to If the desired command is not on the disk, another disk pressing the "+" or "=" key will let you log in another disk, drive or user area. Executing Once the desired command is highlighted, a command pressing RETURN will automatically load and execute it. If additional arguments are required, pressing SPACE instead will allow you to enter the arguments. Another way You can also start typing the name of the to select a command. The names that do not match are erased command from the menu until only one name is left, and then you are prompted for parameters. If the name you want is shorter than other names which begin with the same letter, just press RETURN to indicate the end of the name. Special types In addition to the .COM files, the following on the menu file types can be listed in the menu: .SUB, .BAS, INT, .CMD, or other types of your choice. Up to eight different file types, in addition to COM, may be selected by using FRNSTL51.COM. Files with the type .SUB require that SUBMIT.COM or an improved version of it such as EX14.COM be available--usually on drive A. If the .COM file is not present, you will be warned with an error message when you try to execute that command, and returned to the menu. Similarly, .BAS files will require MBASIC, etc. You may have to use FRNSTL51.COM to change the name and default drive of the .COM file used to run the files of each type. Running FRONT Some programs do not end with a warm boot, and again you will just see the dreaded old A> prompt. If your system is set to re-run FRONT at every warm boot (as on the Osborne 1 with FRONT renamed AUTOST), just force the warm boot by typing ^C. On some machines, you may have to log back to the A: drive, user 0 before typing ^C. If FRONT still does not run, type A:FRONT (or whatever name under which FRONT was installed). The last line of any submit file must be the command A:FRONT (or the name under which FRONT was installed). Adding hidden To see and execute commands which have been files to the "hidden" by setting the SYS attribute, press ESC menu for the options menu, then H to toggle the hidden file display. These files will now be added to the menu. The "?" If you read this far, you deserve a goodie. By peek trick pressing '?' when the highlight is over a command name, whatever is printable in the first 128 bytes of the corresponding file will be displayed. If the command is a .SUB file, you will be able to read at least the first few lines and figure out what it does. Most .COM files do or should have some kind of ASCII tag at the beginning to identify the program and version number. Painless You can exit to CP/M without executing a menu exit with ESC command by pressing ESC then selecting X for eXit. This turns off the auto-repeat feature, so you will have to restart FRONT yourself at the A> prompt if you want to see the menu again. 4. INSTALLATION Setting up On most disks, the most often used program the menu should be listed first on the menu. Since FRONT will find and list the executable files on any disk, this section deals with how to set up the disks from which you will be reading a menu. Using the To be listed first on the menu, a name must be directory first in the disk directory and the sorted menu. order option option must be off. There are two ways to achieve this: a. Use PIP or NSWEEP to copy the programs onto an empty formatted disk in the order in which you want them to appear. b. Use a utility such a SAP.COM or SORTDIR.COM to rearrange the directory. Temporarily rename the files, giving them names in the alphabetic order of the final directory. Run SAP, and rename the files to their old name. c. If you are using a hard disk, use NSWEEP to copy all the files to another user area, delete them in the current area, log to the other user area and copy the files back one by one in the desired order to the original area. Using the The file starting with the smallest valid ASCII sorted menu character will be listed first on a sorted menu. option Therefore, the command ABC will be listed before (default) the command BCD if the sorted menu option is installed (see FRNSTL51 below). The advantage is that you don't have to do any copying of files or manipulation of your directory, and it makes commands easier to find in a crowded menu. The disadvantage is that your favorite commands will usually not be listed first. Selecting Use the "STAT filename $SYS" command or the what to show attribute setting facility of NSWEEP to hide the .COM files and other files which you want to  have on the disk but which should not be listed. (If you have CP/M Plus, use the SET command). I usually hide FRONT.COM itself also. It is a good idea to have a directory program such as SUPERDIR.COM, SD.COM or NSWEEP.COM which can list files hidden with the SYS attribute. Obviously this directory program is one you will want to be able to call from the menu. Do not set it to SYS. Note that since it is no longer necessary to type the command names, they can be as long as CP/M will allow. "WORDSTAR" is a lot friendlier than WS. Easy FRNSTL51.COM will patch FRONT.COM (or its installation renamed version AUTOST.COM on an Osborne 1). with It will prompt you and you can run through the FRNSTL51 whole procedure in less than three minutes.  FRNSTL51.COM installs the video screen control codes for your terminal or computer, and certain functional characteristics, such as whether to show the type after the command name, which types of files will be listed on the menu, and which .COM files are used to run the commands listed. 5. INSTALLATION PROCEDURES USING FRNSTL51.COM (FRONT INSTALLATION PROGRAM, version 5.1) To use FRNSTL51, put the disk with FRNSTL51.COM (normally distributed under the name FRNSTL51.COM) and FRONT.COM (normally distributed under the name FRONT51.COM) in drive A. If FRONT51.COM is not on the same disk as FRNSTL51, put the disk that contains it in drive B. STARTING At the A> prompt, type FRNSTL51 FRNSTL51 ( stands for "press the RETURN key"). If the file name  offered by FRNSTL51 is not correct, type in the file name under which we should look for FRONT51, then . If the file is found and is indeed a compatible version, you will be presented with the main menu, otherwise try another name, or press CTRL-C to exit. All the changes you make with FRNSTL51 are reversible at any time. FRNSTL51 will only work with version 5.1 of FRONT. In fact, FRNSTL51 will check and refuse to install an incorrect version. Installation The main menu presents you with a screenful of main menu information. It will show: - The current file name for the copy of FRONT you are installing; - the computer or terminal for which FRONT is currently installed; - which file types will be listed and executed by  FRONT; - current settings of some special features; - a menu from which you may select an item by pressing just one key. The choices are "A", "B", "C", "S" ,"?" or "ESC". You press "?" for more information or "ESC" to quit and return to CP/M. The other choices are explained below. A. TERMINAL All you have to do here is press one key for the INSTALLATION terminal or computer of your choice. Then look at the top of the screen to confirm your selection and press "X" to return to the main menu. If your terminal is not listed, another selection might work, or special installation will be required. (See section 6). B. FILE TYPES The file types which FRONT will list and execute can be modified here. There are 8 "slots" for file types in addition to .COM (only the "occupied" slots are shown on the main menu). If you change, add or remove any of the types, you will also be asked to define the name and drive for the .COM file used to execute the command. An empty type (you must type in 3 spaces) is legal. You might use that type to call text files to be used with a word processing program. C. SPECIAL Here you are prompted for certain operational FEATURES settings. If you like the current setting, just press RETURN to leave it as it is. The first question you must answer here is whether you want the type to be shown after the file name on the FRONT menu. This has no effect on whether the file names themselves will be listed. Answering "N" for no makes for a less cluttered menu on which more names can fit. You will then be asked if you want the menu sorted alphabetically. The next question is whether to display the disk label. The disk label is an empty file beginning with a "-" which many CP/M users put on their disks for use with the public-domain CAT.COM cataloguing program. If you are using CPM Plus and there is a label in the directory that label will be shown instead. Next is the auto-repeat method. Auto-repeat If you have an Osborne 1, you may select the method auto-repeat option 1, "Osborne 1 AUTOST", and then save FRONT under the name A:AUTOST.COM. On most other systems, you may select option 2, "Standard CP/M autorepeat", unless your version of CP/M has a better way to do it, in which case you  would select option 0. Option 3 is for users of newer versions of ZCPR. If you select option 2 or 3, you will have to follow certain simple rules when using FRONT (see FRONTSUB.DOC for details). In case of doubt, try option 2 first. D. SAVING You can save as many copies of your installed AFTER FRONT under as many names as you want. Just enter INSTAL- the new name after selecting "S" for save, or LATION to save under the current name. Since FRNSTL51 does a disk reset, do NOT press CTRL-C if you put in a new disk. You will be returned to the main menu after each save operation. If you are using option 2 or 3 to auto-repeat FRONT, rename it ONLY by reading it then saving it under another name with FRNSTL51. 6. CUSTOM INSTALLATION USING FRNT51PT.ASM   The file FRNT51PT.ASM contains a listing of the user-patchable areas of FRONT.COM. If you are knowledgeable in 8080 assembly language and FRNSTL51.COM is not enough for you, you can use this listing to create a patch overlay for FRONT, or you can use DDT or EDFILE to make the changes. There are 3 major patch areas: terminal installation, the additional patch area MORPAT which could be used to set up FRONT to auto-repeat, and functional installation. Every label shown in the listing corresponds to an address called by FRONT, so be careful not to change the memory location of any label or the copyright notice. In case of doubt, it is safer to use ORG address before any label in your ASM file. FRNSTL51 may affect the INISUB, UNISUB, EXESUB, ESCSUB and MORPAT areas. The Osborne 1 and Radio-Shack installations, for instance, modify these areas. Do not try to patch your original version of FRONT; always work on a copy. Note that FRONT will not work if the copyright notice is altered. 7. TECHNICAL AND SPECIAL SYSTEM INFORMATION Setting up to start FRONT automatically OSBORNE 1: If your computer is an Osborne 1, rename FRONT.COM to AUTOST.COM. Make sure your system has not been modified to look for a file other than AUTOST. You should run the FRNSTL51 program to confirm that FRONT or AUTOST is set correctly and to see what other functional choices are available. If you use the newer JG Communications clock software, use auto-repeat option 2 only since it does its own thing with warm boots and defeats the normal Osborne way of doing things. MORROW The default setting for the arrow keys on the MD5 & MD11 Morrow is bizarre and non-standard. You can insert the command KEY CPM into PROFILE.SUB, and create a CPM.KEY file with standard definitions. FRONT will not run properly if COPILOT has been run, so it should be listed before COPILOT GO in PROFILE.SUB. ALL Insert the command FRONT as the last line of CP/M Plus the file PROFILE.SUB on your boot disk (except on SYSTEMS Morrow, see above). FRONT will execute automatically every time you start or reset your computer. It will be executed again at the end of a called program if the autorepeat option 2 has been selected. FRONT.COM must be in user area 0 on drive A and set to SYS with the SET command.  OTHER If your computer is not an Osborne and you want CP/M 2.2 FRONT to start automatically, it is a little more SYSTEMS complicated. First check if your particular CP/M is set up to run a program automatically (a menu program, for instance). If it does, you're in luck: just install FRONT.COM with FRNSTL51 and rename it to whatever name your CP/M looks for. If you're really lucky (as with Pickles & Trout CP/M), there may be a way to make it run the program at every warm boot (in which case you'd use the autorepeat option 0 in the special features menu). If your CP/M implementation does not have a convenient way to set up a program to run automatically, when you boot, you will have to patch it. Follow the instructions below very carefully, and it should work. You will need the public domain program DU.COM or equivalent. It is available on most CP/M bulletin boards and in the FOG library on the disk FOG/UTL.019 disk under the name DU-V77.COM. In the instructions that follow, (cr) means "press the RETURN or ENTER key". First make a working copy of your system disk and put DU.COM and FRONT.COM on the working disk. Use SYSGEN to copy the system tracks onto the working disk. Put your originals away. Do no write-protect the new disk. Boot the new disk and at the A> prompt, type DU(cr) The DU prompt is a ':' Type in the following lines in UPPERCASE. Do not type the ':' which is just the prompt. The "0" in "T0" is a zero.   :T0;S1;=COPYRIGHT(cr) (Do not type this: DU will show track and sector number, then "AT 21". If you do not see "AT 21", quit now, you have a nonstandard version of CP/M) :CH7,5(cr) :CA8,FRONT (cr) :W(cr) :X(cr) A> (you are back at CP/M prompt) This will patch your system to run FRONT automatically. Reboot, and FRONT.COM should come on. If it does not, use SYSGEN to copy the CP/M system again on your working disk and try again, watching your typing carefully. If it still does not work, seek help from someone familiar with your version of CP/M. Some versions, like the Pickles & Trout CP/M for the TRS-80 computers, have a special utility to set up a program to run automatically, and this patch may not work with them. This is why you did this experiment using a copy, not an irreplaceable master disk... Right? If this patch does work, you can use SYSGEN to copy the modified CP/M to any disk on which you might put FRONT. Remember: Never modify or copy anything on your original disks! Automatic re-execution of FRONT With most CP/M machines, FRONT can reload itself automatically at a warm boot. Since different machines can handle this differently, FRNSTL51 will allow you to select a method. The easiest is if your version of CP/M can be set to execute the program at every warm boot. In that case, you would select autorepeat option 0. The "standard CP/M" method (autorepeat option 2) uses the facility built into the CCP to handle SUBMIT files. See FRONTSUB.DOC for more details. Autorepeat option 3 is for ZCPR systems such as the WestWind ZCPR modification which look for a $$$.SUB file on the current drive, rather than on drive A as the standard CCP and older ZCPRs do. With the Osborne 1, if FRONT has been renamed AUTOST and the autorepeat option 1 selected, then it can be reloaded automatically if you end up on drive A. It does this by setting a "legal" flag in the Osborne 1 BIOS (versions 1.3 and 1.4x) to make this happen again at every warm boot. This method cannot be used when a .SUB file is executed, and thus your .SUB files must end with a command to run FRONT again. 8. TROUBLESHOOTING Garbage on screen - Run FRNSTL51 and check terminal installation. If it is correct according to FRNSTL51 and it does not work, drop me a note. Arrow keys don't work properly - Check terminal installation or use CTRL-H, CTRL-J, CTRL-K, CTRL-L. - If you are using a Morrow machine, see your documentation on how to set the arrow keys. - If you know how to use DDT or SID, use the information in FRNT51PT.ASM to modify the arrow key definitions. System crashes when trying to execute a command - Probably non-standard CCP or system configuration. Use FRNSTL51 and set "Standard CP/M" to "No". This will also happen if you use a CPR with modified command buffer size. Setting Standard CP/M to "no" should cure it. - Some programs which alter high memory may interfere with the normal functioning of CP/M (UNIFORM, or CO-PILOT on the Morrow, for example). Try without these programs. FRONT won't run again automatically after executing a command - FRONT.COM must be on drive A, user 0. - FRONT.COM should only be renamed by reading it with FRNSTL51 and saving it under the new name. - Check that the self-repeat option has been installed correctly (by reading FRONT.COM with FRNSTL51). - If using option 2 or 3, read FRONTSUB.DOC. - If using the Osborne 1 AUTOST repeat method, you must log back to drive A and do a ^C if your program did not return you to drive A. - If you use the Osborne 1 AUTOST method, a copy of AUTOST.COM must be present in each user area. -  You can use options 2 or 3 with the Osborne 1 if you don't like the AUTOST method. - The last line of a .SUB file executed by FRONT must be the command to run FRONT again. "A$" or " A>" followed by a number and other cryptic messages appear on the screen after executing a command. Are those error messages? - No, it is only CP/M executing a command that FRONT put in $$$.SUB to make sure you would be returned to the user area you started from (this is mostly for the benefit of hard disk users). Do not press any key (except Control-S, see below) while these messages are being written, as CP/M will take that as a sign that you want to take over and you will be left hanging there. When executing a command, there is no time to read the screen before FRONT runs again and overwrites it  - Try to freeze the screen with Control-S. Hit Control-S again to continue. Not enough space on screen for all the names to list - See Section 9 below. System crashes when exiting the called program - See installation notes about the auto- repeat feature - Make sure the disk in drive A has valid system tracks. Front crashes or freezes up when using a hard disk - There may be too many files to list and the internal name buffer was not large enough. See section 9. - Your hard disk BIOS or CCP location in memory may be non-standard. Answer 'no' to the Standard CP/M question. Other bizarre behavior - Drop me a note. Describe what happened as precisely and completely as possible. Also describe your machine and disk setup. Be sure to indicate which FRONT version number you are using. Be patient. 9. FRONT WITH A HARD DISK The menu space in FRONT is limited (it depends on your screen size) and hard disk users may find that there is not enough room for all the commands to be listed, so the names will start overwriting each other as the cursor moves around. FRONT itself will in theory still be functional, so if you select a command or press ESC it will respond, though it may display garbage instead of the name of the executed command. There are two ways around this problem: - Use the 16 user areas which are available under CP/M. Put your word processing stuff in one user area, your spreadsheet stuff in another one, etc. - Hide all non-menu executable files of the types listed by FRONT by setting them to "SYS" status; this way they won't be crowding the menu, but they will still be available by ESCaping to CP/M or for use by SUBMIT or other programs.  to be listed, so the names will start overwriting each other as the cursor moves around. FRONT itself will in theory still be functional, so if you select a command or press ESC it will respond, though it may display garbage instead of the name of the executed command. There are two ways around this problem: - Use the 16 user areas which are available under CP/M. Put your word processing stuff in one user area, your spreadsheet stuff in another one, et3/30/86 This is the latest version of the FRONT, which you may copy and share freely for non-commercial purposes (see file FRONT51.DOC for details and copyright notice). This is user-supported software. In other words, if you use it, payment is appreciated. FRONT.COM version 5.1 is a menu program for CP/M 2.2 and CP/M + (regrettably, I found no way to make it work with CP/M 86/80 on the DEC). It lists executable files found on the logged disk and executes them, automatically loading the associated different disks and user areas. Operation is intuitive, with arrow keys or direct typing. A menu-driven installation program for a number of machines is included, as well as documentation and patching info. (FRONT takes only 6K of disk space) FRONT51.COM is the program. It must be installed for your particular computer, but the installation is menu-driven, easy and mostly automatic. The other files are: - the installation program FRNSTL51.COM - the main documentation  file FRONT51.DOC - an additional documentation file FRONTSUB.DOC which explains how FRONT runs itself again after executing a program and how this affects SUBMIT file operations. - FRNT51PT.ASM, which documents the patch area in FRONT51.COM (of limited interest, except to incorrigible tinkerers). To install FRONT51.COM, just type FRNSTL51 at the A> prompt and follow the instructions. Select option A at the main menu to go to the terminal/computer menu, or ? for help. You really should print out FRONT51.DOC. You may need it if you are not happy with the default settings for some of the functional parameters, or if you have questions about the way FRONT works. This is version 5.1, replacing earlier versions but functionally identical, except that a number of bugs have been fixed and more flexibility in working with non-standard CP/M implementations has been provided. See FRONT51.DOC for more details. Please be sure to mention which version of FRONT you are using if you'd like to write about it (include the entire copyright notice which appears on top of the screen). Claude Ostyn Box 2035 Sitka, Alaska 99835 USA OM (of limited interest, except to incorrigible tinkerers). To install FRONT51.COM, just type FRNSTL51 at the A> prompt and follow the instructions. Select option A at the main menu to go to the terminal/computer menu, or ? for help. You really should print out FRONT51.DOC. You may need it if you are not happy with the default settings for some of the functional parameters, or if you have questions about the way FRONT works. This is version 5.1, replacing earlier versions but functionally identical, except that a number of bugs have been fixed and more flexibility in working with non-standard CP/M implementations has been provided. See FRONT51.DOC for more details. Please be sure to mention which version of FRONT you are usin FRONTSUB.DOC (c) 1986 by Claude Ostyn Supplement to FRONT51.DOC CONTENTS: 1. SPECIAL INSTRUCTIONS FOR THE USE OF FRONT WITH REPEAT OPTIONS 2 OR 3 2. HOW FRONT REPEAT OPTIONS 2 OR 3 WORK ----- 1. SPECIAL INSTRUCTIONS FOR FRONT WITH REPEAT OPTIONS 2 OR 3 If you select option 2 or 3 to make FRONT run again automatically after executing a command, you will have to follow these simple rules. If something goes awry, look up these rules and you may find out that you did something that was in contradiction with them. Don't panic! Nothing very wrong can happen. - FRONT.COM (under any name you chose during installation) must be on the disk in drive A. SUBMIT.COM is NOT required. - The disk in drive A must not be write-protected; if it is write-protected or full, you will get an error message. If you get an error message after you see "EXECUTING (your command)" - Don't panic. It's not as serious as it looks. Under CP/M 2.2, you may get a "Bad Sector" error, but there is no bad sector. It only means that Bdos was not able to write something on the disk and used its catch-all message. - Press RETURN (or "i" if using CP/M Plus). - In the unlikely event that, after you press RETURN, you get a another "Bad Sector" message, then you may begin to panic: there may indeed be something wrong with your disk. - You will see a message saying "Disk full or R/O: Unable to proceed". - FRONT will now exit to CP/M without executing your command. Usually, this error happens beacause the disk in drive A (with option 2) or in the current drive (with option 3) has a write-protection sticker or is full. Front needs to write one file of minimum size (1K to 8K, depending on your system) if working within the same user area, and two files if working within different user areas. - If you want to return to FRONT after changing the disk in drive A (for instance if you were using NSWEEP), put the disk which was originally in drive A back into drive A. Do this BEFORE you exit the called program. If the original disk is not in drive A, FRONT will simply not run again automatically, but if you later put that original disk back in drive A, FRONT will try to run again at the first opportunity. - If you use .SUB files with SUBMIT.COM, the last command in the .SUB file should be A:FRONT (or the name you gave FRONT during installation). This is not necessary if you use EX14.COM to run your .SUB file. - If you do NOT want to return to FRONT, you can interrupt the execution of the $$$.SUB by just pressing the space bar. - If you want to look at the screen before returning to FRONT at the end of your program, type ^S (Control-S) to pause. Type ^S again to continue. Do NOT press any other key unless you do not want to run FRONT again. 2. HOW FRONT REPEAT OPTIONS 2 AND 3 WORK At every warm boot, the CCP looks for a file named $$$.SUB on drive A, executes the command contained in the last record in that file and then deletes that record from the file. The next time CCP looks at the file, if it finds it empty (no more commands to execute) it just erases it. When FRONT executes the command you selected from the menu, it first tries to create such a $$$.SUB file containing the name under which FRONT was saved by FRNSTL46 (the name might be FRONT, FRONT46, MENU, or whatever). This file also contains the command USER xx, where xx is the current user area, to ensure that CP/M will return to the same user area you were looking at with FRONT. The $$$.SUB file is created on drive A in user 0 under CP/M Plus and on drive A in the current user under CP/M 2.2. It is also set to SYS, so it does not show on a normal directory but can be found and executed by CP/M Plus. When the called program returns to CP/M, the CCP finds the $$$.SUB file, returns to the original user area, reloads FRONT and erases the .SUB file. Note that the file SUBMIT.COM is not required anywhere at any time for this process. If you use SUBMIT.COM to run another .SUB file from the menu, FRONT does not create a $$$.SUB file since the first thing SUBMIT would do would be to erase it when it creates its own $$$.SUB. For this reason, the last command(s) in a .SUB file to be used with the standard SUBMIT.COM should be A:FRONT (or whatever name under which FRONT exists), possibly preceded by a command to return to the FRONT user area. If your CCP has been replaced by a recent version of ZCPR which requires that you select auto-repeat option 3, read "current drive" instead of "drive A" in the paragraphs above. Special note for SUBMIT file writers: FRONT assumes the current logged drive/user is where you want to read the menu from (unless otherwise installed). However, it accepts a user number as an argument. The number MUST be two digits. You will see that feature at work when the $$$.SUB is executing; it allows FRONT to return to the same drive/user from wich a command was selected. Examples (assuming ZCPR with user area shown in system prompt): A9>FRONT 01 will list commands from drive A, user 1 A9>FRONT 1 will list commands from drive A, user area 9 (only one digit in user parameter--illegal) 3/30/86 FRONT - (C) 1986 by Claude Ostyn - Version 5.1 All rights reservedFRONT may be copied freely, but may not be sold by anyone without written permission. See FRONT51.DOC. Claude Ostyn P.O. Box 2035 Sitka, Alaska 99835 USA4=S TRE(l)m())(ÅêåOsborne 1!@P@x*.~>P2ì:=*.`#~A}֠#~U:++~ +~¶p2:$G>2OsbornCOMSUBBASCMDXQTINTA:SUBMITA:MBASICA:DBASEA:SC2A:CRUN2A:XXXXXXXXA:XXXXXXXXA:XXXXXXXXHTS???????????-??????????$A:AUTOST ~G #°y*.|g"~!9"|*~!{; 2*~.~: ~͹ 2ͱ 2Z!Hk!k!~L#~ L#~0L1L!6!P L_:__] :_ͬ ͹ 2_] ͝e !C">2b :ž7 e ^%D i:|7 e  W :2\7+iʴ:    ʴʥe wʥʥ!k! ~O#y2?!6#6ͧ%͒!k:o%G.xV ʥ YG̓:ĥ͒!Qk]`:0:+ :$c*~.~#!N *~ o6#|w:O*|*~!~/!kP%!6#6 ͧt%:}_%!|%:{_%!z%:y_%!x%,GX/!}!{!yFRONT options: [] sort menu (now ) [] show file types (now ) [] show hidden files (now ) [X] exit to CP/M [ESC] return to FRONT ~ %OFFON !kn%,_YC7 :i:¥i|%!Qk]c:_ͬ :_] : :*|͞2y2ʐͤ ʤͥ:  ʤ ; !y*~G # õ>  :A>: *###~ # !q!Fx6#H~6# !Nyw}o6 #xO͞>2 >2,   : ʒ ʪ  G?̷+; =; 77:ʟE7:27:!ʽ727!:7!G:7#7:!7b7!| !z !x>2~ ww͇ !%4 :1 > 2 >!q#: Gw #> r !6#:wͧ͒!k!^,Gʵ ʵ  GyR x R R #w _y2 R yO6 2S% R >2 ͘222!C":2!F*###ͫ  :2  Ͳ:<2!5 :2y2͇ %!5ͧ͒  !H͘!\: r* M  :0 ͬ M :_ͬ  ͇ %*%%  %, >~@2\#]#~. .  e!͇ %! ##~ȷ{ #GAT _T ] < ] < !#~ʔ #ʂ  x #~#ʚ 0ʳ ʚ  Ú _ ͬ >+>:0 !\6?M ͉~  \:<! M ͉#% H%!$#~ , _#  ~ L .~_#@ \\: ˜ :z Kͤ |=͹ 2!~Ow-z *ô   }ͱ 2O:2!6#6ͧ͒W%͹ A_ P%͘: ͱ 3Z!C"͹ :O Ͳ * !k!6#6ͧ͘%çe ͇ ^%͘!6#6ͧ͘:GRP%y !6#:wͧ͘RP%› !~ʶ k :O h:2ç:G:-[ *~ =2#~2ͧ  2*#H :z2*~2#~2:-[-!5ͧ:̆H:-[H y#~_ #N:ʋ:ʋ!͕͘.~ _#:ʢ:-[¥ ͌!k::!!k:!:!k:!! kG:Oxyx d0x 1 _~EI[[]c_#)ESCA͆A͌A~ʁG#~_u!,k!3k!:k!Ak!C":GͲª*"!~2:2>2:G!N G!~!~w :w4!46 !:74!:2:2>2+:G!~Vw\:w#5!5:2!:2*:w#:w!O ͉"  y!͕* ͫ¡> y2*##w#*# *:x ~怷>:2423:323G:426>25:522:2G:321Z ͫH̀:3G:222=H:5<25G:6:2!C͕###"7:1!C͕###*7+9  !9 $USER 00$ 00:2"*###\:<y!<͕"e!hPr\<\<\e ͇ !w#6ͧ`%!\ >2ͧ!~ a S d^dU6.~_:̉# y9y}͇ D%,7  W   ==Ö!r!r!C":~22o2!,~6#6[!36#6]>2:42<2:z>2::-[>2>> O2:!<<'x2/J/2 ! w:sGʇ~!u! >w#w#wͿq:u! #w:sʇͿv!u:sG ͫʨ : !y͕> > > >:tG xp#6+ #~^#6~# x~G# x00:0> 7:_z0Wa{_:b!k:O  iw#r*##~2ɯ2$:!͕Cͫ>2$,Hn:$!:!_ͬ ́ͼR:_ͬ ́ͼ́ͼRCͼ:0:ͼ!Qk]`:́:3!#~56 #r#s#r:[! :3!r#s#r!D:Aw#6:#r::ʑ:<<ʦ:<!Gr:<>$:R:<:! 6::0-͘:0 %ͧ%%P%ͬ $$$ SUBLabel:  Drive Use [ARROW KEYS] to select a command, [RETURN] to run it, [SPACE] to enter arguments before executing, [+] to change logged drive/user or [] for other options Enter optional arguments then press [RETURN], or enter [] then [RETURN] to return to menu No executable file found! Select new disk or drive/user, or enter  to exit FRONT. Enter drive and/or user number: Executing command: .Cannot find .COM required to execute [] Press [] to return to menu. Press any key to continue. Peeking into Exit (Y/N)? Returning to CP/M Hit RETURN if disk error: Press i if disk error:  Disk full or R/O: Unable to proceed with AFRINSTAL - installation program for FRONT.COM version 5.1 Copyright (c) 1986 Claude Ostyn This program will automatically modify FRONT.COM to fit your needs. All changes are reversible by running FRINSTAL again. (Programs will not run correctly if the copyright notice has been altered) A. Computer or terminal installation B. Installation of file types to be listed/executed C. Functional features & system installation S. Save changes ? More information ESC Exit program without saving Press the key of your choice FRONT51 COMFRONT COM*|g+"Y-!-*- Enter name of file to install, or just for <2'@͋--:FRONT51.COM or ^C to exit FRINSTAL: g.*Y!'%*.*- Maybe it exists under the name FRONT.COM, AUTOST.COM or AUTOEXEC.COM. You may have to specify another drive. Y<\ > u!e6C#6O#6M.!.A~GY!0A~+:°~ͷ-@2\##]+#~ͷ-. ¶e#~ͷ--:.A:SC - File found: ͵+: P(:4P1:- is not a matching version YY--* File name used in this installation: ͵+- * Terminal/computer: 1- * File types listed/executed: 9͟-* ^&L-! -!1-:.-again- i-ͷ-*AʰBgC Sʷ?J/J PRESS ANY KEY TO CONTINUE OR "M" TO RETURN TO MENU Y--WHAT IS FRINSTAL.COM? This program is used to install FRONT.COM (version 5.1). FRONT and FRINSTAL are copyrighted programs which may be distributed and copied by CP/M users for personal use. FRONT and FRINSTAL may not be sold or included in a package for sale under any name without written permission of the author. The copyright notices may not be altered. A lot of work went into this program package. If it is useful to you, a contribution ($15 or more) will be appreciated as an encouragement to further development and general morale booster. Claude Ostyn P.O. Box 2035 Sitka, Alaska 99835 U.S.A. Press any key for additional information on the installation procedure, or M to return to the menu. i-ͷ-M:Y--COMPUTER/TERMINAL INSTALLATION Terminal installation is necessary so FRONT can position the cursor on your screen and turn highlighting on and off if it is available. At the terminal menu, just select the letter corresponding to your terminal or computer. This version of FRONT.COM supports some ANSI terminal video attributes. If your terminal is not on the menu or if the installation does not work properly, please see the file FRNT41PT.ASM or notify Claude Ostyn, Box 2035, Sitka, AK 99835. Note that if FRONT cannot recognize arrow keys on your terminal you can use ^H,^J,^K,^L instead. !-i-ͷ-M:Y--FILE NAMES INSTALLATION File names installation allows you to determine which types of files will be displayed on the menu. FRONT will either show .COM files only, or show .COM files as well as up to 8 other types such as .SUB, .BAS, .CMD, .INT or types of your choice. You will also be able to change the name of the .COM file required to execute automatically each one of the file types above (such as MBASIC.COM, CRUN2.COM, SUBMIT.COM, etc.). !-i-ͷ-M:Y--SPECIAL FEATURES When different types of files are to be shown on the menu, it may be useful to know what they are. You will thus be able to set a switch in FRONT so that file types will be shown as well as the names, or set it to show the file names only. (the .COM file type is never shown). You will also have to decide whether you want the menu sorted alphabetically, or to keep it in the same order as in the disk directory !-i-ͷ-M:Y--More special features... Special features installation will allow you to determine whether FRONT should always default to a specific drive and whether it should show a disk label if it finds one in the directory. Other features which you may modify are a delay before the selected command is actually executed (to give you a chance to stop it). You may also need to choose the method used to make FRONT run again automatically after a command has been executed. You need this choice if you have an "improved" (in other words, non-standard) version of CP/M. !-i-ͷ-M:Y--SAVING The new FRONT.COM file will be saved under a name of your choice. You may change disks without hitting ^C, (do NOT hit ^C unless you want to exit FRNSTL51), and you will be returned to the main menu after each save. This makes it easy to copy your installed FRONT.COM onto as many disks as you like under as many names as you like This is the last of the help screens. Please be sure to read FRONT51.DOC. PRESS ANY KEY i-:Y---Put destination disk in any drive and enter file name under which the installed FRONT should be saved, or just press for ͵+-!\$͚-gl!\$͚--Saving ͵+!]R͚-*:o read FRONT51.DOC. PRESS ANY KEY Y--TERMINAL INSTALLATION Now: 1!]/".>A2.2.-*.~2!.~4͋->.͋-> ͋-*.#-0".!.~<*6>|͋-> ͋-6-- No other terminals are supported by this version of FRINSTAL. Please refer to FRONT.DOC for patch information. -Select by letter, or X to exit to main menu i-ͷ-GX::0&Ax!.xA!]/0=".%P͚-ð>2R!.:rQA!fQ --No terminal/computer selected yetY--Current selection will be shown between parentheses. Press RETURN or ENTER to leave unchanged or ESC to return to main menu- FRONT can list and execute files of up to 8 different types in addition to .COM files (and .CMD files on the DEC Rainbow). The file types now selected are: 9-͟- Change? i-6_Y^(m(3:R!.w- List/Execute .COM files: ,3 :.!Rw>Cw#>Ow#>Mw!R".! R".>2.-- Special type :.1͋-- of 8 = *.~\-d-none- Change? i- ͷ-Y^(m("*.~"*.".*. ".:.<2."6:.=2.*.+++".*. +"."*.S)!N.-*.-!o.-*.-- Change? i-_Y^(m(ʿ(}(:!R~h- -- -- executed directly -COM - not listed/executed except with types below !R".! R".*.~y-y1͋-> ͋--- -- using *. --.COM G> ͋-*.".*. ". y­-Y-- SPECIAL FEATURES Press RETURN or ENTER to leave unchanged, or ESC to return to main menu.L-- Display file type with names on menu: !zR,6 ʄ- Sort menu alphabetically: !|R,6 L-- FRONT can automatically log to a specific drive every time it is started, or it can stay with the current drive (this is the normal setting) Should FRONT log to a specific drive instead of the current drive at the time it is invoked: :R!.w,'% ʄ:.`- Which drive (A..P)? :R9@͋->͋-i-ͷ- dG@992Rx͋-d2RL-- Many CP/M users identify their disks with a "dummy" file name beginning with a "-" character (such as -WORKDSK.005 or -LIB/UTL.048). CP/M 3.x uses a special directory label. If such a file or label is found on the disk, do you want FRONT to display it above the menu? !R,'%L-- There can be a delay between the time you select a command and the time FRONT actually executes it. This allows you to press ESC and cancel the command. The actual delay time will vary with different machines. You may have to experiment to get the delay value you want... The allowable range for the delay value is 0 (no delay) to 99 (decimal values). The delay setting is now: :RGd+x->c͞(- ...Change ? i-'%_Ym(d ^NB^(( -- Enter new value for delay: __ >2-A.- !.A~g#~͌(g0G G#~͌(g02R- New delay =  -No change: delay = :R͞( 4545x L-- Depending on your CP/M implementation, one of these methods must be used to run FRONT again after executing a command. See FRONT51.DOC for more information on these options: 0. No special auto-repeat utility 1. Standard Osborne 1 implementation. You must save installed FRONT as "AUTOST.COM" 2. Standard CP/M implementation: Auto-repeat of FRONT by the standard CCP SUBMIT handler (works with most systems). Your installed version of FRONT must be on drive A: at runtime, but SUBMIT.COM is not required. 3. Same as 2, but for newer versions of ZCPR like the one supplied with WestWind hard disks. - Now: :R0͋-- Change? i-'%_Ym(# "N"^(M#- Press number for your choice (0-3): i-G0-#x4-#x͋-02R*%û":R*%L-- (In case of doubt, you might try to answer "Yes" to the questions below. You can always run FRNSTL again and change this option back to "No" if FRONT hangs instead of executing commands). Is your version of CP/M a truly standard version? !R,- Do you use ZCMD or a late version of ZCPR? (In other words, do you use something like B6: instead of USER 6 to change user area? If this does not make any sense to you, just say no) !R,:- Should FRONT display a "disk error" message that tells the user what to do if FRONT fails to create its temporary $$$.SUB file it because the disk in drive A is write-protected? (In case of doubt, answer "Yes" if your drive A is a floppy drive, or "No" if your drive A is a hard disk) !R,U#-Functional settings: Standard CP/M: :R^(m(- Show file types in menu: :zR^(m(- Sorted menu: :|R^(m(- Default to drive: :R'@͋-('-No selection- Show disk label: :R^(m(- Execution delay: :R͞(- FRONT auto-repeat method: :Rµ'-None installed'-1 - Osborne 1 AUTOST.COM(-2 - Standard CP/M "SUBMIT" utilityF(-3 - Special ZCPR or ZCMD:R-, error trap message ON-Custom installation-No-Yes :x(0( (:>ͯ(z0͋-{0Ë- ҳ( _-- New name (must include drive): _:________.!.A~%) (!0A~:(*.!/A ͧ-- Unchanged: *.-- New type (enter exactly 3 characters and use spaces to pad if necessary), or press only for no entry: ___.!.A~)S)*.!/Aͧ-*.w#w#w- Bye... !\"6#*\ Ú-!P".\]*- Can not find ͵+->ɯ2.*.\ʂ*ʲ*,W*:.<2.*.".:=a*--OUT OF MEMORYW*\-,!P".:.2. 2|!"h"j\0+- OK to overwrite existing ͵++.(+- CANCELLED î+\\E+6,>î+*.*.".\m+X,>î+:.=2.E+,\:.2.>2.> ͋-͵+- saved OK -,:\+@͋->:͋-+2\+!]~+ +͋-#+!e~ ,>.͋-!e~͋-# ,--Permanent read error --Cannot open for write ,--Permanent write error! \-Disk may be full; try another disk (Press any key after reading this message) i-.:/A_@,,ɯ".~-!x. -!.-*.i-ͷ- Y--6!.->YN<-6!.- -!.-*.~->=O]--> ͋-]-> Ë-l-2.㯆#͋--_~# x›-~ͷ-# x¨-a--_-~-͋-#-x-> ͋-> Ë-~.$.͋-#-!.A6+6P !.A^ #6 .- (Y/N)?: i--ͷ-YN+. .COM file used to run the files: (YES) ?(NO) ?==> YES==> NO   Change # x-P= no term sel.Osborne 1 $4=S TRE(l)m())(ÅêåOsborne 1!@P@x*.~>P2ì:=*.`#~A}֠#~U:++~ +~¶p2:$G>2Osborne 1 with Nuevo 80 col. board $P= TRE(l)m())(êåOsborne 1-80!@P@x*.~>P2ì:=*.`#~A}֠#~U:++~ +~¶p2:$G>2Morrow or Liberty $P= TRE()())(Morrow`#~A}֠#~U:++~ +~¶p2:$G>2Morrow or Liberty $POlder Kaypro II $P= REOlder Kaypro¶p2:$G>2Morrow or Liberty $POlder Kaypro II $PNewer Kaypros, using inverse video $P= REB0C1C0B1B0C0C0B1C0C1Newer Kaypro $POlder Kaypro II  $PNewer Kaypros, using inverse video $PNewer Kaypros, using highlighting $P= REC1B0B1C0C1C1B1B1B1C1C3Newer Kaypro $PNewer Kaypros, using inverse video $PNewer Kaypros, using highlighting $PADM-3A $P= T)()()(ADM-3A nverse video $PNewer Kaypros, using highlighting $PADM-3A $PZenith $PEY KMLpqpqqq Zenith ?t?x?v?righlighting $PADM-3A $PZenith $PERS Model II/16 w/P&T ADM emulation  $P= T)()((( ÅR-S II/16 PT@ $PZenith $PERS Model II/16 w/P&T ADM emulation $PApple CP/M or Soroc $P*= T()()'*(Apple/Soroc  $PERS Model II/16 w/P&T ADM emulation $PApple CP/M or Soroc $P*ANSI terminal (CP/M 2.2 or CP/M +) $P[;HANSI DM emulation $PApple CP/M or Soroc $P*ANSI terminal (CP/M 2.2 or CP/M +) $PTelevideo, QX10, etc... $P= TREjkjkkkTelevideo  $P*ANSI terminal (CP/M 2.2 or CP/M +) $PTelevideo, QX10, etc... $PDEC VT52 $PHJY KpqDEC VT52 txvr2 or CP/M +) $PTelevideo, QX10, etc... $PDEC VT52 $PHJXXXXX SPARE1 XXXXXXXXXXXXXXXXXXXX$P*= T)()(((xxxxxxxxxxxx. $PDEC VT52 $PHJXXXXX SPARE1 XXXXXXXXXXXXXXXXXXXX$P*XXXXXX SPARE2 XXXXXXXXXXXXXXXXXXXX$P*= T)()(((xxxxxxxxxxxx ;FRNT51PT.ASM ; PATCH INFORMATION AND OVERLAY FOR FRONT v. 5.1 ; (c) 1986 Claude Ostyn 3/30/86 ESC EQU 27 ORG 01F4H ;Patch area begins here ;Terminal patch area - ; many labels have same meaning as in WordStar(TM) HITE: DB 24 ; screen height 01F4H WID: DB 80 ; screen width (52 to 104) 01F5H CLRSCR: ; string to erase screen DB 1 ; number of bytes 01F6H DB 1AH,0,0,0,0,0,0,0 ; string CLEAD1: DB 2 ; lead-in string for cursor control 01FFH DB ESC,'=' ; DB 0,0,0,0,0,0 CLEAD2: DB 0 ; string sent between row and column 0208H DB 0,0,0,0 ; CTRAIL: DB 0 ; string sent after cursor control 020DH DB 0,0,0,0 ; CB4LFG: DB 0 ; non-zero if column sent before row 0212H LINOFF: DB 20H ; row offset 0213H COLOFF: DB 20H ; column offset 0214H ASCUR: DB 0 ; 0 = send binary cursor position value 0215H ; 2 = send 2 ASCII digits ; 3 = send 3 ASCII digits ERAEOL: DB 02 ; erase from cursor to end of line 0216H DB ESC,'T' ; DB 0,0,0,0 ; LINDEL: DB 02 ; delete current line 021DH DB ESC,'R' ; DB 0,0,0,0 ; LININS: DB 02 ; insert a line 0224H DB ESC,'E' ; DB 0,0,0,0 ; MACHFL: DB 0 ; 1 if Osborne 1 only 022BH ; 0 for all others  ; Video enhancements IVON: DB 01 ; inverse video ON (for menu selections) 022CH DB '[',0,0 ; must be 01,'[' if not available DB 0,0,0 IVOFF: DB 01 ; inverse video OFF 0233H DB ']',0,0 ; must be 01,']' if not available DB 0,0,0 HIVON: DB 0 ; highlight or underline ON (drive) 023AH DB 0,0,0 ; - if not available set to 0 DB 0,0,0 HIVOFF: DB 0 ; highlight or underline OFF 0241H DB 0,0,0 DB 0,0,0 TRMINI: DB 0 ; string sent to terminal at beginning 0248H DB 0,0,0,0 ; of program DB 0,0,0,0 TRMUNI: DB 0 ; sent to terminal before exit 0251H DB 0,0,0,0 DB  0,0,0,0 ; The following are optional jumps or dummy subroutines which may ; be modified by FRNSTL terminal installation. Use caution! INISUB: RET ! NOP ! NOP ; optional jump to initialization 025AH ; subroutine called every time FRONT is ; started (routine be put at morpat) UNISUB: RET ! NOP ! NOP ; jump to de-initialization 025DH ; routine (called every time FRONT ends) EXESUB: RET ! NOP ! NOP ; jump to special routine called if 0260H ; executing a command ESCSUB: RET ! NOP ! NOP ; jump to special routine called if 0263H ; ESCaping to to CP/M ; Terminal name (12 bytes) - used by FRINSTAL only TRMNAM: DB 0,0,0,0,0,0,0,0,0,0,0,0 ; 0266H INSTFLG: DB 1 ; installation flag (if not zero, FRONT 0272H ; has not been installed yet) ; Arrow key definition (the normal ^H,^J,^K,^L will also work whatever ; definitions are installed below) ; (as shown, compatible with WordStar cursor commands) ARRWKL: DB 1 ; length of string sent by terminal 0273H ; when arrow key is pressed (1..4) ESCDELY: DB 5 ; (0..255) 0274H ; length of the delay loop to discriminate ; between lead-in character alone and lead- ; in character as part of the string sent ; by an arrow key (adjust according to the ; time between each character and to cpu  ; clock speed) ; 4 bytes each ARROWL: DB 'S'-40h,0,0,0 ; left arrow key code 0275H ARROWU: DB 'E'-40h,0,0,0 ; up arrow 0279H ARROWR: DB 'D'-40h,0,0,0 ; right arrow 027DH ARROWD: DB 'X'-40h,0,0,0 ; down arrow 0281H ;====== ADDITIONAL CUSTOM PATCH AREA ====== MORPAT: DS 80H ; 128 bytes available 0286H ; note: FRNSTL may overwrite  ; part of this area when installing ; for some machines ;==== FUNCTIONAL PATCH AREA ==== ORG MORPAT + 80H ;file search masks TYPECOM: DB 'COM' ; replace with 0,0,0 if you do not want 0305H ; to list COM files ; file type table ; up to 8 file types to be listed in menu can be defined here ; pad with zeros for unused types  TYPE1: DB 'SUB' ; 0308H TYPE2: DB 'BAS' ; 030BH TYPE3: DB 'CMD' ; 030EH TYPE4: DB 'XQT' ; 0311H TYPE5: DB 'INT' ; 0314H TYPE6: DB 0,0,0 ; 0317H TYPE7: DB 0,0,0 ; 031AH TYPE8: DB 0,0,0 ; 031DH ; The next table contains the name of SUBMIT.COM or other program ; required to execute files of each of the types defined above. ; Must be followed by at least one zero, and include drive designator. ; (examples: 'A:SUBMIT',0,0,0 or 'A:EX14',0). ; Each entry must be exactly 11 bytes long. TYP1COM: DB 'A:SUBMIT',0,0 ,0 ; 0320H TYP2COM: DB 'A:MBASIC',0,0 ,0 ; 032BH TYP3COM: DB 'A:DBASE',0,0,0 ,0 ; 0336H TYP4COM: DB 'A:SC2' ,0,0,0,0,0 ,0 ; 0341H TYP5COM: DB 'A:CRUN2',0,0,0 ,0 ; 034CH TYP6COM: DB 'A:XXXXXXXX' ,0 ; 0357H TYP7COM: DB 'A:XXXXXXXX' ,0 ; 0362H TYP8COM: DB 'A:XXXXXXXX' ,0 ; 036DH LSTSYS: DB 0 ; non-zero to list SYS files 0378H LISTOG: DB 'H' ; char used to toggle SYS file display 0379H SHWTYP: DB 0 ; if non-zero and command not 037AH ; .com, type will be shown SHWTOG: DB 'T' ; char used to toggle type display 037BH SORTED DB 1 ; if non-zero, menu sorted alphabetically 037CH SORTOG DB 'S' ; character used to toggle sorted menu 037DH ESCCHAR DB ESC ; character used to call special options 037EH ; wildcard name for all searches except ID WLDNM DB '???????????' ; 037FH IDFLAG DB 1 ; if not zero, show disk ID on menu 038AH IDMASK DB '-??????????' ; wildcard for disk ID dummy file 038BH CROWDED DB 0 ; if not zero, packed display 0396H ; if zero, more space between menu items DFLTDRV DB 0 ; drive to select when starting FRONT 0397H ; 0 = 'current' default drive ; 1..16 decimal = specific drive A..P DFLTUSR DB 0 ; startup user number (0-16 decimal) 0398H ; used only if DFLTDRV non-zero STDBIOS DB 0 ; 1 = standard BIOS calls 0399H ; may be used for error trapping ; and chaining to executed program is done ; by writing command into CCP command buffer ; 0 = no BIOS calls, and ; chaining is through $$$.SUB file ; (set to zero if FRONT bombs when changing ; drive or attempting to execute a command) DELAY1 DB 0 ; time between display of selected command 039AH ; and actual execution. ; 1 = approx. 1/10 second with 4MHz clock ; (if long enough, will allow user ; to cancel execution by hitting ESC)  SUBRPT DB 2 ; 0 = no repeat 039BH ; 1 = allow Osborne 1 repeat (FRONT must ; be renamed AUTOST.COM for this to work) ; A special patch must be installed in MORPAT ; 2 = create a $$$.SUB file on drive A so ; CCP will automatically reload FRONT ; 3 = create a $$$.SUB file on default drive ; so ZCPR can reload FRONT SUBMSFL DB 1 ; if non-zero and SUBRPT > 1, print warning 039CH ; message in case disk is write-protected ZCMDFL DB 0 ; non-zero if using ZCMD (change user areas 039DH ; with the >Dn: command rather than the ; standard >USER n command) ; command installed into $$$.SUB to make it repeat FRONT ; (this is the name under which FRONT is installed, and it is  ; patched automatically by FRNSTL when saving FRONT) ; no more than 10 characters in command after initial "$" ; ; note: FRNSTL always saves the name with A: for the drive; ; if you want FRONT to reside on another drive, patch manually SUBPFNAM DB '$A:FRONT51',0,0,0 ; 039EH ;---- END OF PATCH AREA ----- END warning 039CH ; message in case disk is write-protected ZCMDFL DB 0 ; non-zero if using ZCMD (change user areas 039DH ; with the >Dn: command rather than the ; standard >USER n command) ; command installed into $$$.SUB to make it repeat FRONT ; (this is the name under which FRONT is installed, and it is  ͫCopyright (C) 1985 BORLAND IncBKaypro, no hiliteeedP= EE RC1B1~7#~= oͦkԄ!!"~#(}:$= +*!5!*!!:(2!5:(>2!!!:O::O:!*! !45(! +/ 0y0( d!k5!{5__o&  :(͠|(  *"x2y( >28!"9!! og2"">~22 9/4*9 Co&ͦͣ} [ (!e{ͦA8Q0G: x@!\w# (͂ ?(*( .( w^. ^!h6# (?( *( ͂( w#>?> w#ͦ 8 !ɿ .,;:=?*[]<>{}a{ |ʹ}ͽƐ'@'7||}>2ͯ*Bڨ  "og"2>2! ""*B"[Ru*"^#V#^#V#N#FO/o&9O/o&9!9(> (G!9 w#Eͺw}8' RB0 >' RqRR!+ Ͱ R!+ Ͱ r!+ Ͱ r!+ Ͱ r!# Ͱ r!+ Ͱ T]KB!z> S>))0 = | |̀̀DMgo>jB0 7?= H͒<z5a)a<z {0Gɯgo||~}||/g}/o#}o&K[xAJSJDM!b"!6J"DM'd } ) W _}8(8J`9{T]=o`9y ) >' ́ ͬ͗ }>' xˆ }} ˸T}ٕ(0D=z ,= ( ͒ 0%{ , 7 ?(8ͬ x ͆ - r 8˸x ͏  ,-xG}r }مM 9r .>#n0͒ { = - nx ͇ ,-(-˸G,-r }ٕ?M 9.> 8ͬ ?= u+-(>͆ 0ͬ ͆ 8 ?x ͇ , 78ƀ8ƀ8ox٨!دoGOW_gɷɷ|لg{ً_zيWyىOxوG|ٔg{ٛ_zٚWyٙOx٘Gxٸyٹzٺ{ٻ|ټx٨ xx( ?}ٽ }ցr <(r 7{ = |٤g{٣_z٢Wy١Ox٠G{ ͬ ́ }x>' ͬ}ƀ/ƀo -́ }0͎-́ ͎,}l˸ 8 4 ͗ x( - 8́ - 8,́ }l8;*!͗ ! >4ͬ͗ ͗ ͬ--- ́ ,,,-xGg?+2n*8t z~,->' x' ͘}. ͆́ , ! >4,͢- o&0%,͗ }gr }؉}颋.:}8c~I$I~L*͢ٷx˸ }0G,<},-(-́ !>I0 ͗͘ o8 ͆ >' m.`1pF,t6|!wS<.z}[|%FXc~ur1}͆ٯx(<˸ 8 !~J 0.O!>s 8 =  n s͗ ͆ .n 0 ͎-́ OT0 j oD,:j !I}袋.}8c~I$I~L! >ͬ͗ I× nn ͗ = ͆ nf^VNF!DLT\I!!53!r1!͒!> x #-= o˸x͆(- }(x>8(z ,z `iÃ!>' |r |̀>)=|(DMbo˸88x(0 8> ̀x(>-{(ay( z(>. ( {>E>+|(|Dg>-|/ 0:p# ~# +>0w#,-  60#}˸}րogM| .(z = ~> x0w#xG%͇ %͇ ZJDM%͇ = _~65+~hìx-Sx9?+{Η@}|z z gZJDM0{ ,7}o˸? #yO!@9i&?  #?w#?/w#?w#!9! E9!!9~(+Fͺ!"9!(#>2*"| >"2:( Ͷ *w*6 !\$![ (ͦ( #:~CONTRMKBDLSTCAUXUSR>2i:*ˮ~0:*:(@q##pZ* :(  ~* < >26"!"""~>2""v>2>"!"ˮ(!~8>~O6~*"w(6(2(-()(6 (8 0 :(* y(~#+ (( 66 #6 #"*: y~o p .##~ͺ(.6w4._~ =*##55= *[R8*~#"= ͣ}== ͯ}͵}*#w+#~+>*~('k!0(ˮ]k!8ˮ!]~-#8~>27kˮw>O$6̃s #r$ͣ6̏ k ( (ˮ qk(ˮ ( k ˮ*O:~ ##~._q4((=ʦ==ʩ=ʬò*:4^q*##~6ͺ>2}*|(̓|( ̓6-#[RM8( G> A~#*'C! !TRUEFALSE!9N#Y~#( G~#> >    "~(kѻ(( !0 (ˮ!!>2Sz:0:*6##ww#w$w#w:  ##N#F*B>2w#w#[s#r> "~ͮ*-w#ww##> ͮÁ""~>2:ZR0 *4#4>2:ZR> *4 #4(> >22*f(/˦:G(##~++ :O x yC!ͺ Q*:G(##~._.͚f<\=<͚*##w ͮ +4 #4x >>2:G("ͮ"*nˮ*0 SZѷR8@* N#F#s#r, 0})jS\*##w+ N#FB ͮr+s>2!T]>)j)0 0= ]R!#]*^#V#N#F#^#V>2Ͱ:0:*6 #-Nw#Fwq#p#6#w#w#w"~Á>">!DM!":*B:!>(>2>">!"2"~ʰ*w#wx(9* :O *-4 #4!*4 #4 *-N#Fq#pV+^Bq#pSZѷR&* s#r$ s#rL <?*L!\  <( !\$>2>2L:>!(* \$\<(!3: [1ð\!(7"~> 2"S"Ns#FrB(Z#\: \<(?*"}K\! !*}#"}! x \* *>) 2""{_!"*nf}(HR0nf" ^VMDnfutqp*s#r*s#r"* uKB!0>' ~#fo{_"*R0RnfR0KqputsrNF( ^VNF^V*SutKqp R*R(~w~wnf ut"6#K*K*!""*NFy(* "*B0Cnf* [R*"*RS[s#r^#V""6#>O"w2x2*"!F"" &y*"*>2"*"!F"""!\*: Nr!~6go(\R*s#r_2x( s x(T]DMx(R0 U(͝O/o&9q# (!>F0#( ~ ( #]( ~ ( (#}(  i&T-a%â}ͦo*!~6o&|:2 2}:__zѯ2*|KB " z ^C User break+=  I/O Run-time error {ʹ, PC=*ͯNot enough memory Program aborted :ʎ'1!d!fr>'n!!o&"*!͒E *}2*&!!͙!:͛!ͪͺ **>>  !!͛ͺD L = save  ͛ͺD E P = print  ͛ͺD S D N = next  ͛ͺD Z X C / = delete  ͛ͺD fire erase Q = finished  ͛ͺD O = copy  (͛ͺ3**>> Epson ON, select(A) or cancel(\A) options <<** ͛ ͛ͺ3C: Compressed print on \C: Compressed off ͛ͺ6D: Double strike on \D: Double strike off ͛ͺ3E: Emphasized print on \E: Emphasized off ͛ͺ5F: Proportional bold on \F: Proportional off ͛ͺ0I: Italics on \I: Italics off ͛ͺ8L: Line spacing 8/inch \L: Line spacing 6/inch ͛ͺ5M: Set left margin \M: Set right margin ͛ͺ7O: Unidirectional print on \O: Unidirectional off ͛ͺ0P: Skip lines at page bottom \P: Cancel skip ͛ͺ9S: Superscript mode on \S: Superscript mode off ͛ͺ1T: Elite font on \T: Pica font on ͛ͺ2U: Underline on \U: Underline off ͛ͺ5V: Most signif bit = 0 \V: Msb = text value ͛ͺ5W: Double width print on \W: Double width off ͛ͺ0X: Down one line \X: Up one line ͛ͺ(Y: Go to Top Of Form  ͛ͺ(Z: CLEAR all commands, reset TOF  ͛ͺ(Q: QUIT, return to main menu  >L#!}2͆ }2Ά*Ά&}2Ά*Ά&!\E<(!}2͆*Ά&!\͒E(.!*Ά&CR¼(*͆&Eʓ(!ͺ!" ͛ͺCompressed off ù(!ͺ!" ͛ͺ Compressed on /DR))*͆&E(!ͺͺHT ͛ͺDoublestrike off &)!ͺͺG ͛ͺDoublestrike on /ER)*͆&Eg)!ͺͺF ͛ͺEmphasized off Í)!ͺͺE ͛ͺ Emphasized on /FR)*͆&E)!ͺͺp ͛ͺProportional off )!ͺͺp ͛ͺProportional on /IRh**͆&E=*!ͺ!"!5" ͛ͺ Italic off e*!ͺ!"!4" ͛ͺ Italic on /LR**͆&Eʹ*!ͺ!"!2" ͛ͺNormal line spacing: 6/inch *!ͺ!"!0" ͛ͺ 8 lines/inch /MRŠ+*͆&EC+͛ͺRight margin, col # -->  !̆M !ͺͺQ*̆&" Ç+͛ͺLeft margin, col # -->  !̆M !ͺͺl*̆&" /OR,*͆&E+!ͺͺU!" ͛ͺUnidirectional print off ,!ͺͺU!" ͛ͺUnidirectional print on /PRŸ,*͆&EO,!ͺͺO ͛ͺSkip cancelled Ü,͛ͺ Skip between pages, # lines -->  !̆M !ͺͺN*̆&" /SR-*͆&E,!ͺͺTH ͛ͺSuperscript off -!ͺͺS!" ͛ͺSuperscript on /TRu-*͆&EL-!ͺͺP ͛ͺ Pica font on r-!ͺͺM ͛ͺ Elite font on /UR-*͆&Eʸ-!ͺͺ-!" ͛ͺ Underline off -!ͺͺ-!" ͛ͺ Underline on /VR[.*͆&E'.!ͺͺ# ͛ͺAccept text chars X.!ͺͺ= ͛ͺMost significant bit = 0 /WR.*͆&Eʧ.!ͺ!"!W"!" ͛ͺDouble width off .!ͺ!"!W"!" ͛ͺDouble width on /XRJ/*͆&E%/!ͺͺj!$" ͛ͺReverse line feed G/!ͺ! " ͛ͺ Line feed /YR{/!ͺ! " ͛ͺ Top of form /ZR«/!ͺͺ@ ͛ͺ Clear all! /QR¸//͛ͺ* Not defined * *Ά&!QE (>͛ͺLComposing new characters: you set the pins which will fire as the 8 vertical ͛ͺFpins of the printhead move to 12 positions across the space containing ͛ͺIyour character. Note the keyboard pattern of the movement, fire, & erase ͛ͺHkeys. These allow you to move within the frame defining your character. ͛ ͛ͺ MOVE UP ͛ͺ ^ ͛ͺ E ͛ͺ& MOVE LEFT <-S D-> MOVE RIGHT ͛ͺ Z X C ͛ͺ / v \ ͛ͺ$ FIRE PIN MOVE ERASE PIN ͛ͺ DOWN ͛ ͛ͺC P = Print char / = delete entire char O = cOpy to frame ͛ͺH N = Next char Q = Quit drawing L = save chars to fiLe ͛ .!͛ͺ8Commands work within a frame -->> Hit any key to proceed }2>͛ͺ P*R*N ͛ͺ% Main Menu v3.5 ͛ ͛ͺ-1. Set overall Epson MX/FX 80 printer options ͛ ͛ͺ&2. Define/edit special print character ͛ ͛ͺ+3. List special characters/change char file ͛ ͛ͺ(4. List print commands and print formats ͛ ͛ͺ5. Print a file ͛ ͛ͺ)6. Check a file for paired print commands ͛ ͛ͺ7. Get the directory for a disk ͛ ͛ͺ 8. Leave PRN .!͛ͺ OPTION ? Nr  >͛ͺDOT COMMANDS IN USE: ͛ ͛ͺ.PA, go to next page ͛ͺ*.OP, omit page numbers, page numbers now= *&!͋ ͛ͺ".PL x, lines of text/page, now x= *&!& ͛ͺ&.PN x, makes x the number of this page ͛ͺ2.PO x, left margin (page offset) x spaces, now x= *&!& ͛ͺ,.FI xxxxxx, insert file xxxxxx at this point ͛ ͛ͺPRINT COMMANDS WORKING: ͛ ͛ͺ.^B..^B = boldface : ^D..^D = double strike ͛ͺ5^H = overprint : ^R..^E = italics | note | ͛ͺ5^V..^V = subscript : ^Q..^E = subscript | same | ͛ͺ5^T..^T = superscript : ^W..^E = superscript | term | ͛ͺ0^S..^S = underline : ^Y..^Y = PRN environment ͛ͺ-^Y..^Y redefines !,@,#,$,%, and graphic names ͛ͺ+! .. ! = italics : @ .. @ = Elite font ͛ͺ:# .. # = compressed : $ .. $ = line spacing 8 lines/inch ͛ͺ'% .. % = graphics spacing, 9 lines/inch .!͛ͺ2PRN writes on this line: press any key to continue }2͛ͺUnmatched print controls in !:!ͪͺ:  ! ]́ET:͛ͺNone :͛ !!@fz:}2*&}2*&! ]OE:*&! E:͛ͺ Unmatched ^*&!@" :͛ͺ Unmatched *&" *&#h:!ͺͺ@ ͛ ͛ͺPress any key to continue.. }2@.!͛ͺ"Directory of disk? --> A,B,D  !D *&}2>͛ *&!@R}2*&}2߅!"!t!*߅&s!! fz;}2!t*&!?s*&#;! !#fz/<}2!t*&!s*&#<}2Ʌ !ʅ*&!}2*&!E!Eʥ<*&͛"ͺ: !ʅ:!ͪ! "*Ʌ&!&ͺk  <͛ͺ> !ʅ:!ͪ! "*Ʌ&!&ͺk  *&!E!E<͛  !""*^#V!E3=*^#V*s#rþ=*^#V:*^#V:͍Ey=*^#V *^#V n&s*!zþ=*^#V:*^#V:Eʫ=*^#V*<þ=*^#V*< " !"*^#V!͒E&>*^#V=*^#V:*^#V n&0<*^#V= " !"*^#V!͒E|>*^#V/>*^#V/>*!z "!"}2!!*&!to&}2!*&! n&!*&!͒}oE@*!! s!!fzL?}2**&!*&! *&n&s*&# ?*! !.s! ! fzʯ?}2**&!!*&! *&n&s*&#g?!!*&! ! n&!!*&! !n& ! !* !,! !h| s* * n&* n&!!n&!!Es*!s#r*!s#r!!<"!}2!!?;ͪ;!}2*&!ͅ>!}2*&!E@!=!/>.!͛ͺPress any key to continue.. }2 !͛!" !F!͛ͺ * error * !͙ "!t""!"v!*fzA"t*v*"v*t#ÿA*v"*t" !h}2s*s&!R! !}2h*h&!!͛ͺ ..........:: *h&!! ͛ͺ ..........:: !!fzB}2i*h&*i&!͛ͺ- - *i&#B h"!Z"e}2g!!fzbC}2\*e*\&+!s!!*\&R͙A"Z*Z*g&͸EWC*g&*ZR}2g*e*\&+!s*\&#BZ" !M}2W}2X}2Y*Y&!R! *X&!}2N*W&!}2M*N&*M& M" !B}2K}2L*K&*L&vzD}2B!*B&͙*B&+C B"!.}2@}2A*@&!R! !! ͛ͺNr *A&!&ͺ = !9*A&+n&" !! fz7E}2/!*A&+)))*/&+n&!0B!!fz,E}2.!0*.&+n&!E!E*@&*/&*.&kC͛!O" *.&#D*/&#ßD." !#}2-!! C!!fzʯE}2#*#&A*-&!R*#&}2$*$&*#&(D*#&#hE #" !!9*u&+n&! EʗF.!͛ͺ"Name this character--> symbol  !9*u&+D!}2!9*u&+n&́! ͑!"͑!&!?͛!A!~͛O}oEsF!}2*&}oEʄFUA*&EE*p&@E.! " !.!͛ͺ-Character to be copied to this frame? Nr  !M!}2*&ELG!*u&+)))!*&+))) !9*u&+! s͸EOGUA*&EʬF " !}2 " "* &!6!EG* &!R!!!*s* &*n&R!* s*n&@E'H.!͛ͺ Sorry, only !6!&ͺ characters allowed. ! " !}2.!͛ͺErase character number *&!&ͺ ? y/n  ́!Y͑!y͑OEH!9*&+! s!! fzH}2!*&+)))*&+!s*&#öH*p&@E.! " !}2!ͺͺL! "!" !! fzyI}2!ͺ!*&+)))*&+n&" *&#:I!9*&+n&͛"  "!ڄ!}2́ !ڄ!ͺ !ͺͺCharacters in !:!ͪ !ͺ !9*&+n&! ͒*&!6͸}oEJ.!!ͺͺNr.*&!&ͺ Code:!9*&+n&"! " *&I!9*&+n&!ڄ ]OEʵJ!ͺͺ * duplicate code *  J!ڄ ]́!9*&+n&͑ !ڄ!ͺ *&!}2I͛ ڄ"K!!}2!"!:p!"  *&}oEʒK.!͛ͺ*No CHAR.DEF; writing empty one to disk... !!!6fzL}2*&EK!9*&+n&}2!*&+))) !"ͤ! L! }2!K !"ͤ! *&#ÝK!}2!"z "!J""!}2!X!:p!X !}2*&}o!:MCHAR.DEF͍}oEʭLK!X  *&E#M!!6fzM}2J!Xͤ!KͶ **J&+*K&s**J&+)))!L *J&#L!Xz &MUAJ"!<"H!}2?!}2>*o&*?&*>&kC }2=*=&ERʂMeR³M*>&!EʩM*>&!R}2>ðM!}2>}QSRMsRM*?&!EM*?&!R}2?M! }2?}QDR NdR:N*?&! E0N*?&!}2?7N!}2?}QXRNNxR|N*>&!ErN*>&!}2>yN!}2>}QZRʐNzRAO!}2!*Hn&+)))*?&+n&!B!*>&+n&!E2O!*Hn&+)))*?&+!*Hn&+)))*?&+n&!!*>&R͙As͛!O" }QCRUOcR P!}2!*Hn&+)))*?&+n&!B!*>&+n&!EO!*Hn&+)))*?&+!*Hn&+)))*?&+n&!!*>&R͙ARs͛! " }QNRPnR‰P.!͛ͺWork on char? Nr  *HM!}2<*<&EvP!p!o*Hn&bGyPUA*<&EP.!}Q/R§P*Hn&0H!}2}QPRʻPpRP͸E*Hn&I}QORPoRPͣF!}2}QLRQlR0Q.!͛ͺWriting chars to disk file K.!}QQRDQqR}Q*&E}Q.!͛ͺWriting edited chars to disk... K*o&*?&*>&kC*=&́!Q͑!q͑OEcM<" !2}2;*&}oE>R!ͺͺ- !*;&fzR}22!ͺ! " *2&#Q!! ]OE>R!ͺͺ-  2" !)}21*&}oES*1&!EʀR!-}21*1&! !! ]O}oER!ͺͺ- !ͺ*1&" *1&͛" !ͺͺ- S!ͺ*1&" *1&͛"  )" !"'*',*'*',*&!EʕS*&}oEuS!ͺͺ  *',! *'5S*&!}2!*'*&}oEqT*&E T*&͸Q!ͺͺ *&!& ͛ ͛ͺ' ** end, page *&!&ͺ ** ͛ !ͺ! "  "!"""!}2!!o&}2*&!}2*&!*&!d}oEʚT*&!ET!}2U!%! ]OE4U!,!n* !ÉU!$! ]OElU!,!@ !ÉU!,! !**+))))))*n&GR!,*&EU!S"!" }2 " !!fz_V}2* ^#V!* s#r!*&* * &+))))))* ^#Vn&s*&#U!!!s!:MPA͍EʍV!S~Z!:MOP͍EʫV!}2~Z!:MPL͍!:MPN͍}o!:MPO͍}o!:MFI͍}oEZZ!}2* ^#V!* s#r* * &+))))))* ^#Vn&́!0!9͛!A!z͛! ͑OEW* * &+))))))* ^#Vn&́!0!9͛OEY* * &+))))))* ^#Vn&́!0!9͛OE=X!*&* * &+))))))* ^#Vn&s* ^#V!* s#r*&!}2âW!!*&!Rs!:!!!:MPL͍*!}oEʖX*}2X!:MPO͍*!}oEX*}2X!:MPN͍*!}oEX!}2*!R}2WZ!:MFI͍E+Z!}2!}2!*&* * &+))))))* ^#Vn&s*&!}2* ^#V!* s#r* * &+))))))* ^#Vn&! E$Y!!* ^#V!Rs!!:o !!}2*&}oE(Z͛ͺ ** ERROR IN .FI FILE NAME ** WZ͛ͺ% ** ERROR IN DOT COMMAND ARGUMENT ** ~Z͛ͺ ** UNDEFINED DOT COMMAND ** * * &+))))))* ^#Vn&! ͒EZ* ^#V!* s#r~Z"!!! ]OE![!@! ]OE[!ͺͺG![!ͺͺE!! ]O}o!@! ]O}o}oE_[!ͺͺH!! ]OEʀ[!ͺͺG"!!! ]OE[!@! ]OE[!ͺͺH[!ͺͺF" !؂"}2"**&+))))))*n&R9\͉[!ͺ!"aR\!! ]OE|\͉[! ]́!͑& !\!@! ]OEʠ\!ͺͺGì\!ͺͺE! ]́!͑ !aRF]!! ]OE]!ͺͺH! ]́!͑& !C]!ͺͺG! ]́!͑ !aRx]Rx] Rx] Rx] R£]**&+))))))*n&GRa R]**&*zTaR]!ͺ!"ZaR]! GRaR^Rš^́!͑!͑! ]3́Eb^͉[!ͺͺS! ]́!͑!͑ !×^!ͺͺTHZ! ]́!͑!͑& !aR_!ͺͺTHZ!ͺͺ5! ]́!͑!͑!͑!͑!͑!!͑& !aR_!! ]OER_!ͺͺ5! ]́!͑!!͑& !|_!ͺͺ4! ]́!͑ !aR_!! ]OE_!ͺͺ-! ]́!͑& !_!ͺͺ-! ]́!͑ !aR`R£`́!͑!͑! ]3́Ek`͉[!ͺͺS! ]́!͑!͑ !à`!ͺͺTHZ! ]́!͑!͑& !aRa!! ]OE`! ]́!͑& !a! ]́!͑ ! ؂"!ʂ"ӂ}2Ղ"ւ*ւ*Ղ&+))))))*ӂ^#Vn&!.*&! }o*ւ*Ղ&+))))))*ӂ^#V!n&! ͒}oEʺa*ւ*Ղ&*ӂUif!! ]O}oEb*ւ*Ղ&+))))))*ӂ^#Vn&GRif*ւ*Ղ&+))))))*ӂ^#Vn&!R®b!!! ]OE{b! ]́!!͑!͑& !!ͺͺ5ëb! ]́!!͑!͑ !!ͺͺ4if@Ric!@! ]OEc! ]́!@͑& !!! ]OE c!ͺͺH!ͺͺPfc! ]́!@͑ !!! ]OEZc!ͺͺG!ͺͺMif#R*d!#! ]OEc! ]́!#͑& !!ͺ!"!@! ]OEc!ͺͺMZ'd! ]́!#͑ !!@! ]OEd!ͺͺP͉[!ͺ!"if$R£d!$! ]OEvd! ]́!$͑& !!ͺͺ2àd! ]́!$͑ !!ͺͺ0if%R(e!%! ]OEd! ]́!%͑& !!ͺͺA! "%e! ]́!%͑ !!ͺͺA!"if*&}oEif!}2ʂ*ʂ&!}2ʂ*ւ*Ղ&+))))))*ӂ^#Vn&!9*ʂ&+n&!9*ʂ&+n&! }o*ʂ&!6}oE=e*ւ*Ղ&+))))))*ӂ^#Vn&!9*ʂ&+n&*ւ*Ղ&+))))))*ӂ^#Vn&! ͒}oE=f*ʂ&Iif*ւ*Ղ&+))))))*ӂ^#Vn&GRʂ"]i!""!"*}o*!͸}oEdg!"*ͩ!D*&!|g}o}2**+))))))**&s*!"*&! *}oEʵf**+))))))!*!Rs*!"Ðf*&Eg!}2!}2*&**&!}oEg*&!}2*&}oEg!:**&+)))))):Ͳ}2|g!"***&}o}oETi**&E(h!}2!"**+))))))!n&}2*&! **+))))))*n&!.͒}oEʞh*&͸Q**+))))))*n&RBh***[i `RBi**! a**+))))))*n&}2*!"**&ETh*!"g"!"Ƃ"Ȃ!"*Ƃ}o*!͸}oELj!"*Ƃͩ!D*&!|g}o}2*Ȃ*+))))))**&s*!"*&! *Ƃ}oEʝi*Ȃ*+))))))!*!Rs*!"xi*&Ej!}2!}2*&**&!}oEj*&!}2*&}oEj!:*Ȃ*&+)))))):Ͳ}2dj!"***&}o}oE}l**&Ek!}2!"*Ȃ*+))))))!n&}2*&! *Ȃ*+))))))*n&!.͒}oEʆk*&͸Q*Ȃ*+))))))*n&RBk*Ȃ**[k `RBk*Ȃ*! a*Ȃ*+))))))*n&}2*!"*&*&}oE\l!!uf!*&}oE/l!}2!i**&E !͎*!:o*!}2כ*כ&Em*&}oEm.!͛ͺ*Start printing at a particular phrase? y/n ́!Y͑!y͑OEm!}2.!͛ͺ The phrase:  !P͎ m.!͛ͺ Checking.. ͛  "MCHAR.DEF!͆l!9!5L͔3 }2v*v&1RgnI#Qr2Rn!}2p/>X!*p&@E.!͛ͺEdit character? Nr  !uM!}2*&En!p!o*u&bG.!!u/MnUA*&EʊnQr3R†q>.!͛ͺ5Read another char file? y/n= use current file at left ́!Y͑!y͑OEʳo.!͛ͺ%CHAR.DEF-like file to read? File  !͎ !9!5L*&Eʆp.!͛ͺSee character number..? Nr  !uM!}2*&Eyp!p!o*u&bG.!͛ͺ&A printed list of all characters? y/n  }2w*w&́!Y͑!y͑OEvp͚I|pUA*&Eʽo!:MCHAR.DEF͠Eʃq.!͛ͺUse !:!ͪͺ instead of CHAR.DEF? y/n ́!Y͑!y͑O}o*&}o}oEʃq*&}oEBq.!͛ͺ <<== CHAR file not found !.!͛ͺReloading CHAR.DEF... MCHAR.DEF!!9!5LQr4R–q5Qr5Rʪq6Rr͆l*v&!6Eq!}2!}2!؛l!!؛rf!؛*&}oEq!S!؛i *v&!6Er9Qr7R,r<;Qr8RQr.!͛ͺExit to system *v&!8EIn *&}oEq!S!؛i!*p&@E.!͛ͺEdit character? Nr  !uM!}2*&En!p!o*u&bG.!!u/MnUA*&EʊnQr3R†q>.!͛ͺ5Read another char file? y/n= use current file at left ́!Y͑!y͑OEʳo.!͛ͺ%CHAR.DEF-like file to read? File  !͎ !9!5L*&Eʆp.!͛ͺSee character number..? Nr  !uM!}2*&Eyp!p!o*u&bG.!͛ͺ&A printed list of all characters? y/n  }2w*w&́!Y͑!y͑OEvp͚I|pUA*&Eʽo!:MCHAR.DEF͠Eʃq.!͛ͺUse !:!ͪͺ instead of CHAR.DEF? y/n ́!Y͑!y͑O}o*&}o} PRN PRN is a major enhancement for WordStar, or for any other word processor which can embed control characters in text files. * PRN allows the user to draw any graphic symbol, or combine such graphics into pictures, and will automatically print these graphics in context when it prints a file. * PRN sends printer control sequences to the Epson printer, allowing full use of its special features. * PRN matches printer control sequences, to detect mistakes in printer control. * PRN prints WordStar document and ASCII (non-document) files, formatting and paging them. TABLE OF CONTENTS Page 2 Description of PRN Facilities 3 PRN Files and Usage 4 The Main Menu and Options 5 Printer Control 6-8 Editing Graphic Characters 9 Surveying Existing Graphics 10 The Print Command Summary 11 Printing and Checking a File 12-13 Composition of Files for PRNting 14-15 Dot Commands 16 Continuous Graphics 17-18 Hardware Requirements, Configuring PRN ----------------------------------------------------------------- (c) Mike Yarus, 1985. PRN is released into the public domain, and may be used freely for any non-commercial purpose. No part of PRN may be sold, or used to enhance the value of other products without the explicit permission of the author. ----------------------------- NOTICE ----------------------------- .pa The Program PRN sets overall printer strategies (Main menu option #1), such as compressed or emphasized print. Used in this way, it allows an Epson printer to be preset for printing any document, under the control of any program. However, PRN also controls the printing of documents (Main menu option #5), and it will divide any ASCII file (a file containing only printable characters), made by any other program, into pages. PRN also responds to the special formatting commands put in a file by WordStar, and is not confused by the unusual characters imbedded in such a file. PRN is more versatile than WordStar however, in that it makes available the full capabilities of the printer; for example, imbedded sections of! text may be in italics!, use a different type #font#, $or have altered line spacing$. More than that, PRN uses the graphic capabilities of the Epson MX/FX80 printer to create any desired set of new symbols. The user draws characters (Main menu option #2) by automating the firing of the printer pins at any of the 96 positions which comprise the paper space available to a single character. PRN records the user's drawing of the new character, and prints it in context during the production of the final document. That is, PRN allows the user to draw a sigma ((), a shin (s), or any other desired graphic (R) and automatically print them at an indicated spot. PRN will define, edit, and employ a complete second alphabet, if desired. PRN does not disturb the text formatting capabilities of WordStar because its signals are inserted by WordStar and masquerade as new "print commands" analogous to the existing ones. PRN can be called, from the no-file menu of WordStar, to print the result. Furthermore, PRN is fast, and will drive an Epson through most text at full speed. Finally, and most unusual, PRN can print continuous graphics under control of signals entered through WordStar. Thus a text can contain intercalated graphs, drawings, and other pictorial content. All graphics are printed in context automatically when PRN sends the file to the Epson, in the configuration specified when the file was written. For printing of precise scientific or technical hieroglyphics, or for expressive purposes in any text, PRN provides full,  convenient use of the custom-printing capabilities of the dot- matrix printer. hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh The Files PRN itself is in the file PRN.COM. PRN will look for its character definitions in CHAR.DEF on the currently logged disk. This manual is PRN.TXT, which should be printed by PRN itself for full intelligibility. Most writers use a dedicated WordStar disk in A: while logged into their dedicated files disk on B: (or another) drive. PRN will look for its character list, CHAR.DEF, on the logged disk. If it isn't there, PRN will make a new, empty CHAR.DEF on the logged disk (eg, B:). This is a useful property, because it suggests that you keep a safe copy, or an alternate set, of your characters in CHAR.DEF on your files disk. PRN's creation of new CHAR.DEF files is also used to keep multiple character lists (see below). CHRTX.COM is a character transfer utility, used for moving existing characters between character files. Use of a RAMDISK is recommended when printing large files, because this avoids the continual grinding of the physical disk during the 30-40 minutes required to print a long manuscript. To get started, type: A>PRN from CP/M or use "R", then PRN from WordStar's main menu. PRN always communicates !via! the message line at the bottom of the screen: CHAR.DEF **>> The file name at the left of the message line is the character file in use. If no alternate file has been selected, it will say CHAR.DEF. .pa The Main Menu ----------------------------------------------------------------- P*R*N Main Menu v3.4 1. Set overall Epson MX/FX 80 printer options  2. Define/edit special print character 3. List special characters/change char file 4. List print commands and print formats 5. Print a file 6. Check a file for paired print commands 7. Get the directory for a disk 8. Leave PRN CHAR.DEF **>> OPTION ? Nr ----------------------------------------------------------------- 1. Overall Options: selection of #1 will present a largely self- explanatory menu for the resetting of the Epson MX/FX 80 printer. The options stay in effect until the printer is turned off, until they are individually reversed by PRN, or until CLEARed by the global reset option (Z) of PRN itself. It is sometimes important to know that the Epson cannot simultaneously execute all possible commands. Underlined superscript italics are possible, if unlikely. But emphasized (bold) printing excludes certain other options. If you need to do something truly baroque, experiment. Note that the Z option also resets TOF (top-of-form), which means that the Epson will mark that position and start pages there subsequently. Unless you wish to move TOF, use Z at the top of a page. TOF is also set on startup, so the TOF may also be moved by turning the Epson off, rolling the paper to place the printhead at TOF, then turning the Epson on again. This discussion of setting of TOF by manipulating the Epson illustrates the philosophy of PRN toward the vertical format of a page. This subject is benignly neglected. The vertical placement of text is easily and accurately done manually. Thus the .mt and the .mb (top and bottom margin) dot commands and all their relatives will not be recognized by PRN. When PRN encounters an unknown dot command, it will send a warning to the screen only, and continue printing. Unless the line spacing is changed within a file by a ^Y$ or ^Y% command (see "special print commands" below), PRN puts 55 lines of text on a page (as does WordStar), with spaces and blank lines as specified by the writer of the file being printed. For a list of print commands which are recognized, use option #4 from the Main Menu. ----------------------------------------------------------------- **>> Epson ON, select(A) or cancel(\A) options <<** C: Compressed print on \C: Compressed off D: Double strike on \D: Double strike off E: Emphasized print on \E: Emphasized off F: Proportional bold on \F: Proportional off I: Italics on \I: Italics off L: Line spacing 8/inch \L: Line spacing 6/inch M: Set left margin \M: Set right margin O: Unidirectional print on \O: Unidirectional off P: Skip lines at page bottom \P: Cancel skip S: Superscript mode on \S: Superscript mode off T: Elite font on \T: Pica font on U: Underline on \U: Underline off V: Most signif bit = 0 \V: Msb = text value W: Double width print on \W: Double width off X: Down one line \X: Up one line Y: Go to Top of Form Z: CLEAR all commands, reset TOF Q: QUIT, return to main menu ----------------- Option #1, Printer Settings ------------------- For simplicity, the printing facility of PRN (Option #5) does not react to the printer settings made under Option #1. Many rococo interactions are possible when print options are set both outside and inside files. A policy which seems to minimize confusion is: Option #1 is used to set the printer for use by other programs, and print commands are sent to PRN only by putting them in the file during composition. However, the user is completely free to pick what is set !via! overall commands from Main Menu Option #1, and what is set within the file. aaaaaaaaaaaa 2. Define/Edit special characters: selection of #2 gives you access to the part of PRN which edits and records your individual graphics. The diagram which comes up first illustrates the commands used in drawing, and is worth a close look. Once you have selected a character to work on (by giving the number of the "frame" which will contain it), you edit a character using a triangle of keys at the left of the standard keyboard. These move the cursor within the frame, and allow you to fire a printer pin, or erase a pin, at the cursor position within a character frame. The "frame" corresponds to the 12 horizontal positions (shown by dots ..........:: at the top) occupied by the printhead as it moves across one character space. The 11th and 12th columns of the character frame are marked :: because they are usually left blank to provide the space between characters. However, if you wish continuous graphics (for example, cursive script), the 11th and 12th columns may be used in the same way as the rest of the frame. .po0 ------------------------------------------------------------------------- Composing new characters: you set the pins which will fire as the 8 vertical pins of the printhead move to 12 positions across the space containing your character. Note the keyboard pattern of the movement, fire, & erase keys. These allow you to move within the frame defining your character. MOVE UP ^ E MOVE LEFT <-S D-> MOVE RIGHT Z X C / v \ FIRE PIN MOVE ERASE PIN DOWN P = Print char / = delete entire char O = cOpy to frame N = Next char Q = Quit drawing L = save chars to fiLe CHAR.DEF **>> Commands work within a frame -->> Hit any key to proceed ----------------------- Option #2, First Diagram ------------------------ .po8 The frame's vertical boundary corresponds to 8 pins of the printhead (shown by 8 dashes - at the sides). Thus you draw a new character by filling in the (12 x 8=) 96 possible positions where a pin may fire during the printing of a character. This process quickly becomes second nature. But because it is not precisely like manual printing, you might like to examine examples already drawn, or the diagrams of standard characters in the back of the Epson manual, to get an idea of the means for creating particular printed effects. Because composition takes place at high magnification, it is sometimes helpful to get up from the computer, walk across the room, and look back at a nascent graphic, which will now be a more realistic size. .pa .po0 ----------------------------------------------------------------------------- ..........:: ..........:: ..........:: ..........:: ..........:: ..........:: - - -OOO O O O - OO - - - - - OOO - OO O - O - - - - - O O - OO - O - OO O OO -O OOOOOO - - OO OO - O OO  - OO - OO - O O O - O O - - O O - O O - OO - OO - O O O - O OO O - - O O O - O O - OO O - O - O O O - O OO O - - OO OO - O OOO -OOO O O O - O - O -OO O - - - O - - OO - OOO - - ..........:: ..........:: ..........:: ..........:: ..........:: ..........:: Nr 1 = a Nr 2 = b Nr 3 = ( Nr 4 = i Nr 5 = F Nr 6 = s L = save E P = print S D N = next Z X C / = delete fire erase Q = finished O = copy CHAR.DEF **>> -------------------- Option #2, Character Editing Screen -------------------- .po8 Besides the keys for composition, other commands are provided for use during graphic composition. These are displayed at the bottom of the preliminary diagram and at the right of the mini- menu which is always in mid-screen during the editing process: .po 30 $# hh Graphic Editing Commands hh L: L saves the current set of characters to the disk file, either CHAR.DEF, or your alternate file. If you do not record them yourself, PRN will automatically record them on exit (editing option Q) if any character has been edited. P: P sends the character you are now editing to the printer so that you can see it on paper. If the program freezes when you ask it to print, check to make sure the printer is ON and ON LINE. If the character is a new, unnamed one, you must name it before it will print. Almost any single key from the keyboard can be a name: 5,F,%,|,a and so on. The character's name will be used in a printed document to order its use. That is --> ^Yi^Y onscreen would indicate a PRN command to print the graphic character whose name is "i" (ctrl-PYictrl- PY was typed while editing a document to indicate a print command to WordStar). Six exceptions to the free use of any printable key as a character name are blank, !, @, #, $, and %. Note that the unusable characters are grouped on the keyboard. These character names will be rejected by PRN because !, @, #, $, and % are used by the program as names for printer functions. The blank or space (the symbol put in a file by the space bar) is the name PRN uses for an empty frame. This leaves about 90 characters usable as names. There is more discussion of these symbols in the section on writing a file to be PRNted, below. N: N allows you to select the Next character to see or edit. When the number of that character is given, the screen display is revised to show that character, and the cursor is moved to its frame. /: / is the symbol for deletion of a character. The deletion key is well-spaced from other editing keys to avoid accidents, and you are asked to reflect on the destruction of an existing character before it is finally snuffed. You can recover a character even after this point. Recall that the characters are actually stored in the disk file CHAR.DEF. Until this is rewritten by the character save command L (qv) or by exit from the character editing section of PRN (option Q) the character still exists. If you RESET the computer (cold boot) without leaving PRN, the character will still be in the disk file. However, this strategy also discards changes in other characters which may have been made in the same session (if not saved with an "L"). Q: Q returns you to the Main Menu when you are satisfied with your editing. Any new symbol may be used immediately in a printed document. O: O is a character construction aid. It will copy another character !in toto! to the frame in which you are now working. Thus you can reconstruct an already defined symbol, taking advantage of work already done without destroying the original. There is one subtlety to the use of the O command. A copied character must be renamed, to distinguish it from the original. But copying a character to its own frame is also allowed. Just give the current frame number when asked which frame to copy to. This allows you to change the name of an existing character without creating a second version of it. Similarly, you can exit from a frame with "N" without giving a new character a name. When you want to use that character, use "O" to copy into itself in order to name it. As the notes just below indicate, unnamed characters are sometimes useful. Like many other things in computing, these options are easier done than said.$# .po 8 FF Some notes on the special characters: a. When printing a document PRN searches the list of special characters in numerical order, looking for user-defined characters. Thus the first graphic character with a given name will always be selected for printing. This can be used to maintain two characters under the same name. When you want to use the one which is later in the list, change the name (see the O edit option, above) of the first one. b. A character frame named blank (space) terminates the list of characters, as far as PRN knows. Characters in use should occupy consecutive frames. To put this property another way, a "caboose" of characters which are usually invisible to PRN during output of a document can be maintained in CHAR.DEF behind a frame named blank. When you want to used the stored graphics, rename the intervening frame with an O (copy) operation, and the stored characters will become accessible. The characters are, of course, always visible onscreen to the user under the Main Menu #2 and #3 options. hhhhhhhhhhhhh 3. List/look at chars: option #3 gets you a look at a set of characters without having to edit. You might wish to check to make sure your characters are still on file, for example. This may be essential if PRN is under heavy use by CP/M adepts. Note that PRN's first action on being called is to read its characters from any file named CHAR.DEF (which holds 54 character definitions in coded, binary form). Because of the abstract method used by PRN to store characters, these files will not be readable or alterable by any other means. It is possible to keep an arbitrary number of characters ready by renaming the current CHAR.DEF (eg, to CHAR.0 using CP/M's REN or the file utility NSWP). Now there is no CHAR.DEF for PRN to find. PRN will react to the absent CHAR.DEF on the logged disk by creating a new, empty CHAR.DEF file. New characters may then be put in this file using the character-editing function of PRN (Main Menu Option #2). ere is also a character-transfer utility, CHRTX, for easy transfer of existing characters to a new CHAR.DEF file. Ask an adept, who will know where CHRTX is. By renaming character files, you may keep as many sets of characters as you need. The file which is named CHAR.DEF when PRN is called will be used by the program. If you put a lot of effort into a custom set of graphics, maintain a backup copy of your CHAR.DEF, CHAR.0, CHAR.1... A highly illuminated text file should probably be stored with its appropriate CHAR file. This is automatic if you log onto a files disk in B: when using PRN from A:, because PRN will either find CHAR.DEF on the logged disk, or create a new, empty one before beginning to work. Option #3 also lets you call up any other character file by name,  and use it instead of CHAR.DEF, if you wish. I suggest that all such files be called CHAR. + a descriptive file extension. Option #3 asks if you want a printed guide to all defined characters in the current CHAR file, whether CHAR.DEF or another which you have selected. If you answer yes (Epson ON), a list of all currently defined codes and their graphics will be printed for reference during the composition of your file. The list can be essential: if someone has edited another graphic and given it the same name as one of yours, this can make your graphic inacessible to PRN. For this reason, any duplicate codes are marked in the printed list. Caveat scriptor. After one chance to change the CHAR file, one screenful of characters and one character reference list, you are returned to the Main Menu. bbbbbbbbbbbbb 4. Commands: This Main Menu option gives a screenful of information about the print commands which are implemented, and the curr ent values for the left margin, etc. If these values have not been changed !via! a dot command, they will be the default values assumed by PRN on startup. PRN resets these values to the defaults every time a new document is printed (every time option #5 is selected). ----------------------------------------------------------------- DOT COMMANDS IN USE: .PA, go to next page .OP, omit page numbers, page numbers now= TRUE .PL x, lines of text/page, now x= 55 .PN x, makes x the number of this page .PO x, left margin (page offset) x spaces, now x= 8 .FI xxxxxx, insert file xxxxxx at this point PRINT COMMANDS WORKING: ^B..^B = boldface : ^D..^D = double strike ^H = overprint : ^R..^E = italics | note | ^V..^V = subscript : ^Q..^E = subscript | same | ^T..^T = superscript : ^W..^E = superscript | term | ^S..^S = underline : ^Y..^Y = PRN environment ^Y..^Y redefines !,@,#,$,%, and graphic names ! .. ! = italics : @ .. @ = Elite font # .. # = compressed : $ .. $ = line spacing 8 lines/inch % .. % = graphics spacing, 9 lines/inch CHAR.DEF **>> PRN writes on this line: press any key to continue ------------------- Option #4, Command Summary ------------------- jjjjjjjjjjjj 5. Print a file: Call this option, give the name of the file you want PRNted, and PRN will interpret the file, and send it to the printer and the screen so that you can follow the process. You are offered the chance to start printing at a trigger phrase rather than at the beginning of the file. The trigger phrase may be used to print part of a file. Just search for the trigger to start and stop print with ^X (see below) when you have enough. This facility is often useful in order to reprint only the part of a file which has just been redrafted. PRN searches for your phrase at about 6 seconds/single-spaced page, but sends only print commands, and no text, to the Epson. Thus when the trigger occurs in the middle of a ^B..^B, for example, it will be printed in boldface, as usual. The page number, page offset, and so on will also be just as if the entire file had been printed. A search for a phrase can be used to examine the pagebreaks when PRN and WordStar differ (when altered line spacing has been used). PRN begins printing at the beginning of the line with your phrase in it. If PRN can't find the phrase, it returns you to the Main Menu, and no hard feelings. The search is conducted for the phrase just as you type it, so take care with capitalization, etc. If you wish to stop printing, type ^X (Ctrl X) to return to the Main Menu. You might have to type ^X several times because PRN glances back to the keyboard only at the end of lines. If you use ^X, be aware that you may be in the middle of a passage which will leave the printer set for something other than normal font, spacing, etc. hhhhhhhhhhhh 6. Check a file for paired print characters: This is designed to prevent printing 17 underlined pages because the second "underline" print toggle was left off an ^Semphatically... Given a file name, this option reads the file and pairs up all print commands. Because option #6 uses PRN's usual facilities to do the pairing, pairing is done by PRN's print command rules and will cancel ^R when it finds ^E, and so on. At the end of the file, it will write a list of any unpaired print commands. These may be corrected by searching for them in WordStar using the ^QF "find" command. iiiiiiiiiiiii 7. Get a disk directory: Option #7 writes a disk directory for any disk, alphabetized horizontally, and including the file sizes in kbytes. If you have ever forgotten the name of the file you intended to print, you know what Option #7 is used for. ------------------------------------------------------------------- A: CHAR .DEF 1k > CONJ .ASM 2k > CONV .ASM 3k A: CONV .COM 1k > DDT .COM 5k > EDFIL8 .COM 11k A: FX .COM 3k > IN .ASM 11k > LASM .COM 8k A: LOAD .COM 2k > NSWP .COM 12k > RAMDISK .COM 9k A: SETDISK .COM 6k > TOON . 6k > TOON .ASM 11k A: TOON .BAK 11k > TOON .COM 1k > TOON .HEX 2k A: TURBO .COM 31k > TURBO .MSG 2k > TURBO .OVR 2k A: UNERA .COM 1k > VD0 .COM 7k > XD .COM 3k CHAR.DEF **>> Press any key to continue.. ------------------- Option #7, Disk Directory ------------------- gggggggggggg 8. Exit: Returns control of the computer to the CP/M operating system, if PRN was called from CP/M. If working from the "R" option of WordStar, Option #8 takes you back to the WordStar menu. hhhhhhhhhhhh Composition of Files for PRNting With few exce!ptions, you simply type your file under the Document mode of WordStar, as usual. The exceptions occur when you wish to use one of the functions unique to PRN. PRN uses almost all the standard WordStar print commands, which can be listed from Main Menu option #4. When you type ^PD..^PD (^{caret} means the ctrl key; ^PD shows onscreen as ^D), the characters surrounded will be printed in Double Strike mode, as always. Similarly for ^V..^V, ^B..^B, etc. PRN also understands the extended symbols used by the WordStar for special printer functions: for example, ^Q...^E will produce Epson-style (in-line) subscripts. Note that there are two ways to indicate italics: ^Y!^Y..^Y!^Y and ^R..^E. The latter reproduces Wordstar's method, in which the OFF character (^E) also turns off super/subscripts. The former is a PRN method which affects italics independantly. All print commands are usable in normal text, and when included between the special PRN signals ^Y..^Y. **>> Anything enclosed by ^Y..^Y (you type ctrl-PY) is in a PRN environment and will be handled in a special way. Each character is examined to see if it is the name of a character you have defined, or a special PRN signal. If it is the name of a character, your predefined graphic is printed. If it is a standard print signal, like ^T..^T (superscript), it is obeyed. If it is a special PRN signal for the printer (!, @, #, $, or %), then the printer is sent the appropriate command. When the second !, @, #, $, or % is encountered within a ^Y..^Y environment, the special printer command is cancelled. If the character is none of the above, it is simply printed as usual. Note that this protocol is very flexible: it allows you to bracket passages to be interpreted by PRN, even though the bracketed passages contain complex mixtures of special graphics, print signals, and normal characters. The special print symbols are grouped for easy memory at the upper left of the keyboard (check it out), and have a mnemonic content: h Special Print Commands for Files h ! upside-down i = italics @ unusual a = alternate font, Elite # pound sign, suggesting weight = compressed font $ barred S = close line $pacing % no line = very close spacing, for continuous graphics These commands are imbedded in files between PRN signals. For example, ONSCREEN ----> PRINTED .zip..^Y!^Yitalics^Y!^Y..zip. .zip..!italics!..zip. All the other usual print functions are accessible within a ^Y..^Y. Thus : ^Y..zip..^B..dark..^B..zip..^Y ..zip....dark....zip.. Printed output lacks any trace of the ^Y, #, or ^B print commands, just as the WordStar printer ignores this sort of command. Compose your text assumming that all commands will vanish: if "a" is the name you gave an alpha graphic: |^Ya^Y| |a| Outside a ^Y..^Y, ^B, ^D, ^Q..^E are still non-printing commands, but !, @, #, $, and % will print as usual. Thus use of PRN is consistent with use of the dollar sign ($) for its usual purpose. ^Y...$8 lines/inch$..^Y, but $100.00 is still a C-note, and a good cigar's a smoke. Just remember that !,@,#,$, and %, and the characters you have used as names of your graphics will be redefined within the PRN environment, ^Y..^Y. That's all there is to it. Limit the extent of your ^Y..^Y's to the areas where you are using redefined characters, because PRN will be quicker if it isn't required to analyze every character in a file. Most of the delay in fancy printing is attributable to the complicated routine carried out by the Epson whenever it makes a transition from the normal character set to graphics, or !vice versa!. A note for right justifiers: if you use WordStar to give even right margins, you should be aware that WordStar ignores ^Y's when formatting a line, but counts !,@,#,$, and % as one space. Thus !,@,#,$, and % will draw the right margin in one space when used between ^Y's, because WordStar allows a space for them, but they are not printed. Usually you can hide them between paragraphs or lines. Dot Commands Dot commands follow WordStar format: .NN ## a dot in the first column, a two letter command (NN), and then a numerical argument, where required. PRN uses a subset of the WordStar dot commands, described below and summarized in Main Menu option #4: .OP Omit Page numbers; PRN assumes page numbers unless they are turned off using this command. .PA Page; go to the bottom of this page, write number if called for, print next text at the top of the next page. This command can be use to eg, leave a space for an intercalated photo, or to force a graphic to appear at the top of a page. .PL 55 Page Length; sets the number of lines PRN will print on one page. This is the only dot command whose use differs from the "same command in WordStar. The page number will appear 4 lines below the text. Recall that ^Y$.. or ^Y%.. , which change line spacing, will automatically alter PRN's line count so that pages will be the correct length. If instead you alter line spacing from option #1, you must use PL to set page length to match, or PRN will break off in the middle of pages (at 55 lines). WS and PRN have the same definition of a page, so that the WordStar page breaks shown onscreen are also accurate for PRNting. HHOOWWEEVVEERR: use of altered line spacing via PRN commands will make the onscreen WordStar page breaks inaccurate because WordStar definitely does not know from eg, graphics spacings. .PN 4 Page Number; the command at the left will make this page number four. This may be useful for printing a document which is a series of files, and keeping the page numbers consecutive. .PO 8 Page Offset (left margin); the margin may be changed  freely at any point in a PRN text. The default margin, until reset, is 8 spaces, as shown. .FI B:comment.txt File Insert; the file named is printed in context at the site of the command. The inserted text (the FIle) may be searched for a print trigger phrase. While printing or searching the FIle, it will send print or dot commands just as if it were the main file. Pages of the FIle are numbered consecutively with the main file. This resembles the WordStar Mail-Merge function, except that it is carried out anywhere in a PRNted file without calling a special printing facility (such as WordStar's Merge-print). The only limitation is that the first file called for PRNting must contain all the FI commands. An inserted FIle may not order the insertion of further FIles. The FI command may be used to insert preexisting text into a new file. However, it is also used to write manuscripts as separate, small, easily handled sections. The sections are then combined by writing a master file of instructions, and calling PRN to print it. For example: PR.RNA ^B .op .fi titlepg.rna ^B^Y#^Y .pa .pn 1 .fi summary.rna ^Y#^Y **************************************************************** .fi intro.rna and so on... If PRN is told to print file PR.RNA, it will print the title page file in boldface, then go to the top of a new page and switch to compressed font for the summary file. The title page is not numbered: page 1 contains the summary and introduction. For the intro PRN returns to normal font, inserts a blank line, a line of asterisks, another blank line, and continues with the introduction on the same page... Another use for instruction files like PR.RNA is to order automatic printing of multiple copies, using multiple identical .FI commands. Remember to type at the end of the last line of inserted FIles. WordStar does not terminate such last lines automatically, and PRN correctly resumes printing an unterminated line (after it goes on to the main file or the next inserted FIle) in the middle of the page. An alternative which also prevents the joining of lines is to follow FI commands with ('s) in the main file, as is done between summary and intro in PR.RNA, above. PRN will search the entire line after dot commands for a required argument, which may therefore be anywhere on the line. Any and all other characters on the same line, including print commands, will be discarded. Therefore, if you're the sort of person who finds it functional to talk to yourself by leaving imbedded notes in your files, you may do it after a pseudo dot command: .MY This data stinks, must think of another argument! The above line will cause PRN to admonish you !via! the screen that it has detected a heterodox dot command in the file, but it will not print any of it, in effect deleting the entire line. The line will appear as shown when viewed with WordStar, for your possible edification when re-editing your file. %```````````````````````````````~~`````````````````````````````` ```````````````````````````````~~``````````````````````````````% Warp Twelve, Mr. Sulu!, or, Continuous Graphics If you think about the graphics that PRN makes, you see that it can print a continuous line of them by using the 11th and 12 columns of each character frame, instead of leaving these blank to give spaces between characters. What is less obvious is that the special print command % (^Y% %^Y) is chosen to precisely obliterate the space between lines of graphics. Working in a ^Y% %^Y environment, PRN can fire the printer pins to place a dot anywhere on a page, at a resolution of 960 dots per horizontal 8 inch line. Check the bar above this section. Now suppose that you define picture elements, instead of letters, in your CHAR.DEF. If you defined "l" as a frame ~1/3 filled with dots, when ^Y% ll %^Y occur#s you get a continuous patch of medium grey. Thus if you define a group of suitable graphic characters in CHAR.DEF, you can "draw" a picture using WordStar. The lines of characters in that part of your file are interpreted by PRN as edges, shaded areas, lines, or whatever, stored as individual frames in CHAR.DEF. On detection of the signal ^Y% PRN will begin interpreting this part of your text file as continuous pictorial information, and will redraw your picture. Viz: .po 25 %! f------t \ OI, / \ / \ VEY. / l______> o o o pnpnpnpnpnpnpnpnpnpnpnpnpnpn !% .po 8 Dot matrix printing is a deliberative, rather than a highly spontaneous, medium of expression. But it allows both a systematic approach, using a drawing made on eg, graph paper, and a more impressionistic style, in which one composes freely at the keyboard, using the list of your custom graphics gotten from Main Menu #3. There is considerable freedom, because the elements of composition can be remade for each picture. Once done, editing a picture is easy. The resulting picture file can be copied, and moved to any position in any document which will be printed by PRN. All normal print commands and characters can be used for text within pictures (as above), and will be seen in final form intercalated among the graphic character names in the picture file. +=he PRN program automates the commands required to create harmonious, illuminated text, or unprecedented garbage. Unfortunately, the latter is easier. For this reason, intricate graphic passages are more easily drafted as separate, small files in order to facilitate the printing of trial versions. WordStar makes this straightforward: ^KR = read a specified file into this file, at the cursor ^KW = write the stuff contained between ^KB..^KK to another file. These commands permit quickly printed draft versions to be returned to the main file when perfected. Passages are also easily extracted to move graphics around. % *) a..w % You have completed the PRN manual. As Nietsche once said to Kirkegaard, your options reduce to one: GRAB IT AND GROWL! Hardware Requirements, Configuration for Different Terminals PRN requires a printer which understands Epson print and 8-pin graphics commands. Check your printer manual if you are not sure whether your printer uses this command set. Many non-Epson dot matrix printers do. If you have a computer which uses Lear-Siegler commands (Kaypro, Morrow, ..), you are in luck. The distributed version of PRN is set up for this group of control strings (for example, clear to end of line = ^X). If you have another type of screen control command set, you can patch PRN.COM for your terminal by altering the locations shown below. If you are getting odd-looking screens when you try to run PRN, you need to do these patches. In each case, the control string begins with the number of bytes in it, then the string itself. Let's take clear to end of line, as an example: Address Byte Comment (all numbers hexadecimal) 01BC 01 ..This string is only one byte, as distributed 01BD 18 ..This is ^X (CANcel) as a byte. 01BE ..done, no need to use this position Now for the list of locations to be set for your terminal 018B ..Size, cursor position string, includes 018E-F 018C ..the string 018D ..more here 018E ..00 if row & column are binary, 30 if characters 018F ..00 if row & col sent together, else put in number sent between 0190 ..make same as 018E 0191 ..if a number follows row & col, put it here 019B ..01 if row & col are binary, 00 if chars 019C ..number added to col, 20 in distributed PRN 019D ..number added to row, 20 in distributed PRN 019E ..03 if col before row, 04 if row before col 019F ..04 if col before row, 03 if row before col 01A2 ..clear the screen, size of string 01A3 ..the string 01A8 ..cursor to home position (set=00 if 01A2 does it) 01A9 ..the string 01AE ..insert line 01AF ..the string 01B4 ..delete line 01B5 ..the string 01BC ..clear to end of line 01BD ..the string ----------------------------------------------------------------- March, 1985 Mike Yarus 2231 16th Street Boulder, CO 80302 Compuserve 73145,513  col are binary, 00 if chars 019C ..number added to col, 20 in distributed PRN 019D ..number added to $6 a b BRR,(8ixF 8?8 s" ,, hBB$"BD($BP_(H0l_>f?@-t@?o$$$p 3MDDDn$tH>\/GQPRHI?!V!AC 0BfII||T@$N? @@!DU>I>II6O$`Y (r^ > > r(((u>8q$$g @L2,@w   *!?!!!?!AAAA)RTXPPPPPPPP M ~~@?F>~PP] .<}}<.  >8q$$g @L2,@w   *!?!!!?!AAAͫCopyright (C) 1984 BORLAND IncAKaypro II and IVctedP= ER~7#~=% o&ͦoͦܐԩͣ}!!"8~#(}:$= +*!Z!*B!!:(=2!Z: <2!!!:O::O:!*B! !45(!.+/ 0y0( d!kZ!{Z͈͈o&  :(y ͠|( *"x2y( >28!?"9!!>2 :D]SXN]D [ (!e}̈́A8Q0G: x@!\w# (   yV. V!h6# (*(.(!8}(*(̈́w#>?> w#a{ |͒}͛Ɛ'@'7||}>"C"6# ""͐ͩ*B"[R5*"^#V#^#V#N#FO/o&9O/o&9!9(> (G!9 w#E͊w}8uRB0 >R@RR!+ͨ z R!+ͨ z <!+ͨ z <!+ͨ z <!#ͨ z <!+ͨ z T]KB!z> S>))0 = |JJDMgo>jB0 7?= H\<z5+)+<z {0Gɯgo||H}||/g}/o#}o&K[xAJSJDM!b"!6J"DM'ͬͬdͬ ͬ} wͦWͧ _}8(8J`9{T]=o`9y w >uJ u` }>(; xQ }} ˸T}ٕ(0D=C ,= ( [ 0%D , 7 ͏ ?(8u x O - ; 8˸x X ,-xG}; }م 9; .>#n0[ D = - nx P ,-(-˸G,-; }ٕ? 9.>͏ 8u ?= u+-(>O 0u O 8͏ ?x P , 78ƀ8ƀ8ox٨!دoGOW_gɷɷ|لg{ً_zيWyىOxوG|ٔg{ٛ_zٚWyٙOx٘Gxٸyٹzٺ{ٻ|ټx٨ xx(ͼ ?}ٽÏ }ց; <(; 7D = |٤g{٣_z٢Wy١Ox٠GD u J }x>uu}ƀ/ƀo; -J }0W-J W,}l˸ͨ 8 ; ` x( -ͨ 8J -ͨ 8,J }l8;*!` ! >u` ` u--- J ,,,-xGg?+2n*8t z~,->uxua}.; OJ , ; !U >,k- o&0%,` }g; }؉}颋.:}8c~I$I~L*kٷx˸; }0G,͙<},-(-J ! >0 a` o8 Oþ >um.`1pF,t6|!wS<.z}[|%FXc~ur1}Oٯx(<˸ͨ 8; !~Jͨ 0O!><ͨ 8 =  7 <` O ; 7 0 W-J OT0 j oD,:j !I}袋.}8c~I$I~L!>u` ` 77 ` = O nf^VNF!DLT\I!!53!r1!\!> x #-= o˸xO(- }(x>8(C ,C `iM!>u|; |J>| )=|(DMbo˸ͦ88ͦx(0 8> Mx(>-Ͳ{(ay(Ͱͦ \z(>.Ͳ (Ͱ ~ͦ{>EͲ>+|(|Dg>-Ͳ|/ 0:p# ~# +>0w#,-  60#J˸}րogM| .%(C = ~> x0w#xG%P %P ZJDM%P = _~65i+~hìx-Sx9?+{Η@}|C C gZJDM0D ,7}o˸  #yO!@9i&   # w# /w# w#!9! E9!!9~(+F͊!"9!(#>2*Ͳ"|>" :( ͆ *6#w*6#6 !\$![ (̈́( #:~CONTRMKBDLSTAUXUSR>2$*#~ Ͷ$*:> >w###6  #6++p>2S-$Ͷ:*6###ww#w$w#w: ##N#F*B> w#w#[s#r>2S$Ͷ$*6 #-Nw#Fwq#p#6#w#w#w* :( ͒: *^ F* < >26"~͟*-w#ww#͟"~ <@*Ͳ!\  <ʮ!\$> >2*|>! * \$\<(!: [1Á\!(f"> 2:!<"F( #~#6e>!["N>!~8>O6*"w (=(&("( :(N 8y(~#x+% (6*#~[*#~ *~(h#"b=  8 J= B== ͯ}8= ͵}/ͭ !*###~-_~(4Q6*>2>*##w:>*##~*#~(E[ ( ( ( !][ ( ( ((w#(6!]~-#8~>7  [>OkͼMs #rkͼpX á[ [ (( #w(q*#~[ (  *##~6͜O$*#~(08ʦ=ʦ==ʩ=ʬò+###~-_q46͡> *:4^q}Ò*|(M|( M6-#͐ͦ[R8 (G> ͒C~͒#*ͦC!h !lTRUEFALSEͦ!9^#(~#(G~͒#> ͒> Ò "F![(#RR0*4#4> RR *4 #4(>>2$*V(/˖:(#~+ x y2!͵( =( X:(R*:(###~-_-͌X> :("͟"*^˞*V˖0 SRѷR8A* N#F#s#r$ 0})jS\*###w* N#FB ͟r+s> !T]>)j)0 0= UR!#U*^#V#N#F#^#V>">!2DM"~x(L* :O(o:" C}=( ?*-N#Fp+qq#p! * F+N+++V+^Bq#p>>> SRѷR* s#r$ s#r"S"! N#FB(^x * 6#[<(H*! Kq#p##K[! *! 4 #4! x *$ *>w""{_!"*nf}(HR0nf" ^VMDnfutqp*s#r*s#r"* 5KB!>u~#fo{_"*R0RnfR0KqputsrNF( ^VNF^V*SutKqp R*R(~w~wnf ut"6# * *!""*NFy(* "*B0Cnf* [R*"*RS[s#r^#VS>O"w2x2!"" @*>2"!"""!\Ͳ*: !~6go(\R*s#r_2x( s x(T]DMR0 -a%}̈́o*!~6o&͠|ͣ}%^C User break1:% I/O% Run-time% error ͒%, PC=[R"͍% Program aborted*1!͍!&ͲÆ#!!ͽŔ**>> b!!o&"R*R!aE *R}2X*X&"L"N"P*P 5!N}29*9&E !!65z }2:*P8!;ͳb*N*:&+*;&s*L*:&+)))!< *:&#| *P-b!ŔCan not find the character fileb!B}28![́L! !b!! 5z~!}23![!]*8&+)))*3&+n&b*3&#?!!*8&+n&Rb!$Ͳ!}2Q !![͐b![́Characters in !$ !q͐b![͐b!*&+n&! a*&!6͇}oE"![́Nr.*&!́ Code:!*&+n&! b*&!!*&+n&! -Eʵ"![́ * duplicate code * b"! -Q!*&+n&a !![͐b*&!}2!![͐b!Ͳ"Ŕ+Need a list of the chars in this file? y/n b Q!Ya!yaEʅ#*!!]? ! ͗!Ŕ1CHRTX moves graphics between CHAR.DEF-like files.b!BŔ.Source of the transferred character? File b!++._b!!+ =!!+  #Ŕ"Target of the character? File b!+._b!V! =!V!  #Ŕ,Number of the character to be moved? Nr b!;+_b! b!*;&!Rb!8!I&b!V b!V8!<ͳb!}2!! 5zj%}2:!=*:&+n&!aE_%!}2*:&#2%*&*<&! N}o!VA}oE%*&*<&! N}oE%!VM!R}2;!V b!V*;&b!V[!Ib)&ŔCannot find an open frame in ! !qb!BŔAnother transfer? y/nb Q!Ya!ya}oEʊ$!-b!V-bi! -Eʵ"![́ * duplicate code * b"! -Q!*&+n&a !![͐b*&!}2!![͐b!Ͳ"Ŕ+Need a list of the chars in this file? y/n b Q!Ya!yaEʅ#*!!]? ! ͗!Ŕ1CHRTX moves graphics between CHAR.DEF-like files.b!BŔ.Source of the transferred character? File b!++._b!!+ =!!+  #Ŕ"Target of the character? File b!+._b!V! =!V!  #Ŕ,Number of the character to be moved? Nr b!;+_b! b!*;&!Rb!8!I This is the release date of the disk. CHRTX COM %CHAR .DEF C9 E5 768 6 CHRTX .COM 6A 4C 9600 75  Fog Library Disk FOG-CPM.077 Copyright (1986) by Fog International Computer Users Group to the extent not copyrighted by the original author for the exclusive use and enjoyment of its members. Any reproduction or distribution for profit or personal gain is strictly forbidden. For information, contact FOG, P. O. Box 3474, Daly City, CA. 94015-0474. as part of the description of a file indicates that the program is distributed on a "try first, pay if you like it" basis. If you find the program(s) meet your need, please refer to the author's documentation for information on becoming a registered user. Only by registering and paying for the programs you like and use will the authors of such programs continue development. Often, more complete documentation, additional modules, and new releases are available only to registered users. FRONT and PRN for most CP/M computers. Filename Description -06-00 .86 This is the release date of the disk. -CPM077 .DOC This is the description of the disk contents. FRONT51 .COM 8A9C 6K ver. 5.1 [FrontEnd 1 of 7] A front end for most CP/M computers to provide a menu of the files on your disk. Select the program of your choice with a single keystroke. Simplifies operation for novices. FRONT51 .DOC B343 40K ver. 5.1 [FrontEnd 2 of 7] FRONT51 .INF 0AE8 3K ver. 5.1 [FrontEnd 3 of 7] FRONTSUB.DOC 155C 6K ver. 5.1 [FrontEnd 4 of 7] AUTOST .COM 392F 6K ver. 5.1 [FrontEnd 5 of 7] FRNSTL51.COM 225E 16K ver. 5.1 [FrontEnd 6 of 7] FRNT51PT.ASM 32DC 13K ver. 5.1 [FrontEnd 7 of 7] PRN .COM D8C1 29K [PRN 1 of 4] Allows you to embed Epson printer control codes in your WordStar document so that you can access graphics or special features of the Epson. PRN .DOC 9386 43K [PRN 2 of 4] CHAR .DEF C9E5 1K [PRN 3 of 4] CHRTX .COM 6A4C 10K  [PRN 4 of 4] file="FOG-CPM" .AND. FILE ("&diskf.cheklist.crc") DELE FILE &diskf.cheklist.crc ENDIF SELE B STOR diskf-fn-"."-ft TO malt STOR SUBST(ft,1,2) TO mdate SET ALTE TO &malt SET ALTE ON ? filedesc SET ALTE OFF SET ALTE TO SELE A STOR diskf-"-"-SUBST(dfile,5,3)-"&mdiskno"-".DOC" TO malt SET ALTE TO &malt SET ALTE ON DO WHILE diskno="&mdiskno".AND. .NOT. EOF() IF diskno="000" IF dfile="FOG-DOS" ? " '