[net.micro.atari16] Panasonic printer driver for 1st Word

Pase@DOCKMASTER.ARPA (Bill Pase) (04/21/86)

     Here is the 1st Word printer driver for the Panasonic
printers.  I'd sent this out before but apparently it did not
get out to everyone.  The following is in two parts, the
documentation for the driver and the hex file itself.  To use
it just perform the normal install proceedure as described in
the 1st Word manual.  Since I didn't write this, and haven't
used it all I can't take responsibility.  Good Luck.  /bill

--------------------------kxp1091.doc---------------------------

          This 1ST_WORD printer driver is compatible with the 
     following printers :  PANASONIC (1090,1080,1091,1092,1592
     1093. As well as these  ROLAND (1010,1011,1111). Since
     the light function is not available on these printers, I
     have substituted for proportional mode.              

       Here are a list of changes and additions :

       LIGHT mode  (F4) is now set for Proportional mode

     In the special character menu on the second line there
     ten characters which for lack of a better term I will  
     call LCD characters, like a calculator display's. Since
     only the Atari printer is capable of reproducing these
     I use them to enact special funtions like :

      LCD ( 0 )  NOW used to turn ON  ELITE pitch printing
      LCD ( 1 )  NOW used to turn OFF ELITE pitch printing

      LCD ( 2 )  NOW used to turn ON  CONDENSED printing
      LCD ( 3 )  NOW used to turn OFF CONDENSED printing

      LCD ( 4 )  NOW used to turn ON  ENLARGED printing
      LCD ( 5 )  NOW used to turn OFF ENLARGED printing

      LCD ( 6 )  NOW used to turn ON  DOUBLE space printing
      LCD ( 7 )  NOW used to trun OFF DOUBLE space printing

      LCD ( 8 )  NOW used to turn ON  1 1/2 space printing
      LCD ( 9 )  NOW used to turn OFF 1 1/2 space printing

      OPERATING NOTES:

     1: It is impossible to print both in ELITE mode and NLQ
        at the same time.

     2: When using the double space feature place the LCD 6
        before the line where you want duoble spacing to
        begin. And place the LCD 7 where you want it to end. 

    For example if you want "The lazy dog" to be double spaced :
        
         ON  S C R E E N             ON  P R I N T E R
                          
        Mary had a little 6          Mary had a little   
        The lazy dog 7     
                                     The lazy dog

      Modified by Craig Tremblay of Compucentre Carlingwood
      If there are any questions of if you find any errors
      please feel free to contact me at the following phone 
      number :
                           ( 613 ) 7 2 9 - 0 4 4 8

-----------------------end of kxp1091.doc------------------------

-------------------------kxp1091.hex-----------------------------

****************************************************************
*
*    Panasonic Dot Matrix Printer Driver Configuration Table
*    (1080 / 1090 / 1091 / 1092 / 1093 / 1592) compatible
*
*    As Well as these Rolland printer (1010 / 1111 / 1011)
*
*    This file contains tables defining the code sequences
*    to be sent to the printer to perform various functions
*    and to access the characters from codes in the Atari
*    character set.
*
****************************************************************

*
* Name of printer
* ===============
*
PANASONIC KX-P()
* THE INSTALL PRINT ROUTINE IS NOT SET UP FOR ANY OTHER PRINTER
* BUT THESE MODIFICATIONS ALLOW FULL USE OF THE PANASONIC OR ROLAND 
* PRINTERS WITHIN THE BOUNDS OF THE 1ST WORD PROGRAM. MODIFICATON 
* BY CRAIG TREMBLAY, COMPUCENTRE CARLINGWOOD (613) 729-0448
* Miscellaneous configurable variables
* ====================================
*
* 1: printer type, 0=dot matrix, 1=daisy wheel
*    Note if printer type is 0 the following 4 variables are never used.
* 2: unit width of one character
* 3: unit height of one line
* 4: Approximate middle of carriage after formfeed
* 5: Carriage shift for bold overstrike
*
0, 0, 0, 0, 0 
*
* Printer characteristics
* =======================
*
* This table specifies the printer command sequences.
* If the top bit of a code is set, then this indicates the position
* of a parameter passed to the printer. The code whose top bit is set
* in this table is added to the parameter passed before being sent to the
* printer. It is not used in all command sequences, only in those where 
* the printer requires  a variable value such as the length of a vertical 
* tab.
*
* 0            * Character width
1, D, A        * Linefeed WITH return
* 2            * Forward print
* 3            * Reverse print
* 4, 1B, 42, 80, 0, B                * Vertical tab to line 
* 5            * Absolute horizontal tab 
6, 1B, 45      * Draft bold on
7, 1B, 46      * Draft bold off
8, 1B, 6E, 1B, 45      * NLQ bold on 
9, 1B, 46, 1B, 6E      * NLQ bold off
A, 1B, 34      * Draft italic on
B, 1B, 35      * Draft italic off
C, 1B, 6E, 1B, 34               * NLQ italic on
D, 1B, 35, 1B, 6E               * NLQ italic off
E, 1B, 6F      * Draft proportional on
F, 1B, 50      * Draft proportional off
10, 1B, 6E, 1B, 6F              * NLQ proportional on
11, 1B, 50, 1B, 6E              * NLQ proportional off
12, 1B, 53, 0  * Draft superscript on
13, 1B, 54     * Draft superscript off
14, 1B, 50, 1B, 53, 0           * NLQ superscript on
15, 1B, 54, 1B, 6E              * NLQ superscript off
16, 1B, 53, 1  * Draft subscript on
17, 1B, 54     * Draft subscript off
18, 1B, 50, 1B, 53, 1           * NLQ subscript on
19, 1B, 54, 1B, 6E              * NLQ subscript off
1A, 1B, 2D, 1  * Draft underline on
1B, 1B, 2D, 0  * Draft underline off
1C, 1B, 6E, 1B, 2D, 1  * NLQ underline on
1D, 1B, 6E, 1B, 2D, 0  * NLQ underline off
1E, 0C         * Formfeed
1F, 12         * Horizontal initialisation
* 20           * Vertical initialisation
21, 1B, 40     * Termination: printer reset
0              * NULL termination byte

*
* Translation Table
* =================
*
* This table provides translation from single Atari input bytes into
* multiple Epson printer codes, and is useful for printing extraneous
* characters such as accented characters etc. All characters are 
* subjected to translation, but if there is no entry in the table for
* a particular code, then the original code is sent to the printer.
*
* The entries must be arranged in ascending order of Atari input
* code. The table is NULL terminated.
* 

0                                  * NULL: print a space 
1, 08, 1B, 52, 0, 5E               * Up arrow: USA | backspace USA ^
2, 1B, 52, 0, 7C, 8, 76            * Down arrow: USA | backspace USA v
3, 2D, 8, 3E  * Right arrow: - backspace >
4, 3C, 8, 2D  * Left arrow: - backspace <
5             * No close box
6             * No size box
7             * No full box
8             * No tick
9             * No clock
A             * No bell
B             * No musical note
E             * No LH Atari symbol     
F             * No RH Atari symbol
10, 1B, 6E, 1B, 4D       * LCD 0 NOW USED TO TURN NLQ ELITE PITCH ON
11, 1B, 50, 1B, 6E       * LCD 1 NOW USED TO TURN NLQ ELITE PITCH OFF
12, 1B, 0F    * LCD 2 NOW USED TO TURN CONDENSED PITCH ON
13, 1B, 6E    * LCD 3 NOW USED TO TURN CONDENSED PITCH OFF
14, 1B, 0E    * LCD 4 NOW USED TO TURN ON ENLARGED PRINT
15, 14        * LCD 5 NOW USED TO TURN OFF ENLARGED PRINT
16, 1B, 33, 48        * LCD 6 NOW USED TO TURN DOUBLE SPACE ON
17, 1B, 33. 24        * LCD 7 NOW USED TO TURN DOUBLE SPACE OFF    
18, 1B, 33, 36        * LCD 8 NOW USED TO TURN 1 1/2 LINE SPACE ON
19, 1B, 33, 24        * LCD 9 NOW USED TO TURN 1 1/2 LINE SPACE OFF     
7F                       * No triangle
80, 43, 8, 2C            * Capital C cedilla: C backspace ,
81, 1B, 52, 2, 7D        * Lower case u umlaut from German font
82, 1B, 52, 1, 7B        * Lower case e acute from French font 
83, 61, 8, 1B, 52, 0, 5E * Lower case a circumflex: a backspace USA ^
84, 1B, 52, 2, 7B        * Lower case a umlaut from German font
85, 1B, 52, 1, 40        * Lower case a grave from French font
86, 1B, 52, 4, 7D        * Lower case a boll from Danish 1 font
87, 1B, 52, 1, 5C        * Lower case c cedilla from French font
88, 65, 8, 1B, 52, 0, 5E * Lower case e circumflex: e backspace USA ^
89, 65, 8, 1B, 52, 1, 7E * Lower case e umlaut: e backspace French umlaut
8A, 1B, 52, 1, 7D        * Lower case e grave from French font
8B, 69, 8, 1B, 52, 1, 7E * Lower case i umlaut: i backspace French umlaut
8C, 69, 8, 1B, 52, 0, 5E * Lower case i circumflex: i backspace USA ^
8D, 1B, 52, 6, 7E        * Lower case i grave from Italian font
8E, 1B, 52, 2, 5B        * Capital A umlaut from German font
8F, 1B, 52, 4, 5D        * Capital A boll from Danish 1 font
90, 1B, 52, 9, 40        * Capital E acute from Norwegian font
91, 1B, 52, 4, 7B        * Lower case ae dipthong from Danish 1 font
92, 1B, 52, 4, 5B        * Capital AE dipthong from Danish 1 font
93, 6F, 8, 1B, 52, 0, 5E * Lower case o circumflex: o backspace USA ^
94, 1B, 52, 2, 7C        * Lower case o umlaut from German font
95, 1B, 52, 6, 7C        * Lower case o grave from Italian font
96, 75, 8, 1B, 52, 0, 5E * Lower case u circumflex: u backspace USA ^
97, 1B, 52, 1, 7C        * Lower case u grave from French font
98, 79, 8, 1B, 52, 1, 7E * Lower case y umlaut: y backspace French umlaut
99, 1B, 52, 2, 5C        * Capital O umlaut from German font
9A, 1B, 52, 2, 5D        * Capital U umlaut from German font
9B, 1B, 36, 9B           * CENT sign from IBM mode 2
9C, 1B, 36, 9C           * Pound sterling from IBM mode 2
9D, 1B, 36, 9D           * Yen from IBM mode 2
9E, 1B, 52, 2, 7E        * Esszet from German font
9F, 1B, 36, 9F           * Lower case swash f: print f
A0, 1B, 36, A0           * Lower case a acute IBM mode 2    
A1, 1B, 36, A1           * Lower case i acute IBM mode 2
A2, 1B, 36, A2           * Lower case o acute IBM mode 2    
A3, 1B, 36, A3           * Lower case u acute IBM mode 2    
A4, 1B, 36, A4           * Lower case n tilde IBM mode 2       
A5, 1B, 36, A5           * Capital N tilde IBM mode 2       
A6, 1B, 36, A6           * Lower case a underline IBM mode 2      
A7, 1B, 36, A7           * Lower case o underline IBM mode 2
A8, 1B, 36, A8           * Inverted ? IBM mode 2      
A9, 1B, 36, A9           * top left corner IBM mode 2    
AA, 1B, 36, AA           * top right corner IBM mode 2
AB, 1B, 36, AB           * 1/2 fraction IBM mode 2
AC, 1B, 36, AC           * 1/4 fraction IBM mode 2
AD, 1B, 36, AD           * Inverted ! IBM mode 2
AE, 1B, 36, AE           *  << IBM mode 2
AF, 1B, 36, AF           *  >> IBM mode 2
B0, 61, 8, 7E            * Lower case a tilde: a backspace USA ~
B1, 6F, 8, 7E            * Lower case o tilde: o backspace USA ~
B2, 1B, 52, 4, 5C        * Capital crossed O from Danish 1 font
B3, 1B, 52, 4, 7C        * Lower case crossed o from Danish 1 font
B4, 6F, 8, 65            * lower case oe dipthong
B5, 4F, 8, 45            * capital OE dipthong
B6, 41                   * No capital A grave: print A
B7, 41                   * No capital A tilde: print A
B8, 4F                   * No capital O tilde: print O
B9, 1B, 52, 1, 7E        * Umlaut from French font
BA, 27                   * Acute: print '
BB                       * No dagger
BC                       * No paragraph symbol
BD                       * No copyright symbol
BE                       * No Registered symbol
BF                       * No Trademark symbol
C0, 79, 8, 1B, 52, 1, 7E * ij ligature: y backspace French umlaut
C1, 59                   * Capital IJ ligature: print Y
C2,1B,4B,06,00,00,62,14,08,14,62       * H 
C3,1B,4B,06,00,00,42,42,42,7E,02       * E
C4,1B,4B,06,00,00,00,42,44,7E,00       * W
C5,1B,4B,06,00,00,40,40,40,7E,40       * B
C6,1B,4B,06,00,00,4E,40,40,40,7E       * R
C7,1B,4B,06,00,00,00,00,40,7E,00       * E
C8,1B,4B,06,00,00,40,60,50,4E,00       * W
C9,1B,4B,06,00,00,7E,40,40,40,7E
CA,1B,4B,06,00,00,7E,02,02,42,7E
CB,1B,4B,06,00,00,00,40,40,70,00
CC,1B,4B,06,00,00,42,42,42,42,7E
CD,1B,4B,06,00,00,C0,40,42,44,78
CE,1B,4B,06,00,00,6E,10,20,42,7E
CF,1B,4B,06,00,00,00,42,42,7E,00
D0,1B,4B,06,00,00,7C,42,42,42,7C
D1,1B,4B,06,00,00,02,7E,02,02,7E
D2,1B,4B,06,00,00,72,52,42,42,7E
D3,1B,4B,06,00,00,62,12,0A,0E,72
D4,1B,4B,06,00,00,40,5F,40,40,78
D5,1B,4B,06,00,00,40,40,40,40,3E
D6,1B,4B,06,00,7E,0A,12,62,02,7E
D7,1B,4B,06,00,00,42,7E,40,40,7E
D8,1B,4B,06,00,00,00,00,40,7F,00
D9,1B,4B,06,00,00,00,40,40,40,7F
DA,1B,4B,06,00,00,40,7E,42,42,7E
DB,1B,4B,06,00,00,70,50,40,40,7F
DC,1B,4B,06,00,00,60,10,08,0E,70
DD, 1B, 52, 2, 40            * Section mark from German font
DE                           * No dropped circumflex
DF, 1B, 36, EC               * infinity symbol
E0, 1B, 36, E0               * alpha
E1, 1B, 36, E1               * Esszet from German font     
E2, 1B, 36, E2               * No Greek....
E3, 1B, 36, E3               * PI SYMBOL
E4, 1B, 36, E4               * SIGMA
E5, 1B, 36, E5               * FUNNY O
E6, 1B, 36, E6               * MICRO
E7, 1B, 36, E7               * GAMMA
E8, 1B, 36, E8               * I OVER O
E9, 1B, 36, E9               * - OVER O
EA, 1B, 36, EA               * OMEGA
EB, 1B, 36, EB               * FUNNY O  
EC, 1B, 36, ED               * / OVER O
ED, 6F, 8, 1B, 36, B3        * ! OVER O
EE, 1B, 36, EE               * 3 BACKWARDS
EF, 1B, 36, EF               * n
F0, 1B, 36, F0               * Equivalence
F1, 1B, 36, F1               * +-: + backspace _
F2, 1B, 36, F2               * >=: > backspace -
F3, 1B, 36, F3               * <=: < backspace _
F4, 1B, 36, F4               * integral top piece
F5, 1B, 36, F5               * integral bottom piece
F6, 1B, 36, F6               * Division sign               
F7, 1B, 36, F7               * No twiddly = symbol
F8, 1B, 36, F8               * Degree symbol
F9, 1B, 36, F9               * superior bullet
FA, 1B, 36, FE               * inferior bullet
FB, 1B, 36, FB               *  square root sign
FC, 1B, 36, FC               * superior n
FD, 1B, 36, FD               * superior 2
FE                           * No superior 3
FF, 1B, 36, FA               * macron     
0

-----------------------end of kxp1091.hex------------------------

That is all there is to it.  Let me know if you get a messed copy.
Support free software.  /bill