;* 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.