home *** CD-ROM | disk | FTP | other *** search
/ CP/M / CPM_CDROM.iso / cpm / cpm3 / neutexec.lbr / NEUTEXEC.DQC / NEUTEXEC.DOC
Text File  |  1986-04-22  |  19KB  |  505 lines

  1.  
  2.  
  3.  
  4.  
  5.  
  6.  
  7.  
  8.  
  9.                              N E U T E X E C 
  10.  
  11.      Technical character generator for CP/M PLUS and Epson-compatible 
  12.                           dot-matrix printers 
  13.  
  14.                               Version 1.0 
  15.  
  16.  
  17.  
  18.                               USER MANUAL 
  19.  
  20.  
  21.  
  22.  
  23.  
  24.  
  25.  
  26.  
  27.                  (C) Copyright Walter D. Neumann, 1986
  28.                           All rights reserved 
  29.  
  30.  
  31.  
  32.  
  33.  
  34.  
  35.  
  36.  
  37.  
  38.  
  39.  
  40.  
  41.  
  42. Walter D. Neumann 
  43. 1F Southway 
  44. Greenbelt MD 20770 
  45. (301) 345-7017 
  46.  
  47.  
  48.            USER SUPPORTED SOFTWARE:  SUGGESTED CONTRIBUTION $20
  49.                           SEE APPENDIX FOR DETAILS 
  50.  
  51.  
  52.  
  53.  
  54.  
  55.  
  56.  
  57.  
  58.  
  59.  
  60.  
  61.  
  62.  
  63.  
  64.  
  65.  
  66.  
  67.                                               NEUTEXEC USER GUIDE  Page 1
  68.  
  69.  
  70. 1.   General description of the program. 
  71.  
  72.      NEUTEXEC is also available for IBM PC compatible computers under
  73. the name NEUTECH.
  74.  
  75.      NEUTEXEC is a memory-resident technical character generator for  
  76. CP/M Plus computers and for Epson printers or compatible equipment 
  77. (IBM Graphics printer etc.).  It is designed to be invisible to 
  78. applications that do not specifically try to use it.  Its effect is to 
  79. add a set of technical or other user-defined symbols to the set of fonts 
  80. of your printer and to make them easily accessible to application 
  81. programs (word-processors, etc.) which do wish to use them. 
  82. Individual characters or complete character sets can also be 
  83. "downloaded" to the program from the document being printed or from the 
  84. operating system. 
  85.  
  86.      The built-in character set consists of a Greek alphabet plus a set 
  87. of Gothic capitals plus a set of mathematical symbols, each one in a 
  88. regular (pica) size and in a compressed size.  This character set can be 
  89. replaced (in whole or part) by the user.  NEUTEXEC keeps track of whether 
  90. the printer is printing in compressed and/or wide mode and adjusts its 
  91. characters accordingly.  Several copies of NEUTEXEC with different symbol 
  92. sets can be loaded and accessed at once.  Each copy takes up about 3K of 
  93. memory. 
  94.  
  95.      The NEUTEXEC character set can be printed for reference by installing 
  96. NEUTEXEC and printing the file NEUCHARS.DOC. 
  97.  
  98.      NEUTEXEC works by watching the character stream sent to the printer 
  99. for its own one-character "attention command."  When it sees its 
  100. attention command, it replaces the next character sent to the printer by 
  101. the corresponding character from an internal alphabet, using graphics 
  102. mode.  A secondary one-character command is used to initiate downloading 
  103. a character to NEUTEXEC.  The attention command and secondary command 
  104. both default to ^Q ("control-Q" or ASCII 11h) but can be changed by the 
  105. user (see section 2; this is necessary for using multiple copies of 
  106. NEUTEXEC or using it with programs that cannot send a "^Q" to the 
  107. printer).  Thus, using the defaults, "^Qa" would print the NEUTEXEC 
  108. character corresponding to "a" (a greek "alpha") and "^Q^Qa" initiates 
  109. downloading a new character to NEUTEXEC to be printed by "^Qa".
  110.  
  111.      NEUTEXEC must keep track of all printer commands being sent, since 
  112. if the NEUTEXEC attention command occurs as part of an Epson printer 
  113. command, it must be ignored by NEUTEXEC.  For this reason the program is 
  114. relatively printer-specific.  It is designed to work with any printer 
  115. that uses the Epson FX80 printer protocol or a subset of it (e.g. 
  116. earlier Epson printers, the IBM graphics printer, Centronics GLP, and 
  117. many others).  NEUTEXEC will work with any printer that uses Epson 
  118. graphics commands, so long as the software never uses a non-FX printer
  119. command containing a NEUTEXEC command character. 
  120.  
  121.      In the following, "^a" and "^s" will denote the NEUTEXEC attention 
  122. command character and secondary command character respectively.  As 
  123. already described, the default is ^a = ^s = ^Q (ASCII 11h). 
  124.  
  125.  
  126.  
  127.  
  128.  
  129.  
  130.  
  131.  
  132.  
  133.                                               NEUTEXEC USER GUIDE  Page 2
  134.  
  135.  
  136. 2.   Loading and unloading the program. 
  137.  
  138.      NEUTEXEC is loaded into memory by running the program NEUTEXEC.EXE 
  139. (enter "NEUTEXEC" at the CP/M command prompt, or include it in your
  140. PROFILE.SUB file).  Once loaded, it remains resident in memory, taking 
  141. about 3K of memory space and can be unloaded only by rebooting.
  142.  
  143.      The two NEUTEXEC command characters can be set to other values than 
  144. the default by adding a parameter on the command line when loading 
  145. NEUTEXEC .  The format is "NEUTEXEC XXYY" where: 
  146.  
  147.  
  148.  
  149.      XX is the hex representation of the NEUTEXEC "attention character" 
  150.           ^a (default is XX = 11); 
  151.  
  152.      YY is the hex representation of the NEUTEXEC "secondary command 
  153.           character" ^s (default is YY = 11). 
  154.  
  155.  
  156.      NEUTEXEC will accept ANY value of XX and YY for ^a and ^s; if ^a is 
  157. also a printer command it will then always be intercepted by NEUTEXEC and 
  158. will be unavailable to the printer, so changes to the default should be 
  159. chosen with care (see Section 7). 
  160.  
  161.  
  162.  
  163.  
  164.  
  165.  
  166.  
  167. 3.   Accessing NEUTEXEC. 
  168.  
  169.      Once NEUTEXEC is loaded, printing "^ax" will print the current 
  170. NEUTEXEC character corresponding to "x".  Here "x" represents any 
  171. printable character other than <space>, ^a, or ^s.  (If neither ^a or ^s 
  172. has been installed to a printable character, then only <space> is 
  173. excluded). 
  174.  
  175.      The character printed by "^ax" will be compressed and/or wide 
  176. according as the the printer is in compressed and/or wide mode. 
  177.  
  178.      (At present NEUTEXEC only changes character width on seeing one of 
  179. the width-change commands that is common to all Epson printers, namely 
  180. one of the 1-character commands or the <esc>W commands.  Most software 
  181. uses only these, to ensure compatibility.  The FX and later printers 
  182. have an additional command which should be used only if constant 
  183. NEUTEXEC character width is desired). 
  184.  
  185.      Printing "^a^sx" followed by a sequence of 12 hex bytes (7 bytes in 
  186. compressed mode) will download the character represented by this byte- 
  187. sequence to the NEUTEXEC character corresponding to "x"; see Section 4 
  188. for details.  Again, "x" should be a printable character other than a 
  189. space, ^a, or ^s. 
  190.  
  191.  
  192.  
  193.  
  194.  
  195.  
  196.  
  197.  
  198.  
  199.                                               NEUTEXEC USER GUIDE  Page 3
  200.  
  201.  
  202. 4.   Downloading to Neutech 
  203.  
  204.      Printing "^a^sx" followed by a sequence of 12 hex bytes will send 
  205. nothing to the printer but will download the character represented by 
  206. this sequence to the NEUTEXEC character corresponding to "x".  For 
  207. example, when using the defaults ^a = ^Q and ^s = ^Q, then printing 
  208.  
  209.               "^Q^Q/,FF,81,02,04,08,10,08,04,02,81,FF,00" 
  210.  
  211. would download an extra-large "W" to the NEUTEXEC character corresponding 
  212. to "/".  Characters other than 0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F are 
  213. ignored until all 12 hex bytes have been received, so puncuation and 
  214. comments can be included for clarity.  Thus the following download 
  215. commands have the same effect as the above example: 
  216.  
  217.                     "^Q^Q/FF810204081008040281FF00" 
  218.                "^Q^Q/: large W FF810204081008040281FF00" . 
  219.  
  220.      If NEUTEXEC is in compressed mode, then the character being 
  221. downloaded will be sent to NEUTEXEC's compressed symbol set, so only 7 
  222. hex bytes should be included in the command. 
  223.  
  224.      See your printer manual for an explanation of how a sequence of 
  225. bytes is interpreted as a sequence of vertical columns of eight dot 
  226. positions each to form a character. 
  227.  
  228.  
  229. 5.   Installing user fonts. 
  230.  
  231.      A file of "^a^sx" download commands can be printed at any time to 
  232. change NEUTEXEC's character set.  For example, a command 
  233.  
  234.                           PIP LST:=<filename> 
  235.  
  236. can be included in a PROFILE.SUB file to change NEUTEXEC's default set 
  237. on start-up.  Two files, "NEUCHREG.QQ" and "NEUCHCMP.QQ," which can be 
  238. printed to restore the regular and compressed default character sets in 
  239. a default installation of NEUTEXEC, are included and can be edited as 
  240. desired.  They can also be combined into one file which restores both 
  241. character sets at once. 
  242.  
  243.  
  244. 6.   Using multiple copies of NEUTEXEC. 
  245.  
  246.      Several copies of NEUTEXEC can be loaded and used simultaneously 
  247. with one printer by defining different attention characters for each of 
  248. them.  Each can be loaded with a different symbol set as described in 
  249. Section 5. 
  250.  
  251.      Two (or more) copies of NEUTEXEC can also share the SAME attention 
  252. character if the secondary command ^s is NOT equal to ^a.  In this case, 
  253. the copy loaded last acts as usual, but printing "^a^a" sends a single 
  254. "^a" to the previously installed NEUTEXEC which will therefore act as if 
  255. "^a^a" is its attention command (if there are three copies then the 
  256. first loaded one would have attention command "^a^a^a^a", and so on). 
  257.  
  258.  
  259.  
  260.  
  261.  
  262.  
  263.  
  264.  
  265.                                               NEUTEXEC USER GUIDE  Page 4
  266.  
  267.  
  268.  
  269.      This technique is particularly useful if NEUTEXEC is to be used with 
  270. a word-processor or other user program which limits the number of 
  271. different non-printable characters that can be embedded in text to be 
  272. printed.  A typical installation of two copies of NEUTEXEC might use ^a = 
  273. ^Q and ^s = | (ASCII 7Ch) in both.  Then the character corresponding to 
  274. "|" is unavailable in both copies of NEUTEXEC, but the only non-printing 
  275. symbol that need be sent by user software is "^Q".  If user software 
  276. cannot send any non-printing symbols, one might replace "^Q" by "\" 
  277. (ASCII 5Ch) in this installation. 
  278.  
  279.  
  280. 7.   Recommended installation. 
  281.  
  282.      It is recommended that the default installation be used unless 
  283. there is good reason to do otherwise.  As already pointed out, 
  284. installing a value for ^a which is a printer command (e.g. ^a = <esc> = 
  285. 1Bh, ^a = <SI> = 0Fh, etc.) will cause problems.  Choosing a printable 
  286. value for ^a is necessary if your software cannot send non-printing 
  287. characters in text, but it disables the corresponding NEUTEXEC character 
  288. (the character ^a itself can still be sent to the printer by using 
  289. "^a^a", unless ^a = ^s).  If only one copy of NEUTEXEC is used at once, 
  290. then any choice of ^s is safe, but choosing a printable value for ^s 
  291. disables the corresponding NEUTEXEC character.  If more than one copy of 
  292. NEUTEXEC will be used at once, then ^s should NOT be a printer command 
  293. since this would confuse the subsequently installed copies of NEUTEXEC. 
  294.  
  295.      The default ^Q for ^a was chosen for two reasons: 
  296.  
  297. (i)  ^Q is the first of the Wordstar "user commands" and thus gives 
  298. particularly easy compatibility with Wordstar.  Install the ^Q user 
  299. command (USER1) in Wordstar to send a ^Q to the printer.  ASCII files 
  300. containing ^Q commands will then be compatible between Wordstar and 
  301. other print utilities (e.g. "PIP LST:=<filename>").  Wordstar counts ^Q 
  302. as being of zero length, so line-length count and formatting by Wordstar 
  303. remains correct. 
  304.  
  305. (ii)  ^Q  IS  in fact a printer command on later Epson printers than 
  306. the MX -- it is the "Printer enable" command.  Since there is no reason 
  307. ever to DISable the printer, this command is never needed and never used 
  308. by standard software.  Since it is unlikely to be used for other 
  309. purposes in future printer upgrades, future compatibility is probable. 
  310. Currently unused characters such as ASCII 00h to 06h and 15h to 19h are 
  311. also possible choices for ^a but have less certain future compatibility. 
  312.  
  313.  
  314. 8.   Using NEUTEXEC with Wordstar. 
  315.  
  316.      I originally wrote NEUTEXEC for my own use with Wordstar.  I was 
  317. encouraged by friends who found it useful to distribute it more widely. 
  318. The following is the installation of Wordstar which I use with NEUTEXEC
  319. and an Epson MX80 or a Centronics GLP.  This installation may be done 
  320. from the standard menus in Micropro's installation program Winstall 
  321. which comes with Wordstar.  A simpler installation, if your printer 
  322. allows it, is to install Wordstar to use reverse and forward half line
  323. feeds to enable sub- and superscripting.
  324.  
  325.  
  326.  
  327.  
  328.  
  329.  
  330.  
  331.                                               NEUTEXEC USER GUIDE  Page 5
  332.  
  333.  
  334.      I install user key ^Q to send a ^Q (ASCII 11 hex or 17 decimal), 
  335. the user characters ^W to do "wide print to end of line" (ASCII 0Eh), ^E 
  336. as Escape (1Bh), ^R as 00h.  I install the width commands ^A and ^N to 
  337. start and end compressed mode (0Fh and 12h) and the ribbon color toggle 
  338. ^Y to start and end italics (1Bh,04h and 1Bh,05h respectively).  
  339. Finally, Wordstar's sub- and super-scripts are enabled by installing 
  340. half line feed as 0Dh,0Ah and full line feed as 0Dh,0Ah,0Dh,0Ah and 
  341. installing the printer initialisation sequence of 1Bh,41h,06h to set 
  342. half line feed at 1/12 inches.  A termination sequence of 1Bh,40h should 
  343. then be installed to reset the printer after use.  I double space normal 
  344. text and use single spacing for special effects. 
  345.  
  346.      This installation permits sending most Epson commands to the 
  347. printer.  The one I use most often is ^EE to start emphasized print. 
  348. Line height can be changed to some extent using ^E3-commands;  for 
  349. example, with the above installation of ^A and ^N, printing 
  350. "^A^E3^N^A^N" returns to the default line height of 1/12 inch per half 
  351. line (the extra ^A's and ^N are needed to make sure Wordstar sends the 
  352. "^N" after the "3";  Wordstar is smart enough not to act on a normal 
  353. width command "^N" if it thinks it is not in alternate width).  Epson's 
  354. built in sub- and super-scripts have vertical alignment problems on 
  355. early Epson printers and are superfluous with this set-up, though they 
  356. are available for use if desired (e.g. ^ES^R for subscripts). 
  357.  
  358.      Wordstar is clever at knowing how to handle control characters in 
  359. conjunction with sub- and super-scripting but it has trouble with 
  360. backspacing at the same time.  This is not often a problem, but it will 
  361. surface if you want simultaneous sub- and super-scripts using special 
  362. characters (e.g. to create a large integral sign using the NEUTEXEC 
  363. characters for ;, |, and :).  However, it can be avoided in several 
  364. ways, for instance by installing "overprinting" in the installation menu 
  365. to use backspacing (08h -- not available on the IBM graphics printer). 
  366. Wordstar then uses backspacing also for underlining and boldface, which 
  367. is a bit slow, but no matter.  The Epson MX has a bug:  it cannot 
  368. backspace back over anything printed in graphics mode.  Again rarely a 
  369. problem, and usually avoidable by interchanging the order of characters 
  370. being overprinted.  This bug appears to be fixed in later printers. 
  371.  
  372.      If you have modified Wordstar with ANYCHAR -- a modification to 
  373. allow sending any code to the printer, then ^R must be set to send FFh.
  374.  
  375.  
  376.  
  377. 9.   Error handling. 
  378.  
  379.      NEUTEXEC makes certain assumptions to recover from user errors:  if 
  380. "^a" or "^a^s" precedes a non-printing character, then the "^a" or 
  381. "^a^s" is ignored; the same is true if "^a" or "^a^s" precedes a "^a" 
  382. (unless ^a = ^s). 
  383.  
  384.      If NEUTEXEC appears to behave erratically, check the file that you 
  385. are printing:  the most common cause is an accidental "^a^sx", making 
  386. NEUTEXEC swallow everything until the download it thinks you wanted is 
  387. completed.  For example, editing in Wordstar with control-character 
  388. display off can put control characters in unusual places: make sure 
  389. control-character display is on if you are inserting or deleting text or 
  390. doing a search-and-replace. 
  391.  
  392.  
  393.  
  394.  
  395.  
  396.  
  397.                                               NEUTEXEC USER GUIDE  Page 6
  398.  
  399.  
  400. 10.  Incompatibilities.
  401.  
  402.      Some Epson printers with NLQ capability seem unable to correctly 
  403. mix NLQ printing and graphics on one line.  Since NEUTEXEC prints in 
  404. graphics mode, NEUTEXEC characters cannot mix with NLQ mode in such 
  405. cases.  The Centronics GLP does not have this problem.
  406.  
  407.      If a memory-resident print spooler is used, it should be loaded 
  408. after NEUTEXEC.  This is for two reasons:  it optimizes use of the 
  409. spooler's buffer, and some spoolers will not work correctly if any other 
  410. memory resident program which captures the printer interrupt is loaded 
  411. over them.
  412.  
  413.      No incompatibility of NEUTEXEC with other software is known to date;  
  414. if you find any, please inform me, and I will try to fix it.  However, 
  415. programs such as Microsoft Basic (CP/M version), which do not use standard
  416. operating system calls to access the printer, will bypass NEUTEXEC.
  417.  
  418.  
  419. 11.  Design considerations.
  420.  
  421.      NEUTEXEC is designed for printing occasional special characters 
  422. in regular text.  It puts the printer into graphics mode for each 
  423. such character.  If several special characters occur in sequence, 
  424. this is much slower than if NEUTEXEC buffered them and then printed 
  425. them all at once in graphics mode.  A buffered version will be made 
  426. available if there is sufficient demand. 
  427.  
  428.      NEUTEXEC intentionally does not use the download capability of the 
  429. FX and other Epson printers.  Such use would make NEUTEXEC incompatible 
  430. with other programs which simultaniously use this feature.  Moreover, 
  431. downloaded characters have marginally lower quality than NEUTEXEC 
  432. characters, since they may not have adjacent horizontal dots, and they 
  433. are lost if the printer is turned off.
  434.  
  435.  
  436.  
  437.  
  438.  
  439.  
  440.  
  441.  
  442.  
  443.  
  444.  
  445.  
  446.  
  447.  
  448.  
  449.  
  450.  
  451.  
  452.  
  453.  
  454.  
  455.  
  456.  
  457.  
  458.  
  459.  
  460.  
  461.  
  462.  
  463.                                               NEUTEXEC USER GUIDE  Page 7
  464.  
  465.  
  466. APPENDIX: USER SUPPORTED SOFTWARE 
  467.  
  468. Permission to copy: 
  469.  
  470.      Individuals may copy this software and documentation for their own 
  471. use or to share with others, so long as no price is charged.  Computer 
  472. clubs and other non-profit organizations may copy this software and 
  473. documentation and share it with their members so long the software and 
  474. documentation are distributed unmodified and together, no price is 
  475. charged other than cost of distribution, and members are encouraged to 
  476. support the user-supported concept with their donations. 
  477.  
  478.      If you find this program useful you are encouraged to make a $20 
  479. contribution.  You will thereby become a registered user.  This will 
  480. entitle you to notice of updates and other information.  Moreover, if enough
  481. users contribute useful NEUTEXEC character sets, I will distribute them 
  482. to registered users for a small charge to cover materials, handling, and 
  483. modest honorariums to the contributors. 
  484.  
  485.      If you send a character set, please do so in the format of the 
  486. files NEUCHREG.QQ and NEUCHCMP.QQ and include a printout of the file 
  487. NEUCHARS.DOC with your characters installed. 
  488.  
  489.  
  490. Disclaimer: 
  491.  
  492.      In no event will the author be liable to you for any damages of any 
  493. kind arising out of the use or inability to use this program. 
  494.  
  495.  
  496. The original version of NEUTEXEC is a MS-DOS program called NEUTECH 
  497. designed for the IBM PC and compatibles.  It is available on request.
  498.  
  499.  
  500. Walter Neumann                                     January, 1986
  501. 1F Southway 
  502. Greenbelt,  MD 20770 
  503. (301) 345-7017 
  504.  
  505.