WSSCRIPT.PAT
                                ------------
                       Wordstar Super/Subscript Patch
                       for recent Dot Matrix Printers

                               E.Meyer - 7/87


    Wordstar is a fine program, but an old one that dates from the days of
simple printers; unfortunately, it's often a challenge to get it installed to
take advantage of all the neat features of recent printers.  One problem is
that there just aren't enough installable codes; the other is that not all of
them are fully generic, like the ^Y toggle and the User Codes ^Q/W/E/R.  For
example, you can install ^A and ^N for any codes you want; but since they're
"really" intended for alternate pitch, Wordstar will ignore ^N if it wasn't
preceded by ^A.
    Similarly, ^S is supposed to underline -- but it does it by overstriking
an underline character, whereas many modern printers have a nicer continuous
underline that should be used instead, and overstriking will foul up with
proportional spacing.  (Often the ^Y toggle is sacrificed for this purpose...
but then, what about italics? color?)

    THE PRESENT PROBLEM relates to super/subscripts.  Wordstar thinks these
are done by moving the paper down and up (printing up and down), respectively,
so it has two installable code areas, ROLUP and ROLDOW.  It assumes that the
ROLUP sequence will start a superscript OR end a subscript, and ROLDOW vice
versa.  This works with some dot matrix printers, like Okidatas, which have a
symmetric code sequence that must have been designed with just this in mind.
But my new printer, and presumably other Epson compatibles, use:
             ESC S 0 - superscript on
             ESC S 1 - subscript on
             ESC T   - either script off!!
After spending a few minutes imagining appropriate punishments for whoever
designed this, I found that I could go ahead and put in ESC S 0 as ROLUP and
ESC T as ROLDOW, and superscripts (^T) would work fine... but I'd have to
avoid subscripts (^V).  This was unacceptable, so I got to work with a
debugger and figured out a patch to get around it.

                      PATCHING WS.COM AND WSOVLY1.OVR

    The following information gives addresses for Wordstar 3.3.  For versions
2.26-3.0, WS.COM has MORPAT at 02E0, and ROLUP/DOW at 06BF and 06CF, instead.
I don't know where the relevant code in the overlay is; you'll have to find
it, as I did, by searching for the ROLUP/DOW addresses.
    This patch changes the printing code in WSOVLY1.OVR to make the existing
ROLUP and ROLDOW the codes for beginning superscript and subscript, respec-
tively; and it creates a new pair of codes in the MORPAT area to function as
UNROLUP and UNROLDOW.  I found room for these at 02D3 and 02D8; if you already
have code in the MORPAT area you may have to put them someplace else.
    Use DDT, SID, EDFILE, DU, or your favorite patching utility.

STEP 1.  Install ROLUP, ROLDOW in WS.COM.

    ROLUP    06C5  03   ;this is "ESC S 0" for superscript
             06C6  1B
             06C7  53
             06C8  30

    ROLDOW   06CA  03   ;this is "ESC S 1" for subscript
             06CB  1B
             06CC  53
             06CD  31

STEP 2.  Add "UNROLUP, UNROLDOW" to WS.COM.

  UNROLUP    02D3   00   --->  02      ;this is "ESC T"...
             02D4   00         1B      ;use whatever you need
             02D5   00         54

  UNROLDOW   02D8   00   --->  02      ;for me, this is the same
             02D9   00         1B
             02DA   00         54

STEP 3.  Change print code in WSOVLY1.OVR.

             73FF   LXI  B,06CA  --->  LXI  B,02D3
             7402   LXI  D,06C5
             7405   LXI  H,3AB4
             7408   CPI  14
             740A   JZ   42BD
             740D   PUSH D       --->  MVI  C,D8    ;change 02D3 to 02D8
             740E   MOV  D,B
             740F   MOV  E,C     --->  MVI  E,CA    ;change 06C5 to 06CA
             7410   POP  B
             7411   LXI  H,3AB5
             7414   CPI  16
             7416   JZ   42BD


    Obviously I can't guarantee that you won't have trouble, but I have found
the patch to work.  You may want to remove it if you ever reinstall Wordstar
for a different printer, especially a daisy wheel that may be using ROLUP/DOW
for other things as well.


      ----- Eric Meyer, 427 N. Washington, Bloomington, IN 47401 -----