;* Updated on 15-Sep-89 at 2:46 PM by Ami Bar-Yadin; edit time: 0:06:33 *; Printer Driver for Okidata 393 By Ami Bar-Yadin AMUS: AMI/AM This driver was developed by using AM301.M68 as the starting point. Support tables: OKI400.M68 -- "messages" table (ie "colors" -> "justify") assemble as WRT:MSG400.USA OPST01.M68 -- proportional width table assemble as WRT:DPST01.USA OSCT01.M68 -- special chracters table assemble as WRT:NSCT01.USA (WRT: is DSK0:[7,12]) Features: Not suported by this driver: o Sheetfeeder trays (I don't have one.) o Colors there is an Oki393 model supporting colors, but I bought the plain model. o Boxes and lines using graphic font They can be done, it's just that all the work has to be done by the user (ie positioning and finding which character to press on the keyboard to result in the right graphic character.) o Strikeout, overbar and double underscore These are not native to the Oki393, but may be faked by a a later version of the driver. Supported by this driver: o Lines per inch, controls height of chracters and line spacing o Characters per inch, controls width of chracters and spacing. o Proportional characters o Hardware Justification (gives great proportional EVEN right margins) o Bold, underline, super/subscript o Italics o Access to graphics characters o Utility (draft) mode for rough drafts (faster than LQ mode) "Virtually" all printing attributes supported by AlphaWRITE 1.2 are supported in this driver, mostly using Oki393 (hardware) features, with some code here and there in the driver to maintain peace between the two. Also, "Virtually" all escape codes (other than bitmap graphics) of the Oki393 are accessible from AlphaWRITE, using this driver (at least the useful ones.) The noted exception to the above is AlphaWRITE's special characters, I could not find any tables where they are defined. AlphaWRITE will display these special characters (on the AM62A terminal for instance), but these characters are not available on the Oki393. I thought of implementing these characters as bitmap graphics, but the requirement of supporing all of the various LPI and CPI settings (see bellow) boggled my mind. Therefor, only a few special characters are supported via the OSCT01.M68 table. The Oki393 can print condensed/normal/double/triple width/height. This is controlled by the characters or lines per inch as set in the document header or the format section of the MARGIN menu in AlphaWRITE. (condensed height as used by this driver is actually the Oki393's subscript mode along with the proper line spacing.) The widths come in two flavors: Pica (10 CPI) and Elite (12 CPI). Actually, the Oki393 also has a 15 CPI mode, but not as fully supported as Pica or Elite. (Remember that the larger the CPI, or LPI, the smaller the characters.) 3,4,5,6,7,10,12,15,17,20 characters per inch are "natural" for the Oki393, however, the Horizontal Motion Index will be set exactly as requested by AlphaWRITE, with microfine adjustments done automatically by the driver on a character by character basis (thats the best I could do.) 2,3,6,8,12,15 lines per inch are "natural", but the line spacing will be set exactly as requested. This arrangement of using fixed-sized characters with variable-sized spacing, could of course, result in overlapping of chracters or lines, but that is easily corrected by using a different CPI or LPI setting. I wanted to leave the flexiblity in, as special cases are always poping up. Proportional chracters are supported by the Oki393 and the driver. A width table is also supplied (see OPST01.M68). The table is good enough to allow AlphaWRITE to choose the proper place to break a line, however if Right Justify is selected in the document (header or MARGIN menu), the weakness of the table will come to light. The OPST01.M68 must be assembled as DPST01.USA. The Oki393 has Left, Center, Right, and Full (even margins) Justification modes. The driver support switching between the justification modes. Using the Oki393's justify gives the best result, since the Oki393 will keep track of all variables (CPI, width, proportional, etc). For best results, let AlphaWRITE only decide where a line break should occur. For example, to center a line DON'T use the AlphaWRITE CENTER LINE command, simply place a Justify Center at the begining of the line, and a Justify Off at the begining of the next line. The Oki393 only regconizes justify mode changes at the begining of the line. This driver will remember a mode change in the middle of the line and hold it until the next line, However, knowing this will avoid some suprises. By selecting Proportional characters and Right Justify, and also switching the Oki393 to Full Justification mode (all within AlphaWRITE), although a bit cumbersome, does achive very nice and professional looking results. Of course, super/subscripts, bold, underline and italics are all supported by "natural" hardware features of the Oki393. The Oki393's graphic II font is also available and supported. (Graphic II font is a superset of graphic I font, so I just ignored graphic I.) When the Oki393 is switched to the graphic font, all characters will have their high bit set (character+128) in order to map them into the graphic character range. To access the graphic characters that are in the control character range (3..6 and 128..159) a control shift mode is also available which will shift the uppercase alpha range ("@ABC..XYZ[\]^_") to the control character range (character-64). This can be used with, or without, the graphic fonts. Any, and all, questions or suggestions are welcome. Bug reports will be acted on. Send AMUS E-mail to AMI/AM. .